利用下载速率估计器的改善的dash客户端和接收的制造方法

文档序号:7792113阅读:224来源:国知局
利用下载速率估计器的改善的dash客户端和接收的制造方法
【专利摘要】客户端设备呈现流媒体,并包括用于对流进行控制的流管理器、用于对内容进行网络请求的请求加速器、耦接到流管理器和请求加速器的用于确定进行哪些请求的源组件、网络连接以及媒体播放器。提供了一种用于速率估计的过程,该过程将快速地对接收速率改变做出反应。速率估计器可以使用自适应窗口平均,并且以一种方式考虑视频缓冲器水平和视频缓冲器水平中的改变,以便保证速率在需要时足够快地进行调节,并同时保持窗口宽度大小(并从而保持测量偏差)大小。一种保证可以是当速率发生下降或提高时,估计器在与缓冲器消耗速率或缓冲器填充水平成正比的时间内调节其估计。
【专利说明】利用下载速率估计器的改善的DASH客户端和接收机
[0001]相关申请的交叉引用
[0002]本申请要求享受2012年2月27日提交的、题目为“Improved DASH Client andReceiver with Rate Adaptat1n and Downloading for Adaptive Video” 的美国临时申请N0.61/603, 569的权益,故出于所有目的,作为整体以引用方式将其全部内容并入本文。

【背景技术】
[0003]DASH指的是“动态自适应HTTP流”。使用DASH,内容提供商将内容格式化成分段、片段、表现(representat1n)、改编(adaptat1n)等,连同相关联的元数据(诸如MPD文件),并将所有这些存储为通过标准HTTP服务器或者专用HTTP服务器可获得的文件。DASH客户端是根据需要获得这些文件,以向该DASH客户端的用户提供呈现的接收方。
[0004]由于用户通常在网络受到约束的环境中,在很少或没有提前通知的情况下,想要高质量的流,因此DASH客户端具有苛刻的限制。从而,改进的DASH客户端令人期望。


【发明内容】

[0005]客户端设备呈现流媒体,并包括用于对流进行控制的流管理器、用于对内容进行网络请求的请求加速器、耦接到流管理器和请求加速器的用于确定进行哪些请求的源组件、网络连接以及媒体播放器。请求加速器包括:用于对请求进行缓存的请求数据缓冲器、以及用于向其可以响应的每一个请求返回完整的响应的逻辑。可以将流管理器、请求加速器和源组件实现成处理器指令或程序代码,客户端设备还包括程序存储器、工作存储器、处理器和电源。此外,客户端设备还包括显示器和用户输入设备。在源组件、流管理器和请求加速器之间对客户端任务进行解析,以便对数据进行高效地流传输。
[0006]在各个方面,如本申请所描述的,客户端可以执行诸如下面的操作:确定何时维持一个表示或者切换到另一个表示,确定请求哪些片段,并确保媒体播放器可以获得充足的数据(在大多数状况下),以便在没有停滞的情况下继续流媒体播放。
[0007]提供了一种用于速率估计的过程,该过程将快速地对接收速率改变做出反应。下载速率估计器可以使用专门为在媒体流中使用而设计订制的自适应窗口平均。下载速率估计器以一种方式考虑视频缓冲器水平和视频缓冲器水平中的改变,以便保证速率在需要时足够快地进行调节,并同时保持窗口宽度大小(并从而保持测量偏差)大小。该保证由过程通过以下方式来提供:(a)如果B是缓冲器中视频数据的量(以播放时间的秒数为单位),当速率发生下降时,则估计器将调节缓冲器消耗到B/2所消耗的时间内的速率估计,以及(b)如果B是缓冲器中视频数据的量,当速率发生提高时,速率估计器足够快地调节到新的速率,使得可以在至多3*B的时间内看到该调节(提供智能速率改变过程)。
[0008]在示例性方法或装置中,一种接收机监测所述接收机的呈现缓冲器,其中,所述呈现缓冲器至少在接收到媒体数据的时间和由与所述接收机相关联的呈现元件消耗所述媒体数据的时间之间存储所述媒体数据;确定对所述下载速率的估计所要基于的非零估计时段;存储所述估计时段上缓冲器水平的指示,其中,在给定时间的缓冲器水平至少近似地对应于在该时间所述呈现缓冲器被接收到的并且尚未被所述呈现元件消耗的所述媒体数据占用的程度;以及使用所存储的指示作为所估计的下载速率的测量的一部分。
[0009]所述所述呈现元件可以包括显示器和音频输出。对所述下载速率进行测量的所述估计时段具有以预定的比例因子与测量的缓冲器水平成正比的持续时间(诸如与在进行测量时所述呈现缓冲器中的未消耗的媒体数据的字节数量成正比持续时间),和/或所述估计时段是将媒体添加到所述呈现缓冲器的添加速率的函数和/或与下载所述呈现缓冲器的预定部分所使用的时间成正比,诸如当所估计的下载速率是在先前的等于所述估计时段的持续时间上的平均下载速率时。
[0010]所述估计时段可以是下载所述呈现缓冲器的预定比例的内容的时间和所述呈现缓冲器中存在的所述媒体数据的呈现时间中的较小者。所估计的下载速率可以是在先前的等于所述估计时段的持续时间上的平均下载速率。
[0011]可以使用用于由处理器执行,对通过一个网络路径耦接的源和接收机之间的所述网络路径上的数据下载进行控制的计算机可读介质,来实现各个单元。该计算机可读介质可以是非临时性计算机可读介质。
[0012]通过本说明书,本发明的其它方面应当是显而易见的。

【专利附图】

