图像传感器的工频干扰

 

我太难了!我怎么这么难呀!!!

好不容易学会了图像传感器的两种缩放模式,现在怎么又遇到工频干扰问题???

稳住,老铁!来小鱼儿学堂,跟着小鱼干一起来探索,在进行 Sensor & ISP 的调试过程中,我们经常遇到图像传感器的工频干扰问题究竟是什么原因导致的,遇到这样的问题,我们又该如何解决。话不多说,跟着小鱼干的步伐,我们一起来探索吧。


一、产生原因

首先,Sensor 在日光灯作为光源下获取图像数据时会产生 flicker (闪烁),其根本原因是照在不同 pixel 上光能量不同产生的,所接受的光能量的不同也就是图像的亮度的不同。

我们也知道,CMOS sensor 的曝光方式是以行曝光的方式进行的,并且每一行的曝光时间相同。这样任何一个 pixel 的曝光时间是一样的,也就是同一行上的每个 pixel 的曝光开始点和曝光的时间都是一模一样的,所以同一行的所有点接收到的能量是一样的。

而由于室内日光灯照明都是存在能量周期的,国内的市电频率为 50hz ,其能量频率如图 1 所示。

图 1
如图 2 所示,当每一行曝光时间都相等时(假设为 7.9ms ),但是每一行的能量积分却是不相等的,所以不同行之间所接受到的能量是不一定相同的,这样就会导致每一行的亮度不一致。每一行的亮度不一致,就会出现明暗交替的 banding 现象(如图 3 )。

图 2

图 3

二、解决方法

想要避免出现 banding 现象,就要让不同行之间所接受的能量相同。即必须找一个特定的条件,使得每一行即使曝光开始点不同,但是所接受的光能量是相同的。这个特定的条件就是曝光时间必须是光能量周期的整数倍时间。            

以国内的市电频率为 50hz 为例,能量积累的周期频率就是 100hz ,周期为 T = 1/100hz = 10ms 。所以在任意起始时间点,同样的 N (为整数)个周期时间,sensor 接收到光能量一样。如果 N 不是整数,sensor 接收到光能量不一定一致,就会出现 banding 现象。若是 60Hz 的交流电则需要控制曝光时间为 8.33ms ( 1/120hz )的整数倍。

而在实际问题中,调整曝光为整数倍变化,会浪费一部分的曝光时间,导致曝光无法用满,在室内就会损失性能。例如帧率设置为 15fps ,若每帧曝光时间是 66.66ms ,如果强制曝光为 10ms 整数倍,最大即 60ms ,则有 6.66ms 无法参与曝光,损失性能。


  所以,我们可以通过修改帧率,使每帧图像分到的时间是 10ms 的整数倍,则可以用满每帧曝光时间,室内效果也会更好。修改帧率可以通过插入Dummy Line 或者 Dummy Pixel 。这需要一点点计算,具体计算需要看 sensor输出时序。

    那么,我们就可以知道只有在室内光源的能量周期性变化的时候会出现 banding ,在室外阳光下不会出现这种现象。这是 CMOS sensor 的曝光特性决定的,我们可以尽量避免。

 

    跟着小鱼干走,工频干扰的原因和解决方式这就给揪出来了。缺水的小鱼干,终于可以喘口气喝点水,滋润一下了,大家如果有问题需要交流,可以在博文的下方评论,小鱼干看到会尽快回复的。下一期小鱼干将给大家分享《图像传感器的触发模式》。

       如果有喜欢小鱼干的,也请多多关注我的大大通账号:小鱼干。

 

 

 

【参考文献】

  1. 《强光下Banding的说明》

    https://wenku.baidu.com/view/8902b55a54270722192e453610661ed9ad515505.html

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论