对于多个客户机管理流媒体带宽的制作方法

文档序号:6360810阅读:154来源:国知局
专利名称:对于多个客户机管理流媒体带宽的制作方法
对于多个客户机管理流媒体带宽相关申请本申请要求在2010年4月8日提交的美国临时专利序列No. 61/321891作为优先权,在此加入它作为参考。
背景技术
在因特网上,视频流是重要的应用。可用的流、服务器和用户的数量迅速增加,并且是带宽的主要消费者。“经典”流通过以很少的反馈从服务器向客户机传送流执行原本形式的流。只有在给定的时间内客户机不接收数据时,才提供反馈。如果在TCP协议上或者通过由客户机重新发送对于流的请求发送流,那么可通过确认(Ack)消息的使用或缺少完成反馈。在许多情况下,使用的协议是RTSP。具有“经典”流的自适应位率由于服务器和客户机在它们之间不具有媒体的清楚的可见性,因此,实际上服务器不可能知道具有一个特定的位率的流是否可到达客户机或者路径上的带宽阻塞是否会阻挡客户机接收它。因此,服务器采用不同的自适应的位率方法。在所有的情况下,服务器保持一些版本的流,每个以不同的位率被编码。在一般的情况下,如果具有特定的位率的流的段没有到达客户机,那么服务器会尝试以较低的位率重新传送流。可通过降低空间分辨率、每秒的帧数或者简单地向流施加更强的压缩实现较低的位率。在客户机接收所有的传送的段的情况下,服务器可恢复到流的更高位率版本并且传送它们。在这些情况下,决定使用哪些位率的设备是服务器。HTTP 流出于包括防火墙限制和不同的服务器和客户机之间的兼容性的不同的原因,市场一般已恢复到HTTP流(或者在恢复的过程中)。当执行HTTP流时,客户机在HTTP上请求文件下载。在这种情况下,客户机可能仅请求文件的多个部分或全部。如果客户机希望的话,它可停止文件的下载并要求服务器下载不同的文件。总之,在最简单的意义上,HTTP流包含从服务器向客户机的文件下载。这种类型的流常被称为进行性下载(PD)。具有HTTP流的自适应位率(ABR)具有HTTP流的自适应位率是相对较新的技术。当使用它时,服务器首先保存视频片段的几个不同的版本。差异通常是位率差,但也会在版本之间存在分辨率或其它的差异。不同的版本被分割成具有几秒的回放持续期的通常被称为碎片或块体(在申请中,这些词语可被互换使用)的小的段。服务器向客户机发送清单文件。清单文件通知客户机哪些版本是可用的、碎片的持续期以及客户机在什么地方可找到不同的碎片。客户机然后要求服务器传送流的特定的碎片。ABR HTTP流也可与实时流一起使用。在这种情况下,清单文件被持续更新并被发送到客户机。在一些ABR情况下,各位率块体被存储为单个文件。在其它的情况下,各文件保持具有一个特定的位率的整个流,并且,不同的块体仅是文件的不同的段。其它的实现可仅包含通过位率和块体分段的一个文件。如在经典流中那样,客户机和服务器不具有关于它们之间的媒体的任何信息。因此,这里还需要用于确定流的位率的机制。在这种情况下,是客户机进行决定。在客户机中实现的算法决定从服务器请求哪个位率块体。决定会受诸如可用的缓冲器空间、客户机的处理能力和带宽考虑的几种因素影响,比如,如果先前请求的块体没有被接收(可能由于网络阻塞)一下一次请求低位率碎片。偶尔地,客户机可请求具有比最后的接收的块体高的位率的块体。问题不同的客户机常常共享常称为最后英里信道的相同的资源。例如,蜂窝/移动装置可在较新的系统内共享相同的单元,或者在较旧的系统内的单元内共享相同的频率。在电缆网络中,客户机可共享相同的QAM信道。所有网络中的最后英里信道限于特定的带宽。常常地,该带宽可能不足以允许所有服务要求的所有位率被传送到下游装置。为了减少数据损失,需要带宽的一些管理。但是,在流中,管理是不可用的。网络操作员可使用的仅有的方法是对于不同的装置或服务设定优先权并对于装置或服务限定带宽。两种方案均不好。当设定优先权时,一个服务或装置可消费极大量的带宽并使其它的客户机完全得不到。限制位率提出其它的问题,诸如在管道上留下未使用的带宽或者将极限设定为太低使得服务根本不能被传输或者以许多中断被传输。网络操作员不能有效地管理最后英里信道,原因是它不知道服务器与客户机之间的事务。以下是这些低效率的两个例子,但存在更多的例子。出于简化的原因,在例子中,假定只有流对话占据最后英里信道管道。未使用的带宽假定所有的带宽被利用并且各装置根据请求接收块体。现在假定一个装置停止请求服务并且停机。对于该装置分配的带宽现在是空闲的,但其它的装置不知道这一点,因此它们均不以更高的位率请求块体。作为结果,带宽保持空闲和未使用,直到装置请求更高的位率。这意味着装置中的至少一些可以以更高的位率接收块体并因此具有更好的质量,但这没有出现。假定所有的带宽被利用并且所有的装置根据请求接收块体。现在假定一个装置尝试以更高的位率接收块体,原因是它不知道所有的带宽均被利用。它以更高的位率请求块体。服务器尝试传送请求的块体。现在,在最后英里信道上存在阻塞,并且数据将被舍弃。舍弃的数据可以是服务于装置中的任一个的数据。在统计上,多于一个的装置受到影响。这可包含启动高位率请求的装置。受影响的装置将不接收它们请求的块体。所有这些装置将在TCP层中经受损失,并因此会发送重新发送的请求。由于数据请求在HTTP层中被执行并且是以几秒的持续期对于碎片进行的,因此,对于碎片的持续期,不能通过TCP或HTTP层机制校正这种情况。事实上,许多的数据将被舍弃。

