传感器特性:光电转换原理、量子效率、满阱容量、暗电流、读出噪声与动态范围
各位同学,咱们今天聊聊传感器。说白了,传感器就是相机的“视网膜”。没有它,后面所有的ISP算法都是空中楼阁。我做了这么多年ISP,最深的体会就是:不懂传感器特性,你调出来的图像参数就是瞎蒙。
这一章,咱们把传感器的几个核心参数掰开揉碎讲清楚。你把这些搞明白了,后面理解噪声模型、HDR合成、黑电平校正,都会轻松很多。
2.1 光电转换:光子是怎么变成电子的?
传感器的核心原理其实很简单——光电效应。光子打到硅基材料上,如果能量足够大,就会把电子从价带激发到导带,产生一个电子-空穴对。
嗯,这里要注意:不是所有光子都能激发出电子。光子的能量取决于波长,波长越短能量越高。所以蓝光(450nm左右)比红光(650nm左右)更容易激发出电子。这也是为什么很多传感器的蓝通道灵敏度天生就比红通道高一点。
我在项目中遇到过一个问题:某款传感器在低照度下偏色严重。查了半天,发现是红外截止滤光片(IRCF)的截止波长偏了,导致近红外光漏进来,红通道多了一堆不该有的电子。你看,光电转换的源头出了问题,后面怎么调白平衡都救不回来。
核心公式:
光生电子数 = 入射光子数 × 量子效率
就这么简单,但背后全是物理。
2.2 量子效率(QE):传感器对光的“胃口”
量子效率,英文叫Quantum Efficiency,简称QE。它衡量的是:每入射一个光子,能产生多少个可被收集的电子。
QE = 收集到的电子数 / 入射光子数
举个例子:如果QE是50%,意味着每打进来100个光子,只有50个能变成电子被收集。剩下的50个去哪了?被反射了、被吸收了、或者产生的电子在半路又复合掉了。
QE不是一条直线。它随波长变化,画出来就是一条“光谱响应曲线”。我习惯把QE曲线分成三段看:
- 蓝光区(400-500nm):受表面复合影响大,QE通常偏低
- 绿光区(500-600nm):QE最高,因为人眼也最敏感
- 红光区(600-700nm):硅的吸收深度大,QE开始下降
你想想看,如果传感器的QE曲线不平坦,拍出来的照片就会偏色。这就是为什么高端传感器要花大功夫做“光谱平坦化”。
避坑指南:
我曾经被一份传感器datasheet坑过——它只标了峰值QE,没给全光谱曲线。结果实际用下来,蓝通道灵敏度比预期低了30%。从那以后,我拿到新传感器第一件事就是找QE曲线,没有全光谱数据的传感器我直接pass。
2.3 满阱容量(FWC):像素能“吃”多少电子?
满阱容量,Full Well Capacity,简称FWC。它指的是一个像素能容纳的最大电子数。
为什么这个参数重要?因为FWC直接决定了传感器的动态范围上限。
我举个例子:
- 传感器A:FWC = 10,000 e⁻
- 传感器B:FWC = 100,000 e⁻
在同样噪声水平下,传感器B的动态范围比A高20dB。说白了,FWC越大,高光部分越不容易“爆掉”。
但FWC不是越大越好。大FWC通常意味着大像素尺寸,或者更深的势阱。这会带来两个问题:
- 像素尺寸变大:分辨率上不去
- 电荷转移效率下降:拖尾、残影等问题
所以你看,传感器设计就是各种trade-off。没有完美的传感器,只有最适合你应用的传感器。
| 像素尺寸 | 典型FWC | 典型应用 |
|---|---|---|
| 1.0μm | 3,000 - 5,000 e⁻ | 手机主摄 |
| 1.4μm | 8,000 - 12,000 e⁻ | 高端手机 |
| 2.0μm | 20,000 - 30,000 e⁻ | 运动相机 |
| 4.5μm | 80,000 - 120,000 e⁻ | 安防/工业 |
2.4 暗电流:没有光,哪来的电子?
暗电流,Dark Current。字面意思就是:在没有光照的情况下,传感器自己产生的电子。
为什么会这样?因为热。温度越高,硅晶格振动越剧烈,电子被“震”出来的概率就越大。这些电子和光生电子混在一起,就成了噪声。
暗电流有几个特点:
- 随温度指数增长:温度每升高6-8°C,暗电流翻一倍
- 随曝光时间线性累积:曝光越长,暗电流噪声越大
- 像素间不均匀:有些像素天生暗电流大,形成“热像素”
注意:
暗电流是温度敏感型噪声。如果你在做长曝光(比如天文摄影、荧光成像),必须考虑传感器制冷。我曾经在35°C环境下做30秒曝光,暗电流直接淹没了信号,图像全是白点。后来加了TEC制冷到-10°C,暗电流降了20倍。
2.5 读出噪声:把电子“读”出来有多难?
读出噪声,Readout Noise。它发生在电荷转换成电压、再被ADC量化的过程中。
读出噪声的来源主要有三个:
- 复位噪声(KTC噪声):复位晶体管的热噪声
- 源跟随器噪声:像素内放大器的1/f噪声和热噪声
- ADC量化噪声:模数转换的量化误差
读出噪声的单位通常是e⁻(电子数)。一个优秀的CMOS传感器,读出噪声可以做到1-2 e⁻。老一点的CCD传感器,读出噪声可能在10-20 e⁻。
我个人习惯把读出噪声看作传感器的“底噪”。它决定了传感器在暗光下的表现。读出噪声越低,暗光信噪比越高。
2.6 动态范围计算:从最暗到最亮
动态范围,Dynamic Range,简称DR。它衡量的是传感器能同时记录的最亮和最暗信号的比值。
计算公式很简单:
DR (dB) = 20 × log₁₀ (满阱容量 / 总噪声)
其中总噪声 = √(读出噪声² + 暗电流噪声² + 散粒噪声²)
但在实际工程中,我们通常简化成:
DR (dB) ≈ 20 × log₁₀ (满阱容量 / 读出噪声)
为什么可以简化?因为在短曝光、低增益下,读出噪声是主要噪声源。但在长曝光或高增益下,暗电流和散粒噪声就不能忽略了。
我举个例子:
- FWC = 30,000 e⁻
- 读出噪声 = 3 e⁻
- DR = 20 × log₁₀(30,000 / 3) = 20 × log₁₀(10,000) = 80 dB
80dB的动态范围,换算成档位(stops)就是80/6 ≈ 13.3档。这个水平在今天的手机传感器里算中等偏上。
工程经验:
动态范围不是越高越好。高动态范围往往意味着低灵敏度(因为FWC大,但转换增益低)。你需要根据应用场景做取舍。做安防的,动态范围要宽,能看清阴影里的细节;做手机的,灵敏度要高,夜景要亮。
2.7 知识结构图:传感器特性全景
下面这张图把传感器特性的核心参数和它们之间的关系画清楚了。你仔细看,每个参数都不是孤立的。
2.8 读出噪声与动态范围的实战关系
最后,咱们把读出噪声和动态范围串起来,看看实际工程中怎么用。
假设你手头有两款传感器:
| 参数 | 传感器X | 传感器Y |
|---|---|---|
| FWC | 30,000 e⁻ | 60,000 e⁻ |
| 读出噪声 | 2 e⁻ | 6 e⁻ |
| 动态范围 | 83.5 dB | 80.0 dB |
| 暗光性能 | 优秀 | 一般 |
有意思吧?传感器Y的FWC是X的两倍,但动态范围反而更低。为什么?因为读出噪声拖了后腿。
所以我的建议是:别只看FWC,也别只看读出噪声,要看它们的比值。这个比值就是动态范围的核心。
个人经验:
我在选型时,会先定目标动态范围(比如80dB),然后反推需要的FWC和读出噪声组合。如果读出噪声能做到2e⁻以下,FWC有20,000e⁻就够用了。但如果读出噪声是5e⁻,FWC至少要到50,000e⁻才能达到同样的动态范围。这个trade-off,你心里要有数。