hi_mpi_isp_query_exposure_info
函数功能
获取AE内部状态信息,包括全局 5 段直方图、1024 段直方图和平均亮度等统计信息,同时还可获取AE运行状态中的曝光时间、增益、曝光量和实际生效的AE route等信息。
约束说明
- 获取的曝光时间以微秒(us)为单位,获取的sensor模拟增益、sensor数字增益和ISP数字增益以倍数为单位,精度是10bit。
- 获取的曝光量=(曝光时间 * 曝光增益),未考虑光圈状态,其中曝光时间以行数为单位,曝光增益包括sensor模拟增益、sensor数字增益和ISP数字增益,以倍数为单位,6bit小数精度。若该值的精度不足以满足需求,可以根据上面高精度的曝光时间(us)和增益(10bit 小数精度)重新计算一个曝光量。
- 可通过查询hist_error来获取AE是否稳定的信息,若hist_error的绝对值小于曝光容忍偏差值,意味着当前AE不会动作。
- 通过该接口获取的AE route与Proc信息中的AE route都是实际生效的值。只不过该接口的节点曝光时间以us为单位,而 Proc信息中的曝光时间以行数为单位;该接口的光圈分量为 F 值大小,取值范围为[0,10],而Proc信息中的光圈分量为 F 值等效增益,大小为(1<<F 值)。扩展AE route以及短帧AE route和短帧扩展AE route也是同样的对应关系。
- 调用该接口需要确保系统已经运行起来并且统计信息已经生成;当系统刚运行起来第一帧,AE内部还没有统计信息时,调用该接口统计信息会返回全 0,这时候系统内存是足够的。
- 手动模式下, 实际生效的again、dgain等其他值可能和hi_mpi_set_exposure_attr存在一定偏差, 和具体sensor相关。
函数原型
hi_s32 hi_mpi_isp_query_exposure_info(hi_vi_pipe vi_pipe, hi_isp_exp_info *exp_info)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
vi_pipe |
输入 |
VI PIPE号。 取值范围:[0, 12)。 |
exp_info |
输出 |
曝光内部状态信息结构体指针。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
参考样例
hi_vi_pipe vi_pipe = 0; hi_isp_exp_info exp_info; hi_mpi_isp_query_exposure_info(vi_pipe, &exp_info); printf("Sensor exposure time: %d\n",exp_info.exp_time); printf("Analog Gain: %d\n",exp_info. a_gain); printf("Digital Gain: %d\n",exp_info. d_gain); printf("ISP Gain: %d\n",exp_info. isp_d_gain); printf("Exposure: %d\n",exp_info. exposure); printf("Average Luminance: %d\n",exp_info.ave_lum); printf("Hist error: %d\n",exp_info.hist_error); exp_info.exposure_is_max? printf("Exposure is MAX!\n"):printf("Exposure is NOT MAX!\n"); for(i = 0; i < 1024; i++) { printf("Hist1024Value[%d]: %d\n",i, exp_info.ae_hist1024_value [i]); }
父主题: AE 控制模块