专利名称:多播和广播串流方法和系统的制作方法
技术领域:
本发明一般来说涉及在通信网络上将数据传递到客户端装置,且更具体地说(但不唯一地),涉及一种用于在多播和/或广播环境中在有线和/或无线网络上将数据串流到客户端装置的系统和方法。
背景技术:
存在多种能用于在通信网络(多播和广播是两个实例)上将数据传递到客户端装置的技术。在至少一些类型的多播环境中,提供复数个多播组,其中预订成员(例如客户端装置)接收多播会话数据、服务、内容或预订成员可通过多播组得到的其它数据。多播组中的每一者可提供相同的基本内容(例如特定视频节目),但在每个所述多播组中可用的信号之间可具有若干不同之处。举例来说,每个多播组可以与其它多播组不同的位速率来传输视频节目。
在此多播环境中,期望接收所述视频节目的客户端装置或其它接收者可预订或另外加入特定多播组以便接收传输。通常,每个客户端装置基于所提供的位速率或基于某些其它兼容特征而选择恰当的多播组来加入。因此,举例来说,多播组1可以位速率A来向客户端装置1-10提供视频节目,多播组2可以位速率B来向客户端装置11-14提供相同的视频节目,多播组3可以位速率C来向客户端装置15-21提供相同的视频节目,等等。
通常是这样的某些条件可使得初始位速率对于特定客户端装置来说是不理想的。例如,在会话期间动态改变的网络带宽条件或客户端装置特征可指示特定客户端装置切换到较低(或较高)位速率。然而,频繁地从一个多播组改变到其它多播组可导致不利的结果。一个结果是耗费。对于客户端装置从一个多播组切换到另一个(例如,连接和断开,且反之亦然)是昂贵的,这是由于可需要满足费用或节目要求以便预订新的多播组。另一结果是服务中断。也就是说,在传输视频节目期间从一个多播组切换到另一多播组可导致在过渡期间损失所述视频节目的某些部分-多播组之间的改变通常不是无缝过程。
随着媒体压缩和无线网络基础设施的发展,媒体串流对于终端用户、内容提供者、无线操作者和其它实体来说已成为有前途的技术区域。虽然无线技术(例如2.5G或3G)将可具有更多的带宽且不管某些先进压缩技术能实现非常低的位速率串流的事实,当其涉及无线环境时,仍存在若干固有问题。上文描述的多播环境进一步使得此类问题更加困难,其中客户端装置切换到另一多播组以便得到更适宜的信号可能不是最佳的——客户端装置除了保持在相同的多播组中并“充分利用”所述状况之外可能没有其它更好的选择。
遇到此类问题的无线串流应用的区域包括实时媒体应用(包括音频和视频串流两者)、实时音频应用(例如现场音乐或体育广播)、脱机媒体应用和脱机音频应用。与有线网络不同,无线网络遭受高速率的有效包损失和间歇性包延迟以及其它问题。包损失和延迟可由若干因素(除了例如作为无线网络的内在特征的衰落的影响之外,例如网络拥挤、位误差率或用户装置处的数据溢出)导致。
除了包损失之外,还有其它因素不利地影响由终端用户接收的媒体。这些因素中任一者对用户体验的影响可依据通信信道条件、用户装置特征、环境条件、在通信期间发生的有意或无意事件或其它影响而显著变化。
所有上述和其它因素都在媒体传递和消费情况下在移动无线多播环境中最终不利地影响终端用户的体验质量(QoE),其中串流只是媒体传递的一个实例。这些相同或其它因素还可在硬连线通信网络中不利地影响终端用户的多播会话。这些相同或其它因素还可在硬连线或无线通信网络中不利地影响广播会话,尤其是由于所有用户在广播环境下一般接收相同的信号,且因此切换到不同信号的能力受到了限制(如果可能的话)。
发明内容
根据一个方面,提供一种用于将串流内容传递到复数个客户端装置的方法。所述方法包括将客户端装置与组关联。将多个同时独特流传递到每个组,以允许每个组中的客户端装置分别接收所述独特流中的一者。接收并估计关于将所述流传递到所述客户端装置的度量数据。至少部分基于所估计的度量数据,使得所述客户端装置中的至少一者切换到一相同组中的一不同流,其中所述不同流比所述相同组中的一当前流更适宜。如果不能在一当前组中得到一适宜的流,那么至少部分基于所估计的度量数据,使得所述客户端装置中的所述至少一者切换到一不同组中的一不同流,其中所述不同流比所述当前组中的一当前流更适宜。
参考以下附图来描述本发明的非限制性且非详尽的实施例,其中除非另外规定,否则在各个附图中,类似参考元件符号是指类似部分。
图1是可实施本发明一个实施例的示范性系统的方框图。
图2是说明根据一个实施例的通过使用多个流将内容传递到若干组客户端装置的方框图。
图3是根据一个实施例的用以将内容传递到若干组客户端装置(包括在流与组之间切换)的技术的一实施例的流程图。
具体实施例方式
本文描述用于在多播和/或广播环境下向客户端装置提供串流数据的技术的若干实施例。在以下描述中,陈述某些特定细节以便提供对各种实施例的彻底理解。然而,所属领域的技术人员将了解,可在没有这些细节的情况下实践本系统和方法。在其它情况下,尚未展示或详细描述与通信设备和协议相关联的众所周知的结构和协议,以避免不必要地混淆所述实施例的描述。
在整个说明书中,对“一个实施例”或“一实施例”的参考意味着在至少一个实施例中包括结合所述实施例而描述的特定特性、结构或特征。因此,在整个说明书中,短语“在一个实施例中”或“在一实施例中”在各处的出现不必要都涉及相同的实施例。此外,可在一个或一个以上实施例中以任何适当方式来组合特定特性、结构或特征。
本文所提供的标题只是出于方便的目的,而不解释所主张的本发明的范围或含义。
总的来说,一实施例提供一种用于在多播和/或广播环境中从至少一个服务器向复数个客户端装置传递串流数据的技术。可在无线和硬连线通信网络中的一者或两者上传递串流数据。串流数据可包括但不限于视频、音频、文件、现场或录制节目、多媒体内容、服务、其它类型的数据或其组合。客户端装置可包括便携式无线装置(例如蜂窝式电话)、膝上型计算机和类似物。客户端装置还可包括有线装置(例如个人计算机)、工作站和类似物。
在一实施例中,客户端装置可预订或另外加入多播组以接收正由服务器传递的数据。服务器可针对每个多播组串流具有(例如)多个不同位速率的多个信号。因此,可向每个多播组提供不同的多个位速率。各个多播组中的客户端装置可调谐到对应于(例如)其适宜位速率、分辨率、格式等的特定信号。
在一个实施例中,如果客户端装置特征和/或信道条件指示切换将提供更适宜的服务,那么服务器可指示客户端装置改变/切换到相同多播组中所提供的不同信号(例如,其具有不同的位速率)。在一个示范性实施例中,服务器具有可用于一组的多个流,但服务器在一个特定时间处串流最恰当的(例如,对整个组是最适宜的)流(一次一个流)且针对所述组无缝地进行调试。在此实施例中,仅当其涉及改变组时,服务器(或客户端装置)才交换信号。在另一实施例中,由服务器向一组提供多个流,且所述流中的每一者针对所述组中的特定客户端装置而定制,且另外,客户端装置(单个、复数个或所有)可改变到相同组中的不同流或另一组中的不同流。
在一实施例中,服务器还可指示客户端装置切换到在某一其它多播组中可用的一不同信号(即指示客户端装置切换到另一多播组),以便获得更适宜的服务。如果本多播组不向客户端装置提供所需的位速率且/或终端用户体验总体上对于某其它多播组来说是较适宜的,那么可执行此从一个多播组到另一个多播组的切换。
可使用各种技术来在串流会话之前、期间和之后搜集和使用信息,以确定客户端装置是否应切换到相同多播组中的另一信号和/或是否切换到不同多播组中的另一信号。例如,一个实施例使用动态带宽适配(DBA)和/或体验质量(QoE)技术来辅助进行所述确定。
图1是可实施本发明一实施例的系统的方框图。至少一个服务器100从一个或一个以上内容提供者102接收内容。由内容提供者102提供的内容可包括(但不限于)音频、视频、电影、音乐、现场直播或录制的节目、文件、游戏、因特网内容、多媒体、即时消息、随选内容或可由服务器100传送到复数个客户端装置104的任何其它类型的数据。在一个实施例中,服务器100可通过使用串流技术来传送/传递此类内容。其它或另外,服务器100可使用下载或其它传递技术来传递此内容或其它数据。
服务器100的一个实施例并入有动态带宽适配(DBA)模块106和QoE服务器模块108。服务器100的各种其它实施例还可包括服务质量(QoS)模块112、代码转换器模块110和/或其它模块和组件。所述各种模块可在某些实施例中包含分离模块,而在其它实施例中,可展现所述各种不同功能性或另外将所述各种不同功能性组合到单个模块中。接下来将描述这些模块和其相关联的功能性中的每一者。
关于DBA,本发明的一个实施例允许音频或视频(A/V)数据的串流(例如)精确地与到客户端装置104的信道的带宽匹配。此动态带宽适配包含两个组成部分(1)监视信道的波动带宽;和(2)服务器100的DBA模块106能够实时改变串流位速率以匹配或另外补偿信道带宽中的变化。通过使用此带宽监视和位速率适配技术,用户能够接收相对较平滑的视频和清楚的音频。
根据本发明的一实施例,提供DBA算法,其在拥挤和网络资源波动时期期间实现稳定的串流质量和平滑过渡。通过调节富媒体流来适合客户端带宽,从而优化终端用户体验,此特性适合于无线网络(例如共享包网络)的特征或条件。所述DBA算法基于网络中终端用户的可用带宽来自动调节正由服务器100服务的音频和视频位速率。因而,终端用户可接收最恰当的位速率流。
所述DBA算法通过针对与包损失、延迟或延迟变量相关联的带宽在统计上显著且持续的变化来监视到每个客户端的信道,以在整个流时间中提供拥挤避免和速率控制。当发生这些变化时且当存在现有紧密匹配但较低的位速率流时,DBA模块106切换到特定客户端装置104的所述较低流。如果带宽条件得以改进以允许切换到适宜的较高位速率传输,那么也可执行切换到较高位速率流。
可用于确定是增加还是减小位速率的参数的实例可包括(但不限于)最大延迟、延迟变量、最大包损失、瞬间和先前包损失以及其它参数。包损失或其它参数(例如)也可基于平均、累积或连续包损失中的任一者或多者,以便获得带宽条件的最明智且精确的确定。在一个实施例中,基本延迟或延迟变量(其通过确定基本延迟且从瞬间延迟中减去基本延迟以获得延迟变量的值来计算得到)的参数增加跟踪信息且可用于根据客户端装置或网络/操作者要求来进一步确定、改进和优化带宽适配。
在串流会话中,DBA模块106的实施例在会话开始时选择恰当的轨道。接着,如果在流期间带宽下降或增加,那么DBA算法将建议位速率调节。在产生此建议中,DBA算法的一实施例用因子相乘表示信道的统计且持续行为,但不对瞬间尖峰信号作出反应。结果,媒体质量不突然变化,且平滑并逐渐地发生位速率变化。
应注意,DBA模块106的一实施例可为一组客户端装置工作。因此,DBA模块106可分析来自所有或一子组客户端装置的数据并为整个组(和/或所述组中的一子组客户端装置)作出决策。此决策可能对于所述组中的一些客户端来说是最佳的,但对于其它客户端来说并非最佳。举例来说,如果10个客户端装置中的8个(一组中的大多数客户端装置)可接收最多64kbps,那么希望接收128kbps的剩余两个客户端装置可能不会达到那个位速率,这是由于那可能不是最佳决策。在所述情况下,对于这“两个客户端装置”来说,最好切换到另一组或保持64kbps。应注意到,每个组可进一步具有一切换范围。对于所述实例中的所述组来说,其可为32到128kbps。
在2003年5月30日申请的题为“METHOD AND APPARATUS FOR DYNAMICBANDWIDTH ADAPTATION”的第10/452,035号美国申请案中更详细地描述所述DBA模块106的示范性实施例,所述申请案转让给与本申请案相同的受让人且以全文引用的方式并入本文中。
关于QoE,QoE服务器模块108的一个实施例所基于的QoE框架提供一种监视并处理QoE问题的技术,所述QoE问题会在网络组件之间进行通信期间出现。举例来说,当媒体正从服务器100传送到客户端装置104中的一者时,可在所述服务器与所述客户端装置104中的一者之间进行通信期间出现QoE问题。一个实施例的QoE框架的组成部分包括起始和终止过程,其分别定义会话的开始和结束;协商过程,其中服务器100与客户端装置104协商在会话期间使用哪个QoE度量;经定义并实施的一个或一个以上QoE度量(例如,度量值的收集/测量);在度量值会话期间的传送,所述度量值关于预定频率下的度量且针对会话的预定范围,所有度量值都已在协商期间被接受;和所述度量值的分析/应用,其用以估计QoE并调节条件,以使得可改进QoE(如果必要的话)。
因此,一实施例的QoE框架评估在一通信环境(例如无线通信环境)中的终端用户体验。QoE使用用于分析并提供满意数据传递、可靠性、可用性、可缩放性、速度、精确性、效率等的确定和主观方法的组合。QoE服务器模块108所基于的QoE框架的一实施例是跨协议层概念,其涉及网络、传送、操作系统、播放器、编码解码器、客户端特征和/或任何应用层特定问题以及可横跨不同通信协议的其它问题。同样,在一个实施例中,可针对媒体和会话级细节来分离QoE参数(例如,QoE度量数据)。也就是说,一实施例的QoE框架检查来自可影响终端用户体验的各种来源组合的度量数据,并将此度量数据提供给服务器100,以使得QoE服务器模块108可确定是否可且可以何种方式来针对所述客户端装置104中的任何一者或一者以上来改进QoE。
如上所提及,QoE框架的一实施例可涉及协商过程,其可在QoE服务器模块108与所述客户端装置104中的任何一者或一者以上之间执行。可将协商协议的一实施例概括为如下在服务器100与客户端装置104中的一者之间起始一会话;一些QoE度量可由或可不由服务器100和客户端装置104中的一者或两者支持;同样,客户端装置104可选择包括所述QoE度量的一子组,其支持一特定会话;客户端装置104和服务器100因此可参与协商过程,所述协商过程可涉及若干来回交换,以确定支持和应由客户端装置104发送哪些QoE度量、应多少时间发送一次所支持/接受的QoE度量、如何激活且/或去活QoE度量、所接受的QoE度量将包含的内容或值以及其它QoE度量有关的因素;由客户端装置104进行的QoE度量值测量和收集;将QoE度量值从客户端装置104传送到服务器100;和会话的终止。可估计所传送的度量值以确定是否能或应在串流会话期间且/或针对随后会话改进QoE。
在一实施例中,客户端装置104在传送层处测量QoE度量,但也可在应用层处进行测量以获得较好的精确性。QoE度量的报告周期可以是计算一组度量的周期。报告周期的最大值可通过QoE协商协议进行协商。在其它实施例中,可由除客户端装置104之外或替代客户端装置104的元件来测量一个或一个以上QoE度量,且接着将其传送到服务器100且/或传送到客户端装置104。
在一实施例中,所述度量中的至少一些指示影响通信环境中的质量的特征或是通信信道的一些其它指示或结果。可在客户端装置104的协议栈、客户端装置104的应用程序、客户端装置104的缓冲器、客户端装置104的编码解码器或可与QoE有关的其它客户端特征或者以上各者的任何组合处测量这些QoE度量。可使用所述度量在服务器100处和/或客户端装置104处调节这些层中任一者处的行为。
以下示范性QoE度量可由实施QoE的客户端装置104导出讹误持续时间、重缓冲持续时间、初始缓冲持续时间、连续包损失、帧速率偏差、抖动持续时间和/或可影响QoE的任何其它参数(单独地或组合地)。应了解,这些QoE度量不是可用于QoE目的的唯一度量。这些QoE度量可由其它度量补充、由其它度量代替、修改、组合等。所述QoE度量可应用于(例如)音频、视频、语音和定时文本媒体类型以及其它媒体类型。
一个实施例的QoE服务器模块108负责量化若干因素对正传送的媒体的影响,所述若干因素包括网络条件、客户端特征等。QoE服务器模块108通过搜集来自客户端装置104的反馈进行所述操作。QoE服务器模块108的各种实施例的特征和特性可为如下描述1.QoE服务器模块108可驻留在串流服务器(例如服务器100)上。
2.QoE服务器模块108可驻留在RTSP代理上或任何其它适当的网络装置上。
3.QoE服务器模块108可接受来自各种协议的输入。
4.QoE服务器模块108配置可存储在SDP文件中或由服务器/代理产生。
5.QoE服务器模块108可与DBA模块106交互。影响基于统计的QoE结果来增加位速率的决策。影响基于主观的QoE结果来增加位速率的决策。影响基于统计的QoE结果来减少位速率的决策
。影响基于主观的QoE结果来减少位速率的决策。也可基于主观和/或统计的QoE结果来增加/减少或者影响/改变以下特征帧速率、刷新间隔和行为、容错性(error resiliency)、缓冲行为、最大帧大小、峰值位速率、分段、重发和/或其它特征。
。如果DBA模块106被接通,那么■QoE可影响速率适配(可配置的)。
■在一个实施例中,由DBA模块106控制报告。
。如果DBA模块106被断开,那么■在一个实施例中,QoE服务器模块108对速率适配没有影响,但可在另一实施例中影响速率适配。
■在一个实施例中由QoE服务器模块108控制报告,但在另一实施例中由其它模块或组件控制报告。
。在一实施例中,如果DBA和QoE模块104和108两者都被断开,那么可由QoS模块112控制报告。
6.QoE服务器模块108可以下列模式中的一者或两者进行操作。统计模式。主观模式。细节可以多种方式在QoE服务器模块108内使用/组织从客户端装置104处返回到服务器100的度量。一种方式是“统计模式”。此处,QoE服务器模块108以最小、最大等形式来组织度量的统计。第二种方式是“主观模式”。此处,QoE服务器模块108通过将其接收到的度量映射到服务质量等级来组织所述统计。因此,举例来说,在查看所述度量之后,QoE服务器模块108可确定特定度量属于中间质量等级。因而,此信息可用于确认目的。举例来说,如果客户端装置104预订高质量等级,但对于此特定会话,基于服务器100所接收的度量而确定此会话只属于中间质量等级,那么此信息可用于许多目的。可能具有对所述QoE服务器模块108接收的度量的许多其它分析。
7.QoE统计模式。在媒体或会话级进行计算。在单个周期或整个会话期间进行测量。计算至少以下各者的最小、最大、平均和标准偏差■讹误持续时间
■重缓冲持续时间■初始缓冲持续时间■连续损失8.QoE主观模式。在媒体或会话级进行计算。在整个会话期间进行测量(没有单个周期报告)。提供到预定QoS等级的映射■尽力或串流等级,■低、中或高QoE等级。
。提供可能问题位置的隔离。链路层。网络协议栈。编码解码器栈问题。客户端应用程序问题。限幅问题。其它所述QoE服务器模块108的示范性实施例在2004年8月23日申请的题为“QUALITYOF EXPERIENCE(QoE)METHOD AND APPARATUS FOR WIRELESSCOMMUNICATION NETWORKS”的公开PCT申请案序列号第PCT/US2004/027618号中更详细地描述,且还在其相关的优先权申请案中更详细地描述,所述申请案都转让给与本申请案相同的受让人且以全文引用的方式并入本文中。
关于QoS,一个实施例的QoS模块112在客户端装置104与网络之间权衡协商的最大位速率、保证的位速率和最大传送延迟参数。QoS模块112还权衡任何额外的网络层数据,例如损失、延迟和与高阶装置和网络度量相关联的其它度量。QoS模块112的一个实施例所基于的QoS框架通过使用关于分析并提供一致且可预测的数据传递服务的确定和主观方法来指定一保证的服务水平,且通常被实施为网络QoS。
关于代码转换器和其它模块110,一实施例从内容提供者102接收单个输入(例如原始视频),且将所述输入转换为具有独特特征的复数个同时输出(例如输出视频流)。因此,提供一对多技术以用于在单个代码转换会话中将输入数据转换为输出数据。举例来说,所述输出可具有不同的位速率、帧速率、分辨率、编码格式、色彩设计或基于客户端装置特征或带宽条件中一者或两者而定制的其它特征。客户端装置104可因此具有由服务器100提供给它的适宜输出,且可在境况指示下切换到某其它输出,所述境况可为例如由QoE模块服务器108、DBA模块106和/或QoS模块112所作出的确定引起的境况。在2000年2月10日申请的题为“COMPUTER PROGRAM PRODUCT FORTRANSFORMING STREAMING VIDEO DATA”的美国专利申请案序列号第09/502,390号中更详细地描述这些代码转换技术的示范性实施例,所述申请案转让给与本申请案相同的受让人且以全文引用的方式并入本文中。
所有这些模块协同地确保在多播和/或广播环境中的用户体验为所希望的那样,且甚至在可剧烈变化的网络条件下监视整个串流会话。举例来说,如果DBA模块106确定一特定客户端装置104需要改变到较低位速率信号,那么服务器100可命令或另外使所述客户端装置104切换到由代码转换器110产生的较低位速率信号。可基于由QoE服务器模块108和QoS模块112所作的确定来执行到其它信号的类似切换和/或信号适配。
尽管图1中的QoE服务器模块108和其它模块被展示为驻留在服务器100中,但应了解,QoE服务器模块108(或其它模块中的任一者)可在无线或硬连线网络中合适地位于其它地方。举例来说,QoE服务器模块108可位于代理装置、路由器、切换器或其它网络组件处,在一些实施例中包括位于客户端装置104处。
继续图1的描述,服务器100与客户端装置104可通过使用一个或一个以上协议通信114互相通信。多媒体广播/多播服务(MBMS)配置和其相关联的协议可在一个实施例中使用以允许服务器100与客户端装置104之间进行通信。MBMS进一步利用其它通信协议和服务,例如包切换串流(PSS)、实时传送协议(RTP)、会话描述协议(SDP)、用户数据报协议(UDP)、超文本传送协议(HTTP)、因特网协议(IP)、实时传送控制协议(RTCP)、单向传送上的文件传递(FLUTE)和其它协议。这些和/或其它协议和服务以及方法可用于不涉及MBMS的其它实施例。
在一个实施例中,可在无线和/或有线网络118上以多播和/或广播方式来实施协议通信。无线网络的实例包括蜂窝式或其它RF、卫星和光学网络。有线网络的实例包括公共交换电话网(PSTN)、同轴电缆网络和其它类型的网络。在一个实施例中,可在网络118中实施有线和无线网络的组合。在又一实施例中,网络118可包括或耦合到因特网。
在一个实施例中,可提供一个或一个以上反向信道或其它信道116以在服务器100与客户端装置104中的每一者之间进行额外通信。信道116还可包含其本身用于将来自服务器100的内容(例如多播/广播串流内容)传递到每个客户端装置104的相同信道。信道116的一个目的在于将来自客户端装置104的QoE、DBA和/或QoS度量数据传送到服务器100的各个模块。举例来说,传送串流统计数字的RTCP接收器报告(RR)包可由客户端装置104传送到服务器100。
信道116的另一目的可在于将来自服务器100的控制信号传送到客户端装置104中的任一者。例如,信道116可用于将来自服务器100的指令传送到一特定客户端装置104,以切换到相同多播组中的一不同流或某一其它多播组中的一不同流。
图2说明根据一个实施例将内容传递到客户端装置,举例来说,在多播环境中串流。客户端装置预订或另外加入多播组A、B、C等(分别标记为200、206和208)。例如,客户端装置202、204等是多播组A(200)的订户。组200、206和208中的每一者可包括至少一个到任何合适数目的客户端装置。
可使用不同标准来定义“组”。举例来说,可根据某一信号特征来定义组(例如,组200与位速率为W bps到X bps的信号相关联,组200与位速率为Y bps到Z bps的信号相关联,组200与具有W bps和Z bps而并非X bps的信号相关联,等等)。可用于定义组的其它类型的信号特征包括分辨率、编码格式、帧速率、色彩设计和其它方面。在某些情况下,可在组之间存在类似的信号特征,而其它信号特征是不同的。
代替或除信号特征之外,可使用其它标准或其组合来定义组200、206和208。举例来说,可基于客户端装置和/或服务器100的地理位置和/或IP地址来定义组。还可基于内容类型(例如串流视频对串流音频对图形消息传递等)来定义组。
其它可能性包括商业规则,例如基于针对预订的用户费用(例如,“基本”、“中等”或“高级”预订包,其中依据客户所选择的预订包而使客户可得到更多或更好的服务)来定义组。预订包可与一特定流相关联。在这些或其它类型的分组定义中,补充内容可添加到由流提供的相同基本内容。例如,所有流可提供相同的视频节目,而如果用户已选择了排除广告和商业节目的“高级”预订包,那么一些流可能不包括商业节目或广告。因此,用户可加入串流连续信号的“高级”多播组,且所述信号没有广告和商业节目。在其它实施例中,可至少部分基于指定用户的预订级别的用户概况数据以及关于用户的其它可能数据(例如兴趣、人口统计、爱好等)针对单个或复数个客户定制连同基本内容一起提供的补充内容类型。
在一实施例中,另一模块110可执行与商业规则相关联的估计和实行。举例来说,另一模块100可估计用户概况数据和其预订级别,以确定应将哪个流传递到一特定组或用户。此估计可包括确定是否应将不同的流传递到一用户或组(例如当一用户将预订包改变到更高或更低的级别),且可进一步执行与实行商业规则相关联的其它操作时。在一实施例中,模块110的代码转换器也可执行代码转换,所述代码转换至少部分基于商业规则。例如,如果一用户在当前预订以接收低分辨率流且接着预订以接收更高分辨率流,那么代码转换器可转换正提供到所述用户的组的流,以使得所述用户正接收更高分辨率流。
其它可能性包括基于其内容的主题(例如其提供的内容的种类(戏剧、喜剧、歌剧等))且/或基于传输的时间来定义组。简单地说,实施例可使用可能的标准中的任何一者或一者以上来定义多播组。
在一实施例中,组200、206和208每一者分别接收多个流210、212和216,以使得其预订客户端装置可调谐以接收由所述流运载的内容。例如,组200可通过网络118从服务器100接收多个流200,其中每个流具有不同的位速率、分辨率、帧速率或其它信号特征中的一者或一者以上。因此,组200中的预订客户端装置每一者可调谐到多个流200中最适宜的一个特定流,例如具有与各个预订客户端装置的能力兼容的位速率的流。
在另一实施例中,多个流210、212和216是可用的,但每组一次只有单个流是有效的。因此,所述组中的所有客户端装置接收相同的流,可基于DBA、QoE等度量数据来更新所述流。在此类实施例中,如果条件指示,那么所有客户端装置无缝接收相同组中可用的经更新/不同的流。如果相同组中存在某些客户端装置(其中经更新的流不是适宜的),那么此类客户端装置可保持在相同组中且接收所述经更新的流,或切换到某一其它组以接收更适宜的流。
在一实施例中,服务器100能够将服务器信号218、222和226(或其它数据或控制命令)分别提供到组200、206和208中任一者中的任一客户端装置。举例来说,此类服务器信号218、222和226可通过信道116(图1展示)来传送,且可包括使得一个或一个以上客户端装置调谐到其多播组可用的特定信号的指令、使得一个或一个以上客户端装置调谐到另一多播组中可用的特定信号、对QoE/DBA/QoS度量数据(包括串流统计和QoE报告,其可在串流会话之前、期间和/或之后由客户端装置发送)的请求、使得一个或一个以上客户端装置与所述组连接或断开的指令(或对客户端装置请求连接或断开的确认)、QoE协商数据或可与串流会话相关联的其它信息或命令。
可通过信道116将由组200、206和208中的客户端装置提供的返回数据和/或请求分别作为客户端信号220、224和228提供回服务器100。此类返回数据和/或请求的实例包括(但不限于)QoE/DBA/QoS度量数据(包括上文提到的QoE报告)、关于连接到一多播组或与一多播组断开的请求、使得服务器识别对于特定客户端装置来说是适宜的流和/或组的请求、QoE协商数据或其它命令和数据。
如上所述,如果(例如)服务器100确定QoE或DBA结果指示不同的流可提供更适宜的服务,那么一实施例允许至少一个客户端装置切换到一不同流。根据一个实施例,服务器100可发信号通知单个客户端装置(例如组200中的客户端装置202)进行切换且/或可发信号通知相同组中的多个客户端装置(例如组200中的客户端装置202和204)进行切换。
在上述又一实施例中,一个组中的客户端装置都接收相同的流(例如,相同的位速率)而并非单独定制的流——即使这些客户端装置可识别为具有不同需要。因此,在此实施例中,所述客户端装置可一致地具有一经更新的流,且/或客户端装置(经更新的流对于其不是适宜的)可具有切换到另一组的选项。
切换到不同流(例如具有不同位速率的流)的服务器信号可包括切换到相同组中不同流的信号。也就是说,由于服务器100向每个组200、206和208提供多个不同流,因而其中的客户端装置能更灵活地选择相同组中可用的不同流而不是必须切换到另一组。保持客户端装置的组“隶属关系”(即将客户端装置保持在相同组中)将先前所讨论的“组切换”的潜在不利影响最小化。
在一实施例中,(例如)如果对于需要改变流的客户端装置在现有组中没有可用的合适的流,那么组之间的切换成为可能。在此情形下,服务器100可发信号通知这些客户端装置改变到新的组,且/或服务器100可向这些客户端装置提供信息以使其能够决定何时切换且切换到哪个组。而且,可使用QoE度量数据、DBA度量数据或能指示客户端装置特征和/或带宽条件的其它数据(其都可动态变化)来确定客户端装置是否、何时和何处应切换。
在一个实施例中,可使用层技术来提供所述多个流210、212、216等。举例来说,可将单个基层提供到每个组200、206和208,或可经由分离的多个流来将多个基层提供到每个组200、206和208。所述基层在所述组之间可以完全不同,或所述基层中的一些可为相同。
除基层之外,到每个组200、206和208的多个流也可提供各种增强层。各种增强层可(例如)具有不同的位速率,且接着客户端装置和/或服务器100可选择特定增强层以供每个客户端装置使用。在其它粒度水平中,每个增强层本身可被分配复数个不同的位速率。
还可基于其它特征(例如客户端装置特征、编码解码器类型、帧速率、分辨率、色彩设计和其它标准)来代替或另外执行分层。如以前,客户端装置可切换(如需要)到相同组中可用的不同层,或切换到其它组中可用的不同层。
在广播环境中,可提供与图2中所说明的那些类似的信号。也就是说,具有不同特征的多个流可用于客户端装置。最初,服务器100将传输(或客户端装置将调谐到)所述流中会导致最适宜结果的特定一者,例如具有适宜位速率的流。可在串流会话之前、期间或之后搜集QoE、DBA、QoS和/或其它度量数据,以估计是否应执行到不同流的切换。如果度量数据的估计暗示可能需要改变,那么客户端装置可切换到更适宜的流。
由于广播涉及将相同(或类似)内容发送到所有客户端装置,因而在一实施例中没有必要定义组(即,仅具有“一个”广播组)。然而,应理解,实际上可通过使用上述用于定义多播组的类似标准来定义多个广播组。
图3是用以在多播或广播环境中(例如)通过串流将内容传递到客户端装置的技术300的一实施例的流程图。在一实施例中,所述技术300中的至少一些元件可在存储于机器可读媒体上的软件或其它机器可读指令中实施,所述机器可读媒体例如为服务器100中的存储器,其上存储有可由一个或一个以上处理器执行的代码。应理解,技术300中展示的各种操作没有必要按所示的确切次序来进行,且可适当地添加、移除、修改、组合或以其任何组合处理各种操作。
在方框302处,配置组(例如多播组),且将客户端装置预订到所述组中。举例来说,客户端装置可加入一组以接收某特定串流视频节目的广播。在方框304处,从内容提供者102处接收内容,并由服务器100的代码转换器110将所述内容代码转换或另外转换为复数个独特的同时输出流,例如具有不同位速率的同时视频流。
在方框306处,以一种方式通过所述组将所述复数个输出流传递到客户端装置使得所述多个不同的输出流可用于每个组。在一个实施例中,每个组中的客户端装置可接着调谐以接收最适宜的流。在如上所述的另一实施例中,相同组中的客户端装置接收相同的流。在一个实施例中,服务器100指令客户端装置调谐到哪个流,在另一实施例中,所述客户端装置确定其希望接收哪个流。
在方框308处,将度量数据从客户端装置传送到服务器100。此度量数据可包括上述QoE度量数据、DBA度量数据和/或QoS度量数据或提供一关于体验/服务质量的指示的其它相关度量数据。可在串流会话之前、期间或之后搜集并传送度量数据。图1所示的服务器100的各种模块估计所述度量数据。
在方框310处,服务器100确定所述客户端装置中的一者或一者以上是否需要切换流。如果不需要切换流,那么服务器100继续在方框308处接收并估计度量数据。如果度量数据的估计建议改变,那么服务器100在方框312处确定是否可在相同多播组中使用适合的流或另外确定所述组内的切换是否可能。
如果所述组内的切换是可能的,那么在方框314处将客户端装置切换到新的流。否则,服务器100在另一组中寻找适合的流。如果服务器100定位此流,那么在方框316处将客户端装置切换到所述流(在不同组中)。重复所述过程以连续监视所述度量数据来确定随后是否需要执行流切换。
此说明书中所参考的且/或应用数据表中列举的所有以上美国专利、美国专利申请公开案、美国专利申请案、国外专利、围外专利申请案和非专利公开案都以全文引用的方式并入本文中。
不希望所说明的实施例的以上描述(包括发明摘要中的描述内容)为详尽的或将本发明限于所揭示的精确形式。尽管本文出于说明目的描述了特定实施例和实例,但在本发明范围内的各种等效修改都是可能的,且可在不脱离本发明精神和范围的情况下作出各种等效修改。
可鉴于以上详细描述来对本发明作出这些和其它修改。不应将所附权利要求书中所使用的术语理解为将本发明限于说明书和权利要求书中所揭示的特定实施例。而是,应全部由所附权利要求书确定本发明的范围,应根据权利要求阐述所建立起来的教义来理解所附权利要求书。
权利要求
1.一种用于将串流内容传递到复数个客户端装置的方法,所述方法包含使客户端装置与组关联;将多个同时独特流传递到每个组以允许每个组中的客户端装置分别接收所述独特流中的一者;接收并估计关于将所述流传递到所述客户端装置的度量数据;至少部分基于所估计的度量数据,使所述客户端装置中的至少一者切换到一相同组中的一不同流,所述不同流比所述相同组中的一当前流更适宜;和如果在一当前组中得不到一适宜的流,那么至少部分基于所估计的度量数据,使所述客户端装置中的所述至少一者切换到一不同组中的一不同流,所述不同流比所述当前组中的一当前流更适宜。
2.根据权利要求1所述的方法,其中使所述客户端装置与组关联包括使不同的客户端装置与各个不同的多播组关联。
3.根据权利要求1所述的方法,其中使所述客户端装置与组关联包括使所述客户端装置与至少一个广播组关联。
4.根据权利要求1所述的方法,其中使所述至少一个客户端装置切换到一不同流包括使所述客户端装置切换到一具有一基于客户端装置能力和信道条件的不同特征的流,其中所述特征可包括位速率、帧速率、分辨率、编码格式、色彩方案和用户概况信息,其中这些特征中的至少一者对于所述独特流可为相同,而某一其它特征在所述流中是不同的。
5.根据权利要求1所述的方法,其中接收并估计度量数据包括接收并估计以下一者或两者体验质量(QoE)度量数据;和关于客户端装置特征和信道条件的动态带宽适配(DBA)度量数据。
6.根据权利要求1所述的方法,其中使所述客户端装置中的所述至少一者切换到一不同流包括将服务器产生的指令发送到复数个客户端装置。
7.一种制造物品,其包含一机器可读媒体,其上面存储有指令,所述指令可由一处理器执行以通过以下步骤将串流内容传递到与多播组相关联的复数个客户端装置使多个独特流可用于每个组,以允许每个多播组中的大多数客户端装置接收所述独特流中对于整个所述组来说是适宜的一独特流;接收并估计关于将所述流传递到所述客户端装置的度量数据;至少部分基于所估计的度量数据,使所述客户端装置中的大部分切换到一相同多播组中的一不同流,所述不同流比所述相同多播组中的一当前流更适宜;和如果在一当前多播组中得不到一适宜的流,那么至少部分基于所估计的度量数据,使所述客户端装置中的至少其它客户端装置切换到一不同多播组中的一不同流,所述不同流比所述当前多播组中的一当前流更适宜,且另外使所述客户端装置仍留在所述当前多播组中。
8.根据权利要求7所述的制造物品,其中使所述至少一个客户端装置切换到一不同流的所述指令包括用以使所述客户端装置切换到一具有一不同位速率的流的指令。
9.根据权利要求7所述的制造物品,其中所述机器可读取媒体进一步包括存储在其上的指令,以将一具有内容的单个输入转换到,包括代码转换到具有所述内容的所述复数个同时独特流中。
10.根据权利要求7所述的制造物品,其中所述用以接收并估计度量数据的指令包括用以接收并估计以下一者或两者的指令体验质量(QoE)度量数据;和关于客户端装置特征和信道条件的动态带宽适配(DBA)度量数据,其中所述QoE和所述DBA度量数据可关于一组中的所述客户端装置中的某些客户端装置,并用于确定一不同流以提供给一组中的所有客户端装置。
11.根据权利要求7所述的制造物品,其中所述用以传递多个同时独特流的指令包括用以将基层和增强层作为多个独特流进行传递的指令。
12.一种用于将串流内容传递到复数个客户端装置的系统,所述系统包含用于使客户端装置与组关联的构件;用于将多个同时独特流传递到每个组以允许每个组中的客户端装置分别接收所述独特流中的一者的构件;用于接收并用于估计关于将所述流传递到所述客户端装置的度量数据的构件;用于至少部分基于所估计的度量数据,使所述客户端装置中的至少一者切换到一相同组中的一不同流的构件,其中所述不同流比所述相同组中的一当前流更适宜;和用于如果在一当前组中得不到一适宜的流那么至少部分基于所估计的度量数据使所述客户端装置中的所述至少一者切换到一不同组中的一不同流的构件,其中所述不同流比所述当前组中的一当前流更适宜。
13.根据权利要求12所述的系统,其中用于接收并用于估计所述度量数据的所述构件包括用于接收并用于估计体验质量(QoE)度量数据的构件,所述系统进一步包含用于在一服务器与一客户端装置之间协商QoE度量数据的构件;和用于结合速率适配数据来估计所述QoE度量数据以确定是否切换到一不同流的构件。
14.根据权利要求12所述的系统,其进一步包含用于指令单个客户端装置和多组客户端装置中的一者或两者切换到一不同流的构件。
15.一种用于将串流内容传递到与多播组相关联的复数个客户端装置的设备,所述设备包含一服务器,其将多个独特流传递到每个组以允许每个多播组中的客户端装置接收所述独特流中的一者;和至少一个模块,其与所述服务器通信以接收并估计关于将所述流传递到所述客户端装置的度量数据;其中,至少部分基于所估计的度量数据,所述服务器可使所述客户端装置中的至少一者切换到一相同多播组中的一不同流,其中所述不同流比所述相同多播组中的一当前流更适宜;且其中,如果在一当前多播组中得不到一适宜的流,那么至少部分基于所估计的度量数据,所述服务器可使所述客户端装置中的所述至少一者切换到一不同多播组中的一不同流,其中所述不同流比所述当前多播组中的一当前流更适宜。
16.根据权利要求15所述的设备,其中所述至少一个模块包括一第一模块,其接收并估计体验质量(QoE)度量数据;和一第二模块,其接收并估计关于客户端装置特征和信道条件的动态带宽适配(DBA)度量数据,所述QoE度量数据和DBA度量数据中的一者或两者中的至少一些可用于确定是否切换到一不同流。
17.根据权利要求15所述的设备,其进一步包含一第三模块,其接收并估计除所述QoE和DBA度量数据之外的度量数据;和至少一额外模块,其包括一第四模块以将一单个输入代码转换为所述复数个同时独特流。
18.根据权利要求15所述的设备,其进一步包含用于在一广播环境中将多个独特流传递到客户端装置的构件;和用以至少部分基于度量数据在所述广播环境中将所述客户端装置中的至少一些客户端装置从一个流切换到另一个流的构件。
19.根据权利要求15所述的设备,其中所述流是独特的,因为其包括至少一个基于客户端装置能力和信道条件的特征,其中此特征可包括位速率、帧速率、分辨率、编码格式和色彩方案,其中这些特征中的至少一者对于所述独特流可为相同,而某其它特征是不同的。
20.一种用于将串流内容传递到与多播组相关联的复数个客户端装置的设备,所述设备包含一服务器,其将多个独特流传递到每个组,以允许每个多播组中的客户端装置接收所述独特流中的一者,其中可基于商业规则来定义所述组中的至少一些组,所述商业规则可包括预订包;和至少一个模块,其与所述服务器通信以估计并实行所述商业规则,以确定所述预订包和相关联的流来传递到所述客户端装置;且其中,如果所述客户端装置的所述预订包发生改变,那么至少部分基于所估计的商业规则,所述服务器可使所述客户端装置中的至少一者切换到一相同多播组或不同多播组中的一不同流。
21.根据权利要求20所述的设备,其中所述预订包可与具有补充内容的流相关联,其中所述补充内容是至少部分基于配置数据而针对所述客户端装置中的至少一些用户定制的。
22.根据权利要求20所述的设备,其进一步包含一代码转换器以将一到所述服务器的输入流转换成复数个不同的输出流,其中所述输出流已至少部分基于所述商业规则针对所述组定制。
全文摘要
在有线和/或无线网络上的一多播和/或广播串流环境中,一服务器向每组(例如多播组)客户端装置提供复数个不同的流。各个组中的所述客户端装置中的每一者调谐到所述复数个流中最适宜的一者。由所述服务器收集并估计体验质量(QoE)度量数据或关于动态改变的客户端装置特征或信道条件的其它数据。如果所估计的度量数据的结果建议特定一个或一个以上客户端装置改变到一不同流,那么所述服务器将所述客户端装置切换到相同组中的一不同流,或如果在当前组中得不到所述流,则将所述客户端装置切换到一不同组中的一不同流。
文档编号H04L12/18GK1993928SQ200580026824
公开日2007年7月4日 申请日期2005年8月11日 优先权日2004年8月11日
发明者加姆泽·塞奇金, 拉利特·萨尔纳, 贾扬克·M·巴洛德 申请人:维迪亚特企业公司