1. 图像质量基础:从光子到数字图像

做图像处理这么多年,我越来越觉得——不懂传感器原理,就别谈图像质量。你想想看,一张照片从光进入镜头到最后显示在屏幕上,中间经历了多少道工序?每一道都在损耗信息,每一道都在引入噪声。

这一章,咱们就从源头开始,把图像传感器、ISP Pipeline 和质量评价指标这三个基础打牢。嗯,都是干货。

1.1 图像传感器原理:光是怎么变成电信号的

图像传感器说白了就是一个光子计数器。每个像素点就是一个微型光电二极管,光子打上去产生电子,电子数量正比于光强。

目前主流传感器就两种:

类型 工作原理 优点 缺点
CCD 电荷逐行转移读出 噪声低、均匀性好 功耗高、速度慢
CMOS 每个像素独立放大+读出 功耗低、速度快、集成度高 固定模式噪声(FPN)较明显

我个人习惯用 CMOS,因为现在手机、安防、车载基本都是它。但要注意——CMOS 的像素结构决定了它的噪声特性。

关键概念:量子效率(QE)与满阱容量(FWC)

  • 量子效率:入射光子转化为电子的比例。QE 越高,弱光性能越好。
  • 满阱容量:一个像素能容纳的最大电子数。FWC 越大,动态范围越宽。

我在项目中遇到过一款传感器,QE 标称 70%,但实际弱光下只有 40%——后来发现是微透镜工艺偏差。所以,别只看 datasheet,要实测。

1.2 ISP Pipeline 概述:图像质量的"流水线"

传感器出来的原始数据叫 RAW,它还不是一张能看的图。ISP(Image Signal Processor)就是负责把 RAW 变成漂亮 RGB 图像的流水线。

典型的 ISP Pipeline 长这样:

ISP Pipeline 典型流程 RAW 输入 黑电平校正 去马赛克 白平衡 去噪 色彩校正 Gamma 校正 锐化 RGB/YUV 输出 💡 说明: • 去马赛克:Bayer 模式每个像素只有一种颜色,需要插值恢复全彩。 • 去噪:在保留细节的前提下抑制噪声,是 ISP 中最难调的一步。 • Gamma 校正:人眼对暗部更敏感,Gamma 把暗部细节拉开。

每个模块都有讲究。我重点说几个:

  • 黑电平校正:传感器在无光时也有暗电流,得减掉。我曾经调过一款 sensor,黑电平随温度漂移严重,最后加了温度查表补偿才搞定。
  • 去马赛克:Bayer 模式每个像素只有 R/G/B 之一,得靠插值补全。插值算法选不好,边缘就出现伪彩色——嗯,这就是"拉链效应"。
  • 去噪:这是 ISP 里最"艺术"的一步。去多了糊,去少了噪。我一般先做空域去噪,再做时域去噪,两者配合效果最好。

我的经验:ISP 调优的顺序很重要。先调黑电平,再调白平衡,最后调色彩和锐化。顺序乱了,后面全白费。

1.3 图像质量评价指标:怎么量化"好"与"坏"

图像质量不能光靠"看着舒服"来评价,得有数学指标。常用的三个:

1.3.1 SNR(信噪比)

SNR 是信号与噪声的比值,单位 dB。公式很简单:

SNR = 20 * log10(信号均值 / 噪声标准差)

SNR 越高,图像越干净。一般 SNR > 40dB 算不错,> 50dB 算优秀。

注意:SNR 只反映噪声水平,不反映细节保留程度。一张糊图 SNR 可能很高——因为噪声被抹平了。

1.3.2 PSNR(峰值信噪比)

PSNR 是 SNR 的变种,用像素最大值代替信号均值:

PSNR = 20 * log10(255 / RMSE)

其中 RMSE 是均方根误差。PSNR 常用于有参考的质量评价——比如压缩前后对比。

PSNR 范围 主观感受
> 40 dB 几乎看不出差异
30 - 40 dB 轻微差异,可接受
20 - 30 dB 明显失真
< 20 dB 不可接受

1.3.3 SSIM(结构相似性)

SSIM 比 PSNR 更"聪明"。它从亮度、对比度、结构三个维度比较两幅图像:

SSIM(x, y) = [l(x,y)]^α * [c(x,y)]^β * [s(x,y)]^γ

SSIM 取值范围 [0, 1],越接近 1 越相似。0.95 以上人眼基本看不出区别。

实战对比:

  • PSNR:对噪声敏感,对模糊不敏感。一张高斯模糊图 PSNR 可能还行,但人眼觉得糊。
  • SSIM:对结构变化敏感,更符合人眼感知。我调去噪参数时,主要看 SSIM——PSNR 只做参考。

1.4 本章小结

这一章我们走了三个台阶:

  1. 传感器原理——光变电,电变数。量子效率和满阱容量决定了底子好坏。
  2. ISP Pipeline——从 RAW 到 RGB 的流水线,每个模块都在做"修复"和"增强"。
  3. 质量指标——SNR 看噪声,PSNR 看误差,SSIM 看结构。三个指标配合使用,才能全面评价。

我记得刚入行时,总觉得 ISP 就是调几个参数。后来踩了无数坑才明白——不懂底层原理,调参就是瞎蒙。这一章的内容,后面每一章都会用到。尤其是去噪和锐化,没有 SNR 和 SSIM 的概念,你根本不知道调对了还是调过了。