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两个接口的实际效果不完全平滑,即参数在两个相邻值之间切换时,效果可能存在跳变。