3、彩色滤波阵列(CFA):Bayer模式详解、RGB-IR模式、其他CFA模式(X-Trans、Quad Bayer)、去马赛克算法基础
各位同学,咱们今天聊聊传感器最核心的一个部件——彩色滤波阵列。说白了,它就是贴在像素前面的一层彩色滤光片。没有它,你的相机拍出来的只能是黑白照片。
我刚开始接触图像传感器时,总觉得这玩意儿不就是个马赛克吗?后来踩了不少坑才明白,CFA的选择直接决定了图像质量、分辨率和色彩还原能力。今天咱们就把这块硬骨头啃下来。
3.1 为什么需要CFA?
先问个问题:单个像素能感知颜色吗?答案是——不能。硅基光电二极管只能感知光的强度,对波长不敏感。那怎么办?
工程师们想了个办法:在每个像素前面放一个彩色滤光片,只让特定波长的光通过。这样,每个像素就只能记录红、绿、蓝中的一种颜色。这就是CFA的基本思想。
你想想看,如果每个像素都记录全彩色,那需要三个像素叠在一起,成本高、体积大。CFA用最经济的方式实现了彩色成像。
核心要点:CFA的本质是牺牲空间分辨率换取色彩信息。每个像素只记录一种颜色,缺失的颜色通过算法插值得到。
3.2 Bayer模式详解
说到CFA,绕不开的就是Bayer模式。这是1976年柯达公司的Bryce Bayer发明的,至今仍是应用最广泛的CFA模式。
Bayer模式的排列规律很简单:
- 50% 绿色像素
- 25% 红色像素
- 25% 蓝色像素
为什么绿色占一半?因为人眼对绿色最敏感。我做过一个实验,把Bayer模式改成等比例RGB,结果图像看起来噪点特别明显,尤其是暗部区域。嗯,Bayer的设计确实有道理。
典型的2x2 Bayer单元如下:
R G
G B
每个2x2块包含一个红色、两个绿色、一个蓝色像素。整个传感器就是这种2x2块的重复排列。
个人经验:我在调试一款手机摄像头时,发现Bayer模式下的绿色通道信噪比明显高于红蓝通道。后来我们在ISP中针对红蓝通道做了额外的降噪处理,效果立竿见影。
3.3 RGB-IR模式
有些场景需要同时获取彩色图像和近红外信息,比如安防监控、人脸识别。这时候RGB-IR模式就派上用场了。
RGB-IR模式在Bayer的基础上,把部分绿色像素替换成红外(IR)像素。常见的排列有:
| 模式 | 排列 | 应用场景 |
|---|---|---|
| RGB-IR 1 | R G IR B | 安防监控 |
| RGB-IR 2 | R IR G B | 人脸识别 |
| RGB-IR 3 | IR R G B | 低光照增强 |
我曾经在一个项目中用过RGB-IR传感器,白天拍彩色,晚上切红外模式。但有个坑:红外通道会串扰到红色通道,导致色彩偏紫。后来我们在硬件上加了个红外截止滤光片切换器,才解决了这个问题。
避坑指南:RGB-IR模式下,彩色和红外通道的串扰是常见问题。建议在ISP中做通道分离和串扰补偿,否则色彩还原会出问题。
3.4 其他CFA模式
3.4.1 X-Trans模式
富士的X-Trans模式是Bayer的变种,它用6x6的重复单元代替了2x2。目的是减少摩尔纹和伪色。
X-Trans的排列更随机,没有明显的周期性。这样在拍摄高频纹理(比如织物、建筑)时,不容易产生摩尔纹。
我测试过X-Trans和Bayer的对比,在拍摄砖墙时,Bayer有明显的彩色摩尔纹,X-Trans就好很多。但代价是去马赛克算法更复杂,计算量更大。
3.4.2 Quad Bayer模式
Quad Bayer是近年来手机传感器的主流选择。它把4个同色像素组成一个2x2块,相当于把Bayer的每个颜色通道又细分了。
Quad Bayer的好处:
- 高像素模式下,每个2x2块可以合并成一个像素,提升信噪比
- 低光照下,4个同色像素合并,灵敏度提升4倍
- 支持HDR和双增益输出
我调试过一款48MP的Quad Bayer传感器,默认输出12MP(4合1),效果确实比同尺寸的Bayer传感器好。但要注意,4合1后的分辨率损失是不可避免的。
对比总结:
- Bayer:简单、成熟、计算量小
- X-Trans:抗摩尔纹好、算法复杂
- Quad Bayer:高动态、低光照好、分辨率有损失
3.5 去马赛克算法基础
有了CFA,每个像素只记录一种颜色。那缺失的颜色怎么办?这就需要去马赛克(Demosaicing)算法来插值。
最简单的去马赛克算法是双线性插值。比如要恢复绿色像素位置的红色值,就取周围四个红色像素的平均值。
但这种方法有个问题:边缘处会产生伪色和锯齿。我刚开始做ISP时就用这个算法,结果拍出来的照片边缘全是彩色条纹,被领导骂了一顿。
后来我改用方向性插值:先判断边缘方向,再沿着边缘方向插值。效果好了很多。
常见的去马赛克算法:
- 双线性插值:简单快速,但质量差
- 方向性插值:考虑边缘方向,质量中等
- 自适应插值:根据局部纹理选择插值策略
- 基于深度学习的去马赛克:效果最好,但需要硬件加速
我建议初学者先从方向性插值入手,理解原理后再尝试更复杂的算法。别一上来就搞深度学习,基础不牢容易翻车。
个人建议:去马赛克算法的选择要结合硬件算力。嵌入式平台上,方向性插值+后处理降噪是比较务实的方案。我曾在ARM Cortex-A7上跑过自适应插值,帧率只有15fps,后来换成方向性插值,帧率到了30fps,效果也能接受。
3.6 本章知识体系
下面这张图展示了本章的核心逻辑,从CFA的必要性到各种模式,再到去马赛克算法,一目了然。
好了,这一章的内容就到这里。CFA是图像传感器的核心,理解了它,你就掌握了彩色成像的钥匙。下一章咱们聊聊传感器噪声模型和校正方法,那又是另一片天地。
公众号:蓝海资料掘金营,微信deep3321