用于ip电话的动态等待时间管理的制作方法

文档序号:7738776阅读:132来源:国知局
专利名称:用于ip电话的动态等待时间管理的制作方法
技术领域
本发明涉及互联网上的话音(VoIP)电话的等待时间,更具体地,涉及用于减小VoIP电话的等待时间的管理技术方法。
背景技术
把声音变换成电信号、发送它们、然后把它们变换回声音的科学被称为电话术(即电话的科学)。该术语经常被使用来指执行传统上由电话设备执行的功能的计算机硬件和软件。
互联网电话通常是指通过互联网、而不是通过公共交换电话网(PSTN)的通信业务-话音、传真和/或话音消息传送应用。在发起互联网电话呼叫时涉及到的基本步骤是模拟话音信号转换成数字格式,以及信号压缩/变换到互联网协议(IP)分组,以便在互联网上发送;该过程在接收端被颠倒过来,正如图1的现有技术所显示的。
实时传输协议(RTP)作为用于互联网上的话音和视频的输送协议已得到广泛的接受。它提供诸如时间印记、序列编号和有用负载识别那样的业务。它也包含控制部分-实时控制协议(RTCP),实时控制协议除其他功能以外,尤其被使用于松散的会话控制、QoS报告和媒体同步。
RTP本身不保证实时的数据传递,但它确实为发送和接收应用提供机制以便支持流式数据。典型地,RTP运行在用户数据报协议(UDP)之上,尽管该技术规范的通用性足以支持其他的输送协议。RTP用时间印记给由发送器传送的所有的信息加标签。通过检查时间印记,接收器能够按原来的次序排列分组,以及同步实时流和/或补偿在音频或视频数据中的抖动。
RTCP被设计成将一个关于网络质量的状态给予应用。通过这个信息,可最佳化影响数据传输的参量,例如抖动缓冲器尺寸。RTP头标把16字节加到总的额外开销上,以及加上UDP的附加的8字节头标信息作为前缀。IP头标(它是20字节大小)被加上作为前缀以形成数据报,因此,需要将20字节的音频或视频作为64字节数据报发送。数据报被规定为数据块、分段、大块(chunk)、数据分组或音频、视频或音频/视频的分组。
在RTP头标的那些不需要的比特内是32比特的时间印记。这个时间印记特别不需要,因为声音分组是顺序的,以及由于它也变换成特定数目的声音样本,所以有可能精确地计算两次输入的时间间隔应当是多少(以及没有抖动时的时间间隔将是多少)。在某些实施方案中,时间印记被允许直接与样本计数进行相关,以及如果它被这样使用,则这个数值可能完全是冗余的,因为如果分组载送固定的有用负载,则该时间印记可以直接从分组的序号进行计算。
等待时间是在从发送器到接收器运送数据报时的延时,它影响对话的步调。人们可以在等待时间有引人注意的影响之前容忍约250毫秒(ms)的等待时间。
为了在数字网上以其本身的模拟形式支持话音,模拟信号在被生成后的某个时间必须被编码(或变换)成数字格式,以便进入WAN、LAN、互联网或通信网。在接收端,数字信号必须被译码(即,重新变换)回模拟格式,以便人耳能听懂,因此时序是关键的。网络必须能够精确地每125ms接受、交换、输送和传递每个话音字节。这意味着,等待时间(即,延时)必须是最小的以及抖动(即,延时的变率)必须实际上是零。
实时话音对话对于延时是敏感的。一旦单向延时超过1秒的四分之一(250毫秒),对话中的各方就变得相当难于判断一个人何时结束讲话。这增加各方同时讲话的概率。
话音呼叫从它的发起地的PBX经过在该位置的网关、LAN和路由器、通过IP网络,被路由到连接到其目的地的PBX的电话。有几个区域,其中输送话音的数据报会被延时。当模拟话音对话通过PBX被路由到话音网关时,由网关使用的话音编码算法加上一定的等待时间。实际的延时量是基于所使用的话音编码器的类型。一旦小的话音样本被编码,它就必须被封装在数据报内以便传输到远方的网关。封装过程包括加上适用的UDP和IP头标,以形成数据报和从网关经过LAN到路由器的数据报流。
来自这些活动的总的延时代表了在发起地的程序间的时间和在目的地的程序间的延时。
一旦数据报到达IP网络,它就通过一个或多个路由器被路由到网络出口点。这个路由也加上可变的延时。可变延时的原因包括在从进入点到外出点的路径上的路由器的数目、每个路由器的处理能力以及提供给每个路由器的业务量负荷。当输送话音的数据报流过本地网络时发生这些延时,以及这些延时也对在数据报流过广域IP网时该数据报遇到的延时做出贡献。
然而,RTCP(实时控制协议)在一个流中只发送比较少的分组(大多数是RTP分组),它规定在RTP的时间印记与实时时钟印记之间的周期相关性。这允许计算实际的等待时间等等,只要在发送器和接收器处的实时时钟是同步的。实时时钟的这种同步在RTP技术规范中是通过被称为网络时间协议(NTP)的单独协议来考虑的。替换地,单向等待时间被确定为某些信息的往返行程时间的一半。尽管如此,这些方式都未能有效地确定单向等待时间,因为在两个网络节点之间,等待时间可以是非常不对称的。
由于不需要RTP信息来有效地减小在系统中的等待时间,所以不必在实际上知道等待时间是多少来最有效地使得等待时间被最佳化。以毫秒计或者以跳或英里计的、到端点的路径的长度与等待时间的最小化的目的是无关的。所必需的是根据完全通过观察抖动缓冲器的长度而得到的统计特性,来使得在接收端处的抖动缓冲器的长度最小。抖动缓冲器的长度在声音的每个数据块已准备好和准备插入到抖动缓冲器时被观察,这考虑了对该等待时间的所有的贡献者,包括在接收端处声音的解压缩和格式化。
所需要的是一种不依赖于实时协议的、用于减小等待时间的方法。
还需要的是用于减小发送数据分组的额外开销花费的方法。
再需要的是对于数据块在消费设备中的偏置进行校正的方法。
另外需要的是消除在最小化该系统的实际等待时间中的时钟偏差和差别的影响的方法。

