22. DCI

22.1. 功能描述

Dynamic Contrast Improvement 的简称,藉由调整直方图来加强图像对比度,提升暗部细节。

22.2. API 参考

22.2.1. CVI_ISP_SetDCIAttr

【描述】

设置DCI 参数属性

【语法】

CVI_S32 CVI_ISP_SetDCIAttr(VI_PIPE ViPipe, const ISP_DCI_ATTR_S *pstDCIAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstDCIAttr

DCI 参数属性

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_DCI_ATTR_S stAttr;
CVI_ISP_GetDCIAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetDCIAttr(ViPipe, &stAttr);

【相关主题】

22.2.2. CVI_ISP_GetDCIAttr

【描述】

获取DCI 参数属性

【语法】

CVI_S32 CVI_ISP_GetDCIAttr(VI_PIPE ViPipe, ISP_DCI_ATTR_S *pstDCIAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstDCIAttr

DCI 参数属性

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

22.2.3. CVI_ISP_SetDciAutoGammaAttr

【描述】

设置Dci Gamma 参数属性

【语法】

CVI_S32 CVI_ISP_SetDciAutoGammaAttr(VI_PIPE ViPipe, const ISP_DCI_AUTO_GAMMA_ATTR_S *pstDciAutoGammaAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstDciAutoGammaAttr

Dci Gamma 参数属性

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_DCI_AUTO_GAMMA_ATTR_S stAttr;
CVI_ISP_GetDciAutoGammaAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetDciAutoGammaAttr(ViPipe, &stAttr);

【相关主题】

22.2.4. CVI_ISP_GetDciAutoGammaAttr

【描述】

获取Dci Gamma 参数属性

【语法】

CVI_S32 CVI_ISP_GetDciAutoGammaAttr(VI_PIPE ViPipe, ISP_DCI_AUTO_GAMMA_ATTR_S *pstDciAutoGammaAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstDciAutoGammaAttr

Dci Gamma 参数属性

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

  • 头文件: cvi_isp.h, cvi_comm_isp.h

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

22.3. 数据类型

22.3.1. ISP_DCI_ATTR_S

【说明】

定义DCI 参数属性

【定义】

typedef struct _ISP_DCI_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        ISP_DCI_CURVE_MODE_E CurveMode;
        CVI_U8 UpdateInterval; /*Rw; Range:[1, 255]*/
        CVI_U16 DciStrength; /*Rw; Range:[0, 8192]*/
        CVI_U8 DciGamma[5]; /*Rw; Range:[0, 31]*/
        CVI_U8 DciContrast[5]; /*Rw; Range:[0, 3]*/
        CVI_U8 DciOffset[5]; /*Rw; Range:[0, 15]*/
        CVI_U8 Sensitivity; /*Rw; Range:[0, 255]*/
        CVI_U16 Speed; /*Rw; Range:[0, 500]*/
        CVI_U8 DehazeLight; /*Rw; Range:[0, 5]*/
        CVI_U8 DehazeStrength; /*Rw; Range:[0, 100]*/
        CVI_U8 DehazeLut[6]; /*Rw; Range:[0, 100]*/
} ISP_DCI_ATTR_S;

【成员】

成员名称

描述

Enable

模块使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

CurveMode

DciGammaCurve生成模式

DCI_CURVE_AUTO: 自动模式

DCI_CURVE_AUTO_GAMMA: 通过gamma曲线生成DCI曲线

DCI_CURVE_DEHAZE: 去雾曲线

数据类型: ISP_DCI_CURVE_MODE_E

UpdateInterval

影响参数更新间隔,值越大画面变化越慢,效能越好。

取值范围: [1, 255]

数据类型: CVI_U8

DciStrength

自动模式下生效,用来控制DCI的强度。值越大,对比度越大。

取值范围: [0, 8192]

数据类型: CVI_U16

DciGamma

Auto gamma模式,辅助pqtool端手动生成DciGammaCurve。用来控制亮度抬升程度。值越大,亮度抬升程度越大。

取值范围: [0, 31]

数据类型: CVI_U8

DciContrast

Auto gamma模式,辅助pqtool端手动生成DciGammaCurve。用来控制对比度强度,值越大,对比度越大。

取值范围: [0, 3]

数据类型: CVI_U8

DciOffset

Auto gamma模式,辅助pqtool端手动生成DciGammaCurve。DciOffset以内保持线性。

取值范围: [0, 15]

数据类型: CVI_U8

Sensitivity

灵敏度: 灵敏度越高,dci重运算的threadhold越低

取值范围: [0, 255]

数据类型: CVI_U8

Speed

DCI曲线时间域上变化的平顺度。数值越大,时间域变化越平顺,反之,则变化越快。

取值范围: [0, 500]

数据类型: CVI_U16

DehazeLight

亮度直方图百分比

取值范围: [0, 5]

数据类型: CVI_U8

DehazeStrength

去雾强度

取值范围: [0, 100]

数据类型: CVI_U8

DehazeLut

去雾表

取值范围: [0, 100]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

22.3.2. ISP_DCI_AUTO_GAMMA_ATTR_S

【说明】

定义Dci Gamma 参数属性

【定义】

typedef struct _ISP_DCI_AUTO_GAMMA_ATTR_S {
        CVI_U8 GammaTabNum; /*Rw; Range:[1, 5]*/
        ISP_DCI_GAMMA_CURVE_ATTR_S GammaTab[5];
} ISP_DCI_AUTO_GAMMA_ATTR_S;

【成员】

成员名称

描述

GammaTabNum

自适应 Gamma 曲线数量。

取值范围: [1, 5]

数据类型: CVI_U8

GammaTab

自适应 Gamma 曲线信息。

数据类型: ISP_DCI_GAMMA_CURVE_ATTR_S

【注意事项】

【相关数据类型及接口】

22.3.3. ISP_DCI_GAMMA_CURVE_ATTR_S

【说明】

定义Dci Gamma Curve参数属性

【定义】

typedef struct _ISP_DCI_GAMMA_CURVE_ATTR_S {
        CVI_S16 Lv; /*Rw; Range:[-500, 1500]*/
        CVI_U16 Tbl[256]; /*Rw; Range:[0, 255]*/
} ISP_DCI_GAMMA_CURVE_ATTR_S;

【成员】

成员名称

描述

Lv

Gamma 曲线对应 Lv 范围。

取值范围: [-500, 1500]

数据类型: CVI_S16

Tbl

Gamma曲线节点数值。

取值范围: [0, 255]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】