3、噪声模型与噪声来源:光子散粒噪声、读出噪声、暗电流噪声、热噪声等,以及噪声在暗光下的表现与统计特性

夜景拍摄是智能手机影像系统面临的最严峻挑战之一。当环境照度降至10 lux以下时,CMOS图像传感器(CIS)输出的信号电荷量可能仅有几十到几百个电子,而各类噪声源的电子数却可能与之相当甚至超过信号本身。理解噪声的物理来源、统计分布以及在暗光条件下的行为特性,是设计有效降噪算法的前提。本章将从半导体物理与信号统计两个维度,系统拆解光子散粒噪声、读出噪声、暗电流噪声与热噪声的产生机制、数学模型及在ISP流水线中的表现形态,为后续的降噪算法设计奠定理论基础。

暗光CMOS图像传感器噪声源与信号链路模型 入射光子 暗光 1~50 lux 光电二极管 量子效率 QE 信号电子数 N_signal 散粒噪声 σ_shot=√N 泊松分布 读出电路 SF源跟随器 CDS相关双采样 读出噪声 σ_read 高斯分布 ADC量化 10/12/14-bit 量化噪声 LSB/√12 数字码值 DN / LSB 暗电流与热噪声(温度相关) 暗电流 I_dark e-/pixel/s 温度每+7°C 翻倍 热噪声 kTC σ_kTC = √(kBT/C) 复位噪声 1/f噪声 低频闪烁 SF晶体管 暗光下噪声主导地位变化 • 高照度:散粒噪声主导(√N 随信号增大) • 暗光:读出噪声 + 暗电流噪声主导(固定底噪) • 极暗光:固定模式噪声(FPN) 与列噪声成为主要视觉噪声 暗电流注入信号链

上图展示了暗光条件下CMOS图像传感器从光子入射到数字码值输出的完整信号链路,以及各类噪声源在链路中的注入位置。可以看到,散粒噪声在光电转换阶段产生,读出噪声在模拟读出链路中引入,而暗电流与热噪声则贯穿整个曝光与读出过程。理解这些噪声的物理位置与统计特性,是后续设计降噪算法的第一步。

3.1 核心原理:四大噪声源的物理机制与数学模型

3.1.1 光子散粒噪声(Photon Shot Noise)

光子到达传感器像素表面是一个离散的随机过程。即使入射光强完全恒定,单位时间内到达的光子数也服从泊松分布(Poisson Distribution)。光电二极管将光子转换为电子-空穴对后,收集到的信号电子数同样服从泊松分布。泊松分布的一个重要性质是:方差等于均值。因此,散粒噪声的标准差为:

σ_shot = √(N_signal)

其中 N_signal 为信号电子数。例如,当像素收集到 100 个电子时,散粒噪声标准差为 10 个电子,信噪比 SNR = 100/10 = 20 dB;当信号增强到 10000 个电子时,噪声为 100 个电子,SNR 提升至 40 dB。这说明散粒噪声是信号依赖噪声,信号越强,噪声越大,但信噪比反而越高。

在暗光条件下,信号电子数可能仅有 30~100 个,此时散粒噪声标准差为 5.5~10 个电子,与读出噪声处于同一量级。散粒噪声在空间域上表现为随机的、逐像素独立的亮度波动,在时间域上表现为帧间随机闪烁。由于泊松分布在电子数较大时(>30)近似于高斯分布,因此算法上常将其近似为信号相关的高斯噪声处理。

3.1.2 读出噪声(Read Noise)

读出噪声是像素信号在转换为电压、经过源跟随器(Source Follower, SF)缓冲、列放大器放大以及 ADC 量化过程中引入的噪声总和。其主要成分包括:

  • 复位噪声(kTC 噪声):像素复位时,复位晶体管沟道热噪声通过复位开关对光电二极管电容充电,产生不确定的复位电压。其方差为 kBT/C,其中 k_B 为玻尔兹曼常数,T 为温度,C 为光电二极管电容。典型值在 10~50 e- RMS。
  • 源跟随器热噪声与 1/f 噪声:SF 晶体管在放大信号时引入沟道热噪声(白噪声)和表面态俘获导致的 1/f 闪烁噪声。1/f 噪声在低频段显著,表现为像素输出的随机游走。
  • 列放大器噪声:列级可编程增益放大器(PGA)的输入参考噪声,通常为 5~20 e-。
  • ADC 量化噪声:量化误差的标准差为 LSB/√12,其中 LSB 为最低有效位对应的电子数。

现代 CIS 通过相关双采样(CDS)技术可以有效消除复位噪声和部分 1/f 噪声。CDS 在复位后和信号读出后各采样一次,将两次采样值相减,从而去除复位电平中的固定噪声成分。但 CDS 无法消除两次采样之间的随机噪声,因此读出噪声的最终极限由 SF 晶体管的热噪声决定。

