去馬賽克

去馬賽克（demosaicing，也寫作de-mosaicing、demosaicking或debayering）是一種數位影像處理演演算法，目的是從覆有濾色陣列（Color filter array，簡稱CFA）的感光元件所輸出的不完全色彩取樣中，重建出全彩影像。此法也稱為濾色陣列內插法（CFA interpolation）或色彩重建法（Color reconstruction）。

大多數現代數位相機使用單個覆上濾色陣列的感光元件來取得影像，所以去馬賽克是影像處理管線（color image pipeline）中一個必要環節，以將影像重建成一般可瀏覽的格式。許多數位相機也能夠以原始圖檔儲存影像，並允許使用者將之取出，並使用專業影像處理軟體去馬賽克，而不是使用相機內建的韌體處理。

## 目標

去馬賽克演演算法的目標是從CFA色彩通道（Color channels）輸出的不完全取樣中重建出全彩影像，即重建出各像素完整的RGB三原色組合。此演演算法應俱備以下特點：

- 避免錯誤顏色雜訊（False color artifacts）產生，例如色彩混疊（Aliases）或出現拉鍊狀（Zippering，即鄰近像素出現突兀且不自然的強度改變，有一種拉鍊狀紋路的感覺）以及紫邊（Purple fringe）雜訊。
- 儘量保留影像解析度。
- 在相機內的硬體限制下，以較低計算複雜度（Computational complexity）實現快速有效的運算處理。
- 演演算法易於分析，以使降噪（Noise reduction）更精確。

## 濾色陣列

<image>

濾色陣列是色彩過濾器在感光元件前的一塊濾色馬賽克。商務上最常使用的濾色陣列配置是拜爾濾色鏡，如圖所示。它的奇數列由紅色（R）與綠色（G）過濾器交替排列組成，而偶數列則由綠色（G）與藍色（B）過濾器交替排列組成。綠色過濾器數量是紅色、藍色的兩倍，這是為了模擬人眼對綠光更高的敏感度。

因為濾色陣列的色彩取樣會自然地產生混疊問題，所以通常會在感光元件以及鏡頭的光程之間配置光學抗混疊濾波器，以便消除內插法帶來的錯誤顏色雜訊以及色彩混疊。

因為感應器上的每個像素都在濾色器後方，所以輸出結果是一個像素值的矩陣，每個數值代表三種濾出顏色之一的原始強度，因此需要去馬賽克演演算法以估算每個像素各種色彩的色階（Color levels），而不僅僅是一種色彩的分量。

## 圖解

要從濾色陣列輸出的資料中重建出全彩影像，我們可以用內插法來填補空缺。用來做影像重建的數學運算法有不同的實現，總稱為去馬賽克演演算法。

在這個範例裡，我們使用Adobe Photoshop的雙三次內插法來模擬使用拜爾濾色鏡裝置（例如數位相機）的去馬賽克處理。

下面這張影像模擬了拜爾濾色感光元件的輸出；每個像素僅有紅、綠、藍色元素。相應的原始圖檔與去馬賽克重建的圖檔並排顯示於章節底部。

<image>

拜爾濾色鏡 範例

<image>

｜

<image>

｜

<image>

紅色元素｜綠色元素｜藍色元素

數位相機一般會用以上方法來重建RGB影像，生成的影會像以下所示：

<image>

｜

<image>

原始圖｜重建圖

重建影像通常會在顏色均勻的區域表現精確，但解析度（細節與銳度）會有一些損失，也會有邊緣雜訊。例如，圖像中這些字母的邊緣可見明顯的彩色條紋（Color fringes）與些許粗糙感（Roughness）。

## 演演算法

### 單純內插法（Simple interpolation）

單純內插法屬於均勻網格上的多變數內插法（Multivariate interpolation），演演算法對鄰近方格的相同色彩元素進行相對直接的數學運算。最簡單的方法是近鄰內插法（Nearest-neighbor interpolation），直接複製同一色彩通道（Color channel）的鄰接像素。若要顧及影像品質，這種方法就不合適了，但它是在有限運算資源下產生影像預覽的有效方法。

另外一種方式是雙線性內插法，用兩個或四個鄰接紅色像素的平均計算出非紅色像素的紅色數值，藍色與綠色計算方式類似。各顏色平面獨立內插是更複雜的方法，包括雙三次內插法、樣條內插法，以及蘭克索司重取樣法（Lanczos resampling）。

儘管這些方法在影像均勻的區域可以獲得不錯的結果，但使用純色濾色陣列時，影像的邊緣以及細節之處容易產生嚴重的去馬賽克雜訊。不過，線性內插與空間-光譜式（Spatio-spectral），或稱全色（Panchromatic）濾色陣列結合時，可以獲得非常良好的結果。

