第一篇:第三代移动通信变速率语音编解码AMR-WB 算法优化概要
基金颁发部门:广西科技厅 项目名称:变速率语音编码技术应用研究 编号:0640167 基金申请人:黄冰
第三代移动通信中的变速率语音编解码 AMR-WB+算法优化 李平安,黄冰,王涛,梁小朋
(桂林电子科技大学 信息与通信学院,广西桂林 541004 摘要:首先简要介绍了 AMR-WB+语音压缩算法的基本原理,描述了 AMR-WB+编解码流 程;然后通过两类优化策略对 AMR-WB+算法进行优化;最后给出了优化前后编解码复杂度 比较,并对结果进行了分析。
关键词:AMR-WB+;编解码;算法优化;复杂度 中图分类号:TP393 文献标识码:A The research and Optimization of variable-rate speech coding algorithm AMR-WB+ in the Third-generation mobile communications Li Ping an,Huang Bing,Wang Tao,Liang Xiao peng(Information & Communication College, Guilin University of electronic technology,Guangxi Guilin 541004,China Abstract :First,this paper briefly introduced to the basic principles about the algorithms of AMR-WB+,and described in the AMR-WB+ encoder/decoder processes.Then,the algorithms of AMR-WB+ was optimized by the two optimization strategies.Finally,the encoder/decoder complexity was compared, which was between before and after the optimization, and analyzed the results.Key words:AMR-WB+;encoder/decoder;algorithms optimization;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.1 AMR-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.3 AMR-WB+解码流程
解码过程基本就是编码过程的逆。解码器从比特流中抽取 ISP 参数、自适应码本和代数 码本索引及增益, 两者合成完整的激励信号, 经过增益调整等后处理过程后, 通过合成滤波 器就能获得合成信号。对应于编码端的预加重和重采样等操作, 在解码端的合成信号还需要 进行去加重和上采样操作来获得最终的重建信号。
3.变速率语音编解码 AMR-WB+算法优化
为了达到代码最高的执行速率,本文通过两类优化策略对 AMR-WB+算法进行优化
3.1 算法级优化
首先要对源程序进行耗时分析, 确定运算量比较集中的函数, 然后分析这些函数的特点, 在保证合成语音质量的前提下,减少运算量。针对 AMR-WB+算法,使用了几种有效的算法 级优化算法。
3.1.1 LSP系数算法的优化
AMR-WB+算法的一个主要传输参数为 LSP(线谱对。比如在 LP(线性预测 到 ISP(阻 抗频谱对的转换计算中,首先 LP 系数转变为 LSP 系数,再对 LSP 系数在频率域进行表示和 量化,即转换为 ISP 矢量。而 ISP 矢量的使用在 AMR-WB+中是相当广泛的。目前计算 LSP 的 方法有很多种,其中绝大多数方法复杂、计算量大。针对该问题,本文采用了一种计算 LSP 的新算法, 首先利用埃特金迭代法求高阶非线性方程的一个实根, 再采用多项式综合除法降 阶,最后运用费拉里算法求解一元四次方程的根,即可得到 LSP 系数。理论与实验分析结果 表明,该算法不仅计算精度高、而且运算量小 [3]。
3.1.2 ISP系数量化的优化
在 ISP 系数的量化过程中,使用了预测式二级分裂矢量量化技术。该矢量量化技术首先 根据均方误差最小原则将量化范围缩到某一小区域内, 再进一步提高搜索精度, 缩小搜索范 围,直到找到最终结果。为了降低算法的复杂度,可以在满足精度要求的前提下,粗化第一 级量化的搜索过程,从而减小总的搜索时间。
3.1.3 LSF系数搜寻的优化
在 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, 57wd wd n c d s n s n d w d d ==
−=⋅⋅⋅∑
1280((2(2(, 58, 115wd wd n c d s n s n d w d d ==−=⋅⋅⋅∑
方法 2:由于相关系数的求解对每个 d 均独立, 且上述相关系数求解的目的是为了进行比 较,求出最大值,最后再将最大值归一化,因此,适当降低累加次数对最终结果影响不大。实际应用中可以将累加次数从 128次降到 64次,粗化后的表达式如下: 640((2(2(, 17, 115wd wd n c d s n s n d w d d ==−=⋅⋅⋅∑
实验证明,对实际的结果影响并不大,但其运算量减少了一半。3.2 语言级优化
C 语言是一种高级编程语言,效率高,移植性好,使用范围广, AMR-WB+算法一般用 C 语言编程实现。以下针对 AMR-WB+算法中部分耗时大的函数进行了 C 语言级代码优化 [4]工作。
3.2.1 关于溢出判断的优化
在 AMR-WB+的定点 C 语言程序中,在所有运算之后都要检验结果是否溢出,因此,所 需执行的溢出检验的次数十分巨大, 耗费了大量的运算量。而在实际的运算过程中, 并不是 所有的运算都存在溢出, 我们只需要在程序运行当中确实有可能出现溢出的地方加入溢出保 护。实验证明,通过去除不必要的溢出处理,程序的计算量明显降低,通过了 3GPP 提供的 全部测试序列的检验,并且对大量的语音信号测试的结果也表明这种处理是成功的。
3.2.2 用指针操作代替数组更新
程序中有很多有限冲激响应滤波器(FIR 运算,如果对其优化可以起到很好的效果。下面以 10阶 FIR 为例: 101:(((out in k in k FIR h n h n a h n k ==+−∑
每次循环, 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 为奔腾 4 2.66GHz,内存为 1G。本实验 选用的语料来源于自建的音乐库以及 3GPP-Audio 语料库 [5],其中包含各种语境的声音样本, 具有广泛的代表性。
下图是一段压缩格式为 PCM ,采样大小为 16位,采样级别为 48000Hz 的语音音乐混合片 段, WA V 格式。从上到下分别是原音频的波形,编码后音频的波形,以及优化了的算法编 码后音频的波形。从波形可以看出, 经编码后的音频和原音频相比有一定延时, 但是优化前 后的波形相比并没有太大的差异,也就是说,音质在优化后质量并没有下降。
最后,对算法的复杂度进行比较,复杂度是通过软件耗时计算出来的,我们采用了 WMOPS(Weighted Million Operations Per Second 即加权百万操作每秒 的测算标准。具体数 据如表 1和表 2所示: 表 1优化前后的编码复杂度
平均 WMOPS 最大 WMOPS 音频
优化前 优化后 优化前 优化后 14kbps 单声道 18kbps 立体声 24kbps 单声道 24kbps 立体声
表 2优化前后的解码复杂度 5.结论
本文从算法和语言两个角度对 AMR-WB+算法进行了优化, 并对优化前后的性能进行了 比较。不论是客观还是主观测试,优化后的算法在语音质量上依然达到了原来的要求 , 但同 时在复杂度方面却有大大降低,平均降低有百分之二十五左右,说明优化是成功的。
本文作者创新点:在增强自适应多速率宽带 AMR-WB+算法的基础上, 采用了两类优化 策略对 AMR-WB+算法进行优化,并给出测试结果。
参考文献
[1]3GPP TS 26.290 v6.3.0,Extended Adaptive Multi-Rate Wideband(AMR-WB+codec.Release 6,2005,36-37 [2] B.Bessette,R.Lefebvre and R.Salami.Universal speech/audio coding using hybrid ACELP/TCX techniques.[3] N.Ssugamura,F.Itakura.Speech data Compression by LSP Speech Analysis and Synthesis Technique[J].IEICE J64-A.1981,J64-A(8:599-606 [4] 王伟,李剑雄,周广禄等.G.723.1语音压缩算法的分析及 DSP 实现 [J].微计算机信息, 2008, 4-3:160-162.[5] 3GPP TS 26.274 v7.0.0, Speech codec speech processing functions, Extended Adaptive Multi-Rate Wideband(AMR-WB+speech codec,Conformance testing.Release 7,2007.3.作者简介: 李平安(1976-,男(汉族,贵州遵义人,桂林电子科技大学信号与信息处理研究生,主要 从事语音信号编码。
Biography: Li Ping An(1946-,male(the Han nationality,guizhou province,Postgraduate,Guilin University of electronic technology,Field of Research:speech signal coding.黄冰(1946-,男(汉族,江西樟树人,桂林电子科技大学信号与信息处理教授、博士、导 师,主要研究方向:信号处理、计算机网络。
Huang Bing(1946-,male(the Han nationality,JiangXi province,doctor,professor, instructor,Guilin University of electronic technology,Field of Research:signal processing、Computer Network.王涛(1982-,男(汉族,河南周口人,桂林电子科技大学信号与信息处理研究生,主要从 事语音信号编码。
梁小朋(1983-,男(汉族,江西赣州人,桂林电子科技大学信号与信息处理研究生,主要 从事语音信号处理、光网络安全。
平均 WMOPS 最大 WMOPS 音频 优化前
优化后 优化前 优化后 14kbps 单声道 8.415 11.693 8.792 18kbps 立体声 24kbps 单声道 24kbps 立体声