用于对等订户小区的多源和弹性按需点播视频流媒体系统转让专利

申请号 : CN200680038239.1

文献号 : CN101305612B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·古斯A·哈比布

申请人 : 诺基亚西门子通信有限责任两合公司

摘要 :

集中式按需点播视频(VoD)系统提供了有限的内容和有限的归档能力。对等网络允许用户直接在对等方之间共享更多选择的内容,但是各对等方之间的连接可能只有有限的上行链路带宽并且可能不可靠。根据各实施例,本发明设想了用于在异构对等网络内从一个或多个源进行流数据的高质量和弹性的传输的系统和方法,以便解决这些和其他问题。

权利要求 :

1.一种用于在服务提供商的网络中接收内容的系统,所述系统的特征在于:多个节点的订户小区对等网络,其中每个节点包括被适配来与电视机连接的设备;

包括所述内容的流数据的接收器,该接收器是所述订户小区对等网络中的所述多个节点之一,所述流数据包括多个块,其中所述接收器能够通过所述服务提供商的网络提出针对所述内容的需求;以及供应方组,所述供应方组包括有效供应方组和备用供应方组,其中所述供应方组中的每个供应方是所述订户小区对等网络中的所述多个节点中实际录制了所述内容的一个节点,其中每个有效供应方向所述接收器发送不同于由其他有效供应方发送的指定流数据部分的指定流数据部分,并且其中每个备用供应方准备好在特定有效供应方的情况下向所述接收器发送不同于其他备用供应方所发送的指定流数据部分的指定流数据部分;

其中,对于所述接收器已经提出了所述需求的所述内容的所述多个块中的每个块,所述接收器可操作来:利用FEC编码开销比;

用信号通知每个有效供应方以单独分配的数据速率发送利用所述FEC编码开销比进行了FEC编码的块的至少单独分配的片断;

接收FEC编码块的段,其中每个段表示所述单独分配的片断至少一部分;

基于所述段的聚集来解码所述FEC编码块并且将已解码块存储在缓冲器中;

监控与每个有效供应方的网络连接的性能;

监控该缓冲器以便检测出会导致上溢或下溢的状况;以及基于所述网络连接的性能以及所述缓冲器的状况来执行质量适配,以避免到达该缓冲器的下溢或上溢。

2.一种用于通过服务提供商的网络接收内容的方法,所述方法的特征在于以下步骤:从订户小区对等网络中的候选供应方组中选择供应方组以作为共同发送所述内容的有效供应方组,以及从所述候选供应方组中选择另一供应方组以作为备用供应方组,其中,所述订户小区对等网络包括分别被适配来与电视机进行连接的设备,其中所述候选供应方包括所述设备,并且其中所述内容包括多个流数据块;以及对于要被接收的所述多个流数据块中的每个块:

利用FEC编码开销比;

用信号通知每个有效供应方以单独分配的数据速率发送利用所述FEC编码开销比进行了FEC编码的块的至少单独分配的片断;

接收该FEC编码块的段,其中每个段表示所述单独分配的片断的至少一部分;

基于所述段的聚集解码所述FEC编码块并且将已解码块存储在缓冲器中;

监控与每个有效供应方的网络连接的性能;

监控该缓冲器以便检测出会导致上溢或下溢的状况;以及基于所述网络连接的性能以及所述缓冲器的状况来执行质量适配,以避免到达该缓冲器的下溢或上溢。

3.根据权利要求2所述的方法,其中,所述流数据是音频数据、视频数据或全部二者。

4.根据权利要求2所述的方法,其中,所述订户小区对等网络包括机顶盒STB、个人计算机PC或移动计算设备的任意组合,所述机顶盒STB、个人计算机PC或移动计算设备中的每个都作为供应方、接收器或全部二者进行操作。

5.根据权利要求2所述的方法,其中,选择供应方组是基于使用选自以下组的度量的任意组合的等级,所述组包括:供应方的供给或接收状态、可用上行链路带宽、处理能力、可靠性历史、路径等待时间、分组丢失以及公平性。

6.根据权利要求5所述的方法,其中,可靠性历史是基于设备故障率、网络连接时间以及供应方的内容可用性的任意组合。

7.根据权利要求5所述的方法,其中,公平性是基于负荷平衡和供应方的先前选择历史的任意组合。

8.根据权利要求2所述的方法,其中,监控与每个有效供应方的网络连接的性能是被动的,并且是基于实际从该供应方接收到的流数据的度量。

9.根据权利要求2所述的方法,其中,监控与每个有效供应方的连接的性能包括:检测该有效供应方是否经历了网络波动、是否发生了故障或者是否删除了要作为流数据被供给的内容。

10.根据权利要求2所述的方法,其中,监控所述缓冲器包括监控当前缓冲器大小、当前播放速率以及当前流送速率。

11.根据权利要求2所述的方法,其中,执行质量适配包括以下各项中的一项或多项:速率分配调节;

供应方组调节;以及

FEC编码参数调节。

12.根据权利要求11所述的方法,其中,所述速率分配调节包括以下各项中的一项或多项:为有效供应方分配新的所分配的数据速率;以及

为有效供应方分配新的所分配的片断。

13.根据权利要求11所述的方法,其中,所述供应方组调节包括以下各项中的一项或多项:从所述有效供应方组中去除有效供应方;

把备用供应方添加到所述有效供应方组中;以及

把候选供应方添加到所述备用供应方组中。

14.根据权利要求11所述的方法,其中,编码参数调节包括以下各项中的一项或多项:利用新的FEC编码开销比;以及

利用新的FEC编码方案。

15.根据权利要求2所述的方法,还包括:从所述对等网络的搜索引擎获得供应方的候选组。

16.根据权利要求2所述的方法,还包括:在流数据的所述有效供应方组中确定要被用作流数据源的媒体文件的一个或多个拷贝内的公共起始点。

17.根据权利要求16所述的方法,其中,在所述有效供应方组中确定媒体文件内的公共起始点包括:限定时间间隔;

从每个有效供应方接收一组参考对象,其中每个参考对象对应于在所述时间间隔期间出现在媒体文件内的参考帧;

把所接收到的各组参考对象进行比较,以便识别出所有组参考对象所共有的公共参考对象;以及把所述公共起始点设置成对应于该公共参考对象的参考帧。

18.根据权利要求17所述的方法,其中,所述媒体文件是视频文件,每个参考帧是视频帧,并且每个参考对象是散列值。

19.根据权利要求17所述的方法,其中,所述时间间隔与连接到所述订户小区对等网络的设备的时钟同步相关。

20.一种用于通过服务提供商的网络供给内容的系统,所述系统的特征在于:接收器,该接收器是订户小区对等网络中的节点,其中,所述订户小区对等网络包括分别被适配来与电视机进行连接的设备,并且其中所述内容包括多个流数据块;以及分别录制了所述内容的供应方组,其中,所述供应方组中的每个供应方是所述订户小区对等网络中的所述节点之一;

其中,对于由所述接收器请求的所述内容的所述多个块中的每个块,每个供应方可操作来:从所述接收器接收信号,该信号指示要被利用的FEC编码开销比、单独分配的数据速率以及利用该FEC编码开销比对该块进行FEC编码操作所得到的FEC编码块的单独分配的片断;以及以所述单独分配的数据速率发送所述FEC编码块的所述被分配的片断的至少部分。

21.一种用于通过服务提供商的网络供给内容的方法,所述方法的特征在于以下步骤:录制所述内容,所述内容包括多个流数据块;

对于要由订户小区对等网络中提出了针对所述内容的请求的接收器接收的每个流数据块,其中所述订户小区对等网络包括分别被适配来与电视机进行连接的设备:从所述接收器接收信号,该信号指示要被利用的FEC编码开销比、单独分配的数据速率以及利用该FEC编码开销比对该块进行FEC编码操作所得到的FEC编码块的单独分配的片断;以及以所述单独分配的数据速率把所述FEC编码块的所述被分配的片断的至少部分发送到该接收器。

22.根据权利要求21所述的方法,其中,利用FEC编码开销比包括:对于所述块的后续FEC编码设置所述FEC编码开销比,或者使用所述FEC编码开销比来选择预先编码的块。

说明书 :

技术领域

本发明涉及到流数据,并且更确切地说涉及到来自对等订户小区(subscriber community)网络中的一个或多个源的按需点播流数据(ondemand streaming data)。

背景技术

机顶盒(STB)是一种允许把电视机变成到服务提供商的网络的用户接口的设备,用于诸如播放及录制电视节目之类的服务。通过使用STB的个人视频录像机(PVR)特征,用户可以记录所广播的内容,以便在以后进行观看。
按需点播视频(VoD)系统允许用户利用STB请求特定电视节目或其他视频内容,用于进行播放并且有可能进行录制。在典型的VoD系统中,用户可以使用STB与集中式服务提供商网络进行连接,并且可以使用电子节目指南(EPG),以便浏览由该服务提供商提供的可用内容的选集并且选择收看的节目。通常通过所述服务提供商的网络把视频数据作为流数据发送到用户的STB。
此外,一般来说,对等网络允许共享相同联网协议和软件的用户彼此互连以及直接访问彼此的资源。例如,服务提供商可以提供对等网络来允许计算机用户将其计算机连接到该网络并且直接访问彼此的资源(诸如数字内容文件)。服务提供商可以提供对等网络来允许其他设备(诸如STB)的用户将其设备连接到该网络并且直接访问彼此的资源,这些资源包括所存储的视频内容和电视节目。订户小区对等网络允许所述订户小区直接访问来自彼此的资源。用户可以从一个或多个对等方下载数据,通常是作为流数据来接收所述数据。
然而,因为传统的流媒体解决方案无法跟上对于服务提供商的网络的日益提高的带宽和弹性需求,这种需求就成为了挑战。诸如在图1中示出的当今的VoD解决方案通常提供电影标题的适度选集,并且可能仅仅把付费内容(premium content)高速缓存有限时间段(诸如24小时)。然而,如果VoD系统的订户能够选择他们想要观看的内容以及选择他们想要观看所述内容的时间(即按需点播),则所述VoD方法将可能被更加频繁地使用。这会提高顾客满意度,并且对于服务提供商来说,这会提高收益并减少客户流失。

发明内容

