跳到主要内容

hi_isp_awb_agc_table

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}。
text<br>#define HI_ISP_HIST_THRESH_NUM 4<br>
ae_compensationAE 亮度目标值,取值范围为[0,255],建议用0x38~0x40。
lines_per500ms每 500ms 的总行数。
flicker_freq抗闪频率,数值为当前电源频率的 256 倍。
fps基准帧率。
hmax_timesSensor 读出一行的时间,单位: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_maxsensor 降帧后 1 帧所能达到的最大行数,一般设为 sensor 所支持的最大行数。
full_linessensor 每帧实际生效的总行数。使用海思 AE 算法时,回调 cmos_fps_set 和 cmos_slow_framerate_set 时必须给该值赋值,用于返回每帧实际生效的总行数。
binning_full_linessensor 在 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_shiftISP 数字增益精度。
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_attrAE 默认分配路线。
ae_route_ex_validAE 扩展分配路线是否生效开关,该值为 HI_TRUE 时使用扩展分配路线,否则使用普通 AE 分配路线。
ae_route_attr_exAE 默认扩展分配路线,合理配置可用于优化 WDR 模式图像效果。
ae_route_sf_attrAE 短帧默认分配路线。
ae_route_sf_attr_exAE 短帧默认扩展分配路线,合理配置可用于优化 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_attrP-Iris 参数,与具体镜头相关。只有默认镜头类型是 P-Iris 时,才需要用该结构体参数。
max_iris_fnoP-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_fnoP-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_coefISO 标定系数,用于保证拍照所需 DCF 信息中显示的 ISO 是标准的,8bit 精度。 取值范围:[0x0, 0xFFFF],默认值为 0x100。
ae_run_interval默认 AE 算法运行间隔,以帧为单位。若不设置,则默认 AE 每帧执行一次。 取值范围:(0x0, 0xFF]
exp_ratio_max默认最大曝光比,仅在多帧合成 WDR 模式下有效。
- 当 man_ratio_enable 为 HI_FALSE 时, exp_ratio_max 表示最长帧与最短帧曝光时间比值的最大值。即 2 帧合成时表示 S/VS 曝光比的最大值,3 帧合成时表示 M/VS 曝光比的最大值,4 帧合成时表示 L/VS 曝光比的最大值。
- 当 man_ratio_enable 为 HI_TRUE 时,exp_ratio_max 无效。 6bit 小数精度,0x40 表示曝光比为 1 倍。
取值范围:[0x40, 0x4000]
exp_ratio_min默认最小曝光比,仅在多帧合成 WDR 模式下有效。
- 当 man_ratio_enable 为 HI_FALSE 时,exp_ratio_min 表示长帧曝光时间与短帧曝光时间比值的最小值。
- 当 man_ratio_enable 为 HI_TRUE 时,exp_ratio_min 无效。 6bit 小数精度,0x40 表示曝光比为 1 倍。 取值范围:[0x40, exp_ratio_max]
diff_gain_supportsensor 是否支持长短帧不同增益配置,该值为 HI_TRUE 时,sensor 支持长短帧不同 senor 模拟增益、sensor 数字增益配置,该值为 HI_FALSE 时,sensor 不支持长短帧不同 senor 模拟增益、sensor 数字增益配置。
quick_start设置不带光敏快启相关参数。
prior_frameWDR 模式下曝光路线生效的优先帧, 线性模式下此参数需配置为 LONG_FRAME。
ae_gain_sep_cfg长短帧增益是否分开分配。
lhcg_supportSensor 是否使用 LCG+HCG 模式,该值为 HI_TRUE 时, Sensor 使用 LCG+HCG 模式,该值为 HI_FALSE 时, Sensor 使用普通模式。
sns_lhcg_exp_ratioLCG+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,否则会使图像效果不正常。

父主题: ISP系统控制及3A算法注册

hi_isp_ae_sensor_exp_func

说明定义

sensor回调函数结构体。

定义

