首 页 本刊概况 出 版 人 发行统计 在线订阅 欢迎投稿 市场分析 1 组织交流 1 关于我们
 
1
   通信短波
1
   新品之窗
1
   优秀论文
1
   通信趋势
1
   特别企划
1
   运营商动态
1
   技术前沿
1
   市场聚焦
1
   通信视点
1
   信息化论坛
1
当前位置:首页 > 优秀论文
G.729矢量量化算法优化研究及ARM实现
作者:穆道生 唐晓刚 李昌明
来源:本站原创
更新时间:2009/11/11 14:14:00
正文:

低速率、鲁棒性好的语音编码算法一直是军事语音通信研究的重点,也是实现高性能语音通信系统的关键环节。基于共轭结构代数码激励线性预测(CS-ACELP)G.729语音压缩标准,因其在8kbps码率下能够实现带宽低、延时小、音质高、抗干扰的语音通信,所以广泛应用于IP电话、移动通信、多媒体网络等领域[1]

本文所研究的无线语音通信系统1个基地站和9个外站组成,要求1个基地站能够同时与9个外站进行双向实时语音及数据无线通信,同时还要求系统体积小、功耗低。为了满足这些设计要求,本文采用基于ARMAdvanced RISC Machine)硬件体系架构及嵌入式Linux操作系统构建算法平台,并在平台上移植了G.729编码算法,应用Linux多进程编程方法及管道技术,实现了语音通信的系统设计方案。

由于G.729编码算法复杂度较高,在系统硬件平台上难以满足1路编码和9路解码语音通信的实时性要求。因此,在保证语音质量及通信要求的前提下,需要研究语音编码算法的优化策略及ARM实现方法,从而降低算法复杂度,减少系统耗时。

本文首先介绍基于ARM硬件体系架构及Linux系统的算法平台构建方法,接着分析G.729算法在该平台实际应用中存在的问题,针对这些问题,对G.729编解码提出相应的优化策略,最后通过系统对比实验,证明了优化策略的有效性。

1 基于ARM体系结构的算法平台

系统的信息处理单元采用Intel新一代Xscale处理器PXA270,该处理器是IntelARMv5系列处理器的顶级产品,最高主频达624MHzPXA270采用了X86架构奔腾处理器上的多媒体扩展、SpeedStep动态电源管理等多项技术,使得多媒体处理能力得到极大提升;系统配有32KB数据Cache32KB指令Cache,提供32位的系统总线,保证了指令及数据的高速调用;系统具有丰富的接口,可扩展性强。

1.1 系统硬件架构

基于ARM体系结构构间了系统硬件平台,如图所示。模拟音频信号通过音频接口输入到A/D转换芯片,经A/D变换PCM编码)后转变成数字音频信号,交由PXA270进行G.729软件编码,编码后的语音参数可以通过网络接口与计算机网络上的通信终端进行语音交互,也可以通过无线接口与远端无线电设备进行语音交互。系统硬件平台还具有液晶显示、触摸屏及RS232等控制接口,丰富了系统的人机交互功能。

 

1 基于ARM的系统硬件架构

1.2 系统软件设计

平台移植了Linux操作系统。Linux操作系统具有体系结构开放、安全性高、可任意裁剪定制等特点,能够方便构建交互性好、运行稳定、可扩展性强的专用通信设备。

系统软件采用Linux多进程编程方法,由应用程序主进程创建A/D进程、编码进程、网络收发进程、解码进程、D/A进程,结合Linux管道技术、进程通信等手段,实现语音信号的实时采样、编码、发送、接收、解码、播放并行处理环节,保证语音系统的运行平稳、流畅。语音信号的处理流程如图2所示,系统软件流程如图3所示。

    

2 语音信号处理流程

 

3 系统语音信号处理软件流程

无线语音通信系统主要应用于自然环境恶劣、电磁环境复杂、系统链路带宽有限的户外开放式场合,要求语音编码算法效率高、压缩比大、压缩损失小、实时性好、抗干扰能力强。结合G.729的特点及应用

范围[2-3],系统移植了ITU G.729编解码算法。在系统硬件平台上进行10ms语音数据采样实测,结果为:

1路编码耗时5.4ms1路解码耗时1.5ms。若进行1路编码和9路解码语音通信,则共需耗时5.4ms+1.5ms×9=18.9 ms10ms,超过了系统的采样时间10ms,会造成数据堆积,无法满足实时通信的系统设计要求。因此,需要分析G.729编码算法原理,研究算法优化策略,满足系统对语音算法的高效性、实时性、高质量的要求。

2 G.729编解码优化研究

语音编解码优化采用算法改进及代码优化两种策略。算法改进是基于对G.729算法原理分析基础上,对复杂功能模块采用快速算法或简化手段,达到降低算法复杂度、提高算法效率的目的[4-5];代码优化是找出