因此,为了特别扩增VoD系统,根据特定实施例,本发明涉及STB之间的对等(p2p)网络,其中每个STB是该网络的节点。此外,本发明的特定实施例涉及被称作“VoD到对等方”(V2P)的多源流媒体技术,该技术使得服务提供商的网络中的任何对等STB都能够获得并且观看来自该网络中的其他STB的视频内容。因此,根据本发明的实施例的这种V2P网络对于订户小区来说实际上变成了VoD系统,其中所述订户小区的任何成员都可以获得并且观看由该订户小区的任何其他成员所下载和/或所录制的内容。
一般来说,因为所述订户小区包括一组STB,所以V2P是多源视频流媒体系统,该多源视频流媒体系统实现了对来自STB的内容的按需点播观看。在这里连同对于根据本发明的原理设计的V2P系统的体系架构的每个组成部分的描述一起来呈现这种体系架构。这种V2P系统负责弹性的和高质量的视频流。
根据特定实施例,本发明提供了一种用于在服务提供商的订户小区对等网络中提供按需点播流数据的系统。该系统包括服务提供商,该服务提供商可操作来供给可下载的和可录制的内容,所述内容可以在被下载或被录制之后作为流数据而被供给;以及该系统还包括与所述服务提供商相关联并且被适配来与电视机连接的设备的订户小区对等网络。所述系统还包括:作为所述服务提供商的订户小区对等网络中的节点的接收器;以及供应方组,所述供应方组包括有效供应方和备用供应方。每个供应方都是所述服务提供商的订户小区对等网络中的节点,并且每个供应方都可操作来在从所述服务提供商或者从一个或多个其他节点下载和/或录制了内容之后供给按需点播流数据。所述接收器可操作来从所述供应方组中的一个或多个供应方接收由该接收器按需流送(stream)的流数据。
根据另一特定实施例,本发明提供一种用于在服务提供商的订户小区对等网络中提供按需点播流数据的方法。该方法包括以下步骤:为服务提供商的订户提供订户小区对等网络;提供可下载的和可录制的内容,所述内容可以被下载和/或被录制并且随后作为流数据被按需供给;以及提供与该订户小区对等网络相关联的搜索引擎。所述方法提供了以下步骤:把所述订户连接到所述订户小区对等网络,并且允许每个订户使用所述搜索引擎,以便搜索由连接到该订户小区对等网络的其他订户先前所下载的或所记录的内容,并且作为流数据从一个或多个所述其他订户按需接收这种被下载的和/或被记录的内容。
根据又一特定实施例,本发明提供一种用于在订户小区对等网络中接收按需点播流数据的系统。该系统包括:订户小区对等网络;作为该订户小区对等网络中的节点的流数据接收器;以及流数据供应方组。所述供应方组包括有效供应方组和备用供应方组,其中,所述供应方组中的每个供应方都是所述订户小区对等网络中的节点。所述流数据包括多个块。对于要被按需接收的每个流数据块,所述接收器可操作来:利用FEC编码开销比;用信号通知每个有效供应方来以单独分配的数据速率发送利用所述FEC编码开销比进行了FEC编码的块的至少单独分配的片断(fraction);接收该FEC编码块的段,其中每个段表示所述单独分配的片断的至少一部分;基于所述段的聚集来解码所述FEC编码块并且将已解码块存储在缓冲器中;监控与每个有效供应方的网络连接的性能;以及监控该缓冲器以便检测会导致上溢或下溢的状况;基于所述网络连接的性能以及所述缓冲器的状况来执行质量适配,以避免到达该缓冲器的下溢或上溢。
根据另一特定实施例,本发明提供一种用于在订户小区对等网络中接收按需点播流数据的方法。该方法包括以下步骤:从订户小区对等网络中的候选供应方组中选择供应方组以作为有效供应方组;以及从所述候选供应方组中选择另一供应方组以作为备用供应方组。对于要被接收的每个流数据块,所述方法包括以下步骤:利用FEC编码开销比;用信号通知每个有效供应方来以单独分配的数据速率发送利用所述FEC编码开销比进行了FEC编码的块的至少单独分配的片断;接收该FEC编码块的段,其中每个段表示所述单独分配的片断的至少一部分;基于所述段的聚集解码所述FEC编码块并且将已解码块存储在缓冲器中;监控与每个有效供应方的网络连接的性能;监控该缓冲器以便检测会导致上溢或下溢的状况;以及基于所述网络连接的性能和所述缓冲器的状况来执行质量适配,以避免到达该缓冲器的下溢或上溢。
根据另一特定实施例,本发明提供一种用于在订户小区对等网络中供给按需点播流数据的系统。该系统包括:作为订户小区对等网络中的节点的接收器;以及具有流数据的供应方组,其中,所述供应方组中的每个供应方是所述订户小区对等网络中的节点。所述流数据包括多个块,并且对于要被供给的每个流数据块,每个供应方可操作来:从所述接收器接收信号,该信号指示要被利用的FEC编码开销比、单独分配的数据速率以及利用该FEC编码开销比对该块进行FEC编码操作所得到的FEC编码块的单独分配的片断;以及以所述单独分配的数据速率发送所述FEC编码块的被分配的片断的至少部分。
根据又一特定实施例,本发明提供一种用于在订户小区对等网络中供给按需点播流数据的方法。对于要由订户小区对等网络中的接收器接收的每个流数据块,所述方法包括:从所述接收器接收信号,该信号指示要被利用的FEC编码开销比、单独分配的数据速率以及利用该FEC编码开销比对该块进行FEC编码操作所得到的FEC编码块的单独分配的片断;以及以所述单独分配的数据速率把所述FEC编码块的所述分配的片断的至少部分发送到该接收器。
根据另一特定实施例,本发明提供一种用于模拟流媒体视频数据的快进或快退重放的方法。该方法包括以下步骤:以流媒体速率接收流媒体视频数据;将所接收到的流媒体视频数据存储在缓冲器中,以供随后以对应于正常速度的重放速率重放;以及以高于所述正常速度的速度播放来自所述缓冲器的所存储的流媒体视频数据。所述方法还包括以下步骤:针对其中流媒体速率低于重放速率的下溢状况监控所述缓冲器;以及基于检测到下溢状况,在所存储的流媒体视频数据之间把预先确定的视频剪辑插入到该缓冲器中。
根据又一特定实施例,本发明提供一种用于模拟对流媒体视频数据进行快进或快退重放的方法。该方法包括以下步骤:以流媒体速率从视频文件接收流媒体视频数据;把所接收的流媒体视频数据存储在缓冲器中,以供随后以对应于正常观看速度的正常重放速率进行重放;以及接收针对以对应于加速观看速度的加速重放速率进行快进重放的命令。所述方法还包括以下步骤:从所述视频文件中的跳跃点开始接收流媒体视频数据;以及以高于所述正常重放速度的重放速率播放来自所述缓冲器的所存储的流媒体视频数据,以模拟加速重放速率下的重放。
下面将更加详细地描述本发明的这些和其他特定实施例。

附图说明

被合并在本说明书中并且构成本说明书的部分的附图图解说明了本发明的各方面,并且与描述一起用来解释本发明的原理。在方便的情况下,将在所有附图中使用相同的参考编号来指代相同的或类似的元件。
图1示出了用于实现传统的按需点播视频(VoD)服务的系统。
图2示出了用于通过由对等网络供给的附加内容来扩增传统的按需点播视频(VoD)服务的一个系统实施例。
图3是示出了长尾的曲线图。
图4示出了VoD到对等方(V2P)系统的一个实施例。
图5是示出了一种用于利用V2P系统执行流媒体会话的方法的流程图。
图6是示出了V2P系统的一个实施例的方框图。
图7是对等方选择排序等式的曲线图。
图8是示出了V2P接收器的方框图,该V2P接收器包括流管理模块的细节。
图9是示出了动态缓冲器管理技术如何能够避免缓冲器上溢或下溢的曲线图。
图10是示出了缓冲器管理方案的曲线图。
图11示出了用于连接监控中的简单二叉树。
图12示出了MPEG帧序列。
图13示出了被插入在视频数据之间以便模拟快进操作的视频剪辑。
图14是示出了V2P系统的一个实施例的方框图。
图15呈现了用于评估V2P系统的示例性设置。
图16示出了在高带宽环境中实现的V2P系统。
图17是V2P系统的一个实施例的方框图。
图18是示出了电视观看行为和长尾的曲线图。
图19A是示出了V2P系统能以标准清晰度(SD)质量输送的并发流的数目的曲线图。
图19B是示出了V2P系统能以SD质量输送的流的最大数目或累积数目的曲线图。
图20A是示出了V2P系统能以接近DVD质量输送的并发流的数目的曲线图。
图20B是示出了V2P系统能以接近DVD质量输送的并发流的数目的曲线图。
图21A是示出了V2P系统能以接近DVD质量输送的并发流的数目的曲线图。
图21B是示出了V2P系统能以接近DVD质量输送的并发流的数目的曲线图。
图22是示出了V2P系统的档案方面的曲线图。
图23是示出了一种用于识别公共视频帧的方法的流程图。

具体实施方式

