综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章D S P正文
 
基于TMS320VC5416的G.729E算法实时实现
发布日期:2008-06-17 作者:潘矜矜 戴宪华 潘丹青 来源:微计算机信息

摘 要:G.729E算法是一种优秀的语音编码算法,其最大特点是可用于带背景噪声语音或音乐信号的编码,在多媒体通信中具有广泛的应用前景。本文在介绍其基本算法的基础上,给出了该算法在TMS320VC5416DSP上实时实现的软硬件解决方案,并给出了在硬件平台上实时实现编解码运算的测试结果。
关键词:语音编码  G.729E协议  数字信号处理器

1 引言

近年来,Internet得到了飞速发展,随着IP技术框架中汇聚网络研究的发展和VOIP技术的提出,数据网络通信已经融入传统的话音业务领域。但未经压缩的实时语音信号数据量很大,如一路语音信号以8kHz采样,经A/D转换,并以16bitPCM编码,产生的数据量128kb/s。考虑到信道资源紧张,随着IP电话和可视电话的发展,人们希望语音编码算法在速率尽量低的同时时延要小,于是产生了速率较低、延时较小的G.729算法。与此同时,随着多媒体技术的发展,多媒体应用中的语音编码的地位也越来越重要,同时也对语音编码提出了更高的要求。1998年11月,ITU-T制定了G.729的高速率扩展标准G.729E,此算法得到的语音质量高于G.729,并特别增加了音乐信号及带背景噪声的语音信号的处理算法,使其更适用于电话会议、VOIP等多媒体通信,其编码速率为11.8kbit/s,略高于G.729。

2 G.729E语音编解码算法

2.1 G.729E编码算法

G.729E采用共轭结构的算术码本线性预测(CS-ACELP)编码方案,所选帧长为10ms(采样率为8000Hz/s,即每帧80个样点)。编码器对每10ms帧数据分别进行一次10阶前向LP分析和一次30阶后向LP分析,计算LP滤波器系数。对于前向LP分析,需把LP系数转换成线谱对参数LSP,并对其进行矢量量化。通过比较前向及后向插入预测增益的大小以及前帧数据的相关参数来决定采用后向预测或前向预测,然后使用分析合成(A-B-S)法,按照合成信号和原始信号间的知觉加权失真最小准则来提取激励参数。

激励参数(固定码本和自适应码本参数)的计算是按子帧进行的,即每5ms计算一次。计算得到的LP系数用于第二子帧,而第一子帧使用内插的LP系数。对于后向LP滤波系数,若连续使用后向LP分析的帧数少于10帧,则计算得到的LP系数需要进行平滑处理,即按下式进行计算:(Abwd表示直接计算得到的后向LP预测系数,Afwd表示前向LP预测系数)。

每子帧数据进行知觉加权,以进行一次开环基音分析,然后进行闭环基音分析,确定自适应码本的延迟和增益。采用不同的LP分析,所进行的知觉加权是不同的,其知觉加权系数根据信号的平稳度来选择。对于前向LP模式,当信号的平稳度较低时,逆滤波器采用未量化的LP系数构成,当信号的平稳度较高时,则采用量化的LP系数构成逆滤波器。对于后向LP模式,当信号的平稳度较低时,采用未量化的LP系数构成逆滤波器,其加权因子γ1=0.9和γ2=0.4,否则直接使用后向滤波器,此时知觉加权因子γ1=0.98和γ2=0.4。G.729E的码本容量大,码字中的脉冲数多(前向模式的脉冲数为10个,后向模式的脉冲数为12个),其脉冲搜索采用次优搜索算法。

2.2       解码算法

图1是解码器原理框图。G.729E的解码按帧进行,对符合G.729E的标准的码流进行解码,得到相应的参数,根据语音产生的激励合成语音。

图1 G.729E解码器原理图

对于解码部分,无论解码帧是前向LP模式或后向LP模式都要先进行后向LP分析,然后再根据LP模式分别进行参数解码,计算重构语音,最后进行后处理。其中后处理包括自适应后滤波、高通滤波和信号放大。当信号为连续20帧高平稳后向帧时,不需要进行后滤波。

3 算法实现

3.1 硬件设计

系统框图如图2所示。此系统的工作原理是语音信号通过麦克风送入PCM3002立体声AD/DA转换器,得到数字信号并送入VC5416DSP存储。每存储一帧信号则产生中断,调用语音编码算法进行压缩处理,并对数据存储,然后发送。另一方面可对压缩数据进行解压处理,即当接收到一帧语音的压缩数据时,产生中断,调用语音解码算法对数据进行解压处理,解压后的数据通过DSP串口送PCM3002立体声AD/DA转换器,得到还原后的语音信号,并可通过耳机等设备播放重建语音。电路的接口设计如图3所示。

