传感器特性:光电转换原理、量子效率、满阱容量、暗电流、读出噪声与动态范围

各位同学,咱们今天聊聊传感器。说白了,传感器就是相机的“视网膜”。没有它,后面所有的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通常意味着大像素尺寸,或者更深的势阱。这会带来两个问题:

  1. 像素尺寸变大:分辨率上不去
  2. 电荷转移效率下降:拖尾、残影等问题

所以你看,传感器设计就是各种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量化的过程中。

读出噪声的来源主要有三个:

  1. 复位噪声(KTC噪声):复位晶体管的热噪声
  2. 源跟随器噪声:像素内放大器的1/f噪声和热噪声
  3. 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 知识结构图:传感器特性全景

下面这张图把传感器特性的核心参数和它们之间的关系画清楚了。你仔细看,每个参数都不是孤立的。

传感器特性知识结构图 传感器核心参数 光电转换原理 量子效率 (QE) 满阱容量 (FWC) 暗电流 光子→电子转换 光谱响应曲线 最大电子容量 热激发电子 波长依赖 峰值QE vs 全光谱 决定高光上限 温度敏感 动态范围 (DR) = 20 × log₁₀(FWC / 总噪声) 总噪声 = √(读出噪声² + 暗电流噪声² + 散粒噪声²)

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,你心里要有数。