AAC音频编码技术_第1页
AAC音频编码技术_第2页
AAC音频编码技术_第3页
AAC音频编码技术_第4页
AAC音频编码技术_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 综述1.1 背景早期的声音是用模拟信号的方式进行记录,并存储在磁盘和唱片上,这种方式能够准确地记录原声源的特性,并重放,但此方式不利于长期存储和复制。随着数字化音频编码技术的产生,可以将原始模拟信号进行数字化离散处理,再保存,在保证声音的音质同时,减小存储空间。发展过程中,越来越多的标准被制定出来。如(MP3)、AAC、Dolby AC-3、WMA等,其中MPEG组织制定的一系列音频编码标准占据主要地位,成为商业领域最广泛的音频编码技术, AAC是具有代表性的编码技术。MPEG 先进音频编码技术(Advanced Audio Coding,简称AAC)是在MP3(MPEG -1 Laye

2、r 3)基础上发展而来,出现于1997年,基于 MPEG-2的音频编码技术。由Fraunhofer IIS、杜比实验室、AT&T、Sony(新力)等公司共同开发。具有压缩比高、重建音质好、编码和解码过程高度模块化、以及声道配置灵活等特点。目前已被广泛应用于多媒体、信息通讯、网络广播电视等领域。1.2数字音频编码概述音频编码压缩算法是为了保证在重构的音频信号不失真的前提下,以尽量少的位数来描述原始音频信号,以便于有限地存储或传输高音质的音频信号。根据压缩编码原理的不同,可将音频编码方式分为四种,分别是波形编码、参数编码、混合编码和感知编码。对于不同的音频编码方式,其运算复杂度、重构信号的

3、质量、压缩率、编码和解码的延迟等都会有很大的不同,因此它们的应用场合也不会相同。其中,感知编码主要是利用人耳听觉系统的心理声学特征,即人耳对音频信号的时间和频率的分辨能力是有限的,凡是人耳不能感知的成分不进行编码和传输,而人耳能够感知的部分运用心理声学原理进行压缩编码,并且在量化噪声低于掩蔽阈值的前提下允许有较大的量化失真。感知编码一方面运用信号的统计特性移除了信号之间的冗余度,另一方面利用了心理声学中的掩蔽特性去掉了人耳系统无法感知的部分,从而使信号得到进一步的压缩。这种编码方式尽管损失了一些音频成分,但它并没有影响音频信号的质量,因此它能够达到较高的压缩比。AAC 音频编码属于感知编码,它

4、是利用人耳听觉系统的掩蔽特性,编码过程中去除了人耳不能感知的那部分音频信号,量化时允许有较大的量化失真,并将其控制在掩蔽阈值之下,从而提高音频信号的压缩比。2. AAC编码技术2.1 AAC概述MPEG-2和MPEG-4中均提供了AAC编码,MPEG-4 AAC在MPEG-2基础上添加了PS和SBR技术。AAC是新一代的音频有损压缩技术,它通过一些附加的编码技术(比如PS,SBR等),衍生出了LC-AAC,HE-AAC,HE-AACv2三种主要的编码,LC-AAC就是比较传统的AAC,相对而言,主要用于中高码率(>=80Kbps),HE-AAC(相当于AAC+SBR)主要用于中低码(&l

5、t;=80Kbps),而新近推出的HE-AACv2(相当于AAC+SBR+PS)主要用于低码率(<=48Kbps),事实上大部分编码器设成<=48Kbps自动启用PS技术,而>48Kbps就不加PS,就相当于普通的HE-AAC。2.2 AAC规格AAC共有9种规格,以适应不同的场合的需要:表1 AAC规则文件规格MPEG-2 AAC LC低复杂度规格(Low Complexity)MPEG-2 AAC Main主规格MPEG-2 AAC SSR可变采样率规格(Scaleable Sample Rate)MPEG-4 AAC LC低复杂度规格(Low Complexity)MP

