CN1119890C - 一种ip语音数据包的抗丢包处理方法 - Google Patents
一种ip语音数据包的抗丢包处理方法Info
- Publication number
- CN1119890C CN1119890C CN00129595A CN00129595A CN1119890C CN 1119890 C CN1119890 C CN 1119890C CN 00129595 A CN00129595 A CN 00129595A CN 00129595 A CN00129595 A CN 00129595A CN 1119890 C CN1119890 C CN 1119890C
- Authority
- CN
- China
- Prior art keywords
- voice
- buffering area
- packet
- receiving terminal
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明涉及一种IP语音数据包的抗丢包处理方法,针对因特网或公共数据网传输的IP语音数据包的抗丢包而作出。在接收端IP语音数据包的时延抖动变化幅度大时,自适应地增加接收端IP语音数据包缓冲区的长度;在接收端IP语音数据包的时延抖动变化幅度小时,自适应地减小接收端IP语音数据包缓冲区的长度。通过变长调整缓冲区大小,达到防止时延抖动和抗丢包,改善了IP语音的质量,解决了因网络业务流量变化和不同路由的差异所产生的语音自然度变差问题。
Description
本发明涉及一种计算机网络传输技术,更确切地说是涉及一种基于IP(因特网协议)传送与控制相结合的、具有抗丢包能力的IP语音数据包的抗丢包处理方法。
IP电话业务不同于传统的电路交换,它是基于分组交换进行传输的,先按时间段将语音编码数据分割成帧,再将一帧或多帧语音打成一个IP语音包在网络上传输,打包时按时间顺序为每个IP语音包插入一序列号标记,供接收端在接收时判断是否发生丢包等,传输网络可以是公共数据网或因特网。由于网络的业务繁忙状态是不断变化的,不同的IP语音数据包经过的传输路径也是不同的,因此IP语音数据包从发送端到接收端的时延就不可能固定不变,即产生延时抖动,且这种延时抖动随当前网络业务流量的变化和所选择的路由不同而有着很大的差异,这就导致了在接收端收到的各IP语音数据包间的时间间隔是变化的。但是,接收端必须在固定的时间间隔内对收到的各IP语音数据包进行解码处理而输出语音,因此要求有效地解决IP语音数据包在到达接收端时的延时抖动问题。目前解决这一问题的方法是在接收端增加一缓冲区,但该缓冲区是定长的,即缓冲时间固定不变。图1中所示的就是目前防延时抖动的实现方法,第n-2、第n-1、第n、第n+1、第n+2、第n+3、第n+4、第n+5包IP语音数据依序语音解码输出,相邻两IP语音数据包占据定长的缓冲区。
由于在接收端增加了缓冲时间,必然造成解码后语音信号的延时,使实际交谈的自然度变差。因此,在接收端加入的缓冲时间不能太长,一般只能是几十个毫秒,相当于缓冲了2-3个IP语音数据包。
但由于接收端加入的缓冲时间固定不变,这就决定了该方法抵抗网络延时抖动的能力也是有限的。在网络业务流量的变化加剧时,IP语音数据包的时延变化幅度就比较大,往往超过了几十个毫秒的缓冲时间,这时接收端的缓冲时间将基本失去作用,则不可避免地引起丢包。
而当网络状态比较平稳时,IP语音数据包的延时抖动则较小且相对固定,但由于接收端的缓冲时间是固定的,总的语音延时也是固定的,此时也并不能使话音的自然度得到改善。
本发明的目的是设计一种IP语音数据包的抗丢包处理方法,以克服因接收端的缓冲时间固定而造成的两方面的缺点,同时兼顾网络拥挤时的丢包和提高网络平稳时的语音质量,从而使接收端解码后的语音自然度得到改善。
本发明的目的是这样实现的:一种IP语音数据包的抗丢包处理方法,其特征在于:在接收端IP语音数据包的时延抖动变化幅度大时,自适应地增加接收端IP语音数据包缓冲区的长度;在接收端IP语音数据包的时延抖动变化幅度小时,自适应地减小接收端IP语音数据包缓冲区的长度。
所述的自适应地增加、减小接收端IP语音包缓冲区的长度,进一步包括:根据接收端每个IP语音数据包的到达时间计算每两个相邻IP语音数据包的延时;根据每两个相邻IP语音数据包的延时计算延时抖动;用平滑系数对延时抖动作平滑滤波,预测出下一个到达IP语音数据包的延时抖动;设置一增/缓冲区的门限值,并计算预测出的下一个到达IP语音数据包的延时抖动与当前变长缓冲区的时间长度之差,根据门限值与该差值之比,对当前变长缓冲区作增加或减小一个IP语音数据包长度的处理。
所述的根据门限值与该差值之比,是在差值大于门限值且当前变长缓冲区的时间长度小于一最大值时,对当前的变长缓冲区作增加一个IP语音数据包长度的处理;在差值小于负门限值且当前变长缓冲区的时间长度大于一最小值时,对当前变长缓冲区作减小一个IP语音数据包长度的处理。
所述的最大值是4个IP语音数据包长度,所述的最小值是1个IP语音数据包长度。
还包括设置一缓冲区变化标识符,在自适应地增加或减小接收端IP语音包缓冲区长度的同时,还分别对缓冲区变化标识符作加1、减1处理。
还包括当所述的缓冲区变化标识符不为零时,在增加或减小接收端IP语音数据包缓冲区长度的同时,对当前IP语音数据包的语音帧作话音激活检测,在检测结果是非激活期时,修正处理当前IP语音数据包的数目,使与增加或减小后的接收端IP语音数据包缓冲区长度相对应,同时将缓冲区变化标识符清为零。
所述的在话音激活检测结果是非激活期时,处理当前IP语音数据包的数目包括:当所述的缓冲区变化标识符大于零时,在增加接收端IP语音数据包缓冲区长度的同时简单重复当前IP语音数据包;当所述的缓冲区变化标识符小于零时,在减小接收端IP语音数据包缓冲区长度的同时简单丢弃当前IP语音数据包。
还包括在话音激活检测结果是激活期时,修正处理当前IP语音数据包的数目将延续到检测结果是非激活期时再进行。
本发明的一种IP语音数据包的抗丢包处理方法,根据网络状况自适应调整防延时抖动的缓冲区长度,在接收端根据各IP语音数据包到达的时间计算延时抖动,并经过平滑、预测下一个IP语音数据包的延时抖动,据此判定是否增加或减少缓冲区大小。
当改变缓冲区大小时,在语音的非激活期通过增加IP语音数据包达到增加缓冲区的目的,和通过丢弃IP语音数据包达到减小缓冲区的目的,该过程不会对语音质量带来负面影响。
而对于在话音激活期出现的丢包,则可以通过插值或线性预测的方法进行处理,以降低由于丢包带来的语音质量下降(该丢包恢复方法另案申请发明专利)。
本发明的一种IP语音数据包的抗丢包处理方法,可根据网络的具体情况,自适应地调整IP语音数据包缓冲区的大小(自适应变长缓冲),即在网络的业务流量加剧时自动加大缓冲区,提高抗延时抖动的能力、抗丢包;同时在网络状态比较平衡时,即在延时抖动小的情况下自动减小缓冲区,以缩短语音延时。可大大改善由于缓冲区大小固定所引起的语音不自然度问题。并且,为解决因自动调整缓冲区的大小后会对话音的质量带来负面影响的问题,本发明还在接收端同时采用话音激活检测(VAD)方法,在非激活期完成对IP语音数据包缓冲区的增减,在话音激活期则利用插值或线性预测的方法对已发生的丢包进行恢复处理(不在本专利申请的范围内讨论),以降低由于丢包带来的语音质量下降问题。
本发明是一种通过自适应调整IP语音数据包缓冲区的大小以达到抗丢包、改善语音自然度目的的处理方法。本发明的有益效果是:由于采用自适应的变长缓冲,可以明显地抵御因网络业务流量急剧变化所引起的大的IP语音数据包延时抖动,大大地降低由于延时抖动引起的丢包概率,提高了IP语音解码的质量和可靠性;由于防延时抖动的缓冲时延是根据网络情况自适应可变的,当网络状况比较好时,IP语音数据包的延时较为固定,时延抖动较小,缓冲的时延可随之变小,使IP语音数据包总的延时变小,就可以减少由于要防抖动而增加的延时,降低了语音的不自然度,改善了IP语音数据包的语音解码质量。
下面结合实施例及附图进一步说明本发明的技术,对IP语音数据包的解码一般在IP网关中进行。
图1是现有的防延时抖动的实现原理示意图。
图2是本发明自适应变长缓冲的防延时抖动的实现原理示意图。
图3是本发明自适应变长缓冲的防延时抖动的实现原理流程框图。
参见图2、图3,图中示出自适应变长缓冲(区)的防延时抖动的实现方法。具体包括以下步骤:
(1)根据每个IP语音数据包n-k、…、n-1、n、n+1、n+2、n+3、n+4、n+5、…,到达的时间t(n-k)、…、t(n-2)、t(n-1)、t(n)、t(n+1)、t(n+2)、t(n+3)、t(n+4)、t(n+5)、…,计算相邻两IP语音数据包的实际延时,如Tn-1=tn-1-tn-2,Tn=tn-tn-1,Tn+1=tn+1-tn,…Tn+2=tn+2-tn+1,Tn+3=tn+3-tn+2,Tn+4=tn+4-tn+3,Tn+5=tn+5-tn+4,…;
(2)根据计算出的相邻两IP语音数据包的实际延时,计算延时抖动,如图3中的步骤302所示,表示为:Δn=Tn-Tn-1:
(3)对计算出的IP语音数据包延时抖动Δn以平滑系数α做平滑滤波,再预测第n+1个IP语音数据包的延时抖动,如图3中的步骤303所示,表示为Δ’n+1=αΔ’n+(1-α)Δn;
(4)预先设置一个增/减缓冲区的门限值Tth、一个缓冲区变化标识符buf_change,并设当前变长缓冲区的时间长度为Tbuf和设一个IP语音数据包的语音长度为t0(在图3所示步骤301中完成),如果,经判断Δ’n+1-Tbuf>Tth(在图3所示步骤304中完成),且Tbuf<Tmax(在图3所示步骤305中完成),则对当前变长缓冲区的时间长度再增加一个IP语音数据包的长度(在图3所示步骤306中完成),同时将缓冲区变化标识符buf_change加1,即使Tbuf=Tbuf+t0;如果,经判断Δ’n+1-Tbuf<-Tth(在图3所示步骤304中完成),且Tbuf>Tmin(在图3所示步骤310中完成),则对当前变长缓冲区的时间长度再减少一个IP语音数据包的长度(在图3所示步骤311中完成),同时将缓冲区变化标识符buf_change减1,即使Tbuf=Tbuf-t0,上述变长缓冲区的实现可由自适应控制算法实现(如图2中所示)。
(5)如果缓冲区变化标识符buf_change不为零,即改变了当前缓冲区的大小时,则对当前IP语音数据包中的语音帧做话音激活检测(VAD),如图3所示步骤307、312所示,在当前语音检测结果是非激活的状态下(由图3所示步骤308、313完成),即处于谈话的静音段,则由图3所示步骤309、314,根据缓冲区的变化对IP语音数据包作相应的修正,修正后同时将缓冲区变化标识符buf_change清零。
修正的方法是:当缓冲区变化标识符buf_change>0,则增加相应数目的IP语音数据包,如可以简单重复某个IP语音数据包(在图3所示步骤309中完成),对当前的IP语音数据包重复作解码;当缓冲区变化标识符buf_change<0,则减少相应数目的IP语音数据包,如可以简单地抛(丢)弃IP语音数据包(在图3所示步骤314中完成)。因为处于非激活状态下的语音所描述的只是背景噪声,所以上述简单的修正处理不会对语音质量带来负面影响。
(6)对丢包的处理:即图2中的“若丢包丢包处理”和图3所示的“含丢包处理的语音解码”步骤315。尽管可以通过α平滑滤波预测第n+1个IP语音数据包延时抖动的变化,以自适应的改变缓冲区的大小,但是真正完成这一调整过程是在话音的非激活期,所以在完成该调整之前,即话音非激活期之前,就有可能出现丢包,并且当延时抖动超过了预测范围时,丢包现象也会在话音激活期出现。
本发明的方法是在判断缓冲区大小是否有变化且在缓冲区大小有变化时作出的,如果缓冲区大小没有变化则正常解码输出(还包括在丢包情况下的丢包恢复处理)。如果缓冲区变大,且话音处于非激活状态,则作重复上一包IP语音数据包的修正处理,使增加一包IP语音数据,如果话音处于激活状态,则一直保持到非激活状态时再作增加一包IP语音数据的修正处理,同时对变长缓冲区的缓冲区变化标识符做相应修改,buf_change加1。;如果缓冲区变小,且话音处于非激活状态,则作丢弃当前IP语音数据的修正处理,使减少一包IP语音数据,如果话音处于激活状态,则一直保持到非激活状态时再作丢弃一包IP语音数据的修正处理,同时对变长缓冲区的缓冲区变化标识符做相应修改,buf_change减1。
本发明采用插值或线性预测方法处理丢包是利用语音的帧间相关性作出的,利用上一包与下一包的IP语音数据对丢失的当前包IP语音数据作最大限度的恢复。具体步骤是:如果下一个IP语音数据包被收到,则利用上一包和下一包的IP语音数据进行线性插值,来恢复当前丢失的IP语音数据包;如果下一包的IP语音数据未收到,则根据上一包的IP语音数据做线性预测,来估计当前丢失的语音数据(该线性插值与线性预测方法,由本申请人另案提出发明)。
如可假定IP语音数据包的语音长度t0为30ms,每一路语音接收变长缓冲区的最大值Tmax设为4个IP语音数据包的语音长度(t0×4)即120ms,每一路语音接收变长缓冲区的最小值Tmin设为1个IP语音数据包的语音长度(t0×1)即30ms,将变长缓冲区的时间长度初值Tbuf设为2个IP语音数据包即60ms,增减缓冲的门限Tth取为15ms。
根据图3所示的步骤,依次计算相邻IP语音包的延时、延时抖动、作α滤波平滑(其中的平滑系数α取0.8)、预测下一个IP语音数据包的延时抖动,及作增加与减小缓冲区大小。
本发明的抗丢包方法可以应用于目前公用数据网、因特网或局域网的IP语音业务,也可用于未来移动通信(无线接入)中基于IP的核心网语音传送。
Claims (7)
1.一种IP语音数据包的抗丢包处理方法,其特征在于是自适应地增加、减小接收端IP语音包缓冲区的长度,包括以下步骤;
根据接收端每个IP语音数据包的到达时间计算每两个相邻IP语音数据包的延时;
根据每两个相邻IP语音数据包的延时计算延时抖动;用平滑系数对延时抖动作平滑滤波,预测出下一个到达IP语音数据包的延时抖动;
设置一增/减缓冲区的门限值,并计算预测出的下一个到达IP语音数据包的延时抖动与当前变长缓冲区的时间长度之差,根据门限值与该差值之比,对当前变长缓冲区作增加或减小一个IP语音数据包长度的处理。
2.根据权利要求1所述的一种IP语音数据包的抗丢包处理方法,其特征在于:所述的根据门限值与该差值之比,是在差值大于门限值且当前变长缓冲区的时间长度小于一最大值时,对当前的变长缓冲区作增加一个IP语音数据包长度的处理;在差值小于负门限值且当前变长缓冲区的时间长度大于一最小值时对当前变长缓冲区作减小一个IP语音数据包长度的处理。
3.根据权利要求2所述的一种IP语音数据包的抗丢包处理方法其特征在于:所述的最大值是4个IP语音数据包长度,所述的最小值是1个IP语音数据包长度。
4.根据权利要求1所述的一种IP语音数据包的抗丢包处理方法,其特征在于:还包括设置一缓冲区变化标识符,在自适应地增加或减小接收端IP语音缓冲区长度的同时,还分别对缓冲区变化标识符作加1、减1处理。
5.根据权利要求4所述的一种IP语音数据包的抗丢包处理方法,其特征在于:还包括当所述的缓冲区变化标识符不为零时,在增加或减小接收端IP语音数据包缓冲区长度的同时,对当前IP语音数据包的语音帧作话音激活检测在检测结果是非激活期时,修正处理当前IP语音数据包的数目,使与增加或减小后的接收端IP语音数据包缓冲区长度相对应,同时将缓冲区变化标识符清为零。
6.根据权利要求5所述的一种IP语音数据包的抗丢包处理方法,其特征在于所述的在话音激活检测结果是非激活期时,处理当前IP语音数据包的数包括:当所述的缓冲区变化标识符大于零时,在增加接收端IP语音数据包缓冲区长度的同时简单重复当前IP语音数据包;当所述的缓冲区变化标识符小于零时,在减小接收端IP语音数据包缓冲区长度的同时简单丢弃当前IP语音数据包。
7.根据权利要求5所述的一种IP语音数据包的抗丢包处理方法,其特征在于:还包括在话音激活检测结果是激活期时,修正处理当前IP语音数据包的数目将延续到检测结果是非激活期时再进行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN00129595A CN1119890C (zh) | 2000-09-30 | 2000-09-30 | 一种ip语音数据包的抗丢包处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN00129595A CN1119890C (zh) | 2000-09-30 | 2000-09-30 | 一种ip语音数据包的抗丢包处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1346198A CN1346198A (zh) | 2002-04-24 |
CN1119890C true CN1119890C (zh) | 2003-08-27 |
Family
ID=4593608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN00129595A Expired - Fee Related CN1119890C (zh) | 2000-09-30 | 2000-09-30 | 一种ip语音数据包的抗丢包处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1119890C (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6999447B2 (en) * | 2002-06-26 | 2006-02-14 | Motorola, Inc. | VOIP transmitter and receiver devices and methods therefor |
CN1320805C (zh) * | 2003-09-17 | 2007-06-06 | 上海贝尔阿尔卡特股份有限公司 | 一种分组交换网络自适应抖动缓冲区调整方法 |
CN100525281C (zh) * | 2003-12-09 | 2009-08-05 | 华为技术有限公司 | 语音传输过程中实现动态调整抖动缓存的方法 |
CN1555185B (zh) * | 2003-12-25 | 2010-04-28 | 海信集团有限公司 | Ip手机 |
CN100373890C (zh) * | 2004-04-19 | 2008-03-05 | 腾讯科技(深圳)有限公司 | 一种解决网络抖动的方法 |
EP2189978A1 (en) * | 2004-08-30 | 2010-05-26 | QUALCOMM Incorporated | Adaptive De-Jitter Buffer for voice over IP |
US7970020B2 (en) * | 2004-10-27 | 2011-06-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Terminal having plural playback pointers for jitter buffer |
CN1328891C (zh) * | 2004-11-09 | 2007-07-25 | 北京中星微电子有限公司 | 一种ip网络环境下的语义完整性保障的方法 |
CN1878054B (zh) * | 2006-02-07 | 2010-05-12 | 华为技术有限公司 | Ip网络传送基站用时钟参考的装置和方法 |
GB0705325D0 (en) * | 2007-03-20 | 2007-04-25 | Skype Ltd | Method of transmitting data in a communication system |
CN101110818B (zh) * | 2007-07-12 | 2010-06-16 | 深圳市融合视讯科技有限公司 | 一种面向非连接的用户数据协议的优化方法 |
CN101119338B (zh) * | 2007-09-20 | 2010-07-07 | 腾讯科技(深圳)有限公司 | 网络语音通信方法、系统、装置和即时通信终端 |
CN101282173B (zh) * | 2008-05-21 | 2012-04-25 | 华为技术有限公司 | 一种数据包发送速率的调整方法、系统和装置 |
CN101630288B (zh) * | 2009-08-24 | 2012-12-26 | 成都市华为赛门铁克科技有限公司 | 缓存区处理和控制方法、设备及存储设备 |
CN102118192B (zh) * | 2011-02-18 | 2015-01-21 | 中兴通讯股份有限公司 | 帧选择方法及装置 |
CN103139838B (zh) * | 2011-12-01 | 2015-12-02 | 鼎桥通信技术有限公司 | 多用户捆绑下的数据传输方法 |
CN103594103B (zh) * | 2013-11-15 | 2017-04-05 | 腾讯科技(成都)有限公司 | 音频处理方法及相关装置 |
CN103685070B (zh) * | 2013-12-18 | 2016-11-02 | 广州华多网络科技有限公司 | 一种调整抖动缓存大小的方法及装置 |
CN109378019B (zh) * | 2018-10-31 | 2020-12-08 | 成都极米科技股份有限公司 | 音频数据读取方法及处理系统 |
CN111711992B (zh) * | 2020-06-23 | 2023-05-02 | 瓴盛科技有限公司 | Cs语音下行链路抖动的校准方法 |
-
2000
- 2000-09-30 CN CN00129595A patent/CN1119890C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1346198A (zh) | 2002-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1119890C (zh) | 一种ip语音数据包的抗丢包处理方法 | |
KR100964437B1 (ko) | V o I P 용 적응성 디-지터 버퍼 | |
AU756474B2 (en) | Adaptive jitter buffering | |
US6901069B2 (en) | Sub-packet insertion for packet loss compensation in voice over IP networks | |
Sun et al. | PD-RED: to improve the performance of RED | |
US7079486B2 (en) | Adaptive threshold based jitter buffer management for packetized data | |
EP1838066B1 (en) | Jitter buffer controller | |
US7212517B2 (en) | Method and apparatus for jitter and frame erasure correction in packetized voice communication systems | |
US7787500B2 (en) | Packet receiving method and device | |
US20050207342A1 (en) | Communication terminal device, communication terminal receiving method, communication system and gateway | |
KR100644978B1 (ko) | 네트워크 전화기 및 음성 복호화 장치 | |
CN101523822B (zh) | 语音传输装置 | |
US7450593B2 (en) | Clock difference compensation for a network | |
KR20080083206A (ko) | 오디오 신호의 타임-스케일링 제어 | |
JP2014160911A (ja) | パケット処理装置、方法及びプログラム | |
US20040131067A1 (en) | Adaptive predictive playout scheme for packet voice applications | |
JP2000151694A (ja) | 音声ゆらぎ補正制御方法、並びに音声再生装置および音声中継装置 | |
US7903688B2 (en) | VoIP encoded packet prioritization done per packet in an IP communications network | |
US20030140162A1 (en) | Method for treating packets of data transmitted with variable delays | |
Schurgers et al. | Voice over wireless Internet: performance interaction of signal processing algorithms and network protocols | |
Praestholm et al. | Packet voice rate adaptation through perceptual frame discarding | |
Liu et al. | An adaptive receiver buffer adjust algorithm for voice & video on IP applications | |
CN1697537A (zh) | 数据采样及编码时间调整方法 | |
Narbutt et al. | Adaptive Playout Buffering for H. 323 Voice over IP applications | |
Kansal et al. | IP telephony and delay jitter control—An overview |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20030827 Termination date: 20140930 |
|
EXPY | Termination of patent right or utility model |