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
(*)二個不同頻率會產生什麼問題!?

不同頻率會產生什麼問題!


二個不同頻率之間可能會產生共振或干擾的現象,舉個最簡單的例子(如圖示)。
A端為傳送訊息端,以每秒傳送一個方向箭,依次以順時鐘方向轉向90度發送訊號。如果接收端同傳送端同為1秒接收一次訊號的話,那看到的會同A一樣是個順時鐘方向轉的箭頭。
如果接收端為2秒接收一次訊號,如B組,那所接收到的訊號將只會是上下反向跳動的箭頭。
如果接收端為3秒接收一次訊號,如C組,那所接收到的訊號將會是反時鐘方向轉的箭頭。
如果接收端為4秒接收一次訊號,如D組,那所接收到的會是一個恆指向上的箭頭訊號!