1. 图像传感器基础:从光子到电子的旅程
各位同学,咱们这门课的第一站,得从最源头说起——图像传感器。说白了,它就是相机的「视网膜」。你拍到的每一张照片,本质上都是一场从光子到电子的能量转换。我做了这么多年ISP,最深的体会就是:不懂传感器,就别谈调优。很多算法问题追根溯源,都出在传感器这一环。
1.1 光子到电子的魔法
想象一下,光线穿过镜头,打在传感器表面。每个像素点其实就是一个光电二极管。光子撞击硅原子,把能量传递给电子,电子获得能量后挣脱束缚,形成自由电子——这就是光电效应。
这个过程会产生多少电子?取决于两个因素:
- 光强:光子越多,激发的电子越多
- 量子效率(QE):传感器把光子转化为电子的能力,通常用百分比表示
核心公式:
电子数 = 光子数 × 量子效率
举个例子:如果传感器QE是70%,来了1000个光子,你只能得到700个电子。剩下的300个光子去哪了?被反射、吸收或转化成热量了。这就是传感器效率的物理极限。
我在项目中遇到过一款低照度传感器,QE只有45%,暗光下噪点多得离谱。后来换了背照式(BSI)传感器,QE提升到75%,同样的场景,信噪比直接提升了5dB。你看,硬件底子决定了算法天花板。
1.2 CMOS vs CCD:两种不同的「收电」思路
同样是光电转换,CMOS和CCD的读取方式完全不同。我刚开始入行时,CCD还是高端相机的标配,CMOS被嫌弃噪点大。现在呢?手机、相机、安防,几乎全是CMOS的天下。为什么会这样?
| 对比维度 | CCD | CMOS |
|---|---|---|
| 电荷读取方式 | 逐行转移,统一输出 | 每个像素独立转换 |
| 功耗 | 高(需要多路电压) | 低(单电压供电) |
| 读出速度 | 慢(串行输出) | 快(并行读取) |
| 噪声 | 低(统一读出路径) | 较高(每个像素有放大器) |
| 成本 | 高(特殊工艺) | 低(标准CMOS工艺) |
| 集成度 | 低(需要外部芯片) | 高(可集成ADC、ISP) |
我的经验:如果你做工业相机或天文摄影,CCD的低噪声优势依然不可替代。但消费电子领域,CMOS凭借高集成度和低功耗,已经是主流。调ISP时,CMOS的像素级噪声模型更复杂,需要花更多心思在降噪算法上。
CCD的电荷转移方式有个致命弱点——拖影(Smear)。强光照射时,电荷在转移过程中会泄露到相邻像素,产生垂直亮线。我曾经调试一台CCD工业相机,拍LED灯珠时,画面里全是竖条纹,折腾了两天才找到原因。
CMOS就没有这个问题。每个像素独立完成光电转换和电压输出,不存在电荷转移过程。但CMOS也有自己的麻烦——卷帘快门(Rolling Shutter)。逐行曝光导致快速运动物体出现「果冻效应」。嗯,这个后面讲快门时会细说。
1.3 拜耳阵列:用一片滤镜看彩色世界
传感器本身是色盲的——它只能感知光的强度,分不清颜色。那彩色照片怎么来的?靠的是拜耳阵列(Bayer Pattern)。
1976年,柯达的Bryce Bayer想了个办法:在每个像素上覆盖一层彩色滤光片,只允许特定波长的光通过。最常见的排列是RGGB——一个红色、两个绿色、一个蓝色。为什么绿色有两个?因为人眼对绿色最敏感,多一个绿色像素能提升视觉分辨率。
拜耳阵列的排列逻辑:
R G R G ...
G B G B ...
R G R G ...
G B G B ...
每个2×2单元包含:1个R + 2个G + 1个B。绿色像素占50%,红色和蓝色各占25%。
你想想看,每个像素只记录一种颜色,那最终输出全彩图像怎么办?这就需要去马赛克(Demosaic)算法,用周围像素的信息插值出缺失的颜色。这部分是ISP的核心模块之一,后面会有专门章节讲。
我曾经调过一款传感器,它的拜耳排列不是标准的RGGB,而是RCCB(红+青+青+蓝)。青色滤光片透过的光谱更宽,进光量更大,低照度性能确实好。但代价是颜色还原极其困难,去马赛克算法得重新设计。嗯,这里要注意:非标准拜耳阵列虽然能提升灵敏度,但会大幅增加ISP调优的复杂度。
1.4 从模拟到数字:ADC的关键角色
光电转换产生的电子是模拟信号,必须转换成数字信号才能交给ISP处理。这个转换由模数转换器(ADC)完成。
ADC的位数决定了传感器的动态范围:
- 10-bit ADC:1024个灰度等级,动态范围约60dB
- 12-bit ADC:4096个灰度等级,动态范围约72dB
- 14-bit ADC:16384个灰度等级,动态范围约84dB
避坑指南:我曾经遇到一个项目,传感器标称14-bit ADC,但实际有效位数(ENOB)只有11-bit。原因是电源噪声太大,低4位全是无效抖动。调ISP时如果发现暗部细节丢失严重,先别急着改算法,检查一下ADC的实际有效位数。硬件问题用软件补,事倍功半。
CMOS传感器通常把ADC集成在芯片上,有列级ADC和像素级ADC两种架构。列级ADC是每列一个ADC,并行转换,速度快;像素级ADC是每个像素一个ADC,理论上噪声更低,但面积和成本太高,目前还不普及。
1.5 知识结构总览
下面这张图总结了本章的核心逻辑:从光子进入传感器,到数字信号输出给ISP的完整链路。
1.6 本章小结
这一章我们走完了从光子到数字信号的完整旅程。你记住三个核心点就行:
- 光电转换是基础——量子效率决定了传感器的灵敏度天花板
- CMOS是主流——虽然噪声比CCD大,但集成度和速度优势明显
- 拜耳阵列是彩色的起点——理解RGGB排列,是后面学去马赛克的前提
给新人的建议:拿到一款新传感器,第一件事就是看它的datasheet。重点关注:QE曲线、ADC位数、拜耳排列方式、读出噪声。这些参数直接决定了ISP的调优策略。我每次做新项目,都会花半天时间把datasheet吃透,后面调算法能少走很多弯路。