📄 一句话概括
音频的数据量由采样率 × 位深 × 声道三个参数相乘决定——采样率管多密、位深管多细、声道管几路。
📝 本节和前面几节的关系
2.2.1 讲了画面,这一节讲声音。两者合起来才是完整的音视频。
一、声音是什么
声音是空气的振动——一条随时间连续变化的波形。 计算机只会存数字,所以第一步必须把这根连续的曲线切成一段段的离散值。 这个过程叫采样:每隔固定的时间量一次,把量到的值记下来。
二、三个决定数据量的参数
采样率:一秒量多少次。电话 8 kHz、CD 44.1 kHz、录音棚 48 kHz。 位深:每次量到什么精度。8 bit 只有 256 档,16 bit 有 65536 档。 声道数:单声道 1 路、立体声 2 路、环绕声更多。 每秒字节数 = 采样率 × (位深 / 8) × 声道数——三个一起乘,缺一不可。
三、采样定理给了一条底线
采样率不能随便定:要还原某个频率的声音,采样率至少是它的两倍。 人耳能听到的上限约 20 kHz,所以 CD 选了 44.1 kHz(略高于 40 kHz,留了余量)。 这解释了为什么电话听着闷——它只采到 8 kHz,4 kHz 以上的声音根本没被记下来。
四、位深决定什么
位深决定的不只是【精细度】,还有信噪比。 每多 1 位,可用的动态范围大约多 6 dB:16 bit 约 96 dB,24 bit 约 144 dB。 16 bit 对播放够用,24 bit 是给录音和后期留余量的——因为多次处理会累积误差。
五、动手 Demo:音频每秒要花多少字节
音频的数据量由三个参数决定:采样率、位深、声道数。
rows = [
("电话", 8000, 8, 1),
("CD 音质", 44100, 16, 2),
("录音棚", 48000, 24, 2),
]
for name, sr, bit, ch in rows:
bps = sr * (bit / 8.0) * ch
print("%-8s %5d Hz / %2d bit / %d 声道 -> %.0f 字节/秒" % (name, sr, bit, ch, bps))
实跑输出:
--------------------------------------------------------------------
音频每秒要花多少字节
--------------------------------------------------------------------
音频的数据量由三个参数决定:采样率、位深、声道数。
场景 采样率 位深 声道 每秒字节
------------------------------------------------------
电话 8000 Hz 8 bit 1 8000
CD 音质 44100 Hz 16 bit 2 176400
录音棚 48000 Hz 24 bit 2 288000
三个参数相乘就是每秒字节数——**采样率管【多密】,位深管【多细】,声道管【几路】**。
CD 音质一分钟 = 176400 x 60 = 10,584,000 字节 = 10.1 MB
三个参数相乘就是每秒字节数:采样率管【多密】、位深管【多细】、声道管【几路】。 CD 音质一分钟约 10.1 MB,比视频小两个数量级——这也是音频处理相对轻松的原因。
30 秒实验
- 在 Windows 的【声音设置 → 属性 → 高级】里看一眼你声卡的采样率与位深。
- 用 Demo 9 的公式算出它每秒多少字节。
常见误区
- 以为采样率越高就一定越好。超过两倍上限频率的部分,人耳听不出来。
- 把位深当成音质。它主要决定动态范围(信噪比)。
- 忽略声道数。立体声比单声道直接翻一倍数据量。
自测三问(点开对答案)
1. 音频每秒字节数由哪三个参数决定? —— 采样率、位深、声道数,三者相乘。 2. 采样定理说的是什么? —— 要还原某个频率的声音,采样率至少要达到它的两倍。 3. 位深主要影响什么? —— 可用的动态范围与信噪比,大约每多 1 位多 6 dB。- ☐ 下一节(2.2.3 音视频编码)
相关笔记
- 视频 — 画面的数据量
- 音视频编码 — 把两者一起压下去
- 🔵 计算机基础 · 索引 — 数字化的整体图景
- 🎬 FFmpeg入门详解 · 索引