Skip to main content

hi_dis_config

hi_vi_frame_dump_attr

说明

定义VI PIPE dump属性。

定义

typedef struct {
hi_bool enable;
hi_u32 depth;
} hi_vi_frame_dump_attr;

成员

成员名称描述
enable是否开启dump。
- HI_FALSE:不开启。
- HI_TRUE:开启。
depthDump数据的队列深度,该值不允许超过对应PIPE属性里的depth值。 取值范围:[0, 8]。

父主题: VI视频输入

hi_vi_pipe_frame_source

说明

定义视频输入设备的属性。

定义

typedef enum {
HI_VI_PIPE_FRAME_SOURCE_FE = 0,
HI_VI_PIPE_FRAME_SOURCE_USER,
HI_VI_PIPE_FRAME_SOURCE_BUTT
} hi_vi_pipe_frame_source;

成员

成员名称描述
HI_VI_PIPE_FRAME_SOURCE_FE数据来自于前端FE,默认模式。
HI_VI_PIPE_FRAME_SOURCE_USER数据来自用户从BE送进来的数据。
HI_VI_PIPE_FRAME_SOURCE_BUTT预留值。

父主题: VI视频输入

hi_vi_chn_attr

说明

定义VI通道属性。

定义

typedef struct {
hi_size size;
hi_pixel_format pixel_format;
hi_dynamic_range dynamic_range;
hi_video_format video_format;
hi_compress_mode compress_mode;
hi_u32 depth;
hi_frame_rate_ctrl frame_rate_ctrl;
hi_u32 reserved[10];
} hi_vi_chn_attr;

成员

成员名称描述
size目标图像大小。静态属性,设置通道时设定,不可更改。
- 必须配置,且大小需要在VI支持的范围,详细范围说明参考约束说明
- 通道不支持缩放,通道size必须和pipe属性配置的size一致 。
pixel_format目标图像像素格式。静态属性,设置通道时设定,不可更改。 当未开启DIS或LDC时,支持的像素格式为:HI_PIXEL_FORMAT_YVU_SEMIPLANAR_422、HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420、HI_PIXEL_FORMAT_YUV_400。 当开启DIS或LDC时,支持的像素格式为:HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420、HI_PIXEL_FORMAT_YUV_400。
dynamic_range目标图像动态范围。静态属性,设置通道时设定,不可更改。
video_format目标图像视频数据格式。当前版本仅支持HI_VIDEO_FORMAT_LINEAR格式。
compress_mode目标图像压缩格式。静态属性,设置通道时设定,不可更改。当前版本不支持。
depth用户获取图像的队列深度。静态属性,设置通道时设定,不可更改。 取值范围:[0, 8]。
frame_rate_ctrl帧率控制。
reserved预留参数,为保证后续版本兼容性,请务必使用memset结构体方式进行清零初始化,在代码中必须避免显式对reserved字段进行访问。

:::note 说明

  • 当前版本,VI CHN通道不支持缩放,所以请确保将chn属性中的size大小与pipe属性中的size大小保持一致。
  • 请根据实际负载和抖动,设置合理的depth值,内部实际申请的内存块数量为:调用hi_mpi_vi_enable_chn接口开启通道时的hi_vi_pipe_attr属性中的depth - hi_vi_frame_dump_attr属性中的depth + chn属性中的depth值。所以建议用户在开启通道前,确保已完成pipe dump属性的相关配置。 :::

父主题: VI视频输入

hi_dis_config

说明

定义DIS的配置信息。

定义

typedef struct {
hi_dis_mode mode;
hi_dis_motion_level motion_level;
hi_dis_pdt_type pdt_type;
hi_u32 buf_num;
hi_u32 crop_ratio;
hi_u32 frame_rate;
hi_bool camera_steady;
hi_bool scale;
} hi_dis_config;

成员