【附图说明】
[0013]图1示出了 DASH部署中的包括DASH客户端的各个组成部分,显示了媒体记录如何到达终端用户,其中涉及记录、内容准备以及内容递送阶段。
[0014]图2示出了具有不同组件的DASH客户端的示例性架构,其包括流管理器、请求加速器、源组件、网络连接和媒体播放器。
[0015]图3是示出表现切换过程的时序图,其中包括用于回看过程的图3A和用于快进过程的图3B。
[0016]图4是示出针对切换点对齐的情况的表现切换过程的时序图。
[0017]图5是示出如由速率估计器所管理的速率随时间变化的图,特别地,该速率估计器是自适应于缓冲器水平的估计器(诸如Pker型速率估计器))。
[0018]图6是示出当使用非自适应指数加权移动平均(“EWMA”)过滤器时,速率增加对比下载时间(r时间)的图。
[0019]图7是示出当使用非自适应EWMA过滤器时,速率增加对比播放时间(p时间)的图。
[0020]图8是示出当使用可变窗口大小加权移动平均(“WMA”)过滤器时,速率增加对比下载时间(r时间)的图。
[0021]图9是示出当使用pker型过程时,速率增加对比播放时间(P时间)的图。
[0022]图10是示出当使用来自2.1章节的pker型过程时,速率增加对比下载时间的图。
[0023]图11示出了速率上突然增加的pker过程的行为。
[0024]图12示出了突然速率下降的pker过程的行为。
[0025]图13示出了简单(固定宽度的)移动窗口平均与指数加权移动平均的对比。
[0026]图14是pker速率估计过程的流程图。
[0027]图15示出了如何根据记录的(Tp, Tr)值的历史连同图16,来确定由pker过程使用的值B和Tfast。
[0028]图16示出了对值进行确定的方面。
[0029]图17示出了 “水印”获取过程的行为。
[0030]图18示出了如可以用于选择播放速率的lambda和mu函数的示例。
[0031]图19示出了使用“保守”设置的(lambda,mu)函数的示例性选择。
[0032]图20示出了使用“中等”设置的(lambda,mu)函数的示例性选择。
[0033]图21示出了使用“积极”设置的(lambda,mu)函数的示例性选择。
[0034]图22示出了使用用于在一定程度上仿真MLB过程的过程的(lambda, mu)函数的示例性选择。
[0035]图23示出了用于lambda设置的并排值的示例。
[0036]图24示出了用于mu设置的并排值的示例。
[0037]图25示出了用于进行速率估计、然后进行基于速率的速率选择、然后进行基于缓冲器管理的速率选择的过程。
[0038]图26示出了在没有请求取消的情况下的速率下降。
[0039]图27示出了在具有请求取消的情况下的速率下降。
[0040]图28是示出示例性请求取消过程的流程图。
[0041]图29示出了用于请求取消检测的过程。
[0042]图30是利用多个TCP连接但没有接收缓冲器调整的获取的行为的图。
[0043]图31是利用多个TCP连接并利用接收缓冲器调整的获取的其它行为的图。
[0044]图32是示例性请求加速器过程的流程图。
[0045]图33示出了用于发现多个子请求,以有助于给定的片段请求的过程。
[0046]图34示出了用于选择各个请求的过程,其中这些请求被选定为具有计算出的大小的源请求的不相交时间间隔。
[0047]图35示出了时间偏移以及通过时间偏移所确定的用于修复分段的片段结构的示例。
[0048]图36包括可以用于速率选择中的lambda和mu的值的表。

