现象

两个摄像头对着同一个场景,从夜模式切到日模式,两个摄像头切换的速度不一致,有一个会慢一点,有的时候可以到5-10s

思路

  • 确定是日夜切换判断慢了还是日夜切换执行慢了
  • 如果是执行慢了就好说,如果是判断慢了,需要确定是两路摄像头一起切换才有问题,还是一路摄像头自己切换也会慢
  • 从AE打印上来看两路摄像头的增益有什么区别,尽量保证两个摄像头的增益一致
  • 查看代码逻辑,尤其注意是否因为上锁,进程是否一直被抢占,以及有一路日夜模式判断那么久

过程

  1. 因为执行的过程,手动日夜切换和自动日夜切换是同一个过程,因此可以用手动模式下测试摄像头切换的速度。测试结果是并未出现某一路过慢的问题。
  2. 由于逻辑上切5次就会锁住,测试的时候经常锁住,非常不方便,而且影响判断,将锁住的逻辑去掉了
  3. 之前发现一个寄存器配置问题,会造成增益小一倍(至今都不知道是不是触发了这颗sensor的隐藏技能,这里记录一下,IMX290的0x3011寄存器手册上写的是应该赋值0x0A,结果弄成了0x20,反而提高了亮度)
  4. 把两颗摄像头的ISP参数都设置成一致,让唐佳琪和小范帮忙测试,原以为已经修复,其实并未
  5. 两路摄像头基本上是交替进行的,偶尔会有连续两次处理同一个摄像头的情况,不存在进程被抢占的问题
  6. 查看日夜模式判断,打开AE打印,找到原因

原因

夜切回日模式的条件是,sensor当前的增益要连续小于日夜切换的阈值五秒。由于日夜切换的阈值默认值很小,接近普通场景下的增益,容易不满足连续小于阈值五秒的条件。虽然两个摄像头对着同一个地方,但是稍微的一点偏差增益就不同,只要大于阈值,就会开始重新计时五秒,因此偶尔会出现有的快有的慢的现象。

解决方案

打开web界面的设置,日夜切换那一栏里面的灵敏度和日夜切换阈值都调大些。比如都设置到80,这样可以提高这个阈值,就不会出现这个问题了。

小结

  1. 一开始主要是一直纠结于两路摄像头切换速度不一致,其实本质是一个摄像头切换时间不固定,第二步的思路没有执行下去,导致后面绕了很多的弯路。定好了思路就该去按照思路去一步一步测试,不然就像无头苍蝇一样乱碰,浪费时间。

  2. 对db值不敏感,6db是2倍,12db只有4倍,依次类推。