产品 |
是否支持 |
---|---|
x |
|
√ |
|
x |
|
x |
|
x |
此接口用于WDR模式下设定AE短帧的曝光分配扩展属性,AE计算得到的短帧的曝光量将按照设定的路线进行分配,用户可以根据自己的需求设定曝光时间优先、sensor模拟增益优先、sensor数字增益优先、ISP数字增益优先和光圈优先。
hi_s32 hi_mpi_isp_set_ae_route_sf_attr_ex(hi_vi_pipe vi_pipe, const hi_isp_ae_route_ex *ae_route_sf_attr_ex)
参数名 |
输入/输出 |
说明 |
---|---|---|
vi_pipe |
输入 |
VI PIPE号。 取值范围:[0, 12)。 |
ae_route_sf_attr_ex |
输入 |
AE短帧的曝光分配策略扩展属性结构体指针。 |
− 最大支持 16 个节点,每个节点有曝光时间、sensor模拟增益、sensor数字增益、ISP数字增益和光圈五个分量。
− 节点中曝光时间的单位为us,不能设置为 0,也不能设置太小导致实际对应的曝光行数为 0,否则可能产生异常。节点曝光时间应设置不超过sensor最大曝光时间的一半。
− 光圈分量仅支持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。
− 优先帧为长帧且增益分开配置不使能、以及线性模式下,短帧扩展AE route不生效。
− 自动降帧时,最大曝光时间的改变会更新到分配路线中。
− 线性模式与WDR模式切换时,若cmos.c里面设置了短帧扩展AE route,且cmos.c中的扩展AE route标识符 ae_route_ex_valid为HI_TRUE,则在切换后会采用cmos.c中的短帧扩展AE route,否则采用默认的短帧AE route。
− 2 合 1WDR模式下,帧率或分辨率切换时,若用户设置的最大曝光目标时间大于切换后 1 帧所允许的最大曝光时间,那么分配路线的最大曝光时间会更新为切换后 1 帧所允许的最大曝光时间。
− 发生自动降帧、线性与WDR模式切换、帧率或分辨率切换、优先帧切换、增益分开配置切换、限制曝光时间或增益的最大最小值等情况时,实际生效的扩展AE route可能与MPI设置的不一致,此时可以通过hi_mpi_isp_query_exposure_info获取实际生效的短帧扩展AE route。
hi_vi_pipe vi_pipe = 0; hi_isp_exposure_attr exp_attr; hi_isp_ae_route_ex ae_route_sf_attr_ex; hi_u32 route_ex_node [6][5] = {{ 30, 1024, 1024, 1024, 0}, { 30, 1024, 1024, 1024, 10}, { 30, 16384, 1024, 1024, 10}, {20000, 16384, 1024, 1024, 10}, {20000, 16384, 16384, 1024, 10}, {20000, 16384, 16384, 4096, 10}}; hi_mpi_isp_get_ae_route_sf_attr_ex(vi_pipe, & ae_route_sf_attr_ex); hi_mpi_isp_get_exposure_attr(vi_pipe, &exp_attr); exp_attr.ae_route_ex_valid = HI_TRUE; ae_route_sf_attr_ex.total_num = 6; memcpy(ae_route_sf_attr_ex.route_ex_node, route_ex_node, sizeof(route_ex_node)); hi_mpi_isp_get_ae_route_sf_attr_ex(vi_pipe, & ae_route_sf_attr_ex); hi_mpi_isp_set_exposure_attr(vi_pipe, &exp_attr);