发明内容
本发明是在考虑到以上的环境下作出的,以及作为本发明的一个方面,本发明具有用于动态地减小通信网上的等待时间的方法。
本发明的另一个方面是用于动态地减小通信网上的等待时间的系统。
本发明的再一个方面的特征在于用于动态地减小通信网上的等待时间的系统。
本发明的再一个方面的特征在于用于动态地减小通信网上的等待时间的软件产品。
本发明的再一个方面是能够动态地减小从通信网接收的数据块的等待时间的音频和视频消费设备。
本发明的另一个方面的特征在于用于确定在音频/视频消费设备中的偏置的方法。
在后面的说明中将部分地阐述本发明的另外的方面和优点,以及从本说明中将部分地明白它们,或可以通过本发明的实践学习它们。本发明的方面和优点将藉助于在所附的权利要求中具体地指出的单元和组合而被实现和得到。
为了得到这些和其他优点以及按照本发明的目的,正如具体化的和广泛地描述的,本发明按照一个方面的特征在于,用于动态地减小通信网上的等待时间的方法,该方法包括确定下一个数据块的处理的完成以及确定该下一个数据块在消费设备的队列中剩余的样本数目。该方法还包括确定在消费设备的队列中剩余的样本数目的变率以及根据变率确定在消费设备的队列中剩余的样本数目是否可以被减小,以及如果可以的话则减小该队列。
本发明的另一个方面的特征在于,用于动态地减小通信网上的等待时间的系统,该系统包括用于确定下一个数据块的处理的完成的装置以及用于确定该下一个数据块在消费设备的队列中剩余的样本数目的装置。该系统还包括用于确定在消费设备的队列中剩余的样本数目的变率的装置以及用于根据该变率而确定在消费设备的队列中剩余的样本数目是否可以被减小以及如果可以的话则减小该队列的装置。
本发明的再一个方面的特征在于,用于动态地减小通信网上的等待时间的系统,该系统包括识别数据块何时准备好要加到消费设备的队列中以及轮询该消费设备且计算自从先前轮询消费设备以来由该消费设备消费的样本数目。该系统还包括计算由消费设备消费的样本数目的变率以及根据该变率确定在消费设备的队列中剩余的样本数目是否可以被减小以及如果可以的话则减小该队列。
本发明的又一个方面的特征在于,用于动态地减小通信网上的等待时间的软件产品,驻留在计算机可读媒体上的该软件产品能够指令处理器来执行指令,以确定下一个数据块的处理的完成以及确定该下一个数据块在消费设备的队列中剩余的样本数目。该软件产品还指令处理器来确定在消费设备的队列中剩余的样本数目的变率;以及根据该变率来确定在消费设备的队列中剩余的样本数目是否可以被减小以及如果可以的话则减小该队列。
能够动态地减小从通信网接收的数据块的等待时间的音频和视频消费设备,该设备包括处理器,其中该处理器包括存储器;以及与处理器通信和由处理器控制的外设。该设备能够进行发送、接收和消费数据块中的至少一项。该设备还包括软件产品,其中该软件产品能够指令该处理器执行指令以(a)确定下一个数据块的处理的完成;(b)确定下一个数据块在所述消费设备的队列中剩余的样本数目;(c)确定在所述消费设备的队列中剩余的样本数目的变率;以及(d)根据该变率确定在所述消费设备的队列中剩余的样本数目是否可被减小。
本发明的另一个方面的特征在于,用于确定在音频/视频消费设备中的偏置的方法,该方法包括对消费设备轮询在多个时间间隔之间消费的样本的数目;以及把消费的样本数目与根据消费设备设置的消费速率计算的、应当已经在多个时间间隔之间消费的样本数目进行比较。
等待时间在传统上一直是电信领域中要克服的困难的问题。等待时间对于网络系统和其他宽带技术(诸如通过IP的话音(VoIP),其中达到接近实时的结果是非常重要的)具有有害的影响。本发明提供对于动态地管理IP电话的等待时间的解决方案,它克服以上列举的、现有技术解决方案的缺点。
应当看到,上述的总的说明和以下的详细说明仅仅是示例性的和是说明性的,以及对于本发明不是限制性的,正如所要求的。