发明内容
根据本发明的各种实施例,提供一种用于控制流媒体流的方法,该方法可包括对于多个流媒体流分配或接收分配的位率,各流媒体流可包含多个块体并要求在受到带宽限制的最后英里信道上流动;从在用户装置上被托管的客户机接收多个块体请求,各块体请求指示用于流动属于流媒体流的媒体块体的请求位率;如果请求的位率不符合分配的位率,改变至少一个块体请求以符合分配的位率,以提供至少一个新的块体请求;和向要求向用户装置流动流媒体流的流媒体机发送至少一个新的块体请求。该方法可包括关于请求的位率通知与新的块体请求相关的客户机。该方法可包括从与新的块体请求相关的客户机隐藏请求的位率的变化。流媒体机可以不知道最后英里信道的阶段。该方法可包括从客户机接收确认消息,该确认消息指示媒体块体的接收;和延迟确认消息的传送,其中,延迟响应于与客户机相关的分配的位率。该方法可包括从客户机接收确认消息,确认消息指示媒体块体的接收;确定是否延迟确认消息的传送;和基于确定延迟确认请求的传送,其中,延迟响应于分配的位率。该方法可包括通过与最后英里信道耦合的系统向流媒体流中的每一个分配分配的位率。该方法可包括通过客户机之间的协作向流媒体流分配分配的位率。该方法可包括通过利用系统上的客户机代理向流媒体流分配分配的位率,客户机代理代理客户机。该方法可包括基于流媒体流的质量水平分配分配的位率。该方法可包括不改变与第一类型的流媒体流相关的文件请求;如果块体请求与第二类型的流媒体流相关,并且,如果请求的位率不符合分配的位率,则改变块体请求以符合分配的位率来提供新的块体请求;和将不变的块体请求和新的块体请求发送到要求将流媒体流流动到用户装置的至少一个流媒体机。第一类型的流媒体流是进行性下载。第二类型的流媒体流是自适应位率流。该方法可包括通过多个客户机之间的协作向流媒体流分配分配的位率。该方法可包括通过利用在与最后英里信道耦合的系统上的客户机代理向流媒体流分配分配的位率。该方法可包括对于不同类型的流媒体流执行不同的位率控制策略。最后英里信道是有线信道。最后英里信道是无线信道。分配的位率的分配的位率是流媒体流的最大可允许位率的预定部分。分配的位率的分配的位率是流媒体流的最大可允许位率的百分比。该方法可包括向流媒体流分配分配的位率。该方法可包括接收对于流媒体流的分配的位率。根据本发明的各种实施例,提供一种系统,该系统可包括被配置为从在用户装置上被托管的客户机接收多个块体请求的输入接口,各块体请求指示用于流动属于流媒体流的媒体块体的请求的位率;可被配置为实现以下的操作的处理模块对于多个流媒体流分配或接收分配的位率,各流媒体流可包含多个块体并要求在受到带宽限制的最后英里信道上流动;如果请求的位率不符合分配的位率,改变至少一个块体请求以符合分配的位率,以提供至少一个新的块体请求;和被配置为向要求向用户装置流动流媒体流的流媒体机发送至少一个新的块体请求的输出接口。
处理模块可被配置为关于请求的位率通知与新的块体请求相关的客户机。处理模块可被配置为从与新的块体请求相关的客户机隐藏请求的位率的变化。流媒体机不知道最后英里信道的阶段。输入接口可被配置为从客户机接收确认消息,该确认消息指示媒体块体的接收;以及,其中,系统的输出接口可被配置为延迟确认消息的传送,其中,延迟响应于与客户机相关的分配的位率。输入接口可被配置为从客户机接收确认消息,确认消息指示媒体块体的接收;其中,处理模块可被配置为确定是否延迟确认消息的传送;以及,系统的输出接口可被配置为基于确定延迟确认请求的传送,其中,延迟响应于分配的位率。处理模块可被配置为通过与最后英里信道耦合的系统向流媒体流中的每一个分配分配的位率。处理模块可被配置为通过客户机之间的协作向流媒体流分配分配的位率。处理模块可被配置为通过利用系统上的客户机代理向流媒体流分配分配的位率,客户机代理代理客户机。处理模块可被配置为基于流媒体流的质量水平分配分配的位率。处理模块可被配置为不改变与第一类型的流媒体流相关的文件请求;如果块体请求与第二类型的流媒体流相关,并且,如果请求的位率不符合分配的位率,则改变块体请求以符合分配的位率来提供新的块体请求;以及,其中,系统的输出接口可被配置为将不变的块体请求和新的块体请求发送到可被要求将流媒体流流动到用户装置的至少一个流媒体机。第一类型的流媒体流可以是进行性下载。第二类型的流媒体流可以是自适应位率流。处理模块可被配置为通过多个客户机之间的协作向流媒体流分配分配的位率。处理模块可被配置为通过利用与最后英里信道耦合的系统上的客户机代理向流媒体流分配分配的位率。处理模块可被配置为对于不同类型的流媒体流执行不同的位率控制策略。最后英里信道可以是有线信道。最后英里信道可以是无线信道分配的位率可以是流媒体流的最大可允许位率的预定部分。分配的位率可以是流媒体流的最大可允许位率的百分比。处理模块可被配置为向流媒体流分配分配的位率。处理模块可被配置为接收对于流媒体流的分配的位率。根据本发明的实施例,可以提供一种计算机程序产品,该计算机程序产品可包括可存储用于执行以下的过程的指令的非暂时性计算机可读介质对于多个流媒体流分配或接收分配的位率,各流媒体流可包含多个块体并要求在受到带宽限制的最后英里信道上流动;从在用户装置上被托管的客户机接收多个块体请求,各块体请求指示用于流动属于流媒体流的媒体块体的请求位率;如果请求的位率不符合分配的位率,改变至少一个块体请求以符合分配的位率,以提供至少一个新的块体请求;和向可被要求向用户装置流动流媒体流的流媒体机发送至少一个新的块体请求。
非暂时性计算机可读介质可存储用于关于请求的位率通知可与新的块体请求相关的客户机的指令。非暂时性计算机可读介质可存储用于从可与新的块体请求相关的客户机隐藏请求的位率的变化的指令。流媒体机可以不知道最后英里信道的阶段。非暂时性计算机可读介质可存储用于完成以下的操作的指令从客户机接收确认消息,该确认消息可指示媒体块体的接收;和延迟确认消息的传送,其中,延迟可响应于与客户机相关的分配的位率。非暂时性计算机可读介质可存储用于完成以下的操作的指令从客户机接收确认消息,确认消息可指示媒体块体的接收;确定是否延迟确认消息的传送;和基于确定延迟确认请求的传送,其中,延迟可响应于分配的位率。非暂时性计算机可读介质可存储用于通过可与最后英里信道耦合的系统向流媒体流中的每一个分配分配的位率的指令。非暂时性计算机可读介质可存储用于通过客户机之间的协作向流媒体流分配分配的位率的指令。非暂时性计算机可读介质可存储用于通过利用系统上的客户机代理向流媒体流分配分配的位率的指令,客户机代理代理客户机。非暂时性计算机可读介质可存储用于基于流媒体流的质量水平分配分配的位率的指令。非暂时性计算机可读介质可存储用于完成以下的操作的指令不改变与第一类型的流媒体流相关的文件请求;如果块体请求与第二类型的流媒体流相关,并且,如果请求的位率不符合分配的位率,则改变块体请求以符合分配的位率来提供新的块体请求;和将不变的块体请求和新的块体请求发送到可被要求将流媒体流流动到用户装置的至少一个流媒体机。第一类型的流媒体流可以是进行性下载。第二类型的流媒体流可以是自适应位率流。非暂时性计算机可读介质可存储用于通过多个客户机之间的协作向流媒体流分配分配的位率的指令。非暂时性计算机可读介质可存储用于通过利用可与最后英里信道耦合的系统上的客户机代理向流媒体流分配分配的位率的指令。非暂时性计算机可读介质可存储用于对于不同类型的流媒体流执行不同的位率控制策略的指令。最后英里信道可以是有线信道。最后英里信道可以是无线信道。非暂时性计算机可读介质可存储用于确定分配的位率的分配的位率为流媒体流的最大可允许位率的预定部分的指令。分配的位率的分配的位率为流媒体流的最大可允许位率的百分比。非暂时性计算机可读介质可存储用于向流媒体流分配分配的位率的指令。非暂时性计算机可读介质可存储用于接收对于流媒体流的分配的位率的指令。
根据本发明的实施例,可以提供一种方法,该方法可包括从与最后英里信道耦合的用户装置的客户机接收块体请求;检查在最后英里信道上要求的所有通信量,检查可包含评价满足块体请求所需要的位率;基于检查分配带宽;响应于带宽的分配产生新的块体请求;和向流媒体服务器传送新的块体请求。分配可进一步响应于策略考虑。分配可进一步响应于视频质量、用户优先权、操作员优先权、服务优先权和帐单考虑中的至少一个。方法可包括协作地进行位率决定。根据本发明的实施例,提供一种计算机程序产品,该计算机程序产品可包括存储用于完成以下的操作的非暂时性计算机可读介质从与最后英里信道耦合的用户装置的客户机接收块体请求;检查在最后英里信道上要求的所有通信量,检查可包含评价满足块体请求所需要的位率;基于检查分配带宽;响应于带宽的分配产生新的块体请求;和向流媒体服务器传送新的块体请求。非暂时性计算机可读介质可存储用于分配可进一步响应于策略考虑的位率的指令。非暂时性计算机可读介质可存储用于分配可进一步响应于视频质量、用户优先权、操作员优先权、服务优先权和帐单考虑中的至少一个的位率的指令。非暂时性计算机可读介质可存储用于协作地进行位率决定的指令。根据本发明的实施例,提供一种用于控制流媒体流的方法,该方法可包括对于流媒体流以及对于与流媒体流不同的附加的流分配或接收分配的位率,各流媒体流可包含多个块体并且各媒体块体包含多个媒体分组,其中,附加的流和流媒体流被要求在受到带宽限制的最后英里信道上流动;接收在最后英里信道上被传送或者要求在最后英里信道上被传送的分组;确定各分组是否可以是流媒体分组、块体请求、确认消息或另一分组;如果分组是块体请求,那么,确定是否改变由块体请求请求的位率;选择性地改变由块体请求请求的位率以提供新的块体请求,其中,选择性地改变响应于被分配给与块体请求相关的流媒体流相关的分配的位率;和向被要求流动与块体请求相关的流媒体流的流媒体机传送新的块体请求;如果分组是流媒体分组,则向客户机传送流媒体分组并更新最后英里信道的状态;以及,如果分组是指示客户机对于媒体分组的接收的确认消息,那么,确定向流媒体机传送确认消息的定时,确定是对于分配给可包含媒体分组的流媒体流的位率;和基于传送的定时的确定向流媒体机传送确认消息。