如上所述,为了特别扩增VoD系统,根据特定实施例,本发明涉及STB之间的对等(p2p)网络,其中每个STB是该网络的节点。此外,本发明的特定实施例涉及被称作“VoD到对等方”(V2P)的多源流媒体技术,该技术使得服务提供商的网络中的任何对等方STB都能够获得并且观看来自该网络中的其他STB的视频内容。因此,根据本发明的实施例的这种V2P网络对于订户小区来说实际上变成了VoD系统,其中所述订户小区的任何成员都可以获得并且观看由该订户小区的任何其他成员所下载和/或所录制的内容。
一般来说,因为所述订户小区包括一组STB,所以V2P是多源视频流媒体系统,该系统实现了对来自STB的内容的按需观看。在这里连同对于根据本发明的原理设计的V2P系统的体系架构的每个组成部分的描述一起来呈现这种体系架构。这种V2P系统负责弹性的和高质量的视频流。
有利地,提供V2P服务的服务提供商会能够防止在由其所管理的p2p网络上的非法视频发布。具体来说,服务提供商可以把由订户STB所录制的内容限制到由该服务提供商所提供的内容,使得不存在用于将新的视频内容引入到STB中的机制(也就是说,只要涉及订户,所述系统就被封闭)。在对等方STB之间对于视频内容的任何后续共享都被限制到作为所述服务提供商的顾客(订户)的STB对等方的封闭小区。所述p2p网络可以被扩展来允许在没有非法共享内容的情况下把任何个人计算机(PC)或其他适当设备连接到该P2P网络。
对于服务提供商来说,本发明设想了用于在服务提供商的订户小区对等网络中提供按需点播流数据的系统和方法的各种实施例。用于在服务提供商的订户小区对等网络中提供按需点播流数据的系统的一个实施例包括:被适配来与电视机连接的设备的订户小区对等网络;以及可操作来供给可下载的及可录制的内容的服务提供商,所述内容可以在被下载或被录制之后作为流数据而被供给。在该系统中,存在内容接收器和提供所述内容的流数据供应方组(包括有效供应方和备用供应方)。每个供应方可操作来从所述服务提供商或者从一个或多个其他节点下载或录制了内容之后供给按需点播流数据。这种系统中的接收器可操作来从所述供应方组中的一个或多个供应方接收由该接收器按需流送的数据。所述接收器和供应方都是所述订户小区对等网络中的节点,并且每个节点可以是机顶盒或者被适配来与电视机和服务提供商的网络连接的任何其他设备。所述服务提供商提供诸如可以由所述订户小区中的节点下载和录制的音频数据、视频数据或全部二者之类的内容;并且可以从充当供应方的节点将所述可下载的及可录制的内容作为流数据来供给。
根据各实施例,可以通过搜索引擎来增强所述系统,所述搜索引擎允许用户利用内容浏览器来浏览内容以及从内容推荐器接收内容推荐。根据其他实施例,还可以通过奖励管理器(incentive manager)来进一步增强该系统,所述奖励管理器向参与流媒体会话的内容所有方、服务提供商以及供应方提供奖赏。根据其他实施例,可以另外通过数字版权管理器来增强该系统,所述数字版权管理器防止内容的非法发布。
结合前述内容,根据特定实施例,本发明提供一种用于在服务提供商的订户小区对等网络中提供按需点播流数据的方法,该方法包括:在为所述服务提供商的订户提供订户小区对等网络之后,把所述订户连接到该订户小区对等网络。该方法包括提供可下载的及可录制的内容,所述内容可以被下载和/或被录制并且随后作为流数据被按需供给。该方法还包括提供与该订户小区对等网络相关联的搜索引擎并且使得每个订户能够使用该搜索引擎以及按需接收所选数据。具体来说,订户使用该搜索引擎以便搜索由连接到该订户小区对等网络的其他订户先前所下载的或所录制的内容。然后,订户从一个或多个其他订户作为流数据按需接收这种被下载的和/或被录制的内容。
对于接收按需点播内容,本发明的各实施例还提供了用于从订户小区对等网络中的一个或多个供应方接收按需点播流数据的系统和方法。一个这种系统包括作为接收器工作的节点以及作为流数据供应方(包括有效供应方组和备用供应方组)工作的节点组。换句话说,所述接收器以及所述供应方组中的每个供应方都是所述订户小区对等网络中的节点。这种系统中的接收器接收流数据,该流数据包括音频数据、视频数据或全部二者。对于要被接收的每个流数据块,所述接收器利用FEC编码开销比,并且所述接收器用信号通知每个有效供应方以单独分配的数据速率发送利用所述FEC编码开销比进行了FEC编码的该块的至少单独分配的片断。该接收器接收所述FEC编码块的段,其中每个段表示所述单独分配的片断的至少一部分,该接收器还基于所述段的聚集来解码所述FEC编码块并且将已解码块存储在缓冲器中。所述接收器监控与每个有效供应方的网络连接的性能,并且还监控所述缓冲器来检测会导致上溢或下溢的状况。基于所述连接的性能以及所述缓冲器的状况,所述接收器执行质量适配,以避免到达该缓冲器的下溢或上溢。所述监控在流媒体会话中间检测供应方故障或内容删除,并且使用一组技术来处理供应方故障和内容删除,这些技术诸如是将备用对等方添加到所述有效组、各有效供应方之间的速率重分配以及进行FEC编码开销调节。
如所提及的那样,每个接收器以及供应方都是所述订户小区对等网络中的节点,并且每个这种设备都可以被适配来与电视机和服务提供商的网络进行连接。换句话说,根据各实施例,这种设备可以是机顶盒、个人计算机或移动计算设备。每个所述设备可以作为接收器、供应方或者全部二者来工作。基于一个或多个度量的任意组合来选择供应方,所述度量可以包括供应方的供给或接收状态、可用上行链路带宽、处理能力、可靠性历史、路径等待时间、分组丢失以及公平性。根据特定实施例,供应方的可靠性历史可以是基于设备故障率、网络连接时间以及内容可用性。公平性可以是基于负荷平衡以及优先级选择历史。
根据特定实施例,这种系统中的接收器可操作来基于监控与每个有效供应方的网络连接的性能来适配所述流媒体会话,其中包括检测供应方是否已经历了网络波动、设备故障或者是否删除了要作为流数据被供给的内容。所述接收器还可操作来被动地基于实际从每个供应方接收到的流数据的度量而监控每个网络连接的性能。所述接收器还基于监控所述缓冲器来适配所述流媒体会话,其中包括监控当前缓冲器大小、当前播放速率以及当前流送速率。在必要时,所述接收器可以动态地调节有效供应方之间的速率分配、调节各组供应方或者调节FEC编码参数。所述接收器还可操作来通过分配新的数据速率或通过分配块的新片断来调节有效供应方之间的速率分配。根据各种实施例,所述接收器还可以通过添加或去除有效供应方、向所述有效供应方组添加备用供应方或者向所述备用供应方组添加供应方来调节所述有效供应方组。所述接收器可以通过利用新的FEC编码开销比或者通过利用新的FEC编码方案来调节所述FEC编码参数。通过利用FEC编码开销比,所述接收器可以把所述FEC编码开销比设置成要由供应方在随后对块进行FEC编码时使用,或者所述接收器可以简单地用信号通知供应方选择利用特定FEC编码开销比进行了FEC编码的预先编码的块。
根据特定实施例,这种系统中的接收器还确定要在所述有效供应方组之间被用作流数据源的媒体文件的多个单独拷贝内的公共起始点。所述接收器定义时间间隔,并且从每个有效供应方接收一组参考对象。所述时间间隔可以与连接到所述订户小区网络的设备的时钟同步相关。每个所述参考对象对应于在所述时间间隔期间出现在所述媒体文件的单独拷贝内的参考帧。所述接收器比较所接收到的参考对象组,以便识别出所有参考对象组所共有的公共参考对象,并且把所述起始点设置成对应于该公共参考对象的参考帧。在视频文件中,每个参考帧可以是视频帧,并且每个参考对象可以是散列值。
对于按需供给内容,根据特定实施例的本发明还提供了用于在订户小区对等网络中供给按需点播流数据的系统和方法。一个这种实施例包括作为该网络中的节点的接收器以及多个流数据块的供应方组,其中,所述供应方组中的每个供应方也是该网络中的节点。对于将要供给的每个流数据块,这种系统中的每个供应方从所述接收器接收信号,该信号指示要被利用的FEC编码开销比、单独分配的数据速率以及利用该FEC编码开销比对该块进行FEC编码操作所得到的FEC编码块的单独分配的片断。每个供应方然后以所述单独分配的数据速率来发送所述FEC编码块的被分配的片断的至少一部分。
除了前述内容之外,本发明的各实施例还包括用于模拟对流媒体视频数据进行快进和快退重放的系统和方法。用于模拟对流媒体视频数据进行快进或快退重放的方法的一个实施例涉及到以下步骤:以流送速率接收流媒体视频数据;把所接收的流媒体视频数据存储在缓冲器中以供随后以对应于正常速度的重放速率进行重放;针对其中所述流送速率低于所述重放速率的下溢状况监控所述缓冲器;以及在所存储的流媒体视频数据之间将预定视频剪辑插入到该缓冲器中。
用于模拟对流媒体视频数据进行快进和快退重放的方法的另一个实施例涉及到以下步骤:以流送速率从视频文件接收流媒体视频数据;把所接收到的流媒体视频数据存储在缓冲器中以供随后以对应于正常观看速度的正常重放速率进行重放。该方法还涉及到以下步骤:接收针对以对应于加速观看速度的加速重放速率进行快进或快退重放的命令;从所述视频文件中的跳跃点开始接收流媒体视频数据;以及以高于所述正常重放速度的重放速率播放来自所述缓冲器的所存储的流媒体视频数据,以模拟所述加速重放速率下的重放。这样一种方法还可以包括在所存储的流媒体视频数据之间把预先确定的视频剪辑插入到所述缓冲器中。
在下面的描述中将参照附图,其中通过说明示出了多个实施例以及实践本发明的方式。应当理解的是,在不脱离本发明的范围的情况下可以利用其他实施例并且可以做出结构上和功能上的改变。
为了提供用于描述本发明的特定实施例的环境,图1呈现出了用于实现传统的视频点播(VoD)服务的系统。基于基础设施的媒体流(或集中式按需点播视频(VoD))解决方案通常包括一个或多个媒体服务器以及一组客户端,所述客户端通常是机顶盒(STB)。所述媒体服务器负责把所述媒体的按需流送到所述客户端。在某些情况下,这样的VoD系统还可以包括高速缓存代理。如图1所示,服务提供商VoD系统100包括受管理基础设施110、媒体服务器120以及内容库130。客户端设备140在这里被示为机顶盒(STB),该客户端设备140与服务提供商100可通信地耦合并且作为按需点播视频服务的部分从内容库130接收所下载的或所流送的内容。受管理基础设施110处理来自客户端设备140的下载和流送请求,并且管理服务提供商110与客户端设备140之间的控制和数据连接。例如,媒体服务器120通过受管理基础设施110执行从内容库130到客户端设备140的对所请求媒体的按需流送。
如之前所提及的那样,诸如在图1中示出的传统的VoD解决方案通常提供电影标题的适度选集,并且可以仅仅把付费内容高速缓存有限时间段(诸如24小时)。然而,如果VoD系统的订户被授权在其所希望的时间正好观看其想要观看的内容(即按需点播),则所述VoD方法将可能被更加频繁地使用。这提高顾客满意度,并且对于服务提供商来说,这提高收益并减少客户流失。
机顶盒(STB)是通过使用其个人视频录像机(PVR)特征而使得电视机能变成到服务提供商的网络的用户接口的设备,以用于诸如播放及录制电视节目之类的服务。根据本发明的一个实施例,每个订户的STB连接到服务提供商所管理的对等(p2p)网络,因此使得所述服务提供商的网络的任何订户能够将被下载和/或被录制到该订户的STB上的视频内容流送到其他同类订户的STB。
例如,任何订户都可以在其STB中下载和/或录制由所述服务提供商所提供的任何电视节目或其他内容。可以向所述服务提供商的p2p网络自动宣告或登记所述内容,以便使该内容对于其他订户可用。所述网络的任何订户都可以搜索该内容并且观看该内容。这种被称作V2P的系统是用于由STB形成的p2p网络的多源视频流媒体系统。也就是说,V2P提供了来自多个STB的高质量弹性视频流。
为此,图2图解说明了根据本发明的一个实施例的用于通过由对等网络供给的附加内容来扩增传统的按需点播视频(VoD)服务以便产生小区VoD系统的系统。如图所示,服务提供商VoD系统200包括受管理基础设施210、媒体服务器220、内容库230以及服务提供商所管理的对等(p2p)网络205。该p2p网络250还包括:对等设备260a、260b、260c,这些对等设备在这里被示为机顶盒(STB),并且在下面被标识为对等设备260;以及被扩增的内容库270a和270b,其在下面被标识为被扩增的内容库270。被扩增的内容库270包括被存储在对等设备260上的所下载的和/或所录制的内容。例如,对等设备260可以通过受管理基础设施210下载和/或记录以及存储来自内容库230的所流送的媒体。利用由连接到所述p2p网络250的任何订户所录制的被扩增的内容来扩增所述VoD系统的内容库230产生增加的内容选择并且产生小区VoD系统。
根据特定实施例,在这里被示为机顶盒(STB)的客户端设备240以通信方式与所述服务提供商VoD系统200耦合,并且作为按需点播视频服务的部分从内容库230或从被扩增的内容库270接收所下载的或所流送的内容。受管理基础设施210处理来自客户端设备240的下载和流送请求,并且管理服务提供商VoD网络200与客户端设备240之间的控制和数据连接。例如,媒体服务器220通过受管理基础设施210执行从内容库230到客户端设备240的对所请求媒体的按需流送。此外,客户端设备240可以向被扩增的内容库270请求对所请求媒体的按需流送。所述p2p网络250处理这些请求并且管理p2p网络250与客户端设备240之间的控制和数据连接,以便执行从被扩增的内容库250到客户端设备240的对所请求媒体的按需流送。
V2P解决方案并不一定意味着对于诸如在图1中示出的集中式VoD解决方案的替代,而是可以充当对这种解决方案的互补分布式扩增,正如图2中所示出的那样。VoD与V2P一起可以给订户带来大量内容。集中式VoD可以继续提供大多数最受欢迎的内容节目,而V2P则非常适于为所谓的“长尾”市场提供服务。    
图3是示出了所述长尾的曲线图。根据图3,大量较不受欢迎的项目的聚集对于组织可能合计为大量利润。许多企业可以通过销售仅仅引起较小受众群(audience segment)的兴趣的内容项目而获得利润。这些较不受欢迎的内容项目可以组成针对这样的商务在线的长尾。提供来自所述长尾的内容项目使得顾客能够找到、购买并且提到他们先前本来不会发现的内容。按照相同的方式,V2P可以利用所述按需点播视频市场的长尾现象的杠杆作用,这将实现一种针对内容所有方和服务提供商的强大商业模型,其中通过对于所述较不受欢迎的节目的反复观看而获得收益。此外,V2P奖赏共享其STB资源的订户。
V2P技术解决了传统的流媒体解决方案所无法解决的多个技术要求:这些技术要求包括有限上游带宽和弹性。
当前,DSL和电缆调制解调器是两种盛行的家用宽带技术。这两种技术都具有不对称的带宽属性。也就是说,下载带宽高于上传带宽。为了克服对于每个STB的上传带宽约束,V2P使用多个STB作为流媒体源,并且进行接收的STB协调来自所述多个供应方的流媒体会话。即使随着上传和下载带宽提高,V2P仍然可以被用来在对称的和不对称的带宽环境中提供高质量的和弹性的流。
网络和设备尚不完美,并且同样地,需要设计弹性机制来迎合不利的状况。由于xDSL或者电缆调制解调器连接上的V2P流以及所述网络本身是不可靠的,所以对于V2P来说,随着网络波动的弹性流是问题。在任何时候,STB都可能被断电,或者所述内容可能在流媒体会话期间被删除。为了提供连续且平滑的流,V2P要求非常稳健的故障恢复机制。根据特定实施例,V2P使用诸如智能对等选择、前向纠错(FEC)代码、动态速率分配、动态缓冲器管理以及基于网络断层扫描的连接监控之类的机制的组合,以便解决链接以及所述设备的不可靠性并且提供高质量的流。
图4示出了VoD到对等方(V2P)系统的实施例。如图所示,V2P系统400包括接收器410、发送器420a、420b和420c(在下面被标识为发送器420)、资源管理框架(RMF)430以及奖励管理器440。在图4中还示出了服务提供商450和内容所有方460。接收器410在这里被示为机顶盒(STB),该接收器410是从发送器420接收流媒体的接收对等方。发送器420在这里被示为机顶盒(STB),该发送器420是发送对等方或者流媒体的供应方。应当注意到,接收器410可以在其他时间充当发送对等方。类似地,任何一个发送器420都可以在其他时间充当接收对等方。资源管理框架(RMF)430是受管理基础设施,其由服务提供商来管理,所述服务提供商管理接收器410与发送器420之间的控制和数据连接,以便执行对所请求媒体的按需流送。RMF 430还允许接收器410针对可流送的内容搜索V2P系统400,所述可流送的内容诸如是被下载和/或被录制以及被存储在发送器420上的媒体文件。RMF 430还允许接收器410接收内容推荐。奖励管理器440管理使用V2P系统的帐目管理方面,该帐目管理方面包括向接收作为流媒体的特定内容的接收器收费、奖赏流媒体的供应方以及针对每次流送内容奖赏服务提供商450和内容所有方460。
图4中示出的V2P系统是多源流媒体系统。这意味着每个流媒体会话将包括一个接收器以及一组发送器(或供应方)。一个基本假设是:每个供应方具有对应于给定内容项目的媒体文件的完全相同的拷贝。然而,如果供应方的STB都不同步并且其媒体文件拷贝不完全相同,则根据特定实施例的V2P提供了用于使来自多个供应方的流媒体同步的机制。稍后将更加详细地描述该同步机制。V2P把所述媒体文件划分成一组小数据块(例如适于播放1-2秒),并且每个源供给相同块的片断。因此,所有供应方都对文件的每个块有贡献。
例如,根据特定实施例,可以利用前向纠错(FEC)代码对媒体文件的每个块进行编码,以便容忍分组丢失。FEC编码方案是利用两个参数(n,k)来表示的,并且对于每个数据块发送n个而不是k个分组,其中n>k。n个分组中的任意k个分组可以重建所述块。因此,流媒体会话对于每块可以容忍丢失多达(n-k)个分组。所述FEC编码开销比α被如下定义:
α=n-kn.
所述FEC编码开销比和编码方案影响所述流送速率以及对于流媒体会话的分组丢失容限。因此,可以对于流媒体会话的特定编码方案建立FEC编码开销比。在一个事例中,所述FEC编码开销比被用来建立要由所述供应方使用的编码参数,并且在另一事例中,所述FEC编码开销比可以被用来用信号通知所述供应方选择适合所述特定编码参数的FEC编码的数据块。作为例子,图5是示出了根据本发明的一个实施例的用于利用V2P系统来执行流媒体会话的方法的流程图。所述流媒体会话由接收器启动,该接收器提出针对诸如特定媒体文件的特定内容的流送请求。
在步骤510,所述接收器获得能够供给所请求的媒体文件的候选供应方组。候选供应方是具有所请求的媒体文件的拷贝的对等方。例如,接收器可以使用搜索引擎在所述V2P系统上搜索特定内容,并且获得所述内容的候选供应方组。
在步骤520,所述接收器从候选供应方组中选择有效供应方组和备用供应方组。有效供应方是在流媒体会话期间协调动作来把所请求的媒体文件流送到所述接收器的对等方。备用供应方是可以在一个或多个所述有效供应方经历网络波动、设备故障或者内容破坏或删除时在所述流媒体会话期间提供帮助的对等方。所述接收器可以基于各种标准选择对等方,所述标准诸如是对等方的状态、可用上行链路带宽、处理能力、可靠性历史、路径等待时间和路径分组丢失率以及公平性度量。
在步骤530,所述接收器启动与每个有效供应方的控制链接。该接收器可以使用多种已知技术中的任何一种。例如,所述接收器可以利用所述传输控制协议(TCP)来发送控制分组。
在步骤540,每个有效供应方打开与所述接收器的数据连接。该接收器可以利用多种已知技术中的任何一种从所述供应方接收流数据。例如,该接收器可以利用基于用户数据报协议(UDP)的方案接收流数据。
在步骤550,所述接收器通过用信号通知每个有效供应方以所分配的数据速率发送FEC编码块的至少片断而向每个有效供应方请求该FEC编码块的片断。所分配的数据速率的聚集代表目标流送速率。每个有效供应方发送利用特定FEC编码方案进行了FEC编码的FEC编码块的部分,所述特定FEC编码方案具有特定的FEC编码开销比。每个有效供应方可以响应于从所述接收器接收到发送FEC编码块的至少片断的信号而利用特定FEC编码开销比α对特定块进行FEC编码。可替换地,每个供应方可以利用一个或多个FEC编码开销比预先编码块,并且可以响应于接收来自所述接收器的信号而选择预先编码块的部分。
在步骤560,所述接收器接收所述FEC编码块的备部分或段。由于网络波动、设备故障以及内容破坏或删除,所述接收器可能无法实际接收所述FEC编码块的所有所请求片断。该接收器所接收到的各部分或段对应于该接收器在步骤550所请求的所述FEC编码块的各片断。基于实际接收到的各部分或段,所述接收器被动地监控与每个有效供应方的连接的性能,以便确定实际接收到的数据速率。所述实际接收到的数据速率的聚集代表当前流送速率。  
在步骤570,所述接收器基于所接收到的所述编码块的部分或段来解码该块,并且把已解码块存储在缓冲器中。在这里应当注意到,对所述块进行解码可以包括:从所接收到的部分或段重建所述FEC编码块、对所重建的FEC编码块进行FEC解码以及根据所利用的特定视频编码方案(例如MPEG)来进一步解码所述FEC解码块。所述接收器以当前播放速率耗用来自所述缓冲器的用于重放的数据。
在步骤580,所述接收器检查所述缓冲器的状态。例如可以通过监控所述缓冲器的当前大小、当前播放速率和当前流送速率来评估所述缓冲器状态。取决于这些度量,该缓冲器可以操作在三个区的其中之一内:加速区、舒适区或者减速区。例如,如果该缓冲器正操作在舒适区内,则所述接收器继续到步骤582b并且继续所述流媒体会话。如果所述缓冲器正操作在加速区中或减速区中,则所述接收器继续到步骤582a。
在步骤582a,所述接收器按照需要调节所述流送速率、所述有效组中的供应方以及所述编码开销比中的一项或多项,以避免缓冲器上溢或下溢。如果任何供应方被添加到有效供应方组中,则执行步骤530和540。
在步骤582b,所述接收器执行检查来确定所述流媒体会话是否结束。如果所述流媒体会话结束,则所述过程在步骤590退出。如果所述流媒体会话没有结束,则所述过程循环回到步骤550。
因此,V2P中的流媒体会话的例子可以包括以下步骤:
1、最初,接收器对等方P0从所述p2p网络的搜索引擎获得候选供应方组。
2、P0从该候选组中选择一组对等方P1、P2、...、PN作为有效供应方,并且选择P1、P2、...、PM作为备用供应方。
3、P0通过启动到所述有效组中的每个供应方的控制连接而开始流媒体会话。
4、在接收到所述控制连接之后,每个供应方Pi打开到接收器P0的数据连接。
5、P0周期性地用信号通知每个供应方发送利用特定α编码的特定块的片断。
6、每个供应方Pi对该文件块进行编码并且根据所分配的速率发送所述文件的片断。
7、在对于每个块接收到足够的数据之后,P0对整块进行解码并且将其存储在所述缓冲器中。接收器侧的播放器耗用来自该缓冲器的数据。
P0对网络变化和设备故障做出反应,以确保在所述缓冲器中总是有数据馈送给所述播放器,并且确保该缓冲器没有充满,以避免缓冲器上溢。在必要时,P0把一个或多个备用对等方添加到所述有效组中,并且对于任何新添加的对等方重复步骤3-4。
P0重复步骤5-7,直至会话结束。
图6是V2P系统的框图,并且进一步示出了根据本发明的一个实施例的接收器。在该实施例中,V2P系统600包括接收器610、发送器620、资源管理框架(RMF)630以及奖励管理器640。接收器610与发送器620交互作用,以接收流数据。接收器610与RMF 630交互作用,以使得用户能够搜索所述p2p网络。接收器610与奖励管理器640交互作用,该奖励管理器640负责向用户收费以及给适当实体提供奖赏。
根据图6,接收器610还包括对等方选择模块6110、流管理模块6120、交互性管理模块(在这里被标识为播放器模块6130)、质量适配模块6140、内容浏览和内容推荐模块6150、查询模块6160以及数据管理模块6170。
简而言之,对等方选择模块6110使用对等方选择过程来选择有效和备用对等方(或者特定内容的流数据的供应方)。流管理模块6120管理与有效供应方的控制和数据连接、接收来自所述有效供应方的流数据、解码流数据并且将其存储在缓冲器中。该流管理模块还管理所述缓冲器、动态地把所述流送速率分配给每个有效供应方、监控所述接收器与每个有效供应方之间的连接并且管理来自用户的交互式重放请求。交互性管理模块6130在这里被标识为播放器模块6130,该交互性管理模块6130提供交互式重放控制并且与流管理模块6120交互作用,使得用户可以在流媒体会话期间暂停、快进和快退。质量适配模块6140与流管理模块6120和对等方选择模块6110交互作用,以便在网络波动、有效供应方故障以及内容破坏或删除的情况下提供弹性的和高质量的流媒体。在某些情况下,质量适配模块6140可以要求有效供应方重新提交流数据,以便应对这种情况。
根据特定实施例,所述内容浏览和内容推荐模块6150与RMF 630交互作用,以便允许用户搜索特定内容,并且该内容浏览和内容推荐模块6150还给用户提供内容推荐。查询模块6160与RMF 630和对等方选择模块6110交互作用,以便获得关于远程对等方的信息。数据管理模块6170管理所接收的流数据在所述接收器的本地存储装置上的存储。依次描述这些模块中的每个。
对等方选择模块6110使用对等方选择过程来确定有效对等方组和备用对等方组。所述有效对等方供给流媒体会话的内容。在任何STB故障期间以及在网络波动期间,当所述当前有效对等方不能提供目标流送速率时,所述备用对等方可以变为有效的。如果一个或多个有效对等方在流媒体会话期间删除了内容或者经历内容破坏,则备用对等方也可以变为有效的。
在该实施例中,分两个步骤完成对等方选择。在第一步,RMF 630返回一组具有要流送的内容的候选供应方。典型的候选组的大小是15-20个对等方。如果在网络中找到媒体文件的多个拷贝,则该选择过程消除资源有限的对等方。在从RMF 630得到候选组之后,对等方选择模块6110基于各种标准确定所述有效和备用组。例如,可以使用下面的对等方状态,即使用带宽、设备规范、可靠性、等待时间、丢失率以及公平性标准:
1、对等方状态(S)
在对等方选择期间可以考虑对等方的状态。如果对等方正在接收流,则上行链路可能未被使用。然而,如果接收对等方决定为另一流媒体会话服务并且所述上行链路完全被用于该服务,则接收流媒体质量将恶化,因为信令协议使用了所述上行链路的小片断。因此,希望使用空闲对等方作为供应方。在对等方的服务(SERVING)或接收(RECEIVING)状态下,所述对等方选择模块为对等方i分配Si=ai,其中a是基于可用资源计算的。通常,当所述对等方处于空闲(IDLE)并且其具有可提供的资源时,Si=1。
2、供应方的可用上行链路带宽(B)
对于流媒体会话,不希望使用过多或过少的对等方。如果使用了过多的对等方,则所述接收器必须维持许多连接。如果使用了一个或两个供应方,则一个供应方的故障将对于流媒体质量有很大影响。如果流送速率为R0,则所述对等方选择模块在对等方i可以供给≥R0/3的情况下分配Bi=1,在对等方i可以供给≥R0/4的情况下分配Bi=0.75,依此类推。
3、CPU、存储器规范(C)
如果STB具有合理的CPU和存储器规范,则所述对等方选择模块可以接受该对等方。倘若所述对等方状态并不是服务或接收,如果对等方i具有CPU 400MHz或更高并且RAM是128MB或更高,则该对等方选择模块分配Ci=1。如果该STB的资源不足以参与到流媒体会话中,则Ci=0。
4、可靠性历史(H)
可靠性历史H代表所述STB的可靠性,所述STB可能在任何时间被断电。STB的内容可能在流媒体会话期间被删除。因此,STB的可靠性历史对于提供弹性流具有重大影响。所述对等方选择模块为所述可靠性度量分配从0到1的值。
5、从供应方到接收器的路径的等待时间(D)
可以使用等待时间(或单向延迟)来判断供应方与接收器距离多远。即使供应方有非常好的资源,但是所述对等方位于世界的另一边,所述供应也可能无法以稳定的速率提供流。如果供应方处在与接收器相同的子网内或者处在与接收器相同的地理位置处,则通常所述等待时间确实短,并且这些供应方将优选远离接收器的供应方。如果对等方i的距离小于50ms的往返时间(RTT),则所述对等方选择模块分配Di=1,如果对等方i的距离小于100ms RTT,则Di=0.5,如果对等方i的距离超过200ms,则Di=0。
6、路径的分组丢失率(L)
分组丢失率代表网络的可靠性。丢失率的范围是0<L<1。
7、公平性(F)
对等方选择机制的主要问题是流的质量,并且因此,其对于流媒体会话选择适用于接收器的最佳的一组对等方。然而,如果可得到具有相似质量(在其资源、可靠性和其他对等方选择标准方面)的更多对等方,则可以为与其他对等方相比没有被频繁选择的那些对等方给出优先级。
基于上述标准,所述对等方选择模块可以计算每个对等方的等级。如果Ri表示对等方i的等级,则可以把Ri表示为:
Ri=CiSi(BiDi)Hi(1-Li)。
所述对等方选择过程基于其等级选择前N+M个对等方。如果有几个对等方具有第(N+M)的等级,则所述对等方选择过程选择具有低公平性指数(F)的对等方,使得每个订户都有机会提供内容项目并且从所述系统赢得奖赏。
图7是对等方选择等级等式的曲线图并且图解说明了如何能够根据所使用的对等方选择标准来改变对等方的等级。例如,图7绘制了高带宽对等方(例如384Kbps或更高的上行链路带宽)和低带宽对等方(例如128Kbps或更高的上行链路带宽)的等级与延迟和丢失量度的关系曲线。如图所示,与更靠近接收器来定位的低带宽对等方相比,远离所述接收器来定位的高带宽对等方可能具有更低的等级。
在网络中搜索内容的过程中,资源管理框架(RMF)630(图6)可以返回具有所述内容的对等方的长列表。对于所述搜索结果的整个列表应用所述对等方选择算法可能是不可行的。可能更为高效的是,例如,通过丢弃忙于提供服务的对等方或者具有低上行链路容量的对等方或者地理位置较远的对等方而对所述初始列表进行过滤。来自所述经过过滤的列表的一组(比方说15-20个)对等方会被用于实施所述对等方选择算法,并且所述选择序列会基于上行链路容量和地理位置。可以在初始缓冲时间期间利用真实媒体数据执行对于对等方选择必需的测量。例如,在前10秒期间,每个对等方可以贡献一部分媒体文件来确定供应方的质量。
符号 解释 典型值 R0 目标流送速率 1.1Mbps(视频+音频) R0i 由对等方i提供的速率 128Kbps,256Kbps,384Kbps B 容量利用率 0.8-0.9 K FEC编码前的分组数 150 N FEC编码后的分组数 180 A FEC开销 0.2 Ri 从对等方i进行接收的速率 βR0i R 聚集的流送速率 ≤R0(1+α) N 有效供应方 6-10 M 备用供应方 2
表1:用在对等方选择中的符号及其含义和典型值
为了确定流媒体会话要求多少有效对等方,所述对等方选择模块可以使用下面的估计:
聚集的流送速率:R=Σi=1NRi=Σi=1NβRi0R0(1+α)
其中,目标流送速率=R0
有效对等方的数目=N
由对等方i提供的速率=R0i
来自对等方i的初始流送速率Ri=βR0i(其中,β是容量利用率,0≤β≤1,使得对等方i操作在100%容量利用率之下)
FEC开销=α
具有FEC的分组丢失容限= α/(1+α)
作为例子,如果所述流送速率是1.1Mbps,则对于α=0.20FEC,所需的流送速率是1.32Mbps。令每个对等方具有上行链路流送带宽R0i=256Kbps。当β=0.8时,Ri=248。因此,N=7,并且所述对等方选择模块可以基于其输出带宽选择5-7个有效对等方。
再次参照图6并且参照图8,描述了根据特定实施例的流管理模块6210。图8是V2P接收器的方框图,并且包括根据本发明的一个实施例的流管理模块的细节。根据图8,接收器810包括流管理模块8120和播放器模块8130。根据特定实施例,流管理模块8120包括流模块8120、接收数据模块8122(在这里被标识为接收数据/FEC解码模块8122)、缓冲器管理模块8123、连接监控模块8124以及动态速率分配模块8125。
在操作中,流模块8121打开及关闭到所有有效供应方的控制和数据连接,并且向有效供应方发送控制分组,从而指示将以什么数据速率发送数据块的哪些部分。接收数据模块8122在这里被标识为接收数据/FEC解码模块8122,该接收数据模块8122接收来自有效供应方的流数据、解码所述流数据并且将其传递到缓冲器管理模块8123。缓冲器管理模块8123从接收数据模块8122接收已解码的流数据;与播放器模块8130交互作用,以便允许用户进行暂停、快进和快退;以及管理所述缓冲器并且与动态速率分配模块8125交互作用,以便确保该缓冲器没有充满并且不是空的。连接监控模块8124监控有效供应方与接收器之间的连接,以便确定任何连接是否正经历拥塞或者任何供应方是否发生故障,并且该连接监控模块8124在网络波动和设备故障的情况下与动态速率分配模块8125进行交互作用。
流模块8121打开及关闭到所有有效供应方的控制和数据连接。流模块8121通过对于每个供应方打开一个控制连接而建立与所述有效组中的所有供应对等方的通信,并且理想地,预期所述控制连接是可靠的。例如,可以使用传输控制协议(TCP)。流模块8121还将用于建立到接收器的数据路径的控制信息用信号通知给每个供应方。流模块8121还向有效供应方发送控制分组,从而指示以什么数据速率发送数据块的哪些部分,这构成了在有效供应方之间的流送速率的动态速率分配。所述控制分组表明将发送的块的片断以及表明数据速率。所述速率分配来自动态速率分配模块8125。
接收数据模块8122在这里被标识为接收数据/FEC解码模块8122,该接收数据模块8122接收来自有效供应方的流数据、解码所述流数据并且将其传递到缓冲器管理模块8123。接收数据模块8122被流模块8121实例化,以便从所有有效供应方接收数据,并且所述有效供应方建立到该模块的数据路径。应当注意,根据特定实施例,V2P可以使用诸如用户数据报协议(UDP)之类的协议以用于进行数据流送。可替换地,在其他实施例中,V2P可以使用任何基于UDP的拥塞控制协议,诸如使用数据报拥塞控制协议(DCCP)等等。在接收到所述流数据之后,接收数据模块8122在将流数据移交到缓冲器管理模块8123之前对所述流数据进行解码。应当注意到,对所述块进行解码可以包括:由所接收到的部分或段重建所述FEC编码块;对已重建的FEC编码块进行FEC解码;以及根据所利用的特定视频编码方案(例如MPEG)对所述FEC解码块进行进一步解码。
缓冲器管理模块8123从接收数据模块8122接收已解码流数据,并且与播放器模块8130进行交互作用,以便允许用户进行暂停、快进和快退。该缓冲器管理模块8123还管理所述缓冲器并且与动态速率分配模块8125进行交互作用,以便确保该缓冲器没有充满并且不是空的。例如,当用户按下按钮以便暂停流媒体会话时,缓冲器管理模块8123与动态速率分配模块8125进行交互作用,以便调节所述流送速率。所述缓冲器管理模块还确保在所述缓冲器中总是有数据以便重放媒体数据。例如,所述重放可以在短初始缓冲时间(例如10秒)或者短广告之后开始。此后,缓冲器管理模块8123周期性地估计,以当前播放速率和流送速率,所述缓冲器是否将在不久的将来变空或者上溢。在必要时,可以通过动态速率分配模块8125相应地调节所述流送速率。
图9呈现了示出动态缓冲器管理技术如何能够根据本发明的一个实施例避免缓冲器上溢或下溢的曲线图。在该曲线图中,B(t)代表可以被存储在缓冲器中的最大累积数据,而P(t)代表由播放器在时间t所耗用的累积数据。如可以看到的那样,固定比特率(CBR)的流送速率可能很容易导致缓冲器上溢或下溢。动态缓冲器管理算法通过周期性地调节所述流送速率来避免这些情形。
例如,固定比特率(CBR)的流送速率无法确保,所述缓冲器不会在将来发生上溢或者变空,因为网络状况会发生改变并且所述对等方可能在任何时间发生故障。因此,可以使用动态缓冲器管理技术,其基于多个参数调节所述流送速率,所述参数在本例中包括:
a)当前缓冲器大小;
b)当前播放速率;以及
c)当前流送速率。
图10呈现了示出根据本发明的一个实施例的缓冲器管理方案的曲线图。如图所示,所述缓冲器被分割成三个部分:加速区(0<缓冲器大小<Bmin)、舒适区(Bmin<缓冲器大小<Bmax)以及减速区(缓冲器大小>Bmax)。Bmin和Bmax的值取决于系统中所能允许的缓冲器大小。例如,如果系统可以具有30秒的缓冲,则选项可以是Bmin=10秒以及Bmax=20秒。基于当前缓冲器大小和缓冲器的改变来调节所述流送速率,所述缓冲器的改变是利用当前流送速率和播放速率来计算的。如果当前缓冲器大小低于Bmin并且缓冲器大小的改变为负,则增大流速率。在所述舒适区内不改变所述流速率。如果缓冲器大小高于Bmax,则减小所述流速率。
为了计算调节当前流送速率的速率,缓冲器管理模块8120使用对瞬时流送速率的指数加权移动平均(EWMA)。一般来说,EWMA被表示为下面的等式:
Ravg(t)=wR(t)+(1-w)Ravg(t-1),
其中,0<w<1是恒定的,以便在当前瞬时样本或最近历史上设置权重。
例如,缓冲器管理模块对于所述缓冲器大小的每个区定义w。当缓冲器正在所述加速区内操作时,为了调节流送速率,必须强调瞬时流送速率。因此,在该区内为w给出较高权重。当缓冲器正在舒适区内操作时,为w给出较低权重,以便计算平滑流送速率,该平滑流送速率可以被用来调节减速区内的流送速率。在减速区内,为α给出高权重,以便更急剧地降低所述流送速率。
再次参照图8,连接监控模块8124监控有效供应方与接收器之间的连接,以便确定任何连接是否正经历拥塞或者任何供应方是否发生故障,并且该连接监控模块8124在网络波动和设备故障的情况下与动态速率分配模块8125进行交互作用。连接监控是有用的机制,以便确定从供应方到接收器的任何数据路径是否正经历拥塞或者确定任何对等方是否发生故障。例如,如果接收器在特定时间帧内没有从给定对等方接收到任何数据,则该接收器假设该对等方不再有效。
精确定位网络拥塞的位置可能相对困难。如果知道网络拥塞的位置,那么所述质量适配模块(图6的项目6140)可以决定如何对待供应方与接收器之间的每个连接。例如,如果仅仅一个连接受到网络拥塞的影响,那么其他连接可以以更高速率来提供数据,以便克服这一问题。然而,如果大多数连接都同时经历拥塞,则可能必需从所述备用组中添加对等方,使得来自这些对等方的附加流可以减轻拥塞的影响。
连接监控模块8124可以使用所述网络断层扫描技术来识别出经历拥塞的路径段。网络断层扫描的基本思想涉及到使用分组“条带(stripe)”(即背靠背探测分组),以便通过计算在目的地处的条带内的分组丢失的相关性来推断出链接丢失。为了推断出丢失,在零传输延迟下从一个节点向两个其他节点发送被称作条带的一系列探测分组。如果分组到达任何接收器,则可以推断出该分组肯定到达了分支点。基于到达末端主机的分组的数目,有可能对于所有内部链接计算成功传输概率的概率。
连接监控模块8124被动地监控连接。也就是说,在流送期间没有主动探测。连接监控模块8124使用所述流送速率。所述数据从供应方来到该接收器,而不是像在某些网络断层扫描技术中那样从一个源来到多个接收器。
可能必要的是进行实验,以估计条带的适当尺寸以及估计如何在供应方之间划分所述分组,使得接收器可以捕获在共享路径以及各条路径上的分组丢失的相关性。有可能估计从多个供应方到接收器的路径的特性。图11示出了从两个供应方S1和S2到接收器R的简单二叉树。由于供应方在时间上被同步以便发送块的分组,所以来自S1和S2的分组将很有可能在共享路径段k→R上经历类似的拥塞。可以使用D分组的条带,即D=D1,D2>,其中S1发送D1分组,而S2发送D2分组。如果R获得来自S1的条带的所有分组,则很有可能R将接收到来自S2的D2分组,除非所述D2分组在S2→k上丢失。
再次参照图8,动态速率分配模块8125与缓冲器管理模块8123以及连接监控模块8124交互作用,并且把所述流送速率动态地分配给有效供应方,以便应对由于拥塞和设备故障所导致的网络波动。
动态速率分配模块8125允许在任何时间改变当前流送速率。流模块8121在每个时间帧处向每个有效供应方发送控制信号,以便指定新的速率。连接监控模块8124确定哪个连接正经历拥塞,缓冲器管理模块8123确定当前流送速率应当是多少,并且速率分配模块8125确定每个供应方在时间t进行流送所应当采用的速率。然后,该速率分配模块用信号通知流模块8121,在新的速率下向每个供应方发送控制分组以及供应方在下个时间帧中所应当发送的文件段的索引。
根据图8,根据特定实施例描述了交互性管理模块,该交互性管理模块在这里被标识为播放器模块8130。播放器模块8130提供了交互性,使得用户可以对流媒体会话进行暂停、快进(FF)和快退(RW)。在下面将更加详细地描述的这些事件的每个事件期间,播放器模块6130通知缓冲器管理模块8123,该缓冲器管理模块基于所述事件采取适当的动作。
从暂停控制描述开始。当用户按下按钮来暂停流媒体会话时,缓冲器管理模块8123用信号通知动态速率分配模块8125分配新的流送速率(例如0Kbps)。动态速率分配模块8125用信号通知流模块8121暂停该流媒体会话。流模块8121将控制信号发送到每个有效供应方,并且所述流媒体会话被暂停,直到其被恢复或者直到暂停定时器期满。在所述流媒体会话被暂停时,所述接收器并不向有效供应方请求任何附加流数据。当所述流媒体会话被恢复时,流模块8121将控制信号发送到每个有效供应方,以便恢复该流媒体会话。如果所述暂停定时器期满,则所述流媒体会话将被关闭。
对于快进(FF)和快退(RW)控制,如果接收器具有诸如硬盘之类的本地存储装置,则从已经保存的内容执行所述RW操作。否则,可以按照类似的方式实现所述RW和FF。多种方法可以与所述FF操作相关联。第一种方法使用单独的交互流来提供类似于VCR的平滑交互性;然而,代价是要求每个媒体文件的单独的交互流。第二种方法是并不使用附加流的解决方案,并且利用发现(seeking)机制实现快进或快退。
特别地,当使用交互流时,所述FF操作要求单独的流(即交互流)和单独的缓冲器(即交互式缓冲器)。对于所述快退操作来说,所述交互流是按照相反的顺序从所述重放流形成的。要求单独的交互流的原因在于,在快进和快退期间,所述供应方必须仅仅发送所述流的子集而不是原始流。在没有单独的交互流的情况下,所述各供应方将必须对所述流进行解码,并且发送适当的感兴趣帧。可能无法实时地实现这一点。因此,这种技术利用了单独的流,该单独流具有可以实现目标FF或RW速度的帧。例如,为了实现加速因数X,所述播放器需要每X帧当中的一帧。然而,在MPEG术语中,在没有I和/或P帧的情况下,无法对B帧进行解码,并且在没有在先I或P帧的情况下,无法对P帧进行解码。因此,发送每X帧当中的一帧对于快进事件来说并不足够。
图12示出了流媒体会话的MPEG帧序列。为了获得加速因数5,所述供应方需要发送I、(P、B、B、P)、(I、B、B、P)等等。这是因为B帧需要其全部两个相邻帧来解码,并且P帧也需要在先I或P帧。因此,为了把所述流加速到原来的5倍,需要由供应方发送多于1/5的帧。因此,这个过程在FF和RW期间增大了流数据速率,但是可能无法在基于DSL的网络中增大所述流送速率,在所述基于DSL的网络中,下行链路速度常常仅仅对于正常流送速率来说是足够的。
根据特定实施例,为了在FF和RW期间维持较低数据速率,可以使用交互流。可以按照以下方式创建交互流。在压缩之前需要对原始视频材料进行子采样。对于X倍快进速度,在MPEG编码之前,每第X个视频帧会被存储到适当设备。例如,为了获得4X快进速度,使用每第4个视频帧。然后会按照正常方式对该内容进行MPEG编码,并且将该内容存储在单独的文件中。该方法导致具有非常平滑的运动的非常高质量的FF观看,但是该方法要求对经过子采样的未经压缩的视频进行中间存储。
为了避免子采样预处理和中间存储的附加工作,根据特定实施例,可以在MPEG压缩域内实现FF。每个发送器在FF期间动态地对所述I帧进行转码以便满足所述要求,并且然后将其包装在序列报头中以便产生具有仅仅一个I帧的GOP(图像组)。为了实现这种方案,每个发送器必须在计算方面能够按需转码I帧。
再次参照图8,为了提供交互性,缓冲器管理模块8123需要维持两个缓冲器:一个用于常规流,而一个用于交互流。在常规重放期间,缓冲器管理模块8123仅仅把I帧放置在交互式缓冲器中,使得如果用户选择FF或RW,则播放器模块8130立即从该交互式缓冲器接收数据。缓冲器管理模块8123从所述交互式缓冲器对所述播放器进行馈送,直到用户回到正常播放模式。流模块8121将控制信号发送给每个供应方,以在这段时间期间发送来自所述交互流的数据。每个供应方将发送一个I帧,使得在所述交互式缓冲器中有N个I帧就绪。这样将允许用户从一个I帧快进到下一个I帧。如果交互式缓冲器缺乏数据,则播放器模块8130将不允许用户FF/RW,并且将恢复正常播放。当用户恢复正常播放时,缓冲器管理模块8123将来自常规缓冲器的数据馈送给播放器模块8130。如果所述常规缓冲器没有用于正常播放的足够数据,则其可以在几秒钟内播放所述经过子采样的数据,直到该常规缓冲器具有足够的数据以全速率播放。
根据特定实施例,在模拟FF和RW操作的替换方法中,使用文件查找来避免具有单独交互流的要求。特别地,当用户按下FF或RW按钮时,播放器模块8130播放X秒的视频数据并且然后跳过Y秒到所述文件中的适当位置以实现加速。所有所述供应方将供给对应于所述X秒的视频数据,并且然后在所述文件内查找Y秒,以提取下一视频数据。
根据特定实施例,可以通过设置X和Y的值而实现可变加速,并且加速因数可以被如下计算:

