第9章 MPEG声音
与前面章节介绍的波形声音压缩编码(如ADPCM)和参数编码(如LPC)不同,MPEG-1和MPEG-2的声音数据压缩编码不是依据波形本身的相关性和模拟人的发音器官的特性,而是利用人的听觉系统的特性来达到压缩声音数据的目的,这种压缩编码称为感知声音编码(perceptual audio coding)。进入20世纪80年代之后,尤其最近几年,人类在利用自身的听觉系统的特性来压缩声音数据方面取得了很大的进展,先后制定了MPEG-1 Audio, MPEG-2 Audio和MPEG-2 AAC等标准。
本章涉及的许多具体算法已经超出本教材的要求。对于要求深入钻研的读者,请参考本章提供的参考文件或者浏览网址。
9.1 听觉系统的感知特性
许多科学工作者一直在研究听觉系统对声音的感知特性,下面介绍已经用在MPEG Audio压缩编码算法中的三个特性:响度、音高和掩蔽效应。
9.1.1. 对响度的感知
声音的响度就是声音的强弱。在物理上,声音的响度使用客观测量单位来度量,即dyn/cm2(达因/平方厘米)(声压)或W/cm2(瓦特/平方厘米)(声强)。在心理上,主观感觉的声音强弱使用响度级“方(phon)”或者“宋(sone)”来度量。这两种感知声音强弱的计量单位是完全不同的两种概念,但是它们之间又有一定的联系。
当声音弱到人的耳朵刚刚可以听见时,我们称此时的声音强度为“听阈”。例如,1 kHz纯音的声强达到10-16w/cm2(定义成零dB声强级)时,人耳刚能听到,此时的主观响度级定为零方。实验表明,听阈是随频率变化的。测出的“听阈—频率”曲线如图9-01所示。图中最靠下面的一根曲线叫做“零方等响度级”曲线,也称“绝对听阈”曲线,即在安静环境中,能被人耳听到的纯音的最小值。
另一种极端的情况是声音强到使人耳感到疼痛。实验表明,如果频率为1 kHz的纯音的声强级达到120 dB左右时,人的耳朵就感到疼痛,这个阈值称为“痛阈”。对不同的频率进行测量,可以得到“痛阈—频率”曲线,如图9-01中最靠上面所示的一根曲线。这条曲线也就是120方等响度级曲线。
在“听阈—频率”曲线和“痛阈—频率”曲线之间的区域就是人耳的听觉范围。这个范围内的等响度级曲线也是用同样的方法测量出来的。由图9-01可以看出,1 kHz的10 dB的声音和200 Hz的30 dB的声音,在人耳听起来具有相同的响度。
图9-01 “听阈—频率”曲线
图9-01说明人耳对不同频率的敏感程度差别很大,其中对2 kHz~4 kHz范围的信号最为敏感,幅度很低的信号都能被人耳听到。而在低频区和高频区,能被人耳听到的信号幅度要高得多。
9.1.2. 对音高的感知
客观上用频率来表示声音的音高,其单位是Hz。而主观感觉的音高单位则是“美(Mel)”,主观音高与客观音高的关系是
Mel=1000 log2( 1+f )
其中f的单位为Hz,这也是两个既不相同又有联系的单位。
人耳对响度的感觉有一个范围,即从听阈到痛阈。同样,人耳对频率的感觉也有一个范围。人耳可以听到的最低频率约20 Hz,最高频率约18000 Hz。正如测量响度时是以1 kHz纯音为基准一样,在测量音高时则以40 dB声强为基准,并且同样由主观感觉来确定。
测量主观音高时,让实验者听两个声强级为40 dB的纯音,固定其中一个纯音的频率,调节另一个纯音的频率,直到他感到后者的音高为前者的两倍,就标定这两个声音的音高差为两倍。实验表明,音高与频率之间也不是线性关系。测出的“音高—频率”曲线如图9-02所示。
图9-02 “音高—频率”曲线
9.1.3. 掩蔽效应
一种频率的声音阻碍听觉系统感受另一种频率的声音的现象称为掩蔽效应。前者称为掩蔽声音(masking tone),后者称为被掩蔽声音(masked tone)。掩蔽可分成频域掩蔽和时域掩蔽。
1. 频域掩蔽
一个强纯音会掩蔽在其附近同时发声的弱纯音,这种特性称为频域掩蔽,也称同时掩蔽(simultaneous masking)。如图9-03所示,一个声强为60 dB、频率为1000 Hz的纯音,另外还有一个1100 Hz的纯音,前者比后者高18 dB,在这种情况下我们的耳朵就只能听到那个1000 Hz的强音。如果有一个1000 Hz的纯音和一个声强比它低18 dB的2000 Hz的纯音,那么我们的耳朵将会同时听到这两个声音。要想让2000 Hz的纯音也听不到,则需要把它降到比1000 Hz的纯音低45 dB。一般来说,弱纯音离强纯音越近就越容易被掩蔽。
图9-03 声强为60 dB、频率为1000 Hz纯音的掩蔽效应
在图9-04中的一组曲线分别表示频率为250 Hz、1 kHz、4 kHz和8 kHz纯音的掩蔽效应,它们的声强均为60 dB。从图中可以看到:①在250 Hz、1 kHz、4 kHz和8 kHz纯音附近,对其他纯音的掩蔽效果最明显,②低频纯音可以有效地掩蔽高频纯音,但高频纯音对低频纯音的掩蔽作用则不明显。
图9-04 不同纯音的掩蔽效应曲线
由于声音频率与掩蔽曲线不是线性关系,为从感知上来统一度量声音频率,引入了“临界频带(critical band)”的概念。通常认为,在20 Hz到16 kHz范围内有24个临界频带,如表9-01所示。临界频带的单位叫Bark(巴克),
1 Bark = 一个临界频带的宽度
f(频率)< 500 Hz的情况下, 1 Bark >> f/100
f(频率) > 500 Hz的情况下, 1Bark >> 9 + 4log(f/1000)
以上我们讨论了响度、音高和掩蔽效应,尤其是人的主观感觉。其中掩蔽效应尤为重要,它是心理声学模型的基础。
表9-01 临界频带[16]
临界 | 频率 (Hz) | 临界 | 频率 (Hz) | ||||
频带 | 低端 | 高端 | 宽度 | 频带 | 低端 | 高端 | 宽度 |
0 | 0 | 100 | 100 | 13 | 2000 | 2320 | 320 |
1 | 100 | 200 | 100 | 14 | 2320 | 2700 | 380 |
2 | 200 | 300 | 100 | 15 | 2700 | 3150 | 450 |
3 | 300 | 400 | 100 | 16 | 3150 | 3700 | 550 |
4 | 400 | 510 | 110 | 17 | 3700 | 4400 | 700 |
5 | 510 | 630 | 120 | 18 | 4400 | 5300 | 900 |
6 | 630 | 770 | 140 | 19 | 5300 | 6400 | 1100 |
7 | 770 | 920 | 150 | 20 | 6400 | 7700 | 1300 |
8 | 920 | 1080 | 160 | 21 | 7700 | 9500 | 1800 |
9 | 1080 | 1270 | 190 | 22 | 9500 | 12000 | 2500 |
10 | 1270 | 1480 | 210 | 23 | 12000 | 15500 | 3500 |
11 | 1480 | 1720 | 240 | 24 | 15500 | 22050 | 6550 |
12 | 1720 | 2000 | 280 |
|
|
|
|
2. 时域掩蔽
9.3 MPEG-1 Audio
9.3.1 声音编码
声音的数据量由两方面决定:采样频率和样本精度。对单声道信号而言,每秒钟的数据量(位数)=采样频率´ 样本精度。要减小数据量,就需要降低采样频率或者降低样本精度。但是人耳可听到的频率范围大约是20 Hz~20 kHz。根据奈奎斯特理论,要想不失真地重构信号,采样频率不能低于40 kHz。再考虑到实际中使用的滤波器都不可能是理想滤波器,以及考虑各国所用的交流电源的频率,为保证声音频带的宽度,所以采样频率一般不能低于44.1 kHz。这样,压缩就必须从降低样本精度这个角度出发,即减少每位样本所需要的位数。
第3章介绍了线性预测编码(linear predictive coding,LPC)的方法,这种方法主要是针对话音的编码,这种编码方法称为音源特定编码法(source specific methods)。MPEG-1和MPEG-2的声音压缩采用了另一种方法,称为子带编码(sub-band coding,SBC)方法,这也是一种功能很强而且很有效的声音信号编码方法。与音源特定编码法不同,SBC不局限于只对话音进行编码,也不局限于哪一种声源。这种方法的具体思想是首先把时域中的声音数据变换到频域,对频域内的子带分量分别进行量化和编码,然后根据心理声学模型确定样本的精度,从而达到压缩数据量的目的。
MPEG声音数据压缩的基础是量化。虽然量化会带来失真,但MPEG标准要求量化失真对于人耳来说是感觉不到的。在MPEG标准的制定过程中,MPEG-Audio委员会作了大量的主观测试实验。实验表明,采样频率为48 kHz、样本精度为16比特的声音数据压缩到256 kb/s时,即在6:1的压缩率下,即使是专业测试员也很难分辨出是原始声音还是编码压缩后的声音。
MPEG Audio是一个子带编码系统,声音数据压缩算法的根据是心理声学模型,心理声学模型中一个最基本的概念是听觉系统中存在一个听觉阈值电平,低于这个电平的声音信号就听不到。听觉阈值的大小随声音频率的改变而改变,各个人的听觉阈值也不同。大多数人的听觉系统对2 kHz~5 kHz之间的声音最敏感。一个人是否能听到声音取决于声音的频率,以及声音的幅度是否高于这种频率下的听觉阈值。
心理声学模型中的另一个概念是听觉掩饰特性,意思是听觉阈值电平是自适应的,即听觉阈值电平会随听到的频率不同的声音而发生变化。例如,在一般环境下房间里的普通谈话可以听得很清楚,但在摇滚乐环境下同样的普通谈话就听不清楚了。声音压缩算法也同样可以确立这种特性的模型,根据这个模型可取消冗余的声音数据。MPEG Audio的压缩算法框图如图9-06所示。
图9-06 MPEG Audio压缩算法框图
Dolby AC-3同样利用人的听觉系统特性来压缩声音数据,它的压缩编码算法框图如图9-07所示。有兴趣的读者请浏览网址:http://atsc.org/stan&rps.html (浏览日期:1999年2月3日)
图9-07 Dolby AC-3压缩编码算法框图
9.3.2 声音的性能
目前,除了Dolby公司的数字声音数据压缩编码算法AC-3(Audio Code Number 3)之外,其他的声音压缩算法主要是针对话音。例如,m-law,A-Law,ADPCM(adaptive difference pulse code modulation),GSM(Global System for Mobile communications)、CELP(code excited linear prediction)和MELP(mixed excitation linear prediction)等算法。当这些算法用来压缩宽带声音(如音乐)信号时,在相同压缩比的情况下,输出的声音质量比较低。而MPEG声音(ISO/IEC 11172-3)压缩算法是世界上第一个高保真声音数据压缩国际标准,并且得到了极其广泛的应用。虽然MPEG声音标准是MPEG标准的一部分,但它也完全可以独立应用。MPEG-1声音标准的主要性能如下:
(1) 如图9-08所示,MPEG编码器的输入信号为线性PCM信号,采样率为32, 44.1或48 kHz,输出为32 kb/s~384 kb/s。
图9-08 MPEG编码器的输入/输出
(2) MPEG声音标准提供三个独立的压缩层次:层1(Layer 1)、层2(Layer 2)和层3(Layer 3),用户对层次的选择可在复杂性和声音质量之间进行权衡。
① 层1的编码器最为简单,编码器的输出数据率为384 kb/s,主要用于小型数字盒式磁带(digital compact cassette,DCC)。
② 层2的编码器的复杂程度属中等,编码器的输出数据率为256 kb/s~192 kb/s,其应用包括数字广播声音(digital broadcast audio,DBA)、数字音乐、CD-I(compact disc-interactive)和VCD(video compact disc)等。
③ 层3的编码器最为复杂,编码器的输出数据率为64 kb/s,主要应用于ISDN上的声音传输。
在尽可能保持CD音质为前提的条件下,MPEG声音标准一般所能达到的压缩率如表9-02所示,从编码器的输入到输出的延迟时间如表9-03所示。
表9-02 MPEG声音的压缩率
层次 | 算法 | 压缩率 | 立体声信号所对应的位率( kb/s) |
1 | MUSICAM* | 4:1 | 384 |
2 | MUSICAM* | 6:1 ~ 8:1 | 256 ~ 192 |
3 | ASPEC** | 10:1 ~ 12:1 | 128 ~ 112 |
* MUSICAM(Masking pattern adapted Universal Subband Integrated Coding And Multiplexing) 自适应声音掩蔽特性的通用子带综合编码和复合技术
** ASPEC(Adaptive Spectral Perceptual Entropy Coding of high quality musical signal) 高质量音乐信号自适应谱感知熵编码(技术)
表9-03 MPEG编码解码器的延迟时间
延迟时间 | 理论最小值( ms) | 实际实现中的一般值( ms) |
层1(Layer 1) | 19 | < 50 |
层2(Layer 2) | 35 | 100 |
层3(Layer 3) | 59 | 150 |
(3) 可预先定义压缩后的数据率,如表9-04所示。另外,MPEG声音标准也支持用户预定义的数据率。
表9-04 MPEG层3在各种数据率下的性能:
音质要求 | 声音带宽(kHz) | 方式 | 数据率( kb/s) | 压缩比 |
电话 | 2.5 | 单声道 | 8 | 96:1 |
优于短波 | 5.5 | 单声道 | 16 | 48:1 |
优于调幅广播 | 7.5 | 单声道 | 32 | 24:1 |
类似于调频广播 | 11 | 立体声 | 56 ~ 64 | 26 ~ 24:1 |
接近CD | 15 | 立体声 | 96 | 16:1 |
CD | > 15 | 立体声 | 112 ~ 128 | 12 ~ 10 :1 |
(4) 编码后的数据流支持循环冗余校验CRC(cyclic redundancy check)。
(5) MPEG声音标准还支持在数据流中添加附加信息。
9.3.3 子带编码
在第三章已经介绍了子带编码的基本思想,MPEG-1使用子带编码来达到既压缩声音数据又尽可能保留声音原有质量的目的。听觉系统有许多特性,子带编码的理论根据是听觉系统的掩蔽特性,并且主要是利用频域掩蔽特性。SBC的基本想法就是在编码过程中保留信号的带宽而扔掉被掩蔽的信号,其结果是编码之后还原的声音,也就是解码或者叫做重构的声音信号与编码之前的声音信号不相同,但人的听觉系统很难感觉到它们之间的差别。这也就是说,对听觉系统来说这种压缩是“无损压缩”。
大多数SBC编码器都使用如图9-09所示的结构,这也是MPEG-1声音编码器的结构图。输入声音信号经过一个“时间-频率多相滤波器组”变换到频域里的多个子带中。输入声音信号同时经过“心理声学模型(计算掩蔽特性)”,该模型计算以频率为自变量的噪声掩蔽阈值(masking threshold),查看输入信号和子带中的信号以确定每个子带里的信号能量与掩蔽阈值的比率。“量化和编码”部分用信掩比(signal-to-mask ratio,SMR)来决定分配给子带信号的量化位数,使量化噪声低于掩蔽阈值。最后通过“数据流帧包装”将量化的子带样本和其他数据按照规定的称为“帧(frame)”的格式组装成位数据流。
信掩比是指最大的信号功率与全局掩蔽阈值之比,图9-10表示了某个子带中的信掩比。
图9-09 MPEG声音编码器结构图
SNR(signal noise ratio) —— 信号噪声比
SMR(signal-to-mask ratio) —— 信号掩蔽比
NMR(noise-to-mask ratio) —— 噪声掩蔽比
图9-10 掩蔽阈值和SMR
图9-11是MPEG-1声音解码器的结构图。解码器对位数据流进行解码,恢复被量化的子带样本值以重建声音信号。由于解码器无需心理声学模型,只需拆包、重构子带样本和把它们变换回声音信号,因此解码器就比编码器简单得多。
图9-11 MPEG声音解码器结构图
9.3.4 多相滤波器组
在图9-09中,用来分割子带也就是时间-频率变换部件是一个多相滤波器组。在MPEG-1中,多相滤波器组是MPEG声音压缩的关键部分部件之一,它把输入信号变换到32个频域子带中去。子带的划分方法有两种,一种是线性划分,另一种是非线性划分。如果把声音频带划分成带宽相等的子带,这种划分就不能精确地反映人耳的听觉特性,因为人耳的听觉特性是以“临界频带”来划分的,在一个临界频带之内,很多心理声学特性都是一样的。图9-12对多相滤波器组的带宽和临界频带的带宽作了比较。从图中可以看到,在低频区域,一个子带覆盖好几个临界频带。在这种情况下,某个子带中量化器的比特分配就不能根据每个临界频带的掩蔽阈值进行分配,而要以其中最低的掩蔽阈值为准。
如果需要具体计算多相滤波器组的输出信号,请参看参考文献和站点[1]
图9-12 滤波器组的带宽与临界频带带宽的比较[1]
9.3.5 编码层
MPEG声音压缩定义了3个分明的层次,它们的基本模型是相同的。层1是最基础的,层2和层3都在层1的基础上有所提高。每个后继的层次都有更高的压缩比,但需要更复杂的编码解码器。MPEG声音的每一个层都自含SBC编码器,其中包含如图9-09所示的“时间-频率多相滤波器组”、“心理声学模型(计算掩蔽特性)”、“量化和编码”和“数据流帧包装”,而高层SBC可使用低层SBC编码的声音数据。
MPEG的声音数据分成帧(frame),层1每帧包含384个样本的数据,每帧由32个子带分别输出的12个样本组成。层2和层3每帧为1152个样本,如图9-13所示。
图9-13 层1、2和层3的子带样本
MPEG编码器的输入以12个样本为一组,每组样本经过时间-频率变换之后进行一次比特分配并记录一个比例因子(scale factor)。比特分配信息告诉解码器每个样本由几位表示,比例因子用6比特表示,解码器使用这个6比特的比例因子乘逆量化器的每个输出样本值,以恢复被量化的子带值。比例因子的作用是充分利用量化器的量化范围,通过比特分配和比例因子相配合,可以表示动态范围超过120 DB的样本。
1. 层1
层1和层2的比较详细的框图如图9-14所示。层1的子带是频带相等的子带,它的心理声学模型仅使用频域掩蔽特性。层1的“时间-频率多相滤波器组”使用类似于离散余弦变换DCT(discrete cosine transform)的分析滤波器组进行变换,以获得详细的信号频谱信息。根据信号的频率、强度和音调,滤波器组的输出可用来找出掩蔽阈值,然后组合每个子带的单个掩蔽阈值以形成全局的掩蔽阈值。使用这个阈值与子带中的最大信号进行比较,产生信掩比SMR之后再输入到“量化和编码器”。
“量化和编码器”首先检查每个子带的样本,找出这些样本中的最大的绝对值,然后量化成6比特,这个比特数称为比例因子(scale factor)。“量化和编码器”然后根据SMR确定每个子带的比特分配(bit allocation),子带样本按照比特分配进行量化和编码。对被高度掩蔽的子带自然就不需要对它进行编码。
图9-14 ISO/MPEG audio层1和层2编码器和解码器的结构
“数据流帧包装”按规定的帧格式进行包装,实际上就是一个多路复合器MUX。层1的帧结构如图9-15所示。每帧都包含:①用于同步和记录该帧信息的同步头,长度为32比特,它的结构如图9-16所示,②用于检查是否有错误的循环冗余码CRC(cyclic redundancy code),长度为16比特,③用于描述比特分配的比特分配域,长度为4比特,④比例因子域,长度为6比特,⑤子带样本域,⑥有可能添加的附加数据域,长度未规定。
图9-15 层1的帧结构
图9-16 MPEG声音比特流同步头的格式
2. 层2
图9-17 层2比特流数据格式
3. 层3
层3使用比较好的临界频带滤波器,把声音频带分成非等带宽的子带,心理声学模型除了使用频域掩蔽特性和时间掩蔽特性之外,还考虑了立体声数据的冗余,并且使用了霍夫曼(Huffman)编码器。层3编码器的详细框图如图9-18所示。
图9-18 ISO/MPEG audio层3编码器和解码器的结构
层3使用了从ASPEC(Audio Spectral Perceptual Entropy Encoding)和OCF(Optimal Coding In The Frequency domain)导出的算法,比层1和层2都要复杂。虽然层3所用的滤波器组与层1和层2所用的滤波器组的结构相同,但是层3还使用了改进离散余弦变换(modified discrete cosine transform,MDCT),对层1和层2的滤波器组的不足作了一些补偿。MDCT把子带的输出在频域里进一步细分以达到更高的频域分辨率。而且通过对子带的进一步细分,层3编码器已经部分消除了多相滤波器组引入的混迭效应。
层3指定了两种MDCT的块长:长块的块长为18个样本,短块的块长为6个样本,相邻变换窗口之间有50%的重叠。长块对于平稳的声音信号可以得到更高的频域分辨率,而短块对跳变的声音信号可以得到更高的时域分辨率。在短块模式下,3个短块代替1个长块,而短块的大小恰好是一个长块的1/3,所以MDCT的样本数不受块长的影响。对于给定的一帧声音信号,MDCT可以全部使用长块或全部使用短块,也可以长短块混合使用。因为低频区的频域分辨率对音质有重大影响,所以在混合块长模式下,MDCT对最低频的2个子带使用长块,而对其余的30个子带使用短块。这样,既能保证低频区的频域分辨率,又不会牺牲高频区的时域分辨率。长块和短块之间的切换有一个过程,一般用一个带特殊长转短或短转长数据窗口的长块来完成这个长短块之间的切换。
除了使用MDCT外,层3还采用了其他许多改进措施来提高压缩比而不降低音质。虽然层3引入了许多复杂的概念,但是它的计算量并没有比层2增加很多。增加的主要是编码器的复杂度和解码器所需要的存储容量。
9.4 MPEG-2 Audio
MPEG-2标准委员会定义了两种声音数据压缩格式,一种称为MPEG-2 Audio,或者称为MPEG-2多通道(Multichannel)声音,因为它与MPEG-1 Audio是兼容的,所以又称为MPEG-2 BC (Backward Compatible)。另一种称为MPEG-2 AAC (Advanced Audio Coding),因为它与MPEG-1声音格式不兼容,因此通常称为非后向兼容MPEG-2 NBC(Non-Backward-Compatible)标准。这节先介绍MPEG-2 Audio。
MPEG-2 Audio(ISO/IEC 13818-3)和MPEG-1 Audio(ISO/IEC 1117-3)标准都使用相同种类的编译码器,层-1, -2和-3的结构也相同。MPEG-2声音标准与MPEG-1标准相比,MPEG-2做了如下扩充:①增加了16 kHz, 22.05 kHz和24 kHz采样频率,②扩展了编码器的输出速率范围,由32~384 kb/s扩展到8~640 kb/s,③增加了声道数,支持5.1声道和7.1声道的环绕声。此外MPEG-2还支持Linear PCM(线性PCM)和Dolby AC-3(Audio Code Number 3)编码。它们的差别如表9-05所示。
表9-05 MPEG-1和-2的声音数据规格
参数名称 | Linear PCM | Dolby AC-3 | MPEG-2 Audio | MPEG-1 Audio |
采用频率 | 48/96 kHz | 32/44.1/48 kHz | 16/22.05/24/ 32/44.1/48 kHz | 32/44.1/48 kHz |
样本精度 | 16/20/24 | 压缩(16 bits) | 压缩(16 bits) | 16 |
最大数据传输率 | 6.144 Mb/s | 448 kb/s | 8~640 kb/s | 32~448 kb/s |
最大声道数 | 8 | 5.1 | 5.1/7.1 | 2 |
MPEG-2 Audio的“5.1环绕声”也称为“3/2-立体声加LFE”,其中的“.1”就是指LFE声道。它的含义是播音现场的前面可有3个喇叭声道(左、中、右),后面可有2个环绕声喇叭声道,LFE(low frequency effects)是低频音效的加强声道,如图9-19(a)所示。7.1声道环绕立体声与5.1类似,如图9-19(b)所示。
图9-19(a) 5.1声道立体环绕声
图9-19(b) 7.1声道立体环绕声
Dolby AC-3支持5个声道(左、中、右、左环绕、右环绕和0.1 kHz以下的低音音效声道),声音样本的精度为20比特,每个声道的采样率可以是32 kHz, 44.1 kHz或者48 kHz。
MPEG-2声音标准的第3部分(Part 3)是MPEG-1声音标准的扩展,扩展部分就是多声道扩展(multichannel extension),如图9-20所示。这个标准称为MPEG-2后向兼容多声道声音编码(MPEG-2 backwards compatible multichannel audio coding)标准,简称为MPEG-2 BC。
图9-20 MPEG-2 Audio的数据块
(引自 ISO/IEC 13818-3)
9.5 MPEG-2 AAC
9.5.1 MPEG-2 AAC是什么
MPEG-2 AAC是MPEG-2标准中的一种非常灵活的声音感知编码标准。就像所有感知编码一样,MPEG-2 AAC主要使用听觉系统的掩蔽特性来减少声音的数据量,并且通过把量化噪声分散到各个子带中,用全局信号把噪声掩蔽掉。
AAC支持的采用频率可从8 kHz到96 kHz,AAC编码器的音源可以是单声道的、立体声的和多声道的声音。AAC标准可支持48个主声道、16个低频音效加强通道LFE (low frequency effects)、16个配音声道(overdub channel)或者叫做多语言声道(multilingual channel)和16个数据流。MPEG-2 AAC在压缩比为11:1,即每个声道的数据率为(44.1×16 )/11=64 kb/s,而5个声道的总数据率为320 kb/s的情况下,很难区分还原后的声音与原始声音之间的差别。与MPEG的层2相比,MPEG-2 AAC的压缩率可提高1倍,而且质量更高,与MPEG的层3相比,在质量相同的条件下数据率是它的70%。
9.5.2 MPEG-2 AAC的配置
开发MPEG-2 AAC标准采用的方法与开发MPEG Audio标准采用的方法不同。后者采用的方法是对整个系统进行标准化,而前者采用的方法是模块化的方法,把整个AAC系统分解成一系列模块,用标准化的AAC工具(advanced audio coding tools)对模块进行定义,因此在文献中往往把“模块(modular)”与“工具(tool)”等同对待。
AAC定义的编码和解码的基本结构如图9-21和图9-22所示。AAC标准定义了三种配置:基本配置、低复杂性配置和可变采样率配置:
1. 基本配置(Main Profile):
在这种配置中,除了“增益控制(Gain Control)”模块之外,AAC系统使用了图中所示的所有模块,在三种配置中提供最好的声音质量,而且AAC的解码器可以对低复杂性配置编码的声音数据进行解码,但对计
2. 低复杂性配置(Low Complexity Profile):
在这种配置中,不使用预测模块和预处理模块,瞬时噪声定形(temporal noise shaping,TNS)滤波器的级数也有限,这就使声音质量比基本配置的声音质量低,但对计算机的存储器和处理能力的要求可明显减少。
3. 可变采样率配置(Scalable Sampling Rate Profile):
在这种配置中,使用增益控制对信号作预处理,不使用预测模块,TNS滤波器的级数和带宽也都有限制,因此它比基本配置和低复杂性配置更简单,可用来提供可变采样频率信号。
图9-21 MPEG-2 AAC编码器框图
图9-22 MPEG-2 AAC解码器框图
9.5.3 MPEG-2 AAC的基本模块
文献[2]对MPEG-2 AAC编码器和解码器的结构和计算方法做了非常详细的介绍,它们的框图分别示于图9-21和图9-22。现将其中的几个模块作一些说明。
1. 增益控制(Gain control)
增益控制模块用在可变采样率配置中,它由多相正交滤波器PQF(polyphase quadrature filter)、增益检测器(gain detector)和增益修正器(gain modifier)组成。这个模块把输入信号分离到4个相等带宽的频带中。在解码器中也有增益控制模块,通过忽略PQF的高子带信号获得低采样率输出信号。
2. 滤波器组(Filter Bank)
滤波器组是把输入信号从时域变换到频域的转换模块,它是MPEG-2 AAC系统的基本模块。这个模块采用了改进离散余弦变换MDCT,它是一种线性正交交迭变换,使用了一种称为时域混迭取消TDAC(time domain aliasing cancellation)技术。
MDCT使用KBD(Kaiser-Bessel derived)窗口或者使用正弦(sine)窗口,正向MDCT变换可使用下式表示:
逆向MDCT变换可使用下式表示:
k=0,…, N-1
其中,
n=样本号,
N=变换块长度,
i=块号
。
3. 瞬时噪声定形TNS
在感知声音编码中,TNS模块是用来控制量化噪声的瞬时形状的一种方法,解决掩蔽阈值和量化噪声的错误匹配问题。这种技术的基本想法是,在时域中的音调声信号在频域中有一个瞬时尖峰,TNS使用这种双重性来扩展已知的预测编码技术,把量化噪声置于实际的信号之下以避免错误匹配。
4. 联合立体声编码
联合立体声编码(joint stereo coding)是一种空间编码技术,其目的是为了去掉空间的冗余信息。MPEG-2 AAC系统包含两种空间编码技术:M/S编码(Mid/Side encoding)和声强/耦合(Intensity /Coupling)。
M/S编码使用矩阵运算,因此把M/S编码称为矩阵立体声编码(matrixed stereo coding)。M/S编码不传送左右声道信号,而是使用标称化的“和”信号与“差”信号,前者用于中央M(middle)声道,后者用于边S(side)声道,因此M/S编码也叫做“和-差编码(sum-difference coding)”。
声强/耦合编码的名称也很多,有的叫做声强立体声编码(intensity stereo coding),或者叫做声道耦合编码(channel coupling coding),它们探索的基本问题是声道间的不相关性(irrelevance)。
5. 预测(Prediction)
这是在话音编码系统中普遍使用的一种技术,它主要用来减少平稳(stationary)信号的冗余度。
6. 量化器(Quantizer)
使用了非均匀量化器。
7. 无噪声编码(Noiseless coding)
无噪声编码实际上就是霍夫曼编码,它对被量化的谱系数、比例因子和方向信息进行编码。
9.6 MPEG-4 Audio
MPEG-4 Audio标准可集成从话音到高质量的多通道声音,从自然声音到合成声音,编码方法还包括参数编码(parametric coding),码激励线性预测(code excited linear predictive,CELP)编码,时间/频率T/F(time/frequency)编码,结构化声音SA(structured audio)编码和文本-语音TTS(text-to-speech)系统的合成声音等。
9.6.1 自然声音
MPEG-4声音编码器支持数据率介于2 kb/s和64 kb/s之间的自然声音(natural audio)。为了获得高质量的声音,MPEG-4定义了三种类型的声音编码器分别用于不同类型的声音,它的一般编码方案如图9-23所示。
1. 参数编码器
使用声音参数编码技术。对于采样率为8 kHz的话音(speech),编码器的输出数据率为2~4 kb/s;对于采样频率为8 kHz或者16 kHz的声音(audio),编码器的输出数据率为4~16 kb/s。
2. CELP编码器
使用CELP(code excited linear predictive)技术。编码器的输出数据率在6~24 kb/s之间,它用于采样频率为8 kHz的窄带话音或者采样频率为16 kHz的宽带话音。
3. T/F编码器
使用时间-频率(time-to-frequency,T/F)技术。这是一种使用矢量量化(vector quantization,VQ)和线性预测的编码器,压缩之后输出的数据率大于16 kb/s,用于采样频率为8 kHz的声音信号。
* UMTS (universal mobile telecommunication system) 通用移动远程通信系统
图9-23 MPEG-4 Audio编码方框图(引自参考文献[7])
9.6.2 合成声音
MPEG-4的译码器支持合成乐音和TTS声音。合成乐音通常叫做MIDI(Musical Instrument Data Interface)乐音,这种声音是在乐谱文件或者描述文件控制下生成的声音,乐谱文件是按时间顺序组织的一系列调用乐器的命令,合成乐音传输的是乐谱而不是声音波形本身或者声音参数,因此它的数据率可以相当低。随着科学技术突飞猛进的发展,尤其是网络技术的迅速崛起和飞速发展,文-语转换TTS(text to speech)系统在人类社会生活中有着越来越广泛的应用前景,已经逐渐变成相当普遍的接口,并且在各种多媒体应用领域开始扮演重要的角色。TTS编码器的输入可以是文本或者带有韵律参数的文本,编码器的输出数据率可以在200 bps ~ 1.2 kb/s范围里。
1. MIDI合成声音
MIDI是1983年制定的乐器和计算机的标准语言,是一套指令即命令的约定,它指示乐器即MIDI设备要做什么和怎么做,如播放音符、加大音量、生成音响效果等。MIDI不是声音信号,在MIDI电缆上传送的不是声音,而是发给MIDI设备或其它装置让它产生声音或执行某个动作的指令。由于MIDI具有控制设备的功能,因此它不仅用于乐器,而且越来越多的应用正在被发掘。详见“2.6 MIDI系统”。
2. 文-语转换
文-语转换是将文本形式的信息转换成自然语音的一种技术,其最终目标是使计算机输出清晰而又自然的声音,也就是说,要使计算机像人一样,根据文本的内容可带各种情调来朗读任意的文本。TTS是一个十分复杂的系统,涉及到语言学、语音学、信号处理、人工智能等诸多的学科。
由于TTS系统具有巨大的应用潜力和商业价值,许多研究机构都在从事这方面的研究。目前的TTS系统一般能够较为准确清晰地朗读文本,但是不太自然。TTS系统最根本的问题便在于它的自然度,自然度是衡量一个TTS系统好坏的最重要指标。人们是无法忍受与自然语音相差甚远的语音,自然度问题已经成为严重阻碍TTS系统的推广和应用的桎梏。因此,研究更好的文语转换方法,提高合成语音的自然度就成为当务之急。
一个相当完整的TTS系统如图9-24所示。尽管现有的TTS系统结构各异,转换方法不同,但是基本上可以分成两个相对独立的部分。在图中,虚线左边的部分是文本分析部分,通过对输入文本进行词法分析、语法分析,甚至语义分析,从文本中抽取音素和韵律等发音信息。虚线右边的部分是语音合成部分,它使用从文本分析得到的发音信息去控制合成单元的谱特征(音色)和韵律特征(基频、时长和幅度),送入声音合成器(软件或硬件)产生相应的语音输出。
图9-24 TTS系统方框图
在汉语TTS系统中,汉语语音的传统分析方法是将一个汉语的音节分为声母和韵母两部分。声母是音节开头的辅音,韵母是音节中声母以外的部分。声母不等同于辅音,韵母不等同于元音。另外,音调具有辨义功能,这也是汉语语音的一大特点。可以说,声母、韵母和声调是汉语语音的三要素。
汉语的音节一般由声母、韵母和声调三部分组成。汉语有21个声母,39个韵母,4个声调。共能拼出400多个无调音节,1200多个有调音节。除个别情况外,一个汉字就是一个音节,但是一个音节往往对应多个汉字,这就是汉语中的多音字现象。汉字到其发音的转换一般可以借助一张一一对应的表来实现,但对多音字的读音,一般要依据它所在的词来判断,有的还要借助语法甚至语义分析,依据语义或者上下文来判断。在汉语TTS系统中,分词是基础,只有分词正确,才有可能正确地给多音字注音,正确地进行语法分析,获得正确的读音和韵律信息。
在我国,许多高等院校和科研单位先后开展了对汉语TTS系统的的研究工作,并取得了可喜的成绩,但在合成声音的自然度方面还有一段漫长的路要走。清华大学计算机系“智能技术与系统国家重点实验室”在20世纪90年代末期也加强了对汉语TTS的研究工作,从语言学、语音学、信号处理和人工智能等方面进行综合研究,重点是提高汉语TTS系统输出的声音的自然度。
练习与思考题
1. 列出你所知道的听觉系统的特性。
2. 什么叫做听阈?什么叫做痛阈?
3. 什么叫做频域掩蔽?什么叫做时域掩蔽?
4. MPEG-1的层1、2和3编码器的声音输出速率范围分别是多少?
5. MPEG-1的声音质量是: AM FM 电话 near-CD CD-DA
6. 什么叫做5.1声道立体环绕声?什么叫做7.1声道立体环绕声?
7. 简述MPEG-2 AAC的特性。
8. 什么叫做自然声音?什么叫做合成声音?
9. 什么叫做TTS?至少列举TTS的3个潜在应用例子。
参考文献和站点
- Davis Pan. A Tutorial on MPEG/Audio Compression. IEEE Multimedia,1995, pp60-74
- Bosi Metal. ISO/IEC MPEG-2 Advanved Audio Coding. Journal of the Audio Engineering Society, No. 10, Oct 1997, pp789-813
- Princen J, Bradley A. Analysis/Synthesis Filter Bank Design Based on Time Domain Aliasing Cancellation. IEEE Transactions, ASSP-34, No.5, Oct 1986, pp 1153-1161
- Princen J, Johnson A, Bradley A. Subband/Transform Coding Using Filter Bank Designs Based on Time Domain Aliasing Cancellation. Proc. of the ICASSP 1987, pp2161-2164
- Dennis H. Klatt. Review of text-to-speech conversion for English. J. Acoust. Soc. Am. 82(3), September 1987
- ISO/IEC JTC1/SC29/WG11. N2323, Overview of the MPEG-4 Standard. July 1998/Dublin
- MPEG-4 Audio文件:
① ISO/IEC FCD 14496-3,Information Technology - Very Low Bitrate Audio- Visual Coding,Part 3:Audio,Subpart 1:Main Document,1998-05-15
② ISO/IEC FCD 0.1 14496-3,Information Technology - Coding of Audiovisual Objects,Part 3:Audio,Subpart 2: Parametric Coding,1998-03-20
③ ISO/IEC FCD 14496-3,Information Technology - Coding of Audiovisual Objects,Part 3:Audio,Subpart 3:CELP,1998-05-15
④ ISO/IEC CD 14496-3,Information Technology - Coding of Audiovisual Objects,Part 3:Audio,Subpart 4:Time/Frequency Coding,1998-05-15.
⑤ ISO/IEC FCD 14496-3,Information Technology - Coding of Audiovisual Objects,Part 3:Audio,Subpart 5:Structured Audio,1998-05-15
⑥ ISO/IEC CD 14496-3,Information Technology - Coding of Audiovisual Objects,Part 3:Audio,Subpart 6 :Text-to-Speech, 1997-10-31 - http://www.mpeg.org/~tristan/MPEG/mp3.html(浏览日期:1999年2月)
- http://fas.sfu.ca/cs/undergrad/CourseMaterials/CMPT479/material/notes/Chap4/ (浏览日期:1999年2月)
- http://www.tnt.uni-hannover.de/project/mpeg/audio/ (浏览日期:1999年2月)
- http://drogo.cselt.stet.it/mpeg/#The_MPEG_standards (浏览日期:1999年2月)
- MPEG-Audio:http://www.tnt.uni-hannover.de/project/mpeg/audio/ (浏览日期:1999年2月)
- http://www.umiacs.umd.edu/~desin/Speech1/new.html (浏览日期:1999年2月)
- Kyoya Tsutsui, Hiroshi Suzuki, Osamu Shimoyoshi, Mito Sonohara, Kenzo Akagiri, Robert M. Heddle, ATRAC: Adaptive Transform Acoustic Coding for MiniDisc, Sony Corporate Research Laboratories.
http://www.amulation.co.uk/minidisc/minidisc/aes_atrac.html(浏览日期:1999年2月) - http://www.cselt.it/mpeg/standards/mpeg-2/mpeg-2.htm(浏览日期:1999年2月)
- Theile, G.Stoll and M.Link. Low bit-rate coding of high-quality audio signals - An introduction to the MASCAM system. EBU Review - Technical,Augst 1988,230.
- Yves Francois Dehery, Michel Lever and Pierre Urcum. A MUSICAM Source CODEC for Digital Audio Broadcasting and Storage. CH2977-7/91/0000-3605, IEEE 1991.
层2对层1作了一些直观的改进,相当于3个层1的帧,每帧有1152个样本。它使用的心理声学模型除了使用频域掩蔽特性之外还利用了时间掩蔽特性,并且在低、中和高频段对比特分配作了一些限制,对比特分配、比例因子和量化样本值的编码也更紧凑。由于层2采用了上述措施,因此所需的比特数减少了,这样就可以有更多的比特用来表示声音数据,音质也比层1更高。
层1是对一个子带中的一个样本组(由12个样本组成)进行编码,而层2和层3是对一个子带中的三个样本组进行编码。图9-13也表示了层2和层3的分组方法。
如图9-17所示,层2使用与层1相同的同步头和CRC结构,但描述比特分配的位数(即比特数)随子带不同而变化:低频段的子带用4比特,中频段的子带用3比特,高频段的子带用2比特。层2比特流中有一个比例因子选择信息(scale factor selection information,SCFSI)域,解码器根据这个域的信息可知道是否需要以及如何共享比例因子。 MPEG Audio标准在本书中是指MPEG-1 Audio、MPEG-2 Audio和MPEG-2 AAC,它们处理10 Hz~20000 Hz范围里的声音数据,数据压缩的的主要依据是人耳朵的听觉特性,使用“心理声学模型(psychoacoustic model)”来达到压缩声音数据的目的。
心理声学模型中一个基本的概念就是听觉系统中存在一个听觉阈值电平,低于这个电平的声音信号就听不到,因此就可以把这部分信号去掉。听觉阈值的大小随声音频率的改变而改变,各个人的听觉阈值也不同。大多数人的听觉系统对2 kHz~5 kHz之间的声音最敏感。一个人是否能听到声音取决于声音的频率,以及声音的幅度是否高于这种频率下的听觉阈值。
心理声学模型中的另一个概念是听觉掩饰特性,意思是听觉阈值电平是自适应的,即听觉阈值电平会随听到的不同频率的声音而发生变化。例如,同时有两种频率的声音存在,一种是1000 Hz的声音,另一种是1100 Hz的声音,但它的强度比前者低18分贝,在这种情况下,1100 Hz的声音就听不到。也许你有这样的体验,在一安静房间里的普通谈话可以听得很清楚,但在播放摇滚乐的环境下同样的普通谈话就听不清楚了。声音压缩算法也同样可以确立这种特性的模型来取消更多的冗余数据。
图9-05时域掩蔽