图2 G.729E算法实现系统框图

图3 VC5416DSP接口设计

3.2. 算法实现及优化

用CCS自带的DSP/BIOS,按需要建立DSP/BIOS的配置文件,并将该配置文件添加到工程文件中。软件实现方案为先利用PIP功能建立语音数据实时通道,再运用中断功能调用语音编码或解码程序进行编解码运算。整个主程序实际上只是完成了一些初始化设置,然后就是等待中断。中断程序是整个编解码运算的核心。G.729E语音编码算法的DSP实现分为实时语音数据采集、语音编码、语音解码及语音输出几个模块构成,其中语音编码是其关键部分。DSP每采集到80个样点中断一次,调用编码程序进行处理。编码程序首先对数据进行预处理,然后分别进行前向和后向LPC运算,求出前向LPC系数对应的LSF系数,接着判断本帧数据应使用前向或后向LPC,若使用前向LPC则对LSF系数进行量化内插处理,否则直接对后向LPC系数进行内插。为了提高语音质量,对求得的LPC系数进行知觉加权处理后重构语音信号,并用于自适应码本搜索,得到码本矢量,最后对各传输参数进行编码后存储。

根据ITU提供的G.729E的标准C代码,经测试表明运用VC5416DSP编码1个10ms帧所需要的时间远远大于10ms,无法实现实时编解码运算。因此需将代码运行效率提高,选择占用空间小的汇编代码,即采用C与汇编混合编码,对程序进行优化。程序优化时主要对反复调用的基本运算单元及嵌套循环等进行优化。由于在编程过程中标准C代码实现的是严谨的定点数运算,因此造成极低的运行速率,如在程序中反复调用的L_mac、L_mult、L_shr等都可以用一条汇编指令一个运行周期完成,而采用C程序则要几十个运行周期。另一方面,G.729E算法中运用了大量的滤波器和矢量量化函数,运算量极大。这些函数的主要运算是嵌套循环,在研究中通过优化嵌套循环部分的程序,即用汇编实现,其运算速度比C程序提高了一百多倍。

4 混合编码测试及结果

在完成整个G.729E算法的优化改写后,在CCS2.0里对代码的测试结果如下:连续对静态语音文件编解码5000帧,平均每帧编码占用201000个时钟周期,解码1帧占用51000个时钟周期。工作在160MHz的C5416可在1.6ms内完成10ms语音编解码。并能在C5416系统上实时实现语音编码及解码运算。图4是一帧数据经解码后与原语音数据的语谱图。

 

图4 带背景音乐的女声宽带语谱图  带背景音乐的女声解码语音宽带语谱图

从宽带语谱图可以看出,解码后的语音与原始语音具有几乎相同的共振峰。经主观试听,无论是带背景噪声语音或音乐信号,解码后的语音质量较好。

5 结束语

G.729E语音编码算法特别增加了对带背景噪声语音或音乐信号的处理,使其语音质量提高,将在多媒体通信中得到广泛的应用。本文对其在TMS320VC5416DSP上的实时实现的研究有着实际意义,其可用于VOIP、电话会议等系统进行语音处理。

6 创新点总结   

    本文创新点是根据基于TMS320VC5416的G.729E语音编码算法特点,设计了G.729E语音编码算法在TMS320VC5416DSP上实时实现的软硬件解决方案,并给出了在硬件平台上实时实现编解码运算的测试结果。

 

参考文献:

[1] ITU-T Recommendation G.729 Annex E: 11.8kbit/s CS-ACELP speech coding algorithm[S]. 1998

[2] J.H.James, Bing Chen.Voice Over IP and Quality of Service[J]. IEEE Communications Magazine July 2004

[3] Texas Instrument.TMS320VC5416 Fixed-Point Digital Signal Processor Data Manual[S]. 2005

[4] Texas Instrument.TMS320VC54X DSPReference Ser.Volume2:Mnemonic Instruction Set [S].1998

[5] 高浩,须文波.基于DSP改进的MBE语音算法的研究[J] .微计算机信息,2005,12-2:85-86。

[6] 杨小劲,刘建华.IPSec下IKEv2协议的实现[J] .微计算机信息,2006,8-3:55-57

 


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
TMS320VC5416并行自举的巧妙实现 (03-14)
基于TMS320VC5416的自适应变速率声码器 (03-15)
基于TMS320VC5416的多路加速度采集系统设计 (12-12)
基于DSP芯片的MELP声码器的算法实现 (03-29)
HPI在双DSP图像处理系统中的应用 (06-12)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号