噪声来源分析:传感器噪声、光子噪声、量化噪声、HDR合成引入的噪声

做HDR图像处理,说白了就是在跟噪声打仗。我做了这么多年图像处理,最深的体会就是——不懂噪声,就别谈HDR。你想想看,HDR要把多张不同曝光的照片合成一张,这个过程本身就会放大噪声。如果连噪声从哪来的都搞不清楚,那降噪就无从下手。

这一节,咱们就把HDR图像里的噪声来源掰开揉碎了讲清楚。我把它分成四大类:传感器噪声、光子噪声、量化噪声,以及HDR合成引入的噪声。每一类我都用实际项目里的例子来说明。

4.1 传感器噪声:硬件天生的“底噪”

传感器噪声,说白了就是CMOS或者CCD传感器本身带来的。它跟光信号没关系,就算你把镜头盖盖上,拍一张全黑的照片,里面照样有噪声。这就是传感器的“底噪”。

我个人习惯把传感器噪声分成两类:

  • 固定模式噪声(FPN):每个像素点有固定的偏移和增益偏差,拍出来的暗场图像不是均匀的黑色,而是有固定的条纹或斑点。
  • 暗电流噪声:温度越高,电子越活跃,即使没有光照,传感器也会产生电子。曝光时间越长,暗电流积累越多。
实战经验:我在做手机HDR算法时遇到过一个问题——长曝光帧的暗部总是偏紫。排查了半天,发现是传感器温度升高导致的暗电流噪声在RGB通道上分布不均。后来我们加了一个温度补偿查表,才把这个坑填上。

传感器噪声的特点是与信号无关,在暗部区域尤其明显。HDR合成时,暗帧会被大幅度提亮,传感器噪声也会被同步放大,这就是为什么HDR照片的暗部经常看起来“脏脏的”。

4.2 光子噪声:物理定律躲不开

光子噪声,也叫散粒噪声。它来自光的量子本质——光子到达传感器的过程是随机的,服从泊松分布。

为什么会这样?你想想看,光是由一个个光子组成的。在单位时间内,到达某个像素的光子数量不是固定的,而是在一个平均值附近波动。这个波动就是光子噪声。

光子噪声有个重要特性:它的标准差等于信号强度的平方根。

信号强度(光子数) 光子噪声标准差 信噪比(SNR)
100 10 10:1
1,000 31.6 31.6:1
10,000 100 100:1
100,000 316.2 316.2:1

从表格里能看出来:信号越强,信噪比越高。这就是为什么过暗的帧噪声特别大——光子数太少,信噪比太低。

我记得有一次做夜景HDR,短曝光帧的亮部很干净,但长曝光帧的暗部全是颗粒。当时团队里有人怀疑是传感器坏了。我让他算了一下光子噪声的理论值,发现跟实测完全吻合——不是硬件问题,是物理极限。

4.3 量化噪声:模数转换的“舍入误差”

量化噪声,是ADC(模数转换器)把模拟信号转成数字信号时产生的。说白了就是舍入误差。

假设你的ADC是10位的,那它能表示的灰度范围是0-1023。如果某个像素的真实电压对应的是1023.7,那ADC只能记成1023,这0.7的误差就是量化噪声。

量化噪声的幅度取决于ADC的位数:

  • 8位ADC:量化步长 = 1/256,量化噪声较大
  • 10位ADC:量化步长 = 1/1024,量化噪声中等
  • 12位ADC:量化步长 = 1/4096,量化噪声较小
  • 14位及以上:量化噪声基本可以忽略
注意:HDR合成时,如果源帧是8位的,经过多次曝光合成和色调映射,量化误差会被放大。我建议至少使用10位以上的源素材做HDR,否则合成后的带状伪影(banding)会让你头疼。

量化噪声在平滑区域最明显。比如拍一面白墙,如果量化噪声大,你会看到不该有的色阶断层。HDR处理中,这种断层在暗部提亮后尤其刺眼。

4.4 HDR合成引入的噪声:算法带来的“副产品”

这部分是我最想强调的。很多人以为HDR合成只是把几张图叠在一起,噪声会互相抵消。其实恰恰相反——HDR合成本身会引入新的噪声。

主要有三个来源:

  1. 权重分配噪声:合成时不同曝光帧的权重不同,权重计算本身有误差,导致合成结果出现局部噪声。
  2. 运动对齐误差:手持拍摄时帧间有位移,对齐算法如果不够精确,会在边缘产生鬼影和噪声。
  3. 响应曲线标定误差:相机响应曲线(CRF)的标定不准确,导致合成时亮度映射出错,引入非线性噪声。

我曾经在一个项目中,用三帧曝光(-2EV、0EV、+2EV)做HDR合成。结果发现合成后的图像在中间调区域出现了一种奇怪的“纹理噪声”,既不像传感器噪声,也不像光子噪声。排查了两天,最后发现是响应曲线标定用的灰阶卡有轻微的反光不均匀,导致CRF标定偏差了0.3%。就是这0.3%,在合成时被放大了好几倍。

核心观点:HDR合成引入的噪声,本质上是多帧融合过程中的误差累积。每一帧的噪声、对齐误差、标定误差,都会在合成时叠加。这也是为什么HDR降噪不能只做单帧处理,必须结合多帧信息。

4.5 四种噪声的对比与总结

为了让你一目了然,我把四种噪声的关键特性整理成了一张表:

噪声类型 来源 与信号关系 在HDR中的影响 主要应对策略
传感器噪声 硬件电路、温度 与信号无关 暗部提亮后明显 暗帧校正、温度补偿
光子噪声 光的量子特性 标准差 = √信号 低照度帧信噪比低 多帧平均、增加曝光
量化噪声 ADC模数转换 与信号无关 平滑区域出现色阶断层 高位深源素材、抖动
HDR合成噪声 权重、对齐、标定误差 与算法相关 合成后出现新噪声模式 精确标定、鲁棒对齐

下面这张图,是我自己总结的HDR噪声来源全景图。它把四种噪声的关系和影响路径画清楚了:

HDR图像噪声来源全景图 HDR合成图像 传感器噪声 光子噪声 量化噪声 HDR合成噪声 固定模式噪声 暗电流噪声 泊松分布波动 信噪比 = √信号 ADC舍入误差 位深决定步长 权重分配误差 对齐/标定误差 关键洞察 HDR合成噪声是前三类噪声的“放大器”和“混合器”,降噪必须从源头和算法两端同时入手

嗯,这张图把四种噪声的关系理清楚了。你注意看最下面的说明框——HDR合成噪声是前三类噪声的“放大器”和“混合器”。这意味着,如果你只处理其中一种噪声,效果会很有限。必须从源头和算法两端同时下手。

我个人在做HDR降噪时,会先做噪声分析:拍一张暗帧估算传感器噪声,拍一张灰卡估算光子噪声,再检查ADC的位深。把这些底数摸清了,再设计合成算法里的降噪策略。这样才不会盲目调参数。

最后说一句:噪声分析不是一次性的工作。换了传感器、换了镜头、甚至换了拍摄环境温度,噪声特性都会变。我建议你在每个项目开始前,都重新做一遍噪声标定。别偷懒,这个习惯能帮你省下后面大量的调试时间。