32. DIS¶
32.1. 功能描述¶
DIS模块通过比较当前图像以及前一帧图像来计算出当前的位移量,并将其传递至后级模块进行图像裁切, 进而实现防抖动的效果。
32.2. API 参考¶
CVI_ISP_SetDISAttr : 设置DIS属性参数
CVI_ISP_GetDISAttr : 获取DIS属性参数
CVI_ISP_SetDISConfig : 设置DIS控制参数
CVI_ISP_GetDISConfig : 获取DIS控制参数
32.2.1. CVI_ISP_SetDISAttr¶
【描述】
设置DIS属性参数
【语法】
CVI_S32 CVI_ISP_SetDisAttr(VI_PIPE ViPipe, const ISP_DIS_ATTR_S *pstDisAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstDisAttr |
DIS属性参数 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无。
【举例】
无。
【相关主题】
32.2.2. CVI_ISP_GetDISAttr¶
【描述】
获取DIS属性参数
【语法】
CVI_S32 CVI_ISP_GetDisAttr(VI_PIPE ViPipe, ISP_DIS_ATTR_S *pstDisAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstDisAttr |
DIS属性参数 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无。
【举例】
无。
【相关主题】
32.2.3. CVI_ISP_SetDISConfig¶
【描述】
获取DIS属性参数
【语法】
CVI_S32 CVI_ISP_SetDisConfig(VI_PIPE ViPipe, const ISP_DIS_CONFIG_S *pstDisConfig);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstDisConfig |
DIS控制参数 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无。
【举例】
无。
【相关主题】
32.2.4. CVI_ISP_GetDISConfig¶
【描述】
获取DIS属性参数
【语法】
CVI_S32 CVI_ISP_GetDisConfig(VI_PIPE ViPipe, const ISP_DIS_CONFIG_S *pstDisConfig);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
VI_PIPE 号 |
输入 |
pstDisConfig |
DIS控制参数 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,其值为 错误码。 |
【需求】
头文件: cvi_isp.h, cvi_comm_isp.h
库文件: libisp.so
【注意】
无。
【举例】
无。
【相关主题】
32.3. 数据类型¶
ISP_DIS_ATTR_S : DIS属性参数
ISP_DIS_CONFIG_S : DIS设定参数
DIS_MODE_E : DIS模式参数
DIS_MOTION_LEVEL_E : DIS级别参数
32.3.1. ISP_DIS_ATTR_S¶
【说明】
DIS属性参数
【定义】
typedef struct _ISP_DIS_ATTR_S {
CVI_BOOL enable;
CVI_U32 movingSubjectLevel;
CVI_U32 horizontalLimit;
CVI_U32 verticalLimit;
CVI_BOOL stillCrop;
} ISP_DIS_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
enable |
DIS 使能开关 CVI_FALSE:不使能 CVI_TRUE:使能 |
movingSubjectLevel |
用于判断物体是否移动的参数, 值越小防抖效果越好,但容易出现偏移,反之抖动容易变大,但减少偏移现象。 取值范围:[0, 6] 数据类型: CVI_U32 |
horizontalLimit |
水平方向的位移限制,当大面 积物体位移造成背景位移达到一定幅度,则不做防抖效果。计算方式为 image_width * horizontalLimit / 1000 取值范围: [0, 0x3E8] 数据类型: CVI_U32 |
verticalLimit |
垂直方向的位移限制,当大面 积物体位移造成背景位移达到一定幅度,则不做防抖效果。计算方式为 image_height * verticalLimit / 1000 取值范围: [0, 0x3E8] 数据类型: CVI_U32 |
stillCrop |
关闭 DIS 防抖效果,但影像保持裁剪比例输出, 避免影像大小变化 CVI_FALSE:不使能 CVI_TRUE:使能 |
【注意事项】
无。
【相关数据类型及接口】
32.3.2. ISP_DIS_CONFIG_S¶
【说明】
DIS设定参数
【定义】
typedef struct _ISP_DIS_CONFIG_S {
DIS_MODE_E mode;
DIS_MOTION_LEVEL_E motionLevel;
CVI_U32 cropRatio;
} ISP_DIS_CONFIG_S;
【成员】
成员名称 |
描述 |
---|---|
mode |
数字防 抖动算法模式,目前只支持一种算法模式 取值范围:[0, 0] 数据类型:DIS_MODE_E |
motionLevel |
Camera的运动级别, 目前只支持 DIS_MOTION_LEVEL_NORMAL 取值范围:[1, 1] 数据类型: DIS_MOTION_LEVEL |
cropRatio |
DIS输出的影像裁切比例, 数值越大则保留的影像越大, 反之则越小。 建议默认值为94 取值范围: [50, 98] 数据类型: CVI_U32 |
【注意事项】
cropRatio 会影响DIS算法能支持的最大位移程度, 假设CropRatio为98, 表示只剩下2%的宽高能做位移
【相关数据类型及接口】
32.3.3. DIS_MODE_E¶
【说明】
定义DIS防抖算法模式
【定义】
typedef enum _ISP_DIS_MODE_E {
DIS_MODE_2_DOF_GME = 0, /* Only use with GME in 2 dof */
DIS_MODE_DEBUG,
DIS_MODE_DOF_BUTT,
} DIS_MODE_E;
【成员】
成员名称 |
描述 |
---|---|
DIS_MODE_2_DOF_GME |
二自由度GME算法 |
DIS_MODE_DEBUG |
调试模式 |
【注意事项】
无。
【相关数据类型及接口】
32.3.4. DIS_MOTION_LEVEL_E¶
【说明】
定义镜头的运动级别
【定义】
typedef enum _ISP_DIS_MOTION_LEVEL_E {
DIS_MOTION_LEVEL_NORMAL = 1,
DIS_MOTION_LEVEL_BUTT
} DIS_MOTION_LEVEL_E;
【成员】
成员名称 |
描述 |
---|---|
DIS_MOTION_LEVEL_NORMAL |
正常级别的镜头晃动幅度 |
【注意事项】
无。
【相关数据类型及接口】