定义Mesh Shading增益表属性。
typedef struct { hi_u8 mesh_scale; hi_u16 x_grid_width[HI_ISP_MLSC_X_HALF_GRID_NUM]; hi_u16 y_grid_width[HI_ISP_MLSC_Y_HALF_GRID_NUM]; hi_isp_shading_gain_lut lsc_gain_lut[HI_ISP_MLSC_GAIN_LUT_NUM]; hi_isp_bnr_lsc_gain_lut bnr_lsc_gain_lut; } hi_isp_shading_lut_attr;
成员名称 |
描述 |
---|---|
mesh_scale |
增益表精度控制参数。当选择的精度较低时(比如mesh_scale为3),画面衰减幅度大,可能会出现格子现象,可以提高精度(比如7)重新标定。 取值范围:[0, 7]。 |
x_grid_width[HI_ISP_MLSC_X_HALF_GRID_NUM] |
用来储存各grid分区宽度大小信息。该接口各分量最小值为4,总和应为原画面宽度的四分之一。(例如原画面大小为 1080p,则该接口各参数总和应为480) 取值范围:[4,width/4 - 60],width为原画面的宽度。 #define HI_ISP_LSC_GRID_COL 33 #define HI_ISP_MLSC_X_HALF_GRID_NUM ((HI_ISP_LSC_GRID_COL - 1) / 2) |
y_grid_width[HI_ISP _MLSC_Y_HALF_GRID_NUM] |
用来储存各 GRID 分区高度大小信息。该接口各分量最小值为 4,总和应为原画面高度的四分之一。(例如原画面大小为 1080p,则该接口各参数总和应为 270) 取值范围:[4,height/4 - 60],height为原画面的高度。 #define HI_ISP_LSC_GRID_ROW 33 #define HI_ISP_MLSC_Y_HALF_GRID_NUM ((HI_ISP_LSC_GRID_ROW - 1) / 2) |
lsc_gain_lut[HI_ISP_MLSC_GAIN_LUT_NUM] |
两组色温下的增益表配置。硬件基于这两组表以及blend_ratio进行当前色温下校正增益表的计算。 取值范围:[0, 1023]。 #define HI_ISP_MLSC_GAIN_LUT_NUM 2 |
bnr_lsc_gain_lut |
用于BNR LSC参考所用的增益表。 取值范围:[0, 65535]。 |
− 当mesh_scale为 0 至 3 时,增益的表示与其他算法一致,增益精度从高到低,取值范围从小变大,1倍增益不为 0;
− 当mesh_scale为 4 至 7 时,精度从高到低,取值范围从小变大,增益的表示方式略有差异,实际的增益计算方式为通用增益减去对应精度的 1倍增益,比如mesh_scale为 5时,按照增益精度为1.9,若通用增益为886,1倍对应增益512,那么实际的增益为886-512=374,这种表示方式下,最小的增益为1倍,但是表示的范围比上一种要大。