《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 一种基于G.711包丢失隐藏改进算法的研究

一种基于G.711包丢失隐藏改进算法的研究

2008-07-14
作者:严志军1,2, 许希斌2

    摘 要:  对一种改进的高性能包丢失隐藏算法" title="包丢失隐藏算法">包丢失隐藏算法进行了分析。此算法以G.711脉冲编码调制" title="编码调制">编码调制为基础,建立一种新型线性预测模型,并通过仿真得出此改进算法对VoIP语音丢失包能起到比较好的恢复效果。
    关键词:  VoIP  平均意见得分  包丢失隐藏算法  线性预测

 

    当前VoIP受到人们越来越多的喜爱和欢迎,其受关注程度逐步超越传统的以电路交换为基础的公用交换电话网络(PTSN)。然而IP网络需要解决的问题不仅是基于非实时业务,更重要的是实时业务。而IP网络中实时业务的保证主要在以下几个方面:抖动、延时和信道错误。这些错误的产生就会导致收端的包丢失,从而降低语音的通话质量。以模拟为基础的编码器,特别是国际电联(ITU-T" title="ITU-T">ITU-T)标准的G.723.1[1]和G.729-A[2],由于它们的低速率(G.723.1为5.3k~6.4kbps,G.729-A为8kbps)而普遍用于IP网络语音编码。这些编码器内嵌的包丢失隐藏算法可靠地保证了网络中包丢失带来的失真等。但是,这些算法都需要比较多的内存保存足够完好的传输帧来恢复丢失的帧,这样可能会因此破坏网络中一些好的包而导致“State Error”出现。另一方面,脉冲编码调制(PCM,64kbps)相对以上两种编码方式有更高的质量,但是它没有能力对丢失的包进行恢复。与模拟编码器相比,PCM调制方式能更迅速恢复丢失的包。相对简单的PCM调制方式和其良好的性能使得其在VoIP采用的编码算法中占有重要的地位。
    在PCM流中,已经有好几种方法描述帧丢失问题。最简单的就是在帧丢失期间,插入静音包。这种方式虽然在一定程度上解决了包丢失问题,但是带来的后果是难以忍受的通话静音。其他的隐藏算法主要是依据语音相对固定的特性。还有一种比较普遍的商业包丢失隐藏算法原理是复制接收端最后一个好的语音包作为丢失的包。这种算法较前一种算法有所改进但是还是不能得到高质量" title="高质量">高质量的语音包[3]
    还有一种标准是ANSI标准T1-521-2000(附录B)。这种算法需要良好的线性预测模型预测丢失的语音波形。它完全采用模拟为基础的codecs方式。它首先对从前一个传输完好的语音包进行完整的分析;其次,综合单元利用上述分析的一些参数连同最近接收的语音采样点进行合成,成为一个最相似语音包代替丢失的语音包。算法的延时为5ms。同时算法计算也比较复杂(每10ms包2.3MIPS)。此算法得到的语音包的质量与ITU-T G.711附录A相当[4]
1 APLC算法描述
    ITU-T制定的G.711标准中,已经提供了其PCM编码方式的包丢失隐藏算法(PLC)[5]。这种方法主要是波形替代,其原理如下:首先,PLC算法通过语音采样进行基音周期检测,并且把语音采样点保存到历史buffer中(history buffer)(390个采样点,8kHz采样频率);其次隐藏单元指针指向一个基音周期末端,然后复制包丢失期间的语音信号。预先复制的基音周期放到一个由丢失的语音段产生的间隙。算法同时对最后一个接收到的完好语音包和丢失的包进行迭加,这种迭加保证了语音传输的平滑和自然。同时算法在迭加过程中有3.75ms的延时。
    上述算法PCM编码以线性预测为基础,其线性预测公式为:

   

其中,S(n)为第n个数据采样点,p为预测序列值,a(i)为线性预测系数,b(n)为线性预测误差。
    从(1)式可见,语音采样S(n)由二部分组成,第一部分为线性预测系数与一组过去的样本值S(n-1),S(n-2),…S(n-p)线性组合而成,它可以看成从S(n)过去的样本值来预测或估计当前值S(n)的结果,故又称之为线性预测值;第二部分是输入的预测误差b(n)。
    如果LPC从连续的采样点中得不到相关系数的话,b(n)误差会比较大。在发生包丢失的情况下,前一个采样点通过公式(1)可以得到。但是输入的预测误差b(n)是不确定的。在ITU-T标准G.711-Annex A中,丢失帧的基音周期预测信号通过一种类似的隐藏算法——反向基音周期复制(RORPP)实现。公式如下:

   

其中,S(n)表示LPC预测,为基音周期预测周期信号,G为基音周期预测系数。设参数α、β,(2)式可变为:

   

    再设μ、v,则上式变为:

   

    参数μ、v根据网络中包丢失的严重程度分别赋予不同的值。
    其工作原理如下:
    在PCM解码过程中,接收端对接收的包进行解码并且发送到音频输出口。同时为了支持包隐藏算法,解码输出的信号同时保存到总长为390个采样的history buffer中,此history buffer用来计算自相关参数、预估基音周期和LP系数,并且提供预先的采样点S(n-i),i    丢失的语音包中至少有一个包,计算丢失包恢复的参考值主要为丢失的前10ms包(首次丢失帧)。在包丢失开始期间,基音周期检测单元根据ITU-T包丢失隐藏标准G.711-A计算出自相关系数的不同峰值来预估当前的基音周期,采样点是由这种基音周期检测方式计算出来的。与此同时,系统计算出最后20ms语音采样点前50个自相关系数。LP分析器通过Levinson-Durbin算法计算出LP系数。为了能覆盖到至少一个基音周期,LP预测序列值设为50。前50个自相关系数用于LP合成滤波器(语音模型)中。
    众所周知,一个语音帧有80个采样点。在此算法中,在语音丢失帧中采样90个点,以达到平稳传输包的目的。最后10个采样点是根据丢失的包进行预测的值。如果下一个包仍然丢失,则这10个采样点就作为下个丢失包的前10个采样点;如果下一个包没有发生丢失,则这些采样点与一衰减系数" title="衰减系数">衰减系数相乘,并且和下一个完好的语音包的前10个采样点(和一升序系数相乘)迭加。迭加后的输出即用来替代包丢失后的下一包头10个完好的采样点。这种处理保证了丢失语音部分到完好语音包的平滑传输。
    如果包丢失超过10ms,则只需稍微改变ITU-T G.711-A中长期预估采样值,而仍然采用上次丢失计算出的那些参数进行下10ms丢失包的恢复计算。在连续丢包情况下,基音周期预测复制器与一衰减系数相乘,此衰减系数初始值为1,每隔10ms下降0.2。衰减系数反映了丢包期间包衰减的平滑度。最后在连续丢包60ms后,基音周期预测复制器和输入残余信号都为0,式(3)变成没有输入的模型,最后导致语音包严重失真而不能恢复。
2 仿真试验分析
    仿真试验的目的是为了验证上面提出的APLC算法的可行性及系统性能的改善程度。在本仿真试验中,选一个比较典型的一段语音包(从采样点47 700~48 000)为研究对象,参数α、β、μ、v的值分别为0.4和0.6。图1为此段完好的语音包。

 


    图2为丢失的语音包段。图3和图4分别是经过G.711 PLC算法和APLC算法恢复的语音包数据。

 

 

 

 

    图5是通过ITU-T 的P.862 PESQ(Perceptual Estimation of Speech Quality)标准对其Mos值分别进行估计的结果,通过4个人分别说一段8s长的相同的话。文件的格式为线性PCM,谈话文件从ITU-T附录P.23得到。

 


    从上述仿真结果分析可以看到,有5%包丢失率的语音数据在经过G.711 PLC算法后,丢失语音包的恢复不是很理想。而经APLC算法后,语音包的恢复可以从图4中看出,相对于G.711有了比较大的改进,整体Mos值也有较大的改进,达到3.6。APLC算法达到了预期的目的。
    本文中介绍一种新的基于PCM(每包为10ms语音包长)包丢失隐藏算法。新的算法模型通过对线性预测参数进行改进,形成改进的APLC算法,最后通过对语音数据包仿真验证了新算法对丢失包的高质量的还原效果。但是APLC线性预测效果在特定的条件下还不是很准确,如参数μ、v的设置,理论上应该是每时每刻根据语音信号的不同,这两个参数动态地变化着。但是实际上,这种动态的改变目前还不能做到,在后面的工作中需要作进一步深入研究。
参考文献
[1] Dual rate speech coder for multimedia communications transmitting at 5.3 and 6.3kbps. ITU-T Recommendation  G.723.1, March 1996.
[2]  Coding of speech at 8kbps using conjugate-structure algebraic-code-excited linear-prediction (CS-ACELP). ITU-T Recommendation G.729,March 1996.
[3] GUNDUZHAN E, MONTAHAN K. A linear prediction based packet loss concealment algorithm for PCM coded speech,IEEE Trans. Speech and Audio Process. 9(8) (November 2001):778-785.
[4]  HASSAN M, NAYANDORO A. Internet telephony: services,technical challenges, and products. IEEE Communication Magazine, April 2000:96-103.
[5]  MAHFUZ E. Packet loss concealment for voice transmission over IP networks. Department of Electrical Engineering  McGill University Montreal,Canada, September 2001.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。