音频场景中什么是 dBFS 和 LUFS

做音频处理时,经常会遇到两个单位:dBFSLUFS。它们看起来都带 dB,也都和“声音大小”有关,但实际回答的是两个不同问题:

这篇文章把 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,大致过程是:

  1. 对每个声道做 K-weighting 滤波。
  2. 计算分块能量。
  3. 多声道按权重合成。
  4. 去掉太安静的块,也就是 gating。
  5. 对剩余块求整体响度,得到 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 管整体听感

资料来源

  1. 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/en

  2. EBU R 128: Loudness normalisation and permitted maximum level of audio signals
    https://tech.ebu.ch/publications/r128

  3. EBU Loudness resources
    https://tech.ebu.ch/loudness

  4. AES Pro Audio Reference: dBFS
    https://aes.org/publications/par/d/

  5. Federal Agencies Digitization Guidelines Initiative: Decibels relative to full scale
    https://www.digitizationguidelines.gov/term.php?term=decibelsrelativetofullscale