---
title: hi_isp_shading_lut_attr
description: "定义Mesh Shading增益表属性。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/ispdevug/ispdevapi_0391.html
sourcePath: /source/zh/canncommercial/900/others/ispdevug/ispdevapi_0391.html
indexId: 2a38924b125716ba6030c766ac1a29783e2ebaec5ee68aea48fabc5ec16f9dd165
---
# hi_isp_shading_lut_attr

#### 说明

定义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]。 |


#### 注意事项

- 调整x_grid_width或y_grid_width里的值即调整分区宽度或者高度。注意由于整体画面为上下、左右对称，因此每当设置一个分区的宽度或者高度时，其对称分区的宽度或高度也会相应发生变化。改变后的分区宽度与高度请满足总和为原画面大小宽度或高度的四分之一。由于调节比较复杂并容易造成Color Shading现象，一般不建议手动调节。分辨率切换的时候，x_grid_width与y_grid_width自动重新配置。
- 硬件基于配置的两组色温下的增益表以及blend_ratio进行插值得到当前色温下的校正增益表的计算，从而校正整幅图像的shading现象，其中blend_ratio为lsc_gain_lut[0]对应的权重。
- 在单光源模式下，lsc_gain_lut结构体需要配置成一致，此时需要配置成标定的第一个光源。
- 增益位宽为10bit，即最大值为1023。
  − 当mesh_scale为 0 至 3 时，增益的表示与其他算法一致，增益精度从高到低，取值范围从小变大，1倍增益不为 0；

  − 当mesh_scale为 4 至 7 时，精度从高到低，取值范围从小变大，增益的表示方式略有差异，实际的增益计算方式为通用增益减去对应精度的 1倍增益，比如mesh_scale为 5时，按照增益精度为1.9，若通用增益为886，1倍对应增益512，那么实际的增益为886-512=374，这种表示方式下，最小的增益为1倍，但是表示的范围比上一种要大。

- 在能够完全校正的情况下，增益精度mesh_scale应该尽量选择精度高的档位，提高校正的准确度，例如当mesh_scale为0或4时都能校正，应当选择4。对于某些镜头阴影特别严重的极端情况下，存在无法完全校正的可能，当选择较大增益倍数（如mesh_scale为3）校正时，可能会在边缘处出现暗条纹，此时需要降低增益倍数来提高精度（设mesh_scale为2或7），重新标定，直到暗条纹消失为止。


**表1 mesh_scale与增益精度对应关系**

| mesh\_scale | 增益表的数据格式 | 增益取值范围 | 1 倍增益对应增益配置值 |
| --- | --- | --- | --- |
| 0 | 1.9 | [0,2) | 512 |
| 1 | 2.8 | [0,4) | 256 |
| 2 | 3.7 | [0,8) | 128 |
| 3 | 4.6 | [0,16) | 64 |
| 4 | 0.10 | [1,2) | 0 |
| 5 | 1.9 | [1,3) | 0 |
| 6 | 2.8 | [1,5) | 0 |
| 7 | 3.7 | [1,9) | 0 |