typedefstruct &#123;
hi_s32 (*pfn_cmos_get_ae_default)(hi_vi_pipe vi_pipe, hi_isp_ae_sensor_default*ae_sns_dft);
hi_void (*pfn_cmos_fps_set)(hi_vi_pipe vi_pipe, hi_floatf32_fps, hi_isp_ae_sensor_default*ae_sns_dft);
hi_void (*pfn_cmos_slow_framerate_set)(hi_vi_pipe vi_pipe, hi_u32full_lines, hi_isp_ae_sensor_default*ae_sns_dft);
hi_void (*pfn_cmos_inttime_update)(hi_vi_pipe vi_pipe, hi_u32int_time);
hi_void (*pfn_cmos_gains_update)(hi_vi_pipe vi_pipe, hi_u32again, hi_u32dgain);
hi_void (*pfn_cmos_again_calc_table)(hi_vi_pipe vi_pipe, hi_u32*again_lin, hi_u32*again_db);
hi_void (*pfn_cmos_dgain_calc_table)(hi_vi_pipe vi_pipe, hi_u32*dgain_lin, hi_u32*dgain_db);
hi_void (*pfn_cmos_get_inttime_max)(hi_vi_pipe vi_pipe, hi_u16man_ratio_enable,
hi_u32*ratio, hi_u32*int_time_max, hi_u32*int_time_min, hi_u32*lf_max_int_time);
hi_void (*pfn_cmos_ae_fswdr_attr_set)(hi_vi_pipe vi_pipe, hi_isp_ae_fswdr_attr*ae_fswdr_attr);
hi_void (*pfn_cmos_ae_quick_start_status_set)(hi_vi_pipe vi_pipe, hi_boolquick_start_status);
hi_void (*pfn_cmos_exp_param_convert)(hi_vi_pipe vi_pipe, hi_isp_ae_convert_param*exp_param);
&#125; hi_isp_ae_sensor_exp_func;

成员

成员名称描述
pfn_cmos_get_ae_default获取AE算法库的初始值的回调函数指针。
pfn_cmos_fps_set设置sensor的帧率。
pfn_cmos_slow_framerate_set设置sensor的降帧。
pfn_cmos_inttime_update设置sensor的曝光时间。
pfn_cmos_gains_update设置sensor的模拟增益和数字增益。
pfn_cmos_again_calc_table计算TABLE类型sensor模拟增益。
pfn_cmos_dgain_calc_table计算TABLE类型sensor数字增益。
pfn_cmos_get_inttime_maxWDR模式下,计算短帧最大曝光时间的回调函数指针,与sensor强相关。
pfn_cmos_ae_fswdr_attr_set2to1LineWDR模式下,设置长帧模式。
pfn_cmos_ae_quick_start_status_set设置AE无光敏快启收敛状态。
pfn_cmos_exp_param_convert完成不同帧率等曝光量转换曝光参数属性,配套hi_mpi_isp_get_exp_convert提供。

注意事项

  • 如果回调函数指针不需要赋值,需要置为NULL。
  • 在hi_isp_ae_sensor_default中定义了曝光时间和增益的精度,pfn_cmos_inttime_update和pfn_cmos_gains_update中设置的曝光时间和增益都是带精度的值,如何转换成sensor的配置值与sensor强相关,请参阅sensor手册。
  • 不使用无光敏快启功能时,pfn_cmos_ae_quick_start_status_set需要设置为NULL。
  • quick_start_status是AE无光敏快启收敛状态的标志位。该值为HI_TRUE时,无光敏快启收敛完成。

父主题: ISP系统控制及3A算法注册

hi_isp_ae_sensor_register

说明

定义sensor注册结构体。

定义

typedef struct &#123;
hi_isp_ae_sensor_exp_func sns_exp;
&#125; hi_isp_ae_sensor_register;

成员

成员名称描述
sns_expSensor注册的回调函数结构体。

父主题: ISP系统控制及3A算法注册

hi_isp_awb_agc_table

说明

定义饱和度初始化参数结构体。

定义

typedef struct &#123;
hi_bool valid;
hi_u8 saturation[HI_ISP_AUTO_ISO_NUM];
&#125; hi_isp_awb_agc_table;

成员

成员名称描述
valid该结构体的数据是否有效,取值范围为 0、1。
saturation根据增益动态调节饱和度的插值数组,数组内元素的取值范围为[0, 255]。 saturation为非单调递减序列。 HI_ISP_AUTO_ISO_NUM用于定义ISO档位数,表示16。

父主题: ISP系统控制及3A算法注册

hi_isp_awb_ccm_tab

说明

定义不同色温下自动颜色校正矩阵系数。

