音频场景中什么是 dBFS 和 LUFS
做音频处理时,经常会遇到两个单位:dBFS 和 LUFS。它们看起来都带 dB,也都和“声音大小”有关,但实际回答的是两个不同问题:
- dBFS 关心数字音频离满刻度还有多远,常用来判断电平、峰值和削波风险。
- LUFS 关心人耳听起来有多响,常用来做节目、播客、短视频、音乐和语音内容的响度统一。
这篇文章把 dBFS 和 LUFS 放在一起进行解释:它们分别怎么定义、怎么计算、用在什么地方。
1. dB 后面的后缀
dB 本身只是一个比值单位。说一个信号是 -6 dB,需要知道它相对于哪个参考量。后缀的作用,就是把参考点说清楚。音频里常见的几个 dB 单位如下:
| 单位 | 参考点 | 常见用途 |
|---|---|---|
| dB | 某个约定参考值 | 表示比例变化,比如增益、衰减、频响 |
| dBSPL | 20 µPa | 空气中的声压级、噪声、声学测量 |
| dBu | 0.775 Vrms | 专业模拟音频电平 |
| dBV | 1 Vrms | 设备输入输出电压 |
| dBFS | 数字满刻度 | 数字音频峰值、RMS、电平余量 |
| LUFS | 数字满刻度 + 响度算法 | 节目、音乐、视频、播客响度 |
比如 dBSPL 描述的是空气里的声压,dBu 和 dBV 描述的是模拟电路里的电压,dBFS 描述的是数字样本离满刻度有多远。LUFS 也相对于数字满刻度,但它先经过响度算法,目标是更接近人耳听到的“响度”。
注意 dBFS 和 dBSPL 不能直接相互换算,他们描述的是不同的概念。数字音频里的 -20 dBFS,经过不同声卡、功放、音箱和播放音量,可能对应不同的 dBSPL。
2. dBFS - 数字音频里的满刻度电平
dBFS 是 decibels relative to Full Scale,也就是“相对于数字满刻度的分贝”。在 PCM 数字音频里,样本值有一个可表示的最大范围。比如工程里常把浮点音频归一化到 -1.0 ~ +1.0,那么 +1.0 和 -1.0 附近就是满刻度边界。dBFS 就是把当前信号幅度和满刻度幅度做比值,再取对数。
Peak dBFS = 20 * log10(peak / full_scale)
其中:peak 是音频样本绝对值的最大值,full_scale 是数字满刻度幅度。在归一化浮点音频里,full_scale = 1.0。如果某段音频最大样本值是 0.5,则对应大约 -6 dBFS。
0 dBFS 是数字系统能表示的最高参考电平。正常的 sample peak 通常不会超过 0 dBFS。超过以后,要么已经削波,要么在浮点处理中暂时保留了超限值,但最终转成定点 PCM 或送到播放设备时仍然要处理。
3. dBFS 也可以描述 RMS
平时说“音频峰值是 -1 dBFS”,通常指 sample peak:
sample_peak = max(abs(x[n]))
Peak dBFS = 20 * log10(sample_peak / full_scale)
但 dBFS 也可以用于 RMS 电平:
rms = sqrt(mean(x[n]^2))
RMS dBFS = 20 * log10(rms / reference)
工程里常见的几个 dBFS 相关读数是:
| 名称 | 检查变量 | 常见用途 |
|---|---|---|
| Sample Peak dBFS | 采样点最大值 | 判断样本是否接近满刻度 |
| True Peak dBTP | 估计重建后的峰值 | 避免数模转换或编码后的 inter-sample peak |
| RMS dBFS | 平均能量 | 粗略看信号强弱、噪声底 |
需要注意一个数字音频文件 sample peak 没到 0 dBFS,不代表重建成连续模拟波形后不会超过 0 dBFS。采样点之间可能出现 inter-sample peak,所以流媒体或广播交付常会限制 dBTP,比如要求 true peak 不高于 -1 dBTP。
4. LUFS - 面向听感的响度单位
LUFS 即 Loudness Units relative to Full Scale,用于表示相对于数字满刻度的响度。它和 LKFS 在数值上等价,都是基于 ITU-R BS.1770 响度算法。LUFS 考察的是这段音频听起来有多响。
人耳对不同频率的敏感度不同,对瞬间峰值和持续能量的感受也不同。一个鼓点峰值很高,但持续时间很短,未必听起来很响;一段持续压得很满的人声,峰值可能不高,但会显得很响。LUFS 就是为了比 dBFS 更接近人耳的整体响度判断。
常见的 LUFS 读数有三类:
| 名称 | 时间尺度 | 用途 |
|---|---|---|
| Momentary LUFS | 约 400 ms | 看瞬时响度变化 |
| Short-term LUFS | 约 3 s | 看短时间段响度 |
| Integrated LUFS | 整段内容 | 做节目、歌曲、视频、播客的整体响度归一 |
平时说“这首歌是 -14 LUFS”“这个播客是 -16 LUFS”,多数指 Integrated LUFS。
5. LUFS 的计算过程
LUFS 的完整算法在 ITU-R BS.1770 里定义,工程实现通常由响度计、音频编辑软件或 ffmpeg loudnorm 一类工具完成。这里不展开到滤波器系数,只讲计算流程。
一段音频要算 Integrated LUFS,大致过程是:
- 对每个声道做 K-weighting 滤波。
- 计算分块能量。
- 多声道按权重合成。
- 去掉太安静的块,也就是 gating。
- 对剩余块求整体响度,得到 LUFS。
K-weighting 是关键,它会对频率做加权,让测量结果更接近人耳对响度的感受。多声道时,不同声道还会有不同权重。例如在 BS.1770-4 中,左、右、中声道权重为 1.0,左右环绕声道权重大约为 1.41。
Integrated LUFS 的核心形式可以写成:
Loudness = -0.691 + 10 * log10(sum(G_i * mean_square_i))
其中:G_i 是第 i 个声道的权重,mean_square_i 是经过 K-weighting 后的均方能量,-0.691 是算法里的校正常数。实际 Integrated LUFS 还会加入门限。过低的静音或接近静音片段不会全部计入整体响度,否则一段前后留白很长的音频会被算得过低。
6. dBFS 和 LUFS 的区别
dBFS 适合看数字电平和安全余量,在做降噪、回声消除、AGC、VAD、唤醒词前端等算法开发时,经常要知道输入幅度大概是多少,是否过小、过大、溢出、静音,或者是否被某个模块突然放大等。
LUFS 适合做响度统一。它不关心某一个采样点冲到了多高,更关心整段内容听起来是否稳定、是否和其他内容差不多响。常见于广播电视、流媒体音乐、短视频/长视频、播客/有声书等场景。
dBFS 和 LUFS 虽然都相对于数字满刻度。但它们测的东西不同:
| 项目 | dBFS | LUFS |
|---|---|---|
| 关注点 | 数字幅度、电平、峰值 | 人耳感知响度 |
| 典型对象 | 采样点、峰值、RMS | 一段时间内的内容 |
| 频率加权 | 通常没有 | 有 K-weighting |
| 时间处理 | 可瞬时、可 RMS | Momentary、Short-term、Integrated |
| 常见用途 | 防削波、留余量、设备测试 | 响度统一、平台交付、节目规范 |
| 单位上限 | sample peak 通常不超过 0 dBFS | 常见节目响度多为负值 |
7. 小结
dBFS 看的是数字电平,适合判断满刻度、峰值、削波和 headroom。LUFS 看的是感知响度,更适合做节目、视频、播客、音乐和语音内容的响度统一。虽然两者都和数字满刻度有关,但使用场景不同。工程上可以用 dBFS/dBTP 管峰值安全,用 LUFS 管整体听感。
资料来源
ITU-R BS.1770-4: Algorithms to measure audio programme loudness and true-peak audio level
https://www.itu.int/rec/R-REC-BS.1770-4-201510-S/enEBU R 128: Loudness normalisation and permitted maximum level of audio signals
https://tech.ebu.ch/publications/r128EBU Loudness resources
https://tech.ebu.ch/loudnessAES Pro Audio Reference: dBFS
https://aes.org/publications/par/d/Federal Agencies Digitization Guidelines Initiative: Decibels relative to full scale
https://www.digitizationguidelines.gov/term.php?term=decibelsrelativetofullscale