在说明书的结束部分中,特别指出被视为本发明的主题并明确要求它们的权利。但是,通过结合附图参照以下的详细的描述,关于组织和操作的方法的本发明与它们的目标、特征和优点一起可以最好地被理解,其中,图1示出根据本发明的实施例的系统及其环境;图2示出根据本发明的实施例的系统;图3示出根据本发明的实施例的方法;图4示出根据本发明的实施例的系统;
图5示出根据本发明的实施例的方法;图6示出根据本发明的实施例的方法;可以理解,为了解释的简化和明晰化,图中所示的要素未必按比例绘制。例如,为了明晰化,要素中的一些的尺寸可相对于其它的要素被夸大。并且,在适当考虑的情况下,附图标记可在附图中重复以表示相应或类似的要素。
具体实施例方式在以下的详细的描述中,为了提供本发明的彻底的理解,阐述大量的特定的细节。但是,本领域技术人员可以理解,可以在没有这些特定的细节的情况下实施本发明。在其它的情况下,公知的方法、过程和部件没有被详细描述,以不混淆本发明。术语“块体请求”是用于接收流媒体流的媒体块体的请求。流媒体流是被配置为通过流媒体机流动的媒体流。块体请求可包含块体标识符和指示请求的块体的希望的位率的位速率(位率)请求。请求的位率可以以明确的方式(例如一请求的位率的值可包含于块体请求中)或者隐含地(例如一块体标识符可指向媒体块体的某版本一已知的位率的)被定义。块体请求可包含特定的段和特定的位率特有的URL。术语“媒体源”可意味着向系统或客户机提供媒体块体的实体。媒体源可从另一实体接收媒体块体,可自身产生媒体块体,可产生通过它们的位率相互不同的各种版本的媒体块体,可从另一实体等接收各种版本的媒体块体。媒体源可以是媒体服务器。能够流动一个或更多个流媒体流的媒体源被称为流媒体机。术语“最后英里”可具有其常规的意思。例如,它可具有由www. wikipedia. org定义的意思“最后英里”或“最后公里”是传输从通信提供商到顾客的连接性的最后英里。因此,该短语常被电信和电缆电视业使用。该行程的实际距离可大大多于一英里,特别是在农村地区。由于“展开”线和电缆是相当大的物理任务,因此,它一般被视为昂贵的挑战。由于网络到用户的最后的英里对于发送数据(诸如上载)也是从用户到世界的第一英里,因此,有时使用术语“第一英里”。根据本发明的实施例,提供系统。它被连接于因特网或任何广域网络(WAN)和最后英里信道之间。虽然它适用于其它类型的基础结构,但是为了便于解释,以下的描述提到最后英里信道。最后英里信道可包含链接、通信线或任意类型的带宽限制资源。根据本发明的各种实施例,位率的分配可响应于媒体流动优先权、客户机优先权、视频质量、服务优先权、被分配给不同类型的流的优先权、响应于流的定时的策略和传送类型(有线、无线)等中的至少一个参数。例如,较高优先权的客户机可被分配较大的位率。根据本发明的实施例,通过与最后英里信道耦合的系统执行位率分配。注意,可通过多个系统执行位率分配一以分布式、中央式或者甚至分层的方式。分层系统可包含被配置为在第一带宽限制介质上分配位率的顶级系统,而最低级系统可被配置为在可从第一带宽限制介质接收内容(直接或间接)的多个最后英里信道上确定位率分配。又一例子一分层系统可包含被配置为在最后英里信道上分配位率的顶级系统,而最低级系统可被配置为在从最后英里信道馈送的信道上确定位率分配一诸如顾客提出网关等。图1示出连接于WAN (诸如因特网)、最后英里信道12和托管客户机14的用户装置之间的系统11。
根据本发明的各种实施例,用户装置托管客户机。客户机以及另外或替代性的系统可参与带宽限制资源的位率控制。注意,如例如本专利申请的背景部分解释的那样,最终用户装置和流媒体机可能不知道带宽限制资源的状态,并因此可以以次最佳方式请求或分配位率。系统11可在带宽限制资源之前驻留,或者另外可能能够参与带宽限制资源的位率控制。系统可以是路由器、集合器、开关、控制器或它们的组合。系统可包含硬件、软件固件或它们的组合。根据本发明的实施例,通过客户机执行位率控制的至少一部分(例如,至少大多数),并且,可在系统上代理这些客户机。因此,客户机可协作以施加位率控制,特别是可施加主要基于不同的客户机之间的信息交换的分布式媒体访问控制方案。客户机可向其它的客户机发送块体请求,并且一旦得到其它客户机批准一系统可将块体请求转送到流媒体机。客户机可在考虑客户机优先权、请求优先权、服务问题的质量、得到准许或谢绝的事先的块体请求以及其它的因素的情况下协作。客户机可通过存储来自其它的客户机的块体请求(及其自身的块体请求)至少获得带宽限制资源的状态的部分观察。系统还可提供诸如但不限于可用的位率和最大允许位率等的位率信息。客户机可批准、修改或拒绝块体请求。修改可涉及请求的位率并且不涉及请求的块体的身份。一旦完成位率决定(位率分配)一请求客户机就可被通知并且根据位率决定一如果被批准,将其自身的请求发送到媒体服务器或者使得系统向媒体服务器发送这种块体请求。因此,块体可协作地进行决定,并且通知允许发送块体请求的块体一对于各客户机分配的允许的位率。作为响应于,客户机可产生对于客户机已知并具有作为协作的结果分配的位率的块体的块体请求。根据本发明的另一实施例,系统进行位率决定并且通知客户机向客户机分配哪些位率。客户机一旦接收分配的位率就可因此定制其块体请求。根据本发明的另一实施例,一些客户机可进行位率决定,而不允许其它的客户机进行这种决定。可基于诸如客户机优先权、对于客户机保证的服务的质量等的各种准则确定哪些客户机可进行这种决定的选择。选择可以是固定的或者可随时间改变。根据本发明的另一实施例,在不向客户机通知这些决定特别是不关于分配给它们的请求的位率通知客户机的情况下,通过系统进行位率决定。例如,客户机可向系统发送块体请求以获得块体。这些块体请求被系统接收。系统不仅仅“原样”将这些块体请求转送到流媒体机,而是可应用位率管理控制并且向流媒体机发送更新的块体请求。系统可分析位率限制资源上的通信量,并且基于位率限制资源的请求和状态,产生新的块体请求和不变的一个或更多个块体请求等。可通过修改或更新块体请求或通过产生具有新的或修改的内容的新的块体请求产生新的块体请求。
系统然后向流媒体机发送块体请求。因此一新块体请求作为原块体请求用于视觉内容(流的段)但可请求与处于原请求中的那些不同的位率版本。这些新的块体请求被发送到媒体源,该媒体源又向客户机提供需要的位率的媒体块体一通过系统或者绕过系统。如果绕过系统,那么系统应知道带宽限制资源上的传送一它可监视通信量,并且,另外,或者,替代性地,可关于传送的通信量从流媒体机接收信息。在上述的实施例中的任一个中,在客户机之间以及另外或替代性地在服务或流之间的位率分配可响应于诸如(i)视频质量、(ii)用户优先权、(iii)操作员优先权、(iv)服务(流)优先权和(V)帐单考虑的参数。图2示出根据本发明的实施例的系统40。系统40包括a.包含输入接口和输出接口的输入输出(I/O)模块42。I/O模块42可被配置为处理进入和外出的包含上游的块体请求和下游的块体的通信量。b.带宽计算器和决定进行器(决定引擎)。模块43可被配置为估计最后英里信道上的可用的带宽,并关于可对于各客户机分配的位率的量进行决定。决定引擎可以是处理模块,或者可由处理模块托管。处理模块可包含硬件部件。c.包含可相对于客户机和流媒体机产生和分析相关的消息的分析器的数据模块44。d.在系统40的模块之间分配资源并控制定时和类似的事项的控制单元41。应当注意,其它的实现也是可能的,包括包含单独地代表各客户机的模块、存储器单元和许多其它的可能的实现。决定进行可基于包含以下提到的一些的许多不同的方法。系统40驻留于最后英里信道12的网络侧,并且对于来自最后英里信道12的所有要求具有可见性。因此,来自流媒体机的对于位率的组合的请求(包含块体请求和数据传送请求)可被计划,使得媒体块体和其它流的传送不超过可用的位率。这解决位率浪费的问题。另外,组合的请求可被计划以尽可能多地填充最后英里信道。这解决未使用位率的问题。可以在诸如移动提供器、HFC网络、DSL网络和任何其它类型的网络的任何宽带提供器的结构内实现系统。在所有的情况下,可在具有限制最后英里信道的位率的全部可见性的位置上从客户机的上游实现系统40。另外,或者,作为替代方案,可以以分层的方式实现系统。例如,系统可以在住宅的网关(或DSLAM)中被实现以管理家庭内的不同的客户机,并且也可在中央办公室中被实现以在不同的家庭之间管理位率。应当提到,可通过管理所有的客户机请求的一个单个过程或通过在自身之中进行协商的分别代理一个客户机的大量的过程实现协作决定。图3示出根据本发明的实施例的方法50。方法50从客户机接收块体请求的阶段51开始。这些块体请求规定媒体流的特定的部分以及特定的位率。阶段51之后是检查在最后英里信道上要求的所有通信量的阶段52。该检查可包含评价满足由客户机进行的请求所需要的位率。阶段52之后是在不同的客户机之间根据检查结果和任选的策略考虑分配位率的阶段53。考虑所有需要的限制(位率、成本等),分配应尽可能地高效。位率的分配包含指示媒体流的哪个位率版本应被提供给产生批准的块体请求的各客户机。阶段53之后是产生新的块体请求的阶段54。可在客户机接收关于分配给它们的位率的通知之后由客户机或由系统自身执行实际的产生。应当注意,零个或更多个块体请求可保持不变。阶段54之后是向一个或更多个流媒体机传送新的块体请求和零个或更多个不变的块体请求的阶段55。阶段55之后可以是将请求的块体流动到用户装置。可通过向用户装置发送流媒体块体的阶段56反映这一点。用户装置可以是移动装置、机顶盒、计算机和家庭网关等。根据本发明的实施例,提供系统60。在图4中示出该系统的实施例。系统接收诸如属于媒体块体(媒体流)的媒体分组和控制分组的信息分组。控制分组中的一些包含块体请求。为了解释的简化,以下的描述参照媒体信息分组和块体请求。系统60包含输入接口 61、分析器62、流状态数据库64、位率请求数据库65、分配数据库69、决定引擎66和输出接口 68。分析器62分析由输入接口 60接收的进入的分组。分组被分类为控制分组(诸如块体请求)或数据分组(诸如媒体分组)。媒体分组或代表媒体分组的信息被用于更新流状态数据库64。诸如块体请求的控制分组或代表控制分组的信息被用于更新位率请求数据库65。数据库64和65均提供最后英里信道的位率利用和块体请求一完成的块体请求和被拒绝或以其他方式没有完成的块体请求一的请求的位率的观察。分配数据库69存储位率的分配。决定引擎66可评价所有的数据库,并且应用位率控制策略。它可例如产生包含比由客户机请求的位率更少或更多的新的块体请求等。根据本发明的另一实施例,决定引擎66重新分配位率,并且另一实体基于修改的位率分配修改块体请求。决定引擎可以是处理模块或者被处理模块托管。根据本发明的实施例,流状态数据库64被用于跟踪最后英里信道中的所有的流、跟踪利用、识别诸如ABR流的连续的段的相关的流、识别保证决定引擎的通知的媒体流的状态的明显的变化。ABR流的连续的段可以是由同一客户机发送的不同的块体请求的主题。客户机可甚至在客户机接收一个或更多个事先请求的媒体块体之前发送与一个或更多个媒体块体有关的一个或更多个块体请求。如果这些不同的块体请求均被识别为与同一媒体流相关,那么位率分配可在比较请求的位率与分配的位率时考虑这一点。当履行诸如多于利用的位率的预定的变化、多于预定量的新请求的位率等的预定条件时,决定引擎66可被激活。作为替代方案,每个块体请求可被发送到决定引擎66。决定引擎66可分配流的位率,特别是对于媒体块体。根据本发明的实施例,决定引擎66可在可用位率(ABR)流与进行式下载(PD)流之间区分。它可将其自身的集合位率分配给这些类型的流媒体流中的每一个,并且可对于两者应用相同的位率控制策略或者对于每一个应用不同的位率控制策略。在各种流技术中,客户机即使在开始观察这些媒体块体之前也具有媒体块体。这样,当暂时防止客户机接收媒体时或者当由于各种原因另外限制对于客户机的流动时,可防止媒体观察问题。在客户机决定不观察这些媒体块体的情况下,它们在最后英里信道上的传送导致带宽的浪费。为了防止这种浪费,决定控制器可延迟从流媒体机的媒体分组的传送。可通过延迟从客户机(向块体流动器)发送的指示这些分组的接收的确认消息完成这一点。可例如在ABR块体上应用该策略。根据本发明的各种实施例,决定引擎66可限制下载到客户机的媒体块体的量,使得,如果客户机在观察下载到其上面的所有的媒体块体之前结束观察媒体流一将浪费很少的媒体块体。限制可包含延迟对于流媒体机的确认消息的传送、延迟块体请求的传送等。图5示出根据本发明的实施例的用于执行位率分配的方法70。方法70从通过输入接口接收分组的阶段71开始。阶段71之后是阶段72。阶段72包含通过分析器分析分组并确定分组是控制分组还是信息分组。信息分组可以是数据分组或媒体分组。如果分组是信息分组(INFO PACKET),那么阶段72之后是阶段73和74。如果分组是控制分组(CNTR),那么阶段72之后是阶段80。阶段73包含将媒体分组流动到用户装置(如果信息分组是媒体分组)并且将数据分组传送到用户(如果信息分组是数据分组)。注意,根据本发明的一些实施例,方法700仅寻址上游通信量,并且不参与下游的数据路径,使得阶段73可以不包含于方法700中。阶段74包含更新流状态数据库。因此,流状态数据库可被更新以反映实际的位率利用。阶段74之后可以是检查是否应关于当前的流状态更新决定引擎的阶段75。如果答案是肯定的(UPDATE),那么阶段74之后是阶段76,否则(NO),阶段74可跳到空闲状态79。阶段75的检查可包含为了在太多更新(会消费太多的计算资源或通信资源)和少于希望的更新(会导致位率的次最佳分配)之间提供折衷向该更新应用预定的条件。例如,对于每个预定的周期、对请求或利用的位率的每个预定的变化量、当添加新用户时、当添加新的流时、当用户离开时或者当流终止时,可更新决定引擎。阶段76包含更新决定引擎。阶段76之后是通过决定引擎响应于(至少)更新确定如何响应于更新并且响应于更新的阶段77。响应可包含更新位率分配。阶段80包含确定控制分组是块体请求(CR)、确认消息(Ack消息)还是另一控制分组(其它)。如果控制分组是确认消息,那么阶段80之后是阶段81。如果控制分组是块体请求,那么阶段80之后是阶段90。否则(另一控制分组),阶段80之后是响应其它的控制分组的阶段100。阶段81包含为了符合分配给流的位率检查是否延迟对于流媒体机的确认消息的传送。如果分配的位率在确认消息的连续传送之间批准一定的周期(或者一定范围的周期),那么会需要延迟。如果答案是肯定的(DELAY),那么阶段81之后是延迟确认消息的传送直到到达与分配的位率对应的时间的阶段83。确认消息的连续传送之间的周期可反映分配的位率。如果例如各确认消息之后是X位的流并且位率的分配是每秒Y位,那么延迟可基本上等于X/Y秒。如果答案是否定的(NO DELAY),那么阶段81之后是阶段84。阶段83之后是向数据源传送确认消息的阶段84。可通过可访问决定引擎或者分配数据库并且确定与确认消息有关的流的分配的位率的协议操作器(诸如HTTP操作器)执行阶段81和83。阶段90包含更新请求状态数据库并更新决定引擎。阶段90之后是通过决定引擎响应(至少)块体请求和位率的分配决定是保持块体请求不变还是改变它的阶段91。如果确定更新块体请求(NEW),那么阶段91之后是阶段92,否则(Unchanged),它之后是向流媒体机传送块体请求的阶段94。确定可包含比较由块体请求请求的位率和分配的位率。如果例如分配的位率匹配请求的位率,那么块体请求可保持不变。如果在分配的位率与请求的位率(由块体请求请求)之间存在不匹配,那么决定引擎可确定对于分配的位率采用请求的位率。注意,决定引擎可忽略小的(不明显的)变化。阶段92包含产生包含符合分配给流的位率的位率请求的新的块体请求(例如,通过更新块体请求)。阶段92之后是向流媒体机传送新的块体请求的阶段93。提供位率控制策略的非限制性的例子如下用于传送视频块体(或所有类型)的最大允许集合位率被定义一 TBK。高优先权用户的最大允许位率(PUbk)可被定义。用于传送BD媒体块体和ABR媒体块体的最大允许集合位率被定义一 I3Dbk和ABRbk。各类型的媒体的最大允许集合位率可以是TABRmax的一部分。例如,ABRbe可等于的TABRmax的80%。ABR清单文件包含用于流的所有可能的位率的描述。TABRmax是可用的流的可能的最大值的总和。在分配用于媒体块体的位率之后,数据传送的剩余位率(Dbk)可由下式计算Dbe = (Tbe-PUbe-PDbe-ABRbe) * 因子因子被用于保持一些低于阻塞的阈值。虽然不同的数据流可被分配不同的位率,但是,可向不同的数据流分配相同的位率。在后一种情况下,各数据流可被分配Fbk = (Dbk/数据流的数量)。根据本发明的实施例,当出现以下的事件中的至少一个时,可重新计算位率分配参数(位率,因子):a.新流b.流关闭c.接收条件的改变d.事件的预期(上交、分发等)下表示出位率控制方案的例子。表I和表2示出系统的初始状态和不同的用户的位率分配。表I
权利要求
1.一种用于控制流媒体流的方法,该方法包括 对于多个流媒体流分配或接收分配的位率,各流媒体流包含多个块体并要求在受到带宽限制的最后英里信道上流动; 从在用户装置上被托管的客户机接收多个块体请求,各块体请求指示用于流动属于流媒体流的媒体块体的请求位率; 如果请求的位率不符合分配的位率,改变至少一个块体请求以符合分配的位率,以提供至少一个新的块体请求;和 向要求向用户装置流动流媒体流的流媒体机发送至少一个新的块体请求。
2.根据权利要求1的方法,包括关于请求的位率通知与新的块体请求相关的客户机。
3.根据权利要求1的方法,包括从与新的块体请求相关的客户机隐藏请求的位率的变化。
4.根据权利要求1的方法,其中,流媒体机不知道最后英里信道的阶段。
5.根据权利要求1的方法,包括 从客户机接收确认消息,该确认消息指示媒体块体的接收;和 延迟确认消息的传送,其中,延迟响应于与客户机相关的分配的位率。
6.根据权利要求1的方法,包括 从客户机接收确认消息,该确认消息指示媒体块体的接收; 确定是否延迟确认消息的传送;和 基于确定延迟确认请求的传送,其中,延迟响应于分配的位率。
7.根据权利要求1的方法,包括通过与最后英里信道耦合的系统向流媒体流中的每一个分配分配的位率。
8.根据权利要求1的方法,包括通过客户机之间的协作向流媒体流分配分配的位率。
9.根据权利要求1的方法,包括通过利用在与最后英里信道耦合的系统上被托管的客户机代理向流媒体流分配分配的位率。
10.根据权利要求1的方法,包括基于流媒体流的质量水平分配分配的位率。
11.根据权利要求1的方法,包括 不改变与第一类型的流媒体流相关的文件请求; 如果块体请求与第二类型的流媒体流相关,并且,如果请求的位率不符合分配的位率,则改变块体请求以符合分配的位率来提供新的块体请求;和 将不变的块体请求和新的块体请求发送到要求将流媒体流流动到用户装置的至少一个流媒体机。
12.根据权利要求11的方法,其中,第一类型的流媒体流是进行性下载。
13.根据权利要求11的方法,其中,第二类型的流媒体流是自适应位率流。
14.根据权利要求1的方法,包括通过多个客户机之间的协作向流媒体流分配分配的位率。
15.根据权利要求1的方法,包括通过利用在与最后英里信道耦合的系统上的客户机代理向流媒体流分配分配的位率。
16.根据权利要求1的方法,包括对于不同类型的流媒体流执行不同的位率控制策略。
17.根据权利要求1的方法,其中,最后英里信道是有线信道。
18.根据权利要求1的方法,其中,最后英里信道是无线信道。
19.根据权利要求1的方法,其中,分配的位率的分配的位率是流媒体流的最大可允许位率的预定部分。
20.根据权利要求1的方法,其中,分配的位率的分配的位率是流媒体流的最大可允许位率的80%。
21.根据权利要求1的方法,包括向流媒体流分配分配的位率。
22.根据权利要求1的方法,包括接收对于流媒体流的分配的位率。
23.根据权利要求1的方法,包括通过耦合于流媒体机与最后英里信道之间的系统执行分配。
24.—种系统,包括 被配置为从在用户装置上被托管的客户机接收多个块体请求的输入接口,各块体请求指示用于流动属于流媒体流的媒体块体的请求的位率; 被配置为实现以下的操作的处理模块 对于多个流媒体流分配或接收分配的位率,各流媒体流包含多个块体并要求在受到带宽限制的最后英里信道上流动; 如果请求的位率不符合分配的位率,改变至少一个块体请求以符合分配的位率,以提供至少一个新的块体请求;和 被配置为向要求向用户装置流动流媒体流的流媒体机发送至少一个新的块体请求的输出接口。
25.根据权利要求24的系统,其中,处理模块被配置为关于请求的位率通知与新的块体请求相关的客户机。
26.根据权利要求24的系统,其中,处理模块被配置为从与新的块体请求相关的客户机隐藏请求的位率的变化。
27.根据权利要求24的系统,其中,流媒体机不知道最后英里信道的阶段。
28.根据权利要求24的系统,其中,输入接口被配置为从客户机接收确认消息,该确 认消息指示媒体块体的接收;以及其中,系统的输出接口被配置为延迟确认消息的传送,其中,延迟响应于与客户机相关的分配的位率。
29.根据权利要求24的系统,其中,输入接口被配置为从客户机接收确认消息,确认消息指示媒体块体的接收;其中,处理模块被配置为确定是否延迟确认消息的传送;以及其中,系统的输出接口被配置为基于确定延迟确认请求的传送,其中,延迟响应于分配的位率。
30.根据权利要求24的系统,其中,处理模块被配置为通过与最后英里信道耦合的系统向流媒体流中的每一个分配分配的位率。
31.根据权利要求24的系统,其中,处理模块被配置为通过客户机之间的协作向流媒体流分配分配的位率。
32.根据权利要求24的系统,其中,处理模块被配置为通过利用被系统托管的客户机代理向流媒体流分配分配的位率。
33.根据权利要求24的系统,其中,处理模块被配置为基于流媒体流的质量水平分配分配的位率。
34.根据权利要求24的系统,其中,处理模块被配置为不改变与第一类型的流媒体流相关的文件请求;如果块体请求与第二类型的流媒体流相关,并且,如果请求的位率不符合分配的位率,则改变块体请求以符合分配的位率来提供新的块体请求;以及其中,系统的输出接口被配置为将不变的块体请求和新的块体请求发送到要求将流媒体流流动到用户装置的至少一个流媒体机。
35.根据权利要求34的系统,其中,第一类型的流媒体流是进行性下载。
36.根据权利要求34的系统,其中,第二类型的流媒体流是自适应位率流。
37.根据权利要求24的系统,其中,处理模块被配置为通过客户机之间的协作向流媒体流分配分配的位率。
38.根据权利要求24的系统,其中,处理模块被配置为通过利用在与最后英里信道耦合的系统上的客户机代理向流媒体流分配分配的位率。
39.根据权利要求24的系统,其中,处理模块被配置为对于不同类型的流媒体流执行不同的位率控制策略。
40.根据权利要求24的系统,其中,最后英里信道是有线信道。
41.根据权利要求24的系统,其中,最后英里信道是无线信道
42.根据权利要求24的系统,其中,分配的位率是流媒体流的最大可允许位率的预定部分。
43.根据权利要求24的系统,其中,分配的位率是流媒体流的最大可允许位率的80%。
44.根据权利要求24的系统,其中,处理模块被配置为向流媒体流分配分配的位率。
45.根据权利要求24的系统,其中,处理模块被配置为接收对于流媒体流的分配的位率。
46.根据权利要求24的系统,其中,系统耦合于流媒体机与最后英里信道之间。
47.一种计算机程序产品,包括存储用于执行以下的过程的指令的非暂时性计算机可读介质 对于多个流媒体流分配或接收分配的位率,各流媒体流包含多个块体并要求在受到带宽限制的最后英里信道上流动; 从在用户装置上被托管的客户机接收多个块体请求,各块体请求指示用于流动属于流媒体流的媒体块体的请求位率; 如果请求的位率不符合分配的位率,改变至少一个块体请求以符合分配的位率,以提供至少一个新的块体请求;和 向要求向用户装置流动流媒体流的流媒体机发送至少一个新的块体请求。
48.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于关于请求的位率通知与新的块体请求相关的客户机的指令。
49.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于从与新的块体请求相关的客户机隐藏请求的位率的变化的指令。
50.根据权利要求47的计算机程序产品,其中,流媒体机不知道最后英里信道的阶段。
51.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于完成以下的操作的指令从客户机接收确认消息,该确认消息指示媒体块体的接收;和延迟确认消息的传送,其中,延迟响应于与客户机相关的分配的位率。
52.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于完成以下的操作的指令从客户机接收确认消息,确认消息指示媒体块体的接收;确定是否延迟确认消息的传送;和基于确定延迟确认请求的传送,其中,延迟响应于分配的位率。
53.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于通过与最后英里信道耦合的系统向流媒体流中的每一个分配分配的位率的指令。
54.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于通过客户机之间的协作向流媒体流分配分配的位率的指令。
55.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于通过利用由与最后英里信道耦合的系统托管的客户机代理向流媒体流分配分配的位率的指令。
56.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于基于流媒体流的质量水平分配分配的位率的指令。
57.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于完成以下的操作的指令 如果文件请求与第一类型的流媒体流相关,则保持文件请求不变; 如果块体请求与第二类型的流媒体流相关,并且,如果请求的位率不符合分配的位率,则改变块体请求以符合分配的位率来提供新的块体请求;和 将不变的块体请求和新的块体请求发送到要求将流媒体流流动到用户装置的至少一个流媒体机。
58.根据权利要求57的计算机程序产品,其中,第一类型的流媒体流是进行性下载。
59.根据权利要求57的计算机程序产品,其中,第二类型的流媒体流是自适应位率流。
60.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于通过客户机之间的协作向流媒体流分配分配的位率的指令。
61.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于通过利用在与最后英里信道耦合的系统上的客户机代理向流媒体流分配分配的位率的指令。
62.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于对于不同类型的流媒体流执行不同的位率控制策略的指令。
63.根据权利要求47的计算机程序产品,其中,最后英里信道是有线信道。
64.根据权利要求47的计算机程序产品,其中,最后英里信道是无线信道。
65.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于确定分配的位率的分配的位率为流媒体流的最大可允许位率的预定部分的指令。
66.根据权利要求47的计算机程序产品,其中,分配的位率的分配的位率是流媒体流的最大可允许位率的80%。
67.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于向流媒体流分配分配的位率的指令。
68.根据权利要求47的计算机程序产品,其中,非暂时性计算机可读介质存储用于接收对于流媒体流的分配的位率的指令。
69.—种方法,包括 从与最后英里信道耦合的用户装置的客户机接收块体请求;检查在最后英里信道上要求的所有通信量,检查包含 评价满足块体请求所需要的位率; 基于检查分配带宽; 响应带宽的分配,产生新的块体请求;和 向流媒体服务器传送新的块体请求。
70.根据权利要求69的方法,其中,分配进一步响应策略考虑。
71.根据权利要求69的方法,其中,分配进一步响应视频质量、用户优先权、操作员优先权、服务优先权和帐单考虑中的至少一个。
72.根据权利要求69的方法,包括协作地进行位率决定。
73.一种计算机程序产品,包括存储用于完成以下的操作的非暂时性计算机可读介质 从与最后英里信道耦合的用户装置的客户机接收块体请求; 检查在最后英里信道上要求的所有通信量,检查包含 评价满足块体请求所需要的位率; 基于检查分配带宽; 响应带宽的分配,产生新的块体请求;和 向流媒体服务器传送新的块体请求。
74.根据权利要求73的计算机程序产品,其中,非暂时性计算机可读介质存储用于分配进一步响应策略考虑的位率的指令。
75.根据权利要求73的计算机程序产品,其中,非暂时性计算机可读介质存储用于分配进一步响应视频质量、用户优先权、操作员优先权、服务优先权和帐单考虑中的至少一个的位率的指令。
76.根据权利要求73的计算机程序产品,其中,非暂时性计算机可读介质存储用于协作地进行位率决定的指令。
77.一种用于控制流媒体流的方法,该方法包括 对于流媒体流以及对于与流媒体流不同的附加的流分配或接收分配的位率,各流媒体流包含多个块体并且各媒体块体包含多个媒体分组,其中,附加的流和流媒体流被要求在受到带宽限制的最后英里信道上流动; 接收在最后英里信道上被传送或者要求在最后英里信道上被传送的分组; 确定各分组是否是流媒体分组、块体请求、确认消息或另一分组; 如果分组是块体请求,那么, 确定是否改变由块体请求请求的位率; 选择性地改变由块体请求请求的位率以提供新的块体请求,其中,选择性地改变响应被分配给与块体请求相关的流媒体流相关的分配的位率;和 向要求流动与块体请求相关的流媒体流的流媒体机传送新的块体请求; 如果分组是流媒体分组,则向客户机传送流媒体分组并更新最后英里信道的状态;以及, 如果分组是指示客户机对于媒体分组的接收的确认消息,那么, 确定向流媒体机传送确认消息的定时,确定是对于分配给包含媒体分组的流媒体流的位率;和 基于传送的定时的确定向流媒体机传送确认消息。
全文摘要
提供方法、系统和计算机程序产品。方法可包括对于多个流媒体流分配或接收分配的位率,各流媒体流包含多个块体并要求在受到带宽限制的最后英里信道上流动;从在用户装置上被托管的客户机接收多个块体请求,各块体请求指示用于流动属于流媒体流的媒体块体的请求位率;如果请求的位率不符合分配的位率,改变至少一个块体请求以符合分配的位率,以提供至少一个新的块体请求;和向要求向用户装置流动流媒体流的流媒体机发送至少一个新的块体请求。
文档编号G06F15/16GK103069406SQ201180028056
公开日2013年4月24日 申请日期2011年4月7日 优先权日2010年4月8日
发明者N·斯特拉斯曼, B·索都 申请人:瓦索那网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1