第二章 數位相機影像流程處理系統架構簡介
2.1 概述
典型的數位相機系統如圖 2-1 所示[23],包含了主要的信號處理器、光 學變焦鏡頭、CCD/CMOS 影像感測器、音訊輸出入電路、閃光燈電路、內 部快閃記憶體與隨機存取記憶體、使用者介面、電視訊號輸出、平面液晶 顯示器輸出、USB、記憶卡介面與無線傳輸模組等模組。信號處理器由 ARM、DSP、彩色影像處理晶片、CCD 前置處理器(preprocessor)、其他協 同處理器(coprocessor)以及其他硬體模組共同組成的系統晶片,ARM 是專 門為嵌入式系統開發的精簡指令集微處理器(RISC CPU),具有低耗電、高 性能與成本較低的特性;DSP 則是一強大的數學運算處理器,對於矩陣運 算有極高的效能,具有單一指令多重資料流的特性;彩色影像處理晶片包 含色彩內插、白平衡、色調重現、雜訊濾除、邊緣增強、色彩飽和度增強 等處理過程,可將原始數位影像資料處理成彩色影像。場景經由影像感測 器感測到原始的類比訊號,經由類比轉數位處理電路轉換成原始的數位影 像資料後,經過信號處理器進行彩色影像處理與影像壓縮,再將影像儲存 在快閃記憶體中,可藉由使用者介面顯示影像在液晶顯示器上,這整個流 程需要仰賴嵌入式軟體來完成所有的處理程序控制。
SDRAM
Audio D/A; A/D
Microphone
Speaker CCD/CMOS
Sensor Zoom
Lens M-Shutter
Strobe
User I/F & Button
USB Host USB Slave Printer
Wireless Device
Wireless Device
Internal Flash Memory
LCD Display
Flash cards
Signal Processor (SOC)
TV
Computer
圖 2-1 數位相機系統
2.2 彩色影像處理流程
彩色影像處理流程是將相機所拍攝下來的原始影像資料處理成高品質 的輸出影像,典型的處理流程包含有[24][25]:自動色階 (Auto Level)、自 動白平衡 (Auto White Balance)、色彩插補 (Color Interpolation)、雜訊濾除 (Noise Filter)、影像邊緣增強 (Edge Enhancement)、色彩飽和度增強 (Color Saturation Enhancemen)、色彩校正 (Color Correction)、色調重現 (Tone Reproduction) 與珈瑪校正 (Gamma Correction) 等步驟,如果沒有正確的 處理流程,是不可能得到優良且穩定影像品質,即使每一階段都有用適合 的演算法,要判斷如何將上述的處理階段放置在影像處理流程的正確位置 上是非常困難的,各級的影像處理擺放順序將影響最後照片的品質。我們 根據色彩學的理論與影像處理的技術,提出一個全新的影像處理流程 [26],如圖 2-4 所示:
Read Image Raw Data
Color Interpolation
Edge Detection
Noise Filter
R G B
R G B
Color Correction Linear sRGB
to CIELAB White Balance
Edge Enhancement Color Saturation
Enhancement
CIELAB to Linear sRGB
Gamma Correction
JPEG Compression
R G B
sRGB to YCbCr
L*
a*
b*
R G B
Y Cb
Cr
R G B R
G B L*
a*
b*
L*
a*
b*
R G B
R G B R
G B
Tone Reproduction
R G B
Auto Level
R G B
Read Image Raw Data
Color Interpolation
Edge Detection
Noise Filter
R G B
R G B
Color Correction Linear sRGB
to CIELAB White Balance
Edge Enhancement Color Saturation
Enhancement
CIELAB to Linear sRGB
Gamma Correction
JPEG Compression
R G B
sRGB to YCbCr
L*
a*
b*
R G B
Y Cb
Cr
R G B R
G B L*
a*
b*
L*
a*
b*
R G B
R G B R
G B
Tone Reproduction
R G B
Auto Level
R G B
圖 2-2 彩色影像處理流程
全新的影像處理流程[26],如圖 2-2 所示。影像處理流程步驟如下所述:
1. 自動色階處理在於希望能夠利用拉大其影像動態範圍的方式,解 決影像的暗電流以及過曝的問題,而暗電流現象為 CCD 或 CMOS 在製造時的不完美所造成的誤差值,而修正曝光值為影像的數值 範圍超過其最大的可能表示範圍。
2. 自動白平衡方法乃是根據感測器的光譜響應以及色溫曲線調整為 校正依據來預測光源,故原始資料必須具有足夠的資訊去預測色 溫及環境光源,所以能夠正確估計其光源。此外,自動白平衡演 算部份會只針對其影像中巨集區塊邊緣偵測的結果來做計算,此 想法是為了避免影像中大色塊對於自動白平衡的紅藍因子計算將 會左右其數值,因而,影響到彩色影像校正的結果,接下來一步 的作法為利用一色溫曲線,來做為標準光源校正的依據,而該色 溫曲線乃是經由各種光源下,並取其景物中標準色卡的灰階部份 之綠紅比例以及綠藍比例,經由上百張不同場景以及不同時辰的 統計而得來,一旦邊緣偵測結果用於色溫曲線時,只要逼近其色 溫曲線上最靠近的光源,便可獲得紅色因子以及藍色因子,而該
平衡的處理置於色彩插補處理之前,所以處理的資料量會大為減 少,會使影像處理的速率提高。
3. 色彩插補是使用 Adaptive Fuzzy 的方式[27],算出要插補的像素與 鄰近點的關係,根據那點與水平方向和垂直方向的關係來決定水 平方向和垂直方向插補所佔的插補權重,將 Bayer Pattern 去插補 回每一元素所遺漏掉的色彩元素,經由證實可以邊緣模被糊程度 較低。
4. 本實驗室提出一個整合型的流程架構來改善影像的品質[28]。其中 結合了邊緣偵測、雙邊濾波器與邊緣增強演算法。這裡的流程主 要會分成兩個分支,一個分支是偵測出影像的邊緣圖,以便在後 面的步驟可以對影像邊緣做正確的處理,另一個分支會依照偵測 出來的影像邊緣圖,對影像及其邊緣做適當的雜訊濾除處理,最 後,經過雜訊濾除的影像,則會利用前面所得的邊緣偵測圖進行 影像邊緣增強的處理,最後得到乾淨且清晰的影像。除了影像邊 緣增強的動作是在CIELAB 色彩空間中對 L 做計算之外,其他的計 算部分我們都在RGB色彩空間中做計算。雖然說,許多的影像理 論指出,人眼對於不同亮度下的雜訊敏感度大於在不同的色度 下,但其實許多的雜訊是出現在RGB色彩空間上,且色彩空間轉 換公式往往會放大雜訊的影響,因此我們在RGB色彩空間上做雜 訊濾除比較能有效的濾除雜訊,而在邊緣偵測來說,有許多的邊 緣是出現在不同的色彩空間上,但具有相似的亮度值,因此我們 如果只在L*亮度空間上去找尋邊緣的位置會難以察覺所有邊緣的 位置,而且,如此一來,我們也就不需做多次的影像色彩空間轉 換計算,可減少計算量。從實驗結果可看出這個影像處理流程可 以達到濾除雜訊的同時也保留並增強邊緣的效果。
5. 色彩校正將 RGB 三刺激值從感測器的光譜感測數值轉換到 sRGB
人眼所看的色彩空間中。由於數位影像擷取感應裝置於製造時,
無法保證所有的 CMOS 或 CCD 都有完全一樣的光學物理特性,所 以必須要有一個色彩校正的影像處理,以便將所有的 CMOS 或 CCD 都校正成同樣的光學物理特性。首先第一步便是移除感應響 應的非線性特性,也就是把數位影像資料轉換到線性空間,一旦 將色彩影像資料轉換到線性空間後,我們便可再將色彩影像資料 轉換到其他的色彩空間,諸如像是 CIEXYZ 或是 CIELAB 等色彩空 間,而實現的方式通常便是針對三個彩色元素紅綠藍,各別使用 一個一維的查表法來做轉換,要不然便是採用一個三乘三的矩陣 來省略其資料表的體積,然而,3×3矩陣的轉換方式是較為方便使 用的。
6. sRGB to CIELAB 將 sRGB 色彩空間轉換到 CIELAB 色彩空間前要 先轉換到 CIEXYZ 色彩空間。為了避免彩度以及亮度在演算的過 程中同時被變動到,所以,我們提出的彩色影像處理流程會從線 性 RGB 色彩空間轉到 CIELAB 色彩空間,因為 CIELAB 色彩空間 為彩度以及亮度分離的色彩空間,並且其彩度分佈是非常均勻 的,所以可以很安心的只對彩度或是亮度做影像處理。一旦將線 性 RGB 色彩空間轉到 CIELAB 色彩空間之後,便可以進行色彩飽 和度增強處理以及邊緣加強處理,
7. 色彩飽和度增強:將 a*和 b*去乘上一個調整值來增加色彩飽和 度。色彩飽和度增強處理會針對 CIELAB 色彩空間中的彩度a∗以 及彩度b∗做增強處理,a∗在彩度空間的顏色為紅色以及綠色,而b∗ 在彩度空間的顏色為黃色以及藍色。CIELAB to sRGB:把前級在 CIELAB 色彩空間所做的調整對應到 RGB 色彩空間。
8. 色調重現為調整影像動態範圍,改善亮度和對比,原來影像將呈
仍然難以將整個情境的動態範圍給包含進來,最基本的問題便是 影像感測器的動態範圍小於情境的動態範圍。經由重現人眼對原 始情境的亮度感覺的處理演算法稱為色調重現。我們提出了以巨 集邊界直方圖等化處理,來得到動態的 TRC,色調映射的動作並 非一般在直接在亮度下調整,而是在 RGB 色彩空間下主要是並免 顏色的失真。
9. 伽瑪校正的目的在於校正螢幕的非線性輸出,而且其演算式很單 純,只有一個乘冪輸入的演算式,然而在處理較暗的像素值域時,
如 0~10 之間的色域時,由於不確定該像素是否為雜訊,而其雜 訊會一下子全部都被放大,為了能夠希望這樣的轉變不要太劇 烈,所以我們將原來的伽瑪校正的做一點小小的修改,也就是在 處理較暗的像素值域時採用較緩和的線性方程式,以避免雜訊放 大的可能性。此外,正由於伽瑪校正的處理是屬於非線性的轉換,
所以我們會將這部份的影像處理階段移到影像處理流程的最後面 階段去完成。