摘要:设计了基于DSP的G.729语音编解码器,并针对G.729算法标准源码代码效率低、执行时间长的不足,从算法精简、代码优化等方面进行了优化。优化后的算法在保证了高质量语音输出的同时,提高了编码效率,实现了对语音信号的实时处理。最后对系统性能进行了测试,结果满足设计要求。
关键词:G.729;DSP;语音编码;算法优化
0 引言
语音信号处理是现代通信研究的重要内容之一,语音压缩编码作为其关键技术,如今已得到了极大的发展。G.729是国际电信联盟(ITU)于1996年提出的采用共轭结构代数码激励线性预测(CS-ACELP)的语音编码算法,由于其具有低速率、低延时、高质量等优点,被广泛应用于数字通信系统,如IP电话、视频会议、移动通信等。数字信号处理器(DSP)价格低廉,并具有强大的运算能力,用它来实现G.729算法具有很大的现实意义。近年来,国内外研究基于DSP的G.729语音编码算法的学者很多,但随着无线通信系统用户越来越多,以及DSP在结构、性能上的巨大变化,怎样使该算法在DSP上最高效的实现,依然是一个很重要的课题。
本文首先对G.729算法进行了分析,然后结合DSP的特点,分别进行了系统的硬件和软件设计。该系统不但满足G.729算法要求,还可以作为其他语音编译码平台;在此基础上,本文针对ITU提供的标准源码代码效率低、执行时间长等不足,提出了算法的具体优化技术,并对优化结果进行了比较分析。结果表明,优化后的算法在保证语音质量的同时,提高了编码效率,实现了对语音信号的实时处理。
1 ITU-T G.729原理分析
ITU-T G.729算法以自适应预测编码技术为基础,采用矢量量化、合成分析和感觉加权等技术。其编码速率达到8 Kb/s,合成语音质量不低于32 Kb/sADPCM的水平。
该算法要求输入信号为8 kHz取样、16 b线性PCM信号。在编码器端,每80样点为一帧(每帧再分为两个子帧),分析并提取语音信号各种参数(LPC滤波器系数、自适应码书和固定码书的编号、自适应码字增益和固定码字增益),把这些参数进行80 b编码发送。
在解码端,把收到的比特流恢复成参数编码,解码后得到各个参数,用自适应码书编号从自适应码书中得到自适应码字,用固定码书编号从固定码书中得到固定码字,分别乘以它们的增益,按点相加后构成激励序列。激励LPC综合滤波器重构语音(综合滤波器由LPC系数构成)。重构语音信号在输出前经过后置处理,包括长时后置滤波、短时综合滤波和高通滤波。
2 系统硬件设计
系统硬件结构图如图1所示。其中DSP芯片采用TI公司的TMS320VC5416,音频接口采用16位音频编解码芯片TLV320AIC23,SRAM和FLASH分别采用芯片CY7C1041CV33和SST39VF400。此外,系统还配有电源芯片、电压转换芯片、CPLD(EPM3128ATC100)等。
系统编码流程为:由音频接口芯片TLV320AIC23将模拟信号转换成8K×16 b/s的数字信号,采样后的数字信号通过多通道缓冲串口McB-SP0传送到DSP的内部缓冲区,当缓冲区内的数据积累到一帧(80×16 b)时启动编码程序,编码完成后将8 Kb/s的压缩码流通过数字接口(Mc-BSP2)输出至信道。
系统解码流程为:由McBSP2将信道发送来的数字码流接收至DSP的内部接收缓冲区,然后经DSP进行解码处理,解码后的数字语音通过Mc-BSP0发送给TLV320AIC23,经过D/A转换恢复出原始语音信号。由此,该系统最终实现了语音的采集、编码、发送和接收、解码、播放的功能。