一种分组交换网络分布式自适应抖动缓冲区调整方法 (1)技术领域
本发明涉及一种分组交换网络分布式自适应抖动缓冲区调整方法,尤其涉及一种基于分布式抖动缓冲区测量的分布式自适应抖动缓冲区调整方法。
(2)背景技术
目前,分组交换网络具有价格便宜、协议灵活、良好的可扩展性、技术成熟等优势,得到了广泛的应用。许多实时业务,例如IP电话、TDM(时分复用)电路仿真业务等已经或者即将尝试在分组交换网络上传输。分组交换网络采用异步传输方式,而大多数的实时业务要求端到端的时钟同步,要求接收端时钟和发送端时钟保持一致。当接收端和发送端的时钟不是取自于同一个公共时钟同步网时,接收端需要根据接收到的数据分组序列取出发送端时钟信息,即时钟恢复。实时周期性业务经过分组交换网络传输,由于排队、拥塞、不同路径选择等影响,数据分组所经历的传输时延在不断地随机变化,我们称之为传输时延抖动。分组交换网络中的传输时延抖动主要包括两个部分:一个是固定的传输时延X;另一个为抖动时延Y,包括分组交换网络引入排队、拥塞、不同路径选择等所造成的随机性时延。这样一来,发送端发出的周期性的数据分组在接收端的到达时间是不确定的,这样给接收端的时钟恢复带来困难,时钟恢复的主要任务是在抖动影响下正确提取发送端的时钟信息。
目前,时钟恢复方法主要有时标方法和基于抖动缓冲区测量的时钟恢复方法。时标方法就是把发送端的时钟信息显式地传送给接收端,接收端通过该时钟信息调整本地时钟频率,其缺点是在数据分组中需要保留专门的时钟信息字段。基于抖动缓冲区测量的时钟恢复方法就是根据到达接收端抖动缓冲区的数据分组序列快慢来恢复发送端地时钟信息,以抑制时延抖动的影响。
如图2所示,基于抖动缓冲区测量的时钟恢复方法原理结构如下:接收端将到达的数据分组放入一个抖动缓冲区12,数据分组进入这个抖动缓冲区12的快慢取决于源端的时钟频率和分组交换网络带来的时延抖动的影响,同时,接收端按照本地时钟14取走抖动缓冲区中的数据分组。初始,接收端要等到抖动缓冲区内的数据分组数累积到正常工作点A时,才开始按照本地时钟频率取走抖动缓冲区中的数据分组。接收端检测装置10、13周期性地对进入抖动缓冲区的数据分组总数和离开抖动缓冲区的数据分组总数分别进行统计,将统计结果送往控制器11,当一个统计周期内进入抖动缓冲区的数据分组总数小于低门限阈值时(离开抖动缓冲区的数据分组总数-容差=低门限阈值),抖动缓冲区填充水平B将小于正常工作点A,说明本地时钟快于发送端时钟,控制器11降低本地时钟频率,使抖动缓冲区填充水平B增加,向正常工作点A移动;当一个统计周期内进入抖动缓冲区的数据分组总数大于高门限阈值时(离开抖动缓冲区的数据分组总数+容差=高门限阈值),抖动缓冲区填充水平B将大于正常工作点A,说明本地时钟慢于发送端时钟,控制器增加本地时钟频率,使抖动缓冲区填充水平B降低,向正常工作点A移动;当一个统计周期内进入抖动缓冲区的数据分组总数在低门限阈值和高门限阈值之间时,控制器保持本地时钟频率不变,例如,假设统计周期为1秒,单位时间离开抖动缓冲区的数据分组总数为1000,容差为5分组/秒,那么在单位时间内进入抖动缓冲区的数据分组总数在995~1005之间时,控制器保持本地时钟频率不变。这样,通过调整本地时钟频率,维持抖动缓冲区填充水平B在抖动缓冲区的正常工作点A位置的一定范围内,使本地时钟频率跟随发送端时钟频率。美国专利US6400683,公开日为2002年6月4日,发明创造名称为“异步传输模式网络中的自适应时钟恢复”(Adaptive clock recovery inasynchronous transfer mode networks)就公开了一种类似方法。
通常,基于抖动缓冲区测量的时钟恢复方法中,抖动缓冲区的大小及其正常工作点都是固定的,固定设置抖动缓冲区的大小及其正常工作点的一个隐含的前提是:分组交换网络引入的最大延迟抖动能够被抖动缓冲区吸收。由于分组交换网络引入的最大延迟抖动通常是不可预测的,为吸收最大延迟抖动并避免抖动缓冲区溢出,必须将抖动缓冲区大小和正常工作点设置得足够大,这不仅可能造成抖动缓冲区使用上的浪费,同时会产生较大的排队延迟。因此,在基于固定抖动缓冲区测量的时钟恢复方法的基础上,研究人员提出了一种基于自适应抖动缓冲区测量的抖动缓冲区调整方法,其基本结构原理如图3,接收端将到达的数据分组放入一个抖动缓冲区22,在该方法中,抖动缓冲区大小C或其正常工作点A都是可以根据分组交换网络的状况自适应地动态进行调整。更具体地说,该方法通过监测分组网络引入的延迟,在分组交换网络引入的传输时延抖动增大时,自适应地动态增大抖动缓冲区大小C或正常工作点A,能够吸收更大的延迟抖动,同时避免缓冲区溢出;在分组网络引入的延迟抖动变小时,自适应地动态减小抖动缓冲区大小C或正常工作点A,提高了抖动缓冲区的利用率,同时减少了抖动缓冲区引入的排队延迟。同时,由于抖动缓冲区大小C和正常工作点A可动态自适应地进行调整,消除了分组交换网络瞬态情况下产生的延迟和抖动异常对抖动缓冲区的影响。通常,有一检测装置对周期性地本地抖动缓冲区填充水平B进行采样,控制器21对采样值进行处理,获得本地抖动缓冲区填充水平变化趋势的预测,进一步地,根据该预测值获得抖动缓冲区大小偏差估计或正常工作点偏差估计,从而对本地抖动缓冲区大小C或正常工作点A作出调整。其中,控制器21也对对抖动缓冲区填充水平变化趋势的预测所采用的处理方法很多,例如:1994年6月Proc.IEEE INFOCOMM 680-686页公开了一篇文章,作者是:R.Ramjee,Jim.Kurose等,文章名称为:“广域网分组音频应用中的自适应回放机制”(Adaptive playoutmechanisms for packetized audio applications in wide area networks),给出了一种基于自回归估计(Autoregressive Estimate Based)的延迟调整算法。1999年3月Proc.IEEEICASSP 3097-3100页公开了一篇文章,作者是:Phillip Deleon,Cormac.J.Sreenan,文章名称为:“媒体回放缓冲中的自适应预测器”(A adaptive predictor for media playout buffering),给出了一种基于标准最小均方滤波器(Normalized Least Mean Squares Filter)的延迟调整算法。1998年1月,Multimedia Systems卷6 17-28页公开了一篇文章,作者是:Sue.B.Moon,Jim.Kurose等,文章名称为:“分组音频回放延迟调整:性能边界及算法”(Packet audioplayout delay adjustment:Performance bounds and algorithms),给出了一种基于先前延迟直方图(Histogram of previous delay)的延迟调整算法。美国专利申请号09/833,569,公开日2002年1月17日,发明创造名称为“自动-自适应抖动缓冲区”(Auto-adaptive jitter buffer)就公开了一种类似方法。
通常,基于自适应抖动缓冲区测量的时钟恢复方法中,只有等到抖动缓冲区大小或正常工作点收敛到一特定点,足以吸收分组交换网络引入的最大延迟抖动时,才可能达到时钟恢复过程的收敛。在自适应调整抖动缓冲区大小的过程中,显然如果该过程到达稳定的收敛时间越长,时钟恢复到达稳定的收敛时间也越长。因此,为加速时钟恢复,需要找到方法来加速自适应抖动缓冲区大小或正常工作点调整过程的收敛。
(3)发明内容
本发明旨在提供一种分组交换网络通信分布式自适应抖动缓冲区调整方法,以加速时钟恢复过程和有效利用抖动缓冲区,该方法不对传统的基于自适应抖动缓冲区调整的时钟恢复做大的改动,对于双向流量传送的情况,在自适应调整抖动缓冲区的过程中不仅仅考虑本地获得的控制信息,同时将发送端的反馈信息考虑在内,当反馈信息同本地获得的控制信息具有相关性时,该方法能加速抖动缓冲区的收敛,进而加速时钟恢复的收敛。
本发明是通过如下技术方案实现的,包括如下步骤:
1)、设置本地抖动缓冲区调整周期以及该调整周期内的采样时间间隔、初始时刻本地抖动缓冲区正常工作点;
2)、在一个本地抖动缓冲区调整周期中,以所定义的采样时间间隔对本地抖动缓冲区填充水平进行采样,获得一组本地抖动缓冲区填充水平的采样序列;
3)、在一个本地抖动缓冲区调整周期中,对步骤2)所获得的本地抖动缓冲区填充水平的采样序列进行运算处理,获得该本地抖动缓冲区调整周期内一反映本地抖动缓冲区填充水平变化趋势的预测值,并将该预测值反馈给数据发送端;同时获得的数据发送端反映其抖动缓冲区填充水平变化趋势的预测值;
4)、根据上述本地抖动缓冲区填充水平变化趋势的预测值、以及所获得的数据发送端反映其抖动缓冲区填充水平变化趋势的预测值,进行线性化处理,获得该本地抖动缓冲区调整周期内一反映本地抖动缓冲区正常工作点的偏差估计;
5)、控制器根据当前时刻本地抖动缓冲区大小及本地抖动缓冲区正常工作点的偏差的估计来调整下一抖动缓冲区调整周期内本地抖动缓冲区正常工作点;
在下一本地抖动缓冲区调整周期,重复上述步骤1)-5)。
所述的步骤3)本地抖动缓冲区填充水平的采样序列进行运算处理采用最小二乘线性回归法,本地抖动缓冲区填充水平变化趋势的预测值满足等式:
f^L(mL)=nL·Σi=0nL-1(φmL(i)·tmL(i))-Σi=0nL-1φmL(i)·Σi=0nL-1tmL(i)nL·Σi=0nL-1tmL(i)2-(Σi=0nL-1tmL(i))2]]>
其中,φmL(i)为第m次本地抖动缓冲区调整周期内抖动缓冲区填充水平的第i次采样;tmL(i)为第m次本地抖动缓冲区调整周期内的第i次采样时间;nL为本地抖动缓冲区调整周期内的采样次数。
所述的步骤3)反馈采用实时传输协议/实时传输控制协议传送方法,它将本地抖动缓冲区填充水平变化趋势的预测值封装到数据分组,通过分组交换网络反馈给数据发送端。
所述的步骤4)中抖动缓冲区正常工作点的偏差估计满足等式:
ΔA^L(m)={ALL×f^L(mL)+ALS×f^S(mS)}×TL]]>
其中,ALL表示本地抖动缓冲区填充水平变化趋势预测值的调整因子;ALS表示数据发送端端抖动缓冲区填充水平变化趋势预测值的调整因子;为数据发送端反映其抖动缓冲区填充水平变化趋势的预测值。
所述的步骤5)下一抖动缓冲区调整周期内本地抖动缓冲区正常工作点调整满足等式:
AL(m+1)=AL(m)+ΔA^L(m)]]>
其中,AL(m)为当前抖动缓冲区调整周期内本地抖动缓冲区正常工作点大小。
本发明方法考虑到实际网络中,双向流量存在的普遍性。在一定条件下,双向流量之间具有一定的相关性,这种相关性将反映到抖动缓冲区的变化中。本发明方法通过在一个抖动缓冲区调整周期中对本地和发送端抖动缓冲区填充水平变化趋势预测值进行线性化处理,获得反映接收端本地缓冲区正常工作点大小的偏差估计,以调整本地抖动缓冲区正常工作点。由于同一抖动缓冲区调整周期内本地抖动缓冲区填充水平变化趋势预测值和数据发送端抖动缓冲区填充水平变化趋势预测值具有相关性,所以该方法能有效加速本地抖动缓冲区大小和正常工作点的收敛,使得本地抖动缓冲区时钟频率调整能够快速、准确地跟随数据发送端时钟频率。
(4)附图说明
图1、分组交换网络中分组传输时延;
图2、基于抖动缓冲区测量的时钟恢复方法原理结构示意图;
图3、自适应抖动缓冲区调整方法原理结构示意图;
图4、本发明分布式自适应抖动缓冲区调整原理图;
图5、本发明自适应抖动缓冲区调整方法流程示意图;
(5)具体实施方式
下面结合附图所示实施例对本发明作进一步的详细说明。
图4是本发明分布式自适应抖动缓冲区调整原理图,它包括通过分组交换网300进行双向通信的通信装置100、200,图例中抖动缓冲区122、222分别是通信装置100、200的数据接收抖动缓冲区,发送数据的封装、发送部分未在图中标明。以通信装置100抖动缓冲区122为例,检测装置120周期性地对抖动缓冲区填充水平B进行采样,控制器121对采样值φmR(i)进行处理,获得本地抖动缓冲区填充水平变化趋势的预测并将该预测值反馈给数据发送端,即通信装置200,同时,控制器121也接收从分组数据中恢复出来的发送端抖动缓冲区填充水平变化趋势的预测值从而进一步地获得本地抖动缓冲区正常工作点偏差估计从而对本地抖动缓冲区正常工作点A作出调整。由图示上半部分可见,通信装置200的调整过程与上述通信装置100的相同。
图5是本发明分布式自适应抖动缓冲区调整方法流程示意图,以通信装置100抖动缓冲区为例,它包括如下具体步骤:
1)、系统参数设置。设置本地抖动缓冲区调整周期TR、本地抖动缓冲区调整周期TR内对本地抖动缓冲区填充水平进行采样的采样时间间隔ΔSR、初始时刻本地抖动缓冲区正常工作点AR(0);
2)、本地抖动缓冲区填充水平采样。在第m个本地抖动缓冲区调整周期TR中,以所定义的采样时间间隔ΔSR对本地抖动缓冲区填充水平进行nR次采样(nR=TR/ΔSR),获得该本地抖动缓冲区调整周期TR内一组本地抖动缓冲区填充水平的采样序列φmR(i),其对应的采样时刻表示为tmR(i)。其中,φmR(i)表示第m个本地抖动缓冲区调整周期TR内的第i次采样时抖动缓冲区填充水平大小(位/秒),tmR(i)表示第m个本地抖动缓冲区调整周期TR内的第i次采样时间,0≤i<nR;
3)、计算并向发送端反馈本地抖动缓冲区填充水平变化趋势预测值并接收发送端抖动缓冲区填充水平变化趋势预测值。对采样获得的抖动缓冲区填充水平的采样序列φmR(i),进行运算处理,获得该第m个本地抖动缓冲区调整周期TR内一反映本地抖动缓冲区填充水平变化趋势的预测值并将该预测值分别反馈给数据发送端:
本实施例中,我们采用最小二乘线性回归法(LSLR)计算进行处理,获得反映接收端本地抖动缓冲区填充水平变化趋势的本地预测值
f^R(mR)=nR·Σi=0nR-1(φmR(i)·tmR(i))-Σi=0nR-1φmR(i)·Σi=0nR-1tmR(i)nR·Σi=0nR-1tmR(i)2-(Σi=0nR-1tmR(i))2]]>
本实施例中,采用实时传输协议/实时传输控制协议(RTP/RTCP)作为反馈信息传送机制,控制器输出的反馈信息被封装到RTP分组中,通过分组交换网络反馈给发送端。同时控制器接收从数据分组中恢复出的数据发送端抖动缓冲区填充水平变化趋势的预测值
4)、本地抖动缓冲区正常工作点偏差估计。选择本地抖动缓冲区调整因子ARL、数据发送端抖动缓冲区调整因子ARS,根据抖动缓冲区填充水平变化趋势的本地预测值及数据发送端的抖动缓冲区填充水平变化趋势的预测值进行线性化处理,获得数据接收端缓冲区大小偏差的估计
ΔA^R(m)={ARL×fR^(mR)+ARS×f^S(mS)}×TR]]>
5)、本地抖动缓冲区正常工作点调整。在第m个本地抖动缓冲区调整周期的结束时刻,根据当前抖动缓冲区大小AR(m)及其偏差的估计调整下一调整周期内接收端本地缓冲区的正常工作点AR(m+1):
AR(m+1)=AR(m)+ΔAR^(m)]]>
在下一抖动缓冲区调整周期内,重复上述步骤2)-5)。
同样,在通信装置200的抖动缓冲区222可以依照本发明方法,以一定的采样时间间隔对本地抖动缓冲区填充水平B’进行采样,获得一组该抖动缓冲区填充水平的采样序列φmS(i),并对该采样序列进行处理,获得一反映抖动缓冲区填充水平变化趋势的预测值并从接收的数据分组中恢复出通信装置100的抖动缓冲区填充水平变化趋势的预测值对其抖动缓冲区正常工作点偏差的估计,进而调整其抖动缓冲区正常工作点A’。
作为本发明的进一步改进,本发明思想不仅仅局限于对抖动缓冲区正常工作点的调整,也可用于调整抖动缓冲区其它参数对象,如可以对抖动缓冲区大小C进行调整。也可以同时对抖动缓冲区大小C及抖动缓冲区正常工作点A进行调整。
以上结合附图实施例对本发明进行了详细说明,本领域中普通技术人员可根据上述说明对本发明做出种种变化例。因而,实施例中的某些细节不应构成对本发明的限定,本发明将以所附权利要求书界定的范围作为本发明的保护范围。