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 时觉得这设计有点浪费,后来发现——这是用硬件采样率换视觉感知精度,很聪明。
3.2 奈奎斯特采样定理与伪色产生原因
为什么会有伪色?这得从采样定理说起。
奈奎斯特告诉我们:要无失真地重建一个信号,采样频率必须大于信号最高频率的两倍。对于图像来说,空间频率对应的是细节的密集程度。比如一根根分明的头发丝,就是高频信号。
在 CFA 图像里,每个颜色通道的采样率只有全分辨率的 1/2(绿色)或 1/4(红蓝)。这意味着:
- 绿色通道:能还原的最高空间频率是传感器 Nyquist 频率的 1/2
- 红/蓝通道:只能还原到 Nyquist 频率的 1/4
当场景中的细节频率超过这个上限时,就会发生混叠(Aliasing)。混叠在彩色图像上的表现就是——伪色。你想想看,原本是黑白相间的条纹,经过 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:图像质量较差
3.3.2 SSIM(结构相似性)
SSIM 比 PSNR 更聪明。它从三个维度评价图像质量:
- 亮度:比较两幅图像的平均亮度
- 对比度:比较两幅图像的方差
- 结构:比较两幅图像的协方差
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 转换 | 伪色专项评估 |
3.4 本章知识结构图
下面这张图总结了 CFA、奈奎斯特、伪色和评价指标之间的关系:
这张图把本章的核心逻辑串起来了。从 CFA 的欠采样开始,到奈奎斯特定理揭示的混叠问题,再到伪色的产生,最后用三个指标来量化。你想想看,整个去马赛克算法的优化,本质上就是在跟这三个环节博弈。