图像传感器基础:CMOS vs CCD、Bayer阵列原理、Sensor特性参数
做ISP调优这些年,我越来越觉得一个道理:不懂传感器,就别谈图像质量。你调了半天参数,可能问题根本不在ISP,而在Sensor本身。这一章,咱们就把传感器的底裤扒干净。
CMOS vs CCD:一场没有悬念的战争
先说结论:现在消费级、工业级、车载领域,CMOS基本一统天下。CCD只在一些特殊领域(比如天文、某些医疗设备)还能见到。为什么会这样?
我2010年刚入行时,CCD在高端相机里还是主流。那时候CMOS的噪声大得吓人,暗光下全是雪花点。但CMOS有个致命优势——功耗低、集成度高。手机要轻薄、要省电,CCD那套多电压供电、复杂时序的玩法根本塞不进去。
| 对比项 | CMOS | CCD |
|---|---|---|
| 读出方式 | 每个像素独立放大、读出(X-Y寻址) | 整行电荷转移,串行读出 |
| 功耗 | 低(单电压供电,静态功耗几乎为零) | 高(需要多组时钟驱动,功耗大) |
| 噪声 | 较高(像素级放大器引入固定模式噪声) | 较低(读出路径单一,一致性更好) |
| 速度 | 快(可随机访问,支持高帧率) | 慢(串行读出,帧率受限) |
| 集成度 | 高(ADC、时序、逻辑可集成在同一芯片) | 低(需要外部驱动芯片和ADC) |
| 成本 | 低(标准CMOS工艺) | 高(专用工艺,良率低) |
我的经验:如果你在选型时纠结CMOS还是CCD,直接选CMOS。除非你的项目对极低噪声和极高均匀性有变态要求,且不care功耗和成本。
我记得有一次做工业检测项目,客户非要CCD,说CMOS有卷帘快门效应拍运动物体不行。我给他看了当时一款全局快门CMOS的测试视频,他沉默了。嗯,从那以后,CCD在我项目里就再也没出现过。
Bayer阵列原理:为什么你的Sensor是彩色的?
单颗像素只能感知光的强度,分不清颜色。那彩色图像怎么来的?答案就是在像素表面镀滤光片。
Bayer阵列是最经典的滤光片排列方式。它长这样:
R G R G R G
G B G B G B
R G R G R G
G B G B G B
看到规律了吗?绿色像素数量是红蓝的两倍。为什么?因为人眼对绿色最敏感。说白了,这是仿生学设计——模拟人眼视锥细胞的分布。
每个像素只记录一种颜色,那最终全彩图像怎么来的?插值(Demosaic)。用周围像素的颜色信息,把缺失的通道猜出来。
避坑指南:我曾经在调试一款4K Sensor时,发现边缘有大量彩色锯齿。查了两天才发现是Demosaic算法对Bayer模式匹配错了——Sensor用的是RGGB,我代码里写的是BGGR。这种低级错误,嗯,犯过一次就再也不会忘了。
Bayer阵列的变种也不少:
- RGGB:最经典,索尼、三星主流
- BGGR:有些OmniVision Sensor用这个
- RGBW:加入白色像素,提升暗光灵敏度(但会损失色彩饱和度)
- RCCC:用于自动驾驶,红色+三个透明,追求高灵敏度
你想想看,如果选错了Bayer模式,整个ISP流水线都会崩。所以拿到新Sensor的第一件事——确认Bayer pattern,然后用raw图验证。
Sensor特性参数:读懂传感器的体检报告
这三个参数是Sensor的硬指标,直接决定了图像质量的天花板。ISP调得再好,也突破不了Sensor的物理极限。
动态范围(Dynamic Range)
说白了,就是Sensor能同时记录的最亮和最暗区域的比值。单位是dB。
公式: DR = 20 × log₁₀(满阱容量 / 读出噪声)
举个例子:满阱容量100000e⁻,读出噪声10e⁻,DR = 20×log₁₀(10000) = 80dB。
我做过一个HDR项目,Sensor动态范围只有60dB,拍逆光场景时天空一片死白,暗部全是黑。后来换了块74dB的Sensor,配合多帧HDR算法,效果才勉强能看。
注意:动态范围不是越大越好。大动态范围往往意味着满阱容量大,但像素尺寸也大,分辨率就上不去。这是物理上的取舍。
信噪比(SNR)
信号和噪声的比值。信噪比越高,图像越干净。
公式: SNR = 20 × log₁₀(信号 / 噪声)
噪声来源主要有三个:
- 散粒噪声:光子到达的随机性,服从泊松分布。信号越强,散粒噪声越大(但信噪比反而提高)
- 读出噪声:像素放大器和读出电路引入的噪声,与信号强度无关
- 暗电流噪声:热激发产生的电子,温度越高越严重
我习惯用这个经验值:SNR > 40dB 算优秀,30-40dB 算良好,< 30dB 噪点就比较明显了。
量子效率(QE)
入射光子转化为电子的比例。QE越高,灵敏度越高。
公式: QE = 产生的电子数 / 入射光子数 × 100%
现代背照式(BSI)CMOS的QE可以做到70%-80%,前照式(FSI)一般在40%-60%。
我记得有一次做微光摄像头,Sensor的QE只有45%,暗光下图像完全没法看。后来换了块QE 72%的BSI Sensor,同样的镜头和ISP参数,画面亮度直接翻倍。这就是物理层面的碾压。
| 参数 | 典型值(消费级) | 典型值(工业/车载) | 对图像的影响 |
|---|---|---|---|
| 动态范围 | 60-75 dB | 70-90 dB | 高光/暗部细节保留能力 |
| 信噪比 | 35-45 dB | 40-50 dB | 噪声水平、画面纯净度 |
| 量子效率 | 50-70% | 60-80% | 灵敏度、暗光表现 |
知识体系:传感器核心逻辑
下面这张图,是我自己梳理的传感器知识框架。每次带新人,我都会先让他们看这个。
核心总结:传感器是ISP的起点。CMOS vs CCD决定了系统架构,Bayer阵列决定了色彩还原的基础,三大参数决定了图像质量的上限。我建议你拿到一块新Sensor时,先花半天时间把datasheet里的这三个参数吃透,再动手调ISP。否则,你调出来的可能只是噪声的另一种表现形式。