图像成像基础:从光子到数字图像

做暗光增强,你得先搞懂图像是怎么来的。说白了,相机就是个「光子计数器」。我刚开始接触图像处理时,总觉得算法万能,后来被一张全黑照片教做人——没有信号,什么算法都白搭。

这一章,我们聊聊数码相机成像的核心原理。重点放在拜耳阵列、ISP管线,以及暗光下那些烦人的噪声。

数码相机成像原理

相机成像,本质上是一个「光电转换」过程。光线进入镜头,经过传感器,最终变成数字信号。这个链条上,有两个关键角色:拜耳阵列和ISP管线。

拜耳阵列:为什么传感器是彩色的?

传感器本身是「色盲」的。它只能感知光的强度,分不清颜色。那彩色照片怎么来的?

答案就是拜耳阵列。它在每个像素上覆盖一层滤色片,只允许特定波长的光通过。最常见的模式是RGGB——一个红色、两个绿色、一个蓝色。

为什么绿色有两个?

人眼对绿色最敏感。多一个绿色像素,能更好地模拟人眼的亮度感知。这也是为什么拜耳阵列看起来「偏绿」。

我做过一个实验:把一张RAW图直接显示,不经过任何插值。结果就是一张马赛克图,每个像素只有一种颜色。嗯,这就是拜耳阵列的原始面貌。

从拜耳阵列到完整彩色图像,需要经过去马赛克(Demosaicing)算法。它会根据相邻像素的颜色值,插值出每个像素缺失的两种颜色。常见的算法有双线性插值、边缘导向插值,以及基于深度学习的插值。

避坑指南

我曾经在暗光场景下用简单的双线性插值,结果出现了大量伪彩色和锯齿。后来换成边缘导向插值,效果好了很多。暗光下,插值算法对噪声的放大效应特别明显,选对算法很重要。

ISP管线:从RAW到JPEG的魔法

ISP(Image Signal Processor)是相机内部的图像处理流水线。它把RAW数据变成我们看到的JPEG。我习惯把ISP管线分成几个关键阶段:

  1. 黑电平校正:减去传感器暗电流带来的固定偏移
  2. 去马赛克:从拜耳阵列恢复全彩色
  3. 白平衡:校正不同光源下的色偏
  4. 色彩校正矩阵:把传感器色彩空间映射到标准色彩空间
  5. 伽马校正:调整亮度曲线,适配人眼感知
  6. 降噪与锐化:减少噪声,增强细节
  7. 压缩编码:输出JPEG

你想想看,手机拍照瞬间完成,背后其实跑了一整套复杂的流水线。每个环节都会影响最终画质,尤其是在暗光下。

注意

ISP管线中的降噪和锐化是「双刃剑」。降噪太强,细节丢失;锐化太强,噪声被放大。暗光下,这个平衡特别难把握。我见过不少手机夜景模式,降噪后照片像油画一样,细节全没了。

RAW与JPEG的区别

这个问题,我几乎每次培训都会被问到。直接上对比表:

特性 RAW JPEG
位深 12-14 bit 8 bit
色彩空间 传感器原生 sRGB/Adobe RGB
压缩 无损或有损(压缩比小) 有损(压缩比大)
后期空间 极大(可调白平衡、曝光等) 极小(信息已丢失)
文件大小 大(约25-50MB/张) 小(约5-10MB/张)
适用场景 专业后期、暗光增强 快速分享、存储

说白了,RAW是「数字底片」,JPEG是「冲印好的照片」。做暗光增强,我强烈建议用RAW。为什么?

  • 位深优势:12bit RAW有4096级亮度,8bit JPEG只有256级。暗光下,JPEG的暗部可能只有几个灰度级,一拉就断层。
  • 白平衡可调:RAW的白平衡是「元数据」,可以后期无损调整。JPEG的白平衡是「烧死」在像素里的。
  • 噪声更原始:RAW的噪声没有被ISP降噪抹平,保留了更多真实信息。这对暗光增强算法来说,是好事。

我的经验

有一次做夜景增强项目,甲方只给了JPEG。我花了大量时间做去压缩伪影和修复色阶断层。如果当时有RAW,至少能省一半时间。所以,能拿RAW就拿RAW,别给自己找麻烦。

暗光下噪声的主要来源

暗光增强,本质上是「信号放大」和「噪声抑制」的博弈。噪声从哪来?主要有两个源头。

光子噪声(散粒噪声)

光子的到达是随机的,服从泊松分布。暗光下,光子数量少,这种随机性就特别明显。你想想看,同一个场景拍两张照片,暗部像素的亮度值可能差很多——这就是光子噪声。

光子噪声的特点是:与信号强度相关。信号越强,噪声越大(但信噪比反而提高)。暗光下,信号弱,信噪比低,噪声看起来就特别「脏」。

数学上

光子噪声的标准差 = √(信号强度)。如果信号是100个光子,噪声就是10,信噪比10:1。如果信号是1个光子,噪声就是1,信噪比1:1。暗光下,信噪比接近1,图像几乎被噪声淹没。

读出噪声

读出噪声是传感器在读取电荷时引入的电子噪声。它跟信号强度无关,是一个固定底噪。我习惯把它理解为「传感器的本底噪声」。

读出噪声的来源包括:

  • 像素复位噪声:每次复位后,像素电压的随机波动
  • 放大器噪声:模拟放大器引入的热噪声
  • ADC量化噪声:模数转换时的量化误差
  • 暗电流噪声:传感器自身热激发产生的电子

暗光下,读出噪声是主要限制因素。因为信号弱,读出噪声的占比就大。我做过一个测试:盖上镜头盖拍一张全黑照片,看到的「噪点」就是读出噪声。

注意区分

光子噪声和读出噪声的抑制策略完全不同。光子噪声需要增加曝光时间或光圈(增加信号量),读出噪声则需要更好的传感器设计或低温环境。做算法时,要分别建模处理。

知识结构图:成像与噪声

下面这张图,把成像流程和噪声来源串起来了。你可以把它当作本章的「思维导图」。

成像流程与噪声来源 成像流程与噪声来源 场景光线 镜头 传感器(拜耳阵列) ISP管线 JPEG输出 光子噪声(散粒噪声) 读出噪声 关键点: • 光子噪声与信号强度相关(泊松分布) • 读出噪声是固定底噪,暗光下占比大

从这张图可以看得很清楚:光线经过镜头到达传感器,传感器通过拜耳阵列捕获颜色信息,然后经过ISP管线输出JPEG。噪声主要来自传感器环节——光子噪声和读出噪声。暗光下,这两个噪声源会严重干扰信号,导致图像质量下降。

小结

这一章,我们聊了成像的基础。拜耳阵列让传感器「看见」颜色,ISP管线把RAW数据变成JPEG。RAW保留了更多信息,适合后期处理。暗光下的噪声主要来自光子噪声和读出噪声,理解它们的特性,是做好暗光增强的第一步。