摘要: 为了在保证音频质量的前提下提高音频编码的压缩率,不同的音频编码器基于人的发音模型与感知模型实现了各自的编码算法。本文会介绍几种音频编码器背后的声学原理,让大家对音频编码有一个整体的认识。
1、G711(PCMA/PCMU)
1.1 非均匀量化
人类能忍受的最大声音(120dB 声压级)的幅度是最微弱声音(0dB 声压级)的100万倍,然而,耳朵不能区别差别小于1dB的声音。
人耳只能感受到120个不同的声压级别,其在100万幅度范围内呈对数分布。换句话说,响度与声音幅度的关系是非线性的。利用人耳的这个听觉特性,可以对声音幅度进行非均匀量化,如果采用均匀量化,每个采样需要用12bit才能达到电话语音质量,采用非均匀量化,只需要8bit。
1.2 G711
PCMA采用A定律实现非均匀量化,PCMU采用μ定律。如图1所示,两者的曲线几乎完全相同。从图中可以直观地看到,对于幅度小的信号,量化间距较小,对于幅度大的信号,量化间距较大(因为对于幅度大的信号,轻微的幅度变化人耳并不能识别)。
2、MPEG-1 音频编码
2.1 听阈
能够被听到的最低级别的声音定义为听阈,能够对人的听觉结构引起痛苦和伤害的声音级别定义为痛阈。
图2的横坐标为频率范围(20-20kHz),纵坐标为声压级。从图2可以看出人的听阈随着频率的变化而变化,最敏感的频率为3000-3500Hz,最不敏感的低频端在20Hz,最不敏感的高频段在20000Hz。
2.2 掩蔽效应
掩蔽是一些声音在另一些声音存在的情况下,变得不被人们区别甚至不能被人们听见的现象。譬如在机场候机室要仔细去听公告,就是公告声音被掩蔽在了背景声音下。
如图3所示,被掩蔽信号(Masked Sound)频率为160Hz,声压级为39dB,在安静环境下,该信号能被感知到,因为它的声压已经超过听阈;当频率为250Hz、声压级为66dB的掩蔽信号(Masker)存在时,掩蔽信号引起听阈移位,被掩蔽信号声压级低于听阈,导致该信号无法被感知。
声音在时域也存在掩蔽效应,声音的时域掩蔽是指一个瞬时声音使其前面或后面的声音变得不能被人听见的现象。
这种掩蔽造成的效应是,在掩蔽声音前面和后面的声压级都以指数下降。
2.3 MPEG-1 音频编码
MPEG-1是ISO的音频编码标准,一共有三层(Ⅰ、Ⅱ、Ⅲ),高层的编码复杂度比低层高,编码质量也更好,MPEG-1第三层就是MP3编码器。
MPEG-1是一种频域编码器,信号经过一组(M=32)带通滤波器后产生32个子带信号。使用合成滤波器组可将这些子带信号合成为几乎与原始信号相同的信号。
32个子带的带宽相等。譬如对于采样率为44.1kHz的信号,对应奈奎斯特频率为22.05kHz,每个子带的带宽为22050/32=689Hz,那么第一个子带的带宽范围为0-689Hz,第二个子带的带宽范围为689-1378Hz,依此类推。
信号经过短时傅里叶变换转到频域后,根据感知模型计算掩蔽音。如图7所示,实线为频域下的音频信号,o与x的标记代表计算得出的掩蔽音。
根据遮蔽音计算移位后的听阈,如图8所示,虚线为全局听阈。
听阈可以指导频谱的量化。如图9所示,声压级在听阈以下的成分可以置为0而不会对声音感知造成影响。我们知道在量化时会引入一个±1/2LSB(最低有效位)以内的量化噪声,量化步长(quantization step size)越大,压缩率越高,引入的量化噪声也越大。通过保证量化噪声不超过全局听阈,就可以选择一个尽可能大的量化步长,而不会影响音质。
参考文献
[1] Steven W.Smith.Digital Signal Processing[M]
[2] Lawrence R.Rabiner, Ronald W.Schafer.Theory and Applications of Digital Speech Processing[M]