10. LSC

10.1. 功能描述

LSC,即Lens shading correction,镜头阴影校正。

在 cv184x 系列中,LSC会分成两个部分:一个是MLSC,即MLSC(Mesh Lens shading correction),主要用来校正Color Shading。在处理器中 LSC 算法使用网格方法对图像先做标定,然后矫正,算法会将Bayer上的域画面划分成 37×37 个子区块。Bayer域四个通道由三组不同的RGB增益数组来做计算。由于只做颜色上的校正,所以一般G通道的增益保持一倍的设定,即512。当标定MLSC组数为多组时,则会根据当前的色温选出邻近的两色温之MLSC标定表进行内插,产生对应当前色温的MLSC增益。标定的组数则由 LscGainLutSize 参数定义之。

另一个是RLSC(Radius Lens shading correction),主要用来校正Luma Shading。在LSC算法中,会以画面的亮度中心为圆心,各像素点和圆心之间的距离为半径,做不同程度亮度补偿。一般离亮度中心越远,补偿强度越大。

这里主要介绍MLSC的相关API和数据结构,RLSC 将在下一章节介绍。

10.2. API 参考

10.2.1. CVI_ISP_SetMeshShadingAttr

【描述】

设置Mesh Shading算法参数

【语法】

CVI_S32 CVI_ISP_SetMeshShadingAttr(VI_PIPE ViPipe, const ISP_MESH_SHADING_ATTR_S *pstMeshShadingAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstMeshShadingAttr

Mesh Shading算法参数

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_MESH_SHADING_ATTR_S stAttr;
CVI_ISP_GetMeshShadingAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetMeshShadingAttr(ViPipe, &stAttr);

【相关主题】

10.2.2. CVI_ISP_GetMeshShadingAttr

【描述】

获取Mesh Shading算法参数

【语法】

CVI_S32 CVI_ISP_GetMeshShadingAttr(VI_PIPE ViPipe, ISP_MESH_SHADING_ATTR_S *pstMeshShadingAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstMeshShadingAttr

Mesh Shading算法参数

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

10.2.3. CVI_ISP_SetMeshShadingGainLutAttr

【描述】

设置LSC 网格形式补偿增益表

【语法】

CVI_S32 CVI_ISP_SetMeshShadingGainLutAttr(VI_PIPE ViPipe, const ISP_MESH_SHADING_GAIN_LUT_ATTR_S *pstMeshShadingGainLutAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstMeshShadingGainLutAttr

LSC 网格形式补偿增益表

输入

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

VI_PIPE ViPipe = 0;
ISP_MESH_SHADING_GAIN_LUT_ATTR_S stAttr;
CVI_ISP_GetMeshShadingGainLutAttr(ViPipe, &stAttr);
stAttr.enOpType = OP_TYPE_AUTO;
CVI_ISP_SetMeshShadingGainLutAttr(ViPipe, &stAttr);

【相关主题】

10.2.4. CVI_ISP_GetMeshShadingGainLutAttr

【描述】

获取LSC 网格形式补偿增益表

【语法】

CVI_S32 CVI_ISP_GetMeshShadingGainLutAttr(VI_PIPE ViPipe, ISP_MESH_SHADING_GAIN_LUT_ATTR_S *pstMeshShadingGainLutAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI_PIPE 号

输入

pstMeshShadingGainLutAttr

LSC 网格形式补偿增益表

输出

【返回值】

返回值

描述

0

成功

非 0

失败,其值为 错误码

【需求】

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

  • 库文件: libisp.so

【注意】

【举例】

【相关主题】

10.3. 数据类型

10.3.1. ISP_MESH_SHADING_ATTR_S

【说明】

定义Mesh Shading算法参数

【定义】

typedef struct _ISP_MESH_SHADING_ATTR_S {
        CVI_BOOL Enable; /*Rw; Range:[0, 1]*/
        ISP_OP_TYPE_E enOpType;
        CVI_U8 UpdateInterval; /*Rw; Range:[0, 255]*/
} ISP_MESH_SHADING_ATTR_S;

【成员】

成员名称

描述

Enable

模块使能开关

取值范围: [0, 1]

数据类型: CVI_BOOL

enOpType

工作类型

OP_TYPE_AUTO:自动模式

OP_TYPE_MANUAL:手动模式

数据类型: ISP_OP_TYPE_E

UpdateInterval

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

取值范围: [0, 255]

数据类型: CVI_U8

【注意事项】

【相关数据类型及接口】

10.3.2. ISP_MESH_SHADING_GAIN_LUT_ATTR_S

【说明】

定义LSC 网格形式补偿增益表

【定义】

typedef struct _ISP_MESH_SHADING_GAIN_LUT_ATTR_S {
        CVI_U8 Size; /*Rw; Range:[1, 7]*/
        ISP_MESH_SHADING_GAIN_LUT_S LscGainLut[ISP_MLSC_COLOR_TEMPERATURE_SIZE];
} ISP_MESH_SHADING_GAIN_LUT_ATTR_S;

【成员】

成员名称

描述

Size

色温自适应LSC补偿增益表数量

取值范围: [1, 7]

数据类型: CVI_U8

LscGainLut

LSC 网格线形式补偿增益表

数据类型: ISP_MESH_SHADING_GAIN_LUT_S

【注意事项】

【相关数据类型及接口】

10.3.3. ISP_MESH_SHADING_GAIN_LUT_S

【说明】

定义LSC 网格线形式补偿增益表细项

【定义】

typedef struct _ISP_MESH_SHADING_GAIN_LUT_S {
        CVI_U16 ColorTemperature; /*Rw; Range:[0, 30000]*/
        CVI_U16 RGain[CVI_ISP_LSC_GRID_POINTS]; /*Rw; Range:[0, 4095]*/
        CVI_U16 GGain[CVI_ISP_LSC_GRID_POINTS]; /*Rw; Range:[0, 4095]*/
        CVI_U16 BGain[CVI_ISP_LSC_GRID_POINTS]; /*Rw; Range:[0, 4095]*/
} ISP_MESH_SHADING_GAIN_LUT_S;

【成员】

成员名称

描述

ColorTemperature

色温自适应LSC补偿增益表所对应之色温,单位为 K

取值范围: [0, 30000]

数据类型: CVI_U16

RGain

红色通道增益

取值范围: [0, 4095]

数据类型: CVI_U16

GGain

绿色通道增益

取值范围: [0, 4095]

数据类型: CVI_U16

BGain

蓝色通道增益

取值范围: [0, 4095]

数据类型: CVI_U16

【注意事项】

【相关数据类型及接口】