6、EG-4 AAC Main主规格MPEG-4 AAC SSR可变采样率规格(Scaleable Sample Rate)MPEG-4 AAC LTP长时期预测规格(Long Term Predicition)MPEG-4 AAC LD低延迟规格(Low Delay)MPEG-4 AAC HE高效率规格(High Efficiency)其中:MPEG-2 AAC LC 比较简单,无增益控制,但提高了编码效率,在中等码率的编码效率以及音质方面,都能找到平衡点。MPEG-4 AAC LC常用于MP4文件中的音频编码MPEG-4 AAC Main包含了除增益控制之外的全部功能,其音质最好MPEG-4

7、AAC HE适合用于低码率编码目前使用最多的是LC和HE(适合低码率)。流行的Nero AAC编码程序只支持LC,HE,HEv2这三种规格,编码后的AAC音频,规格显示都是LC。HE其实就是AAC(LC)+SBR技术,HEv2就是AAC(LC)+SBR+PS技术。图1. HEv1与HEv2比较HE:“High Efficiency”(高效性)。HE-AAC v1(又称AACPlusV1,SBR),用容器的方法实现了AAC(LC)+SBR技术。SBR其实代表的是Spectral Band Replication(频段复制)。音乐的主要频谱集中在低频段,高频段幅度很小,但决定了音质。如果对整个频段

8、编码,若保护高频就会造成低频段编码过细以致文件巨大;若是保存低频的主要成分而失去高频成分就会丧失音质。SBR把频谱切割开来,低频单独编码保存主要成分,高频单独放大编码保存音质,解决了此矛盾。HEv2:用容器的方法包含了HE-AAC v1和PS技术。PS指“parametric stereo”(参数立体声)。原来的立体声文件文件大小是一个声道的两倍。但是两个声道的声音存在某种相似性,根据香农信息熵编码定理,相关性应该被去掉才能减小文件大小。所以PS技术存储了一个声道的全部信息,然后,花很少的字节用参数描述另一个声道和它不同的地方2.3 AAC特点(1)AAC是一种高压缩比的音频压缩算法,但它的压

9、缩比要远超过较老的音频压缩算法,如AC-3、MP3等。并且其质量可以同未压缩的CD音质相媲美。(2)同其他类似的音频编码算法一样,AAC也是采用了变换编码算法,但AAC使用了分辨率更高的滤波器组,因此它可以达到更高的压缩比。(3)AAC使用了临时噪声重整、后向自适应线性预测、联合立体声技术和量化哈夫曼编码等技术,这些技术的使用都使压缩比得到进一步的提高。(4)AAC支持更多种采样率和比特率、支持1个到48个音轨、支持多达15个低频音轨、具有多种语言的兼容能力、还有多达15个内嵌数据流。(5)AAC支持更宽的声音频率范围,最高可达到96kHz,最低可达8KHz,远宽于MP3的16KHz-48kH

10、z的范围。(6)不同于MP3及WMA,AAC几乎不损失声音频率中的甚高、甚低频率成分,并且比WMA在频谱结构上更接近于原始音频,因而声音的保真度更好。(7)AAC采用优化的算法达到了更高的解码效率,解码时只需较少的处理能力。3. AAC编码器基本原理AAC编码具有多种规格以适用于不同应用场合,相对于其他类型而言,类型的运算量较小,算法复杂度较低并具有较高的编码质量已被广泛的应用于实时编码研究中,因而将以其类型为原型对其编码框架进行分析。下图则为MPEG-4 AAC LC编码器的基本框图:图2 MPEG-4 AAC LC编码器的基本框图3.1 心理声学模型心理声学模型是利用心理声学原理对输入的音

