hi_isp_drc_attr
说明
定义 ISP DRC 属性。
定义
typedef struct {
     hi_bool enable;
     hi_isp_drc_curve_select curve_select;
     hi_u8  purple_reduction_strength;
     hi_u8  local_mixing_bright_max;
     hi_u8  local_mixing_bright_min;
     hi_u8  local_mixing_bright_thr;
     hi_s8  local_mixing_bright_slo;
     hi_u8  local_mixing_dark_max;
     hi_u8  local_mixing_dark_min;
     hi_u8  local_mixing_dark_thr;
     hi_s8  local_mixing_dark_slo;
     hi_u8  bright_gain_lmt;
     hi_u8  bright_gain_lmt_step;
     hi_u8  dark_gain_lmt_y;
     hi_u8  dark_gain_lmt_c;
     hi_u16 color_correction_lut[HI_ISP_DRC_CC_NODE_NUM];
     hi_u16 tone_mapping_value[HI_ISP_DRC_TM_NODE_NUM];
     hi_u8  contrast_control;
     hi_s8  detail_adjust_factor;
     hi_u8  spatial_flt_coef;
     hi_u8  range_flt_coef;
     hi_u8  range_ada_max;
     hi_u8  grad_rev_max;
     hi_u8  grad_rev_thr;
     hi_op_mode op_type;
     hi_isp_drc_manual_attr manual_attr;
     hi_isp_drc_auto_attr   auto_attr;
     hi_isp_drc_asymmetry_curve_attr asymmetry_curve;
} hi_isp_drc_attr;
成员
| 成员名称 | 描述 | 
|---|---|
| enable | DRC 动态范围压缩使能。 取值范围: 
 | 
| curve_select | DRC Tone mapping 曲线选择。 取值范围: 
 | 
| purple_reduction_strength | 紫边校正强度,值越大,紫边校正强度越大。 取值范围:[0x0, 0x80] | 
| local_mixing_bright_max | 线性细节增强:用来控制正向细节的增益的最大值。 取值范围:[0x0, 0x80] | 
| local_mixing_bright_min | 线性细节增强:用来控制正向细节的增益的最小值。 取值范围:[0x0, 0x40] | 
| local_mixing_bright_thr | 线性细节增强:用来控制正向细节增益随亮度自适应的阈值。当像素亮度超过该阈值,增益将从最大值向最小值过渡(或反之,取决于斜率参数的符号)。 取值范围:[0x0, 0xFF] | 
| local_mixing_bright_slo | 线性细节增强:用来控制正向细节增益随亮度自适应的斜率。绝对值越大,从最小值到最大值(或反之)过渡越快。 取值范围:[-0x7, 0x7] | 
| local_mixing_dark_max | 线性细节增强:用来控制负向细节的增益最大值。 取值范围:[0x0, 0x80] | 
| local_mixing_dark_min | 线性细节增强:用来控制负向细节的增益最小值。 取值范围:[0x0, 0x40] | 
| local_mixing_dark_thr | 线性细节增强:用来控制负向细节增益随亮度自适应的阈值。当像素亮度超过该阈值,增益将从最小值向最大值过渡(或反之,取决于斜率参数的符号)。 取值范围:[0x0, 0xFF] | 
| local_mixing_dark_slo | 线性细节增强:用来控制负向细节增益随亮度自适应的斜率。绝对值越大,从最小值到最大值(或反之)过渡越快。 取值范围:[-0x7, 0x7] | 
| bright_gain_lmt | 亮区亮度增益限制目标值,值越大,限制越大。 取值范围:[0x0, 0xF] | 
| bright_gain_lmt_step | 亮区亮度增益限制自适应步长,值越小,限制越大。 取值范围:[0x0, 0xF] | 
| dark_gain_lmt_y | 暗区亮度增益限制,值越大,限制越大。 取值范围:[0x0, 0x85] | 
| dark_gain_lmt_c | 暗区色度增益限制,值越大,限制越大。 取值范围:[0x0, 0x85] | 
| color_correction_lut[HI_ISP_DRC_CC_NODE_NUM] | 颜色校正系数LUT,值越小,饱和度越低。 取值范围:[0x0, 0x400] #define HI_ISP_DRC_CC_NODE_NUM 33 | 
| tone_mapping_value[HI_ISP_DRC_TM_NODE_NUM] | 用户自定义Tone Mapping曲线 LUT。 取值范围:[0x0, 0xFFFF] #define HI_ISP_DRC_TM_NODE_NUM 200 | 
| contrast_control | 局部对比度控制,参数效果与图像亮度分布相关,一般场景下建议值为6到10 之间。 取值范围:[0x0, 0xF] | 
| detail_adjust_factor | Filter细节微调系数。值越大,整体细节越强。 取值范围:[-0xF, 0xF] | 
| spatial_flt_coef | Filter 空域滤波系数。值越大,运动光晕越不明显,细节越少;值越小,细节表现越好,运动halo越明显。 取值范围:[0x0, 0x5] | 
| range_flt_coef | Filter 值域滤波系数。值越大,halo越明显;值越小,halo表现越好,但是在强边缘处可能会出现描边现象。 取值范围:[0x0, 0xA] | 
| range_ada_max | 控制值域滤波系数的自适应范围。实际生效滤波系数在[range_flt_coef, MIN(range_flt_coef+range_ada_max, 0xA)]范围内。调大该值有助于减弱边线,但同时可能造成背光物体细节损失。 取值范围:[0x0, 0x8] | 
| grad_rev_max | 去边线强度。值越大,边线减弱越明显,但是可能会带来细节损失。 取值范围:[0x0, 0x40] | 
| grad_rev_thr | 边线检测阈值。值越大,边线减弱越明显,但是可能会带来细节损失。 取值范围:[0x0, 0x80] | 
| op_type | DRC工作类型。 取值范围: 
 | 
| manual_attr | DRC 手动参数。 | 
| auto_attr | DRC 自动参数。 | 
| asymmetry_curve | DRC Asymmetry Curve 属性. | 
注意事项
- 建议color_correction_lut 的值不要调试过小,因为降低饱和度的同时会带来高频细节的损失,用户可以配合CA模块来调试整体饱和度。
- dark_gain_lmt_y和dark_gain_lmt_c两个接口的实际效果不完全平滑,即参数在两个相邻值之间切换时,效果可能存在跳变。