通过速率限制的自适应流视频客户端的稳定的制作方法

文档序号:7793382阅读:108来源:国知局
通过速率限制的自适应流视频客户端的稳定的制作方法
【专利摘要】在一个实施例中,一种方法包括识别由客户端设备针对从内容源接收的内容所请求的当前编码速率,根据该当前编码速率在网络设备上设定速率限制以限制在客户端设备处接收内容的速率,并根据所述当前编码速率的改变调整速率限制。该速率限制被设定以允许客户端设备改变所述当前编码速率到下一更高的可用编码速率。
【专利说明】通过速率限制的自适应流视频客户端的稳定

【技术领域】
[0001]本公开一般涉及通信网络,并更具体地涉及自适应流视频客户端的稳定。

【背景技术】
[0002]当多个自适应比特率(ABR)流客户端在瓶颈链路上彼此竞争带宽时,该客户端会非常不稳定,每个客户端会非常频繁地调整其请求(和显示)的视频速率,即使当总带宽对于作为整体的该群体是可用的时候也不会有所改变。在所请求/所显示的视频速率中这些频繁的转变会导致普通观看者的体验质量(QoE)明显下降,原因有二:(I)质量水平变化分散;以及(2)因为所有其他条件等同时感知视频质量一般是关于编码比特率的凸函数,所以整体体验质量偏向最低的显示视频速率。

【专利附图】

【附图说明】
[0003]图1示出了网络的示例,其中可实施本文所述的实施例。
[0004]图2描述了在实施本文所述的实施例中有用的网络设备的示例。
[0005]图3是示出了自适应流速率限制器的示例的方框图。
[0006]图4是根据一个实施例示出了稳定自适应流客户端的过程的流程图。
[0007]图5是曲线图,示出了在没有速率限制的情况下自适应流比特率客户端中是怎样出现不稳定的。
[0008]图6是曲线图,示出了平均请求视频速率在采用自适应流率限制进行操作的系统中和在不采用自适应流率限制进行操作的系统中的比较。
[0009]相应参考符号表示全部附图的几个视图的相应部分。