成员名称描述
modeDIS中使用不同自由度防抖算法,共有3种不同算法。
motion_levelCamera的运动级别。
pdt_type使用DIS的产品形态,当前支持IPC、DV和无人机。
buf_numDIS用于缓存图像的内存块数目,在DIS输出帧率偶尔出现丢帧时,可以增加缓存buf数。 取值范围:[5, 10]。
crop_ratioDIS输出图像的裁剪比例。 取值范围:[50, 98]。
frame_rate设置为VI输出的实际帧率。取值范围:(0, 60]。
- 当防抖模式为HI_DIS_MODE_4_DOF_GME/HI_DIS_MODE_6_DOF_GME时,低帧率会导致两帧间隔变大,两帧之间抖动幅度增加,同时,果冻效应(rolling shutter)也更加严重,预期可能会出现防抖效果下降,特别是在抖动幅度大的场景;
- 当防抖模式为HI_DIS_MODE_GYRO时, 除了防抖效果的影响和GME一致,会导致算法支持的陀螺仪的最高采样率下降。当前3.5KHz的规格是基于最小25fps设计,如果下降, 对应的支持的陀螺仪的最大采样率也会下降。
camera_steady镜头是否固定静止的。 取值范围:
- HI_FALSE:不固定静止。
- HI_TRUE:固定静止。
scaleCrop后的输出图像是否进行放大。当前DIS提供Crop 后的输出图像是否进行放大操作选择。如果用户不想采用在DIS放大功能,可以选择在后端的VPSS进行放大操作。 取值范围:
- HI_FALSE:不放大。
- HI_TRUE:放大。
scale为HI_FALSE的情况下,输出的图像宽高为输入图像宽高乘以crop_ratio设置的裁剪比例,且值为2对齐。

父主题: VI视频输入

hi_dis_attr

说明

定义DIS属性。

定义

typedef struct {
hi_bool enable;
hi_bool gdc_bypass;
hi_u32 moving_subject_level;
hi_s32 rolling_shutter_coef;
hi_s32 timelag;
hi_u32 view_angle;
hi_u32 horizontal_limit;
hi_u32 vertical_limit;
hi_bool still_crop;
hi_u32 strength;
} hi_dis_attr;

成员

成员名称描述
enable是否开启DIS功能。
- HI_FALSE:不开启;
- HI_TRUE:开启。
gdc_bypassDIS功能中是否开启bypass GDC的开关。
- HI_FALSE:不开启bypass GDC功能,即正常调用GDC做PMF矫正;
- HI_TRUE:开启bypass GDC功能,即不调用GDC做PMF矫正。
moving_subject_level用于判断物体是否是运动的级别,值越小,运动过程中越稳定,但更容易出现偏移情况。值较大时,防抖效果越弱,运动过程中背景抖动幅度大,但能够改善图像偏移现象。 取值范围:[0, 6]。
rolling_shutter_coef校正果冻效应(rolling shutter)现象的校正参数。 取值范围:[0, 1000]。
timelag帧起始时间和陀螺仪数据采集时间的时间差,单位为微秒。 取值范围:[-2000000, 2000000]。
view_angle预留参数。
horizontal_limit水平偏移限制。当大面积物体经过引起背景拖拽的水平偏移超过一定幅度时就不进行防抖。偏移幅度计算:2047*horizontal_limit/1000。 取值范围:[0,1000]。
vertical_limit垂直偏移限制。当大面积物体经过引起背景拖拽的垂直偏移超过一定幅度时就不进行防抖。偏移幅度计算 :2047* vertical_limit/1000。 取值范围:[0,1000]。
still_crop关闭DIS防抖效果,但图像依旧按照所配置的比例裁剪。
strength陀螺仪防抖的强度控制。仅对GYRO模式有效,对GME模式无效,默认强度为1024。 取值范围:[0,1024]。

父主题: VI视频输入

hi_dis_mode

说明

定义DIS防抖算法模式。

定义

typedef enum {
HI_DIS_MODE_4_DOF_GME = 0,
HI_DIS_MODE_6_DOF_GME,
HI_DIS_MODE_GYRO,
HI_DIS_MODE_DOF_BUTT,
} hi_dis_mode;

成员

成员名称描述
HI_DIS_MODE_4_DOF_GME四自由度GME算法,不使用陀螺仪。
HI_DIS_MODE_6_DOF_GME六自由度GME算法,不使用陀螺仪。
HI_DIS_MODE_GYRO陀螺仪算法,不使用GME。
HI_DIS_MODE_DOF_BUTT预留值。

父主题: VI视频输入

hi_dis_motion_level

说明

定义镜头的运动级别。

定义

typedef enum {
HI_DIS_MOTION_LEVEL_LOW = 0,
HI_DIS_MOTION_LEVEL_NORMAL,
HI_DIS_MOTION_LEVEL_HIGH,
HI_DIS_MOTION_LEVEL_BUTT
} hi_dis_motion_level;

成员

成员名称描述
HI_DIS_MOTION_LEVEL_LOW低级别运动,镜头小幅度运动。当前版本不支持。
HI_DIS_MOTION_LEVEL_NORMAL正常级别运动,镜头正常幅度运动。
HI_DIS_MOTION_LEVEL_HIGH高级别运动,镜头大幅度运动。
HI_DIS_MOTION_LEVEL_BUTT预留值。

父主题: VI视频输入

在线提单