背景技术
本节旨在向读者介绍可能与下面说明和/或要求保护的本发明的各个方面相关的技术的各个方面。相信该讨论有助于向读者提供背景信息,以便更好地理解本发明的各个方面。相应地,应当理解这些陈述应当就此而论地阅读,而不是作为对现有技术的承认。
媒体传递流传输解决方案主要基于诸如在IETF RFC2326中定义的实时流传输协议(RTSP)、来自Microsoft的Microsoft媒体服务器(MMS)专有协议或者来自Adobe Systems的实时消息传送协议(RTMP)专有协议这样的协议。
基于HTTP协议的流传输技术已出现,从而允许在因特网上的内容传递。这些技术允许客户端设备以被称为大块(chunk)的且为几秒钟长的小规模连续的小片段的形式接收视频。每个片段通过HTTP协议来请求,并且可能以不同的变化存在,允许客户端设备在任何时间选择适当的与网络以及其自身约束相匹配的比特率。不同的比特率对应于所传递的内容的不同的质量水平。只要由客户端设备所测量的网络带宽减少,就请求对网络带宽需求限制更少的大块。在由客户端设备所测量的网络带宽增加时,请求对网络带宽需求限制更多的大块。
可用大块一般列在流传输服务器所产生并提供的播放列表中。该播放列表能够指向其他的诸如每种格式类型的播放列表这样的播放列表。播放列表对大块内容,诸如编码解码器或者用于下载该大块所需的带宽,以及请求它们的方式进行描述。播放列表格式可以是在文献《HTTP Live Streaming draft,pantos,http-live-streaming,06》中说明的格式,并使用编码解码器信息进行扩展以说明各个SVC层。
可以使用各种HTTP流传输技术。Apple的HTTP实时流传输(HLS)被作为RFC草案公布,并主要用在Apple设备上。Microsoft的平滑流传输是Microsoft Silverlight平台的一部分,可以公开地使用其规范。Adobe的开源媒体框架(OSMF)接近于Microsoft的方案。3GPP为分组交换流传输(PSS)系统发布了规范;还围绕在HTTP上的动态自适应流传输(DASH)的定义建立了MPEG工作组。使用在这些流传输解决方案中的HTTP协议的有利之处在于能够无缝地越过NAT和防火墙。这些HTTP流传输技术提供了关于可用带宽对不稳定(erratic)的网络行为进行补偿的方式,该补偿通过连续并且适度地对视频质量进行升级或者降级以适应带宽约束。
一般地,HTTP流传输技术基于相同的概念。它们在播放列表文件格式、所提供的用于描述内容选项(比特率、图像维度、帧速率……)的元数据、在片段中的内容的可用表示的组织、所支持的编码解码器以及内容保护技术等方面有所不同。
在客户端设备想要播放某些音频/视频内容时,首先,必须获得说明如何能够得到该具体内容的文件。
经由HTTP通过根据URL获得某个“文件”来做到这件事。该文件主要(根据比特率以及其他特性)列出内容的可用表示,并且为每一项列出使能为每个时间片加载内容片段的URL。例如,对于视频点播内容,提供对该电影的整体说明;而对于直播的广播内容,说明只涵盖很短的一段时间并需要被周期性地重载以在时间过去时探索新的项目。
客户端设备根据其能力以及所具有的来自网络环境的知识,选择某种表示(典型地,基于其比特率),并加载第一片段的内容。该客户端设备对一些片段进行缓冲,以便能够处理网络干扰。然后,逐一播放来自每个所接收的片段的内容。同时,客户端设备测量接收速率,从而可以决定转到更高的或者更低的比特率。在这种情况下,该客户端设备只是根据另外的表示请求接下来的片段。每个HTTP流传输系统均如此,使得客户端能够在从用某个比特率的片段转到用另外的比特率的“接下来的”片段时保持连续的播放。
由此,在网络上的流量对接收内容的速率引入变化时,客户端能够通过选择使用允许维持填充到安全水平的客户端缓冲的比特率的片段来应对。实际上,客户端通常尝试达到最高的可能的比特率,以提供更好的观看质量,并且尝试保持在呈现不会受到造成宏块或者画面定格的数据延迟接收的影响的水平。
在住宅网络中,多个客户端设备可以同时执行HTTP流传输。如果在本地网络或者宽带网络上的可用带宽不足以支持全部的流量,则客户端设备竞争以得到它们的可用带宽份额。HTTP流传输算法独立地运行在每个设备中,并且不能提供最优的带宽份额。可能出现如下情况。带宽份额可能不公平,因为一个视频流使用高且恒定的比特率,而另一个则保持在低比特率。或者在每个设备可选择地使用高和低的比特率的地方可能出现摆动。有时,设备可能同时对它们判断为不友好的网络条件做出过度反应,导致为每个设备均选择非常低的比特率,从而极大地浪费带宽。即使在有足够的带宽可用时,也可能出现该情况;构成HTTP协议基础的TCP机制可能受到这种对每个流的包接收的隐性竞争的影响,而产生相同的结果,即或者是稳定的不公平的情况,或者是持久的摆动。这样的行为对终端用户的体验质量有直接的影响,因为所显示的视频质量与所使用的比特率相关联。
发明内容
本发明尝试通过提供对每个自适应流传输内容所使用的带宽的控制,至少改善一些涉及与在现有技术中的自适应流传输的不稳定性有关的关注点。
本发明涉及一种设备,该设备包含:给包含自适应流传输服务器的第一网络的第一接口;给包含至少一个自适应流传输客户端设备的第二网络的第二接口;流标识器,用于检测由至少一个自适应流传输客户端设备所请求的至少一个流传输内容;至少一个流传输内容,能够以多于一种的数据速率来得到;带宽管理器,用于从多于一种的数据速率之中选择数据速率;调度器,用于以在所述的所选择的数据速率以上,但是在任何对所述流传输内容可用的更高的数据速率以下的数据速率,在第二接口将至少一个流传输内容传送给至少一个客户端设备。
根据实施例,所述第一接口具有最大带宽接收,并且选择所述数据速率使得所述至少一个流传输内容所需的带宽在所述最大带宽接收以下。
根据实施例,所述带宽管理器适配于优先将至少一个流传输内容传送给所述至少一个客户端设备。
根据实施例,所述设备是住宅网关。
本发明的另一个目的是在设备中的一种方法,该设备包含:给包含自适应流传输服务器的第一网络的第一接口;给包含至少一个自适应流传输客户端设备的第二网络的第二接口。该方法包含以下步骤:检测由所述至少一个自适应流传输客户端设备所请求的至少一个流传输内容,所述至少一个流传输内容能够以多于一种的数据速率来得到;从所述多于一种的数据速率之中选择数据速率;通过所述第二接口,以在所选择的数据速率以上、但是在任何对所述流传输内容可用的更高的数据速率以下的数据速率,向所述至少一个客户端设备传送所述至少一个流传输内容。
本发明的另一目的是一种计算机程序产品,包含程序代码指令,用于在计算机上执行该程序时,执行根据本发明的方法的步骤。“计算机程序产品”的意思是一种计算机程序载体,不仅可以在于诸如计算机存储器这样的包含该程序的存储空间,还可以在于诸如电信号或者光信号这样的信号。
本发明实施在位于自适应流传输服务器和自适应流传输客户端设备之间的设备的水平上的流量调整(traffic shaping)。带宽管理允许在可能的并发服务的数量和对每个服务所感知的QoE之间的最优折衷。本发明的流量调整的效果有利于每个HTTP自适应流传输客户端的行为。这抑制或者限制了在几个流之间的竞争。不使用流量调整,带宽份额根据TCP协议的特性以及客户端算法如何应对它们“测量到”的带宽来确定;实际上,这导致不稳定的和/或不公平的情况。使用流量调整,每个流均被限制在其可能的变化范围内。如果某个流可以转到高比特率,例如因为另外的流临时性地流量较低,则其将受到即将到来的带宽降低的影响,因为请求了高比特率的片段花费很多时间到达。然后,为了补偿,自适应客户端将不得不转到非常低的比特率来进行补偿。由此,比特率变化具有很大的幅度,导致劣质的体验。通过将所感知的带宽限制到接近于平均目标的值,客户端将决不转到过高的比特率,并且将在目标值附近更加稳定。
本发明还允许以受控的比例分派带宽,诸如使用不同比特率的不同视频格式的示例。不使用我们的网关所提供的中心仲裁,客户端将倾向于以相似的比特率对带宽进行份额分配。
流量的分类可以包含在视听流和其他类型的数据流之间的优先级规则。这允许例如保护OTT视频观看不被数据文件下载干扰。
家庭网关是进行带宽管理的好地方,因为家庭网关能够获得关于网络和设备约束的适当的知识,并且家庭网关看到所有的流量,因此应当能够标识属于AV服务的流,并且对它们进行处理。
下面阐述了在范围上与所公开的实施例相同的某些方面。应当理解的是,提出这些方面仅用于向读者提供对本发明的某些形式的简短概要,并且这些方面的目的不在于限制本发明的范围。实际上,本发明可以包括可能未在下面阐述的方面的变化。
具体实施方式
应当理解的是,本发明的附图和说明已被简化为以示出与对发明的清楚的理解相关的元素,同时为了简化,消除了很多在典型的数字多媒体内容传递方法以及系统中存在的其他要素。然而,这样的要素在本技术领域中众所周知,在此不提供对这样的要素的详细的说明。此处,本公开涉及本领域技术人员所知道的所有的这样的变化以及改进。
在图1中表示根据实施例的系统。该系统包含两个客户端设备4、5以及通过因特网2连接的流传输服务器3。客户端设备位于通过网关1连接到因特网的本地网络6中。优先地,本地网络是住宅网络。根据客户端请求,服务器使用在TCP/IP连接上的HTTP协议将大块流传输给客户端。
在图2中例示出根据实施例的客户端设备4。客户端设备,以下也被称为自适应流传输客户端设备,包含给本地网络6的第一接口44。客户端包含通信模块43,该通信模块包含与服务器3进行通信的协议栈。具体地,该通信部件包含在本技术领域中众所周知的TCP/IP栈。当然可以是任何其他类型的网络和/或使客户端能够与服务器进行通信的通信部件。该客户端包含自适应流传输模块45。该客户端是从服务器接收HTTP流传输内容的HTTP流传输客户端。它以更好地与网络约束以及其自身约束相匹配的比特率,连续地选择大块。
客户端包含适用于对内容进行解码和呈现的视频播放器46。客户端还包含处理器41,用于执行在客户端存储的应用以及程序。该客户端包含诸如存储器这样的存储部件42,用于对从服务器接收到的大块,在将其传送给视频播放器46之前进行缓冲。具体地,存储器是易失性存储器。当然,客户端包含未被示出的非易失性存储器,用于存储在客户端上运行的应用以及程序。客户端设备可以是可携带媒体设备或者笔记本电脑。
替代性地,客户端设备不包含视频播放器,而包含用于连接视频播放器的接口。由此,客户端设备是诸如机顶盒这样的视频解码器。
在图3中示出根据实施例的网关。由数字用户线路网关通过DSL技术提供到住宅网络的因特网宽带访问。当然,网关可以是任何类型的诸如电缆、光纤或者无线这样的宽带网关。该网关包含LAN接口14、宽带接口13以及包含用于通过接口进行通信的协议栈的通信模块17。通信模块包含因特网协议栈,即IP栈。
该网关包含第一存储器16.1以及第二存储器16.2。第一存储器16.1适用于存储从播放列表文件提取的信息。第二存储器16.2适用于对从接口接收的以及发送给接口的包进行缓冲。
该网关还包含流量调整模块19,该流量调整模块包含在下文中更详细地说明的带宽管理器11、流标识器模块15、调度器12以及分类器18。
该网关包含用于连接各个模块的内部总线10。其还包含未被示出的处理部件、路由和桥接部件,以及用于实施一般性的住宅网关功能的、为本领域的技术人员众所周知的所有部件。
在图4中进一步示出该网关。流标识器模块15适用于对在网关处接收的流进行分析。每次客户端设备发出服务请求,该流标识器模块标识该请求,并且通过拦截从服务器返回给客户端的播放列表来收集服务信息。其拦截并分析去往每个本地设备的播放列表文件。分析播放列表文件使得能够提取诸如服务器通知的比特率以及相关联的片段URL这样的信息。为了拦截播放列表,流标识器知道可用的流传输技术并根据相关联的协议。对每个协议,其知道传送播放列表的包的类型。具体地,其知道Apple HTTP实时流传输、Microsoft平滑流传输以及Adobe开源媒体框架技术。当然,其可以被配置为知道其他的流传输技术。
流标识器还标识在该网关处何时不再接收流。例如,当在一段时间内未接收到流时,流标识器认为会话结束并且取消向该客户端设备的分配。
通过流标识器得到的信息被传送给带宽管理器11。
带宽管理器决定是否准许服务,并将目标比特率分派给该服务,同时为其他可能已经运行着的服务改变目标。带宽管理器被配置为知道在宽带接口上可用的最大带宽值。然后,带宽管理器根据该值确定在流之间的带宽分配。它配置第二存储器,使得为每个所检测出的流在该第二存储器中创建专用队列,并且为每个队列设置目标传送比特率。换言之,播放列表提供通过HTTP流传输对每个流可用的比特率。使得带宽管理器能够为每个流确定精确的目标比特率。在为每个流确定目标比特率之后,带宽管理器配置调度器12。
调度器12适用于管理在本地网络中的包的传送。换言之,为每个流指定独立的、恰好分派了一个精确的带宽的队列。不会比该目标比特率更快地发送包。同时,该带宽是“有保障的”;只要该队列具有要发送的包并且未达到目标比特率,这些包就相对其他流量具有优先级。
带宽管理器关于在流传输会话之间的带宽分派的决定根据很多参数以及用户或者服务提供商的喜好。它们导致一套由带宽管理器强制执行的,并且根据内容、网络、客户端设备等的特征提供的仲裁方案(例如,公平的份额分配,其中所有的会话获得与它们的格式相称的带宽)。带宽管理器首先依赖于http自适应流的固有弹性以及知道可能的可用比特率级别(step)的能力。
带宽分配实施如下。其基于客户端设备类型。例如,与用于可携带媒体播放器的流相比,用于电视机的流具有更高的优先级。替代性地,带宽分配可以基于在住宅网络中的客户端设备的位置。与位于卧室的客户端设备相比,位于起居室中的客户端设备可以具有更高的优先级。该分配优选用于诸如电视机、机顶盒这样的固定设备。带宽分配还可以基于设备类型以及其在住宅网络中的位置的组合。替代性地,在设备之间公平地设置该分配。
优选的,网关包含使得能够在流之间调节优先级的用户接口。在该用户接口中的项目(entry)可以是,例如,设备类型、其位置以及其优先级。
作为计算要分派给客户端的带宽的示例性的实施例,以下给出可能的算法:
设BW是总的可用带宽。
对于每个客户端c:
●设share[c]是我们想要给c的带宽的百分比。share[c]根据如上所述的管理策略、用户喜好等确定。
●设target[c]表示我们希望客户端c选择的内容比特率。
●target[c]使用给c的流传输内容的最高值进行初始化,然后将在下面计算。
●设percent[c]表示临时计算的客户端使用多少带宽的值。
对最终的target[]表的计算根据下面的算法进行:
在SUM(target[])>BW时
●选择具有最大的比率(percent[c]/share[c])的客户端c,其中忽略已经处于其最小速率的客户端
●target[c]:=给c的下一个更低的比特率
●percent[c]:=target[c]/BW
现在给客户端分派“未使用的”带宽。
unused:=BW-SUM(target[])
对每个客户端c:
●target[c]:=target[c]+(unused*share[c])
由此,每个客户端将具有其调整为大于我们想要使用的内容比特率的值的流量。这是使客户端成功地保持请求所期望的内容比特率的条件,因为HTTP自适应客户端一般不会成功地使用100%的其所具有的带宽。
分类器18适用于标识在网关处接收到的流,并且将这些流按照某路线发送到在第二存储器中的适当的队列。检查为设备之一接收的每个包,并由分类器模块将其标识为属于视听流或者其它某种流量之一。基于该分类,将包放置在用于向LAN发送的不同的队列中。在每个队列中的包由调度器根据所选择的调整轮廓(shaping profile)分发。它们被转发以便符合目标的比特率。
只要为每个客户端选择了目标比特率,该网关就应用流量调整,使得由客户设备感知的网络带宽使得其采用所期望的比特率。这防止设备在接收中由于可以使用全部带宽而看到速度暴涨,使得它认为能够尝试请求更高的比特率。同时,保证了每个客户端对其自身的带宽份额的使用的优先级。这避免客户端看到比特率下降峰值并对其进行补偿。
现在,用一些示例例示如何使用实施例的设备实施流量调整。
在第一个示例中,客户端设备能够以1mbps、2mbps以及3mbps得到流。可用的宽带平均是2.5mbps。然后,网关选择2mbps。然后,客户端设备以2mbps最大量接收流传输内容,并且不会导致以3mbs请求内容。这防止客户端设备使用超过2mbps。
在第二个示例中,第一客户端设备能够以1mbps、2mbps以及3mbps得到第一流,并且第二客户端设备能够以2mbps、3mbps以及5mbps得到第二流。可用的宽带是5.5mbps。将优先级置于第一客户端设备上。第一客户端设备以3mbps的最大量接收流传输内容,并且第二客户端设备以2mbps最大量接收流传输内容。这防止第二客户端设备使用超过2mbps。之后,第一客户端不再接收第一流。因为更多的带宽可用,第二客户端设备以5mbps最大量接收流传输内容。
另一个示例是在请求SD流以及HD流时。为它们分派与它们各自最大的比特率成比例的带宽,例如为SD流分派20%而为HD流分派80%。
优选地,给队列的目标比特率被置为比该流的目标比特率高出一些百分比,以确保客户端能够使其对该流的目标变化的选择保持稳定。
在实施例中,带宽管理器基于在宽带接口上可用的最大带宽的值,确定在流之间的带宽分配。替代性地,代替在宽带接口上可用的最大带宽的值,带宽管理器可以考虑在本地网络上可用的最大带宽。由此,它将基于在本地网络上可用的最大带宽的值,确定在流之间的带宽分配。如果瓶颈在本地网络而不是在宽带网络,则出现该情况。
在实施例中,在网关处实施流量调整。替代性地,可以在位于本地网络中并连接到网关的路由器中实施。
可以独立地提供或以任何适当的组合在说明书、权利要求书以及附图中公开的内容。特性可以在适当的地方实现为硬件、软件或者这两者的组合。
此处提及“一个实施例”或者“实施例”表示与该实施例有关的一起描述的具体的特性、结构或者特征可以包含在至少一个本发明的实现中。在说明书中的不同地方出现的短语“在一个实施例中”,未必全部指相同的实施例,也不是独立的或者替代性的必然与其他实施例互相排斥的实施例。
出现在权利要求书中的标号只是为了例示,并且将不对权利要求书的范围起限制作用。