图像质量基础:分辨率与帧率、曝光与增益、白平衡原理、色彩空间与噪声分析
做摄像头调试这些年,我最大的感受是:图像质量是系统工程。它不是调一个参数就能搞定的事。你调好了亮度,噪声上来了;压了噪声,颜色又偏了。说白了,这是一场多方博弈。
今天这一章,我们把基础打牢。分辨率、帧率、曝光、增益、白平衡、色彩空间、噪声——这些概念你天天用,但真的吃透了吗?我带你过一遍,顺便聊聊实战中踩过的坑。
分辨率与帧率:一对天生的冤家
分辨率决定了图像的细节丰富度,帧率决定了运动的流畅度。但这两者之间,存在一个硬约束——带宽。
我举个例子。你用一个 500 万像素的 sensor,输出 2592x1944 的 RAW10 数据。单帧数据量是多少?2592 × 1944 × 10 bits ≈ 50.4 Mbits。如果 MIPI 接口是 4-lane、每 lane 1.5 Gbps,理论带宽约 6 Gbps。扣除开销,实际能跑的大概是 4.8 Gbps。算下来,满分辨率下帧率上限大约是 95 fps。但如果你要跑 120 fps,就得降分辨率,或者用 binning 模式。
我在一个行车记录仪项目里遇到过这种情况。客户要求 4K 30fps,但 sensor 的读出噪声在高温下飙升。我们最后不得不降到 1440p 30fps,换来了更好的信噪比。嗯,有时候你得学会取舍。
| 分辨率 | 像素数 | 典型帧率上限 (MIPI 4-lane) | 适用场景 |
|---|---|---|---|
| 640×480 (VGA) | 0.3 MP | 120~240 fps | 工业检测、高速抓拍 |
| 1920×1080 (FHD) | 2.1 MP | 60~120 fps | 安防、消费电子 |
| 3840×2160 (4K) | 8.3 MP | 30~60 fps | 高端安防、运动相机 |
| 7680×4320 (8K) | 33.2 MP | 15~30 fps | 专业影视、医疗影像 |
曝光与增益:亮度的两个旋钮
曝光时间决定了 sensor 收集光子的时长。增益则是对收集到的电荷进行放大。这两个参数共同决定了图像的亮度,但它们的噪声特性完全不同。
曝光时间长了,运动物体会模糊。你想想看,拍一个跑步的人,1/30s 的快门肯定糊,1/500s 才能冻住。但曝光时间短了,画面就暗。
增益分两种:模拟增益和数字增益。模拟增益在像素读出前放大信号,会放大 sensor 本身的读出噪声。数字增益在 ADC 之后做乘法,会同时放大量化噪声。我个人的原则是:优先调曝光时间,模拟增益尽量不超过 16x(24dB),数字增益能不用就不用。
我曾经在一个低照度项目中吃过亏。为了省成本,用了小像素尺寸的 sensor,暗光下增益拉到 32x,结果满屏都是雪花。后来换了更大像素的 sensor,同样场景下增益只需要 8x,画面干净多了。
白平衡原理:让白色回归白色
白平衡的本质,是在不同色温的光源下,让白色物体看起来是白的。人眼会自动适应,但 sensor 不会。它老老实实地记录光谱能量分布,所以需要我们来校正。
白平衡的核心是估计光源色温,然后对 R、G、B 三个通道施加不同的增益。通常的做法是:
- 统计图像中灰色区域的 R/G 和 B/G 比值
- 根据预设的色温曲线,查表得到当前色温
- 计算 R 和 B 通道的增益,使 R/G 和 B/G 趋近于 1.0
这里有个坑:如果场景里全是单一颜色(比如一片绿草地),白平衡算法会误判。它以为整个画面偏绿,于是拼命拉 R 和 B 增益,结果草地变成了灰色。我遇到过这种情况,后来在算法里加了色温置信度判断,如果场景颜色饱和度太高,就降低白平衡的响应速度。
| 光源类型 | 色温 (K) | R/G 比值 (典型) | B/G 比值 (典型) |
|---|---|---|---|
| 烛光 | 1800 | 1.8~2.2 | 0.4~0.6 |
| 白炽灯 | 2800 | 1.4~1.6 | 0.6~0.8 |
| 日光 (D65) | 6500 | 1.0~1.1 | 0.9~1.1 |
| 阴天 | 7500 | 0.8~0.9 | 1.2~1.4 |
色彩空间:RAW、RGB、YUV 的三角关系
sensor 直接输出的是 RAW 数据。每个像素只记录一种颜色——R、G 或 B,按照 Bayer 模式排列。这就像一张黑白照片,但每个像素知道自己是红、绿还是蓝。
ISP 做的第一件事就是去马赛克(demosaic),把 RAW 插值成完整的 RGB 图像。然后做白平衡、颜色校正矩阵(CCM)、伽马校正,最后转成 YUV 用于编码或显示。
我经常看到新手搞混 RGB 和 YUV 的用途。RGB 适合做颜色处理,因为三个通道独立。YUV 适合做压缩和显示,因为 Y(亮度)和 UV(色度)分离,可以降低色度采样率而不影响亮度细节。说白了,YUV 是给视频编码准备的,RGB 是给图像处理准备的。
图像噪声来源分析:敌人是谁?
噪声是图像质量的死敌。但噪声不是一种,而是多种。你得知道敌人是谁,才能对症下药。
- 散粒噪声(Shot Noise):光子到达 sensor 的随机性造成的。光照越弱,散粒噪声越明显。这是物理极限,无法消除,只能通过增加曝光时间或增大像素尺寸来改善。
- 读出噪声(Read Noise):sensor 读出电路产生的。包括像素复位噪声、源跟随器噪声、ADC 量化噪声。好的 sensor 读出噪声可以做到 1~2 e-,差的可能到 10 e- 以上。
- 暗电流噪声(Dark Current Noise):sensor 在无光照下产生的热电子。温度每升高 6~8°C,暗电流翻倍。这就是为什么手机在夏天拍夜景全是噪点的原因。
- 固定模式噪声(FPN):sensor 像素之间的不一致性造成的。表现为竖条纹或网格状。可以通过暗场校正来消除。
我记得有一次调试一个工业相机,客户投诉说图像有横条纹。我查了半天,发现是 sensor 的电源纹波耦合到了读出电路。后来在电源线上加了一个 LC 滤波器,问题就解决了。有时候噪声问题不在 ISP 里,而在硬件设计上。