专利名称:一种基于g729语音压缩编码算法的dsp优化方法
技术领域:
本发明涉及一种基于嵌入式的语音压缩算法的优化技术。在TMS320C55X系列DSP上实现多路语音的实时控制,其中语音压缩编码协议为G729。
背景技术:
数字语音通信是当前信息产业中发展最快,普及面最广的业务。移动通信数字化,拓展了信道容量,改善了服务质量,促进了这一产业的飞速发展。相比于模拟语音,数字语音具有抗干扰强,保密性好,管理和控制方便,生产成本低等优点。随着社会的发展,人们对通信的要求越来越高。P2P的语音通信技术已经非常成熟,然而在越来越多的场合,人们产生一对多,多对多的语音通信需求。同时随着ISDN技术的推广,VOIP技术,多媒体技术的快速发展,这一想法也能够实现了。
随着人们对语音通信提出了越来越高的带宽要求,语音压缩编码技术也取得了飞速的发展,特别是中低码率的语音编码技术方面。16kb/s,8kb/s的压缩编码技术已经得到标准化和产品化。由于V0IP,多媒体通信,综合业务数字通信,移动通信等业务的快速发展,基于G。728,G729的产品的嵌入式实时开发正逐渐成为研究的热点问题。尽管G729算法具有码率低,合成语音质量高等优点,但是其具有较高的算法复杂度,嵌入式实时应用成为一大难题。如何高效的压缩语音数据来缩短G729算法编码时间以达到实时性的要求是有待解决的一个重要问题。
发明内容
为了缩短G729算法在TMS320C55X系列DSP上的语音编码时间,以满足多路语音实时压缩编码的要求。本发明通过对G729算法的各个阶段算法进行改进,在不影响编码效果的同时,大大减少在DSP上运行的时间,达到对语音编码的实时性要求。. 729协议过程
G729采用8kb/s共轭结构-代数码激励线性预测编码——语音编码器,它是基于CELP编码模型的。编码器对语音帧进行处理,语音以每秒8000样点采样,每IOms对应80个样点为I帧,每帧对语音信号进行分析,提取CELP模型的参数(LPA系数,自适应码数与固定码数的索引和增益),这些参数被编码并传输。在译码端,这些参数被恢复成激励参数和合成滤波器参数,是激励通过短时何曾滤波器来得到重建语音。短时语音滤波器是基于10阶线性预测(LP)滤波器。长时合成滤波器采用自适应码书方法实现。重建语音计算出来以后,在利用后滤波提高语音质量。编码过程见
图1,G. 729算法流程见图2。分析及优化原理
短时分析综合滤波器是一个基于10阶线性预测(LP)的滤波器。这个滤波器的传递函数被定义为其中^是量化后的线性预测 (LP)系数。对于每一个IOms的语音帧,先用一个30ms
的不对称窗口对数据进行加窗,计算自相关。即是说,每80个样点(10ms),计算一次加窗语音的自相关系数,通过莱文森(Levinson)算法得到滤波器的系数。然后把LP系数转化为线谱对LSP系数,并用于量化和插值。插值后的量化和未量化滤波器系数又被转换回LP滤波器系数,目的是为每一个子帧构建综合加权滤波器。LP向LSP转换过程是LP滤波器系
数6^ = 1,…,W转化为线谱对系数(LSP)用于量化和插值。对于一个10阶的LP滤波器来
说,LSP系数定义为下面两个多项式等式的根
F'(Z) =A(z)+ z-nA(z-1)
' ' (2) F2(Z) =1(2)-2'11!^-1)
多项式式(z)是对称的,F2(Z)是非对称的。可以证明这两多项式的根在一个单位圆上
并且交替出现。巧'(Z)有一个根为-l(w =均和S(Ο有一个根z =I(W = O)。通过定义两个新的多项式等式,消除了这两个根
F1 (z) = F. (z) / (I-z~h)
,,(3)
F2(Z) = F2(Z)丨(I-P)
每个等式在单位圆上有5个共轭的根。所以上面两个等式又可以写作下面的形式
Wj= Π (I-
沿(4)
F2 (z) = J-J (I - 2q^z~l + z~2)
(4)式中名=Cos(Wi),系数Wi就是线谱对系数(LSF),并且他们也满足O <Wl <w2 <... <w10 < r的顺序。qi被当成是LSP系数在Cos域的值。因为巧⑷,F2(Z)都
是对称的了,所以每个多项式的系数只有前面需要计算。其他的系数同过下面的递归关系得到
M1 +1) = aH1 += Q3-A
Z2O' +1) = ^ + Z2OV = Q5 -,4
(5)
其中4(0) = 1.0,/2(0) = 1.0,先把¢0,功等间隔分成60个点,然后计算巧⑷,F2(Z)在这些点上符号的改变来得到LSP系数。符号的改变就意味着根在这个区间内存在,接下来就把这个区间四等分,以跟踪得到更好的根。切比雪夫多项式用来计算巧(X) , F2(Z)的根。在Z = 处多项式巧O) , F2(Z),可以被写作
F(W) = 2 P5wCr (X)(6)
其中:σθτ) = Τ5(χ) + /(1)Γ4(χ) + /(2)·ξ(χ) + /(3)Γ2(χ)+/(5)/2。7;(χ) = _(■)即为切
比雪夫多项式。则/(加=1....,5要么是巧⑷的系数,要么是巧(2)的系数。多项式C(X)在X= cos(w)的某些可以用下面的递归式得出
权利要求
1.一种基于G729语音压缩编码算法的DSP优化方法,其特征在于是按下列步骤进行 步骤一、在PC机上面安装DSP的软件开发环境,使用CCS3. 3版本; 步骤二、将G729语音编码算法的开源源代码移植到TMS320C55X上,并成功对语音编码; 步骤三、分别对G729语音编码算法中的LPC阶段,进行多项式求根算法的改进;在固定码本搜索阶段,对码本的搜索算法进行了优化;在矢量距离的计算过程中,对距离搜索的过程进行了简化; 步骤四、编译器层面,具体的设置情况为_g -k -pm -al -o3 _ fr,其中_o3表示优化的级别,选择合适的优化级别有利于程序的优化,-Pm表示使能文件级别的优化,-k表示生成对应的汇编文件,-g表示使用debug方式; 步骤五、C语言层面,在编码阶段和优化阶段,充分利用了 TMS320C55X和编译器的特点,针对TMS320C55X DSP和CCS3. 3编译器的特点,在C语言层面上,对一些模块函数进行改与,实现闻效的循环和乘法成为最大的特点; 步骤六、汇编层面,利用了编译器内嵌的汇编基本函数库来代替标准代码中的基本运算函数,大大减少代码运行时间;另外对一些特殊的代码段,比如“综合滤波器”,采用了手工汇编的方法,进一步加强了算法的实时性。
2.根据权利要求I所述的一种基于G729语音压缩编码算法的DSP优化方法,其特征在于步骤二中,由于TMS320C55X系列DSP硬件配置的多路数据和地址并行及众多处理单元的特殊性,其代码移植的cmd文件直接关系到硬件资源的分配。
3.根据权利要求I所述的一种基于G729语音压缩编码算法的DSP优化方法,其特征在于步骤三所述不同阶段算法的改进 在LPC阶段,矢量量化需要占用大量的时间,通过分析发现在LSP系数转化为LSF系数相互转化过程中,均要用到Chebyshev多项式来实现线谱对的搜索,在搜索的过程,需要把把(OJ)划分成40个区间,每个区间进行2次搜索能保证正确性的情况下优化了编码时间; 对固定码本搜索部分的改进措施,因为G729固定码本搜索在40个可能的位置上进行,首先用每一个脉冲去计算表达式,在同一个轨道中按重大到小的重新排列,然后选择最大的4个进行搜索;然后计算这几个脉冲的贡献,如果不符合要求再用深度搜索算法进行搜索,由于固定码本采用特殊的代数结构,仅含4个非零脉冲,利用这个特点进行快速深度搜索,G729采用四层嵌套循环的方法进行搜索,每一次嵌套加入一个脉冲的贡献,要完全搜索一遍需要搜索8192次,为了减小搜索的次数,在进入最后循环前,预先算出一个门限值,只有前3个循环的贡献超过这个门限时才进行第4次搜索; 对矢量量化中距离计算的优化,在G729的码本搜索过程,有很多计算两个向量的最小距离的地方,对于每一个矢量W1,计算加权误差是馬,计算下一个误差时,用这个误差与计算结果进行比较,如果比在i为10以前,加权误差已经大于馬,就可以停止计算。
全文摘要
一种基于G729语音压缩编码算法的DSP优化方法,其特征在于按下列步骤进行使用CCS3.3版本的DSP软件开发环境并将G729语音编码算法的开源源代码一直到TMS320C55X上,成功对语音编码;对算法中的LPC阶段进行多项式求根算法的改进,在固定码本搜索阶段,对码本的搜索算法进行了优化,在矢量距离的计算过程中,对距离搜索的过程进行了简化;对编译器进行设置;依次在C语言层面和汇编层面,对一些模块函数进行改写。本发明显著效果是提供了一种基于G729语音压缩编码算法的DSP优化方法,具有编码时间短的优点,能够解决多路语音在DSP上实时编码的困难。
文档编号G10L19/12GK102903366SQ20121034452
公开日2013年1月30日 申请日期2012年9月18日 优先权日2012年9月18日
发明者徐驭航, 陈磊, 唐先成, 王亮, 蔡自伟, 宋宁帅, 王牌, 龙涛 申请人:重庆大学