基于前向纠错的多播订阅的制作方法

文档序号:7848209阅读:81来源:国知局
专利名称:基于前向纠错的多播订阅的制作方法
基于前向纠错的多播订阅背景在网络上的媒体内容流传送可以利用在内容源和网络这两者中的大量的资源。因此,点对点分发(即单播)有着不能针对目标消费者人口的规模很好缩放调整的趋势。点对多点分发(即多播)在许多情况下更加实用,因为在多播分发中,单个源将内容发送给多个消费者,这允许在源服务器处和整个网络的资源共享/节约。多播可以用于流传送任意合适类型的媒体内容,例如视频点播、电视等。然而,在确保当通过多播分发媒体内容时的通信可靠性等级时会遇到困难,因为协调通信进程中所涉及到的终端数目大于单播场景。一种增加可靠性的方案涉及利用来自消费者的反馈来触发数据恢复。然而,由于这样的反馈机制所使用的计算和通信资源量的原因,这些方法可能难以有效实施。概述 在此揭示了涉及基于前向纠错的多播订阅选择的各种实施例。例如,一个揭示的实施例提供了具有数据保持子系统的网络可访问的服务器,所述数据保持子系统保持了可由逻辑子系统执行以接收内容项、形成具有第一等级的前向纠错的第一版本的内容项并形成具有第二等级的前向纠错的第二版本的内容项的指令。所述指令进一步执行用于将第一版本的内容项流传送到第一多播地址,并且当流传送第一版本的内容项时,将第二版本的内容项流传送到第二多播地址。提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。附图
简述图I示意性示出包括网络可访问的服务器的网络环境的一个实施例,所述服务器被配置为根据本公开的实施例将媒体内容多播送给多个客户端计算设备。图2示出了根据本公开的实施例的实况多播的示例方法的流程图。图3示出了说明根据本公开的实施例的多个多媒体内容流的构造的示例数据流程图。图4示意性示出根据本公开的一实施例的多播分发树的示例。图5示出根据本公开的一个实施例的通过服务器所发送的多播流来接收多媒体内容的示例方法的流程图。详细描述通过将冗余引入数据流以允许消费者重构数据也可以解决多播传输中的通信可靠性。这样的方法被称为前向纠错。数据流中的冗余数据允许诸如客户端计算设备的消费者在客户端处使用冗余数据来纠正错误。因此,客户端计算设备可以在无需请求发送者(例如服务器)重新发送数据和/或发送附加数据的情况下纠正错误。当数据丢失量和模式处于目标设计限定之内时,与涉及客户端反馈的方法相比,前向纠错在本质上可以是更加简单的且可以提供更快的恢复。例如,某些实况媒体内容流传送可以利用数据丢失的客户端检测和给服务器的否定确认(NAK)来通过数据重传输进行错误校正。在这样的场景中,如果NAK的数目落在阈值之下,则重传输可以使用点对点(单播)传递,并且如果NAK的数目在阈值之上,则可以将重传输多播送给所有客户端。然而,如上所述,当网络中的数据丢失变得显著时,用于可靠多播的基于反馈的恢复不能针对客户端的数目很好地缩放调整。例如,多播重传输可以传播给所有客户端,而不管特定客户端是否已经经历了通信错误,因此,增加了带宽使用。而且,对这种重传输的支持可以涉及在服务器中的某个数量的数据存留和更加复杂的状态机,导致整体上更加复杂的解决方案。然而,前向纠错还可以对通信强加显著的开销,这对于某些消费者来说比其他消费者更加有利。插入到数据流中的冗余数据传播给多 播会话中的所有客户端,而不管它们是否需要所述冗余数据。通信故障的本性和强度可以随网络的位置和时间而改变。因此,在此揭示了涉及多播多个媒体内容项流的各种实施例,其中,每个多播流用不同等级的前向纠错来编码。这样,客户端计算设备可以在检测到数据丢失时通过动态切换到具有不同等级的前向纠错的多播流来作出反应,如下将更详细描述的。图I示出服务器100,被配置用于将诸如多媒体节目的内容102多播送到多个客户端计算设备104,所述客户端计算设备104被配置为通过网络106与服务器100连接。作为示例,网络106可以是网际协议(IP)网络,而服务器100可以被配置为流传送网际协议电视(IPTV)0 IPTV的非限制性示例包括点播内容和实况电视。服务器100可以被配置为通过同时流传送客户端计算设备104可以订阅的多个内容流来多播内容102。这样的多个内容流在图I中示作用于任意数目K个内容项的任意数目N个流。客户端计算设备104可以包括计算机、游戏控制台、移动设备、高清电视、机顶盒和/或任意其他合适类型的客户端设备。服务器100可以被配置为将每个内容项流流传送给网络106上的多播地址,并且一个或多个客户端计算设备104,诸如示例的客户端计算设备108,可以通过订阅对应的地址来接收所需的流。而且,可以使用一个或多个多播使能路由器110 (即多播路由器)来复制并传递内容。例如,服务器100可以将内容包发送给多播路由器110,并且随后,由多播路由器110在网络中按需复制所述内容,从而允许到客户端计算设备104的有效传递。这样的路由器可以以多播分发树形式来表示节点,该树是自调节和缩放调整的,如参照图4更详细讨论的那样。服务器可以被进一步配置为传送客户端清单文件,所述客户端清单文件标识了可用于订阅的多播流以及每个流的属性(例如前向纠错的等级、比特率等),如参照图2和5更详细描述的那样。服务器100还包括逻辑子系统112和数据保持子系统114。服务器100可以还包括图I中未示出的其他组件。应该理解,术语“服务器”可用于描述单个服务器、多个服务器等。逻辑子系统112可包括被配置为执行诸如指令116的一个或多个指令的一个或多个物理设备。例如,逻辑子系统112可被配置成执行一个或多个指令,该一个或多个指令是一个或多个程序、例程、对象、组件、数据结构、或其它逻辑构造的一部分。可实现这样的指令以执行任务、实现数据类型、变换一个或多个设备的状态、或以其他方式得到所希望的结果。逻辑子系统可包括被配置为执行软件指令的一个或多个处理器。附加地或替代地,逻辑子系统可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机。逻辑子系统可任选地包括分布在两个或更多个设备上的独立组件,这些独立组件在一些实施例中可被远程放置。数据保持子系统114可包括一个或多个物理设备,该一个或多个物理设备被配置成保持诸如内容102的数据和/或诸如指令116的指令,所述指令可由逻辑子系统执行以实现此处所述的方法和过程。在实现这样的方法和过程时,可以变换数据保持子系统114的状态(例如,以保持不同的数据)。数据保持子系统114可包括可移动介质和/或内置设备。数据保存子系统114可包括光学存储器设备、半导体存储器设备、和/或磁存储器设备等。数据保持子系统114可包括具有以下特性中的一个或多个特性的设备易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、以及内容可寻址。在某些实施例中,可以将逻辑子系统112和数据保持子系统114集成到一个或更多个常见设备中,如专用集成电路或片上系统。数据保持子系统114可以包括可由逻辑子系统112执行的以如上所述地流传送多媒体节目的指令,以及可执行以从接收自内容生产者或其他内容源的内容项中形成具有不同等级的前向纠错的各种流的指令。而且,在一些情况下,数据保持子系统还可以采用计算机可读可移动介质的形式,该计算机可读可移动介质可用于存储和/或传送可执行以实现 此处所述的方法和过程的数据和/或指令。图2示出根据本公开的用于流传送内容的方法200的示例实施例。在202,方法200包括接收诸如媒体内容项的内容项。如上所述,在一些实施例中,这样的内容项可以是诸如从诸如实况音频-视频源的源接收的实况电视多媒体项的多媒体节目,所述实况音频-视频源包括例如广播电视源、电影产品源等。在其他实施例中,可以从任意其他合适的源接收任意其他合适的内容项。所述内容项可以是任意数据量,并且它可以是较大实体的片断或数据流。例如,当小的数据块从源到达时,服务器可以接收并处理它们。接着,在204,方法200包括形成具有第一等级前向纠错的第一版本的内容项。例如,服务器可以形成用于流传送的文件,并通过产生冗余数据和将冗余数据嵌入到流中来在该文件内编码期望等级的前向纠错。由于把冗余数据添加到文件会增加流的大小,因此,在文件的质量等级和所添加的冗余数据量之间可以进行平衡,以便流的比特率具有期望的第一比特率,如在206中所示。作为平衡用于流传送的文件的质量等级和前向纠错等级的特定示例,以第一、较闻等级的如向纠错编码的IOMbps流与不具有如向纠错的IOMbps流相比具有更闻的错误复原力但却有更低的质量等级。类似地,以第二、较低等级的前向纠错编码的IOMbps流与具有第一、较高等级的前向纠错的IOMbps流相比具有较低的错误复原力但却有更高的质量等级,因为在该流中加入了更少量的冗余数据,但与不具有前向纠错的IOMbps流相比却有更好的错误复原力及较低的质量。在208,方法200包括形成具有第二等级前向纠错的第二版本的内容项。在多播上下文中,第一版本和第二版本的内容项可以是由服务器从单个内容项中创建的多个流中的两个流。例如,所述内容项可以是实况电视运动会,而服务器可以创建十个不同的内容流,每个流具有不同等级的前向纠错。如上所述,这在图I中示出为任意数目K个内容项中的每个内容项的任意数目N个流。在一些实施例中,第二版本可以具有与第一版本的内容项相当的比特率以允许多播多个流,所述多个流的每个具有相同的比特率但却有不同等级的前向纠错。在其他实施例中,第一版本和第二版本的内容项可以具有不同等级的前向纠错和不同的比特率。作为这样的实施例的一个示例,服务器可以以多个比特率的每个比特率来形成多个版本的内容项,其中,在选中比特率的每个版本的内容项具有与相同比特率的其他版本不相同的等级的前向纠错。在一些实施例中,形成第一和第二版本的内容项还可以包括将内容项转码为不同的格式。例如,可以通过转码内容项并将第一等级的前向纠错嵌入到该内容项中来形成第一版本的内容项,并且类似地,可以通过转码内容项并将第二等级的前向纠错嵌入到该内容项中来形成第二版本的内容项。在上面介绍的实况电视运动会的示例中,可以从广播网络接收实况电视并将其转码成适于IPTV环境的不同的格式。图3示出说明从所接收的内容项中生成具有不同等级的前向纠错的多个内容流的方案的实施例的图300。首先,接收原始内容项,并随后将它们可选地转码成与原始内容不同的格式,如在302处所示。接着,可以从所接收的内容项中创建N个多播流,如在304处所示。应该理解,在其他实施例中,可以不将原始内容转码成另一格式,并且,在304处形 成的N个多播流可以具有与原始内容项相同的格式。应该进一步理解,在304处形成N个多播流可以包括形成每个流都具有相同的比特率,或形成具有不同比特率的流。接着,如在306处所示,可以生成N个不同等级的前向纠错,并且可以将一个等级的前向纠错加入到每个流中,这样,产生了 N个多播流,每个多播流具有不同等级的前向纠错。在一些实施例中,具有不同等级的前向纠错的N个多播流可以具有相同的比特率或不同的比特率。在前一种情况下,可以调整每个流的质量等级以便补偿要加入到流中的前向纠错数据量,并且使得所述流能维持期望的比特率。或者,可以不改变每个流的媒体质量,或者使其下降到没有完全补偿加入的冗余数据量的水平,这样,加入前向纠错就改变了该流的比特率。应该理解,虽然在图3中以彼此不同的方式来描述了在304处形成流并且在306处引入前向纠错数据,但是可以在单个过程中生成前向纠错数据并将其加入到流中。返回到图2,一旦形成了多播流,在212,方法200包括将第一版本的内容项流传送到第一多播地址。类似地,在214,方法包括在流传送第一版本的内容项的同时将第二版本的内容项流传送到第二多播地址。例如,如图I所示,内容A的一个版本,即A1,可以通过多播路由器118被流传送给多播流,而内容A的另一个版本,如An,可以通过诸如多播路由器120的另一路由器被流传送给多播流。作为一个特定使用示例,服务器可以将第一版本的内容项和第二版本的内容项作为实况电视通过网际协议电视(IPTV)多播来进行流传送。通过将每个版本的内容项流传送给多播地址,每个多播路由器可以随后按需复制所述流以提供到客户端的有效传递。如上介绍的,多播路由器可以以多播分发树形式表示节点,该多播分发树是自调节和缩放调整的。多播分发树可以控制多播业务通过网络将业务传递给所有客户端的路径。这样,多播分发树可以自调节以在出现问题时为客户端提供数据。图4说明了在网络402内的示例多播分发树400。内容可源自向服务器进行馈送的诸如音频-视频源404的多媒体源(例如实况视频和音频源),所述服务器被配置为如上所述将流转换成流传送格式,并生成具有多个等级前向纠错的各版本的内容项。作为示例,这种服务器可以使用多级前向纠错(FEC)质量等级编码器406以生成具有不同等级的前向纠错的内容。流传送格式可允许客户端在内容流之间切换,并且呈现原始内容相一致的虚拟重构,但所接收的实际数据可能源自不同的流。如上所述,在一些实施例中,具有不同等级的前向纠错的每个内容项流可以以相同比特率编码。类似地,可以为单个内容项都生成多个比特率和多个等级的前向纠错。在多播分发场景中,随后,服务器可以始终使用不同的多播地址作为目的地来流传送所有可供选择的质量等级。例如,多播地址可以将流定向给在多播分发树400内作为节点408的路由器。这些路由器可以将内容提供给客户端计算设备410。例如,客户端计算设备410因此可以订阅具有期望质量等级和前向纠错等级的流。
因为网络数据丢失可以在网络元件(例如交换机、路由器、无线链路)丢包时发生,因此,这些元件的状态会影响位于该元件下游的所有多播客户端。如果所有的客户端实施相同的关于纠错的行动,则给定的丢失特性将触发下游客户端切换质量等级。这样,所述多播分发树将自调节以便具有较高数据丢失的分支(例如示例的高丢失网络节点412)将接收具有较高错误复原力的流,而具有较少数据丢失的分支将接收具有较低错误复原力以及较高质量的流。返回到图2,基于如方法200所示的前向纠错的多播流传送可以提供一种简单且有效的方式来用有限的资源实现在多播环境中的多级可靠媒体流传送,其中所述多级可靠性是通过用不同等级的前向纠错编码流来实现的。媒体质量等级可以与前向纠错所需的冗余数据量进行平衡以便如果需要的话将流比特率保持在目标限定之内。而且,在一些实施例中,通过使用允许客户端以其认为合适的方式在流之间动态切换的流传送技术来将多个流捆绑在一起。例如,这样的流传送方案可以允许在媒体流中为流之间的干净(clean)\不中断的切换定义同步点,所述点对于媒体呈现来说是透明的。为了允许客户端确定来自服务器的什么多播流是可用的,方法200可以还包括向客户端传送客户端清单文件,该文件标识了可以用于订阅的多播流以及它们的属性。这样,客户端清单文件可以标识第一版本的内容项和第二版本的内容项,并且可以指定第一版本的内容项使用第一等级的前向纠错,而第二版本的内容项使用第二等级的前向纠错。这样的客户端清单文件可以进一步标识每个多播流的其他属性,例如每个流的比特率。客户端清单还可以标识诸如使用的编解码器、视频分辨率、标记、字幕等等之类的流的属性。客户端清单可以具有任意合适的形式。作为非限制性示例,客户端清单文件可以包括可扩展标记语言(XML)文件。方法200允许服务器多播单个内容项的不同的流,这些流用各种等级的前向纠错来编码。这有助于在将内容从提供者传递到消费者的“最后一里”的带宽限制之内提供最佳的质量,并允许客户端通过动态切换到具有不同等级的前向纠错的多播流来对检测到的数据丢失做出反应。这样,基于前向纠错的多播订阅允许客户端用有限的带宽并在不需要使用反馈信道和数据重传输的情况下对在多播环境中的媒体(例如视频和音频)质量和错误复原力进行折衷。现在转向客户端视角,图5说明了通过服务器所发送的多播流在客户端计算设备处接收多媒体内容的方法500。应该理解,通过存储在位于客户端设备的数据保持子系统中的指令可以实现方法500,这些指令可由客户端设备的逻辑子系统来执行,如针对图I中所示出的具有逻辑子系统122、数据保持子系统124以及显示子系统126的示例客户端计算设备108所描绘的。而且,在一些情况下,数据保持子系统还可以采用计算机可读可移动介质的形式,该计算机可读可移动介质可用于存储和/或传送可执行以实现此处所述的方法和过程的数据和/或指令。当被包括时,显示子系统126可用于呈现从服务器100接收的或由数据保持子系统124以其他方式所保持的数据的可视表示。在此处所描述的方法和过程改变由数据保持子系统保持的数据,并由此变换数据保持子系统的状态时,同样可以变换显示子系统126的状态以在视觉上表示底层数据的改变。显示子系统126可以包括使用实际上任何类型的技术的一个或多个显示设备。可将此类显示设备与逻辑子系统122和/或数据保持子系统124 —起组合在共享封装中,或此类显示设备可以是外围显示设备。返回到图5,在502,方法500包括接收来自服务器的客户端清单文件。如上所述,客户端清单文件标识了可用于订阅的多播流,其中,多个多播流中的每个具有基于被被编码到该多播流中的前向纠错的等级的不同质量等级。而且,除了基于前向纠错的等级之外,质量等级还可以基于该多播流的比特率。在504,方法500包括订阅多个多播流的第一多播
流。在这样做时,客户端计算设备随后接收第一多播流。接着,在506,方法500包括在客户端计算设备处检测回放性能中的变化。计算设备可以检测回放性能中任意合适类型的变化。例如,方法500可以包括通过确定数据丢失量(如508所示)来检测回放性能中的变化,所述确定数据丢失量是通过将数据丢失量与阈值进行比较(如510所示)实现的。作为另一个示例,方法500可以通过检测网络性能中的变化(如512所示)来检测回放性能中的变化。在514,方法500包括响应于检测到回放性能中的变化,基于第二多播流的质量等级订阅多个多播流中的第二多播流。这样,客户端计算设备可以通过动态切换到具有不同等级的前向纠错的多播流来对数据丢失做出反应。在一些实施例中,方法500可以进一步包括放弃对第一多播流的订阅,如在516处所示。这样,如果客户端检测到过多的数据丢失,以致第一多播流中的前向纠错的等级不足够(例如大于数据丢失的阈值等级),则客户端可以切换到不同的质量等级,这意味着它可以放弃对原始多播流的订阅,而订阅具有更高等级的前向纠错的流。在一些实施例中,客户端计算设备可以在放弃旧的质量等级之前就加入新的质量等级,以便使得过渡中的服务中断最小化。这样,放弃对第一多播流的订阅可以包括在订阅了第二多播流之后再放弃对第一多播流的订阅。在其他实施例中,可以在接收到第二多播流之前就放弃对第一多播流的订阅。应该理解,在某些情况下,客户端计算设备可以切换到具有较低前向纠错等级的多播流。这种情况可以在例如客户端计算设备检测到回放性能中数据丢失量低于阈值的变化时发生。因此,客户端可以通过订阅具有比第一多播流更低等级的前向纠错的第二多播流来寻找具有较少冗余数据和较高视频质量的流。应该理解,此处所述的配置和/或方法在本质上是示例性的,并且这些具体实施例或示例不应被认为是局限性的,因为多个变体是可能的。此处所述的具体例程或方法可表示任何数量的处理策略中的一个或多个。由此,所示出的各个动作可以按所示顺序执行、按其他顺序执行、并行地执行、或者在某些情况下被省略。同样,可以改变上述过程的次序。本公开的主题包括各种过程、系统和配置、此处所公开的其他特征、功能、动作、和/或特性、以及其任何和全部等效物的所有新颖和非显而易见的组合和子组合。
权利要求
1.一种具有数据保持子系统的网络可访问服务器,所述数据保持子系统保持了可由逻辑子系统执行以执行下述步骤的指令 接收内容项; 形成具有第一等级的前向纠错的第一版本的内容项; 形成具有第二等级的前向纠错的第二版本的内容项; 将所述第一版本的内容项流传送到第一多播地址;以及 在流传送所述第一版本的内容项时,将所述第二版本的内容项流传送到第二多播地址。
2.如权利要求I所述的网络可访问服务器,其特征在于,可执行所述指令以将所述第一版本的内容项和所述第二版本的内容项作为实况电视通过网际协议电视(IPTV)多播来进行流传送。
3.如权利要求I所述的网络可访问服务器,其特征在于,所述第一版本的内容项和所述第二版本的内容项具有相同的比特率。
4.如权利要求I所述的网络可访问服务器,其特征在于,所述第一版本的内容项和所述第二版本的内容项具有不同的比特率。
5.如权利要求I所述的网络可访问服务器,其特征在于,可执行所述指令来以多种比特率的每个比特率形成多个版本的内容项。
6.如权利要求I所述的网络可访问服务器,其特征在于,可执行所述指令以通过将所述内容项转码并将所述第一等级的前向纠错嵌入到所述内容项中来形成所述第一版本的内容项,并且通过将所述内容项转码并将所述第二等级的前向纠错嵌入到所述内容项中来形成所述第二版本的内容项。
7.如权利要求I所述的网络可访问服务器,其特征在于,可进一步执行所述指令以传送客户端清单文件,所述客户端清单文件标识所述第一版本的内容项和第二版本的内容项,并且指定了所述第一版本的内容项使用所述第一等级的前向纠错,而所述第二版本的内容项使用所述第二等级的前向纠错。
8.—种在配置为通过网络与服务器相连的客户端计算设备上通过由所述服务器发送的多播流来接收多媒体内容的方法,其特征在于,所述方法包括 接收客户端清单文件,所述客户端清单文件标识了可用于订阅的多个多播流,其中,所述多个多播流中的每个具有基于一个被编码到该多播流中的前向纠错的等级的不同的质量等级; 订阅所述多个多播流的第一多播流; 检测在所述客户端计算设备处的回放性能中的变化;以及 作为响应,基于所述多个多播流的第二多播流的质量等级订阅所述第二多播流。
9.如权利要求8所述的方法,其特征在于,对于所述多个多播流的每个,除了基于前向纠错的等级之外,所述多播流的质量等级进一步基于所述多播流的比特率。
10.如权利要求8所述的方法,其特征在于,检测回放性能中的所述变化包括确定数据丢失量。
11.如权利要求10所述的方法,其特征在于,所述数据丢失量大于阈值,而所述第二多播流具有比所述第一多播流更高的前向纠错等级。
12.如权利要求10所述的方法,其特征在于,所述数据丢失量低于阈值,而所述第二多播流具有比所述第一多播流更低的前向纠错等级。
13.如权利要求8所述的方法,其特征在于,进一步包括放弃对所述第一多播流的订阅。
14.如权利要求13所述的方法,其特征在于,放弃对第一多播流的订阅包括在订阅所述第二多播流之后再放弃对所述第一多播流的订阅。
15.如权利要求8所述的方法,其特征在于,检测回放性能中的所述变化包括检测网络性能中的变化。
全文摘要
在此揭示了涉及基于前向纠错的多播订阅的各种实施例。一个揭示的实施例提供了具有数据保持子系统的网络可访问的服务器,所述数据保持子系统保持了可由逻辑子系统执行以接收内容项、并且形成具有第一等级的前向纠错的第一版本的内容项以及具有第二等级的前向纠错的第二版本的内容项的指令。所述指令进一步可执行用于将第一版本的内容项流传送到第一多播地址,并且当流传送第一版本的内容项时,将第二版本的内容项流传送到第二多播地址。
文档编号H04N21/6405GK102763429SQ201180010313
公开日2012年10月31日 申请日期2011年2月17日 优先权日2010年2月22日
发明者E·S·C·塔卡哈希 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1