12. CCM

12.1. 功能描述

CCM 为 Color Correction Matrix 的简称。因为 Sensor 在 RGB 的响应与人眼不用,所以需要使用此矩阵做转换,让前端捕获的图片亮度与人眼一致。

12.2. API 参考

12.2.1. CVI_ISP_SetCCMAttr

【描述】

设置色彩校正矩阵属性参数

【语法】

CVI_S32 CVI_ISP_SetCCMAttr(VI_PIPE ViPipe, const ISP_CCM_ATTR_S *pstCCMAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstCCMAttr

色彩校正矩阵属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_CCM_ATTR_S stAttr;
CVI_ISP_GetCCMAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetCCMAttr(ViPipe, &stAttr);

【相关主题】

12.2.2. CVI_ISP_GetCCMAttr

【描述】

获取色彩校正矩阵属性参数

【语法】

CVI_S32 CVI_ISP_GetCCMAttr(VI_PIPE ViPipe, ISP_CCM_ATTR_S *pstCCMAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstCCMAttr

色彩校正矩阵属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

12.2.3. CVI_ISP_SetCCMSaturationAttr

【描述】

设置色彩饱和度属性参数

【语法】

CVI_S32 CVI_ISP_SetCCMSaturationAttr(VI_PIPE ViPipe, const ISP_CCM_SATURATION_ATTR_S *pstCCMSaturationAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstCCMSaturationAttr

色彩饱和度属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_CCM_SATURATION_ATTR_S stAttr;
CVI_ISP_GetCCMSaturationAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetCCMSaturationAttr(ViPipe, &stAttr);

【相关主题】

12.2.4. CVI_ISP_GetCCMSaturationAttr

【描述】

获取色彩饱和度属性参数

【语法】

CVI_S32 CVI_ISP_GetCCMSaturationAttr(VI_PIPE ViPipe, ISP_CCM_SATURATION_ATTR_S *pstCCMSaturationAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstCCMSaturationAttr

色彩饱和度属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

12.2.5. CVI_ISP_SetSaturationAttr

【描述】

设置色彩饱和度属性参数

【语法】

CVI_S32 CVI_ISP_SetSaturationAttr(VI_PIPE ViPipe, const ISP_SATURATION_ATTR_S *pstSaturationAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstSaturationAttr

色彩饱和度属性参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_SATURATION_ATTR_S stAttr;
CVI_ISP_GetSaturationAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetSaturationAttr(ViPipe, &stAttr);

【相关主题】

12.2.6. CVI_ISP_GetSaturationAttr

【描述】

获取色彩饱和度属性参数

【语法】

CVI_S32 CVI_ISP_GetSaturationAttr(VI_PIPE ViPipe, ISP_SATURATION_ATTR_S *pstSaturationAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstSaturationAttr

色彩饱和度属性参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

12.3. 数据类型

12.3.1. ISP_CCM_ATTR_S

【说明】

定义色彩校正矩阵属性参数

【定义】

typedef struct _ISP_CCM_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        ISP_OP_TYPE_E enOpType;
        CVI_U8 UpdateInterval; /*Rw; Range:[0, 255]*/
        CVI_U8 CCMOverStr; /*Rw; Range:[0, 255]*/
        CVI_U8 CCMOverThr; /*Rw; Range:[0, 255]*/
        ISP_CCM_MANUAL_ATTR_S stManual;
        ISP_CCM_AUTO_ATTR_S stAuto;
} ISP_CCM_ATTR_S;

【成员】

成员名称

描述

Enable

模块使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

enOpType

工作类型

OP_TYPE_AUTO:自动模式

OP_TYPE_MANUAL:手动模式

数据类型: ISP_OP_TYPE_E

UpdateInterval

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

取值范围: [0, 255]

数据类型: CVI_U8

CCMOverStr

过饱和保护强度。

取值范围: [0, 255]

数据类型: CVI_U8

CCMOverThr

过饱和保护。过饱和判断阈值,值越大,越容易进入到过饱和保护状态。

取值范围: [0, 255]

数据类型: CVI_U8

stManual

手动参数

数据类型: ISP_CCM_MANUAL_ATTR_S

stAuto

自动参数

数据类型: ISP_CCM_AUTO_ATTR_S

【注意事项】

【相关数据类型及接口】

12.3.2. ISP_CCM_MANUAL_ATTR_S

【说明】

定义色彩校正矩阵属性手动参数

【定义】

typedef struct _ISP_CCM_MANUAL_ATTR_S {
        CVI_BOOL SatEnable; /*Rw; Range:[0, 1]*/
        CVI_S16 CCM[9]; /*Rw; Range:[-8192, 8191]*/
} ISP_CCM_MANUAL_ATTR_S;

【成员】

成员名称

描述

SatEnable

手动模式下,饱和度是否生效。

取值范围: [0, 1]

数据类型: CVI_BOOL

CCM

3x3色彩校正矩阵实际内容

取值范围: [-8192, 8191]

数据类型: CVI_S16

【注意事项】

【相关数据类型及接口】

12.3.3. ISP_CCM_AUTO_ATTR_S

【说明】

定义色彩校正矩阵属性自动参数

【定义】

typedef struct _ISP_CCM_AUTO_ATTR_S {
        CVI_BOOL ISOActEnable; /*Rw; Range:[0, 1]*/
        CVI_BOOL TempActEnable; /*Rw; Range:[0, 1]*/
        CVI_U8 CCMTabNum; /*Rw; Range:[3, 7]*/
        ISP_COLORMATRIX_ATTR_S CCMTab[7];
} ISP_CCM_AUTO_ATTR_S;

【成员】

成员名称

描述

ISOActEnable

低照度下CCM Bypass功能使能。

0: 关闭。

1: 使能。

取值范围: [0, 1]

数据类型: CVI_BOOL

TempActEnable

高低色温下CCM Bypass功能使能。

0: 关闭。

1: 使能。

取值范围: [0, 1]

数据类型: CVI_BOOL

CCMTabNum

当前配置的CCM矩阵个数。

取值范围: [3, 7]

数据类型: CVI_U8

CCMTab

不同色温下的颜色校正矩阵

数据类型: ISP_COLORMATRIX_ATTR_S

【注意事项】

【相关数据类型及接口】

12.3.4. ISP_COLORMATRIX_ATTR_S

【说明】

定义色彩校正矩阵

【定义】

typedef struct _ISP_COLORMATRIX_ATTR_S {
        CVI_U16 ColorTemp; /*Rw; Range:[500, 30000]*/
        CVI_S16 CCM[9]; /*Rw; Range:[-8192, 8191]*/
} ISP_COLORMATRIX_ATTR_S;

【成员】

成员名称

描述

ColorTemp

此色彩校正矩阵适用的色温

取值范围: [500, 30000]

数据类型: CVI_U16

CCM

3x3色彩校正矩阵实际内容

取值范围: [-8192, 8191]

数据类型: CVI_S16

【注意事项】

【相关数据类型及接口】

12.3.5. ISP_CCM_SATURATION_MANUAL_ATTR_S

【说明】

定义手动色彩饱和度属性参数

【定义】

typedef struct _ISP_CCM_SATURATION_MANUAL_ATTR_S {
        CVI_U8 SaturationLE; /*Rw; Range:[0, 255]*/
        CVI_U8 SaturationSE; /*Rw; Range:[0, 255]*/
} ISP_CCM_SATURATION_MANUAL_ATTR_S;

【成员】

成员名称

描述

SaturationLE

长曝饱和度

取值范围: [0, 255]

数据类型: CVI_U8

SaturationSE

短曝饱和度

取值范围: [0, 255]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

12.3.6. ISP_CCM_SATURATION_AUTO_ATTR_S

【说明】

定义自动色彩饱和度属性参数

【定义】

typedef struct _ISP_CCM_SATURATION_AUTO_ATTR_S {
        CVI_U8 SaturationLE[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
        CVI_U8 SaturationSE[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
} ISP_CCM_SATURATION_AUTO_ATTR_S;

【成员】

成员名称

描述

SaturationLE

长曝饱和度

取值范围: [0, 255]

数据类型: CVI_U8

SaturationSE

短曝饱和度

取值范围: [0, 255]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

12.3.7. ISP_CCM_SATURATION_ATTR_S

【说明】

定义色彩饱和度属性参数

【定义】

typedef struct _ISP_CCM_SATURATION_ATTR_S {
        ISP_CCM_SATURATION_MANUAL_ATTR_S stManual;
        ISP_CCM_SATURATION_AUTO_ATTR_S stAuto;
} ISP_CCM_SATURATION_ATTR_S;

【成员】

成员名称

描述

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】

12.3.8. ISP_SATURATION_MANUAL_ATTR_S

【说明】

定义手动色彩饱和度属性参数

【定义】

typedef struct _ISP_SATURATION_MANUAL_ATTR_S {
        CVI_U8 Saturation; /*Rw; Range:[0, 255]*/
} ISP_SATURATION_MANUAL_ATTR_S;

【成员】

成员名称

描述

Saturation

画面的整体饱和度

取值范围: [0, 255]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

12.3.9. ISP_SATURATION_AUTO_ATTR_S

【说明】

定义自动色彩饱和度属性参数

【定义】

typedef struct _ISP_SATURATION_AUTO_ATTR_S {
        CVI_U8 Saturation[ISP_AUTO_ISO_STRENGTH_NUM]; /*Rw; Range:[0, 255]*/
} ISP_SATURATION_AUTO_ATTR_S;

【成员】

成员名称

描述

Saturation

画面的整体饱和度

取值范围: [0, 255]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

12.3.10. ISP_SATURATION_ATTR_S

【说明】

定义色彩饱和度属性参数

【定义】

typedef struct _ISP_SATURATION_ATTR_S {
        ISP_OP_TYPE_E enOpType;
        ISP_SATURATION_MANUAL_ATTR_S stManual;
        ISP_SATURATION_AUTO_ATTR_S stAuto;
} ISP_SATURATION_ATTR_S;

【成员】

成员名称

描述

enOpType

工作类型

OP_TYPE_AUTO:自动模式

OP_TYPE_MANUAL:手动模式

数据类型: ISP_OP_TYPE_E

stManual

手动参数

stAuto

自动参数

【注意事项】

【相关数据类型及接口】