免费英文 网站模板,淄博哪个网站做房屋出赁好,湖南微信网站营销,重庆 建站 价格现象#xff1a; 在调试一款sensor#xff0c;通过10帧-8帧-6帧,这样不断的降低帧率调试低照度下的图像效果。ISP配置文件上设置的最大曝光曝光参数为#xff1a;
EXP#xff1a;15266 Again:15494 Dgain:714 ISPDGain:1360。
当达到最低帧率最低亮度时#x…现象 在调试一款sensor通过10帧-8帧-6帧,这样不断的降低帧率调试低照度下的图像效果。ISP配置文件上设置的最大曝光曝光参数为
EXP15266 Again:15494 Dgain:714 ISPDGain:1360。
当达到最低帧率最低亮度时其调试工具界面上应该显示的也应该是如上最大的AE参数。
但实际情况是在图像调试工具上显示的AE参数时ispdgain显示居然可以达到1416超过了isp配置中所设定的最大ispdgain阈值。
原因 当AE参数为EXP15266 Again:15494 Dgain:714 ISPDGain:1360,在驱动库调用接口设置相应节点EV值的时候 由于保存AE节点的数据类型都是设置的有符号的int类型其最大值范围为-2147483648~2147483647计算机中负数以补码的形式保存故对应的二进制为10000000 00000000 00000000 00000000 ~01111111 11111111 11111111 11111111 在计算节点最大EV值的时候代入相应的曝光参数计算得到最大EV值为 3360890160 3360890160 转换为二进制为11001000 01010011 00011101 00110000已经超过了int的最大范围了。由于驱动库内部把最大EV值定义为无符号的64bit数据类型。转换为无符号的64位时需要根据32位的最高位对64位高位的进行补充操作。即底层在转换将有符号数据类型转换为无符号的时候需要根据高位进行判断最高位是1的话则用1进行扩展高位是0的话则用0进行扩展高位。 即有符号的32bit 3360890160 转换为无符号的64bit类型时转换得到如下二进制数值 11111111 11111111 11111111 11111111 11001000 01010011 00011101 00110000转换为10进制为18446744072775474480。因此对应节点最大的EV值为 18446744072775474480 AE算法逻辑计算的EV值超过最大EV值的时候本应该限制到最大值。但是由于现在32bit 有符号转换为64bit无符号过程中中间乘积出现了溢出情况导致最大的EV值比实际的最大EV值大很多无法进行最大值的EV值的限制。相当于最大EV值的限制操作失效了。 后续调整曝光参数的过程中特别是的照度下比较暗的情况下计算出来的EV值可能超过最大EV值导致调试界面上显示的AE参数会超过配置文件中设置设置的最大曝光参数值。 虽然sensor驱动会对相关的AE参数最大值进行限制但是在应用中是通过ISP 驱动库相关的接口获取当前的AE参数如果此时应用再将这些获取的AE操作做些逻辑处理时可能就会引发一些错误行为。
措施 将相关节点AE参数数据类型由32bit 有符号的数据类型定义为64bit 无符号类型