11、频信号进行频谱分析,计算出掩蔽阈值、信掩比和感知熵等一些心理声学参数,以便于供编码器的其他模块使用,是 AAC编码器的核心部分。心理声学模型输入 1024 点的 PCM 信号,其处理块的长度为 2048 点和 256 点,时域上与上一块有50的重叠。心理声学模型的计算结果用于滤波器组和量化模块。根据当前FFT频谱与前一帧FFT频谱之间的差异来决定滤波器组模块中MDCT模块使用什么类型的窗函数。如果差别超过限度,表明音频信号处于非平稳状态,则采用短窗;反之则采用长窗。心理声学模型同时还向量化模块提供信息,以决定量化模块如何来量化音频信号的频域样值。量化的形式要求和人耳的听觉特性最大限度地相适应。

12、实验证明,人耳可分成 24 个频带。当信号中有一个较强的单音,该单音会掩蔽其所在的临界频带中的弱信号,使之不为人耳所察觉,这就是我们所利用的“掩蔽效应”。掩蔽效应允许对临界频带中的弱信号进行相当粗糙的量化,而不会引入听觉失真。AAC 采用比例因子段来近似临界频带。心理声学模型分析FFT 频谱,判断当前的临界频带中是否有主单音的存在。当主单音存在时,计算相应的掩蔽阈值。根据该掩蔽阈值可以得出可分配给量化因子频带的比特数的上限。由于对于音频信号中的谐音分量和类噪声的非谐音分量来说,其掩蔽能力是不同的,因此声学模型首先要区分出这两种不同类型的信号分量。AAC 采用的心理声学模型2不直接区分出谐音分量

13、和非谐音分量,而是把频谱数据变成“分区”区域,分区区域有着与临界频带空间差不多的线性关系。对于 1个FFT频谱线或1/3临界频段中的较宽者提供一种近似的解决方案。在低频,一个FFT 的单谱线将构成一个计算分区。在高频,多条频线将被合并成一个计算分区。并且把频域的幅度值转化为能量值来表示。按照标准计算并通过测量频谱随时间的不可预测性确定频谱线是否为谐音成份,即把每个分区频谱线的不可预测性作为每个计算分区的谐音索引值,这个索引值就是一个判断标准,来判断这个分量是更接近于谐音或者噪声。谐音成分的可预测性好,因此它的谐音索引值相对要高一些。由于这一过程的计算需要较多的数据,因此它比模型1对谐音成分和非

14、谐音成分的分辨要好一些。由于一个给定信号的掩蔽能力可以跨越它周围的整个临界带宽,为了更有效地利用这个掩蔽能力,模型 2使用扩展函数经过扩展卷积来决定噪声掩蔽阈值。然后根据分区的能量和不可预测性计算出每个分区的谐音索引值,再经过内插就可以得到每个分区的信掩比(SMR)。任何特定分区掩蔽阈值等于分区能量乘以衰减系数。由于在 AAC 中考虑了预测回声的控制问题,因此基于现行计算方法得出的掩蔽阈值,要通过与前两个计算分区的掩蔽阈值以及绝对掩蔽阈值比较,得出较大的阈值,整个阈值才是该分区的实际掩蔽阈值。心理声学模型具体涉及以下算法过程:(1)计算扩展函数由于各临界频带内的掩蔽效应并不仅局限于一个频带内,

15、也会在频带之间产生一种可预先估定的掩蔽效应,称为扩展掩蔽效应,计算函数如下:if j>i tmpx=3.0j-ielse tmpx=1.5j-itmpz=8*minimuntmpx-0.52-2tmpx-0.5,0tmpy=15.811389+7.5tmpx+0.474-17.51.0+tmpx+0.47420.5if tmpy<-100 sprdngfi,j=0else sprdngfi,j=10tmpz+tmpy/10(2)计算输入信号的复倒谱将新输入的1024点采样信号与前一帧合并,组成2048点的处理块si,给这个处理块加Hann窗得到swi。swi=si·0.5

