hi_isp_exp_info
说明
定义ISP曝光内部状态信息。
定义
typedef struct { hi_u32 exp_time; hi_u32 short_exp_time; hi_u32 median_exp_time; hi_u32 long_exp_time; hi_u32 a_gain; hi_u32 d_gain; hi_u32 a_gain_sf; hi_u32 d_gain_sf; hi_u32 isp_d_gain; hi_u32 exposure; hi_bool exposure_is_max; hi_s16 hist_error; hi_u32 ae_hist1024_value[HI_ISP_HIST_NUM]; hi_u8 ave_lum; hi_u32 lines_per500ms; hi_u32 piris_fno; hi_u32 fps; hi_u32 iso; hi_u32 isosf; hi_u32 iso_calibrate; hi_u32 ref_exp_ratio; hi_u32 wdr_exp_coef; hi_u32 first_stable_time; hi_u32 quick_star_iso; hi_isp_ae_route ae_route; hi_isp_ae_route_ex ae_route_ex; hi_isp_ae_route ae_route_sf; hi_isp_ae_route_ex ae_route_sf_ex; } hi_isp_exp_info;
成员
成员名称 |
描述 |
---|---|
exp_time |
当前曝光时间,单位为微秒(us)。 取值范围:[0x0, 0xFFFFFFFF] |
short_exp_time |
FSWDR模式下,表示当前短帧(S)曝光时间,单位为微秒(us)。线性模式不用关注该值。 取值范围:[0x0, 0xFFFFFFFF] |
median_exp_time |
FSWDR模式下,表示当前中帧(M)曝光时间,单位为微秒(us)。线性模式不用关注该值。 取值范围:[0x0, 0xFFFFFFFF] |
long_exp_time |
FSWDR模式下,表示当前长帧曝光时间,单位为微秒(us)。 取值范围:[0x0, 0xFFFFFFFF] |
a_gain |
当前sensor模拟增益,10bit小数精度。 取值范围:[0x400, 0xFFFFFFFF] |
d_gain |
当前sensor数字增益,10bit小数精度。 取值范围:[0x400, 0xFFFFFFFF] |
a_gain_sf |
当前sensor短帧模拟增益,10bit小数精度。 取值范围:[0x400, 0xFFFFFFFF] |
d_gain_sf |
当前sensor短帧数字增益,10bit小数精度。 取值范围:[0x400, 0xFFFFFFFF] |
isp_d_gain |
当前ISP数字增益,10bit小数精度。 取值范围:[0x400, 0xFFFFFFFF] |
exposure |
当前曝光量,等于曝光时间与曝光增益的乘积,其中曝光时间的单位为微秒(us)。 取值范围:[0x0, 0xFFFFFFFF] |
exposure_is_max |
0:ISP未达到最大曝光水平; 1:ISP达到最大曝光水平。 |
hist_error |
统计信息,AE的目标亮度值与实际值的差,该值为正表示当前期望的亮度信息大于实际的亮度信息,该值为负表示期望的亮度信息小于实际的亮度信息。 取值范围:[-0x8000, 0x7FFF] |
ae_hist1024_value [HI_ISP_HIST_NUM] |
全局1024段直方图统计信息 取值范围:[0x0, 0xFFFFFFFF] #define HI_ISP_HIST_NUM 1024 |
ave_lum |
平均亮度信息 取值范围:[0x0, 0xFF] |
lines_per500ms |
当前每500ms对应的曝光行数,可用于将曝光时间的单位由us转换成行数。 取值范围:[0x0, 0xFFFFFFFF] |
piris_fno |
当前P-Iris光圈 F 值对应的等效增益。 取值范围:[0x0, 0x400] |
fps |
实际图像帧率 * 100。 取值范围:[0x0, 0xFFFFFFFF] |
iso |
当前sensor模拟增益*sensor数字增益*ISP数字增益 *100,其中增益的精度都为 10bit。 取值范围:[0x64, 0xFFFFFFFF] |
isosf |
当前sensor短帧模拟增益*sensor 短帧数字增益*ISP短帧数字增益*100,其中增益的精度都为10bit。 取值范围:[0x64, 0xFFFFFFFF] |
iso_calibrate |
标准ISO, 用于拍照DCF信息显示。 iso_calibrate = iso * 256 / iso_cal_coef。 取值范围:[0x0,0xFFFFFFFF] |
ref_exp_ratio |
参考曝光比,用于估计当前场景的动态范围,会受到hi_isp_wdr_exposure_attr中 tolerance和speed等值的影响。 取值范围:[0x40, 0x4000] |
wdr_exp_coef |
基于原始亮度目标值调整的曝光系数,仅在使能advance ae时有效,值越小,图像整体亮度越低。AE实际亮度目标值为compensation * wdr_exp_coef /1024。 取值范围:[0x0, 0x400] |
quick_star_iso |
不带光敏AE启动快速收敛模式下,AE快速计算出当前亮度环境下,收敛完成后大致的 ISO值,用户可根据此ISO值决定是否要打开IR CUT和IR LED。 取值范围:[0x64, 0xFFFFFFFF] |
first_stable_time |
首次AE收敛稳定的时间,单位为微秒(us)。 取值范围:[0x0, 0xFFFFFFFF] |
ae_route |
实际生效的AE route,各个节点中的曝光时间以us为单位,增益为10bit精度,光圈取值范围为[HI_ISP_IRIS_F_NO_32_0, HI_ISP_IRIS_F_NO_1_0]。光圈类型为DC-Iris时,节点光圈值不会对曝光量分配产生影响。 |
ae_route_ex |
实际生效的扩展AE route,各个节点中的曝光时间以us为单位,增益为10bit精度,光圈取值范围为[HI_ISP_IRIS_F_NO_32_0, HI_ISP_IRIS_F_NO_1_0]。光圈类型为DC-Iris 时,节点光圈值不会对曝光量分配产生影响。 |
ae_route_sf |
实际生效的短帧AE route,各个节点中的曝光时间以us为单位,增益为10bit精度,光圈取值范围为[HI_ISP_IRIS_F_NO_32_0, HI_ISP_IRIS_F_NO_1_0]。光圈类型为DC-Iris 时,节点光圈值不会对曝光量分配产生影响。 |
ae_route_sf_ex |
实际生效的短帧扩展AE route,各个节点中的曝光时间以us为单位,增益为10bit精度,光圈取值范围为[HI_ISP_IRIS_F_NO_32_0, HI_ISP_IRIS_F_NO_1_0]。光圈类型为DC-Iris时,节点光圈值不会对曝光量分配产生影响。 |
注意事项
- 曝光量的计算未考虑光圈状态,为曝光时间、sensor模拟增益、sensor数字增益、ISP数字增益4者乘积,其中曝光时间的单位为曝光行数,曝光增益为6bit小数精度。若该值的精度不足以满足需求,可以根据高精度的曝光时间(us)和增益(10bit小数精度)重新计算一个曝光量。
- ISP是否达到最大曝光水平的计算未考虑光圈状态。如果当前曝光时间大于等于最大目标曝光时间,当前增益大于等于最大目标增益,那么就认为ISP达到最大曝光水平,否则就未达到最大曝光水平。
- 图像平均亮度经过归一化处理,取值范围为0~255。
- fps可用于查询自动降帧状态下的实际帧率。
- iso和ref_exp_ratio都可作为FSWDR模式下切换到长帧模式的参考量。不过需要注意的是,若以iso作为参考量,需要考虑到曝光比对于切换阈值的影响,避免来回在长帧模式和正常WDR模式之间切换;若以ref_exp_ratio作为参考量,长帧模式下亮区可能是过曝的,ref_exp_ratio已不能正确表示场景动态范围,这会影响到长帧模式切换回正常WDR模式的判别。线性模式下ref_exp_ratio值可作为场景动态范围参考,当前场景动态范围越小,ref_exp_ratio越小;当前场景动态范围越大,ref_exp_ratio越大。
- a_gain_sf、d_gain_sf、isosf在线性模式下默认为1024、1024、100,但从其他模式切换到线性模式时保留上一次的值不更新。
- 当长短帧增益分开配置时,iso、isosf的结果还包含对应帧的WDRGain。
- WDR模式下,优先帧为长帧时,exposure_is_max表示长帧是否达到最大曝光量,优先帧为短帧时,exposure_is_max表示短帧是否达到最大曝光量。