3、去马赛克基础理论:CFA、奈奎斯特与伪色

各位好,欢迎来到第三章。这一章我们不讲代码,不讲寄存器配置,专门把去马赛克(Demosaic)的底子打牢。说白了,就是搞清楚三件事:CFA 为什么长这样、伪色是怎么冒出来的、怎么量化算法好坏。

我在高通调了这么多年 ISP,见过太多人一上来就调 Demosaic 的强度参数,结果伪色越调越多。嗯,这里要注意——不懂基础理论,调参就是瞎蒙。

3.1 色彩滤波阵列(CFA)原理

图像传感器本身是色盲的,它只能感知光的强度,分不清红绿蓝。那怎么办?在像素表面盖一层彩色滤光片,每个像素只让一种颜色通过。这就是 CFA。

最常见的 CFA 模式是 Bayer 模式,由 Bryce Bayer 在 1976 年发明。它的排列是:

行 列 1 列 2 列 3 列 4
第 1 行 R G R G
第 2 行 G B G B
第 3 行 R G R G
第 4 行 G B G B

注意看,绿色像素占了总数的一半,红蓝各占四分之一。为什么?因为人眼对绿色最敏感,绿色通道承载了大部分亮度信息。我刚开始做 ISP 时觉得这设计有点浪费,后来发现——这是用硬件采样率换视觉感知精度,很聪明。

关键点:Bayer CFA 的本质是欠采样。每个像素只采集一种颜色,缺失的另外两种颜色要靠插值恢复。这就是去马赛克要干的事。

3.2 奈奎斯特采样定理与伪色产生原因

为什么会有伪色?这得从采样定理说起。

奈奎斯特告诉我们:要无失真地重建一个信号,采样频率必须大于信号最高频率的两倍。对于图像来说,空间频率对应的是细节的密集程度。比如一根根分明的头发丝,就是高频信号。

在 CFA 图像里,每个颜色通道的采样率只有全分辨率的 1/2(绿色)或 1/4(红蓝)。这意味着:

  • 绿色通道:能还原的最高空间频率是传感器 Nyquist 频率的 1/2
  • 红/蓝通道:只能还原到 Nyquist 频率的 1/4

当场景中的细节频率超过这个上限时,就会发生混叠(Aliasing)。混叠在彩色图像上的表现就是——伪色。你想想看,原本是黑白相间的条纹,经过 CFA 采样和插值后,边缘出现了红绿蓝的杂色,这就是伪色。

避坑指南:我曾经在调试一个 8M 的 sensor 时,发现拍摄细条纹衬衫时伪色特别严重。后来分析发现,问题不在 Demosaic 算法本身,而是镜头的光学低通滤镜(OLPF)不够强,导致高频信息直接混进了 CFA 采样。所以,伪色不一定是算法问题,也可能是光学问题。

常见的伪色类型:

伪色类型 表现 常见场景
边缘伪色 物体边缘出现红/蓝/绿条纹 黑白文字、细线条
锯齿伪色 斜线边缘呈阶梯状彩色 45° 斜线、圆形边缘
纹理伪色 密集纹理区域出现不规则色块 织物纹理、草地

3.3 去马赛克算法的评价指标

算法好不好,不能光靠眼睛看。我们需要客观的量化指标。我个人习惯用三个:PSNR、SSIM、色差。

3.3.1 PSNR(峰值信噪比)

PSNR 是最传统的评价指标。它计算重建图像与原始图像之间的像素级误差。

PSNR = 10 * log10( MAX² / MSE )

其中:
MAX = 像素最大值(8bit 时为 255)
MSE = 均方误差(Mean Squared Error)

PSNR 越高,表示重建图像越接近原始图像。一般来说:

  • PSNR > 40dB:图像质量非常好
  • PSNR 30-40dB:图像质量良好
  • PSNR < 30dB:图像质量较差
我的经验:PSNR 对像素级误差敏感,但它不反映人眼的主观感受。有时候 PSNR 很高,但图像看起来就是不舒服——因为 PSNR 不关心纹理和边缘的感知质量。所以,PSNR 只能作为参考,不能作为唯一标准。

3.3.2 SSIM(结构相似性)

SSIM 比 PSNR 更聪明。它从三个维度评价图像质量:

  1. 亮度:比较两幅图像的平均亮度
  2. 对比度:比较两幅图像的方差
  3. 结构:比较两幅图像的协方差

SSIM 的取值范围是 [0, 1],越接近 1 表示越相似。通常 SSIM > 0.95 就算很不错了。

我在项目中遇到过这样的情况:某个 Demosaic 算法 PSNR 比竞品高了 2dB,但 SSIM 反而低了 0.02。后来仔细看,发现这个算法虽然像素误差小,但把纹理细节磨平了,导致结构相似性下降。所以,SSIM 更能反映人眼对纹理的敏感度。

3.3.3 色差(Color Difference)

色差是专门评价伪色的指标。常用的色差公式有:

  • CIEDE2000:最精确的色差公式,计算复杂
  • CIE76:简单的欧氏距离,计算快
  • ΔE:在 Lab 色彩空间中的距离

对于去马赛克算法,我们通常关注边缘区域的色差。因为伪色主要出现在边缘和纹理区域。

指标 优点 缺点 适用场景
PSNR 计算简单,广泛使用 不反映人眼感知 整体质量评估
SSIM 更符合人眼感知 计算稍复杂 纹理/结构评估
色差 直接量化伪色 需要 Lab 转换 伪色专项评估
我的建议:在实际工程中,三个指标一起看。PSNR 看整体误差,SSIM 看结构保真度,色差看伪色严重程度。如果三个指标都优于竞品,那算法基本稳了。

3.4 本章知识结构图

下面这张图总结了 CFA、奈奎斯特、伪色和评价指标之间的关系:

去马赛克基础理论结构图 去马赛克基础理论结构图 CFA 原理 Bayer 模式 颜色欠采样 插值重建 奈奎斯特采样定理 混叠(Aliasing) 伪色产生 光学低通滤波 评价指标 PSNR SSIM 色差 核心逻辑:CFA 欠采样 → 奈奎斯特限制 → 混叠产生伪色 → 用 PSNR/SSIM/色差量化

这张图把本章的核心逻辑串起来了。从 CFA 的欠采样开始,到奈奎斯特定理揭示的混叠问题,再到伪色的产生,最后用三个指标来量化。你想想看,整个去马赛克算法的优化,本质上就是在跟这三个环节博弈。

一句话总结:去马赛克不是简单的插值,而是在分辨率、伪色、计算复杂度之间找平衡。理解了 CFA 和奈奎斯特,你就知道伪色为什么躲不掉;掌握了评价指标,你就能客观地判断算法好坏。