例如,如果X=2秒而Y=6秒,则加速因数为4。
如果播放器模块8130以正常速度播放视频数据,则所述流数据中的时间位置将由于所述跳跃而提前,但是用户将不会感知到所述加速因数。因此,播放器模块8130以高于正常速度的速度播放所述视频数据。如果供应方继续以常规流送速率发送流数据,因为对于所述供应方可能无法在例如DSL网络中加速,则所述缓冲器可能会由于较高的播放速率而变空。为了克服这一问题,播放器模块8130可以播放被本地存储在所述接收器上的短视频剪辑。可以在流数据块之间把所述短视频剪辑插入到所述缓冲器中。例如,基于FF或RW事件,所插入的视频剪辑可以是能活动的“>>”或“<<”。这种短动画视频剪辑可以向观看者通知,所述系统正在执行某种处理。所述剪辑可以事先生成并且被存储在接收器侧,使得无需流送这些剪辑。
图13示出了一系列视频数据和所插入的视频剪辑。如图所示,播放器模块8130播放4秒视频,随后是所插入的视频剪辑,该播放器模块8130然后跳过12秒并且播放4秒视频数据,其后是所插入的视频剪辑,该播放器模块8130跳过另外12秒并且播放4秒视频数据。该播放器模块以两倍正常速度播放所述视频数据和所述视频剪辑。在该例中,如果X=4,Y=12并且所插入的视频剪辑的长度等于X=4,则由下面的关系式给出所述加速因数:

