hi_isp_ae_sensor_default
说明
定义AE算法库的初始化参数结构体。
定义
typedef struct { hi_u8 hist_thresh[HI_ISP_HIST_THRESH_NUM]; hi_u8 ae_compensation; hi_u32 lines_per500ms; hi_u32 flicker_freq; hi_float fps; hi_u32 hmax_times; hi_u32 init_exposure; hi_u32 init_ae_speed; hi_u32 init_ae_tolerance; hi_u32 full_lines_std; hi_u32 full_lines_max; hi_u32 full_lines; hi_u32 binning_full_lines; hi_u32 max_int_time; hi_u32 min_int_time; hi_u32 max_int_time_target; hi_u32 min_int_time_target; hi_isp_ae_accuracy int_time_accu; hi_u32 max_again; hi_u32 min_again; hi_u32 max_again_target; hi_u32 min_again_target; hi_isp_ae_accuracy again_accu; hi_u32 max_dgain; hi_u32 min_dgain; hi_u32 max_dgain_target; hi_u32 min_dgain_target; hi_isp_ae_accuracy dgain_accu; hi_u32 max_isp_dgain_target; hi_u32 min_isp_dgain_target; hi_u32 isp_dgain_shift; hi_u32 max_int_time_step; hi_bool max_time_step_enable; hi_u32 max_inc_time_step[HI_ISP_WDR_MAX_FRAME_NUM]; hi_u32 max_dec_time_step[HI_ISP_WDR_MAX_FRAME_NUM]; hi_u32 lf_max_short_time; hi_u32 lf_min_exposure; hi_isp_ae_route ae_route_attr; hi_bool ae_route_ex_valid; hi_isp_ae_route_ex ae_route_attr_ex; hi_isp_ae_route ae_route_sf_attr; hi_isp_ae_route_ex ae_route_sf_attr_ex; hi_u16 man_ratio_enable; hi_u32 arr_ratio[HI_ISP_EXP_RATIO_NUM]; hi_isp_iris_type iris_type; hi_isp_piris_attr piris_attr; hi_isp_iris_f_no max_iris_fno; hi_isp_iris_f_no min_iris_fno; hi_isp_ae_strategy ae_exp_mode; hi_u16 iso_cal_coef; hi_u8 ae_run_interval; hi_u32 exp_ratio_max; hi_u32 exp_ratio_min; hi_bool diff_gain_support; hi_isp_quick_start_param quick_start; hi_isp_prior_frame prior_frame; hi_bool ae_gain_sep_cfg; hi_bool lhcg_support; hi_u32 sns_lhcg_exp_ratio; } hi_isp_ae_sensor_default;
成员
成员名称 |
描述 |
---|---|
hist_thresh |
五段直方图的分割门限值数组,数组内各元素的取值范围为[0,0xff]。推荐使用默认值,线性模式为{0xd,0x28,0x60,0x80},BUILT_IN WDR模式为{0x20,0x40,0x60,0x80},帧合成WDR模式为{0xc,0x18,0x60,0x80}。 #define HI_ISP_HIST_THRESH_NUM 4 |
ae_compensation |
AE亮度目标值,取值范围为[0,255],建议用0x38~0x40。 |
lines_per500ms |
每 500ms 的总行数。 |
flicker_freq |
抗闪频率,数值为当前电源频率的 256 倍。 |
fps |
基准帧率。 |
hmax_times |
Sensor 读出一行的时间,单位:ns。 |
init_exposure |
默认初始曝光量,等于曝光时间与曝光增益的乘积,其中曝光时间的单位为微秒(us)。AE 算法采用该值作为初始 5 帧的曝光量,可用于运动 DV 加速启动。 建议关注快速启动的产品形态根据常用场景配置一个合适的初始曝光量,以达到 AE 快速收敛。线性/WDR 模式切换时,也会采用该值作为切换后第一帧的曝光量。合理修改sensor初始化序列的曝光时间和增益,将曝光时间(行数)*增益(6bit 小数精度)计算得到曝光量,并赋值给该变量,可使得切换更加平滑。若不设置,该值默认为 0。 |
init_ae_speed |
默认初始AE调节速度,昇腾AE算法采用该值作为初始100帧的调节速度,可用于运动DV加速启动。 建议关注快速启动的产品形态可将该值配置为128。若不设置,该值默认为0。AE算法内部会将该值钳位至[64,255]。 |
init_ae_tolerance |
默认初始AE曝光容忍偏差,昇腾AE算法采用该值作为初始100帧的曝光容忍偏差值,可用于设置得到首次AE收敛稳定标志的亮度范围。AE统计亮度第一次落在[目标亮度- init_ae_tolerance,目标亮度+init_ae_tolerance]范围内时,得到首次AE收敛稳定标志。若不设置,该值默认为0。若在cmos.c 不对该值赋值或赋值为0,则AE算法内部将其置为ae_compensation/10。AE算法内部会将该值钳位至(0,255]。 |
full_lines_std |
基准帧率时1帧的有效行数。 |
full_lines_max |
sensor降帧后1帧所能达到的最大行数,一般设为sensor所支持的最大行数。 |
full_lines |
sensor每帧实际生效的总行数。使用昇腾AE算法时,回调cmos_fps_set和cmos_slow_framerate_set时必须给该值赋值,用于返回每帧实际生效的总行数。 |
binning_full_lines |
sensor在binning模式下的等效曝光总行数,以行为单位。 |
max_int_time |
最大曝光时间,以行为单位。 |
min_int_time |
最小曝光时间,以行为单位。 |
max_int_time_target |
最大曝光时间目标值,以行为单位。 |
min_int_time_target |
最小曝光时间目标值,以行为单位。 |
int_time_accu |
曝光时间精度。 |
max_again |
最大模拟增益,以倍为单位。 |
min_again |
最小模拟增益,以倍为单位。 |
max_again_target |
最大模拟增益目标值,以倍为单位。 |
min_again_target |
最小模拟增益目标值,以倍为单位。 |
again_accu |
模拟增益精度。 |
max_dgain |
最大数字增益,以倍为单位。 |
min_dgain |
最小数字增益,以倍为单位。 |
max_dgain_target |
最大数字增益目标值,以倍为单位。 |
min_dgain_target |
最小数字增益目标值,以倍为单位。 |
dgain_accu |
数字增益精度。 |
max_isp_dgain_target |
最大ISP数字增益目标值,以倍为单位。 |
min_isp_dgain_target |
最小ISP数字增益目标值,以倍为单位。 |
isp_dgain_shift |
ISP数字增益精度。 |
max_int_time_step |
自动长帧模式下普通模式和长帧模式之前切换过程中,对短帧曝光时间减小的最大调整步长,以行数为单位。仅在自动长帧模式下有效。 |
max_time_step_enable |
短帧曝光时间最大步长限定开关,该值为HI_TRUE时,短帧曝光时间最大步长限制功能生效。仅在2帧行合成WDR模式下生效。 |
max_inc_time_step |
目前只开放max_inc_time_step [0],max_inc_time_step[0]为短帧曝光时间增加的最大步长,以行为单位。即下一帧的曝光行数相比当前帧增加的最大曝光行数不超过max_inc_time_step [0]。仅在2帧行合成WDR模式下max_time_step_enable开关使能后生效。 HI_ISP_WDR_MAX_FRAME_NUM用于定义WDR合成的最大帧数,表示4。 |
max_dec_time_step |
目前只开放max_dec_time_step [0], max_dec_time_step [0]为短帧曝光时间减少的最大步长,以行为单位。即下一帧的曝光行数相比当前帧减少的最大曝光行数不超过max_dec_time_step [0]。仅在2帧行合成 WDR 模式下max_time_step_enable开关使能后生效。 HI_ISP_WDR_MAX_FRAME_NUM用于定义WDR合成的最大帧数,表示4。 |
lf_max_short_time |
自动长帧模式下短帧最大曝光时间。 |
lf_min_exposure |
自动长帧模式下强制输出长帧的最小曝光量。 |
ae_route_attr |
AE默认分配路线。 |
ae_route_ex_valid |
AE扩展分配路线是否生效开关,该值为HI_TRUE时使用扩展分配路线,否则使用普通AE分配路线。 |
ae_route_attr_ex |
AE默认扩展分配路线,合理配置可用于优化WDR模式图像效果。 |
ae_route_sf_attr |
AE短帧默认分配路线。 |
ae_route_sf_attr_ex |
AE短帧默认扩展分配路线,合理配置可用于优化WDR模式图像效果。 |
man_ratio_enable |
多帧合成WDR手动曝光比使能,该值为HI_TRUE时,曝光比固定,不会根据场景自动更新。 |
arr_ratio |
多帧合成WDR相邻2帧默认曝光比。当man_ratio_enable为HI_TRUE时,采用arr_ratio[0]作为S/VS 默认曝光比,arr_ratio[1]作为M/S默认曝光比,arr_ratio[2]作为 L/M默认曝光比。上述VS,S,M,L分别表示极短帧,短帧,中帧和长帧的曝光时间,2帧合成时只有VS和S;3帧合成时采用VS,S 和 M;4帧合成时采用VS,S,M 和 L。6bit小数精度。 数组内各元素取值范围:[0x40, 0xFFF]。 HI_ISP_EXP_RATIO_NUM用于定义WDR曝光比的数目,表示3。 |
iris_type |
默认镜头类型,DC-Iris 或 P-Iris。默认镜头类型与实际对接镜头类型不一致时,AI算法无法正常工作。 |
piris_attr |
P-Iris参数,与具体镜头相关。只有默认镜头类型是P-Iris时,才需要用该结构体参数。 |
max_iris_fno |
P-Iris可用的最大F值,与具体使用镜头相关,使用P-Iris时必须设置,用于限制实际生效的max_iris_fno_target和min_iris_fno_target,避免光圈目标值落到不合理的范围导致AE分配异常。 取值范围为[HI_ISP_IRIS_F_NO_32_0, HI_ISP_IRIS_F_NO_1_0]。 |
min_iris_fno |
P-Iris可用的最小F值,与具体使用镜头相关,使用P-Iris时必须设置,用于限制实际生效的max_iris_fno_target和min_iris_fno_target,避免光圈目标值落到不合理的范围导致AE分配异常。 取值范围为[HI_ISP_IRIS_F_NO_32_0, HI_ISP_IRIS_F_NO_1_0]。 |
ae_exp_mode |
默认曝光策略,高光优先或低光优先。建议 FSWDR 模式设置为低光优先,线性模式及BuiltIn WDR设置为高光优先。若不设置该值,默认为高光优先。 |
iso_cal_coef |
ISO标定系数,用于保证拍照所需DCF信息中显示的ISO是标准的,8bit精度。 取值范围:[0x0, 0xFFFF],默认值为0x100。 |
ae_run_interval |
默认AE算法运行间隔,以帧为单位。若不设置,则默认AE每帧执行一次。 取值范围:(0x0, 0xFF] |
exp_ratio_max |
默认最大曝光比,仅在多帧合成WDR模式下有效。
取值范围:[0x40, 0x4000] |
exp_ratio_min |
默认最小曝光比,仅在多帧合成 WDR 模式下有效。
取值范围:[0x40, exp_ratio_max] |
diff_gain_support |
sensor是否支持长短帧不同增益配置,该值为HI_TRUE时,sensor支持长短帧不同senor模拟增益、sensor数字增益配置,该值为HI_FALSE时,sensor不支持长短帧不同senor模拟增益、sensor数字增益配置。 |
quick_start |
设置不带光敏快启相关参数。 |
prior_frame |
WDR模式下曝光路线生效的优先帧, 线性模式下此参数需配置为LONG_FRAME。 |
ae_gain_sep_cfg |
长短帧增益是否分开分配。 |
lhcg_support |
Sensor是否使用LCG+HCG模式,该值为HI_TRUE时,Sensor使用LCG+HCG模式,该值为HI_FALSE 时, Sensor使用普通模式。 |
sns_lhcg_exp_ratio |
LCG+HCG模式的基础曝光比。 |
注意事项
- 线性/WDR模式切换时,会回调pfn_cmos_get_ae_default函数更新AE相关默认参数。若WDR模式要使用AE扩展分配路线而线性模式不需要,建议在cmos_get_ae_default函数里面先对AE路线清零:ae_route_ex_valid= HI_FALSE,ae_route_attr. total_num= 0,ae_route_attr_ex. total_num= 0,然后视需要在WDR分支赋值。
- 昇腾AE算法采用init_exposure作为初始5帧的曝光量,可用于运动DV加速启动。建议关注快速启动的产品形态根据常用场景配置一个合适的初始曝光量,以达到AE快速收敛。FSWDR模式该值对应的是长帧曝光量,FSWDR模式若要快速启动,最好在cmos.c设置为固定曝光比,以减少曝光比调整的时间,待AE稳定后再根据需要设置为自动曝光比。若在cmos.c未给init_exposure赋值或将init_exposure赋值为0,则AE算法内部按起始曝光量为1024开始计算。
WDR模式切换时,昇腾AE算法内部会计算切换曝光量以保证切换平滑,如果希望在WDR模式切换时init_exposure生效,可以通过配置 init_ae_speed为0xFFFFFFFF实现。
- 对于特定Sensor,如OV2718 DCG模式,内部仅支持固定曝光比,需要配置man_ratio_enable= HI_TRUE,并把ratio配置为Sensor支持的固定曝光比,如果使用自动曝光比或手动配置为不支持的曝光比,会使图像效果不正常。
- max_int_time_step自动长帧模式下普通模式和长帧模式之前切换过程中, 对短帧曝光时间减小的最大调整步长,以行数为单位。仅在自动长帧模式下有效。此参数针对短帧曝光时间减小过快会出现坏帧的sensor开放,一般sensor可以设定为较大值,则可以受此参数限制。
- max_time_step_enable,max_inc_time_step [0],max_dec_time_step [0],这部分参数针对2合1行合成WDR模式下,短帧曝光时间前后2帧之间增加或者减少有限制的sensor开放。
- lf_max_short_time为自动长帧模式下短帧曝光时间的最大值,如果此参数设置过小会导致自动长帧模式下亮区噪声表现变差。
- 对于支持LCG+HCG模式的Sensor,如OV2775,如果使用该模式,需正确配置基础曝光比sns_lhcg_exp_ratio,并且必须配置prior_frame=HI_ISP_LONG_FRAME,ae_gain_sep_cfg= HI_TRUE,否则会使图像效果不正常。