hi_isp_ae_result
说明
定义AE库返回给ISP的配置寄存器结构体。
定义
typedef struct { hi_u32 int_time[4]; hi_u32 isp_dgain; hi_u32 again; hi_u32 dgain; hi_u32 iso; hi_u32 isp_dgain_sf; hi_u32 again_sf; hi_u32 dgain_sf; hi_u32 iso_sf; hi_u8 ae_run_interval; hi_bool piris_valid; hi_s32 piris_pos; hi_u32 piris_gain; hi_u32 sns_lhcg_exp_ratio; hi_isp_fswdr_mode fswdr_mode; hi_u32 wdr_gain[HI_ISP_WDR_MAX_FRAME_NUM]; hi_u32 hmax_times; hi_u32 vmax; hi_isp_ae_stat_attr stat_attr; hi_isp_dcf_update_info update_info; } hi_isp_ae_result;
成员
成员名称 |
描述 |
---|---|
int_time |
AE计算得出的曝光时间,以1/16 us为单位,将曝光时间由行数转换成us时需要考虑cmos.c中offset的影响。 线性模式和sensor built-in WDR模式下,只有int_time[0]有效,int_time[1:3]建议配置等于int_time[0];N帧合成WDR模式下,int_time[0:(N-1)]有效,配置值由小到大,依次表示最短到最长的曝光时间,用于计算长短帧曝光比,int_time[(N-1):3]建议配置等于int_time[(N-1)]。int_time[0]还需传递至其他模块用于与曝光时间相关的联动控制,会影响SDK提供的AWB效果。使用AWB算法和多帧WDR模式时必须配置该结构体。 |
isp_dgain |
ISP的数字增益,8bit精度。使用ISP数字增益时必须配置;不使用时配置为0x100。 |
again |
Sensor的模拟增益,10bit精度。使用多帧WDR算法时必须配置;不使用时配置为0x400。 |
dgain |
Sensor的数字增益,10bit精度。使用多帧WDR算法时必须配置;不使用时配置为0x400。 |
iso |
AE计算得出的总增益值,ISO表示系统增益,以常数100乘以倍数为单位,例如系统中sensor的增益为2倍,ISP的增益为1倍,那么整个系统的ISO值计算方式为:2*1*100=200,即系统ISO为200,本文档中涉及到的ISO都是采用这种计算方法。此变量影响ISP的去噪,sharpen等自适应效果,必须配置。在2合1WDR模式下,ISO计算包含WDRGain。 |
isp_dgain_sf |
短帧的ISP的数字增益,8bit精度。使用WDR算法时必须配置;不使用时配置为0x400。 |
again_sf |
短帧的Sensor的模拟增益,10bit精度。使用WDR算法时必须配置;不使用时配置为0x400。 |
dgain_sf |
短帧的Sensor的数字增益,10bit精度。使用WDR算法时必须配置;不使用时配置为0x400。 |
iso_sf |
AE计算得出的短帧的总增益值。在2合1WDR模式下,ISO计算包含WDRGain。 |
ae_run_interval |
AE算法运行的间隔,取值范围:[1, 255]。 取值为1时表示每帧都运行AE算法; 取值为2时表示每2帧运行1次AE算法,依此类推。 建议该值设置不要大于2,否则AE调节速度会受到影响。WDR模式时,该值建议设置为1,这样AE收敛会更加平滑。此变量决定AE计算结果配置到sensor和ISP寄存器的间隔帧数,必须配置。 |
piris_valid |
Piris是否有效的标志。
|
piris_pos |
Piris步进电机的位置,取值范围与具体Piris镜头相关。使用Piris驱动对接Piris镜头时,该值必须配置。 |
piris_gain |
Piris光圈等效增益,取值范围与具体Piris镜头相关。可用于计算Piris工作时的等效曝光量,供其他模块参考。取值范围:[0, 1024]。对接非Piris镜头时建议将该值配置为512。 |
sns_lhcg_exp_ratio |
LCG+HCG模式的基础曝光比,仅Sensor支持LCG+HCG模式时生效,不使用时需将该值配置为64。 |
fswdr_mode |
WDR合成模式。 0:表示普通多帧合成WDR模式; 1:表示长帧模式; 2:表示自动长帧模式。 |
wdr_gain[HI_ISP_WDR_MAX_FRAME_NUM] |
WDR合成前多路的数字增益,8bit精度。使用WDR合成前多路数字ISP数字增益时必须配置;不使用时配置为0x100。 #define HI_ISP_WDR_MAX_FRAME_NUM 4 |
hmax_times |
Sensor对应读出一行的时间,单位:ns。 |
vmax |
Sensor每帧实际生效的总行数,单位:行。 |
stat_attr |
AE库返回给ISP的配置寄存器结构体 |
update_info |
用于传递AE相关DCF信息,仅曝光相关参数生效。 |
注意事项
- ISP基本算法模块将会根据AE计算得出的总增益值调节配置参数,例如锐化、去噪等。
- weight_table支持拼接模式下在主路配置多路权重,在主路对所有支路对应Pipe下标的权重表进行赋值即可。在非拼接模式下,只有对应Pipe下标的权重表生效。
- 将曝光时间int_time由行转换成us时,可以通过cmos.c中的lines_per500ms进行,转换关系如下:
int_time[0] =(((hi_u64)int_time_rst[0] * 1024 - offset) * 500000 / ae_sns_dft->lines_per500ms) >> 10
上式中int_time_rst[0]是以行数为单位的曝光时间,offset=offset* 1024,offset即为曝光时间的偏移量,详见hi_isp_ae_accuracy的描述。
- 为了保证计算曝光比的精度,int_time中曝光时间精度为1/16us,计算曝光时间时需要保证在us的基础上左移四位,否则曝光比计算可能会有误差,其他模块获取的曝光时间也会偏小。
- 客户在使用非昇腾AE算法时,参数int_time、isp_dgain、again、dgain、iso、hmax_times、vmax必须配置,否则会影响其他模块的联动控制,其余参数则可根据需要选择性配置。