hi_isp_cmos_drc
说明
定义DRC的CMOS参数。
定义
typedef struct {
    hi_bool enable;
    hi_op_mode op_type;
    hi_u16  manual_strength;
    hi_u16  auto_strength;
    hi_u8   spatial_flt_coef;
    hi_u8   range_flt_coef;
    hi_u8   contrast_control;
    hi_s8   detail_adjust_factor;
    hi_u8   range_ada_max;
    hi_u8   grad_rev_max;
    hi_u8   grad_rev_thr;
    hi_u8   bright_gain_lmt;
    hi_u8   bright_gain_lmt_step;
    hi_u8   dark_gain_lmt_y;
    hi_u8   dark_gain_lmt_c;
    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_u16  color_correction_lut[HI_ISP_DRC_CC_NODE_NUM];
    hi_u16  tone_mapping_value[HI_ISP_DRC_TM_NODE_NUM];
    hi_u8   asymmetry;
    hi_u8   second_pole;
    hi_u8   stretch;
    hi_u8   compress;
    hi_u8   curve_sel;
} hi_isp_cmos_drc;
成员
成员名称  | 
描述  | 
|---|---|
enable  | 
使能开关。 取值范围: HI_FALSE:关闭; HI_TRUE:使能。  | 
op_type  | 
DRC工作类型。 取值范围: HI_OP_MODE_AUTO:自动; HI_OP_MODE_MANUAL :手动。  | 
manual_strength  | 
手动模式下DRC的强度,值越大,阴影和高光之间的差分增益就越高。 取值范围:[0x0, 0x3FF]。  | 
auto_strength  | 
自动模式DRC的强度,参数可以读写,值越大,整体强度越大。 取值范围:[0x0, 0x3FF]。  | 
spatial_flt_coef  | 
Filter空域滤波系数。值越大,运动halo越不明显,细节越少,值越小,细节表现越好,运动halo越明显。 取值范围:[0x0, 0x5]  | 
range_flt_coef  | 
Filter值域滤波系数。值越大,halo越明显;值越小,halo表现越好,但是在强边缘处可能会出现描边现象。 取值范围:[0x0, 0xA]  | 
contrast_control  | 
局部对比度控制,参数效果与图像亮度分布相关,一般场景下建议值为6到10之间。 取值范围:[0x0, 0xF]  | 
detail_adjust_factor  | 
Filter细节微调系数。值越大,整体细节越强。 取值范围:[-0xF, 0xF]  | 
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]  | 
bright_gain_lmt  | 
亮区亮度增益限制目标值;值越大,限制越大。 取值范围:[0x0, 0xF]  | 
bright_gain_lmt_step  | 
亮区亮度增益限制自适应步长;值越小,限制越大。 取值范围:[0x0, 0xF]  | 
dark_gain_lmt_y  | 
暗区亮度增益限制;值越大,限制越大。 取值范围:[0x0, 0x85]  | 
dark_gain_lmt_c  | 
暗区色度增益限制;值越大,限制越大。 取值范围:[0x0, 0x85]  | 
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]  | 
color_correction_lut  | 
颜色校正系数LUT,值越小,饱和度越低。 取值范围:[0x0, 0x400] #define HI_ISP_DRC_CC_NODE_NUM 33  | 
tone_mapping_value  | 
用户自定义Tone Mapping曲线LUT。 取值范围:[0x0, 0xFFFF] #define HI_ISP_DRC_TM_NODE_NUM 200  | 
asymmetry  | 
用于生成Asymmetry Curve,值越小,暗区亮度拉伸越明显。 取值范围:[1, 30]  | 
second_pole  | 
用于生成Asymmetry Curve,值越小,亮区亮度压制越强,有利于保留高亮细节。 取值范围:[150, 210]  | 
stretch  | 
用于生成Asymmetry Curve,值越小,整体亮度越亮。 取值范围:[30, 60]  | 
compress  | 
用于生成Asymmetry Curve,值越小,整体亮度越亮。 取值范围:[100, 200]  | 
curve_sel  | 
DRC Tone mapping曲线选择。 取值范围: 
  |