31. CA

31.1. 功能描述

调整UV domain饱和度, 此模组分为CA 模式与CP (热成像)模式, 同时间只能选一个开启。 CA模式: 根据input Y来调整饱和度, 因此可以局部调整饱和度。 CP模式: 因为热成像模式只有Y值, 会根据Y值查找预先调试的颜色模板, 查找对应的YUV值, 使其上色。

31.2. API 参考

31.2.1. CVI_ISP_SetCAAttr

【描述】

设置CA 参数属性

【语法】

CVI_S32 CVI_ISP_SetCAAttr(VI_PIPE ViPipe, const ISP_CA_ATTR_S *pstCAAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstCAAttr

CA 参数属性

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_CA_ATTR_S stAttr;
CVI_ISP_GetCAAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetCAAttr(ViPipe, &stAttr);

【相关主题】

31.2.2. CVI_ISP_GetCAAttr

【描述】

获取CA 参数属性

【语法】

CVI_S32 CVI_ISP_GetCAAttr(VI_PIPE ViPipe, ISP_CA_ATTR_S *pstCAAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstCAAttr

CA 参数属性

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

31.3. 数据类型

31.3.1. ISP_CA_MANUAL_ATTR_S

【说明】

定义手动CA 参数属性

【定义】

typedef struct _ISP_CA_MANUAL_ATTR_S {
        CVI_U16 ISORatio; /*Rw; Range:[0, 2047]*/
        CVI_U16 YRatioLut[256]; /*Rw; Range:[0, 2047]*/
} ISP_CA_MANUAL_ATTR_S;

【成员】

成员名称

描述

ISORatio

CA模式, 根据ISO值查找UV的增益。所有像素点的UV调整增益都是相同的, 建议在低ISO的时候此 增益可以设置大一些, 而高ISO时此增益 值可以设定小一些, 来抑制暗区的色噪。

取值范围: [0, 2047]

数据类型: CVI_U16

YRatioLut

CA模式, 根据亮度Y查找UV的增益。此值根据不同亮度等级可设置不同的UV增益, 建议在亮区的增益可以设置大一些, 颜色会较为鲜艳, 而暗区的增益可以设置小一些, 来抑制暗区色噪。

取值范围: [0, 2047]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

31.3.2. ISP_CA_AUTO_ATTR_S

【说明】

定义自动CA 参数属性

【定义】

typedef struct _ISP_CA_AUTO_ATTR_S {
        CVI_U16 ISORatio[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 2047]*/
        CVI_U16 YRatioLut[256][ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 2047]*/
} ISP_CA_AUTO_ATTR_S;

【成员】

成员名称

描述

ISORatio

CA模式, 根据ISO值查找UV的增益。所有像素点的UV调整增益都是相同的, 建议在低ISO的时候此 增益可以设置大一些, 而高ISO时此增益 值可以设定小一些, 来抑制暗区的色噪。

取值范围: [0, 2047]

数据类型: CVI_U16

YRatioLut

CA模式, 根据亮度Y查找UV的增益。此值根据不同亮度等级可设置不同的UV增益, 建议在亮区的增益可以设置大一些, 颜色会较为鲜艳, 而暗区的增益可以设置小一些, 来抑制暗区色噪。

取值范围: [0, 2047]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】

31.3.3. ISP_CA_ATTR_S

【说明】

定义CA 参数属性

【定义】

typedef struct _ISP_CA_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        ISP_OP_TYPE_E enOpType;
        CVI_U8 UpdateInterval; /*Rw; Range:[1, 255]*/
        CVI_BOOL CaCpMode; /*Rw; Range:[0, 1]*/
        CVI_U8 CPLutY[256]; /*Rw; Range:[0, 255]*/
        CVI_U8 CPLutU[256]; /*Rw; Range:[0, 255]*/
        CVI_U8 CPLutV[256]; /*Rw; Range:[0, 255]*/
        ISP_CA_MANUAL_ATTR_S stManual;
        ISP_CA_AUTO_ATTR_S stAuto;
} ISP_CA_ATTR_S;

【成员】

成员名称

描述

Enable

模块使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

enOpType

工作类型

OP_TYPE_AUTO:自动模式

OP_TYPE_MANUAL:手动模式

数据类型: ISP_OP_TYPE_E

UpdateInterval

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

取值范围: [1, 255]

数据类型: CVI_U8

CaCpMode

CA 模式选择:

0: CA 模式。

1: CP 模式。

取值范围: [0, 1]

数据类型: CVI_BOOL

CPLutY

CP模式, 根据亮度Y查找LUT对应的Y值。

取值范围: [0, 255]

数据类型: CVI_U8

CPLutU

CP模式, 根据亮度Y查找LUT对应的U值。

取值范围: [0, 255]

数据类型: CVI_U8

CPLutV

CP模式, 根据亮度Y查找LUT对应的V值。

取值范围: [0, 255]

数据类型: CVI_U8

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】