3.1.3 暗电流噪声(Dark Current Noise)

暗电流是像素在无光照条件下,由于热激发产生的电子-空穴对在耗尽区被收集而形成的电流。其来源包括:

  • 耗尽区内的 Shockley-Read-Hall(SRH)复合中心热激发
  • 硅-二氧化硅界面态的热激发
  • 像素边缘的缺陷和金属污染

暗电流的大小与温度密切相关,经验公式为:

I_dark(T) = I_dark(T_ref) × 2^((T - T_ref) / T_double)

其中 T_double 通常为 7~8°C,即温度每升高 7~8°C,暗电流翻倍。在 25°C 时,典型暗电流为 10~50 e-/pixel/s;而在 60°C 时,可能达到 200~1000 e-/pixel/s。暗电流本身是固定模式噪声(FPN)的来源之一,因为不同像素的暗电流大小存在差异。同时,暗电流的随机涨落(暗电流散粒噪声)服从泊松分布,其标准差为 √(I_dark × t_exposure)。

在长曝光夜景拍摄中(如 1/4s 至 2s),暗电流积累的电子数可能达到数百甚至数千,严重降低动态范围并产生明显的亮斑和彩色条纹。ISP 中的暗电流校正(Dark Current Correction)通常通过拍摄全黑帧(盖上镜头盖)获取暗电流图,然后在后续帧中减去。

3.1.4 热噪声(Thermal Noise)与 1/f 噪声

热噪声(约翰逊噪声)源于导体中电子的随机热运动,其功率谱密度为 4k_BTR,与频率无关(白噪声)。在 CIS 中,热噪声主要影响 SF 晶体管和列放大器。1/f 噪声(闪烁噪声)的功率谱密度与频率成反比,在低频段(<1 kHz)显著,主要来源于 MOSFET 栅氧化层与硅界面的载流子俘获-释放过程。1/f 噪声在长时间曝光或慢速读出时影响明显,表现为像素输出的随机漂移。

噪声类型 统计分布 信号相关性 频率特性 典型量级(暗光) 主要抑制手段
光子散粒噪声 泊松(近似高斯) √N 信号相关 白噪声 5~30 e- 多帧平均、BM3D
读出噪声 高斯 信号无关 白噪声 + 1/f 2~15 e- CDS、低噪声SF设计
暗电流噪声 泊松 + 固定模式 曝光时间相关 低频/直流 10~500 e-/s 暗帧减除、温度控制
热噪声(kTC) 高斯 信号无关 白噪声 10~50 e- CDS、增大电容
1/f 噪声 高斯 信号无关 1/f 低频 3~10 e- CDS、增大晶体管面积

3.2 判断方法:噪声的测量、分离与统计特性评估

在实际 ISP 开发中,我们需要通过实验数据来量化各类噪声的贡献,并验证降噪算法的效果。以下是标准的噪声测量与分析方法:

3.2.1 光子转移曲线(Photon Transfer Curve, PTC)

PTC 是表征传感器噪声特性的核心工具。通过拍摄一系列均匀光照下的平坦场图像,并逐步增加曝光时间或光源强度,记录每个条件下的信号均值(μ)和方差(σ²),绘制 log(σ²) vs log(μ) 曲线。PTC 曲线通常呈现三段特征:

  1. 读出噪声主导区(低信号):方差基本恒定,对应读出噪声的 σ_read²。
  2. 散粒噪声主导区(中等信号):斜率为 1,σ² = μ × K,其中 K 为转换增益(e-/DN)。
  3. 固定模式噪声主导区(高信号):斜率大于 1,表明像素间增益差异(PRNU)开始主导。

通过 PTC 曲线,可以提取出转换增益 K、读出噪声、满阱容量、暗电流等关键参数。例如,若在暗场下测得 σ² = 25 DN²,在信号为 100 DN 时测得 σ² = 125 DN²,则散粒噪声贡献为 100 DN²,转换增益 K = 100/100 = 1 e-/DN,读出噪声为 √25 = 5 e-。

3.2.2 暗场帧分析

盖上镜头盖拍摄 10~20 帧暗场图像,计算每帧的均值与方差,以及多帧间的平均图像。暗场帧的均值反映了暗电流水平,帧间方差反映了暗电流散粒噪声与读出噪声的叠加,而多帧平均后的空间方差则反映了暗电流固定模式噪声(DSNU)。通过对比单帧方差与多帧平均方差,可以分离随机噪声与固定模式噪声。

