基于G.729的LSP矢量量化算法研究

时间:2022-04-17 04:49:13

基于G.729的LSP矢量量化算法研究

摘要:G.729算法如果不经过优化直接在硬件平台上运行,效率是很低的,不能满足实时通话的要求。算法的计算量主要消耗在预处理、LSP矢量量化、固定及自适应码书搜寻模块。本研究在分析矢量量化原理的基础上,针对LSP矢量量化模块进行优化。实验结果证明,优化后算法计算复杂度降低,编码效率提高,合成语音质量有明显的改进。

关键词: G.729; LSP; 矢量量化; 优化

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)28-0159-02

LSP Vectors Quantization Algorithm Based on G.729

WANG Geng

(School of Information and Electrical , Hubei University of Science and Technology, Xianning, 437100, China )

Abstract:If G.729 algorithm is run directly on the hardware platform without optimization, it has a very low efficiency, which can not meet the requirements of real-time call. Computational algorithm is mainly consumed in the pretreatment, LSP vector quantization, fixation and adaptive codebook search module. The paper is to optimize LSP vector quantization module, based on the analysis of vector quantization principle. Experimental results show that after the algorithm optimization, the synthesized speech quality improves significantly with the reduction of algorithm complexity and raising of the coding efficiency .

Key words:G.729; LSP; vector quantization; optimization;

1 引言

[G.729]协议源代码非常庞大,算法相当复杂[1],[G.729]算法如果不经过优化直接在硬件平台上运行,效率是很低的,不能满足实时通话的要求,如果不在源代码的基础上对[G.729]算法采用有效的优化方案,语音质量在编解码之后难以满足用户的需求。对于[G.729]算法的优化工作可以从C语言级、汇编级以及算法级这三个层次来进行。C语言级的优化代码的可读性非常好,十分直观,最大程度的反映了算法思想,但缺点是相对于汇编级、算法级优化,优化效果不明显;汇编级的优化效率很高,效果明显,能够改进C语言级优化过程中所存在的部分问题,缺点是代码可读性不好,难于理解。在算法级这个层次的优化措施非常多,基本是依据[G.729]算法的各个组成模块给出与各模块对应的优化方案。本文针对算法中的LSP矢量量化模块采取了优化。

2 矢量量化的基本原理

实现矢量量化的基本过程如下:首先,话音信号之中的任意一帧数据包含[k]维空间里的矢量,[k]个样点存在于任意一帧数据之中,矢量由任意一帧参数之中的[k]参数构成,此后再对该矢量采取量化。若[k=1],可以定义为标量量化,此时矢量量化是一维矢量量化。采取标量量化方法,可以将一维0到[∞]的范围分割为多个量化区间,若量化前信号幅度落在临近的区间,输入信号通过量化以后,幅度值将取临近的区间的中间值。对于多维矢量量化,若[k=M],[M]个量化区间构成[k]维空间,[M]个量化区间对应的边界和要进入的矢量进行比较,量化间隔最近的中间边界矢量就是输入信号量化之后的值。

完成矢量量化[2]过程中有两个问题需要解决。第一,[M]个区间的边界怎样来区分。要解决此问题要求有大量的话音消息矢量,结论要建立在大量实验的基础上,也就是如何来创建码本。可按照以下方法来实现:对大量的话音信号的波形进行统计分类,码本可以通过界定划分界限的中间矢量值来获得。第二,如何获得测度,当对比两个矢量的时候。测度是两个矢量所间隔的距离,也可以说是以两个矢量中的一个作为基准量时所测得的失真度。测度反映了要付出的代价,如果用与码书所代表的矢量来表示输入矢量。

矢量量化器原理框图[3]如图1所示,量化过程如下:在编码端k维输入矢量。

[Xi]与码书中的任意一个码字一一做出比对,并利用失真测度公式推算出码字和k维输入矢量[Xi]的失真。接着从码本中找出失真最小的[Yjmin]的下标[jmin],该下标用于信道传输或存储器。而在解码端进行解码,要从接收到的码本中找出码字[Yjmin],必须要根据信道传输中对应的标号。由于信道传输的仅仅是矢量的下标而不是矢量的内容,所以保密性很好。并且对下标进行传输时传输码率相对于传输矢量要大大降低。由图1能够看出,由于编码端与解码端均无反馈回路,能够保证量化系统的稳定性。

平均信噪比和码本大小M是矢量量化系统中重要的两个参量[4]。平均信噪比通过[SNR(dB)=10logEXN2/NEd(X,Y)]进行计算。信噪比计算式中,[N]指的是矢量量化系统在编码端输入的矢量数在单位时间内,[EXN2]指的是在单位时间内信号矢量的平均能量,[NEd(X,Y)]指的是单位时间内输入信号矢量和码书矢量产生失真的平均值 (或定义为量化噪声)。