【具体实施方式】
[0049]本申请所阐释的DASH客户端包括流管理器(SM)、请求加速器(RA)、源组件(SC)、网络连接和媒体播放器,如图2中所示。DASH客户端还可以包括一个或多个媒体数据缓冲器。在一些实现中,RA、SC和媒体播放器均可以具有其自己的数据缓冲器,或者具有一个大型数据缓冲器的逻辑分区。在其它实现中,或许仅RA具有用于缓存请求的数据缓冲器,使得RA能够向其可以响应的每一个请求发送完整的响应,并且媒体播放器使用SC已建立的任何数据缓冲器。SM可以具有其自己的本地存储(物理的或逻辑的),以便根据需要自己决定来存储元数据。
[0050]图1示出了具有DASH客户端的DASH部署。
[0051]图2示出了具有不同的组件的DASH客户端的示例架构。应当理解的是,SM、RA、SC和媒体播放器可以在硬件、软件或某种组合中实现。因此,在将功能归结于组件的情况下,其可以实现为处理器指令、程序代码等,在这种情况下,暗含必要的硬件来执行这些指令(程序存储器、ROM、RAM、处理器、电源、连接器、电路板等)。在描述网络功能时,网络连接应当被理解为是存在的,并且其可以是有线、光纤、无线等,并且当暗示用户交互时,还暗含用户接口能力(显示器、键盘、触摸板、扬声器、麦克风等)。
[0052]DASH客户端维持两个时钟或其逻辑等同物。一个时钟是指示在该客户端中运行的本地时钟的时间的实时时钟电路或软件,而另一个时钟是呈现时间,其表示媒体内容相对于其起始的呈现时间。在本文中,将实时时钟时间称为“r时间”,而“p时间”是表示呈现时间的描述符。
[0053]表现是针对相同的内容,以不同的比特率或者其它差别进行编码的媒体流。因此,用户通常将仅需要一个表现,但客户端可以根据情况和/或需求变化,从一个表现切换到另一个表现。例如,如果带宽较高,则流客户端可以选择高质量、高比特率表现。如果带宽降低,则客户端可以通过切换到较低质量、较低比特率的表现来适应这些情况。
[0054]切换点(或随机接入点)是表现中的一些样本,可以从这些样本开始对媒体样本的解码,而不需要该流之前的数据的知识。具体而言,在视频表现中,由于样本(帧)通常依赖于先前的帧,因此并不是每个样本都是随机接入点。当流客户端想要切换表现时,其应当确保在切换点开始对新的表现进行解码,以避免做无用功。在一些情况下,在分段索引(sidx)中以信号方式将切换点发送给流客户端。
[0055]表现组(有时简称为组)是可切换的表现的集合。一个媒体呈现可以包含一个以上的表现组。例如,针对以不同比特率的视频表现可以具有一个表现组,并且针对音频比特率可以具有另一个表现组。在DASH标准中,有时还将表现组称为自适应集。
[0056]分段是包含针对这些表现中的一个表现的至少一部分中的媒体数据的文件。片段是分段的一部分,其中,从该片段的起始P时间到该分段中的该片段的字节范围的映射是可获得的。有时,使用术语子分段来代替片段,这些术语可以被视作为是等同的。一些媒体内容不被分割在片段中;在这种情况下,“片段”可以指代分段其自身。
[0057]图3是示出两种可能的表现切换过程的时序图。该切换可以是回看(第一过程;图3A),在该情况下,通过以下方面来寻找切换到的表现中的切换点:查找已经在切换自的表现中请求的P时间伸缩,并选择在P时间上从切换到的表现中向后选择最靠近该伸缩的结束的前一切换点。第二过程(图3B)是快进:其从在切换自的表现中的最后请求的P时间处开始,在P时间上向前寻找切换到的表现中的下一个切换点。
[0058]图4是示出当切换点对齐时并且当一个切换点紧接在最后请求的片段之后时进行切换的过程的时序图。该图描绘了回看和快进方法二者的行为,这两个过程在这种设置下是表现相同的行为。因此,当这些切换点对齐时,以上的任一过程都不必下载重叠的数据。
[0059]呈现时间是预期通常按照正常的速度,来播放或者重放媒体的时间周期。例如,30分钟视频呈现将播放30分钟。用户可以对进行快进或快退,这将改变实际花费的时间,但应当理解的是,该呈现仍然是30分钟视频呈现。呈现单元在呈现时间上向用户提供该呈现。呈现单元的示例包括视频显示和音频显示,或者被管道化传输到可以对其进行呈现的设备的视频/音频流。“播放”是用于描述媒体的消费的术语。例如,智能电话可以下载或者获得在一个呈现的呈现时间(P时间)上表示该呈现的媒体数据,对其进行缓存,媒体播放器“消费”该媒体,优选地消费是使得至少在该呈现时间的结束之前,该缓冲器不是完全地为空,使得当接收机等待获得更多的数据时,用户不会体验到呈现的停滞。当然,“重放”或者“播放”并不暗不对媒体播放一次以上。在很多实例中,其可以是一旦被媒体被消费一次,就不再使用该媒体。
[0060]呈现缓冲器是接收机、媒体播放器或者可访问一个或二者的部件中的内存单元。为了简化说明,本申请交换地使用术语“呈现缓冲器”、“缓冲器”、“媒体缓冲器”和“播放缓冲器”,并理解其是包括已被下载但还没播放或者消费的数据(通常为媒体数据)的逻辑缓冲器。其可以是下面的情况:将包括呈现缓冲器的数据划分在一个设备中的不同组件之间,即,所下载的数据的一些部分由一个进程(例如,该设备中的接收进程)进行保持,而其它部分可能已经被传送给另一个进程(例如,该设备中的播放进程)。此外,其还可以是下面的情况:可以在不同的进程的不同缓冲器中,对包括呈现缓冲器的数据的至少一部分进行至少部分地重复。在一些情况下,不是所有已被下载但仍没有播放的数据,都被视作为仍然位于呈现缓冲器之中,例如,在一些情况下,一旦将该媒体内容传递给媒体播放器,就不再将其视作为位于呈现缓冲器之中。通常,已被下载但仍没有播放的媒体数据,以及被视作为不位于呈现缓冲器之中的媒体数据(如果有的话)的数量非常的小。
[0061]呈现缓冲器容纳不均发接收和播放媒体,存储所接收的媒体数据,直到其被消费为止。在媒体数据被消费之后,可以根据配置,将其删除或者继续保存。在一些实现中,呈现缓冲器的大小(如通过可以在该呈现缓冲器中存储的数据的字节数量所测量的)可以随时间发生变化。例如,可以根据需要,从共享内存中动态地分配呈现缓冲器。
[0062]在本申请所详细描述的很多示例中,可以假定通过大小来示出呈现缓冲器的特性。在固定的存储器大小专用于呈现缓冲器的情况下,可以通过能在可用的存储器中存储的字节数量来测量该大小。当呈现缓冲器是动态分配的时,针对呈现缓冲器的“大小”属性可以等于目前分配给该呈现缓冲器的字节数量、可以分配给该呈现缓冲器的最大字节数量、或者某种其它适当的测量值。有时,还依据呈现缓冲器中当前可用的媒体的呈现播放持续时间,来测量呈现缓冲器的大小。
[0063]此外,呈现缓冲器还具有另一种特性:其“水平”或者“填充水平”。呈现缓冲器的水平表示在该呈现缓冲器中存在多少未被消费的媒体数据(例如,使用字节或者呈现持续时间来测量的)。可以预期的是,随着接收到媒体数据,该水平增加,随着媒体数据被消费,该水平下降。该水平也可以仅是一种逻辑量,例如,呈现缓冲器可以是不断充满有媒体数据,但该媒体数据中的一些(例如,已被消费的媒体数据)被进行了标记,以便接收到新媒体数据时进行覆盖。可以对一些接收机进行编程,使得“空缓冲器”是存在零个未消费的媒体数据的状况,“满缓冲器”是该呈现缓冲器的100%都填充有未消费的媒体数据的状况。其它接收机可以具有其它限制,使得该水平范围处于与呈现缓冲器大小的0%到100%相比更小的范围之上。在使用共享内存,并且仅当存储未消费的媒体数据时,才向呈现缓冲器进行分配的情况下,使用呈现缓冲器的这种动态分配的内存大小作为在指示水平比率时的分母,可能没有任何意义,这是由于根据规定,该呈现缓冲器始终是满的。更适合的是,可以将该呈现缓冲器的水平测量成:该呈现缓冲器中的未消费媒体数据的数量除以该呈现缓冲器的最大允许大小之比。
[0064]1、客户端组件的概述
[0065]再次参见图1-2,示出示例性客户端的各种组件。
[0066]SC保持元数据(例如,关于哪些表示是可用的、以及其片段都是有哪些之类的信息)的跟踪。此外,SC还负责对通过网络接收的媒体数据进行缓存,以便将其传递给媒体播放器。SM负责决定在什么时间点将下载哪些表示,以及进行速率切换决定。最后,给定精确的URL以及如SC所提供的字节范围信息,RA负载下载媒体片段。
[0067]SM是负责进行速率切换决定的软件组件。SM的目标之一是针对给定的情形,挑选最佳的内容。例如,如果有大量可用的带宽,可以实现高下载速率,则SM应当挑选高速率表示。如果下载速率明显地下降,所选择的高表示不再是可维持的,则SM应当切换到更低的表示速率,更适合于当前状况。SM应当足够快地切换速率,以避免使播放缓冲器完全地耗尽(由于这将造成播放停滞),但同时尝试不要切换的太匆忙或者太频繁。此外,应当将目标设定为请求可以通过网络下载、并且在没有停滞的情况下进行播放的最高质量内容。SM在其决策过程中,可以扩展到考虑不同于下载速率的其它因素。其可以潜在地考虑诸如电池寿命、显示器尺寸之类的事物、以及当关于表示进行决策时的其它因素。可以将这些另外的约束作为过滤器增加到SM中,但其不影响本申请所描述的基本速率决策计算。
[0068]现在描述客户端的典型、高水平操作。假定用户请求一个特定的媒体内容,例如,实时体育广播、预录制的电影、音频流或者其它音视频内容或者其它内容,其可以涉及不同于视频和音频的媒体类型。客户端或许通过用户接口或者计算机接口,向SM提供该请求。SM从SC进行请求,并接收关于下面信息的指示:有哪些表示可用、哪些P时间跨度被哪些片段覆盖、以及这些表示中的切换点位于什么位置。除了该信息之外,SM可以具有关于在处理的短期下载速率的某种信息(如下面所解释的),RA将该数据报告给SC,SC将其报告或者提供给SM。
[0069]SM使用该信息,以及过去的历史,估计可持续的速率,选择一个表示中的适当切换点,以及从该切换点起始、要从该表示下载的媒体内容的量。随着下载的进行,对媒体内容进行播放,SM使用提供的信息来决定速率切换是否恰当。如果速率切换不恰当,则SM告诉SC继续从当前表示获取片段。如果速率切换是恰当的,则SM寻找潜在的切换点,决定需要从哪些表示中的哪些片段进行获取,以进行期望的切换。随后,SM将该信息传递给SC。SC和SM之间的这种信息交换是定期进行的(只要应当关于要下载的下一节做出决定)。为了做出正确的决定,SM对缓冲器水平进行监测,在一些情况下,SM可以决定该缓冲器是足够的满,在一段时间之内不需要再下载任何片段。
[0070]一旦SM决定要下载一个片段,SC就负责获得RA以实际地下载该片段,将所下载的片段保存在媒体缓冲器中,最后当媒体缓冲器中的媒体数据的播放时间到了时,将其传递给媒体播放器。
[0071]在SM告诉了 SC进行下载之后,SM就不再活动地涉及到这些片段之中。但是,SP使在给定的片段的下载已经开始之后,SM仍然可以改变其决定,取消其先前已发出的片段请求。这种功能在下面的情形中是有用的:事实证明下载速率极速地下降,截止到媒体缓冲器被完全地耗尽的时间,被下载的片段也不可能是可用的。如果发生这种状况,则SM应当负责检测,取消该请求,并切换到更适当的速率。
[0072]一旦SC从SM接收到要获取的片段句柄,就在其数据结构中查找该URL和相应的片段的字节范围,使用该信息来产生向RA传递的请求。此外,SC还负责从RA获取响应数据,将所接收的媒体片段转换成可播放的流。最后,SC负责对元数据(例如,从MH)获得的数据、分段索引(Sidx)盒、或者苹果的HTTP实时流(HLS)情况下的播放列表)进行解析和保持跟踪。
[0073]RA是从SC接收片段和元数据请求,生成相应的HTTP请求,并通过网络连接来发送这些HTTP请求,获取相应的响应并将其传递回SC的组件。网络连接可以是因特网连接、基于蜂窝的连接、WiFi连接或者能够处理HTTP请求和响应的其它网络连接。该网络连接可以是在单一设备的内部,即,其可以是针对已经在该设备中高速缓存的媒体数据的内部接口。此外,还可以存在多种组合,即,媒体内容中的一些可以从有线因特网连接下载,一些通过基于蜂窝的连接来下载,一些通过WiFi连接来下载,一些来自于本地高速缓存。在一些情况下,下载媒体数据的连接可以是混合的,即,一部分是通过蜂窝、一部分通过WiF1、一部分通过有线等。在一些实例中,具体的请求可以是不同于HTTP,但当服务于该媒体内容的服务器是HTTP服务器时,HTTP是优选的。
[0074]在其最简单的形式,RA是HTTP客户端。但是,可能期望RA与通用HTTP客户端相比更高效。RA的一个目标是实现足够高的下载速率;其应当将目标设定于:与所选定的播放媒体速率相比,下载速率要明显地更快。另一方面,还应当注意不要为了原始吞吐量而使时效性受到处罚:与处于进一步的后面位置的其它片段相比,不久将被播放的片段是更加急迫的,RA应当尝试及时地接收这些片段。因此,需要为了时效性而牺牲一些吞吐量。应当将RA设计为在全部合理的网络状况下能进行很好地工作。
[0075]RA的一种基本设计方案是使用一些连接和可能的FEC(前向纠错)来获得最佳的结果。因此,RA通常需要对一个以上的开放HTTP连接进行管理。RA将请求派发到这些连接上。在一些环境中,RA可以将请求分割成一组更小的请求。当接收到相应的响应时,RA随后将该数据重新组装成一个相干的响应。换言之,RA负责决定要发送的HTTP请求的颗粒度、将这些请求派发到哪些连接、以及决定要请求源片段或者修复片段的哪些部分。这些请求的颗粒度可以取决于多种事物,例如,缓冲器水平、请求的急迫性、可用连接的数量等。
[0076]RA发送出的每一个请求是针对于元数据的HTTP请求,也可以是针对于SC已传送给该RA的片段请求的一部分或者全部。其可以是针对源媒体数据的请求,也可以是针对根据源媒体数据所生成的修复数据的请求。在大多数情况下,对于根据SC片段请求所生成的RA请求的响应,应当是足够用于重建该片段请求中的所有媒体数据,随后RA可以将其传送回SC。因此,RA负责将来自于与媒体片段请求相关联的RA请求的响应,组合回一个针对该片段请求的响应,以提供给SC。RA执行的这种组合可以包括FEC解码(例如,如果存在一些针对FEC修复数据的RA请求的话)。
[0077]除了对HTTP请求进行管理之外,RA在短期时段上、在一些采样速率的时间片上,对下载速率进行测量。一种示例性采样速率是100ms,即,RA在10ms时段上对下载速率进行测量。SM使用该使用数据来计算其下载速率估计,并最终做出速率决策。其它采样速率也是可以的。
[0078]RA不需要知道关于诸如DASH媒体呈现描述(MPD)或者关于分段结构的元数据。在特定的实现中,RA使用HTTP栈实现的几个同时实例来在一些连接上(甚至在一些情况下,在针对相似或者不同服务器的不同类型的连接上)实现HTTP检索。
[0079]RA负责使SC知道何时可以接受新的请求。SC调用SM来确定要请求的下一个片段,向RA提供该适当的请求。此外,RA还提供一些状态信息。RA通常可以通过SC向SM提供短期的下载速率、下载所花费的总时间。此外,SM还可以针对该信息,通过SC来间接地向RA进行轮询。除了该方面之外,RA还向SM通知关于各个请求已完成的百分比信息。使用SM进行调用以获取该信息的API,来类似地提供该信息。
[0080]在RA、SC和实际的媒体管道之间,应当存在非常紧急的数据,故尽可能地在RA或SC中缓存很少的数据(除了故意的媒体缓冲器之外)。相同的理由对于具有各种形式的HTTP请求来说也是成立的;与通过网络来发送实际相应的HTTP请求的时间相比,SM应当仅只提前很短的时间,必须决定要请求的片段。一种原因在于:SM必须决定一个请求的提前量更早,保持最新的信息就越不准确,因此其所做出的决策的质量就越低。
[0081]SM—次发出一个请求。但是,如果所有先前的请求都没有完成,SM还可以发出新请求;允许同时的请求。SC将这些请求按照SM发出其顺序来传送给RA。随后,RA对同时处理保持注意,确保其将接收的数据返回给SC。
[0082]同时的请求使RA可以实现HTTP管道化。事实上,甚至利用多个连接的RA也适应这种方案。
[0083]1.1、流管理器(SM)
[0084]响应于用户动作、网络状况和其它因素的组合,SM确定何时对片段进行请求、以及对哪些片段进行请求。当用户决定开始观看内容时,SM负责针对该内容,确定要请求的第一片段(其开始于用户或者所提供的服务所指定的P时间)。例如,一些实时流服务可能需要所有用户在相同的r时间观看该媒体内容的相同的P时间部分,而其它实时流和按需服务可以允许终端用户或者应用具有关于在什么r时间对什么P时间进行播放的灵活性。当媒体缓冲器变满时,SM临时地暂停提供另外的片段请求。SM负责根据网络状况和其它因素(例如,显示器的大小、剩余的电池寿命等),来决定在每一个P时间点,按照什么质量来播放该内容。
[0085]当SM认为其适合于提供片段请求时,SM可以只提供一个请求(如果RA准备好接收和处理片段请求)。SC通过对RA进行轮询来确定这种情况,并将该信息转发给SM。
[0086]当RA准备好接收下一个请求时,SM决定是否应当发出新的请求,并选择下一个片段进行请求。SM—次针对媒体数据一个片段进行请求,SM负责请求片段,其允许及时地和无缝地播放该内容。表示中的播放改变,通常只在切换点处发生,在两个连续的切换点之间可以存在多个片段;SM尊重该限制。
[0087]通常,SM只尝试请求有理由认为应当及时地接收以平滑播放的片段。但是,假定网络状况有时可以非常快速地急剧变化,但并不能在所有环境中都保证这种情况。因此,SM还具有取消请求的能力。如果检测到拥塞,SM将取消请求,如果不采取任何动作,则有很大的停滞风险。如果不采取任何动作,很可能发生停滞,例如,如果由于在发出片段请求之后不久网络状况就恶化,而造成的下载速率突然急剧地下降。
[0088]SM对表示R、以及大多数最近先前选择的片段的结束P时间E保持跟踪。通常,SM选择请求起始P时间为的下一个片段。一些变化可以是:起始时间根据缓冲器水平和当前播放时间来确定。
[0089]如果丢弃切换点处的潜在重叠,则SM产生旨在生成可以平滑地播放的流的请求序列。SM生成请求的顺序,与RA应当对其划分优先级的顺序相同(虽然不一定是问题)。其还可以是RA将所接收的数据传递回SC、并且SC应当对其进行播放的相同顺序。
[0090]如果SM决定其需要切换速率,则在通常情况下,这样做有两个过程。在一个过程中,SM在新的(“切换目标”)表示中寻找P时间小于或等于E的切换点(其有时还称为“随机接入点”或“RAP”),一旦识别了这种点,SM就开始请求该新表示中的片段。第二过程是寻找P时间小于或等于E的切换点P,并继续请求旧的(“切换源”)表示中的片段,直到请求了结束时间超过P的片段为止的过程。在任一情况下,将这种切换信息发送给SC都是有用的。
[0091]应当注意,这两种过程都具有必须要下载一些重叠的数据的属性。存在着P时间的伸缩,需要在该时间,下载从其切换自的表现和切换到的表现的数据。
[0092]这些切换过程中的哪个是有利的,取决于上述情形。例如,其可以是:在一些特定的情形下,用于这些过程中的一个的重叠是不合理地大,而对于另一个来说却是很短。在所有片段在表示之间都是对齐、并且所有这些片段都以RAP起始的简单情形下,这些切换过程简化为更简单的方法,其中在该方法中,SM只通过从切换到的表现而不是从从其切换自的表现中请求下一个片段来进行切换。此外,还应当注意,在该情况下,不需要下载重叠的数据。
[0093]1.1.1、SM片段决策讨稈
[0094]该节描述了 SM片段决策过程,以决定告诉SC要请求哪些片段。在这些示例中,假定一个简单的表示组,但这些示例可以被扩展为解决使用多个表示组的过程,例如,从视频表示组中选择一个视频表示,从音频表示组中选择一个音频表示。
[0095]通常,SM所选择的下一个片段的起始P时间是前一个片段请求的结束P时间。下面描述可以在SM中实现以便选择要请求的下一个片段的某种详细逻辑。
[0096]在下面的示例中,假定片段以RAP起始,并且在表示之间是对齐的。如果不是这种情况,则本说明书的变化也是有可能的。如果存在这些状况,则SM的片段决策降低为速率决策,即,SM决定是停留在当前表示上,还是切换到不同的表示。在更一般的情况下,片段不是必需在表示之间是对齐的,并且可以不以RAP起始,这种决策是类似的,但切换的代价更高,在切换时可以考虑该代价。
[0097]SM表示处理包括两个逻辑单独的过程:第一过程是速率估计器,其根据RA提供的短期样本,计算近似持续的下载速率,第二过程是利用该估计来做出切换决策的决策过程。
[0098]2、谏率估计讨稈
[0099]自适应比特率流媒体客户端通常使用下载速率估计器模块,速率决策模块使用该下载速率估计器模块来选择正确的比特率媒体。使用该方法,当下载速率较大时,可以对高质量媒体进行流传输。下载速率的改变可以触发表现切换。速率估计的质量对于流媒体客户端的质量具有很大的影响。
[0100]用于自适应视频流媒体设备的良好速率估计器应当具有多种属性。首先,其应当具有很小的方差,即使短期下载速率变化很大。第二,其应当在底层的信道上进行快速地速率改变。当信道速率显著下降时,该估计应当反映这种快速的事实,使得设备可以在无需停滞的情况下,对质量进行相应地调整。相应地,应当快速地观测到视频质量的增加,使得可以获取更佳的质量内容。
[0101]满足这两种需求可能需要一些平衡。通常,具有很小方差的估计器将具有较大的反应时间,反之亦然。例如,假定可以在设备中使用的简单估计器。该估计器对最后X秒的下载(对于某些固定的X),执行移动平均。挑选较大的X(例如,X = 30秒),将导致具有很小方差的相对平滑估计,但其将只反应为下载速率慢速地改变。如果这种估计器是用于速率决策,则最终的播放器可能由于带宽下降而频繁停滞,或者不能及时地切换到更高比特率(当其可以安全地这样做时)。由于这些原因,一种实现可以挑选较小的X,如X = 3s。这种选择将导致更快速的速率调整,但以稳定性为代价。速率估计变化很大,因此播放器可能非常快速地改变视频播放速率,其导致很差的用户体验。
[0102]在图5中,颠簸曲线是原始下载速率,其具有很多的短期波动。速率估计器是颠簸下载速率的平滑版本。在速率改变时,其收敛到新的持续速率,只要速率不发生改变,则仍然类似于它。
[0103]期望的一种属性在于:如果存在很小的缓冲器水平,则调整是快速的,其造成速率的快速调整,使得当下载速率下降时,呈现缓冲器在调整之前不为空。另一方面,如果在媒体缓冲器中存在很多的媒体数据,则速率估计应当是具有更慢调整的更加平滑。与媒体缓冲器中存在很少的媒体数据相比,当在媒体缓冲器中存在更多的媒体数据时,播放速率应当趋向于在下载速率下降时,在更长的时间段保持为较高。
[0104]下文所给出的速率估计过程(其称为pkeiNpker过程或者pker类型过程),针对速率改变进行快速地反应,但其还是稳定的,满足针对低方差和高反应的需求。
[0105]2.1 > pker 过程
[0106]该节描述了本申请称为pkeiNpker类型过程或者仅“pker过程”的速率估计过程。基本速率估计器将其估计唯一地基于短期速率测量值,根据该值,使用一种方法或另一种方法来计算较长的平均运行。如上所述的基本移动窗口平均(“MWA”)是该过程的一个示例。
[0107]图6-7示出了为了速率选择目的,使用非自适应(固定系数)指数加权平均的效果。为了简单起见,这些图假定新的速率估计立即触发新的下载选择(即,这些片段是相对较小的),新的速率选择仅是速率估计。
[0108]图6示出了 r时间方面。如图所示,X轴是下载时间(实际时间)。当在时间Tl处发生急剧的速率增加时,缓冲器非常快速地开始增长,这是由于与播放的速率相比,视频数据被更快速地下载。EWMA估计逐渐收敛到真实的速率。
[0109]图7示出了相同事件的P时间方面。在该图中,线702描述了在屏幕上显示的比特率。与图6的r时间图片相比,这里的速率调整是更慢速的。与r时间相比的P时间的收敛速度,下降了开始中的NR/0R的因子(这是由于在该时间点的每一秒的下载,播放器接收了大约NR/0R秒的视频)。因此,当使用这种类型的速率估计器时,净效应是媒体可以在显著数量的P时间,按照与下载速率相比更慢的速率进行播放。
[0110]如果为了流媒体的目的来对速率进行估计,则估计器可以利用其它有关的信息。具体而言,对媒体播放器的缓冲器感兴趣,或者通常对媒体播放器的下载历史感兴趣(与当前缓冲器中的内容相比,对更远的过去感兴趣),其包括花费了多长的信息来下载被缓存或者已经播放的各个媒体片段。
[0111]例如,一种实现可以使用MWA估计器,但根据媒体缓冲器来选择窗口大小。
[0112]如果媒体播放器的缓冲器水平较高,则播放器不会具有立即停滞的风险,所以可以使用较大的窗口来进行长期的估计,这将导致一个更稳定的估计。另一方面,如果缓冲器水平较低,则播放器应当快速地反应,建议在这种情况下,更短的平均窗口是一种更好的选择。
[0113]所以速率估计过程的实现可以使用变化的窗口宽度,其利用与当前媒体缓冲器中的P时间的数量成比例的r时间窗口宽度(也就是说,已下载但没有播放的当前数量的P时间)。
[0114]另一种实现可以对窗口宽度进行选择,以便与媒体缓冲器中当前包含的字节数量成正比。
[0115]—种实现还可以检查缓冲器的内容,而不是只检查其水平。例如,如果确定缓冲器的很大部分是用与该相同内容的播放持续时间相比更短的时间来下载的,则说明该下载缓冲器正在快速地增长,速率估计器因此可以推断需要对估计进行调整。
[0116]类似地,速率估计器可以对缓冲器水平的改变速率进行跟踪,将缓冲器水平的快速改变作为需要对速率估计进行快速地调整的指示。
[0117]图8-9示出了当使用可变窗口大小加权移动平均(“WMA”)过滤器时,与图6_7相同的场景中的行为。在这些示例中,如同这种可变窗口大小WMA过滤器,将“pker”过程解释为程序代码。可以将Pker过程实现成由处理器执行的程序指令。
[0118]在图8中,线802是底层信道的速率突然从速率OR(旧速率)增加到速率NR(新速率)的情况下的Pker速率估计。为了进行速率选择以调整到新速率所花费的r时间的量与0R/NR成正比。增加越大,则这种调整在实际时间中将更快速地发生。如图所示,在时间 T2 处,BuffiT2 = 2*BuffiTl, Tfast = 0R/NR*Buff@Tl。
[0119]图9显示了 p时间中的播放行为。pker估计器花费大约一个缓冲器持续时间(当发生速率增加时,处于该缓冲器中的P时间的数量)来调整到新速率,即,在媒体缓冲器具有增加到该媒体缓冲器的P时间持续量B的媒体内容量的时间之前,Pker估计器调整到新速率,其中B是在速率增加到新速率的时间,该媒体缓冲器中的媒体内容的P时间持续量。
[0120]现在将描述执行该处理的具体过程。该处理确定其花费多少r时间来下载播放缓冲器的最后Yt比例,其中Yt是适当选择的常量。例如,这可以是其下载全部的当前播放缓冲器(Yt= I)所花费的全部时间,或者其下载播放缓冲器的最后一半(YT = 0.5)所花费的时间。还可以发生YT>1。使Tfast是其下载播放缓冲器的最后比例所花费的r时间的量。可以通过对下载时间的前面Tfast秒上的下载速率进行估计,来计算估计的下载速率。应当注意,其它的Yt值也是可以的。如本申请所解释的,不同的值可以服务于不同的目标。
[0121]这种类型的在Tfast宽度窗口上的加窗口平均,具有检测速率快速地增加的卓越性能。事实上,如果使用值γτ〈1来确定Tfast,那么估计器具有下面的属性:如果当媒体缓冲器中的媒体内容的P时间持续量是B时,该速率在某个时刻增加了任何因子的倍数,则在速率估计器收敛到增加的速率之前,该缓冲器将至多增长到B的有限倍数。
[0122]更详细的速率估计方法可以对上面所提及的两种方法进行组合。具体而言,可以将缓冲器水平B和Tfast的最小值使用成平均的窗口宽度(即,在其上对下载速率进行平均的r时间的量)。通常而言,可以在Yb.B和Tfast的最小值的前面r时间上,对下载速率进行平均,其中Yb是适当选择的常量。这种选择具有下面的属性:当存在具有停滞风险的速率下降时,其将快速地反应,这是由于在这些情况下,B是最小值,在与媒体缓冲器中的媒体内容的P时间持续量成正比的r时间上进行平均,从而在媒体缓冲器消耗一半的时间,速率估计将是新的速率。例如,假定在速率减少的时间,媒体缓冲器中的媒体内容持续时间是B,下载速率减少,使得在该下载速率减少之前下载速率是所选定的呈现的播放速率的一个比例α〈1,悲观的是,所选定的表示的播放速率不会减小,直到速率估计减少到新的下载速率为止。随后,随着在发生速率减少时,持续下载超出该时间X的r时间,则缓冲器水平是B' =Β-χ+α.χ,Β卩,从媒体缓冲器中消耗X的P时间,向该媒体缓冲器下载了 α.χ。速率估计将是此时的新速率,使得X = B',即,在此时,P时间中的媒体缓冲器水平等于下载已经处于该新速率的r时间,这是由于此时,前面r时间的下载上的估计将是新速率,在该全部时间期间,下载都已处于新的速率。对于方程x = B'= B-X+α.X中的X进行求解,得出X = B' =B/(2-a),即,当缓冲器B'仍然至少为B/2时,速率估计将达到新速率。如果在此时,速率增加的非常明显,那么Tfast将是最小值,与前面的B !时间上的平均值相比,在前面的Tfast r时间上的平均下载速率明显更高。
[0123]现在基于这种构建, 来给出pker速率估计过程的一个示例的详细描述。其使用可以从下载模块(例如,请求加速器(RA))获得的短期速率测量和缓冲器信息来计算估计。使用缓冲器信息来确定短期速率测量值能获得有用的估计的窗口宽度。
[0124]图10示出了当下载速率急剧下降时,pker速率估计器如何演进。只要速率一下降,缓冲器水平就开始下降。速率估计也开始调整。在缓冲器水平下降到二分之一时,速率估计达到新的速率(NR)。在该示例中,不进行中间速率决策,所以缓冲器线性地下降。如果进行了中间决策,则缓冲器水平的下降将逐渐慢慢地下降。
[0125]pker过程的设计目标是足够大的平均窗口来避免具有嘈杂的数字,但对于反应来说具有足够短的数量。Pker过程通过使用具有动态改变的窗口大小的加窗口平均来实现该目标。RA在存储器中维持几个变量,以便由Pker过程使用,其包括B、播放缓冲器的水平(在P时间)、处理参数YB、Yt和Tfast、下载该缓冲器的最后τ比例(在P时间)所花费的r时间的节省量、以及R、在r时间的下载的最后C的持续时间上平均下载速度,其中C =1^叉(5丁卩,1^11(¥,8,^),5丁?是最小可接受窗口大小(其应当超过采样时间周期(如,100ms))。在一些实施例中,Yb =1,Yt = 0.5,但其它值也是可以的,并导致性质相似的行为(只要这两个值是正在的,并且Υτ〈1)。较小的Yb造成Pker过程对于速率减少反应的很快,而较小的Yt造成其对于速率增加反应的很快。
[0126]如本申请所解释的,为了计算在持续时间C上的下载速率,SM使用RA定期提供的下载速度信息。由于此目的,SM可以保持RA所提供的下载速度信息的历史。进行该平均的持续时间至多是Yb缓冲器持续时间,其有效地限制当存在关于媒体缓冲器水平的上限时,需要保持多久的历史信息。
[0127]应当注意,如果所选定的播放速率近似地等于下载速率,则缓存值C具有缓冲器持续时间的量级,这是由于如果与播放该流所花费的时间相比,对该流下载花费相同数量的时间,则可以具有Tfast= Yt-B0对于用于下载速率估计的平滑时间间隔来说,选择某种量级的r时间的缓冲器水平是一种自然选择,由于其是远见量,因此流媒体客户端必须决定是否想要避免停滞。
[0128]在一种简单的实现中,平均的窗口宽度与B (视频缓冲器中所包含的P时间的量)成正比。这种选择能非常好地防止停滞,但具有下面的缺陷:如果下载速率是所选定的媒体的速率的k倍,则每一秒的下载导致k秒的P时间的媒体被下载,其造成速率估计实际调整地很慢。例如,如果k = 10,并且存在10秒的缓冲器,那么在调整之前,速率估计器将下载大约k*10s = 10s的P时间,其是一段非常长的时间。这促使向pker方法引入了 TfastS数。事实上,如果使用指数加权移动平均进行平滑,事情可能甚至变得更差,这是由于这些过滤器具有无限冲激响应。由于此原因,Pker过程替代地使用有限冲激响应。简单移动平均工作;一种实现还可以使用更精密的加权移动平均。
[0129]图13示出了这最后一点。其示出了简单(固定宽度)移动窗口平均与指数加权移动平均的比较。该图示出了当观测到速率改变时,固定窗口移动平均首先慢慢地收敛到新速率,但其将一个窗口持续时间之内收敛。指数加权移动平均趋向于在开始时快速地移动,但在后面阶段,其只是慢慢地收敛。与加窗口的移动平均不同,不在固定的窗口之内收敛,而是利用速率改变的幅度的时间对数进行收敛。
[0130]在Yb = I和Υτ = 0.5的情况下,pker过程可以提供各种保证。对于一种情况,如果下载速度下降任何倍数,则在缓冲器收缩到其原始持续时间的一半的时间之内,将估计调整到新的下载速度。对于另一种情况,如果下载速度增加任何倍数,则在Pker过程收敛到新的速率之前,对至多值得另外的P时间的一个缓冲器进行下载。简单明了的计算将示出类似的恒定比例担保,持有0〈 Yb并且0〈 Υτ〈1的任何选择。
[0131]用于计算缓冲器水平B的一种方法如下所述。使T是媒体播放器的当前播放P时间,使Fi;1,…,Fi;n是表示组i中的已经被下载或者正在下载但还没有播放的片段,其以增加的起始时间来排序。仍然被下载的组i的任何片段,位于Fi;1,…,Fi;n之间。使a (Fu)是已经被下载的片段Fu的比例,例如,已经下载的片段Fu的字节数除以片段Fu的字节大小。RA可以计算用于各种i和j的a (Fiij)的值,并将其传递给SM。对于给定的组i,将下载的P时间的当前总数量规定成如式I中所示:

【权利要求】
1.一种对通过具有有限带宽的网络路径耦接到数据源的接收机处的下载速率进行估计的方法,其中,所述下载速率是在所述接收机处可以通过所述网络路径接收数据的速率,所述方法包括: 监测所述接收机的呈现缓冲器,其中,所述呈现缓冲器至少在接收到媒体数据的时间和由与所述接收机相关联的呈现元件消耗所述媒体数据的时间之间存储所述媒体数据; 确定对所述下载速率的估计所要基于的非零估计时段; 存储所述估计时段上缓冲器水平的指示,其中,在给定时间的缓冲器水平至少近似地对应于在该时间所述呈现缓冲器被接收到的并且尚未被所述呈现元件消耗的所述媒体数据占用的程度;以及 使用所存储的指示作为所估计的下载速率的测量的一部分。
2.根据权利要求1所述的方法,其中,所述呈现元件包括显示器和音频输出。
3.根据权利要求1所述的方法,其中,对所述下载速率进行测量的所述估计时段具有以预定的比例因子与测量的缓冲器水平成正比的持续时间。
4.根据权利要求1所述的方法,其中,所述估计时段的持续时间被取为与在进行测量时所述呈现缓冲器中的未消耗的媒体数据的字节数量成正比。
5.根据权利要求1所述的方法,其中,所述估计时段至少部分地是将媒体添加到所述呈现缓冲器的添加速率的函数。
6.根据权利要求1所述的方法,其中,所述估计时段与下载所述呈现缓冲器的预定部分所使用的时间成正比。
7.根据权利要求6所述的方法,其中,所估计的下载速率是在先前的等于所述估计时段的持续时间上的平均下载速率。
8.根据权利要求1所述的方法,其中,所述估计时段是下载所述呈现缓冲器的预定比例的内容的时间和所述呈现缓冲器中存在的所述媒体数据的呈现时间中的较小者。
9.根据权利要求8所述的方法,其中,所估计的下载速率是在先前的等于所述估计时段的持续时间上的平均下载速率。
10.用于由处理器执行以便对通过具有有限带宽的网络路径耦接到数据源的接收机处的下载速率进行估计的非临时性计算机可读介质,其中,所述下载速率是在所述接收机处可以通过所述网络路径接收数据的速率,所述非临时性计算机可读介质包括: 用于监测所述接收机的呈现缓冲器的程序代码,其中,所述呈现缓冲器至少在接收到媒体数据的时间和由与所述接收机相关联的呈现元件消耗所述媒体数据的时间之间存储所述媒体数据; 用于确定对所述下载速率的估计所要基于的非零估计时段的程序代码; 用于存储所述估计时段上缓冲器水平的指示的程序代码,其中,在给定时间的缓冲器水平至少近似地对应于在该时间所述呈现缓冲器被接收到的并且尚未被所述呈现元件消耗的所述媒体数据占用的程度;以及 用于使用所存储的指示作为所估计的下载速率的测量的一部分的程序代码。
11.根据权利要求10所述的非临时性计算机可读介质,还包括: 用于连接到显示器和音频输出的程序代码。
12.根据权利要求10所述的非临时性计算机可读介质,还包括: 用于使用以预定的比例因子与测量的缓冲器水平成正比的持续时间来计算对所述下载速率进行测量的所述估计时段。
13.根据权利要求10所述的非临时性计算机可读介质,还包括: 用于计算与在进行测量时所述呈现缓冲器中的未消耗的媒体数据的字节数量成正比的所述估计时段的持续时间。
14.根据权利要求10所述的非临时性计算机可读介质,还包括: 将所述估计时段至少部分地计算为将媒体添加到所述呈现缓冲器的添加速率的函数和/或与用于下载所述呈现缓冲器的预定部分的时间成正比。
15.根据权利要求14所述的非临时性计算机可读介质,其中,所估计的下载速率是在先前的等于所述估计时段的持续时间上的平均下载速率。
16.根据权利要求10所述的非临时性计算机可读介质,其中,所述估计时段是下载所述呈现缓冲器的预定比例的内容的时间和所述呈现缓冲器中存在的所述媒体数据的呈现时间中的较小者。。
17.根据权利要求16所述的非临时性计算机可读介质,其中,所估计的下载速率是在先前的等于所述估计时段的持续时间上的平均下载速率。
【文档编号】H04L29/06GK104205768SQ201380015992
【公开日】2014年12月10日 申请日期:2013年2月26日 优先权日:2012年2月27日
【发明者】Q·高, M·G·卢比, Y·毛, L·C·明德 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1