算法运算强度最大环节或函数,应用ARM指令集将该环节或函数重载,达到算法优化目的。本语音通信系统结合两种优化策略,充分发挥两种方法的长处,达到综合优化的目的。

2.1  G.729编码器运算复杂度分析

G.729源代码移植到VC平台上,利用profile分析工具的function timing功能选项,分析G.729编码器各功能模块系统运行时间比例,结果如表1所示。

1  G.729编码器各功能模块系统运行时间比例

条目

功能模块

系统运行时间(%)

1

预处理、LP分析、LSP转换

24.9

2

LSP矢量量化

21

3

开环基音分析

6.0

4

自适应码本搜索

15.1

5

固定码本搜索

19.8

6

增益计算、量化及其他模块

13.2

由表1可知,G.729编码器的运算工作主要集中在LSPLine Spectrum Pair)矢量量化、自适应码本搜索和固定码本搜索环节。

2.2  基于PDSNOSLSP矢量量化算法

G.729编码器LSP的矢量量化采用两级预测分裂式量化码本结构,在一定程度上降低了计算复杂度。但是在各级量化器内部,最佳逼近码字搜索算法采用传统全搜索算法,该算法按照码字在码本中存储的先后顺序,计算输入矢量X与所有码字Yj之间的失真,根据最小距离准则,找出最佳匹配码字。输入矢量X与码字Yj之间的失真定义为:

                            1

这种全搜索算法,需要遍历码本中所有码字,在线计算量大,搜索时间长。特别是码本空间较大的情况下,矢量维数较高,算法复杂度骤然提高。

基于上述分析,本文提出一种基于部分失真搜索(Partial Distortion SearchPDS)和范数排序搜索(Norm Order SearchNOS)的LSP矢量量化的综合搜索算法,在保证算法可靠性前提下,大大减少算法的搜索次数,降低算法复杂度,提高编码器效率。

PDS是在计算某个码字与输入矢量之间的失真过程中,不断判断累加失真是否超过目前最小失真,一旦超出则终止该码字与输入矢量之间计算失真。其原理如下:

设当前最小失真是 ,若

                           2

,码字 不是输入矢量 的最邻近码字,可以被排除。从而可以停止该失真后面的码字与输入矢量的计算失真,转入下一码字失真的判断。该算法增加s次比较运算,减少(k-s)次相乘和2(k-s)相加的运算。

范数排序搜索(NOS)算法是一种基于范数排序的等价误差测度搜索准则,定义矢量 2范数为 ,定义矢量 的范数为 ,定义等价失真测度为

               3

根据柯西-施瓦茨不等式       

                                4

可得输入矢量和码字 的等价失真测度为

    5

则范数排序搜索准则为:

设当前最小失真为 ,如果

                           6

如果判断式(6)成立,则当 时,可以删除所有索引大于j的码字;否则删除所有索引小于j的码字。

NOS算法能够在快速排除码字,但由于采用了等价的失真测度,所以在该算法中不能排除的码字不适合PDS算法进行计算[6],在式(3)两边同时加上 ,即得到      

         7

则改进的范数排序搜索准则为:

设当前最小失真测度为 ,若

                             8

则有

                           9

通过式(2)和式(8)可以看出,采用改进的NOS算法和PDS算法相结合的快速搜索算法,替代G.729全搜索算法,能够减少加乘运算指令,降低在线计算量,快速排除码字,缩短搜索时间,达到快速搜索最佳逼近码字的目的。

2.3  改进算法实验

G.729第一级码本搜索采用了改进PDSNOS的综合搜索算法,第二级码本容量较小,采用单一PDS搜索算法。通过统计算法的平均每帧计算失真次数和平均每帧乘法次数,对比G.729全搜索算法与本文改进算法的算法效率,如表2所示。

2   改进的LSP矢量量化搜索算法运算量的统计

搜索码本

平均每帧计算失真次数

平均每帧乘法次数

全搜索法

改进算法

全搜索法

改进算法

L1128

256

176

2560

912

L232

64

64

320

170

2中,L1128)表示128个码字的码本空间,L232)表示32个码字的码本空间。通过测试结果可以看出改进算法有效地排除了大部分码字,第一级码本中计算失真测度的次数仅为全搜索法的68.1%;PDSNOS综合算法使第一码本中的乘法次数降为全搜索的35.6%。第二级码本采用PDS算法,通过增加比较运算,减少加乘运算,使L2中乘法次数降为原来的53.2%。

2.4  基于ARM指令集的G.729优化策略

为了减小系统开销,本文进一步采用代码优化策略。代码优化是找出算法运算强度最大环节或函数,应用ARM指令集将该环节或函数重载,达到算法优化目的,该方法更具通用性。

