惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

相机 – 云破天开

Nyquist频率-云破天开 离散余弦变换(Discrete cosine transform)-云破天开 JPEG图像压缩原理-云破天开 图像与滤波-云破天开 手机摄影和相机摄影的区别-云破天开 各种相机的区别-云破天开 1“的sensor的直径为什么是16mm,而不是25.4mm?-云破天开 18%灰-云破天开 摄影简史-云破天开
Sensor Flicker(banding现象)-云破天开
作者:yptk · 2024-08-27 · via 相机 – 云破天开

一、Flicker现象:

我们室内日光灯下拍照的时候,有没有遇到过这样的现象?是什么原因呢。

二、为了解释这个现象,我们先来了解几个概念:

1、Rolling shutter(卷帘快门)和Global shutter(全局快门)
卷帘快门是逐行曝光;全局快门是所有像素同时曝光。

2、曝光时间:

曝光时间
global shutter方式中得曝光时间很容易理解就不多说,rolling shutter的曝光时间是指从一行开始重置到一行开始读出的时间就是曝光时间,切记是一行的时间,不是整个画面所有像素都读完的时间。
实际上,也就是每个像素能够积累光信号的时间。

rolling shutter方式曝光虽然是逐行进行,但是并不是前一行数据读取完成后再进行下一行数据的重置,曝光,读取过程。整个过程其实可以简单理解为当上一行数据再曝光的过程中,下一行就开始重置并读取数据,并不用等到上一行数据完全读取再进行,这一点有点像甘特图,可以看上面提到的博客中的图形理解。

三、Flicker产生的原因:

原因是由于sensor在光照条件下,不同像素点上的所接受的光能量不同,也就是图像的亮度不同。由于传感器 sensor 的曝光方式是通过一行一行的方式进行的,任何一个像素点的曝光时间是一样的,也就是同一行上的每个 像素点的曝光开始点和曝光的时间都是一模一样的,所以同一行的所有像素点所接收到的光能量是一样的,而在不同行之间虽然曝光时间都是一样的,但是曝光的开始点是不同的,所以不同行之间所接受到的能量是不一定相同的。

四、解决方案:曝光时间设置成1/100s的整倍数。

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

为了使不同行之间所接受的能量相同,就必须找一个特定的条件,使得每一行即使曝光开始点不同,但是所接受的光能量是相同的,这样就避开了 flicker现象,这个特定的条件就是曝光时间必须是光能量周期的整数倍时间。以50Hz的光源为例,光能量周期就是光源周期的一半,即1/100s。

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

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

五、无法规避的场景:

在实际应用中有的时候在室内环境光线很强的时候,曝光时间必须低于0.01s,当曝光时间为最小的0.01s是图像就会过曝,那么此时AE就会把曝光时间降低到能量周期整数倍以下,那么这种情况下理论上是无法解决flicker问题。

但是此时一般会通过将帧率降低到25fps来固定条纹,就让条纹不滚动,然后实际应用场景中物体的亮度本身也是渐变的,所以有的应用中通过这种固定得方式是可以接受的。

具体原理通过下图来示意

如图可以看出第一帧的第一行和第二行同上面讨论30fps一样,接受到的能量是不同的,所以亮暗条纹还是会存在,但是当帧率为25fps时,第二帧的第一行和第一帧的第一行接受的能量时一致的,第二行同理也是一致的,所以不会导致画面出现滚动的现象,也就是把flicker固定住了。

参考链接:
https://blog.csdn.net/wtzhu_13/article/details/118026033
https://blog.csdn.net/abcwoabcwo/article/details/93099982

版权共享,随意转载:云破天开 » Sensor Flicker(banding现象)