16、-0.5cosi+0.5/1024对swi做FFT变换,得到处理块的复倒谱ri,fw,分别代表幅度部分和相位部分。再由前两个处理块的结果计算出本处理块的可预测部分:r_pred=2.0*rt-1-rt-2f_pred=2.0*ft-1-f(t-2)式中t-1表示前一块数据。(3)计算不可预测性根据预测值及本帧的频谱值,可以得到不可预测的度量: cw=(rw*cosfw-r_predw*cosf_predw2+rw*sinfw-r_predw*sinf_predw2)0.5)/r(w)+abs(r_pred(w) 此公式用于短块的计算,对长块,最低频6个系数使用该公式,高频部分全取0.40。然后

17、对每一个掩蔽域值区域计算分区能量e(b)以及不可预测的能量部分c(b),其中b是区域的序号,不同的采样率对应不同的区域划分,在低频时,一条频线就组成一个区域,而在高频时,多条频线才组成一个区域,标准中提供了各种采样率的区域划分参数。对每一个分区,e(b)和c(b)的计算公式如下:e(b)=i=min_linemax_liner(i)2c(b)=i=min_linemax_liner(i)2*c(i)(4)用扩展函数卷积分区能量和不可预测度相邻区域之间相互影响,修正得到ecb(b)和ct(t):ecbb=m=0max_partitionem*sprdngfbvalm,bval(b)ctb=m=0

18、max_partitioncm*sprdngfbvalm,bval(b)不可预测度ct(b)是经过信号能量加权的,需要将其重新归一化得到cb(b)cbb=ctb/ecb(b)由于扩展函数的非归一化属性,ecb(b)也需要归一化,得到en(b):enb=ecbb/m=0max_partitionsprdngfbvalm,bval(b)(5)计算音调索引tb(b)及信噪比SNR(b):tbb=-0.299-0.43lncbbSNRb=tbb*TMNb+1-tbb*NMTb式中TMN(b)为噪声掩蔽音调值,固定为6dB。NMT(b)为音调掩蔽噪声值,固定为18 dB。(6)计算实际的能量阈值:nbb

19、=enb*10-SNR(b)/10该值将用于后面的联合立体声编码。为了进行前回声控制,并考虑到安静阈值qsthr(b),nb(b)值作如下的修正:nbb=max(qsthrb,min(nbb,nb_lb*rpelev)式中nb_l(b)表示上一帧对应的nb值,rpelev在短块时值为1,长块时值为2。(7)计算感知熵及决定编码采用块模型:PE=b=0max_partition-w_highb-w_lowb*lgnbbeb+1如果PE大于给定值则采用短窗,反之则采用长窗。如果上一帧使用长块而本帧判断为短块,就采用长起始窗,反之使用短起始窗。(8)计算信掩比SMR(n)定义swb为比例因子段的索引

20、,swb_offset_long/short_window为比例因子的频谱的偏移量。对每个比例因子段:n=swbw_lown=swb_offset_longshort_windownw_highn=swb_offset_longshort_windown+1-1w_low(n)和w_high(n)值可以从标准提供的表中查出3.2 滤波器组AAC的分析滤波器组使用改进的离散余弦变换(MDCT),把时间域上的输入音频数据变换成频域信息。滤波器组把输入的时间样本作为块,并乘以窗函数,然后执行MDCT。输入信号的每个块都由前一块和当前块的50叠加组成。变换块的长度为2048或256个样本。由于窗函数对

21、滤波器的频率响应有很大影响,滤波器组设计成允许改变窗形状以适应信号的改变。根据输入信号的特征将滤波器的分辨率设为每块2048或256个样本,长块的频域分辨率高、编码效率高,而过长的窗函数又会使时域分辨率下降,产生严重的“预回声”。“预回声”的产生原因是由于存在冲击信号或类似的时域事件。有效地抑制“预回声”的措施是使用短窗切换的标准根据心理声学模型的计算结果确定。为了平滑过渡,长短块之间的过渡不是突变的,中间引入了过渡窗。如下图。图3窗口组合示意图由于余弦变换在边界处存在固有的不连续性,因此在块边界处可能产生很大的噪声。相邻块的采样值在时间上重叠,有利于消除这种噪声,这种技术称为时域混叠抵消(T

22、DAC)技术。MDCT和IMDCT都采用TDAC技术,在分析过程中引进混叠失真,可以在合成过程中抵消。下图则是TDAC技术在MDCT和IMDCT中应用说明:图4 TDAC示意图MDCT表达式为X(k)=n=0N-1x(n)w(n)cos(2N(n+n0)(k+12) for 0kN/2解码器中使用的IMDCT表达式为x(n)=2Nk=0N/2-1X(k)w(k)cos(2N(n+n0)(k+12) for 0nN其中w(n)为窗函数,AAC提供了两种窗函数:正弦窗和凯塞贝赛尔窗(KBD窗)。n0 =N2+12 ,是一个固定时间偏移量。正弦窗使滤波器组能较好地分离出相邻的频谱分量,适合于具有密集

23、谐波分量(频谱间隔<140Hz)的信号。对于频谱成分间隔较宽(>220Hz)时采用KBD窗。AAC系统允许正弦窗和KBD窗之间的连续无缝切换。3.3 瞬时噪声整形(TNS)瞬态噪声整形(TNS,Temporal Noise Shaping)模块是可选模块,它用来对量化噪声进行整形,消除预回声现象。在音频编码过程中,当音频信号的频谱变化很快时,就会造成量化误差在整个块之中扩散,出现预回声现象。而时域噪声整形就是一种抑制预回声现象特别有效的技术,它是控制量化噪声的时域波形的一种方法。在音频信号处理中,人们经常用时域预测的方法来改变噪声的频域分布,使噪声能量集中在人耳不敏感的部分。TNS

24、采用时域频域的对偶性的结论,对于时域较平稳的信号,频域上就变化较剧烈,反之时域上变化剧烈的信号,频谱上就较平稳。 瞬态噪声整形技术的具体方法是,在每个变换窗内将一个基于滤波器组的量化器的量化噪声置于实际信号以下,平滑使用该工具的信号的瞬态包络,控制量化噪声的瞬态精细结构,使瞬态噪声合理被掩蔽。模块中采用了Levinson-Durbin 算法进行线性预测计算,在子带的编码增益超过标准规定的阈值时,对这个子带进行TNS处理,最后,对反射系数进行量化,截取一部分转化为现行预测编码器的系数,用这个编码器对频谱值进行编码,输出 TNS 信息和编码结果。3.4 感知噪声替代模块(Perceptual No

25、ise Substitution)感知噪声替代模块也一个可选模块,其目的是为了能够在低码率情况下进一步提高一的编码效率。其原理是当一种噪声信号类似于另一种噪声信号且该噪声信号对于整个音频信号的主观感知影响很小时,在编码过程中将不对该噪声信号的实际频谱成分进行处理而只是简单的作个标记说明这一频率范围内存在一个类似某种噪声的信号并在该频段内的总功率上增加一些附加信息进行说明,然后在解码过程中根据附加信息中标记的内容把一个随机生成的噪声插入相应的频谱区域。通过这种方式可以有效地减少对噪声信号的分析和处理过程,提高编码效率。 3.5 立体声编码(Stereo Coding)(1)M/S立体声M/S联合

26、编码应用于按对匹配的音频声道,例如左声道与右声道、左环绕声道与右环绕声道。在声道对中,前面的声道称为“左”,后面的声道称为“右”,左右声道具有一定的相关性,M/S联合立体声编码可以消除这些相关性。这个编码步骤不会带来附加的噪音,属于无噪编码过程。M/S方法使用M, S声道来代替原来的L, R声道。 对于每一个编码带,计算M/S信号:M=L+R2S=L-R2不是每个频带都需要使用M/S联合立体声编码,只有左、右声道相关性较强的子带才使用M/S,分别计算L/R以及M/S量化编码后所需的比特数,选取所需比特数小的方式。(2) 强度立体声使用强度立体声(IS)编码是为了充分消除匹配声道高频区域之间的相

27、关性。它利用了人耳听觉系统双耳的定位对左右声道在4kHz以上频率的强度差比较敏感,而对相位差不敏感的特点,对某个频带以上的各子带使用左声道表示两个声道的联合强度,右声道谱线置为0,不再参与量化和编码。具体过程是,在每一个比例因子子带内,求出该子带的强度位置信息,再计算出频谱系数强度信号。最后将左声道的频谱系数用强度信号取代,右声道的相应信号则全部置为0,这样得到的信号送入后面的量化和编码模块。3.6 量化和编码本模块的量化不同于模拟信号的量化,其输入信号是时频变换的输出,已经是数字量。之前模块处理只是为量化做预处理,真正的压缩是在量化模块中进行的,再对这些信息进行量化是为了压缩信息量,以便用更

28、小的幅度来表示原来较大的取值范围,之后再用较小范围内的值进行编码,从而减少所用比特数,达到规定输出码率的要求。频域信号经过处理后,量化模块按心理声学模块输出的掩蔽阈值把限定的比特数分配给输入频谱,要尽量使量化所产生的量化噪声低于掩蔽域值,达到不可闻的目的。量化时需计算实际编码所用的比特数,量化和编码是结合在一起进行的。AAC 在量化前先将 1024 条谱线分成数 10 个比例因子频带,然后对每个子频带采用 4/3 次方非线性量化、起到幅度压扩作用,提高小信号时的信噪比和压缩信号的动态范围,有利于哈夫曼编码。AAC中采用迭代循环确定每个比例因子波段内的精度策略和比例因子。再利用比例因子工具和非均

29、匀量化器先后对频域信号进行噪声整形和量化。最后,利用无噪编码工具对量化后的信号进行无噪声编码,最后形成 AAC码流。迭代循环模块采用了三层结构:最上层称为循环控制模块,它调用外层循环模块,外层循环模块又调用内层循环模块。 图5 量化流程图 图6 外部迭代循环流程图 图7内部迭代循环流程图(1) 量化量化开始之前需要设置很多的变量,其中有一个是全局比例因子Common Scalefactor(又称 Global Gain),因为所有子带的比例因子通常都大于100,因此每个比例因子至少需要用8比特来保存,造成浪费,所以AAC 设置了这个全局比例因子。每个子带的比例因子加上这个全局比例因子才是该子带

30、的真实量化因子,这样就可以减少比例因子耗用的比特数。在每次量化开始之前都需要设置这个全局比例因子,这个因子是量化循环中的重要变量,如果选取的值不合适,容易造成循环次数的增加。AAC 采用了一种很保守的方法,因为 AAC 规定量化值必须小于 8191。所以如果全频带最大的 MDCT系数被量化为8191,则所有的谱线值都符合要求。因此,全局比例因子的初始值如下公式所示,在整个量化过程中全局比例因子都不能小于这个值。common_scalefac=163*log2(max_mdct_line0.758191)得到全局比例因子后,再将各子带比例因子置零。计算出该帧的比特数后,进入量化循环。内层循环是比

31、特控制循环,调整量化步长以使输出的位数小于可用的位数。外层循环是失真控制循环,计算每个比例因子段的失真,如果大于允许的失真,则放大比例因子段并重新调用内循环,控制在内层循环中量化频域行而产生的量化噪声。 (2) 编码在 AAC音频编码器中,输入到无噪声编码模块的是一组1024点量化的频谱系数。由于无噪声编码是在量化模块的内层循环中完成的,因此它属于内层循环的一部分。内层循环是在量化后编码所需的比特数不超过分配比特数时进行收敛,并退出循环程序。无噪声编码过程分为以下五个环节:频谱限幅、分区、分组和交叉、比例因子、霍夫曼编码。1) 频谱限幅首先对频谱进行一种无噪声的动态范围压缩限制。最多可以一次以

32、4个模值为单位对谱系数的幅度值进行编码,对于大于1的谱系数的幅度值,将在量化系数的数组中保留一个+1或者-1作为相应的符号位。将最低频率的“限幅”系数所处的比例因子带序列号编入传送的比特流中。每个被“限幅”后的谱系数编码包含两部分:超出1的模值和偏移量,其中偏移量是以前面相邻比例因子频带为基址。因此对于长块来说,比例因子频带划分及其各子带的频谱排序不必考虑窗函数序列类型。一种常见的频谱限幅方法就是将高频段中幅度绝对值大于1的谱系数进行限幅工作。由于传输限幅系数的辅助信息需要额外的比特消耗,因此只有在整体效果能够达到良好的情况下才使用无噪声压缩。2) 分区在无噪编码中,把一组1024点的量化谱系

33、数值分成若干区,这样每个区便能使用一个单独的霍夫曼编码。出于对编码效率的考虑,所分区的边界必须位于比例因子频带的边界处,从而各分区可以按比例因子频带为基本单位传送该区的长度以及该区所使用的霍夫曼码本序列号。 分区过程是动态的,典型的情况是随着块的不同而变化,这样可以使整组量化谱系数编码所需要的比特数达到最少。在AAC音频编码标准中,分区的实现使用贪婪合并算法,从最靠前的码本序号段开始,按照参与合并的区尽可能多的原则执行,但要保证每个分区所使用的码本序列号尽可能的小。如果分区的合并能够减少总比特的消耗,则进行分区的合并。如果被合并的各分区所使用霍夫曼码本不同,则合并后的分区采用序列号较高的霍夫曼

34、码本。 在对量化谱系数编码的过程中,可能会出现分区中某个谱系数全部为零。例如,如果输入的音频信号频率最高为20kHz,或者是更低,则在高频段上的谱系数全部为零。这种分区将使用霍夫曼零号码本进行编码。霍夫曼零号码本是一种溢出机制,它表明分区内所有的谱系数全为零,并且不需要为该区传送霍夫曼码字。3) 分组和交叉如果分析滤波器组的窗序列是由8个短窗序列组成,那么输入的一组1024个系数实际上就是一个8×128的谱系数矩阵,代表了音频信号在8个短窗期间的时频映射。虽然分区的灵活性很大,可以有效地表示8个全零区,但是分组和交叉能够提供更高的编码效率。正如先前所述,把与相邻短窗中的谱系数进行分组

35、操作,那么所有比例因子频带中的谱系数就可以在同一个组内共享比例因子,而且同一个组内的谱系数可以通过互换比例因子频带和窗口顺序来进行交叉编组。需要详细说明的是,假设交叉前一组1024个谱系数 c为:cgwbk。其中,g为组索引,w为组内窗口序列号索引,b为相应窗内比例因子频带索引,k相应比例因子频带的谱系数索引。而且最右边的索引变化最快。交叉以后,谱系数为:cgbwk。这样可以使高频段的比例因子频带排列在一起,即可以把出现全为零的分区合并在一起。4) 比例因子在频谱量化过程中,每一个数据帧内各比例因子频带都有自己的比例因子,其值大小不同,另外,在量化过程中还增添了一个全局增益,它是用来对所有的比

