2、信噪比基础:信号与噪声的概念、信噪比(SNR)的数学定义、分贝(dB)单位换算
聊图像质量,绕不开一个核心概念——信噪比。说白了,就是信号和噪声的比值。我刚开始接触图像处理时,总觉得这玩意儿是搞通信的人才会关心的。后来做了一次传感器选型测试,才发现信噪比直接决定了你拍出来的东西能不能用。
2.1 信号与噪声:一对天生的冤家
什么是信号?你想要的、有用的信息就是信号。在图像里,信号就是场景中真实的光强分布。比如你拍一张人脸,人脸各部分的亮度、颜色变化,就是信号。
什么是噪声?你不想要的、干扰你获取真实信息的成分,就是噪声。图像噪声的表现形式很多:颗粒感、雪花点、彩色条纹、固定模式条纹……
我个人的理解是:信号是你要的,噪声是你不想要的,但两者永远共存。你想想看,任何电子系统都有热噪声,任何光电转换过程都有散粒噪声,任何量化过程都有量化噪声。你不可能完全消除噪声,只能想办法让信号比噪声大得多。
核心认知:噪声不是“有没有”的问题,而是“有多少”的问题。图像质量评测的本质,就是量化信号相对于噪声的强度。
我在项目中遇到过一种情况:用同一款传感器,在室内灯光下拍出来的图像很干净,拿到室外强光下反而出现了明显的条纹噪声。后来排查发现,是自动增益控制(AGC)把信号放大的同时,也把电源纹波噪声一起放大了。这就是信号与噪声“同涨同跌”的典型例子。
2.2 信噪比(SNR)的数学定义
信噪比,英文 Signal-to-Noise Ratio,缩写 SNR。它的数学定义非常直接:
SNR = P_signal / P_noise
其中 P_signal 是信号功率,P_noise 是噪声功率。在图像领域,我们通常用像素值的方差来近似功率:
SNR = σ²_signal / σ²_noise
或者直接用标准差:
SNR = σ_signal / σ_noise
嗯,这里要注意:功率比和幅度比差了平方关系。如果你用幅度(像素值)来计算,结果和用功率计算差了一倍的分贝值。后面讲dB换算时会详细说。
实际工程中,我们怎么测量SNR?我常用的方法是拍一张均匀灰卡:
- 拍一张均匀灰卡(比如18%中性灰卡)
- 取图像中心区域(避开边缘渐晕)
- 计算该区域像素值的均值——这就是信号强度
- 计算该区域像素值的标准差——这就是噪声强度
- SNR = 均值 / 标准差
小技巧:如果场景不是均匀的,可以用两张相同场景的连续帧做差,差图像里信号被抵消,剩下的就是噪声。这个方法在动态场景下也适用,但需要保证两帧之间没有运动。
我曾经用这个方法测试过一款工业相机,标称SNR是45dB,实测只有38dB。后来发现是电源滤波没做好,导致50Hz工频干扰混入了图像。加了滤波电容后,SNR回到了44dB。所以,标称值和实测值往往有差距,别盲目相信datasheet。
2.3 分贝(dB)单位换算
为什么用分贝?因为人眼对亮度的感知是对数级的,而且信号和噪声的比值跨度很大(从1到几万),用线性刻度不方便。分贝正好解决了这个问题。
分贝的定义:
SNR(dB) = 10 × log10(P_signal / P_noise)
如果用的是幅度(像素值),公式变成:
SNR(dB) = 20 × log10(A_signal / A_noise)
为什么一个是10倍,一个是20倍?因为功率正比于幅度的平方。log10(A²) = 2 × log10(A),所以幅度比的分贝值要乘20。
我刚开始做这行时,经常搞混10和20。后来记住一句话:功率用10,幅度用20。就这么简单。
下面这张表是常用SNR值的换算,建议收藏:
| SNR(线性比值) | SNR(dB) | 图像质量感受 |
|---|---|---|
| 1 | 0 dB | 信号和噪声一样强,基本不可用 |
| 3.16 | 10 dB | 噪声明显,但还能看出轮廓 |
| 10 | 20 dB | 噪声可见,但主体可辨 |
| 31.6 | 30 dB | 噪声轻微,图像质量可接受 |
| 100 | 40 dB | 噪声很少,图像干净 |
| 316 | 50 dB | 几乎无可见噪声,专业级 |
| 1000 | 60 dB | 极高质量,科研级 |
避坑指南:我曾经在写测试报告时,把幅度比当成功率比用了10倍log,结果SNR算出来比实际高了6dB。幸好同事复核时发现了。记住:用像素值计算时,一定要用20log10,除非你先把像素值平方转换成功率。
还有一个常见误区:dB和dBm、dBFS的区别。在图像领域,我们几乎只用dB(比值单位),不用dBm(功率单位)或dBFS(满量程相对单位)。但如果你做的是模拟视频信号链,可能会遇到dBm。记住:dB是比值,没有量纲;dBm是功率,1dBm = 1mW。
2.4 本章知识体系
下面这张图总结了信噪比基础的核心逻辑,我画成了流程图,方便你理解:
这张图从左到右、从上到下展示了信噪比的知识脉络。你可以看到,信号和噪声是源头,SNR定义是核心,两种计算方式对应不同的工程场景,最终落到实际测量方法上。
我个人建议初学者先把这张图记在脑子里。每次做图像质量评测时,问自己三个问题:
- 我测的是信号还是噪声?
- 我用的是功率比还是幅度比?
- 我的测量方法有没有引入额外噪声?
把这三个问题想清楚,信噪比这块就算入门了。