关于 Sensor flicker/banding现象的解释「建议收藏」

2022-11-04 09:52:28 浏览数 (2)

目录

1、基本概念

2、30fps, 1帧内banding过程演示

3、30fps, 帧与帧之间banding过程演示

4、25fps, 帧与帧之间banding过程演示

5、总结


1、基本概念

  • flicker

交流电网中的传输的能量并不是稳定不变的,而是随着一个固定频率变化的,这个频率一般被称为工频,例如中国是50Hz,美国是60Hz。工频由电力系统决定。 工频的带来的这种能量变化称为flicker。

下面以50HZ为例进行解释,交流电以1/50s,即20ms的周期进行变化,其变化规律如图所示:

而对于能量来说,并没有正负之分,因此能量的周期是1/100s,即10ms。

因此,普通的以交流电为电源的白炽灯的亮度实际上在一直在以10ms为周期随着交流电变化而发生变化,只不过人眼感知不到画面亮度的变化罢了。

  • banding

sensor捕捉到flicker而在图像上形成的条带的现象称为banding现象,通常简称banding(根本原因就是sensor 每一行像素点,所接收到的能量不同导致的),如视频所示,画面会出现频闪,感觉有水波纹一样的纹路在跳变;具体来说可能会有如下表现(这些表现并不一定会同时出现):

— 同一帧的不同行的亮度各不相同,存在亮暗变化的条纹,如图所示;

— 不同帧的相同行的亮度不相同,出现视频中水波纹一样的纹路跳变;

— 前后帧的整体亮度存在差异,画面亮度出现明显的亮暗变化

2、30fps, 1帧内banding过程演示

  • 如下GIF图像演示的是在工频的环境下,sensor 一帧内每一行曝光的亮度的变化。分别有10ms、8ms、12ms三种曝光。

— 10ms曝光状态下,面积P始终是不变的( 因为曝光时间是10ms,也就是每行的曝光时间也是10ms,一个波峰循环就是曝光1行,所以每行所获得的能量是相同的)。

— 8ms和12ms曝光状态下,面积P1和P2都会有规律的产生变化( 因为曝光时间是8ms、12ms,积分面积不同,导致每行所获得的能量不同)。

曝光是sensor的每一个像素的能量积累,这里就可以使用面积来表示,面积是由积分计算所得。8ms 和12ms的曝光帧会出现banding现象;

3、30fps, 帧与帧之间banding过程演示

  • 如下GIF图像演示的是在工频的环境下 sensor 帧与帧之间每一行曝光的亮度变化。

— 30fps,帧与帧之间的的时间间隔是33ms。

不同帧之间,8ms 曝光状态下,面积P、P1和P2都会有规律的产生变化(因为不同帧相同行,曝光的起始位置不同,导致积分面积不同,所获得的能量不同) ,则出现带水波纹一样的纹路在跳变;

4、25fps, 帧与帧之间banding过程演示

  • 如下GIF图像演示的是在工频的环境下 sensor 帧与帧之间每一行曝光的亮度变化。

— 25fps,帧与帧之间的的时间间隔是40ms。

— 每一帧的帧内亮度变化是相同(不同帧之间,相同行,曝光起始的周期点相同)。

在50Hz工频下,25fps规避了帧与帧之间在视频模式下不停跳动的banding现象,而呈现的是一个稳定的banding现象,所以,25fps并不能消除banding。

5、总结

  • 消除banding的唯一方法是:在50Hz工频下曝光时间为10ms的整数倍;在60Hz工频下曝光时间为8.333ms的整数倍。
  • 不管是 30fps 还是 25fps 都不会影响一帧帧内的曝光行为。

参考:Sensor banding现象解释

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182328.html原文链接:https://javaforall.cn

gif

0 人点赞