28. DRC

28.1. 功能描述

整幅图像的动态范围,使之能在显示设备上的显示效果与人眼视觉感受一致。

28.2. API 参考

28.2.1. CVI_ISP_SetDRCAttr

【描述】

设置DRC属性参数

【语法】

CVI_S32 CVI_ISP_SetDRCAttr(VI_PIPE ViPipe, const ISP_DRC_ATTR_S *pstDRCAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstDRCAttr

DRC属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_DRC_ATTR_S stAttr;
CVI_ISP_GetDRCAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetDRCAttr(ViPipe, &stAttr);

【相关主题】

28.2.2. CVI_ISP_GetDRCAttr

【描述】

获取DRC属性参数

【语法】

CVI_S32 CVI_ISP_GetDRCAttr(VI_PIPE ViPipe, ISP_DRC_ATTR_S *pstDRCAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstDRCAttr

DRC属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

28.3. 数据类型

28.3.1. ISP_DRC_MANUAL_ATTR_S

【说明】

定义手动DRC属性参数

【定义】

typedef struct _ISP_DRC_MANUAL_ATTR_S {
        CVI_U8 Strength; /*Rw; Range:[0, 255]*/
        CVI_U8 StrengthMin; /*Rw; Range:[0, 255]*/
        CVI_U8 StrengthMax; /*Rw; Range:[0, 255]*/
} ISP_DRC_MANUAL_ATTR_S;

【成员】

成员名称

描述

Strength

控制DRC的整体强度。值越大,强度越强。

取值范围: [0, 255]

数据类型: CVI_U8

StrengthMin

autoMode=1时生效,控制自动算出来的drc强度*gain的范围。

取值范围: [0, 255]

数据类型: CVI_U8

StrengthMax

autoMode=1时生效,控制自动算出来的drc强度*gain的范围。

取值范围: [0, 255]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

28.3.2. ISP_DRC_AUTO_ATTR_S

【说明】

定义自动DRC属性参数

【定义】

typedef struct _ISP_DRC_AUTO_ATTR_S {
        CVI_U8 Strength[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 StrengthMin[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 StrengthMax[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
} ISP_DRC_AUTO_ATTR_S;

【成员】

成员名称

描述

Strength

控制DRC的整体强度。值越大,强度越强。

取值范围: [0, 255]

数据类型: CVI_U8

StrengthMin

autoMode=1时生效,控制自动算出来的drc强度*gain的范围。

取值范围: [0, 255]

数据类型: CVI_U8

StrengthMax

autoMode=1时生效,控制自动算出来的drc强度*gain的范围。

取值范围: [0, 255]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

28.3.3. ISP_DRC_ATTR_S

【说明】

定义DRC属性参数

【定义】

typedef struct _ISP_DRC_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        ISP_OP_TYPE_E enOpType;
        CVI_U8 UpdateInterval; /*Rw; Range:[0, 255]*/
        CVI_BOOL AutoMode; /*Rw; Range:[0, 1]*/
        CVI_U16 SaturationLow; /*Rw; Range:[0, 4095]*/
        CVI_U16 SaturationHigh; /*Rw; Range:[0, 4095]*/
        CVI_U16 ContrastLow; /*Rw; Range:[0, 4095]*/
        CVI_U16 ContrastHigh; /*Rw; Range:[0, 4095]*/
        CVI_U8 BlockNumW; /*Rw; Range:[7, 47]*/
        CVI_U8 GainUB; /*Rw; Range:[0, 255]*/
        CVI_U8 GainLB; /*Rw; Range:[0, 255]*/
        CVI_U8 GainProtStr; /*Rw; Range:[0, 255]*/
        CVI_U8 FSBPstr; /*Rw; Range:[0, 255]*/
        CVI_U8 DeFlareMode; /*Rw; Range:[0, 2]*/
        CVI_U8 DeFlareRatio; /*Rw; Range:[0, 255]*/
        CVI_U8 DeFlareSlope; /*Rw; Range:[0, 255]*/
        CVI_U16 AdaptiveLowStr; /*Rw; Range:[0, 4095]*/
        CVI_U16 AdaptiveHighStr; /*Rw; Range:[0, 4095]*/
        CVI_U16 AdaptiveRatio; /*Rw; Range:[0, 1000]*/
        CVI_U8 ColorProtStr; /*Rw; Range:[0, 255]*/
        CVI_U16 ColorProtThr; /*Rw; Range:[0, 4095]*/
        ISP_DRC_MANUAL_ATTR_S stManual;
        ISP_DRC_AUTO_ATTR_S stAuto;
} ISP_DRC_ATTR_S;

【成员】

成员名称

描述

Enable

模块使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

enOpType

工作类型

OP_TYPE_AUTO:自动模式

OP_TYPE_MANUAL:手动模式

数据类型: ISP_OP_TYPE_E

UpdateInterval

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

取值范围: [0, 255]

数据类型: CVI_U8

AutoMode

控制auto drc

取值范围: [0, 1]

数据类型: CVI_BOOL

SaturationLow

控制Y和localMax的融合比例

取值范围: [0, 4095]

数据类型: CVI_U16

SaturationHigh

控制Y和local Max的融合比例

取值范围: [0, 4095]

数据类型: CVI_U16

ContrastLow

控制第一轮融合的输出和raw的融合比例

取值范围: [0, 4095]

数据类型: CVI_U16

ContrastHigh

控制第一轮融合的输出和raw的融合比例

取值范围: [0, 4095]

数据类型: CVI_U16

BlockNumW

控制局部亮度控制的范围

取值范围: [7, 47]

数据类型: CVI_U8

GainUB

1为1倍,限制算出来的out_luma为in_luma的多少倍以内

取值范围: [0, 255]

数据类型: CVI_U8

GainLB

256为1倍,限制算出来的out_luma为in_luma的多少倍以上

取值范围: [0, 255]

数据类型: CVI_U8

GainProtStr

限制产生色彩偏移的DRC gain,值越大,限制强度越大,色彩保护越强

取值范围: [0, 255]

数据类型: CVI_U8

FSBPstr

对高反差区域做特别处理

取值范围: [0, 255]

数据类型: CVI_U8

DeFlareMode

光晕抑制的模式。0:关闭,1:手动抑制模式,2:自适应抑制模式

取值范围: [0, 2]

数据类型: CVI_U8

DeFlareRatio

控制光晕抑制的强度,Ratio越小,抑制程度越大,光晕越弱,对比度越弱

取值范围: [0, 255]

数据类型: CVI_U8

DeFlareSlope

控制光晕抑制的强度,Slope越小,抑制程度越大,光晕越弱,对比度越弱

取值范围: [0, 255]

数据类型: CVI_U8

AdaptiveLowStr

根据亮度自适应控制DRC的强度的下限

取值范围: [0, 4095]

数据类型: CVI_U16

AdaptiveHighStr

根据亮度自适应控制DRC的强度的上限

取值范围: [0, 4095]

数据类型: CVI_U16

AdaptiveRatio

根据亮度自适应控制DRC的强度的过渡斜率

取值范围: [0, 1000]

数据类型: CVI_U16

ColorProtStr

限制产生色彩偏移的DRC gain,值越大,限制强度越大,色彩保护越强

取值范围: [0, 255]

数据类型: CVI_U8

ColorProtThr

控制色彩保护的范围,值越大,开启保护的亮度越偏向高亮区

取值范围: [0, 4095]

数据类型: CVI_U16

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】