昇腾社区首页
中文
注册

hi_mpi_isp_query_exposure_info

产品支持情况

产品

是否支持

Atlas A3 训练系列产品/Atlas A3 推理系列产品

x

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件

x

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

x

Atlas 训练系列产品

x

Atlas 200/300/500 推理产品

x

功能说明

获取AE内部状态信息,包括全局 5 段直方图、1024 段直方图和平均亮度等统计信息,同时还可获取AE运行状态中的曝光时间、增益、曝光量和实际生效的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

输出

曝光内部状态信息结构体指针。

返回值说明

约束说明

  • 获取的曝光时间以微秒(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也是同样的对应关系。

调用示例

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]);
}