定义

typedef struct &#123;
hi_u16 color_temp;
hi_u16 ccm[HI_ISP_CCM_MATRIX_SIZE];
&#125; hi_isp_awb_ccm_tab;

成员

成员名称描述
color_temp当前配置的CCM对应的色温。 取值范围:[2000, 10000]
ccm不同色温下的颜色校正矩阵,8bit小数精度。Bit[15]是符号位,0 表示正数,1 表示负数,例如0x8010表示-16。Bit[12],Bit[13],Bit[14]是无效的,即正数从0x0000到0x0FFF,负数从0x8000到0x8FFF,是CCM的合理参数。 取值范围:[0x0, 0xFFFF]。 HI_ISP_CCM_MATRIX_SIZE用于定义CCM矩阵参数个数,表示9。

父主题: ISP系统控制及3A算法注册

hi_isp_awb_ccm

说明

定义CCM颜色校正矩阵属性。

定义

typedef struct &#123;
hi_u16 ccm_tab_num;
hi_isp_awb_ccm_tab ccm_tab[HI_ISP_CCM_MATRIX_NUM];
&#125; hi_isp_awb_ccm;

成员

成员名称描述
ccm_tab_num当前配置的 CCM 的组数。 取值范围:[3, 7]。
ccm_tab不同色温下的颜色校正矩阵和对应的色温值。 HI_ISP_CCM_MATRIX_NUM用于定义昇腾AWB可配置的CCM矩阵组数,表示7。

注意事项

如果选择三组CCM,推荐高色温CCM在D50光源标定,中色温CCM在TL84光源标定,低色温CCM在A光源标定。

父主题: ISP系统控制及3A算法注册

hi_isp_awb_sensor_default

说明

定义AWB算法库的初始化参数结构体。

定义

typedef struct &#123;
hi_u16 wb_ref_temp;
hi_u16 gain_offset[HI_ISP_BAYER_CHN_NUM];
hi_s32 wb_para[HI_ISP_AWB_CURVE_PARA_NUM];
hi_u16 golden_rgain;
hi_u16 golden_bgain;
hi_u16 sample_rgain;
hi_u16 sample_bgain;
hi_isp_awb_agc_table agc_tbl;
hi_isp_awb_ccm ccm;
hi_u16 init_rgain;
hi_u16 init_ggain;
hi_u16 init_bgain;
hi_u8 awb_run_interval;
hi_u16 init_ccm[HI_ISP_CCM_MATRIX_SIZE];
&#125; hi_isp_awb_sensor_default;

成员

成员名称

描述

wb_ref_temp

静态白平衡校正色温,取值范围为[0,0xFFFF]。

gain_offset

静态白平衡的R、Gr、Gb、B颜色通道的增益值数组,数组内元素的取值范围为[0, 0xFFFF]。

HI_ISP_BAYER_CHN_NUM用于定义Bayer数据的通道数目,表示4。

wb_para

校正工具给出的白平衡参数数组,取值范围为[0, 0xFFFFFFFF]。

HI_ISP_AWB_CURVE_PARA_NUM用于定义昇腾AWB标定的Planck 曲线参数个数,表示6。

golden_rgain

Golden样机在线标定得到的G/R值。

golden_bgain

Golden样机在线标定得到的G/B值。

sample_rgain

当前样机在线标定得到的G/R值。

sample_bgain

当前样机在线标定得到的G/B值。

agc_tbl

该结构体的数据是否有效,取值范围为[0,1]。

根据增益动态调节饱和度的插值数组,取值范围为[0, 255]。

ccm

当前配置的CCM的组数。

取值范围:[3, 7]

不同色温下的颜色校正矩阵和对应的色温值。

init_rgain

ISP启动时R通道白平衡增益初始值。

init_ggain

ISP启动时G通道白平衡增益初始值。

init_bgain

ISP启动时B通道白平衡增益初始值。

awb_run_interval

ISP启动时AWB工作频率。

取值范围:[0x1, 0xFF]

init_ccm

ISP启动时CCM初始值数组。

HI_ISP_CCM_MATRIX_SIZE用于定义CCM矩阵参数个数,表示9。

注意事项

参考色温即静态白平衡校正的环境色温,需要提供色度计测量的实际值。

父主题: ISP系统控制及3A算法注册

在线提单