Thursday, December 25, 2008

關於flicker

在建立數位相機的exposure mode(曝光模式)時得避開的問題 - flicker。這篇主要說明,flicker產生的前因後果。先概述數位相機的曝光模式,再說明電源特性,最後說明二者間的交互影響並舉例說明。

‧數位相機曝光模式概述

在講flicker之前先大概了解一下數位相機的曝光模式,要知道數位相機的曝光方式並不同於傳統的軟片相機。

傳統軟片相機的曝光方式,是由光線透過鏡頭裡的光圈,再經過機身的快門,最後光線打在底片上,直到快門關閉後結束,以上可以說是整個完整曝光流程。

數位相機的曝光方式依不同等級類別的相機有著不同的曝光方式:
1.機械快門的數位單眼相機(DSLR)
2.有電子快門的一般市售的隨身數位相機
3.無電子快門的低階數位相機

數位相機的曝光方式,同樣是光線透過鏡頭的光圈,再經過機身的機械快門(DSLR)或是電子快門,最後光線會打在sensor(感應器)上,等快門關閉後結束整個曝光流程。而那沒有機械快門與電子快門的相機則是靠firmware來控制sensor的曝光時間。

以上三種曝光方式就sensor的角度而言可分為二類的感光模式:
1. frame exposure
2. line exposure

高階相機用的是frame exposure,低階的相機則是用line exposure。當然也有有些低階line exposure的相機,藉由電子快門可以做出類似frame exposure方式,不過這部份不在這次的討論內容裡。

軟片在曝光的同時,光線與軟片上的銀鹽產生化學作用,進而成像。而sensor在感光的同時,則是光線與sensor上的photo-diode進行光電反應,最後成像。

frame exposure 是sensor上的每一條line在快門打開同時開始感光,直到快門關閉的同時結束感光,結束感光後再把sensor上的資訊一條一條讀取出來並成像!

line exposure的方式在快門開啟後,sensor的第一條line開始感光,接著第二條line感光,並在經過t單位時間後,第一條line開始讀取訊號,接著第二條line,依序將訊號讀取並做轉換且成像!

所以,軟片的曝光可以說是整個畫面一次全部曝光後成像,而sensor的感光是sensor裡的photo-diode以條為單位一條一條去感光,然後把這些line的資訊拼成一張圖成像。

知道sensor的影像是一條條line感光後再成像。當一台曝光模式未完整建立的數位相機在日光燈下會產生亮暗的橫條紋的干擾現象,這不停出現的光線跳動現象就稱之為flicker。

‧電源類別及其特性

那為什麼在日光燈下會有亮暗的橫條紋的干擾現象呢?我們得再來了解日光燈的發光源理為何!

一般家庭用的電源可分為直線電與交流電二種。
1. 直流電(Direct Current)是指方向不隨時間發生改變的電流(沿著單一方向流動),簡稱為DC,常見於乾電池或鉛蓄電池。直流電的電流變化情形為:
圖1
2. 交流電(Alternating Current)是指大小和方向都發生周期性變化的電流,簡稱為AC,常見於一般家庭用電(均值電壓110V,頻率60Hz)(*)。交流電的電流變化情形為:
圖2

‧交互影響

所以日光燈因為導入交流電而發光,而且因交流電的特性是週期性的發光。這週期性的發光,搭上得一條條感光的sensor的同時,當頻率不對時(*)就有可能會產生所謂flicker的問題。

以台灣的60Hz的交流電源發光的日光燈為例,電源輸出交流電的電流變化情形,同(圖2)。假設電源發出的同時sensor的第一條line也開始感光,其第一條line的感光時間為1/120 s時(即半個sin波)所得到的光源強度為半個sin波的積分。第2條line感光的光源強度也同為半個sin波的積分,如圖3所示。
圖3
積分要用數學式表示也許比較不容易看懂(其實是積分跟我不熟),所以用圖示的方式就容易懂得了,見圖4。
圖4
每條line的感光時間為1/120 s的sensor在60Hz電源的頻率下時,其每條line的光源強度的積分面積相同(皆為半個sin波),也就是每條line都得得到相同光的能量,因此不會有flicker的問題產生。

但是如果sensor上一條line的感光時間不為1/120 s的倍數時會產生什麼情況呢!以一條line的感光時間為1/110 s為例,如圖5。其每條line所得到的光源強度將會有所不同,所以就會產生出亮暗交錯的干擾訊號,也就是會產生所謂的flicker。

