CN100426783C - 适配网络尖峰的动态抖动缓存的实现方法 - Google Patents

适配网络尖峰的动态抖动缓存的实现方法 Download PDF

Info

Publication number
CN100426783C
CN100426783C CNB200410033180XA CN200410033180A CN100426783C CN 100426783 C CN100426783 C CN 100426783C CN B200410033180X A CNB200410033180X A CN B200410033180XA CN 200410033180 A CN200410033180 A CN 200410033180A CN 100426783 C CN100426783 C CN 100426783C
Authority
CN
China
Prior art keywords
network
spike
delay
value
packet
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 - Lifetime
Application number
CNB200410033180XA
Other languages
English (en)
Other versions
CN1677953A (zh
Inventor
陈久松
王麒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhigu Tech Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB200410033180XA priority Critical patent/CN100426783C/zh
Publication of CN1677953A publication Critical patent/CN1677953A/zh
Application granted granted Critical
Publication of CN100426783C publication Critical patent/CN100426783C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种适配网络尖峰的动态抖动缓存的实现方法。该方法中,当确定网络尖峰开始时,则计算网络尖峰时的延时值及网络中的平均抖动值,并可根据相应的网络的平均抖动值及网络尖峰状态的延时值对抖动缓存的深度进行调整,以适应网络尖峰状态下对抖动缓存的深度的要求。也就是说,本发明可以准确地判断出网络尖峰期的开始点和结束点,并在网络中出现由网络尖峰现象导致的延时时,使用相应的算法对JB的深度进行调整,以适配所述的网络尖峰状态,降低丢包率,使得网络处于尖峰期间时,不会出现因尖峰期间的连续丢包而导致VOIP语音质量下降的情况。因此,本发明可以较好地保证网络尖峰现象频繁出现的网络中的语音传输的质量。

Description

适配网络尖峰的动态抖动缓存的实现方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种适配网络尖峰的动态抖动缓存的实现方法。
背景技术
随着Internet(互联网)技术的不断成熟,使得传统的语音信息承载在Internet上传输成为可能,因此,VOIP(基于互联网协议的语音)的各项技术也就应运而生。其中Jitter Buffer(抖动缓存,简称JB)技术正是VOIP的核心技术之一,JB技术直接影响到VOIP的语音质量,特别在网络质量状况较差的情况下。
JB技术主要分为两类:静态JB技术和动态JB技术。目前Internet网络中固有的延时、抖动、丢包、乱序已经证明静态JB技术不能很好地起到抗抖动的效果,因此,针对不断变化的网络质量状况,只有通过动态改变JB深度才能有效地去除网络抖动,达到低延时、低丢包率的效果。所述的动态JB是指JB深度可以根据网络系统的状况进行动态调整,以适应千变万化的传输网络,例如根据网络中的延时和抖动对JB进行动态调整等。
现有的动态JB算法主要是一种基于平均延时和平均抖动的动态JB方案。对于每个到达接收网关的数据包,均采用下述的算式1、2和算式3进行平均延时和平均抖动的统计,然后,根据所述的平均延时和平均抖动进行当前数据包播放时间的计算,并根据计算结果及当前数据包的实际播放时对所述的JB深度进行动态调整,计算过程中依据的各算式如下:
ni=ai-tsi→(算式1)
di=α×di-1+(1-α)×ni→(算式2)
vi=α×vi-1+(1-α)×|di-ni|→(算式3)(0≤α≤1)
其中:ni为第i个包在网络中的延时,di为平均延时,vi为平均抖动,α为可调的权植因子。通过α的调整可以设置本次数据包的计算值对平均值的影响程度,其值可根据实际网络状况选择最优的权值;且如图1所示,tsi为发送第i个包的时间,来自发送网关的DSP(数字信号处理)采样时间;a为第i个包到达接收网关的时间,来自接收网关的系统时间;pi为第i个包在接收网关被播放的时间;ni为第i个包在网络中的总延时;
在计算当前数据包的播放时间时间,则按如下算式:
pi=tsi+di+γ×vi→(算式4)
pi=pi+tsj-tsi→(算式5)
其中:i为语音段第一个数据包,j为语音段的后续数据包。γ表示对平均抖动的放大辈数,可在实现中根据实际网络状况选择最优的放大辈数。
目前还有另一种动态JB的实现方法为基于最小延时和平均抖动的动态调整JB的深度。即对每个到达接收网关的数据包,都进行最小延时和平均抖动的统计,具体采用如下算式进行相应的计算:
ni=ai-tsi→(算式6)
dmin=min(dmin,ni)→(算式7)
v i = α × v ^ i - 1 + ( 1 - α ) × ( n i - d min ) →(算式8)
其中:ni为第i个包在网络中的延时,dmin为最小延时,记录最小的网络延时。vi为平均抖动,和前一种方法不同的是计算第i个包的抖动,只要把第i个包的网络延时减去最小延时即可,而不必再进行取绝对值操作了。α仍然是可调的权植因子。
对于当前数据包的播放时间时,则按如下算式计算:
pi=tsi+di+×γvi-(算式9);
pj=pi+tsj-tsi-(算式10)
其中:i为语音段第一个数据包,j为语音段的后续数据包。γ表示对平均抖动的放大辈数。与前一种方法不同的是,在计算pi时,不再使用平均延时,而是使用最小延时和平均抖动。
经过上述计算获得了相应的当前数据包的播放时间后,便可以根据当前数据包的实际播放时间(根据当前系统时间计算获得)与计算获得的当前数据包的播放时间间的差值进行JB深度值的调整。
上述两种动态JB实现方法在运行稳定的网络中可以有效地降低丢包率,保证网络中传输的语音业务的质量。然而,在中国现有的广域网上,网络尖峰情况频繁发生,因此,动态JB还需要在网络尖峰出现时,同样可以降低丢包率,保证语音质量。
所述的网络尖峰是指网络在瞬间出现延时的骤然增大,这种延时的骤然增大在持续一段时间后又恢复到正常的延时,这一段时间便称为网络尖峰。如图2所示,图中的点表示连续一段时间内的所有数据包。网络处于正常情况时,所有的点应该排成一直线,网络延时为0.2秒左右;而当网络出现尖峰时,网络延时在瞬间剧增到1.2秒左右,持续一段时间后又恢复到正常状态,如图2中的斜线所示。例如,在网络中,如果某个路由器由于网络拥塞使得接收端口缓冲区溢出阻塞,则所有到达此端口的数据包都堵塞在缓冲区内持续一段时间,而等到网络拥塞结束时,在瞬间内把所有的数据包全部发送,这时,在接收网关中就会出现如图1的尖峰情况。另外,多台路由器的堆叠放置也将频繁出现网络尖峰情况。
可以看出,上述基于平均延时或最小延时和平均抖动的动态JB调整方法只能适应于比较稳定的网络,而不能适应网络尖峰情况。原因是当网络出现尖峰时,如果按照上述算法,平均延时无法快速增长以反映网络的现实情况;相反,当尖峰结束时,算法中的平均延时同样无法快速减小。这样,在尖峰期间,通过平均延时和平均抖动计算出来的pi必然不是真实反映当前的网络质量状况,因此根据pi值来进行动态JB深度调整也是不正确的。最终结果是当出现网络尖峰时,由于JB深度的不正确调整导致在一段时间内连续丢包,严重影响VOIP的语音质量。
网络尖峰对VOIP业务质量所产生的影响是不可忽视的,动态JB如果不能有效正确地适配这种网络尖峰,则在通话接收端将出现一段时间内几乎所有的数据包均丢失的情况。也就是说,如果动态JB的深度无法适配随时出现的网络尖峰,则对于可能频繁出现网络尖峰的网络来说便无法提供网络用户可以接受的语音服务。
发明内容
鉴于上述现有技术所存在的缺点,本发明的目的是提供一种适配网络尖峰的动态抖动缓存的实现方法,使抖动缓存的深度可以在网络处于网络尖峰时进行适应性调整,从而保证网络处于网络尖峰期间的语音质量。
本发明的目的是通过以下技术方案实现的:
本发明所述的一种适配网络尖峰的动态抖动缓存的实现方法,包括:
A、确定网络尖峰的开始点;
B、计算网络尖峰时的延时值及网络中的抖动值,具体包括:
确定基于前一个数据包的网络中的平均延时值,以及当前数据包与前一个数据包的网络延时差值,并确定所述的网络尖峰时的延时值等于所述的平均延时值与所述的网络延时差值的和;
令网络中的抖动值为平均抖动值,且所述的平均抖动值vi为:vi=α×vi- 1+(1-α)|di-ni|,ni为第i个数据包在网络中的延时,di为网络尖峰时的平均延时值,α为权值因子,且0≤α≤1,i为数据包的序号;
C、根据网络的抖动值及网络尖峰状态的延时值对抖动缓存的深度进行调整。
所述的步骤A包括:
当相邻的两个数据包的网络延时超过设定的门限值时,确定为网络尖峰开始点。
本发明中,步骤A所述的门限值为根据网络中的平均抖动值以及网络中的网络尖峰期间的延时值确定。
所述的步骤B包括:
根据网络的平均延时值和当前网络的相邻两个数据包的延时确定所述的网络延时差值,并计算当前网络中的平均抖动值。
确定所述的网络尖峰时的延时值等于所述的平均延时值与所述的网络延时差值的和的步骤具体包括两种情况:
在网络尖峰的开始点,依据网络正常状态下的平均延时值计算公式计算所述的基于前一个数据包的网络中的平均延时值di-1为:di-1=α×di-2+(1-α)×ni-1,ni-1为第i-1个语音数据包在网络中的延时,α为通过测试获得的权值因子,且0≤α≤1,i为语音数据包的序号,所述的网络延时差值为ni-ni-1,ni为第i个语音数据包在网络中的延时;此时,所述的网络尖峰时的延时值等于所述的平均延时值与所述的差值的和,即di=di-1+ni-ni-1
在网络尖峰期间,依据网络尖峰状态下的平均延时值计算公式计算基于前一个数据包的网络中的平均延时值di-1:di-1=di-2+ni-1-ni-2,同样,所述的网络延时差值为ni-ni-1;此时,所述的网络尖峰时的延时值仍等于所述的平均延时值与所述的差值的和,即di=di-1+ni-ni-1
所述的步骤C包括:
C1、确定当前语音数据包的实际播放时间,定义为旧播放时间,并根据网络的平均抖动值及网络尖峰时的延时值计算当前语音数据包的播放时间,称为新播放时间;
C2、根据所述的旧播放时间和所述的新播放时间,实时对接收端的抖动缓存队列进行深度的调整。
所述的步骤C1包括:
根据当前的系统时间确定当前语音包的旧播放时间;
确定当前语音数据包的新播放时间,所述的当前语音数据包的新播放时间为:pi=tsi+di+γ×vi,pj=pi+tsj-tsi,所述的i为语音段的第一个数据包、j为语音段后续的数据包的序号,所述的γ为对平均抖动值的放大倍数,所述的tsi和tsj分别为发送端发送第i个和第j个语音数据包的时间。
所述的步骤C2还包括:
接收网络尖峰开始时的第一个数据包时,将动态缓存队列清空,并将动态缓存队列的出队指针调整到网络尖峰开始时的第一个数据包。
所述的适配网络尖峰的动态抖动缓存的实现方法还包括:
D、根据相邻的数据包的网络延时确定网络尖峰的结束点;
E、根据当前网络的平均延时值和平均抖动值或最小延时和平均抖动值对动态抖动缓存的深度进行调整。
所述的步骤D包括:
根据相邻的数据包到达接收网关的时间点确定的尖峰斜线的斜率是否小于设定的门限值,如果小于,则确定为网络尖峰的结束点,否则,仍处于网络尖峰期间。
本发明中,步骤D所述的门限值slope为:
slope=slope÷2+|(ni-ni-1)+(ni-ni-2)|÷8
其中,ni、ni-1、ni-2为相邻三个数据包的网络延时。
所述的步骤E包括:
仅在静音段对抖动缓存的深度进行缩短调整,且当调整过程遇到语音数据包时,立即停止所述的缩短调整过程。
由上述本发明提供的技术方案可以看出,本发明可以准确地判断出网络尖峰期的开始点和结束点,并在网络中出现由网络尖峰现象导致的延时时,使用相应的算法对JB的深度进行调整,以适配所述的网络尖峰状态,使得网络处于尖峰期间时,不会出现因尖峰期间的连续丢包而导致VOIP语音质量下降的情况。因此,本发明可以较好地保证网络尖峰现象频繁出现的网络中的语音传输的质量。
附图说明
图1为动态JB实现方案中涉及的各个变量的含义的示意图;
图2为网络中出现网络尖峰现象时的延时示意图;
图3为本发明所述的入队处理过程的流程图;
图4为本发明所述的JB深度调整处理过程的流程图。
具体实施方式
本发明所述的适配网络尖峰的动态抖动缓存的实现方法的核心是在网络尖峰开始后可以及时地调整动态缓存的深度,以适应网络尖峰期间的数据包的缓存处理,从而降低网络中网络尖峰期间的丢包率,提高网络中传输的语音质量。
在本发明的实现过程中对于网络中的网络尖峰状况的开始点和结束点的识别是主要需要解决的技术问题。对于整个网络来说,可以分为两种状态,一种是正常状态,所谓正常状态,指网络处于比较稳定的状态,另一种是网络尖峰状态。网络的初始状态设置为正常状态,并实时地检测网络中是否出现的网络尖峰现象,且当检测到网络尖峰开始点时,开始基于网络尖峰状态进行动态抖动缓存的深度的调整;当检测到尖峰结束点时,则将基于网络尖峰状态的动态抖动缓存的深度调整到正常状态时的动态抖动缓存深度,并可以基于现有的动态抖动缓存的实现方法进行相应的深度的调整,即基于平均延时或最小延时和平均抖动实现动态JB的方法。
现对本发明所述的方法的核心部分的实现方式作进一步的详细说明,具体包括以下步骤:
步骤1:根据网络尖峰的特点在网络中进行实时检测,以确定网络尖峰的开始点;
通常为实时检测相邻的两个数据包的网络延时是否达到网络尖峰的延时时长,如果达到则确定为网络尖峰开始,此时网络处于网络尖峰状态,否则,网络处于正常状态;
具体检测网络尖峰开始点可以采用当相邻两个数据包的网络延时变化超过设定的门限值threshold时,确定为网络尖峰的开始点,例如,根据中国现有的IP(互联网协议)网络状况和实际测试出的数据,所述的门限值定义为:
threshold=vi×2+500
其中,vi为第i个数据包到达时计算得出网络中的平均抖动值,当相邻两个数据包的网络延时等于或大于两倍的平均抖动值再加上500毫秒时,则为网络尖峰的开始点;
当然,所述的门限值也可以采用其他方法确定的相应值,如根据网络状况直接确定一个具体的门限值。
步骤2:计算网络尖峰时的延时值及网络中的抖动值;
例如,可以根据网络的平均延时和当前网络的相邻两个数据包的延时确定网络尖峰时的延时值,并计算当前网络中的平均抖动值,具体方法如下:
首先确定基于前一个数据包的网络中的平均延时值,以及当前数据包与前一个数据包的网络延时差值,然后,根据所述的平均延时值和所述的网络延时差值确定当前网络中的平均抖动值,由于其中所述的前一个数据包的平均延时值di-1的计算包括两种情况,所以具体的计算便包括下述两种情况:
第一种情况为:如果当前网络处于网络尖峰开始点,则依据网络正常状态下的平均延时值计算公式计算基于前一个数据包的网络中的平均延时值di- 1:di-1=α×di-2+(1-α)×ni-1,ni-1为第i-1个语音数据包在网络中的延时,α为通过测试获得的权值因子,且0≤α≤1,i为语音数据包的序号,所述的网络延时差值为ni-ni-1;此时,所述的网络尖峰时的延时值等于所述的平均延时值与所述的网络延时差值的和,即等于di-1+ni-ni-1
第二种情况为:如果当前网络处于网络尖峰期间,则依据网络尖峰状态下的平均延时值计算公式计算基于前一个数据包的网络中的平均延时值di-1:di-1=di-2+ni-1-ni-2,同样,所述的网络延时差值仍为ni-ni-1;此时,所述的网络尖峰时的延时值仍等于所述的平均延时值与所述的网络延时差值的和,即等于di-1+ni-ni-1
依据背景技术的描述,网络中的抖动值可以采用平均抖动值,且所述的平均抖动值vi为:vi=α×vi-1+(1-α)|di-ni|,通常对于采用动态JB方案的网络中,应该已经存在实时计算出的平均抖动值,在本发明中直接获取并用于计算即可,而且,在本发明中,计算需要调整的JB深度的处理过程也同样可以采用网络中已经存在的相应的计算处理过程。
步骤3:确定当前语音数据包的实际播放时间,定义为旧播放时间,并根据网络的平均抖动值及网络尖峰时的延时值计算当前语音数据包的播放时间,称为新播放时间;
所述的步骤3具体为:
根据当前的系统时间确定当前语音包的旧播放时间,即旧播放时间=系统当前时间×时间转换变量,所述的时间转换变量为将毫秒转换为系统的计时单位1/8毫秒;
确定当前语音数据包的新播放时间,所述的当前语音数据包的新播放时间为:pi=tsi+di+γ×vi,pj=pi+tsj-tsi,所述的i为语音段的第一个数据包、j为语音段后续的数据包的序号,所述的γ为对平均抖动的放大倍数,所述的tsi和tsj分别为发送端发送第i个和第j个语音数据包的时间。
步骤4:根据所述的旧播放时间和所述的新播放时间,实时对接收端的抖动缓存队列进行深度的调整,即当出现网络尖峰现象时,立即根据相应的计算结果对JB深度进行调整;
在执行步骤4的过程中,还包括当接收到网络尖峰期间的第一个语音数据包时将动态缓存队列清空,并将动态缓存队列的出队指针调整到网络尖峰时的第一个数据包,即将网络尖峰开始后收到的第一个数据包立即播放,以避免接收网关在网络尖峰期间增加不必要的抖动缓存队列的缓存延时,从而保证语音的质量;
对抖动缓存进行深度进行调整具体为:计算新播放时间和旧播放时间之差,即为抖动缓存深度需要调整的幅度,为便于进行调整还需要将所得的差值除以抖动缓存的元素长度值,获得最终的抖动缓存深度需要调整的幅度值,并依据需要调整的幅度值通过调整抖动缓存的出队指针进行抖动缓存深度的调整。抖动缓存队列的每个元素长度代表不同编解码打包时长的基本单位,如G.711为10ms、G.729为10ms、G.723为30ms。
经过上述过程,本发明实现了可以在网络尖峰现象出现时对抖动缓存的深度进行调整,以适应网络尖峰时期的数据包的缓存处理,同时,在上述过程中还包括实时检测网络中的网络尖峰现象是否结束,并在网络尖峰结束时,将抖动缓存的深度恢复到正常状态时的深度,也就是说,本发明所述的方法中还包括以下处理过程:
(1)实时检测网络中的网络尖峰的结束点;
尖峰期间的显著特点是大量数据包几乎在同一时间到达接收网关。我们把出现在尖峰期间的各个数据包到达的时间点连成的斜线称为尖峰斜线,如图2所示,这样便可以通过计算得到相邻三个数据包到达的时间点所连成的斜线的近似斜率值slope确定网络尖峰是否结束,即将相邻三点斜线的斜率值变化作为网络尖峰的结束点的判断依据;近似斜率计算如下:
slope=slope÷2+|(ni-ni-1)+(ni-ni-2)|÷8
其中,ni、ni-1、ni-2为相邻三个数据包的网络延时,如图2和上述算式可以看出,在持续的网络尖峰期间,斜率值的变化是逐渐由大到小,因此,我们可以定义当斜率值小于某个特定的值时,确定为网络尖峰的结束点,例如,当确定的特定的值为63时,则可以通过如下语句进行网络尖峰期间是否结束的判断:
if(slope≤63)then  网络尖峰结束;
(2)确定网络尖峰的结束点后,则根据实时统计的网络正常状态时的平均延时值和平均抖动进行抖动缓存的深度的调整,从而使得抖动缓存调整所依据的平均延时值能够真实反映网络的实际质量状况。
通常当收到数据包时需要进行的处理包括进入抖动缓存队列的处理过程和出抖动缓存队列的处理过程。本发明主要是在数据包进入抖动缓存队列的处理过程中进行了相应的改进,本发明针对数据包进入抖动缓存队列的处理过程的具体的实现流程如图3所示,具体包括以下步骤:
步骤31:在语音传输过程中实时统计计算当前数据包的网络延时值ni,以便于利用该值进行后续的计算;
步骤32:判断当前网络是处于正常状态还是处于网络尖峰状态,如果处于正常状态,则执行步骤33,否则,执行步骤310;
判断网络所处于的状态可以依据相应的标志位进行,例如,当确定网络进入网络尖峰状态时,则将网络尖峰状态的标志位设置为有效,或将网络状态标志设置为网络尖峰状态,这样,该步骤中便可以很容易地判断出当前网络所处于的状态;
步骤33:计算当前数据包的网络延时值ni与保存的前一个数据包的网络延时值ni-1的差值,以便于根据该差值判断网络是否进入网络尖峰状态,该步骤和步骤34的作用可以认为是实时监测网络中的网络尖峰开始点;
步骤34:判断所述的差值是否大于设定的网络尖峰开始的门限值,如果大于,则执行步骤35,否则,执行步骤36;
步骤35:令尖峰斜线的斜率为0,且确定进入网络尖峰期间,并调整抖动缓存队列的出队指针,使其指向当前数据包的位置,并执行步骤36;
步骤36:判断当前网络是处于正常状态还是处于网络尖峰状态,并根据步骤2所述的各个算式进行相应的计算,如果处于正常状态,则执行步骤37,否则,执行步骤38;
步骤37:采用网络正常状态时的平均延时计算算式计算网络中的平均延时值,可以利用背景技术中的算式2进行网络中的平均延时的计算;
步骤38:采用网络尖峰状态时的平均延时计算算式计算网络中的平均延时,参见前面所述的步骤2中的网络尖峰时的延时值计算过程;
步骤39:采用前面所述的步骤2所述的方法计算网络中的平均抖动值。
步骤310:根据连续收到的相邻的三个数据包的网络延时值更新所述的斜率值,即采用下述算式进行新的斜率值的计算:
slope=slope÷2+|(ni-ni-1)+(ni-ni-2)|÷8;
因此,在对语音数据包进行入队处理过程中,还需要实时记录连续三个数据包的延时值ni、ni-1、ni-2,以便于步骤310根据保存的连续三个数据包的延时值更新所述的尖峰斜线的斜率值;具体采用的方法为实时保存着最新的连续两个数据包的延时值,当一个新的数据包到来时,便可以根据新的数据包的延时值ni和保存的两个数据包的延时值ni-1、ni-2进行尖峰斜线的斜率值的更新,之后,再将ni-1原来保存的值赋给ni-2,将ni值赋给ni-1,从而使得系统中一直保存着最新的连续两个数据包的延时值,同时该保存的延时值还用于步骤33中计算相邻的两个数据包的延时值的差值;
步骤311:判断更新后的斜率值是否小于设定的斜率门限值,如果小于,则执行步骤312,令当前网络状态为正常状态,之后执行步骤36,否则,直接执行步骤36。
通过上述步骤31至步骤312的描述可以看出,当收到语音数据包并进行入抖动缓存队列的处理时,为实现本发明,还需要根据当前的网络状态基于当前的数据包计算相应的平均延时和平均抖动值,并保存连续两个数据包的延时值,以便于根据所述的平均延时和平均抖动进行抖动缓存深度的调整,并可根据保存的数据包的延时值确定网络是处于正常状态还是处于网络尖峰状态。
经过了上述的语音数据包的入抖动缓存队列的处理过程后,则可以在数据包出队的过程中根据入抖动缓存队列处理过程获得的计算结果进行进一步的计算,再对JB的深度进行相应的调整,对于因网络尖峰出现导致需要对JB深度进行调整时,通常为对JB深度进行增长处理,具体的JB深度调整点选择在网络尖峰开始点即可,而对于因网络尖峰状态结束或其他原因导致需要对JB深度进行调整时,则相应的调整点通常选择在每个静音段的开始点,尤其是对JB深度进行缩短调整时更应当选择在静音段进行,以避免在语音段开始点进行缩短JB深度的调整,导致丢弃该语音段的前面若干语音包,造成语音质量下降的现象出现;对JB深度进行调整的具体的处理过程参见图4,包括以下步骤:
步骤41:首先需要计算当前静音包的实际播放时间,定义为旧播放时间,所述的旧播放时间为根据当前的系统时间确定,即旧播放时间=系统当前时间×时间转换变量,通过所述的时间转换变量可以将毫秒转换为系统的计时单位1/8毫秒;
步骤42:根据背景技术所述的算式9或算式10,以及上述步骤31至步骤312获得的结果,计算出当前静音包的播放时间,定义为新播放时间,新播放时间就是符合当前网络抖动状况的播放时间;
步骤43:计算新播放时间和旧播放时间之差,即为JB深度需要调整的幅度,为便于进行调整还需要将所得的差值除以JB的元素长度值(即打包时长的基本单位),获得最终的JB深度需要调整的幅度值,如果所得的差值为“0”,则不需要进行调整;
获得所述的需要调整的幅度值后,对于针对网络尖峰期间进行的JB深度调整,直接执行步骤47,以保证当网络尖峰开始时,可以快速地通过递减出队指针增长JB深度以适应网络尖峰状态下数据包的缓存处理,而对于其他情况下的JB深度调整,则执行步骤44;
步骤44:比较确定所述的幅度值的绝对值与设定的允许的一次最大调整的幅度值中较小的一个,作为实际针对JB调整的幅度值;
所述的允许的一次最大调整的幅度值即为调整幅度控制因子,通过实际网或模拟实际网上测试,取值可以为10,单位为JB队列单元格所对应的时间(即基本单位),例如编解码为G.711时,动态JB一次调整的幅度范围允许为增长或缩短JB深度(10×10)毫秒;
步骤45:判断所述的计算获得的幅度值是否小于“0”,如果是执行步骤46,否则,执行步骤47;
步骤46:对JB进行深度缩短的调整,具体为:
步骤461:建立循环变量,并令其初始值为“0”;
步骤462:判断循环变量是否小于实际针对JB调整的幅度值,如果是,则执行步骤463,否则,执行步骤48;
步骤463:判断当前数据包是否为语音包,如果是语音包,则执行步骤48,否则,执行步骤464;
即在进行JB深度缩短操作时,只要遇到语音包就立刻停止缩短调整,以保证JB深度调整时不删除任何语音包,避免由于JB深度动态调整造成的语音质量下降;
步骤464:将当前数据包类型置为空包,并将出队指针递增1,循环变量加1,执行步骤462;
步骤47:对JB进行深度增长调整,具体为:
步骤471:建立循环变量,并令其初始值为“0”;
步骤472:判断循环变量是否小于实际需要针对JB调整的幅度值,如果是,则执行步骤473,否则,执行步骤48;
步骤473:将出队指针递减1,并将当前数据包类型置为空包,循环变量加1,执行步骤472;
步骤48:根据调整的结果更新JB的深度值,过程结束。
由上述针对本发明的详细的描述可以看出,本发明能根据不断变化的网络状况进行动态JB深度的实时调整,使得接收网关的抗抖动机制能够动态地适配变化的IP网络,本发明尤其可以很好地适应网络中的网络尖峰状态时对JB深度的要求。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (12)

1、一种适配网络尖峰的动态抖动缓存的实现方法,其特征在于包括:
A、确定网络尖峰的开始点;
B、计算网络尖峰时的延时值及网络中的抖动值,具体包括:
确定基于前一个数据包的网络中的平均延时值,以及当前数据包与前一个数据包的网络延时差值,并确定所述的网络尖峰时的延时值等于所述的平均延时值与所述的网络延时差值的和;
令网络中的抖动值为平均抖动值,且所述的平均抖动值vi为:vi=α×vi- 1+(1-α)|di-ni|,ni为第i个数据包在网络中的延时,di为网络尖峰时的延时值,α为权值因子,且0≤α≤1,i为数据包的序号;
C、根据网络中的抖动值及网络尖峰时的延时值对抖动缓存的深度进行调整。
2、根据权利要求1所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于所述的步骤A包括:
当相邻的两个数据包的网络延时超过设定的门限值时,确定为网络尖峰开始点。
3、根据权利要求2所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于步骤A所述的门限值为根据网络中的平均抖动值以及网络中的网络尖峰期间的延时值确定。
4、根据权利要求1所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于所述的步骤B包括:
根据网络的平均延时值和当前网络的相邻两个数据包的延时确定所述网络延时差值,并计算当前网络中的平均抖动值。
5、根据权利要求4所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于,确定所述的网络尖峰时的延时值等于所述的平均延时值与所述的网络延时差值的和的步骤具体包括两种情况:
在网络尖峰的开始点,依据网络正常状态下的平均延时值计算公式计算所述的基于前一个数据包的网络中的平均延时值di-1为:di-1=α×di-2+(1-α)×ni-1,ni-1为第i-1个语音数据包在网络中的延时,α为通过测试获得的权值因子,且0≤α≤1,i为语音数据包的序号,所述的网络延时差值为ni-ni-1,ni为第i个语音数据包在网络中的延时;此时,所述的网络尖峰时的延时值等于所述的平均延时值与所述的差值的和,即di=di-1+ni-ni-1
在网络尖峰期间,依据网络尖峰状态下的平均延时值计算公式计算基于前一个数据包的网络中的平均延时值di-1为:di-1=di-2+ni-1-ni-2,同样,所述的网络延时差值为ni-ni-1;此时,所述的网络尖峰时的延时值仍等于所述的平均延时值与所述的差值的和,即di=di-1+ni-ni-1
6、根据权利要求1、4或5所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于所述的步骤C包括:
C1、确定当前语音数据包的实际播放时间,定义为旧播放时间,并根据网络的平均抖动值及网络尖峰时的延时值计算当前语音数据包的播放时间,称为新播放时间;
C2、根据所述的旧播放时间和所述的新播放时间,实时对接收端的抖动缓存队列进行深度的调整。
7、根据权利要求6所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于所述的步骤C1包括:
根据当前的系统时间确定当前语音包的旧播放时间;
确定当前语音数据包的新播放时间,所述的当前语音数据包的新播放时间为:pi=tsi+di+γ×vi,pj=pi+tsj-tsi,所述的i为语音段的第一个数据包、j为语音段后续的数据包的序号,所述的γ为对平均抖动值的放大倍数,所述的tsi和tsj分别为发送端发送第i个和第j个语音数据包的时间。
8、根据权利要求6所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于所述的步骤C2还包括:
接收网络尖峰开始时的第一个数据包时,将动态缓存队列清空,并将动态缓存队列的出队指针调整到网络尖峰开始时的第一个数据包。
9、根据权利要求1所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于该方法还包括:
D、根据相邻的数据包的网络延时确定网络尖峰的结束点;
E、根据当前网络的平均延时值和平均抖动值或最小延时和平均抖动值对动态抖动缓存的深度进行调整。
10、根据权利要求9所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于所述的步骤D包括:
根据相邻的数据包到达接收网关的时间点确定的尖峰斜线的斜率是否小于设定的门限值,如果小于,则确定为网络尖峰的结束点,否则,仍处于网络尖峰期间。
11、根据权利要求10所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于步骤D所述的门限值slope为:
slope=slope÷2+|(ni-ni-1)+(ni-ni-2)|÷8
其中,ni、ni-1、ni-2为相邻三个数据包的网络延时。
12、根据权利要求9所述的适配网络尖峰的动态抖动缓存的实现方法,其特征在于所述的步骤E包括:
仅在静音段对抖动缓存的深度进行缩短调整,且当调整过程遇到语音数据包时,立即停止所述的缩短调整过程。
CNB200410033180XA 2004-04-02 2004-04-02 适配网络尖峰的动态抖动缓存的实现方法 Expired - Lifetime CN100426783C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200410033180XA CN100426783C (zh) 2004-04-02 2004-04-02 适配网络尖峰的动态抖动缓存的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200410033180XA CN100426783C (zh) 2004-04-02 2004-04-02 适配网络尖峰的动态抖动缓存的实现方法

Publications (2)

Publication Number Publication Date
CN1677953A CN1677953A (zh) 2005-10-05
CN100426783C true CN100426783C (zh) 2008-10-15

Family

ID=35050265

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200410033180XA Expired - Lifetime CN100426783C (zh) 2004-04-02 2004-04-02 适配网络尖峰的动态抖动缓存的实现方法

Country Status (1)

Country Link
CN (1) CN100426783C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101175104B (zh) * 2006-10-31 2010-04-21 华为技术有限公司 一种抖动缓存装置和抖动缓存管理方法
CN101582832B (zh) * 2008-05-17 2012-10-31 红杉树(杭州)信息技术有限公司 VoIP抖动缓冲区的动态处理方法
CN105119755B (zh) * 2015-09-10 2018-06-19 广州市百果园网络科技有限公司 一种抖动缓冲区调整方法及装置
CN105743815B (zh) * 2016-04-06 2021-09-10 腾讯科技(深圳)有限公司 抖动缓冲数据处理的方法和装置
CN112422333B (zh) * 2020-11-06 2022-12-20 深圳市晨北科技有限公司 一种配网情况确定方法、系统及相关装置
CN112637016B (zh) * 2020-12-24 2024-06-21 百果园技术(新加坡)有限公司 一种网络延时更新方法、系统、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301258B1 (en) * 1997-12-04 2001-10-09 At&T Corp. Low-latency buffering for packet telephony
CN1352846A (zh) * 1999-01-14 2002-06-05 艾利森电话股份有限公司 自适应抖动缓存
US6683889B1 (en) * 1999-11-15 2004-01-27 Siemens Information & Communication Networks, Inc. Apparatus and method for adaptive jitter buffers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301258B1 (en) * 1997-12-04 2001-10-09 At&T Corp. Low-latency buffering for packet telephony
CN1352846A (zh) * 1999-01-14 2002-06-05 艾利森电话股份有限公司 自适应抖动缓存
US6683889B1 (en) * 1999-11-15 2004-01-27 Siemens Information & Communication Networks, Inc. Apparatus and method for adaptive jitter buffers

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IP网络的实时分组音频回放自适应算法. 韩传久等.桂林电子工业学院学报,第20卷第4期. 2000
IP网络的实时分组音频回放自适应算法. 韩传久等.桂林电子工业学院学报,第20卷第4期. 2000 *

Also Published As

Publication number Publication date
CN1677953A (zh) 2005-10-05

Similar Documents

Publication Publication Date Title
US7881284B2 (en) Method and apparatus for dynamically adjusting the playout delay of audio signals
US7324444B1 (en) Adaptive playout scheduling for multimedia communication
CN100525281C (zh) 语音传输过程中实现动态调整抖动缓存的方法
KR100902456B1 (ko) 단 대 단 VoIP 매체 지연을 관리하는 방법 및 장치
AU756474B2 (en) Adaptive jitter buffering
US8937963B1 (en) Integrated adaptive jitter buffer
US6259677B1 (en) Clock synchronization and dynamic jitter management for voice over IP and real-time data
US6658027B1 (en) Jitter buffer management
EP1159719B1 (en) Jitter buffer and methods for control of same
CN110572333B (zh) 一种带宽探测阶段的发送速率调整方法及拥塞控制算法的实现方法
US20050207342A1 (en) Communication terminal device, communication terminal receiving method, communication system and gateway
US7450601B2 (en) Method and communication apparatus for controlling a jitter buffer
CN101582832B (zh) VoIP抖动缓冲区的动态处理方法
US7920492B1 (en) Devices, softwares and methods for redundantly encoding a data stream for network transmission with adjustable redundant-coding delay
EP1440375B1 (en) Network media playout
WO2017000719A1 (zh) 一种基于队列时延的拥塞控制方法及装置
US20010055276A1 (en) Apparatus for adjusting a local sampling rate based on the rate of reception of packets
US20040057381A1 (en) Codec aware adaptive playout method and playout device
WO2007051495A1 (en) Method and arrangement in a mobile telecommunication network
WO2008023303A3 (en) Jitter buffer adjustment
CN102761468A (zh) 一种自适应调整语音抖动缓存区的方法及系统
KR20160002720A (ko) VoIP 대역폭 관리
EP2140590A2 (en) Method of transmitting data in a communication system
CN100426783C (zh) 适配网络尖峰的动态抖动缓存的实现方法
WO2019155561A1 (ja) 回線品質測定システム及び回線品質測定方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SHENZHEN LIANCHUANG INTELLECTUAL PROPERTY SERVICE

Free format text: FORMER OWNER: HUAWEI TECHNOLOGY CO., LTD.

Effective date: 20141208

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518129 SHENZHEN, GUANGDONG PROVINCE TO: 518052 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20141208

Address after: 518052, Guangdong, Shenzhen province Nanshan District Nanshan digital cultural industry base, east block, room 407-408

Patentee after: Shenzhen LIAN intellectual property service center

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

ASS Succession or assignment of patent right

Owner name: BEIJING Z-GOOD TECHNOLOGY SERVICE CO., LTD.

Free format text: FORMER OWNER: SHENZHEN LIANCHUANG INTELLECTUAL PROPERTY SERVICE CENTER

Effective date: 20150122

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518052 SHENZHEN, GUANGDONG PROVINCE TO: 100085 HAIDIAN, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20150122

Address after: 100085 Beijing city Haidian District No. 33 Xiaoying Road 1 1F06 room

Patentee after: BEIJING ZHIGU TECH Co.,Ltd.

Address before: 518052, Guangdong, Shenzhen province Nanshan District Nanshan digital cultural industry base, east block, room 407-408

Patentee before: Shenzhen LIAN intellectual property service center

CX01 Expiry of patent term

Granted publication date: 20081015

CX01 Expiry of patent term