ISP——Flicker问题

ISP——Flicker问题

ISP中曝光相关概念

1. shutter

快门是照相机用来控制感光片有效曝光时间的机构。是照相机的一个重要组成部分,它的结构、形式及功能是衡量照相机档次的一个重要因素。一般而言快门的时间范围越大越好。从工作原理可以分为global shutter 和 rolling shutter,简单的理解global shutter就是整个sensor上的所有像素同时感光,经过相同时间后同时结束感光,而rolling shutter则是行扫描,每一行都得经历重置,曝光,读取数据的过程,然后是逐行进行这种方式进行曝光。关于这两个概念的理解,可以参考这篇博客,我觉得写得很不多,看完就能理解详细图解,一眼就能看懂!卷帘快门(Rolling Shutter)与全局快门(Global Shutter)的区别_Keep Learning, Keep Growing, Keep Succeeding!-CSDN博客。

2. 曝光时间

global shutter方式中得曝光时间很容易理解就不多说,rolling shutter的曝光时间是指从一行开始重置到一行开始读出的时间就是曝光时间,切记是一行的时间,不是整个画面所有像素都读完的时间。然后有一点容易误解的需要注意就是,rolling shutter方式曝光虽然是逐行进行,但是并不是前一行数据读取完成后再进行下一行数据的重置,曝光,读取过程。整个过程其实可以简单理解为当上一行数据再曝光的过程中,下一行就开始重置并读取数据,并不用等到上一行数据完全读取再进行,这一点有点像甘特图,可以看上面提到的博客中的图形理解。

工频干扰问题

现象

出现工频闪烁时,从视频上看会发现有规律的明暗相间的条纹,并且在视频预览时会滚动,看着就像是在闪烁,所以称为flicker,有的也较banding。

ISP——Flicker问题_第1张图片

产生的原因

以国内50Hz来说明,60Hz的也是一样的原理。假设当前工频为50Hz,camera的帧率为30fps,那么光源处的光能波动的图像如下图黑色曲线,周期为0.01s,因为负半轴时的能量和正半轴的能量是一样的,多以直接就将正弦函数取绝对值,频率变为100Hz来表示能量曲线。途中蓝色的曲线表示图像的帧率。
ISP——Flicker问题_第2张图片

如图用两帧中的两行曝光来示意一下。因为现在sensor一般采用rolling shutter的方式,所以对于同一行的所有像素的开始曝光时刻和曝光时间时一致,也就是同一行的像素就收的能量时一样的。如图是当曝光时间低于能量周期整数倍的时候的示意图。第一帧的第一行曝光用矩形ABCD来表示,那么第一行像素所接受的能量就是ABCD矩形下sin函数的面积,第一帧第二行曝光用矩形EFGH来表示,那么同理这一行的能量用EFGH下sin函数的面积表示,学过三角函数的同学应该就能清楚这两个矩形与三角函数交点之间的积分是不等的,也就是面积不等,也就导致这两行就收的能量不同,同时延申到所有行,那么一帧图像中就会出现有规律的明暗变化。那么对于第二帧图像而言,第一行曝光在A1B1C1D1矩形,同理接受的能量就是这个矩形下三角函数的面积,同理可以推到出A1B1C1D1矩形下三角函数的面积和ABCD矩形下三角函数的面积不一样,这就导致第二帧图像和第一帧图像的第一行的能量也不相同,这也就导致了在视频预览时会又明暗条纹滚动的现象出现。上面的分析就是flicker现象的原因。

下面看看当曝光时间是工频周期整数被的情况

ISP——Flicker问题_第3张图片

同理还是用50Hz和30fps来示意。如图所示,当为工频周期的整数倍的时候,每一行就收的能量都是工频能量曲线一个周期的面积,然后根据sin函数的周期性可以求得ABCD,EFGH,A1B1C1D1, E1F1G1H1四个矩形下的三角函数的面积是一样的,也就不会导致每一行就收的能量不一致,从而消除flicker现象。

在实际应用中有的时候在室内环境光线很强的时候,曝光时间必须低于0.01s,当曝光时间为最小的0.01s是图像就会过曝,那么此时AE就会把曝光时间降低到能量周期整数倍一下,那么这种情况下理论上是无法解决flicker问题,但是此时一般会通过将帧率降低到25fps来固定条纹,就让条纹不滚动,然后实际应用场景中物体的亮度本身也是渐变的,所以有的应用中通过这种固定得方式是可以接受的。具体原理通过下图来示意

ISP——Flicker问题_第4张图片

当然我们不讨论25fps是曝光时间为工频整数倍的情况,因为那个和30fps时没有区别。我们来讨论小于工频周期的情况,如图可以看出第一帧的第一行和第二行通上面讨论30fps一样,接受到的能量是不同的,所以亮暗条纹还是会存在,但是当帧率为25fps时,第二帧的第一行和第一帧的第一行接受的能量时一致的,第二行同理也是一致的,所以不会导致画面出现滚动的现象,也就是把flicker固定住了,然后实际应用场景下自然物体也会后黑白渐变,这样整个画面看上去不会那么难受,有些应用就可以接受,所以这种情况一般可以通过降低帧率到25fps来优化画面效果。

你可能感兴趣的:(ISP图像处理,isp,图像处理)