hi_mpi_isp_set_ae_route_attr_ex
函数功能
设置AE曝光分配扩展属性,支持分别设置AE分配策略中的sensor模拟增益,sensor数字增益和ISP数字增益。
函数原型
hi_s32 hi_mpi_isp_set_ae_route_attr_ex(hi_vi_pipe vi_pipe, const hi_isp_ae_route_ex *ae_route_attr_ex)
约束说明
- 此接口用于设定AE曝光分配扩展属性,AE计算得到的曝光量将按照设定的路线进行分配,用户可以根据自己的需求设定曝光时间优先、sensor模拟增益优先、 sensor数字增益优先、ISP数字增益优先和光圈优先。该接口可用于设置WDR模式下的曝光分配路线,减轻正常室内照度多帧合成WDR产生的工频闪现象,优化WDR模式图像效果。
- AE曝光分配扩展属性是否生效可通过配置hi_mpi_isp_set_exposure_attr接口中的ae_route_ex_valid来实现。ae_route_ex_valid为HI_TRUE时使用扩展AE route,否则使用正常AE route。
- AE扩展分配路线遵循以下限定:
- 最大支持 16 个节点,每个节点有曝光时间、sensor模拟增益、sensor数字增益、ISP数字增益和光圈五个分量。
- 节点中曝光时间的单位为us,不能设置为 0,也不能设置太小导致实际对应的曝光行数为 0,否则可能产生异常。
- 光圈分量仅支持P-Iris,不支持DC-Iris,因为DC-Iris无法精确控制,所以DCIris和手动光圈镜头光圈分量是无效的。即光圈类型为DC-Iris时,节点光圈分量不会对曝光量分配产生任何影响。
- 节点的曝光量是曝光时间、sensor模拟增益、sensor数字增益、ISP数字增益和光圈的乘积,节点曝光量单调递增,后一个节点的曝光量大于或等于前一个节点的曝光量,第一个节点的曝光量最小,最后一个节点的曝光量最大。
- 如果相邻节点的曝光量增加,那么应该有一个分量增加,其他分量固定,增加的分量决定该段路线的分配策略。例如sensor模拟增益分量增加,那么该段路线的分配策略是sensor模拟增益优先。
- 不支持设置等曝光量节点。
- 用户可以根据不同的场景设置不同的路线,分配路线支持动态切换。
- AE分配路线不能用于限制曝光参数的最大值和最小值。如果当前曝光量不在用户设定的路线范围当中,即曝光量超出了第一个节点或最后一个节点,曝光参数分配会超出节点限制,但不超过参数本身范围限制。
- 针对DC-Iris和手动光圈镜头,默认AE扩展分配策略是先分配曝光时间,再分配sensor模拟增益、sensor数字增益,最后分配ISP数字增益。针对P-Iris镜头,默认AE扩展分配策略是先调节光圈,将光圈调至最大后调节曝光时间,最后再分配sensor模拟增益、sensor数字增益和ISP 数字增益。如果当前曝光量不在用户设定的路线范围当中,按默认策略分配。
- 在线进行DC-Iris和P-Iris切换,扩展AE route会重置为与光圈类型相匹配的默认分配策略,用户可以根据需要在切换光圈类型时自行设置扩展 AE route。
- 2 合 1WDR模式下,优先帧为短帧且增益分开配置不使能时,扩展AE route不生效。
- 自动降帧时,最大曝光时间的改变会更新到分配路线中。
- 线性模式与WDR模式切换时,若cmos.c里面设置了扩展AE route,且cmos.c中的扩展AE route标识符ae_route_ex_valid为HI_TRUE,则在切换后会采用cmos.c中的扩展AE route,否则采用默认的AE route。
- 帧率或分辨率切换时,若用户设置的最大曝光目标时间大于切换后 1 帧所允许的最大曝光时间,那么分配路线的最大曝光时间会更新为切换后 1 帧所允许的最大曝光时间。
- 发生自动降帧、线性与WDR模式切换、帧率或分辨率切换、优先帧切换、增益分开配置切换、限制曝光时间或增益的最大最小值等情况时,实际生效的扩展AE route可能与MPI设置的不一致,此时可以通过hi_mpi_isp_query_exposure_info获取实际生效的扩展AE route。
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
vi_pipe |
输入 |
VI PIPE号。 取值范围:[0, 12)。 |
ae_route_attr_ex |
输入 |
AE 曝光分配策略扩展属性结构体指针。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
参考样例
hi_vi_pipe vi_pipe = 0; hi_isp_exposure_attr exp_attr; hi_isp_ae_route_ex ae_route_attr_ex; hi_u32 route_ex_node [6][5] = {{ 30, 1024, 1024, 1024, 0}, { 30, 1024, 1024, 1024, 10}, { 30, 16384, 1024, 1024, 10}, {1000000, 16384, 1024, 1024, 10}, {1000000, 16384, 16384, 1024, 10}, {1000000, 16384, 16384, 4096, 10}}; hi_mpi_isp_get_ae_route_attr_ex(vi_pipe,&ae_route_attr_ex); hi_mpi_isp_get_exposure_attr(vi_pipe, &exp_attr); exp_attr.ae_route_ex_valid = HI_TRUE; ae_route_attr_ex. total_num = 6; memcpy(ae_route_attr_ex.route_ex_node, route_ex_node, sizeof(route_ex_node)); hi_mpi_isp_set_ae_route_attr_ex(vi_pipe, & ae_route_attr_ex); hi_mpi_isp_set_exposure_attr(vi_pipe, & ae_route_attr_ex);
父主题: AE 控制模块