圖5
假設第一條line(1/110 s)所積分出來的面積為A,第二條line(1/110 s)所積分出來的面積為B,所以第一條line與第二條line的光源強度差即為A與B二者的面積差,如圖6所示。
圖6
驗証:
圖7
已知 A=a'+a; B=b'+b
且 a'=a+b'

B-A
=(b'+b)-(a'+a)
=b'+b-a'-a
=b'+b-(a+b')-a
=b'+b-a-b'-a
=b-2a
=c

也就是說同樣的感光時間下,第二條line得到的光源強度大於第一條line的光源強度,依此類推下去,每二條line的光源強度差就會隨之變大變小,因而每條line之間即會有亮度差別,在整個frame來看的時候就產生亮暗的橫條紋的flicker干擾現象了。

‧結論:

flicker的產生,問題不單在於數位相機本身的頻率,還得考慮到環境光源(日光燈…等)頻率交互所產生的影響!

一個數位視訊的產品在做曝光調整時,就得避開在日光燈的環境下產生flicker的情況,其最簡單的解決方式就是將曝光的單位時間設定為是1/120 s的倍數即可!

當然這只是概念式的區分法,這方式所建立出來的EV table的曝光線數會跳的很大而且會用上很大的gain,但是仍是個有效避免flicker的陽春調整法。

(*)交流電的頻率分別有60Hz與50Hz二種,台灣的交流電的頻率為60Hz
(*)二個不同頻率會產生什麼問題!?

11 comments:

essence said...

跟你分享之前問到有關Flicker的知識
就是Flicker只會出現在日光燈
而不會出現在鎢絲燈的照明環境下

Flicker只會出現在日光燈的原因很簡單,日光燈的亮度是一個快速弦波(f=1/60 or
1/50)所積分出來的亮度(累積能量)。
因為弦波頻率會和sensor的曝光時間產生干涉,所以要倍頻去避免。
這部分跟你說的一樣

鎢絲燈是利用電阻把鎢絲加熱到白熾發出亮度,並沒有頻率干涉的問題。

以上跟有來參關Color Studio的朋友分享

A-Chi said...

essence,
感謝分享!^^

Yuling said...

您好~我想請問一下, 高頻不會發生Flicker的現象, 是多少才算是高頻? 120Hz算嗎? 謝謝!!

A-Chi said...

to.yuling
flicker就是光源與擷取影像兩者間的頻率不同所造成的現象。所以只要是有頻率干涉,就會產生flicker。

就我的理解。只能說高頻的情況下頻率的干涉情況較低,但還是會有flicker產生的!

小虎 said...

阿吉寫的超詳細的拉!!!
而且讓我原本半知半解的FLICKER~
又更加清楚了!!!



ps.借我抄在筆記本上~~~XDDD

A-Chi said...

to.小虎
不客氣的啦!歡迎有空常來坐呦~(...明明已經幾百年沒寫新東西了!)

Unknown said...

受用無窮,感謝解決小弟公司上所需要的基礎知識

Unknown said...

我覺得概念是沒錯,但是圖五, 圖六的的舉例似乎不是很正確
CMOS sensor曝光並不是第一條曝光完成才開始第二條曝光,而是相差只有一條line的時間才對。
試想,如果以圖中的例子來說,若一條line曝光1/110條,以FHD的sensor 1080條來說,整個曝光完成的時間豈不是要(1080+HBlank) * 1/110,不就要十幾秒了嗎?

如果我有誤解還請指正

A-Chi said...

to Allen Hsu,
好的!也許是說明的不夠明確。這邊我都是討論一條line曝光時間的狀況,並沒有說是一條曝光完才曝下一條喔!
圖5/6 講的是如果曝光是1/110s,且採用rolling shutter的情況, 那麼第一條與第二條曝光所積分出來的亮度就會不同,因此就會在畫面上看到有flicker的情況。因此,當前後二條line開始曝光的起始時間差愈多,flicker的亮度變化亦會更明顯!

Unknown said...

請問假如是用glbal shutter 的sensor, 會有flicker 的現象嗎? 或著是會變成blinking 呢?

Jeff Lee said...

flicker亮度會不同, 色彩比例會改變(如對著灰卡照)?