3. 黑电平的物理意义
黑电平,说白了就是传感器在「完全没光」的情况下,输出的那个数字值。你可能会想:没光不就是0吗?嗯,现实没这么理想。传感器在暗场下依然会输出一个非零的信号,这个信号就是黑电平。
我刚开始接触RAW域处理时,总觉得黑电平就是个简单的减法。直到有一次,我在调试一款高灵敏度工业相机时,发现暗角区域的偏色怎么都校正不干净。折腾了两天,最后发现是黑电平的物理模型没搞对——不是所有像素的暗电流都一样。从那以后,我对黑电平的理解就再也不敢停留在「减一个固定值」的层面了。
3.1 暗电流:传感器天生的「漏电」
暗电流,是半导体器件在无光照条件下,由于热激发产生的电子-空穴对被势阱收集而形成的电流。说白了,就是传感器在「漏电」。温度越高,漏得越厉害。
暗电流有几个关键特性:
- 温度敏感性:温度每升高6-8°C,暗电流大约翻一倍。我在项目中遇到过,夏天户外35°C时,暗电流比实验室25°C时大了将近3倍。
- 曝光时间线性:暗电流随曝光时间线性增长。长曝光摄影中,暗电流噪声是主要限制因素。
- 像素不均匀性:不同像素的暗电流大小不同,形成固定模式噪声(FPN)。
核心公式:暗电流信号 = 暗电流密度 × 曝光时间 × 像素面积
单位通常用 e⁻/s/pixel 表示,即每个像素每秒产生的电子数。
你想想看,一个典型的CMOS传感器,暗电流密度大约在 10-100 e⁻/s/pixel 之间。对于1秒曝光,暗电流信号就是10-100个电子。而读出噪声通常在2-10 e⁻ RMS。所以,短曝光时读出噪声占主导,长曝光时暗电流噪声占主导。
3.2 读出噪声:读出电路的「底噪」
读出噪声,是传感器将电荷转换为电压、再经过模拟前端(AFE)和ADC量化过程中引入的噪声。它和曝光时间无关,只和读出电路的设计质量有关。
读出噪声的主要来源:
- 复位噪声(KTC噪声):复位晶体管沟道热噪声对浮置扩散电容的采样。
- 源跟随器噪声:像素内源跟随器管的1/f噪声和热噪声。
- 列放大器噪声:列并行ADC或CDS电路的噪声。
- 量化噪声:ADC量化过程中产生的理论最小噪声。
| 噪声类型 | 频率特性 | 与曝光时间关系 | 典型值(e⁻ RMS) |
|---|---|---|---|
| 复位噪声 | 白噪声 | 无关 | 10-50 |
| 源跟随器噪声 | 1/f + 白噪声 | 无关 | 2-10 |
| 列放大器噪声 | 白噪声 | 无关 | 1-5 |
| 量化噪声 | 白噪声 | 无关 | 0.3-1 |
我的经验:现代背照式(BSI)CMOS传感器的读出噪声已经能做到1-2 e⁻ RMS。但注意,这是「相关双采样(CDS)」后的值。如果不做CDS,复位噪声会大一个数量级。
3.3 黑电平的构成:暗信号 + 读出偏置
黑电平 = 暗电流信号 + 读出电路偏置
读出电路偏置是故意加上的,目的是避免信号在ADC量化时出现负值。因为读出噪声有正有负,如果不加偏置,负噪声会被ADC截断,导致信息丢失。
我习惯把黑电平拆成两部分来看:
- 固定部分:读出电路偏置,基本不随温度和时间变化。这部分可以通过OB(光学黑区)像素实时校正。
- 变化部分:暗电流信号,随温度、曝光时间变化。这部分需要根据温度传感器或OB像素的统计值动态补偿。
注意:不同颜色通道的暗电流可能不同。因为不同颜色的滤光片对热辐射的吸收率不同,导致像素温度有微小差异。我在调试一款RGB-IR四通道传感器时,IR通道的暗电流比RGB通道大了将近20%。
3.4 黑电平校正的物理模型
理解了物理意义,校正方法就清晰了。黑电平校正本质上是在做两件事:
- 去除固定偏置:减去OB像素的均值或中值。
- 补偿暗电流不均匀性:用暗场帧(完全遮光下拍摄的帧)减去OB均值,得到暗电流FPN校正矩阵。
下面是一个简化的校正流程:
// 伪代码:黑电平校正
// ob_mean: 光学黑区像素均值
// dark_fpn: 预采集的暗场FPN校正矩阵
// raw: 原始RAW图像
// 步骤1:减去OB均值(去除读出偏置)
raw = raw - ob_mean;
// 步骤2:减去暗电流FPN(去除暗电流不均匀性)
raw = raw - dark_fpn;
// 步骤3:钳位到非负
raw = max(raw, 0);
关键点:OB均值是逐帧更新的,而暗场FPN矩阵是离线标定的。因为OB像素和有效像素的暗电流特性不完全一致,所以需要暗场帧来补偿残余的暗电流不均匀性。
3.5 知识结构图:黑电平的物理意义与校正
下面这张图梳理了黑电平相关的核心概念和它们之间的关系:
3.6 实战中的注意事项
我在多个项目中总结了几条关于黑电平的「坑」,分享给你:
- OB像素数量要够:至少需要几十行/列的OB像素,才能得到稳定的统计值。太少的话,噪声会引入额外的校正误差。
- 暗场帧要定期更新:传感器老化、温度循环都会改变暗电流特性。我建议每3-6个月重新标定一次暗场帧。
- 注意黑电平的「温度滞后」:传感器温度变化时,暗电流不会立刻稳定。快速升温时,暗电流会滞后于温度变化。这一点在热像仪应用中特别重要。
- 不同增益下的黑电平不同:模拟增益改变时,读出偏置也会被放大。所以黑电平校正必须在增益调整之后、数字处理之前进行。
我的习惯:在ISP pipeline中,我会把黑电平校正放在最前面,紧跟着就是增益补偿。顺序搞反了,校正效果会大打折扣。曾经有个同事把黑电平校正放在了白平衡之后,结果暗部偏色怎么都调不回来——就是因为黑电平被白平衡增益放大了。
嗯,黑电平的物理意义就讲到这里。理解了这个基础,后面讲具体校正算法时,你就能明白每一步为什么要这么做。记住:黑电平不是简单的「减一个数」,它背后是传感器物理特性的体现。