分组通信系统中的接收节点和用于管理分组通信系统中的接收节点中的缓冲器的方法

文档序号:7738489阅读:268来源:国知局
专利名称:分组通信系统中的接收节点和用于管理分组通信系统中的接收节点中的缓冲器的方法
技术领域
本发明涉及一种用于在分组通信系统中接收数据分组以便存储在缓冲器中的接收节点和用于管理分组通信系统中的接收节点中的缓冲器的方法。
背景技术
在分组通信系统中,通过一个或多个网络从发送节点向接收节点发送数据分组。 例如,发送的数据分组可以是视频流的一部分,该视频流具有再现最初产生的视频信号的帧所需的一个或多个数据分组。在本示例中,接收节点可以是视频编码转换网关,其接收以一种格式(诸如MPEG 4标准)发送的视频流的视频分组,并将其转换成另一种格式(例如 H263标准)以便向前发送到最终用户。接收节点通常包括用于存储在接收节点处接收到的数据分组并在数据分组被调用时将其释放到接收节点中的应用的缓冲器。由于网络拥塞或定时漂移,可能发生数据分组在接收节点处的到达时间的变化,通常称为抖动延迟。该抖动延迟通常是随机的,并且可能导致数据分组不按照顺序和/或在具有间隙或重叠的情况下到达接收节点。在接收节点中接收并存储接收到的数据分组的缓冲器被布置为消除由于抖动而引起的数据分组接收的延迟,并且通常称为抖动缓冲器。例如,抖动缓冲器使得能够以减少的由于抖动而引起的失真来播放视频流的视频帧。通常由缓冲长度以及被称为缓冲延迟的参数来定义抖动缓冲器,该缓冲长度确定在给定时间能够存储在抖动缓冲器中的数据分组的数目,该缓冲延迟被选择为对应于在没有延迟的情况下在抖动缓冲器处接收到数据分组的时刻与该数据分组被释放的时刻之间的时间段。抖动缓冲器的长度和缓冲延迟被选择为使得在保证以要求的速率并按照适当的顺序将数据分组从抖动缓冲器释放到接收节点处的应用的同时补偿由于抖动而引起的延迟,以保证当数据分组被释放时抖动被去除。如果抖动缓冲长度太小, 则太多的分组可能被丢弃或放弃,这可能导致在分组被释放时质量的降低。如果抖动缓冲延迟太大,则附加延迟可能导致数据分组的低效释放。对于音频应用而言,附加延迟可能导致会话的困难。自适应抖动缓冲器是已知的。例如,美国专利号7,346,005描述了具有数字分组音频的自适应播放的抖动缓冲器布置。在该专利中公开的抖动缓冲器布置基于将当前数据分组的到达时间与当前分组的预期接收时间相比较来计算抖动延迟,当前分组的预期接收时间是根据持续时间(分组长度)和前一分组的接收时间而确定的。以连续观测的平均值实时地保持到达时间与预期接收时间之差或抖动延迟,并且其用来设置抖动缓冲器的缓冲延迟,当设置适合时允许接收到的数据分组正确的播放。美国专利号6,452,950描述了用于使用实时协议(RTP)基于从存储分组的到达时间导出的分组传输延迟的估计的变化来调节缓冲延迟以在没有过度延迟的情况下实现向应用平滑的数据馈送的类似布置。美国专利号6,704,329描述了在低通滤波器之前使用非线性前置滤波器来从代表数据分组的实际接收时间与预期接收时间之差的误差信号中去除网络抖动的影响,该误差信号用于控制从抖动缓冲器输出数据的速率(亦即缓冲延迟)。虽然这些已知的自适应布置能够动态地改变缓冲延迟以考虑抖动延迟的变化,但这些布置考虑从基本上恒定的延迟的变化,因此,这些布置不能快速地适应例如由于网络延迟变化而引起的总传输延迟的显著变化,所述网络延迟变化诸如为传输路径变化,其引起接收节点处的数据分组的到达时间的快速且显著的变化。

发明内容
本发明提供了如所附权利要求所述的在分组通信系统中的一种用于接收数据分组以便存储在缓冲器中的接收节点和一种用于管理接收节点中的缓冲器的方法。在从属权利要求中阐述了本发明的特定实施例。通过下文描述的实施例,本公开的这些及其它方面将是显而易见的并由此进行阐述。