如上所述,用于针对接收宽带数据提高数据流的质量的本发明的一个方面涉及到质量适配(使用如图6所示的质量适配模块6140并且参照如图8所示的流管理模块8120)。质量适配是用于提供弹性的和高质量的流的重要组成部分。在网络波动和设备故障期间,所述流媒体质量恶化。为了处理这些问题,V2P使用诸如下述的机制:
a)智能缓冲器管理;
b)连接监控;
c)动态速率分配;
d)动态FEC编码/解码;
e)有效对等方选择(N个有效对等方);以及
f)备用对等方选择(M个备用对等方)。
前两种机制被用来检测故障状况并且识别出拥塞的实际位置。后面四种机制被用来处理网络波动和设备故障。这两种情形中的每种都被描述。在某些情况下,质量适配模块6140可能要求有效供应方重新提交流数据,以便应对这些情况。
根据特定实施例,描述了用于应对网络波动的质量适配过程。因特网是尽力服务(best-effort service),并且诸如等待时间、丢失以及任何端到端路径的抖动之类的网络层度量可能会随着时间而改变。所述连接监控机制可以识别出网络拥塞的实际位置。例如,假设在任何时间有K个连接经历质量恶化。首先,质量适配模块6140检查所述聚集流送速率是否仍然满足所述目标流送速率。如果不满足,则重新分配所述流送速率,使得具有良好网络状况的有效供应方供给更多,以便调节不由其他有效供应方供给的速率。这种动态速率重新分配是有可能的,因为以如下方式完成有效对等方选择,即所述有效供应方以低于其全容量的速率进行流送。剩下的容量可以被利用来动态重新分配来自每个有效供应方的流送速率。如果所述有效供应方无法提供所述目标流送速率,则质量适配模块6140可以指示对等方选择模块6110把一个或多个备用对等方添加到所述有效组中。在添加了所有备用对等方之后,如果所述有效供应方由于高分组丢失而仍然无法满足所述目标流送速率,则质量适配模块6140可以指示流管理模块6120基于当前丢失率增大所述FEC编码开销比(α)。例如,当α=0.20并且当前丢失率为35%时,将把α的新值调节来匹配所述丢失率,以便支持将来的改变。如果所述丢失率在一段时间后下降,则所述适配模块将相应地减小α的值。
例如,下面说明了质量适配模块6140可以用于调节流送速率、添加备用对等方以及调节编码开销比α以应对网络波动的算法(算法1)。所示出的算法使用δ来确保当前流送速率略高于目标流送速率R0,否则,在有很小的网络波动的情况下,所述流媒体质量将恶化。如果使用速龙码(Raptor code),则δ将表示速龙解码(Raptor decoding)所必需的额外数据,因为该代码要求比要解码的原始内容多5%的数据。
用于网络波动的算法1:
1、识别出在时间t经历拥塞的K个连接
2、如果Σi=1NRi-R0δ,则不采取任何动作//良好坚持当前速率
3、否则,如果Σi=1KRi+Σi=K+1NRi0-R0δ,则把所述流速率重新分配给(N-K)个良好对等方,以便满足所述目标速率
4、否则,把备用对等方添加到所述有效组中。到步骤3。如果没有备用对等方可用,则到步骤5
5、调节α,以便调节网络中的分组丢失。添加更多备用对等方
在根据特定实施例的该算法中,在步骤1,流管理模块6120的连接监控模块(诸如图8的连接监控模块8124)监控与N个有效供应方的N个连接,并且识别出在时间t经历拥塞的K个连接。在步骤2,如果当前聚集流送速率(即所有Ri的总和)比目标流送速率R0超出至少δ,也就是说,如果Σi=1NRi-R0δ,则当前流送速率是足够的,并且质量适配模块6140不采取任何动作。否则,在步骤3,质量适配模块6140尝试在所述有效组中的没有激励拥塞的(N-K)个“良好”对等方之间重新分配所述流送速率。
由于所述(N-K)个“良好”对等方最初以低于其全容量的速率进行流送,所以这(N-K)个“良好”对等方的剩余容量可以被利用来实现所述目标流送速率R0。也就是说,所述(N-K)个“良好对等方”中的每个可以以高达其全容量R0i的速率进行流送。因此,如果对于所述K个正经历拥塞的对等方的当前聚集流送速率(即对于这K个对等方的所有Ri的总和)加上所述(N-K)个“良好对等方”的全容量(即对于这(N-K)个对等方的所有R0i的总和)比目标流送速率R0超出至少δ,也就是说,如果Σi=1KRi+Σi=K+1NRi0-R0δ,则质量适配模块6140指示流管理模块6120(例如通过动态速率分配模块)把所述流送速率重新分配给所述(N-K)个良好对等方,以便满足所述目标流送速率。否则,在步骤4,所述质量适配模块指示对等方选择模块6110把备用对等方添加到所述有效对等方组中,使得有效供应方的更新后的数目为N。
所述算法循环回到步骤3,并且质量适配模块6140指示流管理模块6120(例如通过动态速率分配模块)把所述流送速率重新分配给所述(N-K)个良好对等方,以便满足所述目标流送速率。如果在步骤4没有备用对等方可用,则质量适配模块6140调节所述编码开销比α,以便调节网络中的分组丢失。质量适配模块6140还指示对等方选择模块6110选择附加的对等方,以便添加到所述备用对等方组中。
另一方面是用于应对设备故障的质量适配过程。特别是根据特定实施例,流媒体会话开始于N个有效对等方,并且每个对等方具有β容量利用率。V2P按照以下方式选择β:如果其中一个对等方(即其中一个STB)故障,则可以立即把所述流送速率重新分配给所述有效组中的剩余对等方而不超出其上传容量极限。因此,如果在任何时间有一个对等方故障,则在剩余的有效供应方当中分配所述流送速率,并且所述聚集流送速率不会落到目标速率以下。如果两个或多个对等方同时故障,则所述质量适配模块可以把备用对等方添加到所述有效供应方组中。
例如,下面说明了根据特定实施例的算法(算法2),所述质量适配模块可以使用该算法来调节流送速率、添加备用对等方以及调节编码开销比α,以应对设备故障。当K个设备(即STB)发生故障时,质量适配模块6140指示流管理模块6120(通过动态速率分配模块)在所述有效组中的剩余供应方中重新分配所述流送速率。质量适配模块6140还指示对等方选择模块6110把备用对等方添加到所述有效供应方组中,以便应对下次设备故障。如果所述有效组中的剩余供应方无法提供目标速率并且所述网络没有正在经历高丢失,则质量适配模块6140指示流管理模块6120降低所述FEC编码开销比α,以随着当前丢失率进行调节。如果必需有更多供应方,则质量适配模块6140指示对等方选择模块6110把附加供应方添加到所述备用组中。由于缓冲器管理模块通常将已解码数据维持5-10秒可用于所述播放器模块,这个时间允许质量适配模块6140把更多备用供应方添加到所述有效组中,以便满足所述目标流送速率。
针对STB故障的算法2:
1、识别出K个故障的STB
2、如果Σi=K+1NRi-R0δ,则不采取任何动作//良好坚持当前速率
3、否则,如果Σi=K+1NRi0-R0δ,则把所述流速率重新分配给所述有效组中的(N-K)个对等方。把备用对等方添加到所述有效组中,以便应对下次故障。
4、否则
a、把备用对等方添加到所述有效组中。如果没有备用对等方可用,则在必要时调节α
b、把所述流送速率重新分配给所述有效组
c、找到备用对等方并且将其添加到所述备用组中
d、到步骤4a
如上所示,在步骤1,连接监控模块识别出K个故障的STB。在步骤2,如果所述有效组中的剩余供应方的当前聚集流送速率(即所有Ri的总和)比目标流送速率R0超出至少δ,也就是说,如果Σi=K+1NRi-R0δ,则当前流送速率是足够的,并且质量适配模块6140不采取任何动作。否则,在步骤3,质量适配模块6140尝试在所述有效组中的没有故障的(N-K)个“良好”对等方之间重新分配所述流送速率。由于这(N-K)个“良好”对等方最初以低于其全容量的速率进行流送,所以这(N-K)个“良好”对等方的剩余容量可以被利用来实现所述目标流送速率R0。也就是说,所述(N-K)个“良好对等方”中的每个可以以高达其全容量R0i的速率进行流送。因此,如果所述(N-K)个“良好对等方”的全容量(即对于这(N-K)个对等方的所有R0i的总和)比目标流送速率R0超出至少δ,也就是说,如果Σi=K+1NRi0-R0δ,则质量适配模块6140指示流管理模块6120(通过动态速率分配模块)把所述流送速率重新分配给所述(N-K)个良好对等方,以便满足所述目标流送速率。质量适配模块6140指示对等方选择模块6110把备用对等方添加到所述有效组中。
否则,在步骤4,质量适配模块6140指示对等方选择模块6110把备用对等方添加到所述有效对等方组中,使得有效供应方的更新后的数目为N。如果在步骤4没有备用对等方可用,则质量适配模块6140可以调节所述FEC编码开销比α,以便调节网络中的分组丢失。质量适配模块6140指示流管理模块6120(例如通过动态速率分配模块)把所述流送速率重新分配给所述有效组中的(N-K)个良好对等方,以便满足所述目标流送速率。质量适配模块6140还指示对等方选择模块6110选择附加的对等方,以便添加到所述备用对等方组中。
再次参照图6,描述了根据特定实施例的内容浏览和内容推荐模块6150。该内容浏览和内容推荐模块允许用户搜索他们感兴趣的内容。用户接口(UI)将允许用户基于电子节目指南(EPG)数据来搜索内容,所述EPG数据诸如是:
a)标题;
b)男演员/女演员;
c)导演;
d)年份;
e)国家;
f)风格;
g)奖项;
h)类别,诸如体育、电视连续剧、新闻、音乐会;以及
i)故事中的任何关键字。
查询模块6160促进获得关于对等方的信息,如在下面的操作细节中所提供的那样。查询模块6160向远程对等方发送探测信号,以便查询诸如CPU、存储器和上游带宽之类的STB的资源信息。该查询模块还可以查询状态信息(诸如对等方当前是正在上传、下载还是处在空闲模式下)以及该对等方的可靠性历史。查询模块6160可以返回对等方的奖励历史,所述奖励历史可以被用来在由对等方选择模块6110进行对等方选择期间解决公平性问题。
为了进行数据管理,数据管理模块在诸如硬盘驱动器的本地存储设备上存储所流送的数据。由于所述流送例如是利用UDP在不可靠的信道上进行的,所以在会话期间可能会丢失一些分组。由于使用所述FF机制,因此所述接收器可能不具有所有所述分组。因此,数据管理模块6170可以在所述流送之后联系有效供应方,以便下载那些缺失的段,使得所述接收器具有完整的文件,以便在将来成为供应方。
为了理解所述供应方如何操作,图14呈现了V2P系统的方框图,并且进一步示出了根据本发明的一个实施例的发送器(供应方)。根据图14,V2P系统1400包括接收器1410、发送器1420、资源管理框架(RMF)1430、奖励管理器1440以及电子节目指南(EPG)1450。接收器1410与发送器1420交互作用,以便接收流数据。发送器1420与RMF 1430交互作用,以便向所述V2P系统登记及宣告内容。发送器1420与奖励管理器1440交互作用,该奖励管理器1440负责向用户收费以及向适当的实体提供奖赏。发送器1420与电子节目指南(EPG)1450交互作用,以便允许利用个人视频录像机(PVR)扩增设备来录制内容。
根据图14,根据特定实施例,发送器1420还包括登记器模块14210、流送管理模块14220、FEC编码器模块14230、资源监控器模块14240以及PVR扩增设备模块14250。登记器模块14210向所述p2p网络登记STB的资源和统计量以及宣告内容。流送管理模块14220与接收器通信,以便提供数据并且接受控制信号。FEC编码器模块14230对与内容项目相对应的媒体文件中的各块进行FEC编码。资源监控器14240基于所述STB的当前状态接受或拒绝新的流送请求。该资源监控器14240还在对流媒体会话做出贡献之后向奖励管理器1440进行报告。PVR扩增设备模块14250与电子节目指南(EPG)1450交互作用。
登记器模块14210把其资源和统计量通过RMF 630登记到所述p2p网络。该登记器模块14210还向所述p2p网络登记、宣告或者广告新的媒体内容。
流送管理模块14220与接收器进行通信,以便提供数据并且接受控制信号。在发送器接受了新的流送请求之后,流送管理模块14220接受来自接收器的控制连接。根据该控制连接,流送管理模块14220建立到该接收器的数据连接、从诸如硬盘之类的所述本地存储设备读取数据以及通过所述数据连接发送数据。如果所述数据被预先编码并且当前已编码内容的FEC编码开销比α与来自所述接收器的所请求的α相匹配,则流送管理模块14220仅仅读取数据并且将其发送到该接收器。如果有必要利用新的α来编码所述数据,则流送管理模块14220与FEC编码器模块14230进行通信,以便执行所述FEC编码。
FEC编码器模块14230对与内容项目相对应的媒体文件的块进行编码,以用于流送。根据特定实施例,V2P可以用来利用指定的FEC编码开销比α对媒体数据进行编码的两种示例性FEC代码是公知的里德所罗门(Reed-Solomon)码和速龙码。此外,在其他实施例中,可以使用里德所罗门纠删码来实现比传统的里德所罗门码更快的编码和解码,所述里德所罗门纠删码基于有限域上的柯西(Cauchy)矩阵并且使用“异或(XOR)”而不是算术运算。
表2呈现了根据特定实施例的利用了经过修改的里德所罗门纠删码的示例性编码和解码时间。例如,电影文件可以在1.1Mbps下被分成1秒块或者0.5秒块,并且被编码成容忍20%的分组丢失。在具有2GB存储器的2.4GHz Linux机器上运行所述里德所罗门纠删码,所述编码和解码时间是典型的。
如从表2中可以看出的那样,编码比解码要求更多时间。此外,编码和解码时间并不是相对于所述块的长度成线性的。如果块尺寸过大,则所述接收器必须等待长时间以便在解码该块之前接收到该块的所有分组。如果块尺寸过小,则一个连接上的突发分组丢失将丢弃许多分组,并且来自其他连接的剩余分组将没有足够的数据来恢复该块。为了以1Mbps进行流送,1秒的块尺寸可能是典型的。具有以400MHz运行的处理器并且具有128MB或更高存储器的STB可以支持利用里德所罗门码的按需编码,以便针对网络波动和设备故障进行调节。
    块尺寸 编码时间(ms) 解码时间(ms)     1.0 67 30     0.5 18 7