36、例因子进行归一化处理。为了进一步提高压缩比,在编码过程中忽略掉所有比例因子为零的比例因子频带,并且不对这些频带进行传输。全局增益和比例因子将以1.5分贝的步长进行量化。然后将全局增益编码成一个8位无符号整数,而比例因子与相邻比例因子进行前差分编码,最后对差分码进行霍夫曼编码。5) 霍夫曼编码霍夫曼编码中的码字表示 n重组量化谱系数,其码字是从11个霍夫曼码本中选取的。一个码字索引对应于2个或 4个频谱系数,且各组内的频谱系数是按照从低到高的顺序排列。表2列出了每个霍夫曼码本所能表示的最大绝对值,以及每个码本中单个码字索引所对应的谱系数个数。表2 霍夫曼码本码本索引码字索引对应的谱系数个数最大绝

37、对值带符号值00141是241是342否442否524是624是727否827否9212否10212否11216(溢出)否每个最大绝对值有两个码本,这两个码本分别表示了截然不同的概率分布函数。为了获得最高编码增益,在编码过程中应选择最合适的一个码本进行编码。为了节省码本所占用的存储空间(这是为了降低批量生产解码器的成本而考虑的),大部分码本用无符号值来表示。利用这些码本对量化谱系数的绝对值进行霍夫曼编码,如果谱系数值是非零的,则在编码的码字后面添加上符号位。 两个码本-码本0和码本11的使用需要引起特别的注意。正如前面所述,0号码本表示某分区内所有的谱系数均为零。11号码本表示某分区内谱系数的

