0%

音频编码

1. 介绍

这里说的音频编码(或者说音频格式)指的是现实中的声音保存在计算机中的形式,模拟信号经过数字化转换后,才能保存到计算机中。数字化的过程叫 PCM(Pulse-code modulation, 脉冲编码调制), 形成的最原始的编码也叫 PCM

关于音频有以下几个属性。

1.1. 采样率(sample rate)

原始声音的模拟信号是一系列的高低压电平,数字化的时候,使用固定频率的脉冲去采集某一时刻的电压大小(描述不准确),就是音频采样;比如使用 2Hz 的频率去采样,就是1s对原始音频信号取 2 个值,采样率就2Hz, 当然通常情况下不会这么慢,这时候如果播放出来,就是哔哔两声,不是连续的声音了。常见的采样率是 8kHz, 44.1kHz(为什么是这个值) 等。

可以看到,采样率越高,声音越接近原始音频,最后的音频文件也越大。

1.2. 位深(sample depth)

描述1个采样点需要的位数,如果使用2位,那最多就是4种声音;如果使用8位,就可以表达 2^8=256 种声音。常见的位深有 8,16,20,24,32 等。位深越大,声音越真实。

1.3. 轨道数(track)

一般1个麦克风采样1个轨道的音频(描述不准确),但如果使用立体声,会有多个采样源,这样一个音频流就可以包含多轨,更真实的描述声音。

1.4. 码率(bits rate)

描述1s音频数据的大小,这个跟压缩有关。未压缩的格式可以计算出来码率,比如 8k 采样率,16bits 位深, 单轨道,则码率为 8000 * 16 = 128000bps, 也就是 128kbps。如果是压缩后的,可能会有 CBR, ABR, VBR 几种码率类型,

  • CBR: Constant bitrate, 恒定码率, 码率不会变,压缩率较小;
  • VBR: Variable bitrate, 可变码率, 会根据声音复杂度变化,
  • ABR: Average bitrate, 平均码率,介于CBR 和 VBR, 会根据前后内容调节码率,但算法较复杂;

声音经过采样之后,为了方便存储和传输,会转换成各种格式,下面是一些格式介绍。

2. 未压缩格式

格式 说明
WAV(Waveform Audio File) 微软出品, 保存所有的原始数据,支持高音质,自带时间编码, 音频工作者的理想格式。
AIFF(Audio Interchange File Format) Apple出品,不包含时间, 编辑和混合的时候不适合
DSD(Direct Stream Digital) 非常大,需要高级的音频处理系统
PCM(Pulse-Code Modulation) CD 和 DVD 中使用, 在DSD出现之前,这是最接近原始模拟声音的格式了

PCM(也说LPCM)是 CD 中的标准,在计算机中存储的时候,通常是在容器中: WAV,AIFF,AU 或者原始音频格式,
但也不是必须的。与 PCM 类似的未压缩格式有 PDM(Pulse-density modulation, DSD格式), PAM(Pulse-amplitude modulation)

3. 无损压缩

格式 说明
FLAC(Free Lossless Audio Codec) 开源
ALAC(Apple’s Lossless Audio Codec) 只在 Apple 上用

4. 有损压缩

格式 说明
MP3 (MPEG-1 Audio Layer III) 体积小,最大支持16bits位深,音质低
AAC(Advanced Audio Coding) 同等体积下比MP3音质更好, 应用范围广,适合流媒体
Ogg Vorbis 开源, Spotify 使用, 适合流媒体

5. 说明

5.1. PCM 和 LPCM 的关系

PCM(Pulse-code modulation) 脉冲编码调制是一种模拟信号转数字信号的技术,也是音频采样中最常用的技术,其他技术还有 PDM(Pulse-density modulation) 和 PAM(Pulse-amplitude modulation)。LPCM(Linear PCM) 是PCM的一种特殊形式,