表2:利用里德所罗门纠删码的编码和解码时间
参照图14,资源监控器模块14240监控本地资源和STB的状态,以便判定是接受还是拒绝新的流送请求。此外,PVR扩增设备模块14250与电子节目指南(EPG)1450交互作用,以便协调对录制事件的调度。
图15示出了用于评估V2P系统的性能的示例性设置。根据图15,V2P系统1500包括接收器1510、发送器1520、因特网服务提供商(ISP)1580a和1580b(在下面被标识为ISP 1580)以及因特网1590。接收器1510和发送器1520中的每个可以同时配置有接收器模块和发送器模块,使得其既可以作为发送器来操作,也可以作为接收器来操作。接收器1510和发送器1520中的每个在这里被示为个人计算机,其可以通过两个不同的ISP 1580连接到因特网1590。可以从这两个ISP1580选择一组发送器,使得流数据跨越因特网1590,并且接收器1510经历网络波动。在流媒体会话期间,一个或多个发送器1520可以被断电,以便模拟设备故障。
根据特定实施例,V2P系统可以被用在非对称数字用户线(ADSL)接入网络部署中,其中每个发送器具有有限的上行链路容量,并且必需多发送器解决方案来聚集来自发送器组的整个流送速率。V2P还可以被实现以用于更高带宽的接入网络中,诸如用于FTTx和xDSL网络,其中上行链路带宽从20Mbps变化到100Mbps。在这种环境中,根据特定实施例,V2P并不需要多个发送器来实施1.5Mbps(对应于MPEG-4质量的视频流)或者甚至3-5Mbps(对应于MPEG-2质量的视频流)的流送。一个发送器可以很容易地供给整个流送速率。然而,根据特定实施例,V2P可以对于每个流媒体会话利用备用对等方,以便在网络波动和对等方故障的情况下提供弹性流媒体。在这种情形下,所述V2P(N+M)流媒体模型变成了(1+M),其中流媒体会话使用一个有效供应方和M个备用供应方。因为每个对等方具有高的可用上行链路带宽,所以流媒体会话不再要求N个有效供应方。然而,为了提供弹性流媒体,M个备用对等方可能是必要的。由于每个发送器具有足以服务于多个流媒体会话的容量,所以被分配给一个会话的备用供应方可以很容易地是另一会话的有效供应方。
根据如图16中所示的特定实施例,因为所述发送器的上行链路带宽足以同时供给多于一个流,所以V2P能够并行服务于多个视频流。一个发送器可以向多个流媒体会话供给多个视频。发送器甚至可以向多个流媒体会话供给视频的相同拷贝,这在向许多观看者请求稀有视频的情况下是有用的。一个供应方所能支持的并发视频流的数目不受V2P的限制,而是受到所述STB的硬件I/O处理能力以及可用的上游带宽的限制。在高带宽环境下实现V2P有几个优点,其中包括:
a)对于流媒体会话来说,仅仅需要一个有效供应方加上两个备用供应方;并且因此,可以支持更多的流媒体会话;
b)可用于小区的特定视频的拷贝数目现在乘以了可以由一个供应方服务的并发流的数目,这对于未被许多订户录制的视频来说是特别有用的;以及
c)即使当服务于多个视频流时,V2P也确保了相同的弹性能力。因此,可以很明显看出,V2P在各种同构网络和异构网络部署中都具有价值。
图16示出了根据本发明的一个实施例的在高带宽环境中实现的VoD到对等方(V2P)系统。根据图16,V2P系统1600包括接收器1610a、1610b和1610n(在下文中被标识为接收器1610)、发送器1620a、1620b和1620c(在下文中被标识为发送器1620)以及资源管理框架(RMF)1630。接收器1610在这里被示为STB,这些接收器1610是从发送器1620a接收流媒体的接收对等方。发送器1620在这里被示为STB,这些发送器1620是发送对等方或者流媒体的供应方。应当注意到,任何一个接收器1610可以在其他时间充当发送对等方。类似地,任何一个发送器1620可以在其他时间充当接收对等方。资源管理框架(RMF)1630是受管理基础设施,其由服务提供商管理,所述服务提供商管理接收器1610和发送器1620之间的控制和数据连接,以便执行对所请求媒体的按需流送。RMF 1630还允许接收器1610针对可流送内容搜索V2P系统1600,所述可流送内容诸如是从广播录制的、从发送器录制的或者被下载并被存储在发送器1620上的媒体文件。RMF 1630还允许接收器1610接收内容推荐。
尽管在高带宽网络环境中一个发送器可能足以提供流媒体会话所要求的全流送速率,但是基于(N+M)的有效供应方和备用供应方的流媒体模型相对于(1+M)的有效供应方和备用供应方可以提高总体系统利用率。利用所述(N+M)流媒体模型,尽管每个供应方都能够供给整个流送速率,但是每个供应方提供所述流送速率的一小部分。下面提供了对所述系统利用率的估计。
例如,做出以下假设:
小区大小(对等方的数目)=C;
乘法因子(每个对等方所能供给的流数目)=γ;
对于每个流媒体会话的有效发送器的数目=N;
对于每个流媒体会话的备用发送器的数目=M;
流送速率=R;以及
每个对等方的上行链路容量=C;
于是由下面的关系式给出可能的并发流媒体会话的数目U:
U=γ[CN+M]=cR[CN+M].
在所述(1+M)模型中:
假设C=1200、N=1、M=2、R=2Mbps、γ=5,则有
U=5(1200/(1+2))=2000。
在所述(N+M)模型中:
C=1200、N=4、M=2、R=2、γ=20(由于每个对等方供给所述流的四分之一,现在γ=4*5=2 0),则有
U=20(1200/(4+2))=4000。
所述分析建模说明,在高带宽环境中,(N+M)具有比(1+M)更好的资源利用率。不是使用诸如(N+M)或(1+M)的静态解决方案,V2P可以使用自适应机制。例如,如果所述V2P系统具有特定资源(即特定视频)的足够多的拷贝,则该V2P系统可以优选地使用所述(N+M)流媒体模型以便得到更好的系统利用率。另一方面,如果所述V2P系统仅仅具有特定资源的少数几个拷贝,则该V2P系统可以利用所述(1+M)模型提供流媒体会话。
有可能如下估计所述系统的最大利用率。由于所述备用对等方仅仅在网络波动期间或者在对等方故障期间的供应方迁移过程中才供给一小部分数据,所以每个对等方可以对于有效会话利用其容量,而不是对于备用会话保留其容量。因此,所述最大利用率U由下面的关系式表示:
U=cR[CN].
对于上面的例子,对于所述(1+M)或(N+M)模型来说,所述最大系统利用率都是U=6000。
可以在低带宽和高带宽网络环境的异构小区中更为一般地实现V2P系统。根据特定实施例,只有当给定发送器具有足以为多个流媒体会话做出贡献的资源时,V2P才能够超过一次地利用该给定发送器。否则,在任何给定时间,每个发送器将仅仅被用在一个流媒体会话中。图17示出了被扩展的发送器体系结构,其中根据特定实施例,一个发送器可以向多个接收器提供流。对于每个流,所述发送器打开一个流管理线程。所述流管理模块的每个事例负责与接收器进行通信并且基于由该接收器发送的控制信号而采取动作。所述流管理模块的每个事例还负责把流媒体视频数据提供给接收器。因此,在高带宽环境中,V2P可以支持多个服务器状的流媒体会话。一般化的V2P同时继承了p2p网络环境和服务器-客户端环境的优点,其中所述p2p网络环境使用多个源,而所述服务器-客户端环境则从一个用户供给多个流媒体会话。
在该一般化的多源环境中,发送器可以基于其可用资源对尽可能多的流媒体会话做出贡献。V2P所能支持的并发流的数目取决于多种因素,诸如:
a)具有所请求的内容项目的用户的数目;
b)每个用户的上行链路带宽;以及
c)所期望的流媒体质量。
例如,对于具有C1个低带宽对等方和Ch个高带宽对等方的小区的V2P系统可以支持高达γCh/(N+M)+C1/(N+M)个高质量流媒体会话,其中γ≥1是乘法因子,其表示供应方能为多少流做出贡献。在低带宽环境中,γ=1m,但是在高带宽环境中,γ≈5或更多。
图17是V2P系统的一个实施例的方框图,并且进一步示出了根据本发明的一个实施例的发送器。根据图17,V2P系统1700包括接收器1710、发送器1720、资源管理框架(RMF)1730、奖励管理器1740以及电子节目指南(EPG)1750。各接收器1710与发送器1720交互作用,以便接收流数据。发送器1720与RMF 1730进行交互作用,以便向所述V2P系统登记及宣告内容。发送器1720与奖励管理器1740进行交互用,该奖励管理器1740负责向用户收费以及对适当实体提供奖赏。发送器1720与电子节目指南(EPG)1750进行交互作用,以便允许利用个人视频录像机(PVR)扩增设备来录制内容。
根据图17,发送器1720还包括登记器模块17210、流送管理模块17220、FEC编码器模块17230、资源监控器模块17240以及PVR扩增设备模块17250。登记器模块17210向所述p2p网络登记STB的资源和统计量以及宣告内容。每个流送管理模块17220与接收器进行通信,以便提供数据并且接受控制信号。FEC编码器模块17230对与内容项目相对应的媒体文件中的块进行编码。资源监控器17240基于所述STB的当前状态接受或拒绝新的流送请求。该资源监控器17240还在对流媒体会话做出贡献之后向奖励管理器1740进行报告。PVR扩增设备模块17250与电子节目指南(EPG)1750交互作用,以便协调对录制事件的调度。
图18呈现了示出长尾的曲线图。可以使用统计学采样来对宽泛的观看行为进行外插。例如,图18示出了对于广播节目的受欢迎程度如何观察到长尾。
为了模拟及理解V2P部署的尺寸规格,需要考虑许多变量。例如,可能必需估计由给定的小区大小录制了多少节目,以便确定例如以下尺寸规格:可以录制多少节目,可以由每个发送器输送多少流,可以输送多少并发流,在网络中可以输送多少累积流,V2P系统对内容进行归档的时间有多久远,以及每个STB应当具有多大的盘。例如,一项估计可以是订户录制了他们意图观看的广播内容的25%。可以使用其他数据(诸如电视节目的尼尔森收视率统计(Nielsen ratings))来标识观看特定节目的给定小区大小人口百分比。例如,覆盖前500名的电视节目的V2P系统可以被如下建模:
令所述小区的大小=C(每个用户都具有PVR);
节目i的受欢迎程度是pi;以及
观看节目的用户将录制该节目的概率=ri;
因此,节目i将被录制在所述小区中的概率xl=piri;并且
节目i在所述小区中的所录制的拷贝的平均数=Cpiri。
然后考虑下面三种情形:
1、DSL网络上的标准清晰度(SD)质量流(N=3、M=2)
2、DSL网络上的接近DVD质量流(N=5、M=2)
3、光纤网络上的接近DVD或DVD质量流(N=1、M=2)。
对于其中上游带宽受到限制并且要被流送到单个接收器的视频质量是常规的标准清晰度(SD)电视的DSL网络部署来说,所述有效发送器组要求最多3个,并且所述备用发送器组要求最多2个。
图21A呈现了示出针对3种不同小区大小的对于任何给定节目所能输送的并发流的数目的曲线图。例如,在50000个家庭的小区中,V2P可以支持等级靠前的节目的375个并发流。
图21B呈现了示出针对给定小区大小的能够由V2P输送的最大(或累积)流数目的曲线图。例如,V2P能够对于50000的小区大小输送24000个并行流。
对于其中上游带宽受到限制并且要被流送到单个接收器的视频质量是接近DVD的DSL网络部署来说,所述有效发送器组要求最多5个,并且所述备用发送器组要求最多2个。
图20A呈现示出针对3种不同小区大小的对于任何给定节目所能输送的并发流的数目的曲线图。例如,在50000个家庭的小区中,V2P可以支持等级靠前的节目的200个并发流。
图20B呈现了示出针对给定小区大小的能够由V2P输送的最大(或累积)流数目的曲线图。例如,V2P能够对于50000的小区大小输送17000个并行流。
对于其中上游带宽是100Mbps并且要被流送到5个接收器的视频质量是接近DVD的光纤网络部署来说,所述有效发送器组要求最多1个,并且所述备用发送器组要求最多2个。
图21A根据特定实施例呈现了示出针对3种不同小区大小的对于任何给定节目所能输送的并发流的数目的曲线图。例如,在20000个家庭的小区中,V2P可以支持等级靠前的节目的925个并发流。
图21B呈现了示出针对给定小区大小的能够由V2P输送的最大(或累积)流数目的曲线图。例如,V2P能够对于20000的小区大小输送80000个并行流。
如图21B所示,V2P能够输送总数超出小区的大小的并行流,这允许支持流送到单个家庭内的多个电视。此外,这允许支持异构网络。例如,小区可以包括具有或者不具有PVR功能的STB。不具有PVR功能的STB可能仅仅接收视频流而不向所述网络供给视频流。此外,小区可以包括具有FFTX或DSL接入的STB。
根据特定实施例,为了确定由V2P提供的归档能力的尺度,需要考虑许多参数。将在下面概括某些参数和对于特定实施例的基本假设。
STB盘大小:
1Gb=~1小时的MPEG-2 SD视频
1/2Gb=~1小时的MPEG-4接近DVD视频
1/3Gb=~1小时的MPEG-4 SD视频
日常使用率:
具有PVR的订户每天观看~5小时的电视,其中的25%被录制(~1.25小时)。
因此,下面的等式帮助近似所述归档周期所要求的STB盘大小:
STB盘大小=月数×30×1.25
STB盘大小=月数×37.5
因此,对于3个月的归档,所要求的盘大小会是:
=>STB盘大小~120Gb(MPEG-2 SD)
=>STB盘大小~60Gb(MPEG-4接近DVD)
=>STB盘大小~40Gb(MPEG-4 SD)
图22是示出了根据特定实施例的V2P系统的归档方面的曲线图。例如,根据图22,V2P系统可以对于小区大小M(其中M=2000)完全覆盖等级最高的N个节目(其中N=394)。
V2P利用多源视频流媒体技术。根据特定实施例,重要的前提是,要被每个发送源流送的视频文件在编码格式、比特率和视频的起始帧方面是完全相同的。
V2P的一种可能的实现方式是在STB/PVR设备的p2p网络内。STB/PVR设备的所有方具有几种用于选择他们希望录制的节目的机制。例如,一种机制是通过电子节目指南(EPG)。
可以周期性地把STB的系统时钟与服务提供商的时钟重新同步,使得其保持在预定容限(诸如几秒钟)内。所述同步确保STB/PVR设备可以被正确地调度来录制广播节目。这种时钟差异的明显后果是各STB/PVR设备可能不全在完全相同的时间开始录制广播节目,并且因此可能不是从相同的起始帧开始录制。因此,在V2P可以从多个STB/PVR设备流送所录制的节目之前,要求一种机制来识别出视频文件中的公共起始帧。
图23是示出根据本发明的一个实施例的用于识别出公共视频帧的方法的流程图。在从流媒体会话接收流媒体视频数据之前,接收器可以获得将供给流媒体视频数据的供应方组。每个供应方从对应于特定内容项目(诸如广播节目)的视频文件的单独拷贝供给流媒体视频数据。
在该序列中,在步骤2310,接收器定义时间窗口,该时间窗口例如可以是以广播节目的开始时间为中心并且在时间上向前及向后延伸预定同步容限的时间间隔。可以在几秒钟之内对连接到服务提供商的网络的客户端设备(诸如STB)的时钟进行同步,使得典型的同步容限可以是3-5秒。
在步骤2320,接收器从每个供应方接收参考对象组,所述参考对象组对应于在相关的已定义时间窗口期间出现在所述视频文件内的一组参考视频帧。例如,在MPEG编码的视频文件的上下文中,每组参考视频帧可以对应于在所述时间窗口期间出现在视频文件的每个单独拷贝内的所有I帧。每个参考对象可以代表包含在该组参考视频帧中的每个视频帧内的所有信息或部分信息。例如,使用公知的散列技术,每个参考对象可以是使用被包含在该组参考视频帧中的每个视频帧内的所有信息或部分信息计算的散列值。散列值可以由各供应方在流媒体会话发生之前被预先计算。
在步骤2330,所述接收器对来自所有供应方的所接收的各组参考对象进行比较,以便识别出所有接收到的各组参考对象所共有的公共参考对象。在步骤2340,所述接收器把起始帧设置到对应于在步骤2340被识别出的公共参考对象的视频帧。
例如,接收器定义时间窗口,该时间窗口与服务提供商的各STB之间的时钟同步容限相关。通常以几秒钟的容限对所述时钟进行同步,诸如3-5秒。在电子节目指南(EPG)的帮助下,所述供应方找到节目的起始时间,并且然后使用所述同步容限来确定要找到公共起始点需要在视频文件内向后或向前找多远。所述时间窗口例如可以是以广播节目的开始时间为中心并且在时间上向前及向后延伸同步容限的时间间隔。所述供应方生成参考对象,所述参考对象对应于在所述时间窗口期间出现在视频文件内的一组参考视频帧。例如,在MPEG编码的视频流(包括MPEG-2和MPEG-4)的上下文中,每个画面组(GOP)都独立于其他GOP。所述供应方可以识别出作为I帧的每个GOP的开头。然后,需要对在所述时间窗口期间出现在视频文件的每个供应方的拷贝中的I帧进行比较。如果所述发送器把所述I帧发送到接收器,那么在短时间内发送这个数据量在技术上可能是不可行的。每个供应方可以计算所述I帧的散列值,并且把这些散列值发送到所述接收器。不是计算整个I帧的散列值,而是有可能利用来自每个I帧的部分数据来继续该算法。此外,可以离线地计算散列值,使得可以基于来自接收器的请求而提供所述散列值。当所述接收器接收到各组散列时,该接收器可以很容易地对其进行比较并且在该组供应方中找到表示所述视频文件的起始位置的公共I帧。
在图23中示出的方法并不保证选择到节目的精确起始帧。然而,该方法将选择到相对于所述STB同步容限接近所述节目的开头的起始帧。根据特定实施例,该方法的优点在于,该方法是一种分布式解决方案,并且其不要求视频场景分析来确定起始帧。
在本文献中描述了根据各实施例的针对由STB形成的p2p网络所设计的所提出的视频流媒体系统V2P的各组成部分。根据特定实施例,V2P能够克服上行链路带宽约束,并且利用诸如智能对等方选择、动态缓冲器管理、基于断层扫描的连接监控以及前向纠错码之类的技术实现了相对网络波动和设备故障的弹性。根据特定实施例,V2P提供了各种技术,以便提供诸如多对一视频流中的暂停、快进和快退之类的交互式特征。V2P被扩展来在光纤网络中提供视频流。根据特定实施例,还提供了用于光纤和DSL网络中的资源提供的详细分析模型。根据特定实施例的算法还提供了对于由不同用户录制的所有视频内容的同步,使得V2P可以利用多对一流媒体模型进行流送。
总而言之,根据各实施例,本发明设想了在具有非对称带宽特性并且可能具有不可靠连接的异构对等网络中利用多个源(包括有效和备用供应方)进行高质量和弹性视频流送。根据各实施例,本发明设想了利用多种机制实现高质量和弹性的流媒体,其中包括智能对等方选择、基于网络断层扫描的连接监控、动态缓冲器管理、动态速率分配以及动态FEC编码和解码。本发明还设想了以高效的方式模拟交互式重放控制,诸如暂停、快进和快退。
虽然结合优选实施例描述并说明了本发明,但是在不脱离本发明的精神和范围的情况下,本领域技术人员可以想到许多变型和修改,因此,本发明不限于上面阐述的方法或构造的精确细节,因为这样的变型和修改意图被包括在本发明的范围之内。
版权通告
本专利文献的公开内容的一部分包含受到版权保护的素材。版权所有者不反对任何人按照其在专利和商标局专利文件或记录中所出现的那样复制所述专利文献或专利公开内容,但是在其他任何方面保留所有版权权利。
相关申请的交叉引用
本申请要求于2005年8月12日提交的美国临时申请60/708,020(代理人案号2005P14442US)和2005年12月12日提交的美国临时申请60/749,730(代理人案号2005P22668US)的权益并且将这些申请通过引用结合于此,这两篇申请的标题都为“A Multi-Source andResilient Video Streaming System for Peer-to-Peer Networks(用于对等网络的多源弹性视频流媒体系统)”并且都具有与本申请相同的发明人。