存在网络阻塞点时用于免打嗝快速信道改变的媒体流调度的制作方法

文档序号:7598612阅读:151来源:国知局
专利名称:存在网络阻塞点时用于免打嗝快速信道改变的媒体流调度的制作方法
技术领域
本发明主要涉及数据信号传输技术。
背景技术
随着(诸如那些使用单播、多播和广播的)数字媒体流技术的出现,当正从媒体服务器接收数据时,用户能够或多或少地看见并听见数字媒体。
在此,“媒体流”是根据现在或将来可用的机制压缩并编码的(包含音频和/或可视化内容,诸如视频的)多媒体对象。此外,应根据通常可用的机制解码和呈现这样的媒体流。
在不失一般性的前提下,可将相同的技术应用于任何具有类似结构的媒体流,这样能减少时间或空间冗余。例如,诸如AC3这样的许多音频压缩格式具有后面跟随有修正数据的关键帧,以重新产生原始未压缩流的近似。
多媒体分发格式标准由于准确代表这样的多媒体内容所需的数据量,通常以编码、压缩的形式将其递送到计算设备。为再现用于呈现的原始内容,通常多媒体内容进行解压并在呈现它之前解码。
已经开发了许多定义用于分发的已编码多媒体内容的格式和意义的多媒体标准。诸如由国际标准化组织(ISO)和国际电工技术委员会(IEC)支持的运动图象专家组这样的组织,以及由国际电信联盟(ITU)支持的视频编码专家组(VCEG),已经开发了许多多媒体编码标准(如MPEG-1、MPEG-2、MPEG-4、H.261、H.263以及类似的标准)。
有许多不同的标准化视频流数据格式。例如,MPEG、H.263、MPEG-1、MPEG-2、MPEG-4可视化、H.264/AVC以及DV格式。同样地,有许多不同的标准化音频流数据格式。如MPEG音频、AC3音频、DTS音频,或者MLP音频。
占主导优势的数据视频压缩和传输格式来自称作基于块的运动补偿混合视频编码器家族,例如ISO/IEC MPEG-x(运动图象专家组)和ITU-T VCEG H.26x(视频编码专家组)标准。这个标准家族用于以数字压缩格式对音频可视信息(如电影、视频、音乐和诸如此类的)进行编码。
为了便于解释,这里主要讨论并说明MPEG-2媒体流(也已知为H.262媒体流),这是因为其具有传统视频编码方法的典型结构。然而,那些本领域的熟练技术人员理解并认识到存在其他这样的数字媒体压缩和传输格式并可以使用它们。
典型的MPEG-2视频序列由通常称作图像组(或“GOP”)的帧序列组成。GOP由图像或帧的序列组成。GOP数据被压缩为I-、P-和B-帧序列。
I-帧(即,内帧)是独立启动图像-(以与JPEG图像类似的格式压缩)。I-帧或“关键帧”被编码为单个图像,不引用任何过去的或将来的帧。有时候其被称作随机访问点(RAP)。
那些本领域的一般熟练技术人员熟悉I-、P-和B-帧之间的关系。
媒体流的传输为实用起见,携带来自媒体流编码器的音频或视频的连续媒体流通常被分解为多个用于传输的包。这些分包流通常称作分包基本码流(PES)。这些包由包含用于同步PES包的时间戳的首部来定义。
传输流通常携带许多不同的媒体流。媒体流解码器必须能够从一个媒体流改变到另一个并正确地选择新近选择的媒体流的适当音频和数据信道。由于每个媒体流可被视作“信道”,所以从一个媒体流改变到另一个的动作通常可被称作“改变信道”。而且,在之前没有接收到任何媒体流时,启动媒体流的动作也可被称作“改变信道”。
时间戳在压缩之后,由于双向编码,媒体流编码器通常发送失序的帧。这样的帧需要可变量的数据,并且由于多路复用和传输,这样的帧受限于可变延迟。由于多种原因(包括如同步音频和视频流),周期性地将时间戳合并到媒体流中。
时间戳表明特定GOP在时间上的位置。当解码器接收到PES包时,对每个帧进行解码和缓冲。当时间线计数(timeline count)达到时间戳的数值时,读取出缓冲器中的帧。
PTS/DTS当使用双向编码时,可能必须在呈现帧之前对其解码,以使其可充当另一个帧的数据源。然而,例如,可以用IBBP的顺序来呈现图像,它们将以IPBB的顺序发送。因此,存在两种类型的时间戳。解码时间戳(DTS)表明何时必须解码图像的时间,然而呈现时间戳(PTS)表明必须何时将其呈现到解码器输出。
PTS仅表明帧的第一个离散呈现部分的呈现时间,而不是后续呈现部分(如,视频帧的后续区域,或音频帧的后续样本)的呈现时间。
由于这里关注的是最快进行的流呈现,所以这里的讨论将忽略DTS,而参考PTS。
PCR在传输流中,每个信道可源于不同的地理位置;并且因此不太可能被同步化。结果,传输流通常对每个信道提供单独的同步方法。此同步使用节目时钟参考(PCR)时间戳,且重建稳定参考时钟。
某些媒体流编码器对每个帧提供显式PCR。其它媒体流编码器对某些帧提供PCR;因此,这就要隐含确定其他帧的PCR。在此,我们假定每个包都具有显式PCR或者可以隐含确定的PCR。
通常,媒体流编码器产生遵从特定位速率和时间选择限制的流。这是编码器的义务。
某些编码器产生的流是真实CBR(常量位速率)流。对真实CBR而言,可推断出PCR与DTS相等或对DTS有小的负偏移。
某些编码器产生VBR(可变位速率)流,它仍旧遵从可指明的最大位速率限制。对VBR流而言,编码器可能在每个包上都给出显式PCR,它可能给出显式PCR,但是仅对某些包给出,或者可能在任何包上都不给出显式PCR。
下溢当接收单元用完要解码的(或呈现的)数据时,称其为“下溢”。当接收单元即将对下一帧进行解码(或呈现)但是其还没有接收到(或解码)该帧的所有数据时出现下溢。
下溢的实际和明显的表现形式是呈现运动视频中的时间中断(如“打嗝”或“结巴”)而非所需的流畅播放运动视频的效果。例如,经历下溢的接收单元可能在显示下一个或较晚帧之前显示视频流的帧而后面跟随有明显的延迟,而不是以固定频率显示运动视频(如15帧每秒)。这将继续几秒或几分钟。
当接收单元改变信道时,下溢的条件成熟。若接收单元一接收到帧就立即呈现帧并对新的引入媒体流进行解码,则下溢条件很可能出现。
然而,对多媒体内容而言,在某些定义点处呈现给用户是常见的(如当缓冲器足够满或在从接收起定义的延迟之后)。当播放多媒体内容时,接收设备清空保存在其缓冲器中的数据。然而,当接收设备正播放已保存的多媒体时,更多的数据被下载以重新填充缓冲器。只要至少以从不完全清空缓冲器的方式回放数据的速度下载,文件将被平稳播放。
通常,媒体流编码器产生遵从特定位速率和时间选择限制的流。每个由编码器产生的传输包具有显式的或隐含的PCR(节目时钟参考)。编码器保证若以由每个包的PCR指示的次数来发送传输包,则流总体上将遵从位速率、时间选择,以及流的因果性限制。
例如,若在5秒窗口之上进行测量时位速率限制是媒体流不超过一兆位每秒(如1Mb/s),时间选择限制是PCR到PTS延迟将决不超过3秒,并且因果性限制是PCR小于或等于DTS且PCR小于或等于PTS,则编码器必须对该流产生当聚集到一起并根据每个包的PCR发送时遵从这些限制的传输包连同PCR和PTS以及DTS(每个或者是显式的或者是隐含的)。
上述这些被设计用来防止下溢的传统技术产生了恼人的副作用“信道启动延迟”。

发明内容
这里说明的实现促进新媒体流的快速启动,而避免新媒体流呈现的时间中断(如“打嗝”)。这里说明的至少一个实现调整媒体流网络上的多个同时媒体流的递送。其调整解决限制带宽的阻塞点的遍历;快速地停止来自流集合的一个或多个媒体流的递送;快速地初始化一个或多个先前没有在集合中的媒体流的递送和呈现(即“信道改变”);并且在集合中产生所有流的流畅回放,而不管它们的不同时间线。
此摘要本身不限制本专利的范围。而且,本专利的标题不限制本专利的范围。为更好理解本发明,请结合附图,查看下面的详细说明和后附的权利要求书。本发明的范围在后附的权利要求书中指出。