在本说明书中引用的、并构成本说明书的一部分的附图显示本发明的几个实施例,以及连同本说明书一起,用来解释本发明的原理。
图1显示IP电话传输系统的现有技术系统;图2是显示用于支持有线和无线IP电话的一般的物理环境的数据方框图;图3是显示按照本发明的一个方面的偏置因子决定的流程图;图4是按照本发明的、用于初始化声音外出队列的处理流程的数据方框图的表示;图5是按照本发明的、用于重置声音外出队列的处理流程的数据方框图的表示;图6是显示按照本发明的一个方面的数据块部置决定的流程图;图7是显示按照本发明的、处理数据的进入数据块的流程图;以及图8是按照本发明的、用于调节统计历史的处理流程的数据方框图的表示。
具体实施例方式
现在详细参照本发明的实施例,它们的例子被显示在附图上。只要可能,相同的附图标记就用来在所有的图上指相同的或类似的部分(单元)。
按照本发明,本发明的特征在于,用于动态地减小通信网上的等待时间的方法,该方法包括确定下一个数据块的处理的完成以及确定该下一个数据块在消费设备的队列中剩余的样本数目。该方法还包括确定在消费设备的队列中剩余的样本数目的变率以及根据该变率确定在消费设备的队列中剩余的样本数目是否可以被减小,以及如果可以的话则减小队列。
本发明的另一个方面的特征在于,用于动态地减小通信网上的等待时间的系统,该系统包括用于确定下一个数据块的处理的完成的装置以及用于确定该下一个数据块在消费设备的队列中剩余的样本数目的装置。该系统还包括用于确定在消费设备的队列中剩余的样本数目的变率的装置以及用于根据该变率确定在消费设备的队列中剩余的样本数目是否可以被减小以及如果可以的话则减小队列的装置。
本发明的再一个方面的特征在于,用于动态地减小通信网上的等待时间的系统,该系统包括识别数据块何时准备好以加到消费设备的队列中以及轮询该消费设备和计算自从先前轮询消费设备以来由该消费设备消费的样本数目。该系统还包括计算由该消费设备消费的样本数目的变率以及根据该变率确定在该消费设备的队列中剩余的样本数目是否可以被减小以及如果可以的话则减小该队列。
本发明的又一个方面的特征在于,用于动态地减小通信网上的等待时间的软件产品,该软件产品驻留在计算机可读的媒体上,能够指令处理器来执行指令,以确定下一个数据块的处理的完成以及确定该下一个数据块在消费设备的队列中剩余的样本数目。该软件产品还指令该处理器来确定在消费设备的队列中剩余的样本数目的变率;以及根据该变率确定在该消费设备的队列中剩余的样本数目是否可以被减小以及如果可以的话则减小该队列。
本发明的另一个方面的特征在于,能够动态地减小从通信网接收的数据块的等待时间的音频和视频消费设备,该设备包括处理器,其中该处理器包括与处理器通信和由处理器控制的存储器和外设。该设备能够进行发送、接收和消费数据块中的至少一项。该设备还包括软件产品,其中该软件产品能够指令该处理器执行指令来(a)确定下一个数据块的处理的完成;(b)确定该下一个数据块在消费设备的队列中剩余的样本数目;(c)确定在所述消费设备的队列中剩余的样本数目的变率;以及(d)根据该变率确定在所述消费设备的队列中剩余的样本数目是否可以被减小。
本发明的另一个方面的特征在于,用于确定在音频/视频消费设备中的偏置的方法,该方法包括对消费设备轮询在多个时间间隔之间消费的样本的数目;以及把该消费的样本数目与根据消费设备设置的消费速率应当已经在该多个时间间隔之间消费的计算的样本数目进行比较。
图2显示用于有线和无线IP电话的总的系统结构200。该环境包含多个个人通信设备(PCD)210,它包括各种不同的处理声音或视频的部件。PCD 210包括具有存储器220的CPU 215,以及与其通信的IP通信装置225(名称为LAN媒体接入卡(MAC))、无线通信装置230(名称为IEEE 802.11、蓝牙、IR或类似的依从的标准。该通信装置可以包括LAN、互联网和其他无线设备。
PCD 210还包括IO端口235,用于音频或视频输入和输出;音频插口240,和可任选地内部扬声器和/或话筒245,它们都与CPU 215通信和被CPU 215控制。PCD 210也可包括外部扬声器和话筒255。
交互的声音通信出现在从一个PCD 210的话筒到另一个PCD 210的扬声器的通路上,以及反之亦然。每个部件可对等待时间做出贡献。除了图1和2上显示的物理部件以外,可能有软件部分,诸如声音编译码器(编码器和译码器),也可对等待时间做出贡献。
在典型的运行时,PCD 210通过LAN交换网260进行连接,LAN交换网是诸如以太网交换机或集线器或类似类型的网络设备。LAN 260通常被连接到IP路由装置265,诸如标准IP独立路由器或PC机或类似的被配置用于路由的装置。IP路由装置270是与通信交换网装置(诸如互联网)通信,或与进一步与IP路由装置275通信的其他通信网通信。如图2所示,PCD 210可以通过硬连线的或RF连接被连接到LAN 280或无线接入点285和290。
在IP电话中有几个等待时间的来源。某些来源完全在端点设备内,而其他的来源是在端点设备的外面。本发明的一个方面是使得来自直接处在端点设备的控制下的源对等待时间的贡献最小化,以及有效地管理所有剩余的等待时间原因。识别等待时间的来源是相当容易的(从它的产生到它的消费,处理声音或声音数据的每个设备和代码片段),然而,这些设备中的某些设备与其他设备相比是极小的贡献者。为了有效地控制或最小化等待时间,重要的是了解产生等待时间的机制以及人感知等待时间的本能。
虽然以下的详细说明是针对IP电话的,但读者应当注意以及本领域普通技术人员应当已经认识到,所描述的技术和方法同样可应用于数字视频流、音频/视频数据流、数据流或者其中终端设备接收用于视觉或听觉消费的数据的任何系统。
在以下的说明中,术语“样本”被规定为当涉及到音频数据块时是指音频样本,以及当涉及到视频数据块时是指帧。
IP上的声音和视频通信的某些共同特性适用于所有的对等待时间的主要贡献者。通过理解这样的等待时间贡献,可以建立一个用于进一步分析等待时间的模型。考虑的基本特性是(1)音频和视频,或者在数据报、大块、数据块、IP分组或分段中被发送;(2)音频和视频数据块需要时间来在任何的有线或无线连接上进行发送;(3)音频和视频数据块典型地仅仅在完全被接收和验证后从一个设备被发送到另一个设备或者相反地转移;(4)音频和视频数据块在大多数设备中被排队,以便发送或转移;(5)音频和视频数据块在传输中可被丢失;(6)音频和视频数据块具有相当大的额外开销,它在音频数据块很短时(即,比额外开销小)可以是总的传输花费的很大的百分数;以及(7)当音频和视频的压缩在大的数据块中被执行时,它是最有效的。
如前所述,本发明在其中等待时间成问题的任何设置中对视频数据块或音频与视频的组合同样好地考虑和工作。如果单单引用视频或音频数据块,则其是打算覆盖缺少的引用,除非特别地做了相反的说明。
IP音频或视频通信的第一个基本特性是音频在数据块、分段、数据分组或数据大块中被发送。数据块典型地通过许多各种各样的压缩算法和例程被压缩。数据块可以而且确实是尺寸变化的。数据块的尺寸通常以字节进行度量,以及取决于所使用的压缩算法(如果有的话);在数据块内包含的信息量(某些数据块包含比其他数据块更多的信息,所以是不太可压缩的);声音数据块的持续时间(典型地以毫秒度量,或以特定的样本速率的样本度量);以及在音频、视频或音频/视频环境下达到的重现的保真度。在数据块从其产生到其消费的发送路径中一个设备的等待时间贡献是该数据块的特性(即,所使用的压缩算法、数据块的尺寸、额外开销等等)的函数。
IP音频或视频通信的第二个基本特性是数据块在它们从源行进到目的地时需要从一个设备发送到另一个设备的一定的时间量。在从源到目的地的路径中并不是所有的物理链路都同样快速,所以对等待时间做出不等同的贡献。例如,最慢的链路典型地是到家庭计算机系统的调制解调器链路,且当然其对该总的等待时间贡献最大的部分。
IP音频或视频通信的第三个基本特性是可寻址的设备(具有IP地址和作为路由设备出现在路径上的设备)和许多其他设备(包括可能不作为路由设备出现的交换机)在整个数据块被第一次接收和典型地验证之前,将不开始把数据块发送到它的下一个目的地。例如,在互联网内,20个这样的可寻址的设备,和在路由清单上未见到、但也呈现这些相同特性的、几个附加的不可寻址的交换机或集线器一起出现在该路径上并不少见。
IP音频或视频通信的第四个基本特性是即使设备正常地运行以及没有分组或数据块丢失,互联网上的延时也可以是任意大的。设备队列旨在平滑容量的瞬变的或瞬时的过载,以使得即使数据块按照某个统计分布随机地到达,该设备也可达到它们的全部吞吐量。因此,有平滑该负荷以避免不必要地丢弃数据块的需要。
队列或数据缓冲器也是端点计算机设备的部件,诸如在音频或视频卡或者音频或视频卡驱动器中,以及用于IP传输到端点设备或从端点设备传输出的传输队列。这些队列的长度会受到CPU和存储器总线调度以及在传输线上的负荷的影响。队列对等待时间而言是主要的贡献者,以及在长度上可以是高度可变的。
IP音频或视频通信的第五个基本特性是数据块可被丢失。当队列在特定的设备中太大时,将典型地从该队列中丢弃数据块,以及没有被恢复的块只是消失。这典型地在等待时间已经超过最大预定的极限,通常>250ms时发生。对于250ms或更大的等待时间水平,处在实时的或接近于实时的对话中的用户会注意到该延时。在音频设置中,通信开始采用步话机方式。一旦存在等待时间,它就将持续,以及只能通过采取某些行动被克服,诸如从消费设备(即,音频、视频或音频/视频播放器)队列中删除或者从被发送到终端设备、但尚未处在该消费设备队列中的数据块中删除(即,丢弃数据块)足够的数据块,以便再次在设计参数(通常是<200ms的等待时间水平)的范围内。值得注意的是消费设备可以具有多个缓冲器。分配给该消费设备的所有缓冲器被看作为消费设备队列的一部分。分配的存储器量在设备运行期间可以被改变。
数据块在传输时也可能被破坏和被丢失。如果需要无丢失的传输,则丢失会对等待时间做出贡献;因为请求和接收被丢失数据块的重新发送所需要的时间当然加到该等待时间。这样引起的等待时间通常被认为是不可接受的。所以,对于IP电话和标准电话,会接受这样的丢失,以及接收设备必须应付丢失的数据块。通过冗余地发送信息,有可能减少这样的丢失数据块的发生,但这增加了传输的带宽花费以及附加的等待时间。
在本发明中,以及对于大多数电话的目的而言,冗余传输技术并不被认为是最期望的。尽管如此,本发明的实施例确实打算使用这样的冗余技术和机制,且这样的系统将从本发明的教导获益。
在以上列出的第二和第三特性之间的相互作用对该等待时间做出很大的贡献。因为第三基本特性要求在接收到整个数据块之前不进行发送,所以在每个节点上,在进入链路上的传输时间被加到该等待时间。例如,假设慢的调制解调器链路是所关心的链路,以及它很少能够载送在声音数据块中提出的带宽。如果声音数据块包含一秒的声音,则将需要差不多一秒来完全地发送它。所以,只从该链路就将加上一秒到该等待时间。下一个链路将可能快得多,以及将贡献它的相应的传输时间给等待时间。这个过程在互联网或通信网的每个交换机和路由设备中重复进行,直至数据块在目的地处被接收为止。因此,总的延时或等待时间可以是相当大的。
本发明使得这种影响最小化。一般的机制是发送合理地小的分组。众所周知,每个数据块、数据分段或分组包括头标,它是发送分组的额外开销的一部分。小分组的头标与大分组的头标具有相同的尺寸,因此,当通过利用较小的分组来减小等待时间时传输的花费上升。分组尺寸的减小受到基本特性6的影响的限制。
幸运的是,互联网基础结构随着时间过去已经用更快速的传输媒体构建,现在常常由非常快速的光纤链路组成,这样使得这种特定的等待时间贡献随时间过去正变得越来越小,以及常常是不重要的,并且通常地,只需要考虑排队等待时间。在遇到最慢链路的网络外围,该贡献仍旧是显著的。每个数据块典型地在它到其目的地的路途上经历两个相对较慢的“最后一英里”链路。
在进一步的详细说明中,中途点(waypoint)被规定为被利用来从一点传送数据块到另一点的任何连接或设备。中途点可以是,但不限于,集线器、路由器、中继器、交换机、PBX、编译码器、调制解调器件或终端设备之一。中途点存储、排队、和通过WAN、LAN、互联网、无线连接或通信网转发数据块到另一个连接,直至达到最后的中途点(即,终端设备)为止。应当指出,中途点并不限于网络通信节点或设备,因为某些中途点是在终端节点或设备内的部件。这些特定的中途点执行除向前传送数据块以外的功能。例如,音频或视频I/O卡,或它的驱动器,被有利地如编码器/译码器(编译码器)一样来建模作为中途点。
每个中途点具有数据块队列,它具有最小的长度和最大的长度。如果预定的最大值被超过,则数据块通常被丢弃或以某种方法被处理,以便保持长度低于该最大的门限值。最小的长度是在FIFO队列的头部、在中途点发送数据块之前必须被超过的长度。正在被发送的数据块不被认为是在该队列中;这样,中途点可以具有0的最大队列长度,但最小的实际最大队列长度是1。显然,最大值必须大于或等于最小值。
对于具有n个连接Cn的特定的通信路径,有n个目的地中途点Wn。所述连接可以是有线、光纤、或无线;以及连接Ci将中途点Wi-1连接到中途点Wi。初始的连接不具有源中途点,它可被认为是音频或视频的源。对于每个连接Ci,有一个特征传输速率ti,它在本发明的本实施例中被给出为以每秒比特计。中途点具有以下的固定的定量特性li被定义为在中途点Wi处第一接收的存储的数据块被发送或被输送到下一个中途点之前在该中途点处的队列的最小长度。
hi被定义为在中途点Wi处数据块的队列的最大长度。
中途点具有一个动态特性(即,依赖于时间)是数据块的队列长度qi。在连接Ci上输送的、用于一个特定传输的数据块具有以它们代表的音频或视频的时间计的固定长度,这是以毫秒度量的,以及用di来表示。该数据块的、需要的总比特用bi表示。数值di是当数据块在接收端通过播放设备或消费设备,诸如扬声器、监视器、PDA等等被放出时,音频或视频数据块的持续时间。当中途点是压缩编码器/译码器(编译码器)时,进入的比特尺寸有可能与外出的比特尺寸不同,而代表的声音的毫秒可以是相同的。也有可能,特定的中途点在它的输入端以不同于它发送时的毫秒长度收集声音。例如,某些与其驱动器相组合的音频卡在向接收对象发送之前将收集约50毫秒的音频,尽管请求的尺寸比50毫秒小得多。因此,如果请求10毫秒数据块,则5个音频缓冲器(数据块)可以每50毫秒被快速地接连传递。
为了简单化,假设声音压缩率是固定的,即,一组毫秒数目的音频或视频的数据块将常常需要相同数目的比特以便用压缩的形式表示,而不管被压缩的音频或视频的特性如何。通过这个假设,中途点i的固定的或非动态的贡献(其中i大于1)结合其进入的连接由下式(1)给出lidi+(bi/ti)公式(1)对于与初始中途点的初始连接而言,对等待时间的贡献只是d0,因为消费率恰恰是声音的产生率。因此,在声音设备把声音输送到下一个中途点(它或许是编译码器)之前,声音设备收集的尺寸是对等待时间的直接贡献者。固定的等待时间然后由下式(2)规定ωfixed=d0+l1d1+Σj=2n(biti+lidi)]]>公式(2)
对等待时间的动态贡献是根据队列的长度超过和大于最小长度。因此,动态等待时间由下式(3)规定ωdynamic=Σi=1n((qi-li)di)]]>公式(3)对于大多数中途点,队列的最小长度是零。路径上的瞬变条件对动态等待时间有很大的贡献,该动态等待时间典型地是相当可变的。动态队列长度(qi-li)可被看作为随机变量,它们不是独立地分布的,而是受到独立的随机事件影响。它们不是独立地分布的,因为队列长度取决于路径上所有设备的运行状态。例如,发送数据块到另一个设备的设备对于目的地设备的队列长度有影响。
本发明的一个方面是确定在最后目的地处、足以处理在传输路径上的队列长度的全部变率的队列长度,但传输路径上的队列长度不比最后目的地的队列长度更长。被选得太小的队列长度将被迫不必要地丢弃数据块,而大于必要的队列长度增加等待时间。此外,希望根据队列长度的历史来动态地调节最后队列的最大长度,以使得用户由于用完要重放或要被终端设备消费的音频或视频而感知高的等待时间、或替换地感知差的音频或视频质量的机会最小化。
如前所述,在互联网或通信网上,即使在一个计算机与通过LAN连接的另一个计算机之间的路径上的等待时间也是极度可变的。该变率的重要部分是由瞬变条件造成的。因此,队列长度在路径上动态地增长和收缩,使最后的队列通常收紧间隙。如果最后的队列长度因为设备已消费队列中的数据而变为零,则等待时间以没有数据给最终用户消费或播放的时间量增长。
变率可以以许多方法进行计算,正如本领域技术人员容易看到的。本发明教导和打算通过任何的变率计算方法来动态地减小等待时间。这包括,但不限于,统计方差或计算变率的随机模型。变率还包括加权平均,其中计算的变率度量能够是变率度量的分数或倍数。另外,变率可以通过传输的整个历史或通过预定的窗口被计算、被加权,以便更多地考虑最近的事件。在现有技术中,变率有时也称为抖动,它是在最后的网络目的地处、分组之间的到达间时间的差值的度量。变率仅仅被定义为当数据块被完全处理或准备好被消费设备(它是最后的网络目的地的一个部件)消费时,消费设备的队列长度中的差值或差值的度量。
如果假设没有分组丢失,以及音频产品时钟与声音重放时钟完全匹配,正如RTP执行的那样(即,输入端处的样本速率完全与输出端处的样本速率一致),则等待时间正好是在音频或视频首先开始在源端被捕获时的时刻开始、当音频或视频没有在目的地处被播放时的周期的和值。这个过程导致在最后的输出设备处甚至更长的队列,因为引起它们的条件实质上是瞬变的。
本发明提供通过缩短在最后的中途点(输出设备)处的队列长度而动态地提供低的等待时间的方法。本发明的实施例规定队列长度增长和在不稳定的瞬变条件期间在较长的周期内增加在那个队列尺寸处的维持。应当指出,当瞬变情况减弱时,队列不应当缩短得太快,否则会导致该设备再次用完声音(run out of sound)。队列的缩短通常应该只在观察到在很长的时间周期内可以支持较低的等待时间以后才发生。
在本发明中,在系统中动态地计算和调节较低的等待时间的相同或类似的装置也对抖动进行调节,该抖动有时被狭义地定义为在稳定状态条件期间数据块的到达时间的统计变率。抖动有时被定义为也包括比它的最后设备消费更慢或更快的音频或视频产生所关联的问题。这是不可避免的,因为消费是以与产生设备的时钟无关的时钟运行的。
如果抖动是唯一的现象,则仅仅找出要在统计上保持的、队列的良好长度就足够了。如果队列要超过该选择的长度,则它将被缩短。任选地,如果它变为较短的,则可通过某些数字信号处理装置把它拉长。否则,可以允许它运行。但情况并不是这样。本发明提供一种方法,它计及抖动,但它也计及路径上的、导致高度可变的等待时间,特别是等待时间的瞬态增加的改变的条件,该方法可以在瞬变条件期间被调节,然后当瞬变条件一减弱,就重新调节。在本发明中,这是在如上所述的、等待时间的所有贡献者被聚集后,通过动态队列管理达到的。
因为队列长度在如前所述的路径上的设备中或多或少是独立的,所以队列长度的管理应当优选地主要在最后的可能点、或者在已经经过任何可能的等待时间贡献者以后发生。这远优于在中间点的队列长度管理,除了在例外条件下,其中数据块必须被丢弃,以防止溢出队列。基于以上分析的简单统计或随机模型表明,在多个位置试图管理队列长度将可能导致较大的等待时间以及肯定不能有效地降低等待时间。具体地,在译码和加密步骤对等待时间做出贡献之前,甚至在通信协议的端点处进行管理也是不稳妥的。
在输出设备中的输出队列长度可以在大多数音频与视频重放机中从软件被确定。这典型地包含从功能调用返回的参量,它表示在输出设备中自从开始该输出以来播放的声音样本的数目。输出设备有时随时间过去而产生偏置,以及报告的位置在功能调用时的实际位置之后。这导致感知的队列长度可大大地超过实际的长度。这个现象可被看作为控制它的设备或软件中的缺陷,但它在各式各样的流行的音频与视频I/O设备中发生。本发明包括通过精确地消除偏置而使得这种缺陷的影响最小化的装置。
偏置依赖于设备,但并非在所有的设备中都是固定的,所以如果要知道队列长度,则报告的队列长度必须对该报告设备的偏置进行调节,以得到真实的队列长度。当以相应于从发送设备接收音频或视频数据块的预期时间间隔的时间间隔来传送数据块到输出设备时,调节应当根据设备的稳态运行被执行。
图3是显示按照本发明的一个方面的偏置因子决定的流程图。为了得到声音样本队列长度偏置,该声音设备被重复地探测,以便得到稳态偏置的几个样本。该偏置应当在与该声音设备和驱动器运行的基本上相同的环境中(包括在输出设备上的负荷)被观察。换句话说,如果当对给该设备的声音进行处理时要传递10毫秒的数据块,则探测将发送10毫秒的数据块到该设备。通过精确地定时数据块的发送,可以确定该队列长度应当近似于零(差值表示偏置)。探测优选地在接近的序列中出现,以及从第一探测得到的数值通常不被使用,使得设备和驱动器可以安定下来。几个结果被平均,以及取得标准偏差,然后平均值被加上该两倍标准偏差,以便得到调节的偏置值。
如图3所示,在步骤305,输出设备被打开,以及音频或视频或者音频和视频部分被初始化,以及样本位置计数器典型地被设置为零。在步骤310,作出有关相应于预期要被放出的或消费的声音的数据块样本数目n的决定。在这个步骤,还作出以设备重放速率播放该音频或视频所需要的微秒数目的决定,放在变量m中。数字变量被设置为预定的数目,在本实施例中,变量D和V被设置为0。变量D积累未播放的声音观察的和值。注意,每个这样的观察应当已经是0。变量V积累每个这样的观察的平方。变量D和V被使用来计算在观察的偏移中的平均值和标准偏差。在本实施例中,阶段计数器P被设置为2,以及总的写入的样本数目W被设置为0。应当指出,变量名称和数目可被设置为读者想要的任何值,只要计算偏置的基础方法和原理被保持即可。
在步骤315,循环计数器L被设置为10,以及在步骤320,数据块计数器C,在本例中,被设置为5。控制进到步骤325,其中执行写入长度n的空白的(无声的或黑屏的)音频/视频样本。在这个步骤,计数器C被递减1,以及n被加到写入的样本数目W。在步骤330,当前的线程睡眠(即,被延迟)约m/2微秒。这防止与这个运行有关的线程霸占CPU时间,以及更接近地模拟该设备的实际使用。
在步骤335,进入紧张的繁忙-等待循环,它在当前的线程中引入另外的附加的m/2微秒延时,以便使得自从上次写入的总的等待正好等于(程序上尽可能接近)m微秒。繁忙等待可以通过重复询问定时器直至时间用完为止而被执行。在步骤340,作出决定计数器C是否等于0。如果不是的话,过程就返回到步骤325,以及如上所述地,从该点继续进行。如果确定该计数器C等于0,则过程使控制进到步骤345,在其中确定阶段计数器P是否等于1。
如果在步骤345,确定P等于1,则过程进行到步骤350,在其中对系统作出关于播放的样本数目p的请求。计算W-p=d((写入的样本数)-(播放的样本数))。然后控制进到步骤355,在其中把差值d加到D上以及把d*d加到变量V上。然后,控制进到步骤360,以及如下所述地,从那里继续进行。
如果在步骤345,阶段计数器P不等于1,则控制进到步骤360,在其中循环L被减1。在步骤365,确定循环L是否等于0。如果结果是否定的话,则控制传回到步骤320,以及如上所述地,从那里继续进行。如果步骤365的判定是肯定的话,则控制进到步骤370,在其中阶段计数器P被减1。然后,控制进到步骤375,确定P是否等于0。如果P不等于0,则控制进到到步骤315,在其中,如上所述地,从该点进行过程。如果P等于0,则控制进到步骤380,在其中计算平均偏置。
在步骤380,通过把循环数目或所取的数据点(在本例中是10)除以D而计算平均偏置B,以及通过取{(V/10-B*B}的平方根而计算偏置B的标准偏差S。偏置因子变量<bias Factor>在本实施例中也被计算为B+2S。偏置因子是估计的偏置加上被使用来估计偏置的样本中的两个标准偏差。应当指出,本领域技术人员可以修正以上的偏置因子计算和得到基本上类似的结果,以及仍旧在本发明的范围和教导内。
虽然偏置可被看作为输出设备的音频和视频处理软件或硬件中的缺陷,但它是普遍存在的,以及需要被解决。现有技术忽略这种情形,因此,助长了设备队列的不精确的尺寸确定。读者应当注意,可被使用于音频和/或视频I/O的某些设备可能没有这种偏置。本发明的一个方面在于,它估计偏置,以及在没有这种偏置的场合下,它估计偏置值为接近于零;在这种情形下,偏置分量可被排除在队列尺寸和长度的计算与估值之外,而基本上不影响计算的结果。
图4显示声音输出队列的初始化,以及将在这时被描述。它规定几个常数,以及描述某些变量在本发明的执行过程中的使用。
重置声音输出队列的步骤400为如下。在步骤410,还未写入到消费设备R(即,输出设备或视频/音频播放机)的队列样本数目被设置为0。在本实施例中,明显常数(manifest constant)<MULT>被设置为128,其中明显常数<ROUND>和<SCALER>被计算为如下<ROUND>=<MULT>/2,这是64;以及<SCALER>=<MULT>-1,这是127。
令变量<buf_samples>为在传输中、在单个数据块中代表的声音样本的数目。应当指出,这个数值可以是可变的,但在本实施例中,它是固定的。这个变量取决于样本速率和数据块中声音的标称毫秒数,在本实施例中,它是2的幂。例如,如果样本速率是每秒11,025,则数值是256,或约23毫秒的样本。令变量<microSecDatablock>是数据块、数据报、大块或分组中的声音微秒数。令变量<CurrMicroseconds>是系统一直运行和被生成或确定的微秒数,每个时间变量<CurrMicroseconds>都在算法中被使用。
在步骤420,声音(或视频)外出队列的重置被如图5所示地执行,以及将在后面详细地讨论。过程然后进行到步骤430,在其中确定如图3所示的和以上描述的偏置因子-变量<biasFactor>。然后,控制进到步骤440,在其中声音外出队列再次被重置。
图5显示声音外出队列的重置420(它在初始化期间应当发生两次)。这个程序被使用来从某个错误状态恢复,以及协助队列的一般初始化。
在步骤510,把排队的样本数目变量<queued>设置为R,其中R是还未写入到输出设备的排队样本的数目。在初始化时,变量<queued>被设置为0,因为R是零。在步骤520,用于声音输出的设备队列被清空,名义上,这是由识别声音输出设备的系统库调用完成的。在步骤530,由系统库调用设置系统保持的数值变量<position>(它是播放的样本的累积数目)为0。注意,变量<position>可以由应用以或许较低的精度保持。例如,缓冲器尺寸乘以当前在输出设备队列中的缓冲器数目(还未由系统返回到应用)。
在某些系统中,后者的方案可被有利地使用来保持变量<position>的数值,因为本发明的特定实施例可能不被支持。如果使用后者的方法或它的等价者,则数值P可被设置为0。在某些系统中,可以有可检索的数值,通过它可以计算变量<position>。队列的长度在某些系统中是可以直接访问的,以及在这样的系统中,该数值以明显的方式被有利地使用。
在步骤540,把变量<total_queued>设置为0,以及在步骤550,把变量<microsecLastDropped>设置为0。microsecLastDropped被定义为当最后的数据块从用于重放的队列中被丢弃时系统已经运行的微秒数。在数据块的实际丢弃发生之前,它被设置为0。
图6显示用于确定数据块要被放出、被排队用于输出还是要被忽略的过程。
在步骤610,确定物理上还没有播放出的、排队用于重放的样本的数目,以及把它存储在变量<queued>中。这个操作名义上包括把已经在任何时间排队的总的样本数目称为变量<total_queued>,以及从得到当前已被播放的总数的系统调用来确定变量<position>。变量<queued>被计算为变量<queued>=变量<total_queued>-变量<position>。在步骤620,确定变量<queued>是否>=0,如果它小于0,这是错误情况,则控制进到步骤420,在其中声音外出队列被重置,然后控制进到步骤610,正如以上描述的;如果它大于或等于0,则控制进到步骤630,在其中变量<sum>和变量<sumsquared>被计算为如下变量<sum>=((变量<sum>*<SCALER>)+(变量<queued>*<MULT>)+<ROUND>)/<MULT>。变量<sumsquared>=((变量<sumsquared>*<SCALER>)+(变量<queued>*变量<queued>*<MULT>)+<ROUND>)/<MULT>。读者应当注意,除以<MULT>的除法和乘以<MULT>的乘法可以通过移位运算被有利地实施,其中<MULT>是2的幂。
在步骤640,加权平均队列长度变量<wavgqueue>和在队列长度变量的加权方差<wvarqueue>通过以下公式被计算变量<wavgqueue>=(变量<sum>+<ROUND>)/<MULT>
变量<wvarqueue>=(变量<sumsquared>-((变量<sum>*变量<sum>+<ROUND>)/<MULT>)+<ROUND>)/<MULT>
在步骤650,中间值变量<overage>如下地被计算为当前的加权平均队列长度减去样本中数据块的偏置因子和数据块的长度变量<overage>=变量<wavgqueue>-变量<biasFactor>-变量<buf_samples>。
在步骤660,作出决定变量<overage>是否大于或等于0。如果不是的话,则控制进到步骤670,在其中变量<overage_squared>被设置为0,以及如果是的话,则控制进到步骤680,在其中变量<overage_squared>被设置为<overage*overage>。然后,控制进到步骤690,在其中布尔值变量<dodrop>按下式被计算变量<dodrop>=((9*变量<wvarqueue>)变量<变量<overage_squared>)AND((变量<microSecData block>/4)=(变量<CurrMicroseconds>-变量<microSecData block>))。
通过某些代数运算,可以看到,以上的、对于<dodrop>的公式确定加权平均队列长度减去加权标准偏差(在这时设置为3)是否大于样本中单个数据块的长度。如果是的话,则我们可安全地使队列长度减小一个数据块,而不用担心队列将用完声音。公式的第二部分保证数据块没有以比1/4更快的速率被去除,尽管这个数目可以取决于应用而从1/2或1/3或更多分之一中变化。
图7显示进入的数据块或数据块的组的处理,包括从源到目的地的传输。无论何时包含声音的传输被接收到,都优选地进行这个活动。
在步骤710,传输在路径上最后的物理设备处被接收。(名义上,在这个设备与模拟重放硬件之间没有更多的LAN或无线传输链路)。这是一个外部驱动的事件,它使控制进到步骤720,在其中如果数据块在这个传输中被多次(或许冗余地)代表,则它们被分开,以及这个过程对于每个数据块继续进行,以便从以前的冗余传输还没有处理的第一数据块开始。冗余传输对于大多数环境不是优选的,但是如果遇到,则冗余的传输在这个步骤被去除。
在步骤730,数据块被译码或者以其它方式被处理用于重放或消费。通常,在过程中的这一点处,执行任何需要的解压缩和/或解密。在步骤740,如图6所示地计算布尔值变量<dodrop>。在步骤750,确定对于<dodrop>的变量条件是否已经满足,以及如果满足,则控制进到步骤760,在其中统计历史通过使用变量<buf_samples>作为传送的数值而为一个丢弃的数据块进行调节。在步骤750,变量<microsecLastDropped>被设置为如下变量<microsecLastDropped>=变量<CurrMicroseconds>。
如果对于变量<dodrop>的条件不满足,则控制进到步骤770,在其中已准备的数据块被加到消费设备的输出队列,用于重放。
图8描述调节统计历史,以确定数据块的布置。广义地说,算法在正确地接收的数据块仍然没有被播放出后调节统计量,以便正确地呈现历史。如果数据块没有被播放出,则它在下一个数据块到达时导致较短的队列,这样,就生成一个在过去队列始终较短时将已经得到的统计历史。
在步骤810,变量<adjust_samples>被传送到这个算法。该统计历史被保持在两个变量中,变量<sumsquared>和变量<sum>。这个算法调节它们,以使得如果下一个数据块正好及时到达,且重放(声音输出)设备在该时间间隔中精确地播放出预期的声音量,则历史将反映新的变量<sum>和变量<sumsquared>,如果在历史上队列每次被采样时该队列的变量<adjust_samples>在长度上较短,则将已经获得它们。这允许当几个数据块需要接连地被去除时适当地更快速地进行该队列的缩短。动态队列管理算法因此更快速地调节造成非常长队列的瞬变条件。
在步骤820,变量<sum>按以下公式被调节变量<sum>=变量<sum>-(变量<adjust_samples>*<MULT>)。
如果变量<sum>小于0,则把变量<sum>设置为0。
在步骤830,变量<sumsquared>按以下公式被调节变量<sumsquared>=变量<sumsquared>-(((2*变量<adjust_samples>*变量<sum>)-(变量<adjust_samples>*变量<adjust_samples>)+<ROUND>)/<MULT>)。
如果变量<sumsquared>小于0,则把变量<sumsquared>设置为0。
现在将描述本发明的以上的系统和方法的概述。当IP电话连接被建立时,如图4所示,通常首先主动地执行队列的初始化。它通常设置由后面的算法实施方案使用的常数,以及初始化某些变量。它优选地被调用一次,以建立队列控制机制。
图5所示的声音输出队列的重置包含把输出设备中所有排队的样本清空。例如,如果输出的位置被报告为在被写出到设备的样本数的前面,则已给予输出设备驱动器的声音数据块被丢弃,以及设备位置被重置。这个相同的例程在初始化时也优选地发生两次;一次是在进行探测偏置因子之前,然后再一次是在接收的数据块首先被写出到设备之前。
特别关心的是在初始化时设置的一个变量。它是用于声音输出设备的偏置因子,这是通过作出如图3和附加的文本所示的几个探测而生成的。偏置因子被使用来调节估计的队列长度,它应当是在输出设备处于与它将播放该连接的声音正好相同的运行模式中时得到的。它是根据输出设备的几个探测、通过计算队列长度的标准偏差和平均值而被计算的。通过复制如在对话期间将得到的精确定时,而仔细地产生偏置,其中保证队列长度接近于零。
然而,被报告的位置通常滞后在后面,所以该长度可被计算为几百个样本。一系列探测被执行,以使得受影响的单元(诸如输出设备驱动器)安定在稳定状态。然后,执行第二系列,进行测量和对于每次探测的队列长度和队列长度的平方进行求和。然后计算平均值和标准偏差,以及把该偏置因子设置为平均值加上两个标准偏差。
如图8和附加的文本所表示的,当每个数据块到达时维持统计量。统计历史被维持作为指数加权的统计动差。加权的和值与该数值的平方的加权和值被保持。然后,从这些数值计算加权平均值和加权方差。在本发明中,这些计算是通过使用移位算子而不是除法,被有效地执行的。而且,不需要取平方根。而是由于判决是二进制,所以可以执行代数学,以允许进行与方差的比较。所以,三个标准偏差作为九个方差进行比较。
推导被优选地如下执行。令Avg代表平均的加权队列长度,以及Sig是标准偏差,Bufflen是样本中缓冲器的长度,可以希望确定平均值减去三个标准偏差在长度上是否大于单个数据块,在这种情形下,整个数据块可以如下面的公式(4)中所规定的,安全地被丢弃。
Avg-3*Sig>Bufflen3*Sig<Avg-Bufflen 公式(4)9*Sig*Sig<(Avg-Bufflen)*(Avg-Bufflen)在公式(4)中,Sig*Sig是方差(即,变率),所以通过以上公式的比较,可以避免平方根,但该比较等同于确定加权平均值减去三个标准偏差是否大于缓冲器的长度。如果结果为真,则确定把队列缩短样本的一个数据块是安全的。
应当指出,被称为卡尔曼(Kalman)滤波器的、熟知的通常递归数字滤波技术也可以有利地被使用来估计在队列长度序列中的平均值和变率。虽然这个通用的实施方案在计算上没有优选实施例那样有效,但通过适当的参量选择,它可以允许得到类似的结果。然而,它比独立地计算每个数据块的平均值和方差有效得多,因为卡尔曼滤波器也递归地维持历史。
再次回到图7,显示了如果一个以上的数据块在传输,进入的数据块或数据块组的一般处理。广义地,对数据块做出的第一决定是译码和/或解密它,因为这会把等待时间和方差加到该队列上。这个操作优选地在确定是否丢弃数据块之前进行,因为当数据块实际上可供播放出时它花费来执行计算的时间将导致较低的队列长度。关于数据块是否将被播放的决定,如图7所示,可被执行来确定数据块实际上是否将被播放。
在替换的实施例中,它需要更多的CPU时间来使用现有技术已知的技术重新采样声音,以使得减小对于接着的四个数据块或数据块的某个其他子集的样本的数目。这种重新采样过程被使用来保持声音在播放时的频率,以及减小样本的数目。也有可能使用数据块丢弃解决方案,用于重复的数据块的快速接连的丢弃,以及使用重新采样来在需要丢弃较少的样本时,减小排队的样本的数目。虽然这样的过程在CPU时间上是更昂贵的,但在某些环境下,它产生优越的输出。
如果在下一个数据块到达时期望缩短队列,例如数据块没有被排队用于输出,则统计量通过对图8所示算法的调用而被适当地修正。正如图8和附加的文本所表示的,历史被调节,以便作出历史,即,和值与平方的和值的数值反映队列在整个历史上被缩短特定数目的样本时得到的数值。这允许该历史被看作为是稳定在新的平均值,正如没有作出调节时它将做的一样,这样,如果另一个队列缩短是按次序的,则它可被快速地作出。换句话说,队列的直接缩短不应当增加传输媒体的不稳定性的感觉。这种调节避免这种情况的发生。
本领域技术人员将会看到,在本发明的用于IP电话的动态等待时间管理和本发明的构建方面可以作出各种修正和变化,而不背离本发明的范围或打算。
从这里揭示的本发明的技术说明和实践看来,本发明的其他实施例对于本领域技术人员将是显而易见的。其旨在使说明书和例子打算只被看作为示例性的,本发明的真实的范围和精神由以下的权利要求表示。
权利要求
1.一种用于动态地减小通信网上的等待时间的方法,该方法包括(a)确定下一个数据块的处理的完成;(b)确定该下一个数据块在消费设备的队列中剩余的样本数目;(c)确定在该消费设备的队列中剩余的样本数目的变率;以及(d)根据确定在所述消费设备的队列中剩余的样本数目是否可被减小。
2.按照权利要求1的、用于动态地减小等待时间的方法,其中队列通过提高消费设备的消费速率而被减小。
3.按照权利要求1的、用于动态地减小等待时间的方法,其中队列通过将该样本重新采样为较少的样本而被减小。
4.按照权利要求1的、用于动态地减小等待时间的方法,其中队列通过删除该队列中的样本而被减小。
5.按照权利要求1的、用于动态地减小等待时间的方法,其中队列通过丢弃数据块的样本而被减小。
6.按照权利要求5的、用于动态地减小等待时间的方法,其中如果该队列中剩余的样本数目大于数据块中样本的数目与变率的和值,则丢弃数据块的样本。
7.按照权利要求5的、用于动态地减小等待时间的方法,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,以及紧接在前面的数据块被加到该队列上,则丢弃数据块的样本。
8.按照权利要求5的、用于动态地减小等待时间的方法,其中如果队列中剩余的样本数目大于数据块中样本数目与变率的和值,以及如果在前面的数据块的范围内至少一个数据块没有被加到该队列上,则丢弃数据块的样本。
9.按照权利要求1的、用于动态地减小等待时间的方法,其中如果队列中样本的总数超过预定的门限,则删除该队列中的样本。
10.按照权利要求6的、用于动态地减小等待时间的方法,其中变率被加权。
11.按照权利要求1的、用于动态地减小等待时间的方法,其中变率被加权。
12.按照权利要求5的、用于动态地减小等待时间的方法,其中如果队列中剩余的样本数目大于数据块中样本的数目、变率与偏置的和值,则丢弃数据块的样本。
13.按照权利要求5的、用于动态地减小等待时间的方法,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,以及紧接在前面的数据块被加到该队列上,则丢弃数据块的样本。
14.按照权利要求5的、用于动态地减小等待时间的方法,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,以及如果在前面的数据块的范围内至少一个数据块没有被加到该队列上,则丢弃数据块的样本。
15.按照权利要求13的、用于动态地减小等待时间的方法,其中如果队列中样本的总数超过预定的门限,则删除该队列中的样本。
16.按照权利要求12的、用于动态地减小等待时间的方法,其中变率被加权。
17.按照权利要求15的、用于动态地减小等待时间的方法,其中变率被加权。
18.按照权利要求1的、用于动态地减小等待时间的方法,还包括对于总的数据块的至少一部分重复进行步骤(a)-(d)的步骤。
19.按照权利要求18的、用于动态地减小等待时间的方法,其中队列通过提高消费设备的消费速率而被减小。
20.按照权利要求18的、用于动态地减小等待时间的方法,其中队列通过将该样本重新采样为较少的样本而被减小。
21.按照权利要求18的、用于动态地减小等待时间的方法,其中队列通过删除该队列中的样本而被减小。
22.按照权利要求18的、用于动态地减小等待时间的方法,其中队列通过丢弃数据块的样本而被减小。
23.按照权利要求22的、用于动态地减小等待时间的方法,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,则丢弃数据块的样本。
24.按照权利要求22的、用于动态地减小等待时间的方法,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,以及紧接在前面的数据块被加到该队列上,则丢弃数据块的样本。
25.按照权利要求5的、用于动态地减小等待时间的方法,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,以及如果在前面的数据块的范围内至少一个数据块没有被加到该队列上,则丢弃数据块的样本。
26.按照权利要求24的、用于动态地减小等待时间的方法,其中如果队列中样本的总数超过预定的门限,则删除该队列中的样本。
27.按照权利要求23的、用于动态地减小等待时间的方法,其中变率被加权。
28.一种用于动态地减小通信网上的等待时间的方法,该方法包括(a)识别数据块何时准备好加到消费设备的队列上;(b)轮询该消费设备和计算自从该消费设备的先前轮询以来由消费设备消费的样本的数目;(c)计算在由该消费设备消费的样本数目中的变率;以及(d)根据该变率确定在该消费设备的队列中剩余的样本数目是否可被减小。
29.一种用于动态地减小通信网上的等待时间的系统,该系统包括(a)用于确定下一个数据块的处理的完成的装置;(b)用于确定该下一个数据块在消费设备的队列中剩余的样本数目的装置;(c)用于确定在该消费设备的队列中剩余的样本数目的变率的装置;以及(d)用于根据该变率确定在所述消费设备的队列中剩余的样本数目是否可被减小,以及如果是则减小该队列的装置。
30.按照权利要求29的、用于动态地减小等待时间的系统,其中队列通过提高该消费设备的消费速率而被减小。
31.按照权利要求29的、用于动态地减小等待时间的系统,其中队列通过将该样本重新采样为较少的样本而被减小。
32.按照权利要求29的、用于动态地减小等待时间的系统,其中队列通过删除该队列中的样本而被减小。
33.按照权利要求29的、用于动态地减小等待时间的系统,其中队列通过丢弃数据块的样本而被减小。
34.按照权利要求33的、用于动态地减小等待时间的系统,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,则丢弃数据块的样本。
35.按照权利要求33的、用于动态地减小等待时间的系统,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,以及紧接在前面的数据块被加到该队列上,则丢弃数据块的样本。
36.按照权利要求5的、用于动态地减小等待时间的方法,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,以及如果在前面的数据块的范围内至少一个数据块没有被加到该队列上,则丢弃数据块的样本。
37.按照权利要求31的、用于动态地减小等待时间的系统,其中如果队列中样本的总数超过预定的门限值,则删除该队列中的样本。
38.按照权利要求34的、用于动态地减小等待时间的系统,其中变率被加权。
39.按照权利要求33的、用于动态地减小等待时间的系统,其中如果队列中剩余的样本数目大于数据块中样本的数目、变率与偏置的和值,则丢弃数据块的样本。
40.按照权利要求29的、用于动态地减小等待时间的系统,还包括对于多个数据块重复进行步骤(a)-(d)的步骤。
41.一种用于动态地减小通信网上的等待时间的软件产品,驻留在计算机可读媒体上的该软件产品能够指令处理器执行指令以(a)确定下一个数据块的处理的完成;(b)确定下一个数据块在消费设备的队列中剩余的样本数目;(c)确定在消费设备的队列中剩余的样本数目的变率;以及(d)根据该变率确定在所述消费设备的队列中剩余的样本数目是否可被减小,以及如果是,则减小该队列。
42.按照权利要求41的、用于动态地减小等待时间的软件产品,其中队列通过提高该消费设备的消费速率而被减小。
43.按照权利要求41的、用于动态地减小等待时间的软件产品,其中队列通过将样本重新采样为较少的样本而被减小。
44.按照权利要求41的、用于动态地减小等待时间的软件产品,其中队列通过删除该队列中的样本而被减小。
45.按照权利要求41的、用于动态地减小等待时间的软件产品,其中队列通过丢弃数据块的样本而被减小。
46.按照权利要求45的、用于动态地减小等待时间的软件产品,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,则丢弃数据块的样本。
47.按照权利要求45的、用于动态地减小等待时间的软件产品,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值以及紧接在前面的数据块被加到该队列上,则丢弃数据块的样本。
48.按照权利要求45的、用于动态地减小等待时间的软件产品,其中如果队列中剩余的样本数目大于数据块中样本的数目与变率的和值,以及如果在前面的数据块的范围内至少一个数据块没有被加到该队列上,则丢弃数据块的样本。
49.按照权利要求1的、用于动态地减小等待时间的软件产品,其中如果队列中样本的总数超过预定的门限,则删除该队列中的样本。
50.一种用于确定音频/视频消费设备中的偏置的方法,该方法包括轮询消费设备在时间间隔之间消费的样本的数目;以及把所消费的样本数目与根据消费设备设置的消费速率、在多个时间间隔之间应当消费的计算的样本数目进行比较。
51.一种能够动态地减小从通信网接收的数据块的等待时间的音频和视频消费设备,该设备包括处理器,其中该处理器包括存储器;外围设备,其与该处理器通信和由该处理器控制,能够进行发送、接收和消费数据块中的至少一项;以及软件产品,其中该软件产品能够指令该处理器执行指令以确定下一个数据块的处理的完成;确定该下一个数据块在所述消费设备的队列中剩余的样本数目;确定在所述消费设备的队列中剩余的样本数目的变率;以及根据变率确定在所述消费设备的队列中剩余的样本数目是否可被减小。
全文摘要
用于独立于实时协议而动态地减小通信网的等待时间的方法。该方法包括确定下一个数据块的处理的完成和确定该下一个数据块在消费设备(210)的队列中剩余的样本数目。不用知道系统(200)的等待时间,根据在消费设备(210)的队列中剩余的样本数目来确定变率。然后根据该变率作出在所述消费设备(210)的队列中剩余的样本数目是否可被减小的决定,以及如果是的话,则减小该消费设备(210)的队列。
文档编号H04M7/00GK1541471SQ02815649
公开日2004年10月27日 申请日期2002年6月10日 优先权日2001年6月9日
发明者K·L·丹宁霍夫, K L 丹宁霍夫 申请人:电讯系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1