将参考附图仅以示例的方式来描述本公开的更多细节、方面和实施例。图中的元素是出于简单和清晰的目的而图示的,并且不一定按比例绘制。图1是依照本公开的实施例的示例的接收节点的示意性框图;图2是示出作为图1的接收节点的一部分的抖动缓冲器的表示的示意图;图3 6是示出没有抖动的示例性环境中的随着时间推移的抖动缓冲器(其为图 1的接收节点的一部分)的缓冲窗口的示意图;图7 8是示出过迟和过早地接收到数据分组这两个不同示例性情况中的抖动缓冲器(其为图1的接收节点的一部分)的缓冲窗口的示意图;图9是示出在图1的接收节点处接收到的数据分组的延迟变化的图形表示;图10是作为图1的接收节点的一部分的依照本公开的实施例的示例的延迟处理元件的示意性框图;图11是示出图10的延迟处理元件的低速和高速滤波器的输出之间的差Z的绝对值随时间变化的图形表示;图12是作为是图1的接收节点的一部分的缓冲窗口调整元件的一部分的、依照本公开的实施例的示例的平滑化元件的示意性框图;图13是示出依照本公开的用于管理分组通信系统中的接收节点中的抖动缓冲器的示例性方法的流程图;以及图14 16是示出过迟和过早地接收到数据分组这两个不同示例性情况中的抖动缓冲器(其为图1的接收节点的一部分)的缓冲窗口的示意图。
具体实施例方式将参考用于在分组通信系统中接收视频数据分组的接收节点来描述本发明。然而,应认识到本发明可以在用于接收诸如语音的其它类型的数据分组的接收节点中使用。首先参考图1,依照本公开的实施例的示例的接收节点102具有用于接收作为视频流的一部分的视频数据分组的输入端103、输出端105,并且进一步包括用于执行对于接收节点102的操作处理的处理单元108。在示例性布置中,接收节点102可以是被布置为将视频数据分组从一个标准转换成另一个标准的本领域中众所周知的视频编码转换网关的一部分,并且在此类布置中,处理单元108通常称为视频媒体资源功能处理器。接收节点 102进一步包括用于存储在接收节点102处接收到的数据分组并用于将所存储的数据分组释放到接收节点102的应用元件(诸如视频转换应用元件106)的缓冲器104。在下文中将称为抖动缓冲器104的缓冲器104被布置为使在接收节点102处接收数据分组时的任何延迟的影响最小化,使得数据分组被按照正确的顺序并以如最初产生的视频流的合适的‘时间基准’释放到应用元件。在以下所示和所述的示例中,根据实时协议(RTP)来发送视频数据分组,因此,每个数据分组包括诸如RTP时间戳和序号的RTP信息,其使得接收节点102能够按照正确的序列顺序和在正确的时间基准输出视频数据分组。RTP时间戳和序号由视频流的发送者或创作者提供。处理单元108可以是单处理器,或者可以包括执行对于接收节点102的操作所需的处理的两个或更多处理器。处理器的数目和处理功能到处理单元的分配对于技术人员而言是设计选择的问题。接收节点102还具有程序存储器110,其中存储了包含用于接收节点102的操作的处理器指令的程序。程序可以包含许多不同程序元件或子程序,其包含用于多种不同任务的处理器指令,包括例如用于将接收到的数据分组从诸如MPEG4的一个标准转换成诸如H263的另一标准的视频转换应用元件106。在图1所示的示例中,抖动缓冲器104被示为与处理单元108分开。然而,应认识到抖动缓冲器104可以是处理单元108或程序存储器110的一部分。图2示出抖动缓冲器104的表示。抖动缓冲器104包括用于存储接收到的数据分组的多个存储位置202。存储位置202中所示的不同号码对应于接收到的数据分组的不同序号。在序列中遗失的分组(即尚未被接收到)处的存储位置202留为空。线204表示抖动缓冲器104的缓冲窗口。缓冲窗口 204限定一个时间段(在端部203和205之间),在该时间段中在抖动缓冲器104处接收数据分组并存储在可用的存储位置202中。缓冲窗口 204在时间上被周期性地移动(例如,当其被应用元件调用时或被处理单元100刷新时), 并且所存储的数据分组在其处于缓冲窗口 204的端部203处时并且例如当抖动缓冲器104 下一次被应用元件调用时被释放到应用元件。因此,在图2所示的示例中,具有序号4的数据分组是将被抖动缓冲器104释放的下一个分组。缓冲窗口 204被周期性地(诸如,例如每IOms)移动,使得存储在抖动缓冲器104中的数据分组被按照RTP序号依次释放。如在图2中可以看到的,在缓冲窗口 204的端部203之后接收到的数据分组被认为接收到的太迟,并且在缓冲窗口 204的端部205之前接收到的数据分组被认为接收到的太早。如下文将更详细地解释的,太迟或太早地接收到的数据分组可能被处理单元108丢弃。在本示例中(和如图所示),缓冲窗口 204的当前时间戳206被布置在缓冲窗口 204中间。在如图3所示接收到第一数据分组300时,当前时间戳206被布置为取第一数据分组300的RTP时间戳的值,并且接收到的第一数据分组300被存储在抖动缓冲器104的中间附近。对于随后接收到的数据分组而言,当前时间戳表示后续数据分组在接收节点102处的估计到达时间。在没有抖动的理想发送环境中,用于每个接收到的数据分组的当前时间戳206应该对应于实际接收到的时间。称为缓冲延迟210的时间段对应于数据分组被释放的缓冲窗口 204的端部203与当前时间戳206之间的时间段。可以是例如IOOms的缓冲延迟210被选择为解决最大预期延迟,使得数据分组不由于被太迟地接收到而按常规被丢弃。缓冲窗口 204的缓冲长度208可以用时间或抖动缓冲器104的可用存储位置202 的数目来限制。在本文所述的示例中,由可用存储位置202的数目来确定缓冲长度208。因此,例如,如果数据分组太早地到达,如果存在可用存储位置202,则早先接收到的数据分组被存储,但是如果不存在可用存储位置202,则早先接收到的数据分组被丢弃。因此,缓冲窗口 204与由时间确定的端部203和由可用存储位置确定的端部205是不对称的。图3 6示出在示例性理想发送环境中的随时间推移的缓冲窗口 204,在该理想环境中四个数据分组300、302、304、306中的每一个在没有抖动的情况下并因此在由当前时间戳206、406、506、606表示的用于每个数据分组的预期时间被接收到,并且缓冲窗口 204 以预定量308被周期性地移动。在示例中,所述预定量308是10ms,并且对应于抖动缓冲器104被在处理单元108上运行的应用元件之一调用的时间或抖动缓冲器104被处理单元 108刷新的时间。如图3所示,第一数据分组300被接收到且当前时间戳306取第一数据分组300的RTP时间戳的值。根据第一数据分组300中的RTP时间戳,接收节点102然后能够确定第二数据分组302、第三数据分组304和第四数据分组306中的每一个在接收节点102处的估计到达时间。然后如图4所示,缓冲窗口被移动预定量308(即,在时间上前进),使得第一数据分组300更接近于缓冲窗口 204的端部203,并且在如当前时间戳406 所指示的估计到达时间接收到第二数据分组302。然后如图5所示,缓冲窗口被再次移动预定量308,使得第一数据分组300更接近于缓冲窗口 204的端部203,并且在如当前时间戳506所指示的估计到达时间处接收到第三数据分组304。然后如图6所示,缓冲窗口被再次移动预定量308,使得第一数据分组300在缓冲窗口 204的端部203处,并在例如抖动缓冲器104下一次被应用元件调用时被释放到接收节点中的应用元件,并且在如当前时间戳 606所指示的估计到达时间处接收到第四数据分组304。图7表示一种示例的情况,其中替代地比预期到达时间更迟地接收到第二数据分组302。因此,图7中的线700所表示的第二数据分组302的实际到达时间迟于当前时间戳706所表示的估计到达时间。图8表示一种示例的情况,其中替代地比预期到达时间更早地接收到第二数据分组302。因此,图8中的线800所表示的第二数据分组302的实际到达时间早于当前时间戳806所表示的估计到达时间。数据分组的估计到达时间和实际到达时间之间的差对应于取决于分组是太早地还是太迟地到达而可以为正或负的延迟,并且其可以是由于抖动延迟而引起,该抖动延迟如上所述是从基本上恒定的延迟的随机变化,并且可能由于网络拥塞或定时漂移而发生。 上述已知布置能够通过例如动态地改变缓冲延迟以考虑抖动延迟来减少抖动延迟的影响。 然而,此类已知布置不能快速地适应由于网络延迟变化而引起的总传输延迟的显著变化, 诸如,例如传输路径的变化,其引起接收节点处的数据分组的到达时间的快速且显著的变化。在图1所示的示例性接收节点中,程序存储器10存储用于通过处理单元108来控制接收节点2的操作以便考虑快速且显著的传输延迟的特定程序元件,所述程序元件包括分组延迟确定元件112、延迟处理元件114和缓冲窗口调整元件116。分组延迟确定元件 112通过确定数据分组在接收节点102处的估计到达时间和数据分组在接收节点102处的实际到达时间之差来为每个接收到的数据分组确定接收到的数据分组的延迟。延迟处理元件114确定多个数据分组的已确定的延迟的平均值并确定已确定的平均值的变化何时大于第一阈值。缓冲窗口调整元件116以第一速率将缓冲窗口的位置调整取决于已确定的延迟的已确定的平均值的第一量,并在已确定的平均值的变化大于第一阈值时切换至以第二速率将缓冲窗口的位置调整取决于已确定的平均值的第二量,所述第二速率大于所述第一速率。于是,延迟处理元件114因此可以确定例如由于网络延迟变化而引起的已确定的延迟的平均值的大的变化,并且作为响应,缓冲窗口调整元件116然后可以以更快的速率移动缓冲窗口以便快速地对网络延迟变化做出响应。分组延迟确定元件112可以基于在接收到的数据分组中提供的RTP时间戳来确定数据分组的估计到达时间,因为第一个接收到数据分组的当前时间戳被设置为RTP时间戳。例如通过由处理单元108生成的基准时钟信号将数据分组的实际到达时间提供给分组延迟确定元件112。例如,由处理单元108调用的“放置”函数向抖动缓冲器104提供数据分组并提供基准时钟信号,以便为分组延迟确定元件提供“放置的”数据分组的实际到达时间。然后分组延迟确定元件112可以确定接收到的数据分组的延迟。由于抖动,在每个接收到的数据分组之间延迟可能改变,但是如在图9中所能看到的,对于由附图标记902指示的一组数据分组而言,接收到的数据分组之间的延迟从由图9中的线900表示的基本上恒定的延迟有变化。由附图标记904指示的一组数据分组的延迟从由图9中的线906表示的基本上恒定的延迟有变化,但基本上恒定的延迟线906(或平均延迟)高于组902的恒定延迟(或平均延迟)线900。组902和904之间的平均延迟的跳跃可能是由于网络延迟变化而引起的,诸如用于发送数据分组的网络变化,其导致较高的平均延迟。现在还参考图10,在示例性布置中,延迟处理元件114在输入端1002处接收由延迟确定元件112计算的接收的数据分组的已确定的延迟,并且可以包括第一求平均元件 1004和第二求平均元件1006。第一求平均元件1004具有用于确定并在输出端1005处提供多个数据分组的已确定的延迟的平均值的第一响应时间,且第二求平均元件1006具有用于确定并在输出端1007处提供所述多个数据分组的已确定的延迟的平均值的第二响应时间。第二响应时间比第一响应时间快例如,第二求平均元件1006的第二响应速率可以两倍于第一求平均元件1004的第一响应速率。在替换实施方式中,第二响应时间和第一响应时间之比可以大于2。第一求平均元件1004可以是低速滤波器,并且第二求平均元件 1006可以是高速滤波器。可以由诸如有限冲激响应(FIR)、无限冲激响应(IIR)滤波器的任何低通滤波器来实现这每个滤波器,低速滤波器的波段比高速滤波器的波段窄。下面,第一求平均元件1004将被称为低速滤波器1004,并且第二求平均元件1006将被称为高速滤波器1006。延迟处理元件114可以进一步包括处理模块1008用于比较低速滤波器1004和高速滤波器1006的输出端1005和1007处的多个数据分组的已确定的平均值之间的差,并用于当低速滤波器1004和高速滤波器1006的输出端1005和1007处的多个数据分组的已确定的平均值之间的差大于第一值时来确定已确定的平均值的变化何时大于第一阈值。当处理模块1008确定低速滤波器1004和高速滤波器1006的输出端1005和1007处的已确定的平均值之间的差大于第一值时,处理模块1008在输出端1010处生成第一切换信号。第一切换信号连同低速滤波器1004和高速滤波器1006的输出端1005和1007处的已确定的平均值一起被提供给缓冲窗口调整元件116。处理模块1008可以包括确定输出端1005和 1007处的已确定的平均值之差Z的减法元件1012和将已确定的差Z与第一值相比较的比较器1014。确定第一阈值的第一值可以根据实验来确定,并且可以与第一求平均元件1004 和第二求平均元件1006的不同速率有关。图11是示出曲线1102的图,其表示在当可能由于网络变化导致的已确定的平均值的差在时刻tl大于第一值Zl时的示例中由减法元件1012确定的低速滤波器1004和高速滤波器1006的输出之差Z的绝对值如何随时间而变化,其结果是已确定的平均值中的变化为正变化(例如,如曲线1104所示的平均延迟增加)或负变化(例如,如曲线1106所示的平均延迟减小)。低速滤波器1004的输出被示为曲线1108同时给出了曲线1104和 1106,并且高速滤波器1006的输出被示为曲线1110同时给出了曲线1104和1106。如从曲线1108和1110可以看出,当在已确定的平均值中存在变化时,归因于它们的响应时间,高速滤波器1006的输出与低速滤波器1004的输出相比响应更快。处理模块1008可以进一步被布置为当在生成第一切换信号之后第一和第二求平均元件的输出端处的多个数据分组的已确定的平均值之差达到第二值时在输出端1010处生成并向缓冲窗口调整元件提供第二切换信号。在图11中,这被示为在已确定的平均值之差达到基本上零时的时刻t2发生。如通过曲线1108与曲线1110的合并可以看到的,在时刻t2,低速滤波器1004的输出1005已经有时间适应已确定的平均延迟的快速且显著的变化。第二值可以根据实验来确定,并且可以与第一求平均元件1004和第二求平均元件1006 的不同速率有关。如上文所讨论的,例如,在抖动缓冲器104被应用元件调用或被处理单元108刷新时,缓冲窗口 204的位置在时间上周期性地移动。缓冲窗口调整元件116被布置为调整缓冲窗口 204的位置以便解决延迟的变化。在正常操作中(例如,图11中在0和tl之间及t2 之后),以第一速率将缓冲窗口 204调整取决于低速滤波器1004的输出的第一量,第一速率由低速滤波器1004的响应时间来确定。当已确定的平均延迟的变化大于第一阈值时(这由在低速滤波器1004和高速滤波器1006的输出之差在tl时刻大于第一值Zl时指示),由处理模块1008生成第一切换信号并将其提供给缓冲窗口调整元件116。响应于接收到第一切换信号,缓冲窗口调整元件被布置为切换至以第二速率将缓冲窗口的位置调整取决于高速滤波器1006的输出的第二量,第二速率由高速滤波器1006的响应时间确定。在生成第一切换信号之后,当处理模块1008确定第一和第二求平均元件的输出端处的多个数据分组的已确定的平均值之差达到第二值(例如,在图11中的时刻t2处基本上为零)时,处理模块1008生成并向缓冲窗口调整元件116提供第二切换信号。响应于接收到第二切换信号,缓冲窗口调整元件116被布置为从第二速率切换至第一速率并根据低速滤波器1004的输出来调整缓冲窗口的位置(例如正常操作)。因此,对于例如由于抖动而引起的小变化而言,使用低速滤波器1004的输出根据低速滤波器1004的响应时间(例如第一速率)来调整缓冲窗口 204的位置。当平均延迟存在大的变化时(例如,在第一值以上),低速滤波器1004的响应时间过慢,并且这可能导
9致接收到的数据分组被遗失或丢弃。因此,使用高速滤波器1006的输出根据高速滤波器 1006的响应时间(例如第二速率)来调整缓冲窗口 204的位置。虽然更快,但由高速滤波器1006进行的调整不够稳定(由于滤波器脉动),因此使用高速滤波器1006的输出在短时间段内(tl至U)调整缓冲窗口 204的位置,直至低速滤波器1004已适应平均延迟的变化,并且随后再次使用低速滤波器1004来调整窗口缓冲窗口 204的位置。在示例性布置中,延迟处理元件114可以进一步包括调整元件1016,其用于调整低速滤波器1004的输出,使得用来调整缓冲窗口 204的位置的低速滤波器1004的输出 1005是经调整的输出。调整元件1016包括用于接收由求差元件1018提供的低速滤波器 1004和高速滤波器1006的输出端处的多个数据分组的已确定的平均值之差并对其进行滤波的滤波器1020 (称为误差滤波器),以及用于将经滤波的差与低速滤波器1004的输出组合以提供经调整的输出的组合器。调整元件1016修改低速滤波器1004的响应时间,使得在按照高速滤波器1006的较高速率一段时间之后,比在没有调整元件1016的情况下更早地执行到低速滤波器1004的切换。这有助于减少使用较不稳定的高速滤波器1006来执行调整所持续的时间。可替换地,可以由更复杂的低速滤波器1004来实现低速滤波器1004 和调整元件1016,该更复杂的低速滤波器1004提供与低速滤波器1004和误差滤波器1020 的组合相同的输出。在示例性布置中,缓冲窗口调整元件116可以进一步包括平滑化元件(在图12中示出平滑化元件的示例1200),其用于将对应于低速滤波器1004的输出1005的第一量与确定缓冲窗口 204的当前位置的缓冲窗口 204的当前调整相比较,并用于在第一量与当前调整之间的平均差大于预定值时在输出端1202处提供第一信号,并在第一量与当前调整之间的平均差等于或小于预定值时提供第二信号。在缓冲窗口 204以5ms增量周期性地移动的示例中,预定值可以是5。然而,取决于特定的实施方式,可以使用其它值。响应于第一信号,然后缓冲窗口调整元件116被布置为根据第一信号以第一速率来调整缓冲窗口的位置,并且响应于第二信号,缓冲窗口调整元件被布置为不从当前位置调整缓冲窗口的位置。 第一信号表示与根据低速滤波器1004的输出1005的调整与当前调整之差的平均值组合的当前调整。因此,平滑化元件1200有助于保证当使用低速滤波器输出来调整缓冲窗口 204 的位置时,不针对平均延迟的小变化来调整缓冲窗口 204的位置,而仅当平均延迟变化超过由预定值设定的阈值时才进行调整。这有助于避免当仅略迟或略早地接收到数据分组时的缓冲窗口位置的调整。这可以节省计算开销。应注意的是,当在缓冲窗口 204外面接收到数据分组时,单独地使用低速滤波器 1004的输出2005(例如,没有来自平滑化元件1200的输出)来调整缓冲窗口 204的位置。在图12所示的示例性实施方式中,平滑化元件1200包括减法元件1204,其用于在低速滤波器1004的输出1005处接收平均延迟并用于接收确定缓冲窗口 204的当前位置且通过缓冲窗口调整元件116获知的缓冲窗口 204的当前调整;平滑化滤波器1206,其用于接收由减法元件1204提供的差信号,该差信号以根据输出端1005处的平均延迟的调整来指示缓冲窗口的可能的将来的位置;以及非线性处理元件1208,其用于接收平滑化滤波器1206的输出并用于接收缓冲窗口 204的当前调整。平滑化滤波器1206提供根据低速滤波器1004的输出1005的调整与当前调整之间的差的平均值,并且非线性处理元件1208基于平均差是否超过由预定值设定的阈值来判定是否将此平均差加到当前调整,并基于该判定相应地在输出端1202处提供对应于平滑化滤波器1206的输出端处的平均差与当前调整组合或相加的第一信号或者提供第二信号。当非线性处理元件1208确定超过了阈值并因此在输出端1202处提供第一信号时,平滑化过滤器1206被复位并随后准备处理新的平均差。应注意的是,当前位置可能是高速滤波器1006的调整的结果,并且缓冲窗口调整元件 116刚刚达到稳态并切换到使用低速滤波器1004来调整位置。现在将参考图13 16来描述依照本公开的用于管理接收节点中的缓冲器的方法的示例。图14 16示出其中以不同的抖动量来接收四个数据分组300、302、304、306中的每一个的随时间推移的缓冲窗口 204和如何依照根据本公开的示例性方法来调整缓冲窗口 204的位置。在步骤1300在接收节点102处接收数据分组。在图14中,接收第一数据分组300, 并且当前时间戳取第一数据分组300中的RTP时间戳的值。根据第一数据分组300中的RTP 时间戳,接收节点102然后能够确定第二数据分组302、第三数据分组304和第四数据分组 306中的每一个在接收节点102处的估计到达时间。然后接收第二数据分组302,但是如图 14所示,比估计到达时间更迟地接收到第二数据分组302。分组延迟确定元件112确定第二数据分组302的延迟1400 (图13中的步骤130 ,并且此确定延迟1400被延迟处理元件 114用来确定平均延迟(图13中的步骤1304)。在图14的情况下,确定延迟1400未大到足以促使已确定的平均值的变化大于第一阈值(判定步骤1306),并且流程转到步骤1308。 因此缓冲窗口调整元件116使用低速滤波器1004的输出来以第一速率并以第一量在方向X 上调整缓冲窗口 204的位置,以便补偿延迟并朝着接收到第二数据分组的时间来移动缓冲窗口 204的中间。由于不是所有分组都被接收到(步骤1310),所以流程返回至步骤1304。在上述示例中,由延迟处理元件114的低速滤波器1004和高速滤波器1006来确定平均延迟。因此,在图14的情况下,所确定的延迟1400未大到足以促使由低速滤波器 1004和高速滤波器1006确定的平均延迟之间的差大于第一值Z1,使得不生成第一切换信号。然后接收第三数据分组304,但是如图15所示,比估计到达时间更早地接收到第三数据分组304。分组延迟确定元件112确定第三数据分组304的延迟1500(图13中的步骤130 ,并且此确定的延迟1500 (其将具有与延迟1400相反的符号)被延迟处理元件 114用来确定平均延迟(图13中的步骤1304)。在图15的情况下,确定的延迟1500未大到足以促使已确定平均值的变化大于第一阈值(判定步骤1306),并且流程转到步骤1308。 因此缓冲窗口调整元件116使用低速滤波器1004的输出来以第一速率并以第一量在方向Y 上调整缓冲窗口 204的位置,以便补偿延迟并朝着接收到第三数据分组的时间来移动缓冲窗口 204的中间。由于不是所有分组都被接收到(步骤1310),所以流程返回至步骤1304。然后接收第四数据分组306,但是如图16所示,比估计到达时间更迟地接收到第四数据分组306,并且其被接收得如此迟,以至于其在缓冲窗口 204之外,并且因此已经过了用于其释放的时间。分组延迟确定元件112确定第四数据分组306的延迟1600(图13 中的步骤1302),并且此确定的延迟1600被延迟处理元件114用来确定平均延迟(图13中的步骤1304)。在图16的情况下,确定的延迟1600大到足以促使已确定平均值的变化大于第一阈值(判定步骤1306),并且流程转到步骤1312。因此缓冲窗口调整元件116使用高速滤波器1006的输出以第二速率且以第二量在方向X上调整缓冲窗口 204的位置,从而朝
11着接收到第四数据分组的时间快速地且以大的量来移动缓冲窗口 204的中间。如果刚刚过了第四数据分组306的释放时间,则其仍可用于调用应用元件,但是除此之外非常迟的数据分组将被丢弃。使用高速滤波器1006的输出来在一定时间段内调整缓冲窗口 204的位置,所述时间段例如通过低速滤波器1004何时适应平均延迟的变化来确定。如上述示例所述,通过低速滤波器1004和高速滤波器1006的输出之间的差何时基本上为零来定义此时间段。在此时间段之后,已经达到稳态,并且在步骤1308,低速滤波器输出再次被缓冲窗口调整元件 116用来调整缓冲窗口 204的位置。虽然图13未示出,但以第一速率并以第一量来调整缓冲窗口 204的步骤(步骤 1308)可以包括附加步骤,通过该附加步骤,可以使用平滑化元件1200来确定所确定的延迟(例如1400或1500)是否小到足以不要求对缓冲窗口 204的当前位置进行调整。同样未在图13示出,缓冲窗口调整元件116可以进一步被布置为对于在缓冲窗口 204之外接收到的数据分组,即使在所确定的平均延迟仍小于第一阈值时,在没有平滑化的情况下,使用为该数据分组所确定的延迟来引起缓冲窗口 204的位置的即时调整。一旦已经处理数据分组,则再次通过低速滤波器1004的输出来确定缓冲窗口 204的位置的调整。 这适用于在缓冲窗口之外接收到一个或两个分组时的特定情况。如果存在在缓冲窗口之外接收到的许多数据分组,则如上所述将进行切换来使用高速滤波器1006。概括地说,依照本公开的接收节点可以改变调整缓冲窗口的位置的速率以解决可能例如在网络变化时发生的接收数据分组的延迟的快速变化。另外,可以根据第一速率或在平均延迟的变化超过阈值时根据第二速率连续地执行关于是否要求缓冲窗口的调整的判定。第一较慢速率可用于缓慢地适应具有较小延迟变化的网络的情况,并且第二较快速率可用于快速地适应大的网络延迟变化。依照本公开的接收节点和管理接收节点中的缓冲器的方法可以提供用于抖动缓冲器的可靠、低计算且稳健的解决方案,其考虑抖动延迟以及由于例如网络变化而引起的延迟的快速且显著的变化,因此可以处理多种网络条件。虽然已经关于符合RTP协议的数据分组描述了本公开,但将认识到能够改变用来调整缓冲窗口的位置的速率从而考虑传输延迟的快速且显著的变化的思想可以用于在接收节点处接收到的不包括RTP信息的数据分组。例如,美国专利号7,346,005描述了如何能够在不需要RTP信息的情况下计算抖动延迟。在前述说明中,已经参考本发明的实施例的特定示例描述了本发明。然而,应显而易见的是,在不脱离如所附权利要求书中阐述的本发明的更广泛范围的情况下,可以在其中进行各种修改和变化。例如,可以以适合于特定实施方案的任何方式来实现接收节点,并且其例如可以是能够连接到网络中的电子设备或者是在此类电子设备中实现的集成电路。例如,应认识到,至于由计算机程序实现的本发明的实施例,那么承载计算机程序的存储介质和传输介质形成本发明的方面。计算机程序可以例如包括以下各项中的一个或多个子程序、函数、程序、对象方法、对象实现、可执行应用程序、小程序、小服务程序、源代码、目标代码、共享库/动态加载库和/或被设计为用于计算机系统或处理设备上执行的其它指令序列。传输介质可以是CD-ROM、磁盘或数据连接,诸如电话电缆或IP连接。此外,适用时可以使用多种不同处理系统来实现上述实施例中的某些。例如,附图及其讨论描述了仅仅为了在讨论本公开的各种方面时提供有用参考而提出的示例性架构。 当然,已经出于讨论的目的简化了该架构的描述,并且其仅仅是依照本公开可以使用的许多不同类型的适当架构中的一个。本领域的技术人员将认识到,程序元件之间的界线仅仅是说明性的,并且替换的实施例可以合并元件或对各种元件施加功能的替换分解。然而,还可以有其它修改、变化和替换。因此,应在说明性而非限制的意义上理解本说明书和附图。在权利要求中,不应将放置在括号之间的任何附图标记理解为限制权利要求。词语“包括”不排除在权利要求中所列的那些之外的其它元素或步骤的存在。此外,本文所示使用的术语“一”被定义为一个或多于一个。并且,不应将权利要求中的诸如“至少一个”和 “一个或多个”的引入性短语的使用理解为意指由不定冠词“一”对另一权利要求元素的引入限制包含这样引入的权利要求元素的任何特定权利要求局限于仅包含一个此类元素的发明,即使当同一权利要求包括引入性短语“一个或多个”或“至少一个”和诸如“一”的不定冠词时。这也适用于定冠词的使用。除非另外说明,诸如“第一”和“第二”的术语用来任意地区别此类术语描述的元素。因此,这些术语不不必意图指示此类元素的时间或其它优先次序。在相互不同的权利要求中叙述了某些措施的事实不表示不能有利地利用这些措施的组合。
权利要求
1.一种用于在分组通信系统中接收数据分组的接收节点(102),包括缓冲器(104),用于存储在所述接收节点处接收到的数据分组并用于将存储的数据分组释放到所述接收节点的应用元件(106),其中,缓冲窗口(204)限定在所述缓冲器处接收数据分组的时间段,在时间上周期性地移动所述缓冲窗口的位置,并且当存储的数据分组处于所述缓冲窗口的端部O03)时将该存储的数据分组释放;分组延迟确定元件(112),用于通过确定数据分组在所述接收节点处的估计到达时间与所述数据分组在所述接收节点处的实际到达时间之间的差来为每个接收到的数据分组确定接收到的数据分组的延迟;延迟处理元件(114),用于确定多个数据分组的已确定的延迟的平均值,并用于确定已确定的平均值的变化何时大于第一阈值(Zl);以及缓冲窗口调整元件(116),用于以第一速率将所述缓冲窗口的位置调整取决于所述已确定的延迟的所述已确定的平均值的第一量,并用于在所述已确定的平均值的变化大于所述第一阈值时切换至以第二速率将所述缓冲窗口的位置调整取决于所述已确定的平均值的第二量,所述第二速率大于所述第一速率。
2.根据权利要求1所述的接收节点,其中,所述延迟处理元件(114)包括第一求平均元件(1004),具有用于确定并在输出端(100 处提供多个数据分组的所述已确定的延迟的平均值的第一响应时间,其中,用于调整所述缓冲窗口的位置的所述第一量取决于所述第一求平均元件的输出;以及第二求平均元件(1006),具有用于确定并在输出端(1007)处提供所述多个数据分组的所述已确定的延迟的平均值的第二响应时间,所述第二响应时间比所述第一响应时间快,其中,用于调整所述缓冲窗口的位置的所述第二量取决于所述第二求平均元件的输出。
3.根据权利要求2所述的接收节点,其中,所述延迟处理元件(114)进一步包括处理模块(1008),该处理模块(1008)用于比较所述第一求平均元件(1004)和所述第二求平均元件(1006)的所述输出端(1005、1007)处的多个数据分组的所述已确定的平均值之间的差, 并用于当所述第一求平均元件和第二求平均元件的所述输出端处的多个数据分组的所述已确定平均值之间的差大于第一值时来确定所述已确定平均值的变化何时大于所述第一阈值(Z1),并且用于作为响应生成并向所述缓冲窗口调整元件(116)提供第一切换信号,所述缓冲窗口调整元件(116)被布置为,响应于接收到所述第一切换信号来切换至以所述第二速率来调整所述缓冲窗口(204)的位置。
4.根据权利要求3所述的接收节点,其中,所述处理模块(1008)被进一步布置为,当在生成所述第一切换信号之后所述第一求平均元件(1004)和所述第二求平均元件(1006) 的所述输出端(1005、1007)处的多个数据分组的所述已确定的平均值之间的差达到第二值(Z2)时,生成并向所述缓冲窗口调整元件提供第二切换信号,所述缓冲窗口调整元件(116)被布置为,响应于接收到所述第二切换信号,从所述第二速率切换至所述第一速率来调整所述缓冲窗口(204)的位置。
5.根据权利要求4所述的接收节点,其中,所述第二值基本上为零。
6.根据权利要求2、3、4或5所述的接收节点,其中,所述缓冲窗口调整元件(116)进一步包括平滑化元件(1200),该平滑化元件(1200)用于将取决于所述第一求平均元件 (1004)的所述输出(100 的第一量与所述缓冲窗口(204)的当前调整相比较,所述当前调整确定所述缓冲窗口的当前位置,并且该平滑化元件(1200)用于在所述第一量与所述当前调整之间的平均差大于预定值时在输出端(120 处提供第一信号,并在所述第一量与所述当前调整之间的平均差等于或小于所述预定值时提供第二信号,并且其中,所述缓冲窗口调整元件(116)被进一步布置为,响应于所述输出端(120 处的所述第一信号根据所述第一信号以所述第一速率来调整所述缓冲窗口(204)的位置,以及响应于所述输出端 (1202)处的所述第二信号不从所述当前位置调整所述缓冲窗口的位置。
7.根据权利要求2、3、4、5或6所述的接收节点,其中,所述延迟处理元件(114)进一步包括调整元件(1016),该调整元件(1016)用于调整所述第一求平均元件(1004)的所述输出,使得用来调整所述缓冲窗口的位置的所述第一量取决于经调整的输出,所述调整元件 (1016)包括滤波器(1020)和组合器(1022),该滤波器(1020)用于接收在所述第一求平均元件(1004)和所述第二求平均元件(1006)的所述输出端处的多个数据分组的所述已确定的平均值之间的差并对该差进行滤波,该组合器(102 用于将经滤波的差与所述第一求平均元件(1004)的所述输出组合以提供经调整的输出。
8.一种用于在分组通信系统中管理接收节点(10 中的缓冲器(104)的方法,所述缓冲器(104)用于存储在所述接收节点处接收到的数据分组并用于将存储的数据分组释放到所述接收节点的应用元件(106),其中,缓冲窗Q04)限定在所述缓冲器处接收数据分组的时间段,以预定量在时间上周期性地移动所述缓冲窗口的位置,并且存储的数据分组在其处于所述缓冲窗口的端部(20 时被释放,所述方法包括在所述接收节点处接收(1300)数据分组;通过确定数据分组在所述接收节点处的估计到达时间与所述数据分组在所述接收节点处的实际到达时间之间的差来为每个接收到的数据分组确定(130 接收到的数据分组的延迟;确定(1304)多个数据分组的已确定的延迟的平均值;确定(1306)已确定的平均值的变化何时大于第一阈值(Zl);以第一速率将所述缓冲窗口(204)的位置调整(1308)取决于所述已确定的延迟的所述已确定的平均值的第一量;以及当所述已确定的平均值的变化大于所述第一阈值时,切换(131 至以第二速率将所述缓冲窗口(204)的位置调整取决于所述已确定的平均值的第二量,所述第二速率大于所述第一速率。
全文摘要
一种用于在分组通信系统中接收数据分组的接收节点(102)包括用于存储在接收节点(102)处接收到的数据分组并用于将存储的数据分组释放到接收节点(102)的应用元件(106)的缓冲器(104)。缓冲窗口(204)限定在缓冲器(104)处接收数据分组的时间段。在时间上周期性地移动缓冲窗口的位置,并且在存储的数据分组处于缓冲窗口(204)的端部(203)处时将其释放。接收节点(102)进一步包括用于通过确定数据分组在接收节点处的估计到达时间与数据分组在接收节点处的实际到达时间之间的差来为接收到的数据分组中的每一个确定接收到的数据分组的延迟的分组延迟确定元件(112),用于确定多个数据分组的已确定的延迟的平均值并用于确定已确定的平均值的变化何时大于第一阈值(Z1)的延迟处理元件(114),以及用于以第一速率将缓冲窗口的位置调整取决于已确定的延迟的已确定的平均值的第一量并用于在已确定的平均值的变化大于第一阈值时切换至以第二速率将缓冲窗口的位置调整取决于已确定的平均值的第二量的缓冲窗口调整元件(116)。第二速率大于第一速率。
文档编号H04L12/56GK102292943SQ200980155477
公开日2011年12月21日 申请日期2009年3月31日 优先权日2009年3月31日
发明者弗洛林-劳伦丘·斯托伊卡, 米哈伊·内吉讷, 阿德里安·勒伊莱亚努 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1