运用DevPartner工具对G.729算法进行模块函数调用情况分析,结果如表3所示。综合考虑系统运行时间比例及调用次数,可以看出算法主要运算量集中在L_mac()L_mult()L_add()sature()L_sub这几个函数,这也是算法代码优化重点所在。代码优化策略主要包括C语音与汇编语言混合编程、定义inline(内联)函数、修改变量类型等手段,达到代码优化、提高算发运行效率的目的。

系统移植的G.729算法是ITU-T发布的ANSI C版本的源程序,为了保证算法的跨平台特性,算法的一些基本运算都是ANSI C语言编写,导致算法不够精简。本文采用了C语言与汇编语言混合编程的方法,应用精简的ARM汇编指令集,对大量此类的基本运算进行了改造,大大提高了算法的效率。

3  G.729模块函数调用分析

函数模块

系统调用时间(%)

调用次数

L_mac

24.8

4989496

L_mult

13.9

6489474

L_add

8.8

5411520

sature

8.1

1957903

sub

6.2

2183488

extract_l

3.1

849895

L_msu

2.8

967536

对于L_mac()L_mult()L_add()sature()L_sub这类代码量小且调用频繁的函数,将其定义为inline(内联)函数,当该类函数被调用时,编译器自动在目标代码段展开该类函数,省去频繁调用函数的开销。

32位定点ARM编译器在每次存储charshort类型变量时,都需要额外地与0xFFFFFF000xFFFF0000寄存器变量进行按位与操作及移位操作。将charshort类型局部变量改为intunsigned int类型,从而每次存储charshort类型变量时节省了两条指令。G.729算法中包含大量的charshort类型变量,这种改进方法大大降低了算法所需的指令数。

3 系统实验

试验条件:

8kHz采样率下,通过系统硬件平台A/D接口,采样160字节(10ms采样周期)PCM 数据作为系统实验数据源,在系统硬件平台上测试语音编解码算法的系统耗时,重复1000次试验;语音质量的评价标准采用主观评价指标MOSMean Opinion Scores)及客观评价指标SNRSignal Noise Ratio)。

试验结果:

G.729经过算法改进和代码优化前后的耗时对比实验结果如表4所示。综合优化后的算法编解码耗时仅为原算法的48.1%26.7%,所以有2.6ms+0.4ms×9=6.2 ms10ms可以实现实时1路编码9路解码的系统设计要求,而主观评价指标MOS及客观评价指标SNR没有明显下降,即语音质量没有明显下降。

 

4  G.729综合优化前后10ms数据编解码耗时及MOSSNR评价

 

10ms数据编码耗时

10ms数据解码耗时

SNR

MOS

G.729

5.4ms

1.5ms

2.2715dB

4.5

优化算法

2.6ms

0.4ms

1.9990dB

4.0

4 结束语

为了降低G.729算法的复杂度,本文提出了一种基于NOSPDSLSP矢量量化算法及基于ARM指令集的算法优化策略。系统实验表明,改进后的G.729语音编解码算法在单片ARM芯片构成的系统上完全能够实现1路编码9路解码实时语音通信,而且重建语音保留了较高的自然度和可懂度,达到语音通信质量要求。文中讨论的算法优化方法及ARM实现策略已经应用于实际系统的研制,并取得了很好的应用效果。算法平台可广泛应用于数字通信、保密通信、卫星系统及多媒体通信等领域,其构建方法及语音优化方案对于设计其它语音通信系统具有很好的借鉴意义。

参考文献(References

[1] 张继东,杨震,李晓飞ITU-T G.729 CS-ACELP语音编码系统的性能分析[J]南京邮电学院学报:自然科学版,200020(4)91-94

[2] 许丽红,阎海鹰G.729 CS-ACELP语音编码算法的优化及其DSP实现[J]上海大学学报:自然科学版,20017(1)99-103

[3] 赵晓群数字语音编码原理[M]北京:机械工业出版社,200735-60

[4] Alcaim ASilva L MModified CELP model with computationally efficient adaptive codebook search[J]IEEE Signal Processing Letters19952(3)44-45

[5] 吴海涛G.729语音编解码算法实现方法研究及DSP实现[J]哈尔滨理工大学学报:2005 10(6)5-7

[6] 木春梅一种矢量量化的快速码字搜索算法[J]合肥工业大学学报:200629(3)288-291

 作者简介:穆道生,男,教授,硕士生导师。主要研究方向:数字通信,光纤通信。

09008

 
 
   
《通信市场》 中国·北京·复兴路49号通信市场(100036) 点击查看具体位置
电话:86-10-6820 7724, 6820 7726
京ICP备05037146号-8
建议使用 Microsoft IE4.0 以上版本 800*600浏览 如果您有什么建议和意见请与管理员联系