Cameras
Digital Visual Effects 課程筆記 - 1
Camera
• 如果直接用film感光景物的話,景物上一點投影 到底片上多點,所以會blur掉。
• 如果我們使用針孔照相機的話,就可以解決這個 問題。因為只要針孔夠小,我們就可以限制景物 上某點只會映在底片上的某一點。
– 針孔大,則影像會blur
– 針孔小,則集光力弱,必須曝光很久才能成像。
• 這個問題我們也可以加一個凸透鏡,使得雖然我 們的針孔開的比較大,但仍可以集光到一個點 上。
Camera
• 如此一來,利用 關係式我們就可以
調整lenses的位置使影像成像清晰。
Aperture and Shutter
• 在更進一步,為了控制曝光,我們可以加入一個
Shutter以及一個aperture,aperture用以控制進
入光的角度(即針孔的大小),Shutter則用以控
制曝光的時間。
Aperture
• 接下來我們來看一下aperture,一般上aperture 是用f-stop表示,在照相機上則標示為f/D,需注 意的是aperture的數字越大,代表光圈
( aperture)開的越小,所以進光量也越小。
Aperture and Depth of Field
• 接下來我們來看Aperture與景深間的關係,所謂 景深指的是景物因為遠近距離的關係,而在底片 上影像清晰的範圍。
• 由下圖我們可以看出來當光圈開的大時,景深較 深,反之則景深較淺。
Lenses
• 當然,Lenses的好壞與種類可能會影響成像的品 質。
– 例如品質不好的鏡頭可能到成影像的扭曲。
– 魚眼鏡頭也會造成類似的效果。
Digital camera
scene sensor
array lens &
motor
aperture
& shutter
• 傳統相機與數位相機在結構上是相似的,如果將 film camera 的 film 用 sensor array 來取代,就是 digital camera。
• 在 sensor array 的每個 cell 都是一種感光元件,能將光 能的反應轉換成電腦,然候轉成數位的資訊留待後面處 理。
CCD v.s. CMOS
• 這類感光元件主要有兩種:
• CCD
• 早期因為 CCD 需要特殊的製程,因此成本較高,但產生 的雜訊較少,畫質較好,因此高階的digital camera 都是 採用CCD。
• CMOS
• 只需要一般的製程,成本較低、耗電量也較低,但畫質較 差、雜訊較大,而且每個cell 都要加上控制器,因此同 面積的sensor 密度比 CCD 小。由於技術的進步,現在許 多高階digital camera 也採用 CMOS 作為 sensor array。
Sensor noise
• sensor 的作用是將光的資訊轉成電流的資訊,轉換的過程 中會有noise 產生,一般noise有以下幾種。
• Sensor noise
• sensor 的作用是將光的資訊轉成電流的資訊,轉換的過程 中會有noise 產生:
• Blooming:
• 如果某個 cell 的電流滿載,將會溢流到附近的 cell,這種 noise 稱為 blooming。
• Diffusion:
由於熱能的影響, 使得電子跑到附近的pixel去而產生 crosstalk
Sensor noise
• Dark current:
由於 sensor 是藉由感應光的能量來產生電流,所 以即使在很黑的環境,仍然會因為溫度、紅外線 等電磁波而受到感應。
• Photon shot noise:
光子到達detector的過程為一個Poisson process,
• 所以在計算一個時間內所有收集的光子數會有一 個uncertainty, 其標準差為sqrt(S),S為所估計的光 子個數
• Apmlifier readout noise:
readout amplifier的阻抗產生的熱所產生的noise
Color
•我們之前所談的,都是單色的情況,要得到彩色的 影像有幾種方法:
•Field sequential
•Multi-chip
•Color filter array
•X3 sensor
•下面幾張投影片我們來一一看看他們的差別。
Field sequential
所謂field sequential 就是用三種色光的 filter 加在鏡頭前 面,然候依序拍下加上red filter、green filter、blue filter 的 相片,再將三張相片合成為一張,就得到一張彩色的相片。
1990 年代初期,Prokudin-Gorskii 利用特置的相機,留下許 多這類三色分離的相片,使得未來能經過合成,而得到當時 的彩色相片,這是非常特別的。
Field sequential 的缺點就是因為是依序照三張照片,因此如 果被照的東西會動,像流水,就沒辦法了。
Multi-chip
Multi-chip 就是當光進入鏡頭時,利用不同波長、折射角度 不同的原理將red, green, blu 光分離,再利用三個 sensor array 分別接收三色光的資訊。
這種作法就沒有Field sequential 的問題,但是要做三個 sensor array,成本大大提高。
Embedded color filters
由於現在的技術,filter 可以直接做在 photodetector 上面,
因此現在的digital camera 都是使用下面介紹的技術。
Color filter array
在sensor array 上,每個 cell 都有 filter embedded 在上 面,因此一個cell 只負責接收某一色光的資訊。而 red, green, blue 分配的方式有很多種,不同廠商也會有各自喜 好的分配方式。由於人眼對綠色的資訊分辨範圍較大,因此 若rgb 不是平均分配,大概都會提高 green 的比重。其中 Bayer pattern 是最常用的分配方式。
當我們得到一張由Bayer pattern 的 CFA(Color Filter Array) 所得到的影像,我們需要一些方式來將該影像轉換成我們常 用的格式,也就是每個pixel 都有 red, green, blud 的資 訊。
Demosaicking CFA’s
Bilinear Interpolation
這是最簡單的一種,該cell 缺少那個顏色資訊,就用鄰近四 個cells 的資訊來取平均。
Constant hue-based interpolation (Cok)
首先用bilinear interpolation 的方式求出全部的 green,再 用投影片上的公式求red 和 blue。
Median-based interpolation (Freeman)
首先用bilinear interpolation 求出 red, green, blue,再計算 每個cell 的 (r-g) 和 (b-g) 的差。接著計算一定範圍內 (如:
5 cell x 5 cell) 差的 median value,利用 median value 做 filter,再用 filter 的結果加上 sample 的結果,得到
interpolation 的影像。
Demosaicking CFA’s
Gradient-based interpolation (LaRoche-Prescott) 首先用投影片上的公式對 green 做
interpolation,接下來再用對 red 和 green 做 interpolation (計算的方法請參考投影片)。
因為 LaRoche 的方法將 Gradient 列入考慮,因 此在 Gradient 明顯的地方,laRoche 有很好的表 現。但一般而言,尤其是自然的影像, Freeman 的方法表現最佳。
Foveon X3 sensor
由於不同波長的色光能進入 sensor 的深度不同,因 此可以利用這個特性,設計多層的 CMOS sensor,每 一層負責感應不同的色光。由於這種作法,每一個 pixel 都可以得到完整的 red, green, blue 資訊,因 此不需要再進行上述 Demosaicking CFA's 的動作,
可得到更高品質的影像。可惜目前市面上未有利用此 技術的 digital camera。
Color processing
得到了彩色的影像後,往往還需要進行某些 color
processing,例如 white balance 的調整等。因為
不同的 device 對於不同光的強度都有各自的函
式,因些我們往往會需要透過一些調整讓影像在
某個 device 上表現的更好。
White Balance
由於現在的digital camera 都是用 filter 讓 sensor 各自感應 不用波長的色光,因此得到的影像,三個色光的強度比例 未必是正確的,這時候就要透過white balance 來校正,使 三色光的強度比例符合現實環境。
Manual white balance
大部份的digital camera 具有 automatic white balance 的功 能,但如果要得到比較正確的white balance,最好還是用 manual white balance。通常 manual white balance 的作法 是選定一個白色的物體,然候調到manual white balance mode,對著該白色物體照一次相,讓 camera 根據這個結 果去調整參數。
Autofocus
• Autofocus
• 對焦正確是照片好或不好的重要因素之一,而現在的 camera 通常都具備 autofocus 的功能。
• Active
• Active autofocus 是利用 Sonar 或 infrared 等波來計算物 體的距離來調整鏡頭的距離。sonar 有個缺點是如果在玻 璃窗內要照窗外的影向,就沒辦法得到正確的對焦。
• Passive
• Passive autofocus 通常是透過計算 sensor 上的影像,來 決定是否正確對焦,例如計算gradiant 來判斷。如果要 看某個camera 是否是 passive autofocus,將相機對著一 個同色的牆,這時候camera 即無法判斷 focus 是否正 確,因此鏡頭會一直前後移動作對焦的動作。
Digital camera review website
• http://www.dpreview.com/
• Digital camera review website
• 這裡介紹一個網站,這個網站蒐集了很多 digital camera 的技術資料,如果要購買 digital camera 或想知道
camera 更多的資訊,可以來這個網站看看。
Camcorder
Camcorder 又稱為 Video Camera,其本原理就是將一張 一張的連續影像輸出成為影片。
Interlacing
由於早期的電視網路頻寬不足,但是每秒又需要送30 張 frames,因此當時就利用 interlacing 的方法,也就是這次 送單數條scanline,下一次送偶數條 scanline。而現在雖 然技術進步了,但電視還是用這種方式在運作,因此一般 camcorder 輸出的影片仍然是 interlacing 的。
deinterlacing
Deinterlacing
由於interlacing 等於每個時刻畫面只有一半的資訊,因此 在影片處理中,我們都需要deinterlacing 以得到完整的資 訊。deinterlacing 的方法很多,但效果都不是最好,因此 最好還是一開始record 時就不要 interlacing。
Blend
將奇數scanline 和偶數 scanline blend 以得到缺少的 scanline。
Weave
同時顯示even及odd fields without interpolation, 就是什麼 也不做的意思
deinterlacing
Discard
直接去掉某scanline,例如,直接去掉所有的奇數
scanline。通常最難處理的部份是變化很大的 frame,例如 高速衝剌的畫面,或浪花四濺的畫面等。
Hard cases
由於deinterlacing 的效果不好,因此在拍的時候,如果 camcorder 有 progressive mode 可以選的話,一定要選 progressive mode 來 record,才能省去很多麻煩。
High dynamic range imaging
HDR Image
• HDR是High Dynamic Range的意思。一般由數位 相機拍出的影像,其pixel的值都在0到255之間,
但在現實埸景中,最亮部和最暗部的光線亮度比 例可能在數萬到數十萬之間,用0到255的整數來 表示必然會有失真的現像。
• 為了取得較接近真實埸景中的光線亮度值,除了 用浮點數去表示一個pixel的亮度外,我們還必須 用原本在0到255之間的pixelvalue去反推出原本 的亮度值。在這之前,我們要先了解相機在拍照 時幫我們做了什麼事。
HDR Image
• 一般相機在拍照時,處理的流程如下:
• 埸景的光線經過鏡頭,投射在Sensor Array上(比如說CCD)。
• 快門會控制曝光量,如果埸景的亮度是固定的,則曝光量可以下面的 公式表示:
exposure = radiance * t
• 傳統相機上,不同的曝光量會造成不同程度的化學反應,在數位相機 上的CCD則會產生不同程度的電位差。此時會有一個clipping的效 果:過亮的值在CCD上的輸出都是相同的(最大值)。
• CCD會把類比的電壓訊號轉化成數位訊號。
• 一般而言,原始的數位訊號會經過DSP做color remapping與資料壓縮 等動作,最後才儲存到記憶裝置上。
HDR Image
• 我們想取得的是原始的光線亮度(radiance),因此 要先得到曝光量。如果知道相機如何做color remapping(稱為response function),那我們可以 比較容易從pixel value反推出曝光量。然而不同 的相機有不同的response function,因此我們必 須用不同的曝光時間設法得到response
function。
• 經過response function處理過的pixel value其公 式如下,其中r表示radiance,t表示曝光時間,f 為response function:
– Z = f(r*t)
HDR Image
• 既然f是一個一對一的遞增函式,我們可以假設
– f(x) = g(ln(x))
– f(r*t) = g( ln(r*t) ) = g(ln(r) + ln(t))
• 對同一個位置的pixel來說,ln(r)是固定值,所以 不同的t所得到的pixel value可以連接成一條遞增 的函數曲線。不同位置的pixel其ln(r)的值不同,
因而他們所連成的曲線會有水平位移的不同。消 除掉水平位移後我們就得到response function的 曲線了。
HDR Image
• 得到response function以後,我們就可以很容易地從pixel value得出真正的曝光量。 需注意有些相機可以輸出raw 格式的檔案,內容是不經由response function而由CCD直 接取得的曝光值,對這樣的相機我們就不需要大費周章去 求response function了。
HDR Image
• 不管是由response function或是raw檔,得到曝光 量後,除去過亮或過暗的pixel(因為它們是被clip 後的結果 ),再由前面提及的公式就可以得到原始 的光線亮度了。
– exposure = radiance * t