去馬賽克時還可對影像進行簡單建模。相同區域的自然影像色彩比率應保持相同，影像感測內插法（Image sensitive interpolation）就是利用了這點。

### 影像裡的像素相關性（Pixel correlation）

更成熟的去馬賽克演算法利用色彩影像中像素的空間、光譜關聯。空間相關是指像素在影像的小塊勻質區內的色彩值往往相似。光譜相關則是指在小塊影像裡不同色彩平面像素值之間的依賴性。

這種演演算法包括：

- 可變數目梯度（Variable Number of Gradients）：此內插法計算相關像素周圍的梯度，使用較低的梯度（表示影像更均勻且更類似的部份）來估計。第一版dcraw軟體中就有使用，但會有色彩雜訊的困擾。
- 像素群聚（Pixel Grouping）：使用有關自然景像的假設來估計。與可變數目梯度演演算法相比較，它在自然影像上色彩雜訊。第8.71版的dcraw引進了這個方法，稱為做圖案化像素群聚（Patterned pixel group）。
- 自適應均勻定向（Adaptive homogeneity-directed）：此內插法能選擇內插的方向，以最大化同質標準（Homogeneity metric），因此一般情況下能夠最小化色彩雜訊。它已被建置在dcraw的最近版本裡。

### 動態影像超解析度（Video super-resolution）/ 去馬賽克

已有資料顯示，超解析度（Super-resolution）與去馬賽克是一個相同問題的兩個面向，而用統一的內容將它們一起提出來說明是很合理的。記住，這兩個問題會帶出混疊的問題。因此，特別是在動態影像（多重畫格）的重建案例中，這種結合超解析度與去馬賽克的方法提供了最佳解決方案。

### 取捨

舉例來說，某些方法可能對自然場景有較好的結果，而某些則對印刷物有較佳的顯現。這反應了估計不能準確感知的像素所面臨的內在問題。當然，還有常見的估算速度與估算品質之間的取捨。

## 電腦影像處理軟體的使用

從數位相機取出原始圖檔後，可以使用專門的電腦軟體來選擇不同的去馬賽克演演算法處理，以取代相機內寫死而無法再更替的演演算法。一些原始圖檔處理程式，例如RawTherapee，讓使用者選取想要使用的演演算法，不過大多數圖像處理程式已設定成使用一種特定的演演算法來處理原始圖檔。各個攝影師處理的原始圖檔細節和紋理的差異，主要來自於選擇不同的去馬賽克演演算法；通常攝影師會以自己的審美觀使用自己所偏好的應用程式。

另外，由去馬賽克所產生的色彩雜訊可以為辨識偽造圖片（Photo forgeries）提供重要線索。

## 延伸閱讀

- Comparison of different interpolations, ImagEval Consulting LLC
- A Study of Spatial Color Interpolation Algorithms for Digital Cameras and especially description of Variable Number of Gradients algorithm by Ting Chen, Stanford University
- K. Parulsi and K. Spaulding (2003). Color image processing for digital cameras. In Digital Color Imaging, G. Sharma, ed. Boca Raton, Florida: CRC Press. 727–757.
- HowStuffWorks: How Digital Cameras Work, More on Capturing Color , with a demosaicing algorithm at work animation
- Demosaicing in the Kodak DC210 Digital Camera, Cleve Cheng, Mar 13 1998
- (broken link)
- Interpolation of RGB components in Bayer CFA images , by Eric Dubois
- Color Demosaicing Using Variance of Color Differences by King-Hong Chung and Yuk-Hee Chan
- Hybrid color filter array demosaicking for effective artifact suppression by Lanlan Chang and Yap-Peng Tan
- Image Demosaicing: A Systematic Survey by Xin Li, Bahadir Gunturk and Lei Zhang
- Demosaicking: Color Filter Array Interpolation in Single-Chip Digital Cameras, B. K. Gunturk, J. Glotzbach, Y. Altunbasak, R. W. Schafer, and R. M. Mersereau
- Spatio-Spectral Color Filter Array Design for Enhanced Image Fidelity, Keigo Hirakawa and Patrick J. Wolfe
- Effective Soft-Decision Demosaicking Using Directional Filtering and Embedded Artifact Refinement, Wen-Tsung Huang, Wen-Jan Chen and Shen-Chuan Tai
- Similarity-based Demosaicking by Antoni Buades, Bartomeu Coll, Jean-Michel Morel, Catalina Sbert, with source code and online demonstration
- A list of existing demosaicing techniques
- Interactive site simulating Bayer data and various demosaicing algorithms, allowing custom images
- Geometry-based Demosaicking by Sira Ferradans, Marcelo Bertamio and Vicent Caselles with source code and reference paper.
- Review of common Bayer demosaicing algorithms
- A comprehensive list of demosaicing codes and binaries available online