3 LSP矢量量化算法的优化

[G.729]算法中的[LSP]矢量量化部分采取了两级预测分裂式量化码本结构,计算复杂度在一定程度上减小了。输入矢量[X]和码字[Yj]所存在的失真可用公式(1)来表示:

[d(X,Yj)=i=1k(xi-yij)2] (1)

对于全搜索算法码本当中所有的码字都要进行搜寻,这样会导致计算复杂,搜索时间变长,尤其是当码本空间逐渐增大时,矢量维数也会随之变大,加大了算法的复杂性。

本文提出基于部分失真搜索([PDS])和范数排序搜索([NOS])的[LSP]矢量量化的搜索算法。该算法前提保证算法的正确性,使算法的搜索次数和复杂度大大降低,编码端的编码效率能得到大大提升。

[PDS]计算输入矢量和特定码字所存在的失真,不间断对叠加失真采取判断,通过比较判断大于还是小于最小失真,如大于最小失真,立即终止指定码字与输入矢量所存在的失真的计算。该算法的基本原理如下:

假定目前最小失真为[dmin=d(X,Yp),1≤p≤N],

若[i=0s(xi-yij)2≥dmin 0≤s≤k] (2)

则[d(X,Yj)≥d(X,YP)],码字[yij]和输入矢量[X]不是距离最近的码字,于是把该码字排除。之后要停止对后面码字与输入矢量存在失真的计算,从而对之后码字失真进行判断,这个方法增加了[s]次比较运算,但是少了[(k-s)]次乘法与[2(k-s)]加法的计算。

[NOS]是等价误差测度搜索算法其中一种,采用了范数排序规则。[X]的范数用[X=i=1kx2i]表示, [Yj]的范数用[Yj=i=1ky2ij]表示,等价失真测度用公式(3)表示:

[d*(X,Yj)=d(X,Yj)-X2=Yj2-2l=1kxiyij] (3)

根据cauchy schwartz不等式[i=1kxiyij≤XYj] (4)

可以推出[X]与[Yj]的等价失真测度为

[d*(X,Yj)=d(X,Yj)-X2=Yj2-2l=1kxiyij≥Yj(Yj-2X)] (5)

那么范数排列搜索规则为:

若目前最小失真为[d*min=d*(X,Yp),1≤p≤N],若[Yj(Yj-2X)≥d*min],那么[d*(X,Yj)≥d*min],即[d(X,Yj)≥d*min]。

若[Yj(Yj-2X)≥d*min]成立,则当[Yj

[NOS]可以快速的滤除码字,但该算法是依据等价失真测度来判断的,部分码字没有办法滤除掉。可做出如下改进:在公式(3)等式的两边加上[X2],推得:

[d(X,YJ)=X2+Yj2-2l=1kxiyij≥(X-Yj)2] (6)

改进的范数排列搜索规则为:

设最小失真测度

[dmin=d(X,YP)]若[(X-Yj)2≥dmin] (7)

有 [d(X,Yj)≥d(X,YP)] (8)

由公式(2)式与公式(7)能够看出,[G.729]全搜索算法在采用[PDS]与[NOS]相结合的搜索算法替换之后,加法与乘法运算指令大幅减少,码字能够很快的滤除,搜寻码字时间也大幅减少,达到了迅速搜索最优逼近码字的目的。

4 实验结果与分析

为了测试优化前后算法的编码效率,实验采用了一段48.315秒,,量化位数为16,采样率为8kHz,563820bytes大小的声音文件进行编码,分别计算优化前后[G.729]编码完成所要求的最短时长。所用时间越长,则反映计算复杂度越高,编码效率越低,而用时越短,反映计算复杂度越低,编码效率越高。

参考文献:

[1] Coding of Speech at 8kbit/s Using Conjugate-structure Algebraic-code-excited Linear-Prediction[S].ITU-T Recommendation G.729,1996.

[2] MeClellan Stan,Gibson Jerry,D.Rutherford.Efficient Pitch Filter Encoding for Variable Rate Speech Processing[J].IEEE Transactions on Speech and Audio Processing,1999,7(l):18-29.

[3] 唐建.矢量量化码书设计与矢量量化应用研究[D].中国科学技术大学,2006(10).

[4] 汪撼铭.嵌入式系统中语音编码压缩技术的研究与应用[D].合肥工业大学,2007.

上一篇:视频人脸检测与追踪方法研究 下一篇:向文化打假的勇士与勇气致敬