实战经验:在暗光降噪算法调优时,建议先采集 30 帧暗场和 30 帧不同照度的平坦场(如 1 lux、5 lux、20 lux、100 lux),分别计算各条件下的噪声功率谱密度(NPS)。NPS 可以揭示噪声在空间频率上的分布——如果噪声主要集中在低频,说明暗电流 FPN 或 1/f 噪声占主导;如果噪声平坦分布,则主要是白噪声(散粒+读出)。这决定了应该优先采用空间域滤波还是时域滤波。

3.3 案例拆解:暗光夜景拍摄中的噪声主导权转移

我们以一个典型的夜景拍摄场景为例,分析噪声主导权的变化过程。假设使用一款 1/1.5 英寸、5000 万像素的 CIS,像素尺寸 1.0 μm,转换增益 K = 0.5 e-/DN,满阱容量 8000 e-,读出噪声 3 e-,暗电流 20 e-/s(25°C)。

场景参数:夜景街拍,环境照度 5 lux,曝光时间 1/10s,ISO 自动(模拟增益 12 dB,即 4 倍)。

信号与噪声计算:

入射光子数(5 lux 下,F/1.8 镜头,反射率 30%):
N_photon ≈ 5 lux × 0.3 × 0.5 × 0.1s / (1.24e-6 J) ≈ 1200 光子/像素
量子效率 QE = 0.6 → 信号电子数 N_signal = 720 e-

散粒噪声:σ_shot = √720 ≈ 26.8 e-
暗电流积累:20 e-/s × 0.1s = 2 e- → 暗电流散粒噪声 σ_dark = √2 ≈ 1.4 e-
读出噪声:σ_read = 3 e-(CDS 后)
总噪声(均方根叠加):σ_total = √(26.8² + 1.4² + 3²) ≈ 27.0 e-
SNR = 20 × log10(720 / 27.0) ≈ 28.5 dB

此时散粒噪声占总噪声的 98.5%,是主导。但如果我们把曝光时间延长到 1s(使用三脚架),信号电子数变为 7200 e-,散粒噪声为 84.9 e-,暗电流积累 20 e-,暗电流散粒噪声为 4.5 e-,读出噪声仍为 3 e-。此时散粒噪声占比 99.8%,暗电流噪声占比 0.2%。然而,如果环境温度升高到 45°C,暗电流变为 20 × 2^((45-25)/7) ≈ 80 e-/s,1s 曝光积累 80 e-,暗电流散粒噪声为 8.9 e-,占比提升至 1.1%。

关键结论:在短曝光暗光场景中,散粒噪声是主导;在长曝光或高温场景中,暗电流噪声的贡献不可忽视。而读出噪声虽然在总噪声中占比小,但在极暗区域(信号 < 30 e-)会成为主要噪声源,导致暗部出现明显的颗粒感。

降噪策略启示:

  • 针对散粒噪声主导的场景,应优先采用多帧时域降噪(MFNR),因为散粒噪声在帧间独立,多帧平均可将噪声降低 √N 倍。
  • 针对读出噪声主导的极暗区域,需要结合空间域滤波(如 NLM、BM3D)来平滑颗粒,同时保留边缘细节。
  • 针对暗电流噪声,必须在 ISP 前端进行暗帧减除,并配合温度传感器进行动态暗电流估计。

3.4 常见误区与总结复盘

误区一:认为所有噪声都是高斯白噪声。实际上,暗电流 FPN 是空间相关的固定模式噪声,1/f 噪声是时间相关的低频噪声。如果算法将所有噪声统一建模为高斯白噪声,会导致暗部出现条纹状伪影或时间上的闪烁。
误区二:忽略噪声与信号的相关性。散粒噪声的方差随信号线性增长,这意味着在亮部区域噪声更大。如果使用固定强度的空间滤波器,要么在亮部降噪不足,要么在暗部过度平滑丢失细节。正确的做法是采用信号相关的噪声模型,例如在 BM3D 中根据局部亮度调整滤波强度。
误区三:过度依赖多帧降噪而忽视单帧质量。在手持夜景模式下,多帧合成虽然能有效降低随机噪声,但帧间配准误差会导致重影和细节模糊。对于静止场景,3~6 帧合成即可获得良好效果;对于含运动物体的场景,需要结合运动检测与局部帧选择。
总结复盘:本章的核心要点可以归纳为:① 散粒噪声是信号依赖的泊松噪声,在暗光下是主要噪声源;② 读出噪声是信号无关的高斯噪声,在极暗区域主导;③ 暗电流噪声随温度和曝光时间增长,具有固定模式特性;④ 热噪声和 1/f 噪声影响模拟读出链路,CDS 可有效抑制。在 ISP 降噪算法设计中,必须根据场景亮度、曝光时间、温度等参数动态估计各类噪声的贡献比例,并选择匹配的降噪策略。下一章将介绍噪声估计的具体算法实现。