去马赛克

去马赛克（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