38、最大绝对值大于或等于16。如果在某码字索引对应的谱系数中存在最大绝对值大于或等于16的情况,那么就采用一种特殊的溢出编码机制来表示这些值。(3)比特池缓冲技术AAC可以实现一定程度的变码率调整,这一技术称为比特池。每个音频帧编码所需的比特数是不一样的,当一帧所需的比特数少于平均比特数时,可把余下来的比特存入比特池中。以后,当某些帧所需的比特数多于平均数时,AAC从比特池中取出存下的比特分配给该帧,使该帧得到额外的比特。从总体上来说,每帧平均比特数是由采样率和码率而定的,而对具体的每一帧其比特数可以变化很大。 使用比特池技术有一些限制,一是前面的帧不能向后面的帧借比特,即一定要在时间上是因果的;

39、第二,比特池的大小受到解码缓冲存储器大小的限制,AAC规定码流缓冲区的最小值,每个独立声道码流缓冲区的最小尺寸是6144比特。相应编码器中比特池的最大值是6144比特减每声道平均比特数。多声道之间可共用一个比特池,但编码器必须保证每一个声道的帧长不超过解码器中每声道码流缓冲区的最大值。4. AAC编码文件最后要把各种必须传输的信息按 AAC标准给出的帧格式组成AAC码流,使得解码器能够正确解码。 首先是头信息,AAC提供两种头信息格式,分别是音频数据交换格式(ADIF,Audio Data Interchange Format)和音频数据传输格式(ADTS,Audio Data Transpo

40、rt Stream)。前者在一个编码文件里只有一个头信息,为此节省比特数,但是一旦数据出错,就无法保证继续正常解码,这种格式主要面向数据交换。而后者在每帧都有数据头,这样即使一帧数据出错也不影响以后的解码,主要是考虑到流媒体播放的需求。目前基本上都使用 ADTS 格式。除此以外,还有变换块类型,窗类型,全局比例因子,分区信息码本,信息比例因子编码,量化频谱编码和各模块的标志位及边信息等。ADTS中,一帧数据固定对应时域上1024和采样点。ADIF和ADTS头中含有以下信息。Adif_header()adif_id32bitcopyright_id_present1bitif(copyright

41、_id_present)copyright_id72bitoriginal_copy1bithome1bitbitstream_type1bitbitrate23bitnum_program_config_elements4bitfor(i=0;i< num_program_config_elements+1;i+)if(bitstream_type =0)adif_buffer_fullness20bitprogram_config_element()Adts_fixed_header() syncword 12 bit ID 1 bit layer 2 bit protection_absent 1 bit Profile_ObiectType 2 bit sampling_freqency_index 4 bit private_bit 1 bit channel_configuration 3 bit original/copy 1 bit home 1 bit emphasis 2 bit Adts_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论