【具体实施方式】
[0010]鍵
[0011]在一个实施例中,方法通常包括识别由客户端设备针对从内容源接收的内容所请求的当前编码速率,根据当前编码速率在网络设备上设定速率限制以限制在客户端设备处接收内容的速率,并且根据当前编码速率的改变调整速率限制。速率限制被设定到足够高以允许客户端设备改变当前编码速率到下一更高的可用编码速率。
[0012]在另一个实施例中,装置通常包括处理器,用于识别由客户端设备针对从内容源接收的内容所请求的当前编码速率,根据当前编码速率设定速率限制以限制在客户端设备处接收内容的速率,并且根据当前编码速率的改变调整速率限制。速率限制被设定以允许客户端设备改变当前编码速率到下一更高的可用编码速率。该装置还包括用于存储可用编码速率的存储器。
[0013]示例实施例
[0014]以下提出的描述使本领域技术人员能够进行和使用该实施例。对特定实施例和应用程序的描述仅作为示例被提供,并且各种修改对于本领域技术人员是显而易见的。本文所述的通用原理可以在不脱离实施例范围的情况下应用于其他应用。因此,实施例不限于本文所示,但要符合与本文所述的原则和特征相一致的最宽范围。为了清楚起见,与实施例相关【技术领域】中已知的技术材料的相关细节没有被详细描述。
[0015]在自适应流(还被称为自适应比特率(ABR)流或动态流)中,源视频被编码使得相同内容可适用于若干不同速率的流。内容流通常被构造成内容块阵列(例如,内容的碎片、片断、分段或整个内容实例的其他合适的子部分),通常有二到十秒的持续时间。ABR视频客户端可使用Web范式(web paradigm)(例如,在TCP (传输控制协议)/IP (互联网协议)传输上操作的HTTP (超文本传输协议))访问存储在服务器上的块,并决定从服务器请求任意给定内容的哪种具体表示(例如,视频编码速率)。该决定可基于各种参数或观察值,包括例如当前带宽(例如,基于监控的传输速率)和/或客户端缓冲区的填充水平。在整个观看体验期间,ABR视频客户端当可用带宽升高时会升档到更高的编码速率以获得更好的观看质量或当可用带宽降低时降档到更低的编码速率。
[0016]自适应比特率视频客户端通常在无约束贪婪模式下操作,并且不需要被设计为在其他ABR视频客户端竞争相同带宽池的环境下表现良好。因此,当多个自适应流客户端彼此竞争带宽时客户端会出现不稳定,每个客户端频繁地调整其请求的视频速率,即使当总带宽对于作为整体的该群体是可用的时候也不会改变。以下描述了在常规系统中竞争自适应比特率视频客户端的群体是如何出现不稳定的。此基本信息可被提供用作合理解释本公开的基础。
[0017]当自适应流视频客户端彼此竞争带宽时,该群体中的每个客户端独立地试图去获悉对于下载内容它能够使用多少带宽,并随后取决于对可用带宽比之前请求的编码速率更高或者更低的估计,请求以更高或者更低的比特率编码的内容。虽然会有很多不同类型的自适应比特率客户端当前在常规系统中使用,大多数ABR视频客户端依据它们如何估计可用网络带宽共享一些基本特性,并且如何响应估计的可用带宽的改变而调整它们的请求在某种程度也是一样的。例如,大多数ABR客户端通过测量通过一个或多个HTTP/TCP连接下载内容块所需时间来估计可用网络带宽,并且随后对一系列最近下载的块形成最近下载速率的时间加权移动平均数。如果此可用带宽的时间加权移动平均数以足够的余量超过下一较高的可用视频速率,则在随后的获取中客户端可升档并开始以下一较高的可用速率请求视频。相反的,如果最近下载速率的时间加权移动平均数小于当前被请求内容的编码速率,则在随后的获取中客户端可降档并开始以较低的可用编码速率请求视频。
[0018]由于每个块都以较高的比特率编码,当客户端升档时,请求的编码视频块通常大于升档之前会请求的块。因此,升档可引起客户端消耗比升档之前所使用的更多网络的带宽。相似的,每当客户端降档时会消耗更少的网络的带宽。在多自适应比特率视频客户端在瓶颈链路上彼此竞争带宽的情况下,单个客户端升档可引起其他客户端降档并且反之亦然。根据竞争客户端所用的平均时间尺度和自适应算法的细节,整个系统会由于自适应控制回路中反馈的复杂模式出现各种形式的不稳定,每个操作需要在单独的客户端上独立进行。这种系统的不稳定性会引起对每个客户端选定的视频速率相对频繁的变化,并对大多数客户端的整体体验质量(QoE)有相应的损失。常规自适应流系统中自适应比特率视频客户端处不稳定原理的细节会在下文中描述。
[0019]自适应比特率视频客户端通常从服务器通过HTTP/TCP获取内容块,其中每个块表示近似相等时间间隔的内容。在每次获取的过程中,内容源(例如,服务器)在标准化的TCP拥塞控制和流控制算法的约束条件下尽可能快速传输所请求的块,并且客户端会尽可能快速地(通过排空(drain)其套接字缓冲区)接收该块。因此,整体传输速度的限制因素是TCP连接的动态和服务器与客户端之间网络的拥塞状态。
[0020]在播放新内容的开始(例如,在内容中搜寻新位置后或从网络拥塞事件中恢复的时候),客户端通常紧接地获取几个块以便构建它的本地缓冲区。这些传输请求保持使用TCP连接以接近最大可允许的运行速率执行从服务器到客户端的传输,直到完成背对背式传输为止。一旦客户端充分地填充了它的缓冲区(即,稳定状态),客户端通常会切换到一种模式,其中客户端频繁地请求传输,频繁的程度仅足够保持它的缓冲区充满。例如,如果内容的每个块表示可维持两秒钟的内容并且网络能够仅用一秒钟传输这些可维持两秒钟的内容,则客户端通常会仅每两秒钟请求新片段,在此两秒期间的第一秒中传输所请求的片断并在余下的期间使TCP连接保持空闲。因此,一旦客户端充分地填充了它的缓冲区,客户端通常会在其每个TCP连接上产生“方波”流量配置文件,以最大可持续速率从服务器向客户端发送重复模式的块,接下来是空闲期,接下来是以最大速率的另一传输,以此类推。
[0021]当多ABR视频客户端彼此竞争带宽时此特征方波模式的传输可导致不稳定性。出现问题的原因:(I)每个客户端仅当在TCP连接上传输某物的过程中估计可用带宽;以及
(2)每个客户端仅在实际传输了某物的过程中向其他客户端有效提供关于自身带宽利用率的信息。此不稳定性会在下文参考示例作进一步解释。
[0022]在第一示例中,两个客户端(客户端A,客户端B)共享1Mbps的瓶颈链路。客户端A每两秒钟请求1Mbps的块并且客户端B也每两秒钟请求1Mbps的块。如果客户端A和客户端B在完全一样的时间(在每两秒钟间隔的开始)开始它们的传输,传输完全重叠。在这种情况下,TCP拥塞控制机制确保每个客户端在传输过程中得到大致公平共享的可用带宽。因此每个传输以大约5Mbps进行并且在大约两秒钟内完成。在本示例中,每个客户端会(正确地)估计其可用的平均带宽为5Mbps。
[0023]在第二示例中,两个客户端(A和B)再次共享1Mbps的瓶颈链路并且每个客户端每两秒钟请求1Mbps的块。在本示例中,客户端A在两秒钟的时间间隔内在时间点零处开始获取数据,并且客户端B在两秒钟的时间间隔内在一秒处开始获取数据。在这种情况下,客户端A的获取以全部1Mbps的速率进行并且在一秒钟内完成,恰好在此时客户端B开始获取。客户端B也以1Mbps完成获取,恰好此时客户端A在下一个两秒钟间隔的开始处开始它下一次的获取。在本示例中,每个客户端会(错误地)估计它的平均可用共享带宽为10Mbps。因此客户端会试图升档。
[0024]一旦任一客户端升档,因为升档的客户端会开始获取大于1Mbit的块,这不能在下一个客户端开始获取数据之前可用的一秒钟内以1Mbps完成,客户端A和客户端B的内容传输会开始重叠。因此,一旦任一客户端升档,两个客户端开始得到较低的可用带宽估计,该可用带宽估计会非常接近于正确值5Mbps。这会强制升档的客户端再次降档。本示例示出了即使仅有两个自适应比特率客户端竞争带宽,根据两个客户端之间获取的阶段校准,如何造成不稳定的情况,其中客户端中的一个或两者会重复地升档和降档。
[0025]在第三示例中,两个客户端(A和B)再次共享1Mbps的瓶颈链路并且每个客户端每两秒钟请求1Mbps的块。在本示例中,客户端B的获取被调整到在两秒钟的间隔内略早于或略晚于一秒钟处开始。不论哪种情况,两个客户端的获取都会开始重叠。在两者获取的重叠期间,每个会以大约5Mbps运行,而不是10Mbps。然而,由于在重叠过程中每个获取运行较慢使整个获取所需时间增加,从而导致更多的重叠产生。
[0026]从上述的示例可观察到,仅用允许两个客户端完成它们的获取并在重叠过程中公平共享带宽(每个以5Mbps运行完整的两秒钟)的模式以用于完全重叠的获取。
[0027]作为移动客户端B的获取稍微早于或稍微晚于一秒钟开始的替代,每个客户端的获取在每个连接的基础上会有速率的限制。例如,该获取的速率被限制在9Mbps。这会强制每个客户端的传输对重叠的传输部分稍延长超过一秒钟,并且允许在重叠过程中公平共享的仅有解决方法是在整个两秒的间隔中两个客户端都以5Mbps运行。因此,通过对每个连接的速率限定,两个客户端被强制避开重复升档和降档的不稳定均衡,并接近每个客户端可以始终正确地测量出其可用带宽的稳定均衡。如下文进一步所述,实验已经显示出了与上述示例相似的行为,事实上是实际客户端群体的不稳定根源。
[0028]导致了不稳定性的客户端自适应控制回路间相互作用的特定机制在上文已进行了描述,并且对此不稳定性的解决方法由本文所述的实施例提供。实施例提供了对于竞争自适应比特率视频客户端稳定所请求/显示的视频速率的方法,而不需要对每个客户端分配特定编码速率的集中实体。如果每个客户端保持设定在一个特定的比特率则所有客户端上测量的整体或平均体验质量通常会提升,比起接近公平共享带宽周围宽泛波动优选接近于可用链路带宽的公平共享部分。如下文详细描述,实施例提供了动态限制自适应比特率客户端使用的连接的通量的技术,使得对每个客户端不需要任何速率选择的集中管理而可大大提高每个客户端稳定性。因为不需要集中管理每个客户端可用的带宽,客户端速率选择保持分布式。实施例可以被应用于很多不同的自适应比特率技术中,并且一些实施例在没有对原有客户端设备进行修改的情况下被实施。
[0029]现在参考附图,首先参考图1,示出了在本文所述的实施例中被实施的网络的示例。通信系统包括通过网络14与多个内容接收端(客户端、客户端设备、最终用户、终端)12通信的多个内容源(服务器)10。内容源10被配置为传送请求的内容到内容接收端12。内容可包括任意合适的可在网络14中传播的信息。例如,内容可包括视频、图像、图表、文本、网页、音频、其他数据或以上的组合。从内容源10发送的内容可根据任意格式被加密、压缩或编码。可以有任意数量的内容源10向任意数量的客户端12提供内容。为了简单起见,在通信系统中仅有少数节点被示出。
[0030]在一个实施例中,通信系统包括自适应流视频系统,该自适应流视频系统使用多速率视频编码以及IP传输协议组(例如,如下文所述的HTTP/TCP/IP或其他等效协议)以在变化的网络条件下向多个用户同时传送高质量的视频流。如先前所述,视频源通过自适应流被编码,使得相同的内容适用于若干不同速率的流。自适应比特率客户端设备12可操作以传输请求了以不同比特率编码的内容块的内容请求26到内容源10 (或与内容源通信的另一个网络设备)。响应请求26,内容源10传输编码内容(块)28到客户端12。根据内容的各种特性和观察值(比如在客户端缓冲区中的可用带宽和数据量),客户端12可升档或降档(即,切换到不同的比特率)或维持相同的比特率以提供持续播放。
[0031]内容接收端12可以与在通信系统中想要接收内容的设备、客户、或最终用户相关联。内容接收端12可以是任意可操作以从内容源10请求和接收内容的网络设备。客户端设备12可以是有线的或无线的,并且可包括例如蜂窝电话、智能电话、个人数字助理(PDAs)、平板电脑、多媒体设备、笔记本电脑、个人电脑、机顶终端(盒)、有通信功能的电视或任意其他可操作以发起和/或响应视频、音频、媒体或在通信系统内的交换数据的设备。内容接收端12还可以是代表另一实体或元件(比如程序、数据库或其他组件)试图进行通信的设备。
[0032]在图1所示的示例中,客户端设备12与网络设备16(例如,边缘节点、缓存节点、网关、路由器、交换器)通信。边缘节点16通过通信(数据)路径18与内容源10 (或多个内容源)通信。带宽在路径上被认为是‘瓶颈链路’的位置受到限制。例如,通信路径内的一个或多个链路上的可用带宽可限制从内容源10到客户端12的数据传输速率。内容源10和客户端12之间的数据路径18穿过网络14,并包括任意数量或任意类型的促进终端之间数据通过的中间节点22(例如,路由器、交换器、网关、缓存节点或其他网络设备)。网络14可包括一个或多个网络(例如,局域网、城域网、广域网、企业网、因特网、内联网、无线接入网络、公共交换网,或任意其他网络或网络的组合)。
[0033]例如,内容源10可以是可本地存储内容或通过另一网络、卫星、电缆或任意其他通信设备或系统从另一服务器或媒体源获得内容的服务器(例如,原服务器)或服务器组。内容源10可存储或缓存在另一设备上被编码或分段的内容。内容源以不同比特率编码的块的形式向客户端设备12发送编码流。内容源10可位于可操作以获取并以流的形式传输媒体的内容传送网络内。内容传送网络可包括将内容传送到数字电视和机顶盒的流应用,以及将内容传送到比如个人电脑、移动电话和手持设备之类的IP设备的因特网流应用。
[0034]通信系统包括一个或多个速率限制器20 (在本文被称为自适应流(AS)速率限制器,因为它被用在自适应流系统的上下文中)。AS速率限制器20可操作以提供速率限制(例如,每个TCP连接),限制速率参照所请求的自适应比特率内容的可用速率和由自适应比特率视频客户端12所请求的当前速率动态确定。速率限制器20可位于自适应比特率客户端设备12 (如图1所示)或内容源10或其他网络设备上(如在图1的通信系统内不同位置用虚线示出的速率限制器所表示的)。例如,速率限制器20可在网络路径中在客户端12和内容源10之间的网络设备(边缘节点16、中间节点22)上操作。在另一个示例中,速率限制器20被应用在一个或多个内容源(服务器系统)10中。速率限制器20还可在Web代理24或这些或其他位置的任意组合上实施。如下文所述,如果速率限制器20在不同于客户端12的其他位置实施,则客户端速率选择仍保持分布于客户端设备。速率限制器20的详细操作会在下文做进一步地描述。
[0035]应当理解的是本文所述和图1中所示的网络仅是示例,并且在不脱离实施例的范围的情况下实施例可在具有不同网络拓扑或网络设备的网络中实施。例如,在本文所述的实施例在计算机网络环境上下文中描述,具有表现为视频的内容。应当理解的是,除视频之外或代替视频,其他内容(例如,音频、数据、图表、图像等)也被认为在实施例的范围内。此外,本文所述的自适应流系统的某些实施例,在使用HTTP/TCP/IP的环境内的自适应流的上下文中描述。应当理解的是其他网络分布多媒体(例如,视频、图表、音频或数据)也可受益于自适应流系统和方法的某些实施例并且被考虑在实施例的范围内。例如,比如HTTPS (超文本传输协议完全)或SPDY(SPeeDY)的其他应用协议可用来代替HTTP,或比如SCTP (流控制传输协议),DCCP (数据报拥塞控制协议)、或MPTCP (多路径TCP)的其他传输协议可用来代替TCP。而且,对每个连接使用速率限制以使传输更接近公平共享连接,这可应用到不同于自适应比特率流系统的系统中。
[0036]图2示出了用于实施本文所述实施例的网络设备30 (例如,源10、客户端12、边缘节点16、中间节点22、Web代理24)的示例。在一个实施例中,网络设备30是可以以硬件、软件或其任意组合实施的可编程机器。网络设备30包括一个或多个处理器32、存储器34、网络接口 36和速率控制器20。
[0037]存储器34可以是易失性存储器或非易失性存储器,存储各种应用、操作系统、模块和数据,以由处理器32来使用和运行。存储器34可包括一个或多个用于临时存储被压缩或被重构的视频或其他网络数据的缓冲区38。例如,在客户端设备12上,缓冲区38被配置以缓冲接收的内容并(通过缓冲区监控模块)向比特率选择逻辑提供缓冲区的状态。存储器34还存储ABR信息35 (例如,可用编码速率),该信息可被包括在下文所述的矩阵或清单中。存储器34还可存储用于速率限制器20的计算机代码。存储器34可包括单独的存储器元件(例如,媒体存储器、系统存储器等)。
[0038]自适应流系统通常使用二维矩阵,其中一维由时间构成,另一维由目标编码速率构成。内容矩阵的结构连同描述每个块的相关元数据一起被包括在通常被称为清单的结构中。清单通常被分为表示,每个表示描述一行内容矩阵(例如,所有以比特率编码的块)。清单可有各种不同的方案。元数据可包括例如每个块的位置或标识、块尺寸、质量级别、t匕特率、时间戳信息等。应当理解的是本文所述的清单仅是可以用来提供可用编码速率的数据结构的一个示例。
[0039]再次参考图2,逻辑可以被编码到一个或多个有形媒体中,以由处理器32执行。例如,处理器32可执行存储在比如存储器34的计算机可读介质中的代码。计算机可读介质可以是,例如,电子(例如,RAM(随机存取存储器)、R0M(只读存储器)、EPR0M(可擦除可编程只读存储器))、磁、光(例如,CD,DVD)、电磁、半导体技术,或任何其它合适的介质。
[0040]网络接口 36可包括用于接收数据或向其他设备传输数据的任意数量的接口(线路卡、端口)。接口 36可包括例如用于连接到计算机或网络的以太网接口或用于与接入点或基站通信的无线接口。在一个示例中,网络接口 36被配置为能够与其他网络设备通信(例如,TCP/IP)并接收清单35 (或其中的信息)以及所请求的块。
[0041]自适应流速率限制器20被配置为对每个连接选择和应用速率限制,使得客户端12在维持使竞争客户端之间的传输最大重叠的足够低的速率的同时被允许升档。自适应流速率限制器20的示例关于图3被描述如下。
[0042]应当理解的是上文所述和图2中所示的网络设备30仅是示例,并且可以使用网络设备的不同配置。网络设备30还可包括可操作以促进本文所述功能的硬件、软件、算法、处理器、设备、组件或元件的任意合适的组合。例如,配置用作客户端设备12的网络设备还可包括用于解码(例如,解压缩和重构)块的解码器,和可操作来根据可用带宽和其他因素以选择编码速率并确定有升档或降档到不同比特率的需求的速率选择模块。
[0043]如果有足够的带宽以支持更高的编码速率,则对每个连接的速率限制设定到足够高恰好以允许客户端12升档到下一较高的可用编码速率,同时保持足够低的速率以使竞争客户端之间的传输重叠最大化,并且使由于对可用带宽错误的估计产生的振荡和频繁的速率改变最小化。速率限制被动态地设定并且在每次发生升档或降档时重新调整,使得获取被控制在一速率,该速率不高于允许升档的必要速率。维持速率限制在符合允许升档的最低级别,这确保互相尽可能大量的传输重叠,从而允许每个客户端更准确地估计它的公平共孚带宽。
[0044]为了使客户端12能够升档,通常必须检测时间平均下载速率,该时间平均下载速率至少与内容可用的下一较高编码速率一样高,并且经常有超过该速率的附加部分以确保升档是可持续的。因此,可根据当前编码速率、下一较高可用编码速率(其可例如通过当前编码速率的倍数通过算法计算或从清单获得)以及客户端升档所需要的超过下一速率的余量设定速率限制。应当理解的是本文中使用的术语‘编码速率’可以指视频速率、平均比特率、通告比特率、或与内容相关联的任意其他类型的速率或表示,该内容可以是通过客户端12所请求的或可用于客户端请求的。
[0045]图3是根据一个实施例用以设定和应用速率限制的自适应流速率限制器20的方框图。在图3所示的示例中,自适应流速率限制器20包括用于设定速率限制的控制器42和用于应用速率限制的速率限制器44。控制器42可根据当前编码速率(例如,当前编码速率的倍数)或根据当前编码速率和可用编码速率列表(例如,由内容的清单35提供)设定速率限制。控制器42可使用来自客户端12或清单35的附加信息将速率限制设定到适当值。例如,控制器42可进一步考虑到客户端对其CPU或屏幕性能的认识或保持在下一较高速率所需余量。如果速率控制器20位于客户端12外的其它网络设备,则需要如下文所述的附加步骤以获得当前编码速率和清单。控制器42还可操作以检测由于客户端12处的升档或降档导致的当前编码速率的变化。
[0046]可使用各种技术以对流提供每个连接的速率限制。由速率限制器44使用的不同速率限制技术的示例在图3中示出。速率限制器44可包括例如,整形器46、监管器48、或其他TCP流控制50。这些速率控制技术中的每一个可以单独使用或结合一个或多个其他速率控制技术使用。图3中所示的组件可用合适的算法、软件、硬件、模块或促进其操作的对象来实现。一个或多个元件可具有内部结构或与结构(例如,参照图2所述的处理器、存储器元件)相关联以促进本文所述操作。
[0047]在一个实施例中,整形或令牌桶监管被用于对每个连接进行速率限制。单独队列56可被分配给每个TCP流用于整形,或单独的令牌桶58可分配给每个TCP流用于监管。当数据速率高于速率限制时,整形器46使用队列机制延迟过量流量以保存分组并对流进行整形。当速率限制被超过时监管器48会降低或重新标记流量。整形、监管或它们的组合可在网络中(例如,边缘节点16、中间节点22、Web代理24)、在发送器上(例如,源10)、或在接收客户端12上执行,如下所述。
[0048]在另一实施例中,TCP拥有的流控制50被用以限制TCP连接的速率。TCP接收器排空其套接字缓冲区55的速度不会超过连接所要求的最大速率。TCP套接字55最好被相对平稳(没有突发)的排空,但其平均速度不超过所应用的速率限制。
[0049]如上关于图1所述,速率限制可被应用在每个客户端设备12、或内容源10、边缘节点16、中间节点22、Web代理24或网络中的其他节点,或任意以上的组合。
[0050]在客户端设备12上的速率限制最好通过限制客户端排空TCP套接字55的速率经由TCP流控制来实现,如上所述。在客户端12上的速率限定还可通过输入对连接的监管或整形或通过其他方法限制在客户端设备接收内容的速率来实现。
[0051]当速率限制在客户端12上实施时,因为客户端通常位于最佳位置以确定允许升档的最小速率限制,每个TCP连接的速率限制值可由客户端确定。客户端12通常知道内容可用的所有视频速率(内容的ABR客户端清单35中提供的信息)和升档所需的清单中超过下一较高速率的额外余量。
[0052]当速率限制在服务器(内容源10)中实施时,可通过发送应用将所请求的内容平稳地馈送到发送器TCP套接字(但不快于速率限制)来使用速率限制。或者,速率限制在服务器10中通过连接的整形或监管来实现。可参考所请求内容的ABR(客户端或服务器)清单文来确定速率限制的值。在一个示例中,适当的发送限制(速率限制)可被计算如下:
[0053](l+e)*R[n+l]
[0054]其中:
[0055]R[η]是来自客户端的内容请求(例如,HTTP请求)中所请求的视频速率;
[0056]R[n+1]是如从清单文件中得到的超过所请求速率的下一较高速率;
[0057]以及
[0058]e是配置常数,提供了超过清单中的下一较高速率的余量以确保可持续升档。
[0059]应当注意的是上述方程适用于η <清单文件中的最大速率。如果客户端已经处于清单中最高的速率,则限制可计算为(l+e)*R[maX],其中R[max]是清单文件中最大的速率。
[0060]每个连接的速率限制可通过整形或监管TCP连接应用于从服务器10到客户端12的路径中的网络元件(例如,图1中的网络设备12、22)内。在这种情况下,使用各种技术可在网络元件中确定连接的速率限制。在一个示例中,网络元件通过HTTP请求26 (图1)的深度包检测(DPI)获得所请求片断的URI (统一资源标识符),并随后使用该URI (通过算法和配置信息)确定相应ABR清单35的URI。网络元件可随后获得并缓存清单35,并且使用清单以如上关于服务器10所述的相同方式设定连接的适当速率限制。
[0061]在另一个示例中,网络元件通过DPI得知所请求内容的编码速率,并得知从客户端10接收的在请求26中URI的解析。随后速率限制被设定为所请求速率固定的配置倍数(例如,2倍、1.5倍等)。在这种情况下,速率限制被设定到足够高以允许甚至遍及所有提供的内容中两个相距最宽的不同速率之间的升档。
[0062]在另一示例中,速率限制由Web代理24应用。该代理针对请求的信息在客户端12和服务器10之间操作以与服务器通信,或具有用于客户端访问的已经缓存的内容。通过Web代理24的内容流可充当对于客户端的服务器和对于服务器的客户端。在这种情况下,Web代理24具有服务器10通常可用的信息,包括来自内容请求26的URI和内容的清单文件35,并且Web代理可通过服务器10或客户端12可用的相同技术应用速率限制。
[0063]应该理解的是如上所述用来应用AS速率限制的机制和位置仅是示例,并且在不脱离本实施例范围的情况下,可使用不同的技术或在网络内的不同的位置上应用速率限制。例如,在管理网络中的一些客户端12已被修改以支持AS速率限制,然而其他客户端没有被修改的情况下,AS速率限制可在支持该特征的客户端中被强制执行,并且在没有支持该特征的客户端的服务器或网络上被强制执行。
[0064]图4是根据一个实施例示出通过速率限制稳定自适应流客户端过程的流程图。在步骤60,识别对于从内容源10接收的内容由客户端设备12请求的当前编码速率。如果在客户端12上有多个连接,则会对每个连接执行该步骤。内容的下一较高可用编码速率也被识别(步骤62)。如上所述,这可在清单中定义或定义为请求速率的倍数。网络设备还可识别允许客户端升档的超过下一较高速率的余量。根据被请求ABR内容的可用速率和由客户端12请求的当前速率,设定了速率限制(步骤64)。如果有可用带宽,速率限制被设定以允许客户端12将当前编码速率改变到下一较高的可用编码速率。速率限制可在内容源10、客户端12或其他网络设备(例如,图1中的节点16、22或24)上被设定并应用。如果客户端升档或降档,速率限制被动态地调整以允许客户端升档到新的下一较高编码速率(步骤66和68)。步骤60-64可以被重复以确定在客户端设备上的升档或降档之后的新的速率限制。如上所述,速率限制最好设定在符合在客户端12上允许升档的最低级别。这允许ABR客户端12升档,同时保持足够低的速率使竞争客户端之间传输的重叠最大化。
[0065]应当理解的是图4中所示的过程与上文所述仅是示例,在不脱离实施例的范围的情况下步骤可以被添加、移除、重新排序、合并、或修改。
[0066]以下提供了图4中所示过程的一个示例。在此示例中,ABR客户端12以内容的当前选择编码速率IMbps播放内容,内容可用的下一较高视频速率是1.2Mbps,并且客户端需要超过下一较高速率的10%的余量以便升档。因此速率限制器20可将获取内容上连接的速率限制到110% *1.2Mbps = 1.32Mbps。如果客户端12识别到可用带宽并升档到1.2Mbps,连接上的速率限制被重新调整到超过内容可用的下一较高速率的10%。如果1.2Mbps是内容可用的最高速率,则客户端甚至在升档之后保持它的速率限制设定在1.32Mbps,这是因为得知了有更多超过此级别的带宽不会允许任何进一步的升档。此外,如果客户端知道其他因素会阻止其利用附加带宽(例如,CPU的功率不足以解码较高比特率或屏幕分辨率不足以允许下一较高比特率的显示),则客户端会在升档后会保持它的速率限制设定1.32Mbps。
[0067]以下示例说明了实施例的原理和优势。图5示出了在常规系统中的一组竞争自适应比特率客户端的不稳定性。图6示出了通过典型范例展示的速率限制实施例提供的稳定性。
[0068]首先参照图5,说明了常规系统中一个实验的曲线图被示出,在常规系统中36ABR客户端被配置以对在10Mbps瓶颈链路上竞争带宽的所有客户端播放内容。该内容通过从440Kbps到1Mbps范围的各种不同视频比特率被编码,并使用恒定比特率编码来编码每个比特率。X轴表示相对于实验开始的时间(以秒为单位)。曲线图中的第一条线(标有“平均请求视频比特率”)表示在指示的X轴时间附近的小时间窗口中由客户端请求的平均视频比特率编码。曲线图示出在425秒附近由所有36客户端请求的平均比特率,大约为2Mbps,而450秒附近由所有36客户端请求的平均比特率大约为3Mbps。平均请求比特率以大约为50-60秒的周期以规则的模式振荡。
[0069]标有“平均实际下载视频比特率”的线表示在指示的X轴值附近的时间窗口中对于获取的块的平均实际下载速率。例如,在大约440秒处和其后重复的时间间隔处,会有指示大约以1Mbps获取片段的尖峰,然而大多数时间块的下载速率是接近3Mbps的。由于ABR客户端根据观察的块下载速率的移动平均值估计可用带宽,每当出现更多的可用带宽时发生升档,这些观察下载速率的尖峰说明了请求视频速率的相应峰值。在每个观察下载速率(“平均实际下载视频比特率”)尖峰后的短时间内,客户端群体中的一些客户端会升档导致“平均请求视频比特率”的升高。
[0070]第三幅曲线(标有“有效连接数量”)相对于右手边y轴绘制,表示了每个时间点上实际用于获取块的TCP连接数量。应当注意的是由于本示例中的每个客户端使用两个TCP连接,所以潜在有效TCP连接的数量是客户端数量的两倍。如曲线图中所示,“平均实际下载视频比特率”曲线的峰值表示非常迅速地完成获取的时间,相当于基本上没有实际同时正在进行的获取的时间。当客户端降档时它们的传输趋向于彼此没有大量的重叠,使得每个客户端高估可用带宽。当有足够数量的客户端升档时,各个传输变得具有更加大的重叠,因此使得每个客户端形成对可用带宽更准确的估计。
[0071]图6所示的曲线图示出了实施本文所述实施例(应用速率限制)的示例与常规系统(没有应用速率限制)的比较。在图6所示的曲线图中,X轴是时间(以秒为单位),y轴是平均请求视频速率带宽(以Mbps为单位)。标有(“无速率限制”)的第一曲线表示没有使用本文所述的速率限制的结果。标有“动态速率限制”的第二曲线表示了实施本文所述自适应流速率限制的结果。“动态速率限制”曲线展示了实施例的执行情况,其中分组被拦截并经由系统路由,所述系统实行DPI以得知每个接连所请求视频的速率,随后通过监管每个连接(用足够的令牌桶尺寸)执行速率限制到请求速率的固定倍数(在本示例中设定到2倍)。如从曲线图观察得到,请求视频速率中几乎全部振荡通过使用速率限制被消除。速率转变的数量的分析表示通过使用稳定过程(速率限制),由客户端经历的速率转变的数量会不止下降到20分之一。
[0072]应当理解的是图6所示的实验和上文所述仅是从使用速率限制的一种类型和组件(客户端设备、测量工具等)的一个实施例中获得的示例结果。
[0073]虽然根据所示实施例描述了方法和装置,但本领域技术人员可以很容易地认识到在不脱离实施例范围的情况下可以做出变化。因此,包括在上文描述中所有的问题和附图中的显示旨在被理解为是说明性的而不是限定性的。
【权利要求】
1.一种方法,包括: 识别由客户端设备针对从内容源接收的内容所请求的当前编码速率; 根据所述当前编码速率在网络设备上设定速率限制以限制在客户端设备处接收所述内容的速率,其中速率限制被设定以允许客户端设备改变所述当前编码速率到下一更高的可用编码速率;以及 根据所述当前编码速率的改变调整速率限制。
2.如权利要求1所述的方法,其中所述速率限制是针对所述客户端设备处的每个连接设定的。
3.如权利要求1所述的方法,其中所述网络设备是所述客户端设备。
4.如权利要求3所述的方法,其中设定所述速率限制包括限制客户端套接字被排空的速率。
5.如权利要求1所述的方法,其中所述网络设备是所述内容源。
6.如权利要求5所述的方法,其中设定所述速率限制包括计算发送限制,该发送限制等于:
(l+e)*R[n+l]; 其中: 对于η <最大可用编码速率,R[n+1]是所述下一更闻的可用编码速率;以及 e是常数。
7.如权利要求1所述的方法,其中所述网络设备位于所述客户端设备和所述内容源之间的网络路径中。
8.如权利要求7所述的方法,还包括对从所述客户端设备接收的请求执行深度分组检查以识别所述当前编码速率。
9.如权利要求7所述的方法,其中所述速率限制被计算为所述当前编码速率的倍数。
10.在权利要求1所述的方法,其中所述网络设备包括位于所述内容源和所述客户端设备之间的Web代理。
11.在权利要求1所述的方法,其中设定所述速率限制包括识别所述下一更高的可用编码速率并且对所述下一更高的可用编码速率添加余量。
12.如权利要求1所述的方法,还包括对网络流进行整形或监管以应用所述速率限制。
13.如权利要求1所述的方法,其中所述客户端设备和多个其他客户端设备通过公共网络路径请求内容,并且针对每个客户端设备独立设定所述速率限制。
14.一种装置,包括: 处理器,该处理器用于识别由客户端设备针对从内容源接收的内容所请求的当前编码速率,根据所述当前编码速率设定速率限制以限制在客户端设备处接收所述内容的速率,并根据所述当前编码速率的改变调整速率限制;以及 用于存储可用编码速率的存储器; 其中速率限制被设定以允许客户端设备改变所述当前编码速率到下一更高的可用编码速率。
15.如权利要求14所述的装置,其中所述装置包括所述客户端设备,并且设定所述速率限制包括限制客户端套接字被排空的速率。
16.如权利要求14所述的装置,其中所述装置包括所述内容源,并且设定所述速率限制包括计算发送限制,所述发送限制等于:
(l+e)*R[n+l]; 其中: 对于η <最大可用编码速率,R[n+1]是所述下一更闻的可用编码速率;以及 e是常数。
17.如权利要求14所述的装置,其中所述装置被配置为在所述客户端设备和所述内容源之间的网络路径中操作,并且所述处理器被配置为对从所述客户端设备接收的请求执行深度分组检查以识别所述可用编码速率。
18.如权利要求14所述的装置,还包括配置为对网络流进行整形或监管的速率限制器。
19.如权利要求14所述的装置,其中所述可用编码速率被包括在清单中。
20.一种在一个或多个有形计算机可读介质上编码的用于执行的逻辑,所述逻辑执行时可操作以: 对于从内容源接收的内容识别由客户端设备请求的当前编码速率; 根据所述当前编码速率,设定速率限制以限制在客户端设备上接收所述内容的速率,其中速率限制被设定以允许客户端设备改变所述当前编码速率到下一更高的可用编码速率;以及 根据所述当前编码速率的改变调整速率限制。
【文档编号】H04N21/238GK104350755SQ201380029782
【公开日】2015年2月11日 申请日期:2013年5月28日 优先权日:2012年6月6日
【发明者】乔舒亚·B·伽木, 萨默尔·艾克斯哈比, 艾丽·C·贝根, 戴维·R·奥兰, 比斯瓦冉詹·潘达, 弗雷德里克·贝克 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1