第三代移动通信变速率语音编解码AMRWB 算法优化概要.docx
《第三代移动通信变速率语音编解码AMRWB 算法优化概要.docx》由会员分享,可在线阅读,更多相关《第三代移动通信变速率语音编解码AMRWB 算法优化概要.docx(9页珍藏版)》请在冰点文库上搜索。
![第三代移动通信变速率语音编解码AMRWB 算法优化概要.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/1aff9588-7499-4df4-92b3-4df543c7e320/1aff9588-7499-4df4-92b3-4df543c7e3201.gif)
第三代移动通信变速率语音编解码AMRWB算法优化概要
基金颁发部门:
广西科技厅项目名称:
变速率语音编码技术应用研究编号:
0640167基金申请人:
黄冰
第三代移动通信中的变速率语音编解码AMR-WB+算法优化
李平安,黄冰,王涛,梁小朋
(桂林电子科技大学信息与通信学院,广西桂林541004
摘要:
首先简要介绍了AMR-WB+语音压缩算法的基本原理,描述了AMR-WB+编解码流程;然后通过两类优化策略对AMR-WB+算法进行优化;最后给出了优化前后编解码复杂度比较,并对结果进行了分析。
关键词:
AMR-WB+;编解码;算法优化;复杂度
中图分类号:
TP393文献标识码:
A
TheresearchandOptimizationofvariable-ratespeechcoding
algorithmAMR-WB+intheThird-generationmobilecommunications
LiPingan,HuangBing,WangTao,LiangXiaopeng
(Information&CommunicationCollege,
GuilinUniversityofelectronictechnology,GuangxiGuilin541004,China
Abstract:
First,thispaperbrieflyintroducedtothebasicprinciplesaboutthealgorithmsofAMR-WB+,anddescribedintheAMR-WB+encoder/decoderprocesses.Then,thealgorithmsofAMR-WB+wasoptimizedbythetwooptimizationstrategies.Finally,theencoder/decodercomplexitywascompared,whichwasbetweenbeforeandaftertheoptimization,andanalyzedtheresults.
Keywords:
AMR-WB+;encoder/decoder;algorithmsoptimization;complexity
1.引言
人们对通信的消费需求不再局限于传统的话音业务,音乐、图像以及视频等其他多媒体信息的介入使得移动通信的任务从单一的话音服务转向更多元化、更丰富的信息媒体流服务,3G及以后的通信系统所要承载的速率会越来越大。
因此,在所要处理的信息不再是纯粹的语音信号,而系统容量和编码质量的矛盾依然存在时,为了达到一个较好的折衷,仍然可以在进行音频编码或图像编码时引入自适应变速率的思想,特别是将语音编码和音乐编码相结合,这已经在3GPP的TS26.290标准即AMR-WB+编码器中得到体现。
2.增强自适应多速率宽带AMR-WB+的基本原理[1]
AMR-WB+包含了AMR-WB的所有模式,并增加了TCX模块、带宽扩展和立体声编码。
AMR-WB+声码器的输入帧有2048个样点,内部采样率Fs的范围为12800-38400Hz,输入帧依低频(LF带和高频(HF带被分为2个1024个样点的超级帧,每个超级帧又被分为4个256个样点的子帧。
2.1AMR-WB+编码流程
AMR-WB+的输入信号既可以是单声道也可以是立体声信号。
首先信号经过高通滤波和分析滤波器组等预处理,被分解成高频和低频两个子带,各自保持Fs/2的采样率;此后两个子带被分别用两种不同方法处理,低频(LF部分利用基于ACELP/TCX[2]的核心编码器,高频(HF部分则经过比特消耗相对较小的带宽扩展(BWE方法进行处理。
当输入为立体声信号时,左右声道信号首先被合并为一路单声道,并利用核心编码器处理,然后右声道信号和合并信号被用来构建立体声差信号,这个差信号被输入到立体声编码器进行处理。
需要传输给解码器的参数包括模式选择比特、LF的编码参数、HF的编码参数、立体声参数等。
每一个超帧的参数被分解成4个等尺寸的包存储和传输。
2.2混合的ACELP/TCX的核心编码器
AMR-WB+编码算法的核心部分是基于ACELP/TCX的混合编码模型。
对于每一块输入信号,编码器可以按照用户对复杂度要求的不同而选择ACELP和TCX两种方式,从而来
决定选取其中的哪一个编码模型。
通常来说,ACELP是一种时域预测编码,比较适合语音和暂态信号;而TCX是变换域编码,较适合典型的音乐信号。
ACELP的编码帧长固定为20ms(通常为256样点;TCX的帧长则有256,512,1024三种情况,根据模式选择的结果来决定使用哪一种帧长,短时帧适合变化较快的信号,而长帧则适合较稳定的输入信号。
时域信号的分帧按照模式选择的结果来确定,ACELP的帧间无重叠,每256个样点单独处理;而TCX则根据帧长选择不同的重叠长度,分别为32,64,128样点。
2.3AMR-WB+解码流程
解码过程基本就是编码过程的逆。
解码器从比特流中抽取ISP参数、自适应码本和代数码本索引及增益,两者合成完整的激励信号,经过增益调整等后处理过程后,通过合成滤波器就能获得合成信号。
对应于编码端的预加重和重采样等操作,在解码端的合成信号还需要进行去加重和上采样操作来获得最终的重建信号。
3.变速率语音编解码AMR-WB+算法优化
为了达到代码最高的执行速率,本文通过两类优化策略对AMR-WB+算法进行优化
3.1算法级优化
首先要对源程序进行耗时分析,确定运算量比较集中的函数,然后分析这些函数的特点,在保证合成语音质量的前提下,减少运算量。
针对AMR-WB+算法,使用了几种有效的算法级优化算法。
3.1.1LSP系数算法的优化
AMR-WB+算法的一个主要传输参数为LSP(线谱对。
比如在LP(线性预测到ISP(阻抗频谱对的转换计算中,首先LP系数转变为LSP系数,再对LSP系数在频率域进行表示和量化,即转换为ISP矢量。
而ISP矢量的使用在AMR-WB+中是相当广泛的。
目前计算LSP的方法有很多种,其中绝大多数方法复杂、计算量大。
针对该问题,本文采用了一种计算LSP的新算法,首先利用埃特金迭代法求高阶非线性方程的一个实根,再采用多项式综合除法降阶,最后运用费拉里算法求解一元四次方程的根,即可得到LSP系数。
理论与实验分析结果表明,该算法不仅计算精度高、而且运算量小[3]。
3.1.2ISP系数量化的优化
在ISP系数的量化过程中,使用了预测式二级分裂矢量量化技术。
该矢量量化技术首先根据均方误差最小原则将量化范围缩到某一小区域内,再进一步提高搜索精度,缩小搜索范围,直到找到最终结果。
为了降低算法的复杂度,可以在满足精度要求的前提下,粗化第一级量化的搜索过程,从而减小总的搜索时间。
3.1.3LSF系数搜寻的优化
在LP转换为LSP和ISP系数的量化中,均要用到chbeyshve多项式来搜寻LSF(线谱频。
搜寻时,将(0,π区间平均分成了100个小区间,然后在每个小区间进行4次搜寻。
对其进行优化,可以将(0,π平均分成80个小区间,每个小区间只进行2次搜寻。
这样就大大减少了运算量。
3.1.4开环基音预测分析优化
方法1:
在AMR-WB+编码器的基音周期估计中,采用的是自相关函数求解的方法。
基音搜索范围从17到115。
由于基音周期较小时,基音频率较高,对语音信号编码质量影响较大;基音周期较大时,基音频率较低,对语音信号编码质量影响较小。
所以从17到57之间基音周期的采用逐点计算搜索;从58到115之间采用隔点计算,这样可以减少运算量。
计算公式为:
1280((((,17,57wdwdncdsnsndwdd==
−=⋅⋅⋅∑
1280((2(2(,58,115wdwdncds
nsndwdd==−=⋅⋅⋅∑
方法2:
由于相关系数的求解对每个d均独立,且上述相关系数求解的目的是为了进行比较,求出最大值,最后再将最大值归一化,因此,适当降低累加次数对最终结果影响不大。
实际应用中可以将累加次数从128次降到64次,粗化后的表达式如下:
640((2(2(,17,115wdwdncds
nsndwdd==−=⋅⋅⋅∑
实验证明,对实际的结果影响并不大,但其运算量减少了一半。
3.2语言级优化
C语言是一种高级编程语言,效率高,移植性好,使用范围广,AMR-WB+算法一般用C语言编程实现。
以下针对AMR-WB+算法中部分耗时大的函数进行了C语言级代码优化[4]工作。
3.2.1关于溢出判断的优化
在AMR-WB+的定点C语言程序中,在所有运算之后都要检验结果是否溢出,因此,所需执行的溢出检验的次数十分巨大,耗费了大量的运算量。
而在实际的运算过程中,并不是所有的运算都存在溢出,我们只需要在程序运行当中确实有可能出现溢出的地方加入溢出保护。
实验证明,通过去除不必要的溢出处理,程序的计算量明显降低,通过了3GPP提供的全部测试序列的检验,并且对大量的语音信号测试的结果也表明这种处理是成功的。
3.2.2用指针操作代替数组更新
程序中有很多有限冲激响应滤波器(FIR运算,如果对其优化可以起到很好的效果。
下面以10阶FIR为例:
101:
(((outinkinkFIRhnhnah
nk==+−∑
每次循环,FIR滤波器要用新的输入值更新。
源码中是用数组的更新来实现的,以FIR滤波器为例,用10阶数组FirD1[10]存放滤波器的输出,每计算一个就要将该数组的前9个元素向后移一位,FirD1[0]存入当前输入值,共需要更新9次。
现在将数组FirD1[10]加大到FirD1[70],设一个指针*FirD指向该数组,初始位置指向FirD1[60],用指针的向前滑动代替数组的右移更新,这样信号每通过一次滤波器就可以减少60×9=540次数据搬移。
在AMR-WB+算法中,存在着大量的滤波、卷积算法,除此之外,也会遇到每循环一次滤波器的数组的值就需要更新的问题,可采用同样方法来解决。
3.2.3循环优化
循环优化时,需要遵循一般的优化法则:
内部循环尽可能的简洁,有时可以将内部循环展开,避免转移判断语句等等。
另外在有多分支语句if-else时,将出现频率高的情况先于出现频率低的情况进行判断,可以节省大量的判断指令的执行时间。
3.2.4使用宏定义
在AMR-WB+的定点C语言程序中,所有基本运算与指令较少的函数都是以调用子函数的形式执行,这样虽然对程序的规范化设计有好处,但在很大程度上降低了程序的执行效率。
这些函数由于调用非常频繁,如果采用直接插入,会使程序比较繁琐,可读性降低,如果改为使用宏定义,将会在不改变程序可读性的基础上,节省函数调用的开销,加快运算速度。
4.测试结果与性能分析
本实验在WindowsXP环境下进行仿真测试,CPU为奔腾42.66GHz,内存为1G。
本实验选用的语料来源于自建的音乐库以及3GPP-Audio语料库[5],其中包含各种语境的声音样本,具有广泛的代表性。
下图是一段压缩格式为PCM,采样大小为16位,采样级别为48000Hz的语音音乐混合片段,WAV格式。
从上到下分别是原音频的波形,编码后音频的波形,以及优化了的算法编码后音频的波形。
从波形可以看出,经编码后的音频和原音频相比有一定延时,但是优化前后的波形相比并没有太大的差异,也就是说,音质在优化后质量并没有下降。
最后,对算法的复杂度进行比较,复杂度是通过软件耗时计算出来的,我们采用了WMOPS(WeightedMillionOperationsPerSecond即加权百万操作每秒的测算标准。
具体数据如表1和表2所示:
表1优化前后的编码复杂度
平均WMOPS最大WMOPS
音频
优化前优化后优化前优化后
14kbps单声道
18kbps立体声
24kbps单声道
24kbps立体声
表2优化前后的解码复杂度
5.结论
本文从算法和语言两个角度对AMR-WB+算法进行了优化,并对优化前后的性能进行了比较。
不论是客观还是主观测试,优化后的算法在语音质量上依然达到了原来的要求,但同时在复杂度方面却有大大降低,平均降低有百分之二十五左右,说明优化是成功的。
本文作者创新点:
在增强自适应多速率宽带AMR-WB+算法的基础上,采用了两类优化策略对AMR-WB+算法进行优化,并给出测试结果。
参考文献
[1]3GPPTS26.290v6.3.0,ExtendedAdaptiveMulti-RateWideband(AMR-WB+codec.Release6,2005,36-37
[2]B.Bessette,R.LefebvreandR.Salami.Universalspeech/audiocodingusinghybridACELP/TCXtechniques.
[3]N.Ssugamura,F.Itakura.SpeechdataCompressionbyLSPSpeechAnalysisandSynthesisTechnique[J].IEICEJ64-A.1981,J64-A(8:
599-606
[4]王伟,李剑雄,周广禄等.G.723.1语音压缩算法的分析及DSP实现[J].微计算机信息,2008,4-3:
160-162.
[5]3GPPTS26.274v7.0.0,Speechcodecspeechprocessingfunctions,ExtendedAdaptiveMulti-RateWideband(AMR-WB+speechcodec,Conformancetesting.Release7,2007.3.作者简介:
李平安(1976-,男(汉族,贵州遵义人,桂林电子科技大学信号与信息处理研究生,主要从事语音信号编码。
Biography:
LiPingAn(1946-,male(theHannationality,guizhouprovince,Postgraduate,GuilinUniversityofelectronictechnology,FieldofResearch:
speechsignalcoding.
黄冰(1946-,男(汉族,江西樟树人,桂林电子科技大学信号与信息处理教授、博士、导师,主要研究方向:
信号处理、计算机网络。
HuangBing(1946-,male(theHannationality,JiangXiprovince,doctor,professor,instructor,GuilinUniversityofelectronictechnology,FieldofResearch:
signalprocessing、ComputerNetwork.王涛(1982-,男(汉族,河南周口人,桂林电子科技大学信号与信息处理研究生,主要从事语音信号编码。
梁小朋(1983-,男(汉族,江西赣州人,桂林电子科技大学信号与信息处理研究生,主要从事语音信号处理、光网络安全。
平均WMOPS最大WMOPS音频
优化前
优化后优化前优化后14kbps单声道8.41511.6938.792
18kbps立体声24kbps单声道24kbps立体声