1.综述1.1背景早期的声音是用模拟信号的方式进行记录,并存储在磁盘和唱片上,这种方式能够准确地记录原声源的特性,并重放,但此方式不利于长期存储和复制。随着数字化音频编码技术的产生,可以将原始模拟信号进行数字化离散处理,再保存,在保证声音的音质同时,减小存储空间。发展过程中,越来越多的标准被制定出来。如(MP3)、AAC、DolbyAC-3、WMA等,其中MPEG组织制定的一系列音频编码标准占据主要地位,成为商业领域最广泛的音频编码技术,AAC是具有代表性的编码技术。MPEG先进音频编码技术(AdvancedAudioCoding,简称AAC)是在MP3(MPEG-1Layer3)基础上发展而来,出现于1997年,基于MPEG-2的音频编码技术。由FraunhoferIIS、杜比实验室、AT&T、Sony(新力)等公司共同开发。具有压缩比高、重建音质好、编码和解码过程高度模块化、以及声道配置灵活等特点。目前已被广泛应用于多媒体、信息通讯、网络广播电视等领域。1.2数字音频编码概述音频编码压缩算法是为了保证在重构的音频信号不失真的前提下,以尽量少的位数来描述原始音频信号,以便于有限地存储或传输高音质的音频信号。根据压缩编码原理的不同,可将音频编码方式分为四种,分别是波形编码、参数编码、混合编码和感知编码。对于不同的音频编码方式,其运算复杂度、重构信号的质量、压缩率、编码和解码的延迟等都会有很大的不同,因此它们的应用场合也不会相同。其中,感知编码主要是利用人耳听觉系统的心理声学特征,即人耳对音频信号的时间和频率的分辨能力是有限的,凡是人耳不能感知的成分不进行编码和传输,而人耳能够感知的部分运用心理声学原理进行压缩编码,并且在量化噪声低于掩蔽阈值的前提下允许有较大的量化失真。感知编码一方面运用信号的统计特性移除了信号之间的冗余度,另一方面利用了心理声学中的掩蔽特性去掉了人耳系统无法感知的部分,从而使信号得到进一步的压缩。这种编码方式尽管损失了一些音频成分,但它并没有影响音频信号的质量,因此它能够达到较高的压缩比。AAC音频编码属于感知编码,它是利用人耳听觉系统的掩蔽特性,编码过程中去除了人耳不能感知的那部分音频信号,量化时允许有较大的量化失真,并将其控制在掩蔽阈值之下,从而提高音频信号的压缩比。2.AAC编码技术2.1AAC概述MPEG-2和MPEG-4中均提供了AAC编码,MPEG-4AAC在MPEG-2基础上添加了PS和SBR技术。AAC是新一代的音频有损压缩技术,它通过一些附加的编码技术(比如PS,SBR等),衍生出了LC-AAC,HE-AAC,HE-AACv2三种主要的编码,LC-AAC就是比较传统的AAC,相对而言,主要用于中高码率(=80Kbps),HE-AAC(相当于AAC+SBR)主要用于中低码(=80Kbps),而新近推出的HE-AACv2(相当于AAC+SBR+PS)主要用于低码率(=48Kbps),事实上大部分编码器设成=48Kbps自动启用PS技术,而48Kbps就不加PS,就相当于普通的HE-AAC。2.2AAC规格AAC共有9种规格,以适应不同的场合的需要:表1AAC规则文件规格MPEG-2AACLC低复杂度规格(LowComplexity)MPEG-2AACMain主规格MPEG-2AACSSR可变采样率规格(ScaleableSampleRate)MPEG-4AACLC低复杂度规格(LowComplexity)MPEG-4AACMain主规格MPEG-4AACSSR可变采样率规格(ScaleableSampleRate)MPEG-4AACLTP长时期预测规格(LongTermPredicition)MPEG-4AACLD低延迟规格(LowDelay)MPEG-4AACHE高效率规格(HighEfficiency)其中:MPEG-2AACLC比较简单,无增益控制,但提高了编码效率,在中等码率的编码效率以及音质方面,都能找到平衡点。MPEG-4AACLC常用于MP4文件中的音频编码MPEG-4AACMain包含了除增益控制之外的全部功能,其音质最好MPEG-4AACHE适合用于低码率编码目前使用最多的是LC和HE(适合低码率)。流行的NeroAAC编码程序只支持LC,HE,HEv2这三种规格,编码后的AAC音频,规格显示都是LC。HE其实就是AAC(LC)+SBR技术,HEv2就是AAC(LC)+SBR+PS技术。图1.HEv1与HEv2比较HE:“HighEfficiency”(高效性)。HE-AACv1(又称AACPlusV1,SBR),用容器的方法实现了AAC(LC)+SBR技术。SBR其实代表的是SpectralBandReplication(频段复制)。音乐的主要频谱集中在低频段,高频段幅度很小,但决定了音质。如果对整个频段编码,若保护高频就会造成低频段编码过细以致文件巨大;若是保存低频的主要成分而失去高频成分就会丧失音质。SBR把频谱切割开来,低频单独编码保存主要成分,高频单独放大编码保存音质,解决了此矛盾。HEv2:用容器的方法包含了HE-AACv1和PS技术。PS指“parametricstereo”(参数立体声)。原来的立体声文件文件大小是一个声道的两倍。但是两个声道的声音存在某种相似性,根据香农信息熵编码定理,相关性应该被去掉才能减小文件大小。所以PS技术存储了一个声道的全部信息,然后,花很少的字节用参数描述另一个声道和它不同的地方2.3AAC特点(1)AAC是一种高压缩比的音频压缩算法,但它的压缩比要远超过较老的音频压缩算法,如AC-3、MP3等。并且其质量可以同未压缩的CD音质相媲美。(2)同其他类似的音频编码算法一样,AAC也是采用了变换编码算法,但AAC使用了分辨率更高的滤波器组,因此它可以达到更高的压缩比。(3)AAC使用了临时噪声重整、后向自适应线性预测、联合立体声技术和量化哈夫曼编码等技术,这些技术的使用都使压缩比得到进一步的提高。(4)AAC支持更多种采样率和比特率、支持1个到48个音轨、支持多达15个低频音轨、具有多种语言的兼容能力、还有多达15个内嵌数据流。(5)AAC支持更宽的声音频率范围,最高可达到96kHz,最低可达8KHz,远宽于MP3的16KHz-48kHz的范围。(6)不同于MP3及WMA,AAC几乎不损失声音频率中的甚高、甚低频率成分,并且比WMA在频谱结构上更接近于原始音频,因而声音的保真度更好。(7)AAC采用优化的算法达到了更高的解码效率,解码时只需较少的处理能力。3.AAC编码器基本原理AAC编码具有多种规格以适用于不同应用场合,相对于其他类型而言,类型的运算量较小,算法复杂度较低并具有较高的编码质量已被广泛的应用于实时编码研究中,因而将以其类型为原型对其编码框架进行分析。下图则为MPEG-4AACLC编码器的基本框图:图2MPEG-4AACLC编码器的基本框图3.1心理声学模型心理声学模型是利用心理声学原理对输入的音频信号进行频谱分析,计算出掩蔽阈值、信掩比和感知熵等一些心理声学参数,以便于供编码器的其他模块使用,是AAC编码器的核心部分。心理声学模型输入1024点的PCM信号,其处理块的长度为2048点和256点,时域上与上一块有50%的重叠。心理声学模型的计算结果用于滤波器组和量化模块。根据当前FFT频谱与前一帧FFT频谱之间的差异来决定滤波器组模块中MDCT模块使用什么类型的窗函数。如果差别超过限度,表明音频信号处于非平稳状态,则采用短窗;反之则采用长窗。心理声学模型同时还向量化模块提供信息,以决定量化模块如何来量化音频信号的频域样值。量化的形式要求和人耳的听觉特性最大限度地相适应。实验证明,人耳可分成24个频带。当信号中有一个较强的单音,该单音会掩蔽其所在的临界频带中的弱信号,使之不为人耳所察觉,这就是我们所利用的“掩蔽效应”。掩蔽效应允许对临界频带中的弱信号进行相当粗糙的量化,而不会引入听觉失真。AAC采用比例因子段来近似临界频带。心理声学模型分析FFT频谱,判断当前的临界频带中是否有主单音的存在。当主单音存在时,计算相应的掩蔽阈值。根据该掩蔽阈值可以得出可分配给量化因子频带的比特数的上限。由于对于音频信号中的谐音分量和类噪声的非谐音分量来说,其掩蔽能力是不同的,因此声学模型首先要区分出这两种不同类型的信号分量。AAC采用的心理声学模型2不直接区分出谐音分量和非谐音分量,而是把频谱数据变成“分区”区域,分区区域有着与临界频带空间差不多的线性关系。对于1个FFT频谱线或1/3临界频段中的较宽者提供一种近似的解决方案。在低频,一个FFT的单谱线将构成一个计算分区。在高频,多条频线将被合并成一个计算分区。并且把频域的幅度值转化为能量值来表示。按照标准计算并通过测量频谱随时间的不可预测性确定频谱线是否为谐音成份,即把每个分区频谱线的不可预测性作为每个计算分区的谐音索引值,这个索引值就是一个判断标准,来判断这个分量是更接近于谐音或者噪声。谐音成分的可预测性好,因此它的谐音索引值相对要高一些。由于这一过程的计算需要较多的数据,因此它比模型1对谐音成分和非谐音成分的分辨要好一些。由于一个给定信号的掩蔽能力可以跨越它周围的整个临界带宽,为了更有效地利用这个掩蔽能力,模型2使用扩展函数经过扩展卷积来决定噪声掩蔽阈值。然后根据分区的能量和不可预测性计算出每个分区的谐音索引值,再经过内插就可以得到每个分区的信掩比(SMR)。任何特定分区掩蔽阈值等于分区能量乘以衰减系数。由于在AAC中考虑了预测回声的控制问题,因此基于现行计算方法得出的掩蔽阈值,要通过与前两个计算分区的掩蔽阈值以及绝对掩蔽阈值比较,得出较大的阈值,整个阈值才是该分区的实际掩蔽阈值。心理声学模型具体涉及以下算法过程:(1)计算扩展函数由于各临界频带内的掩蔽效应并不仅局限于一个频带内,也会在频带之间产生一种可预先估定的掩蔽效应,称为扩展掩蔽效应,计算函数如下:𝑖𝑓𝑗𝑖𝑡𝑚𝑝𝑥=3.0(𝑗−𝑖)𝑒𝑙𝑠𝑒𝑡𝑚𝑝𝑥=1.5(𝑗−𝑖)𝑡𝑚𝑝𝑧=8∗min𝑖𝑚𝑢𝑛((𝑡𝑚𝑝𝑥−0.5)2−2(𝑡𝑚𝑝𝑥−0.5),0)𝑡𝑚𝑝𝑦=15.811389+7.5(𝑡𝑚𝑝𝑥+0.474)−17.5(1.0+(𝑡𝑚𝑝𝑥+0.474)2)0.5𝑖𝑓𝑡𝑚𝑝𝑦−100𝑠𝑝𝑟𝑑𝑛𝑔𝑓(𝑖,𝑗)=0𝑒𝑙𝑠𝑒𝑠𝑝𝑟𝑑𝑛𝑔𝑓(𝑖,𝑗)=10[(𝑡𝑚𝑝𝑧+𝑡𝑚𝑝𝑦)/10](2)计算输入信号的复倒谱将新输入的1024点采样信号与前一帧合并,组成2048点的处理块𝑠(𝑖),给这个处理块加Hann窗得到𝑠𝑤(𝑖)。𝑠𝑤(𝑖)=𝑠(𝑖)·(0.5−0.5cos[𝜋(𝑖+0.5)/1024])对𝑠𝑤(𝑖)做FFT变换,得到处理块的复倒谱𝑟(𝑖),𝑓(𝑤),分别代表幅度部分和相位部分。再由前两个处理块的结果计算出本处理块的可预测部分:𝑟_𝑝𝑟𝑒𝑑=2.0∗𝑟(𝑡−1)−𝑟(𝑡−2)𝑓_𝑝𝑟𝑒𝑑=2.0∗𝑓(𝑡−1)−𝑓(𝑡−2)式中t-1表示前一块数据。(3)计算不可预测性根据预测值及本帧的频谱值,可以得到不可预测的度量:𝑐(𝑤)=((𝑟(𝑤)∗cos(𝑓(𝑤))−𝑟_𝑝𝑟𝑒𝑑(𝑤)∗cos(𝑓_𝑝𝑟𝑒𝑑(𝑤)))2+(𝑟(𝑤)∗sin(𝑓(𝑤))−𝑟_𝑝𝑟𝑒𝑑(𝑤)∗sin(𝑓_𝑝𝑟𝑒𝑑(𝑤)))2)0.5)/𝑟(𝑤)+𝑎𝑏𝑠(𝑟_𝑝𝑟𝑒𝑑(𝑤))此公式用于短块的计算,对长块,最低频6个系数使用该公式,高频部分全取0.40。然后对每一个掩蔽域值区域计算分区能量e(b)以及不可预测的能量部分c(b),其中b是区域的序号,不同的采样率对应不同的区域划分,在低频时,一条频线就组成一个区域,