在所有附图中,相同的编号用于引用类似的元素和特性。
图1是阐明能够(完全或部分地)实现这里说明的至少一个实施例的范例媒体流网络拓扑的示意图;图2是示出这里说明的方法实现的状态图;及图3是示出这里说明的方法实现的流程图。
具体实施例方式
在下面的说明中,为解释起见,为提供对本发明的详尽理解,阐明特定的数字、材料和配置。然而,本领域的熟练技术人员应理解,不用特定的范例细节也可实施本发明。在其他的实例中,熟知的特征被省略或简化以阐明本发明范例实现的说明,并且因此以更好地解释本发明。此外,为便于理解,特定的方法步骤被描述为单独的步骤;然而,这些单独描述的步骤不应被解释为在顺序上依赖于它们的执行。
下面的说明阐明用于出现网络阻塞点时的免打嗝快速信道改变的媒体流调度的一个或多个范例实现,它包含在后附的权利要求书中陈述的元件。具体地说明这些实现以符合法定书面说明、授权,以及最佳模式需求。然而,说明本身不限制本专利的范围。
这里说明的这些范例实现是例子。这些范例实现不限制本发明所请求的范围;而是本发明也可结合其他当前或将来的技术而以其他方式具体化和实现。
用于出现网络阻塞点时的免打嗝快速信道改变的媒体流调度的实施例范例也可被称作“范例媒体流调度程序”。
虽然范例媒体流调度程序的多数讨论是根据数字压缩和传输格式的MPEG家族进行的,但是本领域中那些普通水平的熟练技术人员应理解这里讨论的与MPEG有关联的概念是如何应用到其他诸如H.264这样的格式的。
在此,“呈现”包括将媒体内容传送到显示器和/或音频设备。它也包括将媒体内容保存到存储器中,将这样的内容传送到另一个设备或组件,和/或通过信号传输媒体来发送内容。
介绍使用范例媒体流调度程序,“信道启动延迟”时间显著减少。使用现有的方法,信道改变初始化同完全和流畅的运动视频呈现之间的时间量级为一秒或多秒。使用范例媒体流调度程序,相同动作的时间量级为一秒的一部分(如100毫秒)。
在现有方法中,避免“下溢”的需要(通过使视频播放出现结巴或打嗝现象而表明)是造成较长的信道启动延迟的主要因素。媒体流编码器通常对帮助定义信道启动延迟的(正在接收流的)媒体呈现设备提供指导。
为提供指导,编码器发送具有时间戳(具有PCR)的流中的一个或多个包的传输调度信息,以指定呈现设备何时能够安全地开始播放流(无下溢)。当进行此项工作的时候,编码器通常假定呈现设备的特定数据速率(诸如1Mbs)并假设时间选择限制。
然而,范例媒体流调度程序引入新的方法,该方法使用媒体流调度程序和呈现设备之间可用带宽的实际知识。范例媒体流调度程序具有网络带宽可用性的实际知识和进入的媒体流的实际知识,而不是假设或强加的限制。
媒体流网络拓扑图1阐明范例媒体流网络拓扑100,在其中可以(部分或全部地)实现技术、系统和其他在此说明的方面。范例拓扑100是促进多媒体分发的电视娱乐系统。
范例拓扑100包括一个或多个媒体流编码器110、其他内容提供者112(如一视频点播)、(具有零个或更多阻塞点的)网络120、调度程序130,以及内容分发系统140。
媒体流编码器110和其他内容提供者112提供诸如电影、电视节目、商业、音乐和类似音频和/或视频内容这样的媒体内容。它们以网络120上的媒体流的形式将此内容提供到内容分发系统140并最终将内容提供到呈现设备(如160和162)。
内容分发系统140代表将多媒体内容提供到多个订户的头端服务。一个或多个传输子系统与内容分发系统140连接,如在150和152处所示。仅有在这里阐明两个传输子系统,但是,当然,可能有更多的传输子系统。
一个或多个媒体呈现设备与每个子系统连接,如在160和162处所示的分组。所示的每个子系统具有3个呈现设备分组,但是,当然,每个子系统可能有任何数量的呈现设备。
编码器110和内容提供者112通过内容分发系统140和网络120将媒体流发送到呈现设备。
呈现设备(诸如那些在160和162处以分组阐明的)能以多种方法来实现。呈现设备可为“机顶”盒。呈现设备可与电视连接,用于呈现由呈现设备接收到的内容(如音频数据和视频数据),以及图形用户界面。可以实现特别的呈现设备来显示或呈现内容。
网路拓扑和单播范例拓扑100可为广播、多播和/或单播的混合。然而,范例拓扑100的接收端-在阻塞点和呈现设备之间-为单播。
虽然在阻塞点拓扑中可能存在阻塞点的任意集合,正被追踪的媒体流沿着从它们到呈现设备的路径上仅通过每个阻塞点最多一次。内容分发系统140是典型带宽限制阻塞点的例子。此外,网络120具有零个或多个带宽限制阻塞点。范例媒体流调度程序支持任意的阻塞点拓扑,其中通过该一个或多个阻塞点到一个或多个呈现设备的通信是单播的。换言之,这可以说明媒体流网络拓扑中的一个或多个单播阻塞点。
范例拓扑100(包括网络120)可包括有线电视网络、无线电、微波、卫星,和/或数据网络,如国际互联网,并且也可包括使用任何多播格式或多播协议的有线或无线通信媒体。另外,范例拓扑100可使用任何类型的网络拓扑和任何网络通信协议,并可被表示为或实现为两个或多个网络的组合。
每个呈现设备与网络拓扑中的零个或多个带宽限制阻塞点相关联。在概念上,递送到呈现设备的数据经过与其相关联的阻塞点。
对每个阻塞点而言,该阻塞点的猝发容量定义为该阻塞点的容量减去与该阻塞点相关联的呈现设备的保留位速率之和。
现有方法静态供给带宽使用现有的情况,每个下游呈现设备(诸如162a)在它和传输子系统(诸如152)之间具有定义量的静态供给的带宽(如1Mbs)。它从不具有更多的带宽,并且从不具有更少的带宽。在现有的情况中,呈现设备一直具有静态保证的带宽(无论需要与否)。
然而,有时候,诸如当改变信道时,以较快的速度接收数据将是有利的;这样,将需要更多的带宽。然而,在现有的情况中,呈现设备从不以较快的速度接收数据,这是因为其带宽是静态供给的。
通常,子系统和呈现设备之间的链接与在传统情况中静态供给的相比,能够显著具有更多的带宽。例如,典型DSL链接能够具有4Mbs,但是通常静态供给1Mbs或更少。因此,每条线的完全4Mbs没有被利用上。
使流遵从整体位速率限制的目的在于这能够保证可能通过具有总是大于或等于流的位速率限制的位速率的连接而播放该流。通信信道通常具有固定的位速率的原因或者是由于技术限制(不能再快了),或者是由于信道被限制为特定的速率,这样以使得对更高的位速率收取更多的费用。
现有的方法是假定只有等于流的位速率限制的位速率将到达接收器。当确定何时初始化回放时,通常假定将来仅有最小需要的位速率是可用的,并且为不下溢,该流将连续地需要整个最小量。当通过单播发送流到接收器时,通常假定到接收器的可用位速率的量是未知的,但假定比流的位速率限制大,这即使在实际可用位速率比流的位速率限制高的情况下也是成立的。
新方法保留但可动态分配的带宽使用范例媒体流调度程序,不静态供给带宽。呈现设备具有与它们相关联的保留位速率。然而,在对当前时隙进行调度时,该保留位速率可被动态赋予其他呈现设备。因此,不对其他呈现设备在将来时间进行保留。
使用范例媒体流调度程序,每个呈现设备的最大猝发带宽仅由网络通信链接(包括沿着该路径的阻塞点)的内在限制而限制。使用范例媒体流调度程序,带宽不必人工地限制得小于其完全容量。
几个流可被同时发送到相同的呈现设备。然而,被发送到呈现设备的流的名义位速率必须合计起来小于该呈现设备的保留位速率。
调度程序范例媒体流调度程序可通过范例媒体流网络拓扑100的调度程序130(完全或部分地)实现。如由图1中的箭头所示,媒体流编码器110和其他内容提供者112向调度程序130提供有关它们的输出媒体流的调度信息。
调度程序不必接收正被发送到呈现设备的实际媒体流(尽管它可以)。相反,它至少需要知道当前正由呈现设备接收到的流的每个帧的调度信息(如大小、PCR以及DTS)。当呈现设备执行信道改变时,它也可知道关于新近初始化流的调度信息。它也知道每帧的大小以及每帧的解码时间。
范例媒体流调度程序使用某种形式的网络通用时钟同步来分发媒体流网络上的主时基,如网络时间协议(NTP)。这个网络时间可与诸如通用协调时间(“UTC时间”)这样的通用时间保持系统保持同步。
尽管每个流上时间戳的速率可轻微变化,但是每个流却偶尔包括在网络通用时钟的时基中的时间戳以及在该流的时基中的相应时间戳。通过该方式,所有网络系统和流都根据网络通用时钟来调度和同步。
可见性窗口调度程序使用“可见性窗口”。这个窗口允许调度程序有效的“预测”媒体流中的指定时间量。由于它不能实际预测,所以媒体流延迟指定的时间量,以模拟在该“可见性窗口”阶段在即将来临的时间表处的预测。不断更新可见性窗口,以使其保持固定的“预测”可见性窗口大小。
虽然可见性窗口的长度可为可定制的参数,但是十秒的窗口被用于在此所述的至少一个实施例。因此,这里关于这个10秒可见性窗口的参考仅是窗口长度的一个例子。当然,其他的实施例可使用较短或较长的窗口长度。
窗口被分割为多个时隙。时隙的实际长度可以是可定制的参数。时隙的长度可能是,例如,1秒、半秒、100毫秒、等于一个帧的呈现时间,或者一个包的期望传输时间。
对在此说明的至少一个实现,时间被分割为相等大小的时隙。在时隙之间发生的所有事件可被认为是如在时隙的初始时刻发生的一样。
根据主时基(“网络通用时钟”时基)而定义每个时隙的开始时间,并且根据时间线的共同性对流进行分组。相同信道的视频和音频流与相同的时间线关联。
可能出现的情况是某些正被发送到呈现设备的流将和一个或多个正被发送到呈现设备的其他流共享相同的时间线。具有给定时间线的一个流正被发送的事实不需要来自给定时间线的所有流被发送。来自正被发送到呈现设备的给定时间线的流集合可被称作“输出流集合”。
容量时间线可根据位速率或根据数据量来表示使用和未使用的容量。表示使用和未使用容量的两种方法是等效的,并且它们在这个说明中可以互换使用。
网络中的每个阻塞点都具有位速率限制。这将被称作该阻塞点的带宽容量。呈现设备的接收容量被认为是为用于配置阻塞点的网络部分。若呈现设备仅能以比呈现设备和数据发送器之间的最低位速率阻塞点小的最大位速率接收数据,那么,代表呈现设备接收能力的阻塞点被用来将数据的发送限制在呈现设备能力内。唯一能经过接收能力阻塞点的数据是有关该呈现设备的数据。
对每个阻塞点而言,调度程序130追踪对每个时隙分配以经过该阻塞点的数据量对每个时隙分配以经过该阻塞点的猝发数据量。对每个时隙分配以经过该阻塞点的猝发数据量被定义为每个流在超过该流的名义位速率的相同时隙中发送到每个和该阻塞点关联的呈现设备的数据之和。
它使用“容量时间线”进行追踪。在每个时隙中,阻塞点的未分配猝发容量可分配到正被发送到任何呈现设备的任何流。当第一时隙的时间到达时,在第一时隙处的每个阻塞点的未分配带宽(不仅仅是未分配的猝发带宽)可用于将来自将来时隙的数据发送到一个或多个呈现设备。
使用这样的时间线,调度程序知道每个阻塞点对每个时隙的最大带宽容量。
范例媒体流调度程序根据对每个阻塞点的每个时隙基于每个时隙跟踪已使用的位。它也根据对每个阻塞点的每个时隙基于每个时隙跟踪已使用的猝发位。
对容量时间线,范例媒体流调度程序对到给定呈现设备的给定输出流而指定给出的时隙,并对给出的阻塞点(或多个阻塞点),指定可最多包含在该时隙处或在该时隙之前从那个输出流发送出的数据量的时隙。
该指定量等于该流的名义位速率乘以“时隙宽度”,加上限制程度最高的阻塞点的猝发容量的任何未由该时隙中的其他流使用的部分。该时隙宽度以时间单位衡量(如秒、毫秒等等)。
该指定的最大量是通过所有与呈现设备相关联的阻塞点确定的,这样以使限制程度最高的阻塞点是确定指定量的那一个。指定最大量是保留用于在该时隙处或该时隙之前从输出流发送到调度程序允许时隙包含的给出呈现设备的最多数据。
注意,通过附加或移除相关联的呈现设备而增加或减少阻塞点的整体猝发容量不仅仅需要对每个时隙进行每时隙每阻塞点使用的猝发位或每时隙每阻塞点使用的位的任何更新。到呈现设备的输出流在时隙中以被定义为零和该时隙中由该流到该呈现设备的流使用的位的最大值减去媒体流的名义每时隙位的量使用猝发容量。媒体流的名义每时隙位通过媒体流乘以时隙宽度的名义位速率来计算。
容量时间线可比可见性窗口短。然而,就实际情况而言(以及关于在此说明的实施例),容量时间线和可见性窗口是相同大小的。例如,若可见性窗口是10秒长,且被分为100个时隙,则容量时隙也是10秒长且其被分为100个时隙。
最终期限时间表对每个正被发送的流和对每个时隙而言,调度程序130追踪在该时隙中被分配到该流的数据量,并可追踪在该时隙中被分配到该流的指定数据的调度信息(DTS、PCR、帧大小),若存在话。在时隙中被分配到流的数据必须在该时隙时间处或该时隙时间之前输出。换言之,分配到时隙的数据输出的最终期限是该时隙的时间。
调度程序130保持向将来走几个时隙的时间表。该时间表可被视为“最终期限时间表”。系统中的每个输出流具有最终期限时间表。
对最终期限时间表,被安排在给出时隙中输出的包必须在该时隙前输出。虽然他们可能较早输出,但是它们必须在它们的指定时隙前输出。该包是在该指定时隙中的,这是因为那是它们必须输出的最终期限。
对给定流的数据必须总是在时间表中的时隙上符合流次序。数据可在被发送或丢弃时被从该时间表中移除,当初始化调度时附加到时间表,及在该时间表中移动,但是较晚的时隙与较早的时隙相比,总是保持流中较后的数据(基于每输出流)。只要保留数据的顺序仍旧符合流次序,那么若数据被从时间表的中间发送,则可从时间表的中部移除该数据。
根据时间线的共同性在最终期限时间表中对流进行分组。若视频流和音频流是关于相同信道的,则它们与相同的时间线相关联。来自某些内容提供者(如CNN)的时间线与关于其他(如MSNBC)的时间线相比能以稍微不同的实际速率来运行。它们与主时间线相比均能以稍微不同的实际速率来运行。然而,可以偶尔将它们“固定”到具有一对时间戳的主时基上,一个来自主时基,且另一个来自由内容提供者提供的时间线。
这样,通过在可能时使用内插并在内插不可能时使用外插,在来自内容提供者的慢或快(相对名义上而言)时间线上的时间戳可被转换为主时基或从主时基转换。内容提供者时间线相对于其接收的延迟可通过简单的移动通过主时基上延迟量的对应部分来获取。
最终期限时间表集中于调度何时发送正由呈现设备消耗的(或很快要被消耗的)多媒体流的媒体流数据包。
当范例媒体流调度程序将位调度到时隙中时,这以特定的粒度来进行。此粒度可为部分位、位、字节、等大小包、非等大小包等等。这里将用调度“位”来说明,但是应当认识到相同的说明可应用到调度部分位或任何其他的粒度。
某些实现可调度等大小包且其他实现可调度可变大小包。
最终期限时间表可能比可见性窗口短。然而,实际情况是(且对在此说明的实施例),最终期限时间表和可见性窗口是同等大小的。例如,若可见性窗口是10秒长,且被分割为100个时隙,则最终期限时间表也是10秒长且被分割为100个时隙。
范例媒体流调度程序的操作状态图2基于每个流的阐明范例媒体流调度程序实现的状态图200。通常,此实现由调度程序130(图1中阐明)或媒体流网络拓扑中等效的一个或多个设备来(完全或部分地)执行。此实现的某些部分也可由呈现设备来执行。可以用软件、硬件或其组合的方式来执行此实现。
图2的状态图200是基于每输出流集合的。换言之,每个输出流集合的当前状态可由其自身独立的状态图(像图2那样)来追踪。那些本领域普通熟练的技术人员应理解这里讨论的管理特定输出流集合状态的范例媒体流调度程序可被应用于管理多个呈现设备的多个并发输出流集合的独立状态。
每个输出流集合可为空闲210、开始220,或者已开始230。空闲和开始状态之间的区别是呈现设备是否已经请求了输出流集合(由状态图200表示)。开始和已开始状态之间的区别是输出流集合是否已经实际上开始被呈现。
一旦最高优先级流已经从开始转变为已开始,除了输出流集合中的最高优先级流之外的流可直接从空闲转变为已开始。从空闲直接转变为已开始出现的原因是输出流集合已经开始了,且除了最高优先级流之外的流必须加入这个已经开始的输出流集合。任何流可在任何时候加入已经开始的输出流集合,且这样的加入发生的任何时候,加入流直接从空闲转变为已开始。当数据被加到关于正加入流的最终期限时间表时,尽可能晚地附加它,而不违反调度限制,这是通过在最终期限时间表末端开始且向后处理到当前时隙来实现的。
照这样,找出了正加入的流的最早可递送并可播放的随机访问点,并随后及时递送以进行播放。而且,在任何时候都可从输出流集合移除流,而不中断输出流集合中其他流的正进行的回放。而且,可在任何时候将流附加到输出流,而不影响输出流集合中的其他流正在进行的回放。尽管处于开始或已开始状态中的输出流集合也可能处于暂停状态,但是为简单起见,没有在此展示和考虑暂停状态。
图2的空闲状态210代表特定输出流集合的范例媒体流调度程序的空闲状态条件。在其等待信道改变请求时其保持在这个状态。
在其等待时,范例媒体流调度程序准备这样的请求。它接收每个正在媒体流网络上发送的流的调度信息的“可见性窗口”,该窗口包括在特定输出流集合中的特定流,该流是状态图200的焦点。使用此窗口,调度程序知道必须递送什么包且在该窗口的时间帧内的何时之前将这些包递送到每个呈现设备。
范例媒体流调度程序对所有的流和所有阻塞点(包括状态图200的特定输出流集合的特定流)在窗口中所有的时隙中追踪下面的“现场”信息●正由网络上每个呈现设备使用的流的递送最终期限时间表;以及●网络中每个阻塞点的动态带宽利用时间线,该网络包括对应于呈现设备接收位速率能力的那些阻塞点(如果需要的话)。
它也知道每个流遍历以到达每个呈现设备的阻塞点路径。因此,它可以确定保留和对每个时隙的每个输出流(流到每个设备)保留的带宽量。
基于正进行的情况,它保持保留的带宽量,并保持快速确定每个流和每个时隙保留的带宽所需的数据。保留的和可能保留的带宽量是由流在该最终期限时间表中必须通过的一个或多个带宽限制阻塞点和其他设备的需要确定的。范例媒体流调度程序使用动态带宽容量时间线来保持并更新此数据。特别地,保持且基于每时隙每输出流而保持最新的数据由下面组成●在这个时隙处或在这个时隙之前什么数据需要对这个流输出的指示,此后称“最终期限位计数”。
●在这个时隙处或在这个时隙之前有多少数据被保留以对这个流输出的指示。这个量可大于或等于指示的具体数据量。若大于,则这样的保留数据量必须来自较晚的时隙,此后称“保留位计数”。
●隐含值(不需要实际保存该值,因为可以容易并快速地通过可用值得到),它等于最终期限位计数及保留位计数中的较大者,此后称“有效位计数”。
●隐含值,其等于有效位计数减去流的每时隙名义位计数,此后称“有效猝发位计数”。
保持并基于每时隙每阻塞点保持最新的数据由下面组成●对这个阻塞点和这个时隙而使用的阻塞点容量的量,此后称“已使用位计数”。已使用位计数是在这个时隙中通过这个阻塞点的所有流上的有效位计数之和。
●对这个阻塞点和这个时隙而使用的阻塞点猝发容量的量,此后称“已使用猝发位计数”。这个值必须小于或等于已使用位计数值。已使用猝发位计数是在这个时隙中通过这个阻塞点的所有流上的有效猝发位计数之和。
若范例媒体流调度程序接收输出流集合的信道改变请求(诸如状态图200所述的那个),则该特定的新输出流集合的处理就进入开始状态220。处于此状态的范例媒体流调度程序的动作在图3中阐明。
在开始状态220中,范例媒体流调度程序调度特定信道(如新的流)的已请求信道变化,使其具有最小启动延迟并同时避免下溢。
作为特定输出流集合开始状态的部分,它将“启动基本资料”发送到新的输出流集合的接收器(即,呈现设备)。启动基本资料指定接收器必须具有多少数据才能够以不同次数启动特定集合。若接收器在那时根据启动基本资料在具有足够数据的给出时间处开始,则晚些不会出现下溢。后面在标题为“启动基本资料”的部分中更详细地讨论了启动基本资料。
此外,媒体流调度程序(或其他内容提供者)开始提供输出流集合中刚刚请求的媒体流(如“新的信道”)。对输出流集合中初始发送的每个流而言,首先发送的数据是随机访问点(RAP)帧。例如,它可以为MPEG流中的I-帧。可在接收到并解码时被立即显示这个RAP。然而,一旦确保由于满足启动基本资料而没出现下溢,则呈现设备将仅显示完全动作视频。这就避免在新信道启动期间的“打嗝”。媒体流调度程序可初始地仅提供在输出流集合中的流的子集,或可初始地提供输出流集合中的所有流。
若不是初始地提供输出流集合中的所有流,则可在满足启动基本资料之后提供余下的流。当提供余下的流时,以启动附加到已经启动的输出流集合的新近附加的流相同的方式启动它们。初始提供少于输出流集合中所有流的原因是使初始提供的流比初始提供输出流集合中的所有流更快速地启动。例如,可以在提供音频之前提供视频。直到满足启动基本资料之后才提供音频。
图2的已开始状态230代表在其已经完全开始(并正呈现特定流时特定输出流集合的状态。在这个状态中,呈现设备已经接收到足够的数据来满足启动基本资料。它提供信道并通知媒体流调度程序(或其他内容提供者)它正在这样做。呈现设备可以实际上顺次启动呈现帧,也可以不这样,这取决于该呈现是否暂停,但是呈现设备在满足启动基本资料之后,可随意在任何时候顺次开始呈现帧。
已开始状态中特定输出流集合的范例媒体流调度程序的操作图3示出在开始状态220中特定输出流的范例媒体流调度程序的方法实现。
此实现通常由调度程序130(图1中阐明)或媒体流拓扑中的一个或多个等效设备(完全或部分地)执行。此实现的某些部分也可由呈现设备来执行。这个方法实现能以软件、硬件,或者其组合来执行。
图3中阐明的和在此说明的动作基于每个输出流集合执行。范例媒体流调度程序对开始状态220中的每个新信道执行这些动作。一旦范例媒体流调度程序已经从请求呈现设备接收到信道变化请求,则执行这个方法实现的动作。该设备已经请求了新的信道。
在310处,范例媒体流调度程序快速停止从流集合到老信道设备的递送。呈现设备(及其新的信道)除任何其他调度程序能够分配到新信道的带宽外现在还可以使用从前分配到老信道的带宽。
当停止流时,简单地从最终期限时间表中移除该流的数据,且与呈现设备相关联的阻塞点的阻塞点使用适当减少。
在312处,范例媒体流调度程序重新计算每个流和每个时隙的最大数据速率,且它这样做还考虑新信道的最高优先级流,它是通过请求设备请求的新信道的主要流。最高优先级的流可以为例如视频流,以使得视频尽快开始,即使意味着若视频和音频均是相同的优先级,音频也会比视频开始得稍微晚一点。最高优先级流可为输出流集合中流的子集合(直到所有)的多路复用,该多路复用使来自子集合的帧根据那些帧的DTS(解码时间戳)来安排。
在314处,将新信道的最高优先级流(其自身可以是来自输出流集合流的子集合的多路复用)插入到正被发送到共享一个或多个共用阻塞点的呈现设备的流的最终期限时间表中。由于新的流相对于已经在最终期限时间表中的流通常会在最后期限时间表的开始处具有更多的数据,所以当媒体流调度程序正选择以与最终期限时间表中由该数据位置所需要的相比而言较早发送的数据时,新的流通常优先于先前存在的流。
在使用最终期限时间表时为维持因果性,已经在最终期限时间表中的数据仅可被随后移动到时间表中,从不较早。若不强制这个限制,则我们可将数据移动到过去的时隙中。这个最终期限也许不可能满足,这是因为它已经过去了。此外,已经处于最终期限时间表中的数据可在时间上移动,但进行重排序。
通常,调度程序将数据“尽可能晚”的填塞到最终期限时间表中,同时避免任何呈现设备的下溢,且从不保留将影响不同客户的每客户保留位速率的数据量。换言之,在给定时隙中分配到给定流的数据量永不可能超过流的名义位速率加上任何可用的猝发位速率(其中可用的猝发位速率是不可分配到任何其他流的猝发位速率)。
在此,“尽可能晚”是正好优先于其PCR时隙的时隙中的时间上最后知道的数据,(PCR时隙是当PCR(流时基中)转换为该时隙驻留的共用时基时,包的PCR落入的时隙),正好优先于时间上最后数据的PCR时隙的时隙仅包含具有相同PCR时隙的包(以确认存在用于具有相同PCR时隙的所有将来数据的空间),并且所有时间上优先的数据必须不迟于正好优先于它们DTS时隙的时隙。
通过从具有不大于时间表中最新时隙的PCR时隙的时间上最新的数据开始,并且如由可用阻塞点容量允许的那样填塞数据进行向后工作而不违反任何上述的约束,可有效地获取此效果。若违反了任何上述约束,则计算没有违反限制的先前时隙,且填塞从那里继续。
由于任何正在进行的流通常在最终期限时间表到达他们的设备之前发送,所以在接收流中的短的暂停不会干扰未中断的流呈现。当然,在由最终期限表明的时隙之后,这些正在进行流的数据包不会被递送,这是因为这将导致下溢条件。
因此,在正被从最终期限时间表较早发送数据的正在进行流的发送中的这个暂时中断受到避免具有正在进行流的设备上的下溢条件的需要的限制。在发送特定正在进行流中的中断只可以持续到关于最终期限时间表中的那个流的第一个非空时隙。该时隙的到达表明已经到达该数据的发送最终期限,所以其必须在该时隙到达时或该时隙到达之前发送。
为最小化“信道变化启动延迟”而仍旧避免下溢,若一旦已经准备在当前时隙中输出最终期限时间表中的当前时隙中的数据时存在任何剩余的位速率,则附加数据准备在刚处于必须在当前时隙之前输出的数据之上和之前的当前时隙中输出。
这个附加位速率可整体分配给还没有开始回放的流,只要给定阻塞点数据的“最大可允许数据速率”的那些流必须通过以到达目标客户。由于从不对该流保留附加位速率,所以不必保持它从不超过该流的名义速率加上猝发位速率的未使用部分的限制。
附加位速率可为通过有关阻塞点的所有剩余可用位速率。这就将启动延迟大大减少到100ms量级(而不是现有的1-2秒),这是因为一旦接收器已经满足启动基本资料,则接收器就可开始流的回放,而且当在当前时隙中赋予流这个额外位速率时将更快地满足启动基本资料。
注意,由于这个额外位速率没有被保留,所以请求信道变化的任何其他的接收器将仍旧在刚好下一个时隙以及所有的后续时隙处至少具有可用的每客户保留位速率。任何未使用的猝发位速率部分也可由其他接收器保留,但是猝发速率可能不存在任何未使用部分。
虽然呈现设备具有与它们相关联的保留位速率,但是在调度当前时隙时,它们的保留位速率可被给出到其他的呈现设备。
在316处,范例媒体流调度程序产生预测的“启动基本资料”,以辅助何时实际上开始尽可能快的启动新信道的呈现同时防止下溢的决定。后面将在标题为“启动基本资料”的部分中更详细地讨论该启动基本资料。
通常,启动基本资料考虑到在一个或多个范围阶段将及时需要多少保留数据之外的额外数据,这是为了流能够在该时间范围内开始呈现,并且保证即使该流仅接收保留的数据(保留位速率,后续时隙中的“保留位计数”)也不在较晚时间下溢,其在该流的呈现已经开始之后前进。
现有方法使用一个或多个指定的时间戳(诸如PCR和DTS),来表明呈现设备何时应开始呈现,而同时避免下溢。不像那样,范例媒体流调度程序产生启动基本资料,而开始呈现的触发器基于网络阻塞点的实际知识、随着时间过去的那些网络阻塞点的利用,以及实际的流时间表。
启动基本资料中的开始呈现触发器可基于当前时隙的条件。启动指定呈现设备已经由每个时隙接收的位数量(或者可以为包或某些其他单位)。若其已经在当前时隙中接收到指定的位数量(或更多),则它可能开始呈现该流而不担心在较晚时间时的下溢。
范例媒体流调度程序将启动基本资料发送到请求呈现设备。请求设备对其进行检查以了解当前时隙是什么,然其检查以了解已经接收到了新信道的多少个最高优先级流的包。若接收到的包数量达到或超过启动基本资料中对当前时隙指定的数量,则呈现设备可开始呈现新的流(并保证将不出现下溢)。换言之,若实际接收到的包数量大于或等于基本资料数量(对于当前时隙),则可以开始呈现进入的流。若呈现设备已暂停,则可能不立即实际开始呈现进入的流,但是一旦获取了启动基本资料,则呈现设备能自由地在任何后续时间处开始呈现。
范例媒体流调度程序可能作为选择地分析启动基本资料本身并将应当(或可能)何时开始播放新信道的消息发送到呈现设备,而不是将启动基本资料发送到设备。
在请求呈现设备已经开始新信道的呈现之后,它可能被配置为通知网络上的一个或多个单元它确切地在何时开始播放帧。所通知的单元可以包括内容分发系统、调度程序,以及/或者媒体流编码器。
当通过呈现设备报告开始播放第一帧,或者通过范例媒体流调度程序确定已经发送足够的额外数据来满足启动基本资料而确定了呈现设备已经开始播放第一帧时,信道启动完成。该特定信道可被考虑处于已开始状态230。
此外,范例媒体流调度程序可确定该流的时间线偏移。流时间线偏移可能最有效地表示为共同时基单元中的时间差。
以另一种方式阐述,范例媒体流调度程序从来自具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备接收开始新的媒体流的请求。
然后它基于时间计算通过网络到呈现设备的可用数据速率保留,其中可用数据速率受到网络中的一个或多个阻塞点以及它们已经保留的时间相关的数据速率使用的限制。
之后,范例媒体流调度程序将新媒体流数据的递送最终期限插入到正通过网络发送的输出媒体流的递送最终期限时间表中,其中被调度到大约在新流开始处的数据将以等于或大于计算可用数据速率的数据速率通过到呈现设备的网络递送,,其中递送最终期限时间表确定最小位速率和最终期限,通过这个,来自输出数据流的数据将通过网络递送。
范例媒体流调度程序进行基于位速率的调度,直到赶上由于对后续帧给出现在开始时间而保证没有下溢的范围为止且在该点处,范例媒体流调度程序切换到通过最终期限而不是位速率来调度。
接近开始(Proximate to A Start)调度程序将位速率分配到接近当前时间(以及当前时隙),以使得数据将在分配位速率每时隙处或之前进行递送。
调度程序进一步从当前时间外分配数据递送最终期限,以使得数据将在分配时间之前递送。
这样确定两种形式分配之间的界线,以使得即使呈现设备开始在当前时隙处播放数据,当达到界线,也没有下溢的危险,即使呈现设备仅接收到分配位速率也没关系,而且只要在界线之后根据分配最终时间线继续发送数据就不再发生。
注意,“当前时隙”不为上述解释而移动-所述调度在“当前时间”和“当前时隙”处都发生得非常快。
启动基本资料当请求信道变化时,范例媒体流调度程序对新的时间线调度最高优先级流。这个最高优先级流实际上可以是正常分离的帧的多路复用(“混合”)。对每个时隙而言,在第一个时隙处开始,确定对启动输出流保留的位数量。
对给定的时隙而言,这确定为和呈现设备关联的所有阻塞点上对此输出流的每时隙名义位数量的最小值,加上该阻塞点可用的未使用猝发位。现在,对每个时隙,由于时隙已知,范例媒体流调度程序可以保证到该时隙中的输出流的位数量。
尽管每个时隙具有进入呈现设备的位的保证数量,仍可以向呈现设备发送更多的位。然而,在任何时候,正被发送到呈现设备的每时隙位数量会正好下降回到保留的每时隙位数量。
对每个时隙,范例媒体流调度程序计算在该时隙中需要多少“额外的”位,以使得呈现设备能够在该时隙处开始,并确保晚些不会发生下溢。
“启动基本资料”是每个时隙使呈现设备开始呈现并且保证不下溢所需的“额外”位的计算结果,,加上每个时隙的保证位。换言之,“启动基本资料”是在呈现设备在该时隙中开始呈现并保证不下溢所需的每时隙位数量总数。
由于当额外位被赋予先前时隙中的呈现设备中时,在给定时隙处的额外位的数量不改变,且当额外位被赋予先前时隙中的呈现设备时,在给定时隙处的保留位数量不改变,所以范例媒体流调度程序可基于每时隙预先计算需要的全部需要位的数量,以使得随后呈现设备(或范例媒体流调度程序本身)可决定在特定时间处启动是安全的。
所需的每时隙的“额外”位数量可直接表示,或者可以包括在所需的位数量总数中。
当根据每个时隙中的全部所需位数量查看启动基本资料时,它不必随时间严格地增加并且不必随时间严格地减少。那就是使用启动基本资料而不仅是固定的启动数量或某些较不确切的表示的原因。启动表示越精确,接收器就可更快地满足启动基本资料的递送表示。
启动基本资料不指定简介中每个时隙的实际开始时间。那可从该简介的开始时间和“时隙宽度”推断出。
网络延时和抖动为考虑网络延时和抖动,可以修改启动基本资料以将附加因素(如“min_latency(最小延时)”)加到启动基本资料的开始时间。对启动基本资料的每个时隙而言,确定了相对于保证量的“额外”量,然后将该额外量加到时隙处的保证量,它是将来的max_latency-min_latency,它相对于当前正被修改的时隙,且该值替换关于当前正被修改的时隙的启动基本资料中的内容。
照这样,范例媒体流调度程序确保即使正好接收到的数据以min_latency通过网络,也保证将有足够的额外数据,以使得即使所有的剩余数据以max_latency通过,也将有足够的数据没有下溢。
获取此效果的另一个方法是对部分或全部数据加上具有某种形式绝对或相对的时间戳,时间戳确切表明它将何时发送,以使得有关该包的延时可被显式地决定。若进行了这项工作,则呈现设备可直接确保它满足启动基本资料,即使假设所有的后续数据都以max_latency到达。
具有已经运行的时间线的输出流启动若将在其上播放新的流的时间线已经运行,则所有的流,不管新的还是旧的,都应该符合已经运行的时间线。例如,从一个口语音频流切换到另一个(如从英文切换到西班牙文)将不会造成视频中的任何中断,且新的音频道(如西班牙文)开始时其应该已经正确同步且保持同步和免打嗝。
在这个实施例中,范例媒体流调度程序将附着在加入正在进行的时间线的新流的现有时间线上,但是,像关于所有的流那样,它将尽可能晚地在最终期限时间表中调度新的流。在最终期限时间表中尽可能晚地调度新的流对新流具有附加的益处,即将新流的较早部分尽可能多地固定到时间表中。比固定在最终期限中的新流的最早数据早的新流数据将不被发送,且因此不能由呈现设备呈现。照这样,范例媒体流调度程序与现有方法相比能获取更短的流加入时间。
将关于新流的数据尽可能晚地放进最终期限时间表中不意味着其将迟于其他正进行的流来发送。相反的情况通常是因为新流通常是(但不总是)具有呈现在最终期限时间表中的最早数据的流,所以当对当前时隙而言需要较早的数据时,它将通常被优先使用。
当将新的流调度到已经运行的时间线中时,调度程序确保关于被输入到时间表中的新流的最后数据正好在该数据的PCR时隙之前输入到空隙中,并且正好在PCR时隙之前的空隙仅包含具有相同PCR时隙的数据,且所有的先前数据被这样放置,以使其适合可基于每时隙关于流而保留的位速率,并且所有的先前数据处于数据的DTS时隙之前的时隙处或在数据的DTS时隙之前的时隙之前。新流的数据(以及其他的调度流)以最终期限时间表和媒体流中的媒体流次序或反媒体流次序通过而不必放置在最终期限时间表中,但是这样做使实施所有上述的限制变得容易了,且通常是这样做的。无论如何,所需的是最终期限时间表中的所有流的数据应当符合最终期限时间表中的媒体流次序,而不管它们是否以媒体流次序、反媒体流次序或任何顺序通过而对媒体流起作用而被放置在那里。
其他实施例注解范例媒体流调度程序选择附加数据,以在对当前时隙进行调度时填充阻塞点。它选择还没有首先满足它们的启动基本资料的流,后面跟着已经首先满足它们启动基本资料的流。
在每个组中,范例媒体流调度程序选择具有第一个数据的流,第一个数据在具有较晚最终期限的第一个数据流上具有最早最终期限。重试与任何其他的附加数据相比而言具有较高优先级。
阻塞点的猝发位速率的总量是该阻塞点的总位数率减去其下游数据必须经过该阻塞点的所有呈现设备的每客户保留位速率,而使用猝发位速率的量是正被递送到超过那些流的名义位速率的那些呈现设备的流的使用量在所有这样的呈现设备上之和。这样在所有的阻塞点和所有的时隙中存在到该呈现设备的另一个流的空间(不必从猝发位速率的总量中分流),这只要该附加流的名义速率适合每客户保留位速率减去所有已经向该客户提出的流的名义位速率。
计算环境在此说明的一个或多个实施例,可用许多其他的通用或专用计算系统环境或配置来实施。可适用的已知计算系统、环境,和/或配置的例子包括,但不局限于,个人计算机、服务器计算机、瘦客户、胖客户、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任何上面系统或设备的分布计算环境,以及类似的装置。
在此说明的一个或多个实施例,也可在分布计算机环境中实施,那里任务由通过通信网络链接的远程处理设备来执行。在分布计算环境中,程序模块既可位于包括存储器存储设备的本地计算机存储媒体中,也可位于包括存储器存储设备的远程计算机存储媒体中。
在此说明的一个或多个实施例,可在诸如正由处理器或计算机执行的程序模块这样的处理器可执行指令的通用上下文中说明。通常,程序模块包括执行特定任务或实现特定的抽象数据类型和函数的例程、程序、对象、构件、数据结构等等。通常,程序模块的功能性可根据在不同实施例的需要来组合或分布。
结论尽管已经用特别对结构特征和/或方法步骤的语言说明了本发明,但是应理解在后附的权利要求书中定义的本发明不必局限于所说明的特定特征或步骤。相反,特定的特征和步骤作为实现根据权利要求的发明的较佳形式而说明。
权利要求
1.包含处理器可执行指令的计算机可读媒体,所述可执行指令在由处理器执行时,执行方法,其特征在于,所述方法包括接收开始来自具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备的新媒体流的请求,;以时间相关的方式计算从网络到呈现设备可用的数据速率保留,其中所述可用数据速率由所述网络中的所述一个或多个阻塞点和它们已经保留的时间相关数据速率使用限制;及将所述新媒体流数据的递送最终期限插入到正通过所述网络发送的输出媒体流的递送最终期限时间表中,其中对被调度接近所述新流开始的数据进行调度,以通过所述网络以等于或大于所述计算出的可用数据速率的数据速率来递送到所述呈现设备,其中所述递送最终期限时间表确定最小位速率和最终期限,在所述最终期限之前,将通过所述网络递送来自所述输出媒体流的数据。
2.如权利要求1所述的媒体,其特征在于,所述插入进一步包括调度不接近所述新流所述开始的数据,使其在该数据的指定解码时间之前递送。
3.如权利要求1所述的媒体,其特征在于,所述方法进一步包括促进确定所述呈现设备应在何时开始呈现所述新媒体流。
4.如权利要求1所述的媒体,其特征在于,所述方法进一步包括促进所述呈现设备应在何时开始呈现所述新的媒体流的决定,其特征在于,其中所述促进包括确定代表在启动之前将需要多少额外数据的值,以避免在特定时间由特定帧回放引起的下溢;确定促使所述特定帧在所述特定时间播放所需的开始时间;确定表示为了避免由所有已知帧和开始时间的所述可能范围引起的下溢需要多少额外数据的所述确定值的开始时间的几个可能范围中的每一个的单独最大值。
5.如权利要求1所述的媒体,其特征在于,所述方法进一步包括促进确定所述呈现设备应何时开始呈现所述新媒体流,其中这样的促进包括对开始时间的每个范围,将开始时间的所述范围启动所需的所述额外数据量附加到所述保留位速率数据量和已经在开始时间的所述范围的开始处递送的最终期限数据,以获得需要在开始时间所述范围内的时间处开始的总数据量,而没有由回放所有已知帧引起而晚些产生下溢的危险。
6.如权利要求1所述的媒体,其特征在于,所述方法进一步包括促进确定所述呈现设备应何时开始呈现所述新媒体流,其中这样的促进包括确定保证所述最后知道的帧将在所述最后知道帧的所述最后数据的PCR(节目时钟参考,或者编码器指定递送时间)之前递送的最小开始时间,且其中所述最小开始时间至少与当前时间相等。
7.如权利要求1所述的媒体,其特征在于,所述方法进一步包括接收关于从一个或多个媒体流编码器或提供者那里通过所述网络正被递送的一个或多个媒体流的初始媒体流递送和回放时间表信息;及延迟呈现设备对媒体流的回放至少达相对于所述接收到的回放时间表的定义时间量。
8.如权利要求1所述的媒体,其特征在于,所述方法进一步包括确定在定义时间量上的一个或多个阻塞点的动态带宽容量。
9.如权利要求1所述的媒体,其特征在于,所述插入进一步包括调节所述递送最终期限时间表,以使得向所述新流的所述数据给出尽可能多的保留位速率用于通过所述网络递送,假定所述网络中的所述一个或多个阻塞点以及先前存在的递送最终期限和位速率已经调度好。
10.如权利要求1所述的媒体,其特征在于,所述插入进一步包括使所述新流的所述数据的所述递送最终期限在所述最终期限递送时间表中尽可能晚而同时仍避免所述呈现设备处的新流产生下溢。
11.如权利要求1所述的媒体,其特征在于,所述方法进一步包括确定在定义时间量上的一个或多个阻塞点分配的动态带宽容量。
12.如权利要求1所述的媒体,其特征在于,所述方法进一步包括促进确定所述呈现设备应何时开始呈现所述新的媒体流,其中这样的促进包括提供基于时间的测试,看所述设备是否已经接收到足够的数据以在指定时间间隔期间开始回放。
13.如权利要求1所述的媒体,其特征在于,所述方法进一步包括促进确定所述呈现设备应何时开始呈现所述新的媒体流,其中这样的促进包括提供指示所述条件的启动基本资料,在该条件下,所述呈现设备应开始呈现新的媒体流。
14.如权利要求1所述的媒体,其特征在于,所述网络至少部分是单播的。
15.计算机设备,其特征在于,所述计算机设备包括如权利要求1所述的媒体。
16.促进新媒体流快速启动的方法,其特征在于,所述方法包括接收开始来自具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备的新媒体流的请求;以时间相关的方式计算从网络到呈现设备可用的数据速率保留,其中所述可用数据速率由所述网络中的所述一个或多个阻塞点和它们已经保留的时间相关数据速率使用限制;将所述新媒体流数据的递送最终期限插入到正通过所述网络发送的输出媒体流的递送最终期限时间表中,其中对被调度接近所述新流开始的数据进行调度,以通过所述网络以等于或大于所述计算出的可用数据速率的数据速率来递送到所述呈现设备,其中所述递送最终期限时间表确定最小位速率和最终期限,在所述最终期限之前,将通过所述网络递送来自所述输出媒体流的数据。
17.如权利要求16所述的方法,其特征在于,所述插入进一步包括调度不接近所述新流所述开始的数据,使其在该数据的指定解码时间之前递送。
18.如权利要求16所述的方法,其特征在于,所述方法进一步包括促进确定所述呈现设备应在何时开始呈现所述新媒体流。
19.如权利要求16所述的方法,其特征在于,所述方法进一步包括促进所述呈现设备应在何时开始呈现所述新的媒体流的决定,其特征在于,其中所述促进包括确定代表在启动之前将需要多少额外数据的值,以避免在特定时间由特定帧回放引起的下溢;确定促使所述特定帧在所述特定时间播放所需的开始时间;确定表示为了避免由所有已知帧和开始时间的所述可能范围引起的下溢需要多少额外数据的所述确定值的开始时间的几个可能范围中的每一个的单独最大值。
20.如权利要求16所述的方法,其特征在于,所述方法进一步包括促进确定所述呈现设备应何时开始呈现所述新媒体流,其中这样的促进包括对开始时间的每个范围,将开始时间的所述范围启动所需的所述额外数据量附加到所述保留位速率数据量和已经在开始时间的所述范围的开始处递送的最终期限数据,以获得需要在开始时间所述范围内的时间处开始的总数据量,而没有由回放所有已知帧引起而晚些产生下溢的危险。
21.如权利要求16所述的方法,其特征在于,所述方法进一步包括促进确定所述呈现设备应何时开始呈现所述新媒体流,其中这样的促进包括确定保证所述最后知道的帧将在所述最后知道帧的所述最后数据的PCR(节目时钟参考,或者编码器指定递送时间)之前递送的最小开始时间,且其中所述最小开始时间至少与当前时间相等。
22.如权利要求16所述的方法,其特征在于,所述方法进一步包括接收关于从一个或多个媒体流编码器或提供者那里通过所述网络正被递送的一个或多个媒体流的初始媒体流递送和回放时间表信息;及延迟呈现设备对媒体流的回放至少达相对于所述接收到的回放时间表的定义时间量。
23.如权利要求16所述的方法,其特征在于,所述方法进一步包括确定在定义时间量上的一个或多个阻塞点的动态带宽容量。
24.如权利要求16所述的方法,其特征在于,所述插入进一步包括调节所述递送最终期限时间表,以使得向所述新流的所述数据给出尽可能多的保留位速率用于通过所述网络递送,假定所述网络中的所述一个或多个阻塞点以及先前存在的递送最终期限和位速率已经调度好。
25.如权利要求16所述的方法,其特征在于,所述插入进一步包括使所述新流的所述数据的所述递送最终期限在所述最终期限递送时间表中尽可能晚而同时仍避免所述呈现设备处的新流产生下溢。
26.如权利要求16所述的方法,其特征在于,所述方法进一步包括确定在定义时间量上的一个或多个阻塞点分配的动态带宽容量。
27.如权利要求16所述的方法,其特征在于,所述方法进一步包括促进确定所述呈现设备应何时开始呈现所述新的媒体流,其中这样的促进包括提供基于时间的测试,看所述设备是否已经接收到足够的数据以在指定时间间隔期间开始回放。
28.如权利要求16所述的方法,其特征在于,所述方法进一步包括促进确定所述呈现设备应何时开始呈现所述新的媒体流,其中这样的促进包括提供指示所述条件的启动基本资料,在该条件下,所述呈现设备应开始呈现新的媒体流。
29.如权利要求16所述的方法,其特征在于,所述网络至少部分是单播的。
30.包含处理器可执行指令的计算机可读媒体,当由处理器执行时,执行这样的方法,其特征在于,所述方法包括提供指定所述最终期限的媒体流递送最终期限时间表,在该最终期限之前在媒体流网络上正在发送的一个或多个媒体流的数据必须发送到媒体流呈现设备。
31.如权利要求30所述的媒体,其特征在于,所述媒体流递送最终期限时间表也指定最小位速率,正通过媒体流网络正被发送的所述一个或多个媒体流的数据必须以这个速率发送到媒体流呈现设备,这是以这样的方式进行的以时间相关的方式指定一个或多个媒体流的数据必须按此发送的指定最小位速率。
32.如权利要求30所述的媒体,其特征在于,所述方法进一步包括选择在当前时间发送什么数据,其中这样的选择包括选择其最终期限时在当前时间处或在当前时间之前的数据;从在当前时间处或在当前时间之前具有未满足最小位速率的其他流中选择足够的数据,放进所述最终期限时间表,以使得获取指定的所述最小位速率;及从将合计到适合阻塞点的量的任何流中选择其他数据。
33.如权利要求32所述的媒体,其特征在于来自任何流的所述其他数据是来自适合所述阻塞点的所述最终期限时间表中的任何流的最早数据。
34.如权利要求30所述的媒体,其特征在于,所述方法进一步包括接收开始来自具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备的新媒体流的请求;计算通过网络到呈现设备的可用数据速率,其中所述可用数据速率由所述网络中的所述一个或多个阻塞点限制。
35.如权利要求30所述的媒体,其特征在于,所述方法进一步包括接收开始来自具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备的新媒体流的请求;以时间相关的方式计算从网络到呈现设备可用的数据速率保留,其中所述可用数据速率由所述网络中的所述一个或多个阻塞点和它们已经保留的时间相关数据速率使用限制;将所述新媒体流数据的递送最终期限插入到正通过所述网络发送的输出媒体流的递送最终期限时间表中,其中对被调度接近所述新流开始的数据进行调度,以通过所述网络以等于或大于所述计算出的可用数据速率的数据速率来递送到所述呈现设备,其中所述递送最终期限时间表确定最小位速率和最终期限,在所述最终期限之前,将通过所述网络递送来自所述输出媒体流的数据。
36.包含保存于其上的媒体流递送最终期限时间表数据结构的计算机可读媒体,其特征在于,所述计算机媒体包括表示关于一个或多个媒体流的定义时间间隔的连续时隙的多个数据字段,每个字段包含指定所述最终期限值,在该最终期限之前,必须将正在媒体流网络上发送的一个或多个媒体流数据发送到媒体流呈现设备。
37.如权利要求36所述的媒体,其特征在于,进一步代表一个或多个媒体流的定义时间间隔的连续时隙的所述多个数据字段也包含指定所述最小位速率的数值,必须以该速率将正在媒体流网络上发送到一个或多个媒体流的数据发送到媒体流呈现设备。
38.包含处理器可执行指令的计算机可读媒体,当由处理器执行时,执行这样的方法,其特征在于,所述分发包括确定媒体流网络的一个或多个阻塞点在定义时间间隔上的带宽容量。
39.如权利要求38所述的媒体,其特征在于,所述方法进一步包括接收开始来自具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备的新媒体流的请求;及以时间相关的方式计算从网络到呈现设备可用的数据速率保留,其中所述可用数据速率由所述网络中的所述一个或多个阻塞点和它们已经保留的时间相关数据速率使用限制。
40.如权利要求38所述的媒体,其特征在于,所述方法进一步包括接收开始来自具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备的新媒体流的请求;以时间相关的方式计算从网络到呈现设备可用的数据速率保留,其中所述可用数据速率由所述网络中的所述一个或多个阻塞点和它们已经保留的时间相关数据速率使用限制;及将所述新媒体流数据的递送最终期限插入到正通过所述网络发送的输出媒体流的递送最终期限时间表中,其中对被调度接近所述新流开始的数据进行调度,以通过所述网络以等于或大于所述计算出的可用数据速率的数据速率来递送到所述呈现设备,其中所述递送最终期限时间表确定最小位速率和最终期限,在所述最终期限之前,将通过所述网络递送来自所述输出媒体流的数据。
41.包含保存于其上的阻塞点带宽能力数据结构的计算机可读媒体,其特征在于,所述数据结构包括表示一个或多个媒体流的定义时间间隔的连续时隙的多个数据字段,每个字段包含促进确定通过时间间隔的媒体流网络的一个或多个阻塞点的带宽能力的值。
42.计算机可读媒体,其具有处理器可执行指令,当其由处理器执行时,执行方法包含接收开始来自具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备的新媒体流的请求;产生指示所述条件的启动基本资料,在所述条件下,呈现设备可开始呈现所述新的媒体流而不下溢,其中所述条件提供基于时间的测试,看所述设备是否已经接收到了足够的数据以避免当其开始回放时产生下溢。
43.如权利要求42所述媒体,其特征在于,所述方法进一步包括将所述启动基本资料发送到所述呈现设备,以使得所述设备可执行所述基于时间的测试。
44.如权利要求42所述媒体,其特征在于,所述方法进一步包括当所述基于时间的测试表明可以开始所述新媒体流的呈现时,将开始呈现通知发送到所述呈现设备。
45.包含处理器可执行指令计算机可读媒体,,所述可执行指令在由处理器执行时,执行方法,其特征在于,所述分发包括发送开始从具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备的新媒体流的请求;接收指示所述条件的启动基本资料,在所述条件下,呈现设备可开始呈现所述新的媒体流而不下溢,其中所述条件提供基于时间的测试,看所述设备是否已经接收到了足够的数据以避免当其开始回放时产生下溢。
46.包含保存于其上的启动基本资料数据结构的计算机可读媒体,其特征在于,所述数据结构包括表示用于定义时间间隔的连续时隙的多个数据字段,每个字段包含促进确定媒体流呈现设备是否接收足够的数据以避免当其开始回放时产生下溢的指定数值。
47.调度程序系统,其特征在于,所述系统包括配置为接收开始来自具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备的新媒体流的请求的接收单元;配置为以时间相关的方式计算从网络到呈现设备可用的数据速率保留,其中所述可用数据速率由所述网络中的所述一个或多个阻塞点和它们已经保留的时间相关数据速率使用限制的带宽容量计算器;及配置为将所述新媒体流数据的递送最终期限插入到正通过所述网络发送的输出媒体流的递送最终期限时间表中,其中对被调度接近所述新流开始的数据进行调度,以通过所述网络以等于或大于所述计算出的可用数据速率的数据速率来递送到所述呈现设备,其中所述递送最终期限时间表确定最小位速率和最终期限,在所述最终期限之前,将通过所述网络递送来自所述输出媒体流的数据的调度子系统。
48.如权利要求47所述的系统,其特征在于,所述接收单元进一步配置接收为在正通过来自一个或多个媒体流编码器或提供者的所述网络上递送的一个或多个媒体流的初始媒体流递送时间表信息。
49.如权利要求47所述的系统,其特征在于,所述带宽能力计算器进一步配置为在定义的时间量上确定所述一个或多个阻塞点的动态带宽容量。
50.如权利要求47所述的系统,其特征在于,所述网络至少部分是单播的。
51.媒体流呈现器,其特征在于,所述流媒体呈现器包括配置为发送开始从具有一个或多个带宽限制阻塞点的媒体流网络上的媒体流呈现设备的新媒体流的请求的传输子系统;配置为接收指示所述条件的启动基本资料,在所述条件下,呈现设备可开始呈现所述新的媒体流而不下溢,其中所述条件提供基于时间的测试,看所述设备是否已经接收到了足够的数据以避免当其开始回放时产生下溢的接收单元。
全文摘要
本发明的实现,如在此所述促进新媒体流的快速启动,而同时避免新媒体流呈现的时间中断(即“打嗝”)。在此说明的至少一个实施例协调媒体流网络上多个并发媒体流的递送。其协调解决带宽限制阻塞点的遍历;快速停止来自流集合的一个或多个媒体流的递送;快速初始化先前不在该集合中的一个或多个新媒体流的递送和呈现(如“信道改变”);以及产生该集合中所有流的流畅回放,而不管它们不同的时间线。摘要本身并不限制本专利的范围。本发明的范围是在后附的权利要求书中指出的。
文档编号H04N7/24GK1606302SQ20041008560
公开日2005年4月13日 申请日期2004年10月9日 优先权日2003年10月10日
发明者D·L·格林 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1