机顶盒对等端辅助的视频点播的制作方法

文档序号:7938699阅读:278来源:国知局
专利名称:机顶盒对等端辅助的视频点播的制作方法
技术领域
本文总体上涉及内容分发,更具体地,涉及但不限于针对基于机顶盒的IP网络的 对等端(peer)辅助的视频点播。
背景技术
支持IP的机顶盒(STB)可以在家庭网络中使用,并可以支持语音、音频和数据。有 线运营商(MSO)为STB提供有限的视频点播(VoD)选择菜单。针对基于IP的传送的机顶 盒可以包括较大的盘驱动器或其他存储器。例如,最新型的Tivo DVR包含250GB驱动器, 可以存储300小时的标准质量MPEG2或32小时的高清视频。

发明内容
本发明人认识到,其中,从集中式服务器流传输VoD在带宽和服务器容量方面较 为昂贵。作为示意示例,YouTube每天可以流传输4千万视频和200TB的数据,每个月支付 l百万美元用于传输。对于高清的具有电影长度的内容,成本将明显更高。在2002年,据称 Netflix每天大约分发1500TB的DVD。 使用对等(peer-to-peer)网络的视频流传输方法可以包括基于应用级多播树的 方法,或者用于分发内容的基于网格的推或拉方法。在一个方法中,可以为STB提供VoD服 务,但是该方法不使用STB的大存储器用于预取(pre-fetching),并且不支持VCR操作。多 数方法不支持VCR操作、负载平衡或接纳控制。在按观看付费的服务中,确保对订户的服务 质量是非常重要的。


图1示出了 IPTV服务体系结构的示例,在该体系结构中,TV头端可以例如通过 ISP骨干向数字订户线接入复用器(DSLAM)提供IPTV内容。
图2示出了 VoD系统的部分的示例。 图3是P2P客户端回放窗口模块和预取模块的示例的图。
图4是示出了 P2PVoD系统的通信图的示例。
图5示出了P2P覆盖的示例。
具体实施例方式
支持IP的机顶盒(STB)可以在家庭网络中使用,并可以支持语音、音频和数据。有 线运营商(MS0)为STB提供有限的视频点播(VoD)选择菜单。针对基于IP的传送的机顶
5盒可以包括较大的盘驱动器或其他存储器。 从集中式服务器流传输VoD不仅在带宽和服务器容量方面而且在可縮放性方面较为昂贵的并是有问题的。本发明人认识到,其中,STB可以对等地流传输视频。这可以包括例如STB的拥有者已经观看的电影,或对等协调功能下载至STB的电影,如预期拥有其他对等端STB的其他用户所需求的。 一般而言,假设STB连续可用,即使STB拥有者不观看电影时也是如此。集中式VoD服务较差可縮放性可以显著地增加对流行的高清视频进行流传输的成本。 使用特定对等(P2P)技术可以增强可縮放性。然而在特定方法中,系统必须根据请求相同文件的多个用户来縮放。在现场流传输的示例中,仅一个特定下载必须通过保持低延迟来管理,可以通过智能地转发负载来执行该操作。P2PVoD系统应当能够通过协作下载多个视频文件来縮放,同时能够同时流传输该文件。这可以将文件共享和文件流的挑战与能力组合到相同的系统中。 本文描述了,其中,可以使用本地化P2P系统(如适当配置的STB)的对等端辅助的VoD体系结构。这允许从相同本地网络中的其他对等端STB或对等端的其他指定池将视频流传输至对等端STB。 P2PVoD系统可以降低传送视频内容的成本,并还可以是高度可縮放和可靠的,具有良好的接纳控制原语。 在特定示例中,系统或方法可以包括VoD特征,如快进、倒退(或其他VCR操作)、以及低启动延迟。系统可以提供短启动延迟,可以提供在其所调度的回放期限之前接收的高百分比的数据(可以称为"实际吞吐量(goodput)"),以及可以例如通过使用避免饥饿的特定技术来提供较高的总下载容量利用率。该系统在用户数目、电影数目或可用的完整视频文件数目方面提供可縮放性。此外,该系统可以例如基于用户需求以成本效率较高和可縮放的方式来帮助长尾内容。这可以帮助克服VoD的一些最困难的挑战。
在特定实施例中,本系统或方法可以通过以下方式来满足一个或多个这样的挑战例如基于对内容的预期要求,利用在STB上预缓冲的内容来实现完整分发的视频内容目录表。 一些示例可以允许服务供应商容易地注入新内容,或复制现有内容,如基于针对该特定内容的用户要求。在测试中,可以使用实际吞吐量或带宽利用率作为评价性能的度量来评价系统。在特定示例中,本P2PVoD客户端对等端可以独立地在Li皿x STB或其他系统上工作,并且通过在短暂启动延迟之后从其他对等端节点下载电影来开始播放电影。
对等视频流传输的特定方法可以涉及基于应用级多播树的方法、或用于分发内容的基于网格的推或拉方法。使用STB模拟VoD的特定方法不使用STB的大存储器或视频内容的预取,这样的方法也不支持VCR操作。特定的其他方法不支持VCR操作,并且不提供负载平衡或接纳控制原语,从而它们不能确保对订户的服务质量(QoS),这是阻止按观看付费的服务成功的问题。 一些方法可以例如使用泊松到达模型来提供对单一视频分发的分析。实际轨迹可以用来模拟对未来内容进行预取的策略。 一种方法可以使用推送至对等端的方案,其中,可以将目录表的主要拷贝推送至用于视频点播STB。然而,本系统和方法可以提供具有低启动时间的完整P2PVoD系统,可以通过预取内容来提供具有减小的抖动的更好的用户体验,以及可以例如在VCR操作期间通过对下载进行优先级排序来提供非常低的搜索延迟。 在特定示例中,系统可以包括4个模块化组件目录、组块映射(chunk m即)、检索协议和视频客户端。目录可以将电影(或其他视频或其他内容)的名称映射至相应的内部 标识符,如通过使用全局分发的散列表(DHT)。对于特定电影,组块映射可以指示对等端池 中哪个对等端节点持有本地网络内视频内容数据的组块的拷贝。可以将组块映射存储在非 结构化的对等网络中;可能存在相同组块的多个拷贝,如存储在对等网络池中不同对等端 节点处。可以对组块映射进行更新,如基于STB正在进行的下载或擦去内容的操作。 一些 方法可以假设内容供应商向足够数目的STB散播内容,如基于对内容的未来流行度进行估 计。(为了应对"瞬间拥挤(flash crowds)",在公开发行日之前可以将内容推送至对等端。 时间受限的DRM,或一个或多个关键组件(如MPEGI帧的部分)的较晚传送可以用来防止在 官方发行日之前观看)。检索协议可以将组块从其他对等端STB下载至对等端STB,例如与 内容服务对等端和网络容量所允许的一样快。 在一些示例中,每个STB可以用作本地视频服务器,并可以响应一个或多个指定 的流控制协议,如实时流协议(RTSP)。如果需要,可以使用如当前用于流传输的现有视频客 户端(如利用本地STB)。在一些示例中,这还允许相同家庭中的多个观看者共享公共的本 地STP。 图1示出了互联网协议电视(IPTV)服务体系结构100的示例。在该示例中,TV 头端101可以例如通过ISP骨干103向例如数字订户线接入复用器(DSLAM) 102提供IPTV 内容。在一些示例中,消费者订阅VoD、IP电话或互联网接入服务。特定地理区域内的STB 可以连接至公共DSLAM。这可以形成子网。这样的子网继而可以连接至国家或国际IP骨干 网。子网内的STB可以具有相同的IP地址前缀。这可以帮助STB对等端识别另一STB对 等端的位置的大体地理位置。来自各个不同子网的STB对等端可以形成非结构化的P2P网 络或P2P网络的一部分。 为了传输视频内容数据,可以将视频内容文件分为视频内容数据的"组块"。还可 以将这样的组块进一步分为可以单独检索的块,如固定大小的块(例如16KB)。在示意示 例中,可以使用1M的视频内容组块。所选的特定组块大小可以影响对要从另一STB对等端 节点下载的特定组块进行选择的事务开销。较小的组块大小将增加组块和对等端选择以及 STB对等端节点之间的协商中的开销。然而,对具有较大组块大小的组块进行多次下载可以 总体上降低系统的可縮放性。在现代住宅和校园宽带网络中,下游和上游带宽一般足以流 传输至少一个电影,例如至少1Mb/s以进行TV质量的观看。如果上游带宽不足以流传输一 个电影,则P2PVoD系统不能使用该特定STB对等端作为另一 STB对等端的主要视频内容源 回放"父节点"(以下进一步说明),但是从这样的STB对等端进行预取仍可以工作。
在特定示例中,本P2PVoD系统可以通过与STB供应商或DVR提供商合作来操作。 在这样的示例中,P2PVoD系统不能为控制网络的实体之间的合作提供激励。然而,如果需 要,可以包括某种形式的交换条件(quid-pro-quo)机制。 一些方法假设,与长距离分发(可 以延伸到供应商的网络外部)相比,在供应商的网络内带宽成本明显更低。在特定示例中, 本系统和方法可以被配置为,对连接至系统的用户进行处理,如可以使用泊松到达速率进 行建模。 图2示出了 P2PVoD系统210的部分的示例。在该示例中,系统210包括STB VoD 对等端节点211。在该示例中,VoD对等端节点211可以包括P2P客户端212、具有P2P封 装器214的RTSP服务器213、本地视频播放器215、以及中央跟踪器216。
在示例中,RTSP服务器213可以被配置为向与其通信耦合的视频播放器215提供 视频内容。在特定示例中,RTSP服务器213可以包括Open live555RTSP流服务器,并且 RTSP服务器213可以将P2P客户端212(例如,作为库)加载到STB VoD对等端节点211 中。P2P封装器214可以用作RTSP服务器213与P2P客户端212之间的接口。
在图2的示例中,P2P客户端212可以包括视频缓冲器219、回放窗口模块220 (这 里有时称为"回放模块")、预取模块221以及数据发现模块226。在该示例中,P2P客户端 212的数据发现模块226可以首先联系中央跟踪器216,例如以获得关于其他STB对等端节 点218的信息,如其他STB对等端节点218池中哪些其他STB对等端节点218可用、哪些其 他STB对等端节点218存储了哪些内容组块、哪个其他STB对等端节点218用作回放父节 点(如以下进一步描述),哪些其他STB对等端节点218下载内容最快等等。在示例中,中 央跟踪器216可以包括P2P覆盖信息217,并且还可以如通过发出组块请求来直接联系一个 或多个其他STB对等端218,以获得期望的视频内容数据。客户端STB对等端211可以将所 接收的视频内容数据存储在如视频缓冲器219内的指定文件中。RTSP服务器213可以读取 视频缓冲器219。视频缓冲器219还可以用于将视频内容数据提供给池中的一个或多个其 他对等端218。在示例中,RTSP服务器213可以首先查询P2P客户端212中的视频内容数 据的可用性。如果这样的视频内容数据在P2P客户端212的视频缓冲器219中可用,则P2P 客户端212可以允许RTSP服务器213读取所请求的视频内容数据。否则,P2P客户端212 可以"暂停"RTSP服务器213。当暂停RTSP服务器213时,P2P客户端212的数据发现模块 226可以将一个或多个请求发送至一个或多个对等端节点218,以获得所请求的数据(该所 请求的数据是RTSP服务器213实质上立即需要的),以例如由本地视频播放器215进行回 放和显示。RTSP服务器213所请求的实质上立即需要的视频内容数据在视频缓冲器219中 或P2P客户端212中的其他地方可用,则在示例中,P2P客户端212可以有利地请求在P2P 客户端212处尚不可用的、视频内容数据的下一顺序段。 当RTSP服务器213从视频缓冲器219读取(或由P2P客户端212从池中的另一 STB对等端218获得)实质上立即需要的数据时,RTSP服务器213可以如通过使用RTSP协 议来向视频播放器215开始流传输这样的视频内容。 P2P封装器214可以包括一个或多个原语来辅助RTSP服务器213通过P2P客户端 212来读取视频内容数据,以例如在P2P客户端212向另一 STB对等端节点218发起针对 RTSP服务器213所请求的视频内容数据的请求之前,检查视频内容数据在P2P客户端212 的视频缓冲器219中是否可用。 如以下进一步所述,为了增加或最大化如系统中整个STB对等端池的下载速率, 节点可以从不同对等端请求视频内容数据的各个块,而不是请求整个组块。特定组块和块 大小将影响对请求速率的控制,并将影响系统降低或最小化与控制业务量相关联的开销的 能力。在示例中,可以从另一 STB对等端218请求的视频内容数据的最小单元是组块的单 一块。在示例中,可以将块大小固定为16KB,例如,对于当前技术,本发明人相信在特定情况 下,通过TCP下载视频内容数据单元可以如通过增加用于传送组块的总时间,导致与其他 组块下载的竞争。该系统可以被设计为(如通过建立特定固定块和组块大小值),增加或 最大化系统的总视频内容分发吞吐量,而不是尝试获得针对一个或多个特定单独STB对等 端211或218的较快视频内容分发吞吐量。对内容请求的细粒度控制(例如,允许单个或
8多个块或组块请求)可以帮助系统动态适应于针对视频内容的高优先级和低优先级请求 之间的带宽共享。 在示例中,P2P客户端212可以通过与一个或多个其他STB对等端节点218、中央 跟踪器216 (以例如智能识别要取回的视频内容数据)、或从中取回这种视频内容数据的源 STB对等端节点218进行交互,来向流RTSP服务器提供213视频内容数据,使得在视频内容 数据的回放期限之前可以在本地STB对等端节点211处接收到视频内容数据。在示例中, P2P客户端212还可以同时监控预期的视频内容数据请求,例如以增加或最大化下载带宽。
在图2的示例中,P2P客户端212可以包括回放窗口模块220和预取模块221。在 示例中,回放窗口模块220和预取模块221可以同时但实质上相互独立地分别操作,从其他 STB对等端218下载视频内容数据。回放窗口模块220可以下载RTSP服务器213实质上最 立即需要的视频内容组块,在示例中如用于在视频播放器215处保持流视频显示。在示例 中,预取模块221可以例如从任何其他STB对等端218下载其他视频内容数据。这可以使 用回放窗口模块220未使用的多数(如果不是全部)剩余下载带宽。这可以被概括为,基 于回放窗口模块220的"需要性",在回放窗口模块220和预取模块221之间动态共享STB 对等端211的全部下载带宽,以下载实质上立即需要的视频内容数据,以在视频播放器215 处保持流视频显示。这样的需要性可以是基于回放窗口 220立刻需要的视频内容数据中预 取模块221已下载的百分比来确定回放窗口模块220所使用的带宽的因素。
图3示出了回放窗口模块320和预取模块321的操作的示例的部分。在该示例中, 回放窗口模块320可以在视频文件缓冲器319上实现滑动窗口 324。以这样的方式,回放窗 口模块320可以使用滑动窗口 324来馈送RTSP服务器213所需的视频内容数据的量(例 如,块或组块),以向视频播放器215的流视频显示提供服务。当视频播放器215 "消耗"了 这样的视频内容数据量用于显示时,滑动窗口 324可以在视频文件缓冲器319上前移,以取 回新的视频内容数据量。可以将滑动窗口 324实质上立即需要的视频内容数据量声明为高 优先级。如果这样的高优先级数据尚未被预取模块321取回并加载到视频缓冲器319中,则 可以立即搜索要从与回放窗口模块320进行通信的一个指定的回放父节点对等端325中取 回的这种高优先级视频内容数据。预取模块321可以使用客户端STB对等端211的任何剩 余下载带宽来将附加视频内容数据从其他STB对等端318加载到视频文件缓冲器319中。 在示例中,对等端列表可以从中央跟踪器316获取并由中央跟踪器316保持。
在图2中,回放窗口模块220可以顺序地从具有高优先级的指定的(单一 )回放 窗口父节点(如稍后进一步说明)下载视频内容数据的一个或多个块或组块。回放窗口模 块220可以如通过有利地在RSTP服务器213当前读取的指针之前取回,来尝试保持RTST 服务器213实质上立即需要的视频内容数据的下几帧的可用性。通过RSTP服务器213实 质上立即需要的数据中已由STB对等端211的P2P客户端212的预取模块321预取的百分 比来确定针对视频内容数据的输出请求的数目。 在P2P客户端212的初始启动阶段期间,针对RSTP服务器213的给定请求,没有 视频内容数据可用。因此,P2P客户端212的回放窗口模块220发起针对这种初始视频内 容数据的高优先级请求。然而,随着媒体会话的进程,预取模块221会将视频内容数据中的 一些下载到客户端211STB对等端211的视频文件缓冲器219、319中。因此,回放窗口模块 220所使用的带宽将逐渐减少,但将基于已下载的视频内容数据来动态适配。在示例中,当RTSP服务器213尝试读取单一帧的数据时,P2P客户端212发出针对所请求的帧和视频内 容数据的紧接的顺序组块(可以称为回放窗口组块)(或其他量)的请求。
回放窗口模块320提供的滑动窗口 324的大小可以影响保持视频内容数据的最小 下载速率的良好程度。滑动窗口可以概括为,以视频编码或回放的速率滑动前移。80%的 视频显示用户的向前搜索被认为是针对接下来300秒视频之内的位置。因此,在示例中,将 滑动窗口 324的大小设置为能够缓冲至少大约300秒的视频。滑动窗口 324可以按照优选 顺序在滑动窗口 324内缓冲所有组块(或其他量)。例如,可以针对最快要接近组块期限的 组块给予优选。当滑动窗口 324满时,它可以向前移动,如每次一个组块,视频播放器215 消耗视频内容数据的组块用于显示。当滑动窗口 324中90%以上为空时,则可以使用多个 连接(例如,连接至不同的其他对等端218),例如以保持指定的最小下载速率。这样的缓冲 器下溢例如会在用户进行VCR操作(例如,"倒退"或"快进"至视频内容文件中的未缓冲位 置)时发生。 即使保持滑动窗口 324的最小下载速率有助于实时视频观看,仿真表明,由于预 取和增加了内容缓冲时间(例如,90分钟电影文件的缓冲时间从200分钟至1000分钟), 本系统被配置为以大约1Mb/s的上载带宽速率为系统中特定数目的节点提供服务。原先, 仅可以以4Mb/s的上载速率为相同数目的节点提供服务,其中TTL为200分钟。通过对视 频内容数据进行更长时间的缓冲,预取模块221可以帮助将回放模块220所需的上载带宽 降低至其先前速率的四分之一。这显著地节省了内容供应商所需的上载带宽。STB的大存 储容量可以帮助我们通过仅增加缓冲时间(例如,TTL,对于给定上载速率)来管理较大的 拥挤。这种带宽使用的成本节省和负载平衡的容易进行可以提供显著的优点。
发明人在滑动窗口 324中使用不同数目的组块进行测试。在特定示例中,当滑动 窗口 324取回的组块数目少于4个时,RSTP服务器213在从指定的回放父节点STB对等端 218下载视频内容数据比平常花费略微长时间时会"饥饿"(例如,用尽视频内容数据)。如 果通过滑动窗口 324取回的回放组块多于4个组块,则P2P客户端212的回放窗口模块220 对内容发起过多附加请求,导致对预取模块321留有很少(如果有)下载带宽。这有效地 使P2P客户端212成为顺序取回设备,从而降低系统的可縮放性。 在一些示例中,P2P客户端212的数据发现模块226可以选择池中要指定为高优 先级对等端的一个其他STB对等端节点218。该特定指定的一个其他STB节点218可以被 称为指定的回放窗口父节点。可以将回放窗口父节点选择为使得其回放指针(例如,父回 放指针)指向按顺序在下载子节点的回放窗口指针(例如,子回放指针)之前的视频内容 数据。当选择回放窗口父节点时,可以给出优选以选择存储了在由请求子STB对等端211 的子回放窗口请求时需要下载的所有视频内容数据组块的父节点。在选择父节点其他STB 对等端218之前,通过从中央跟踪器216请求子STB对等端211来获得该信息。
在一些示例中,该系统被配置为使得任何给定下载子STB对等端节点211可以仅 指定一个回放窗口父节点其他STB对等端218。在一些示例中,仅允许回放窗口父STB对等 端218用作单个请求子STB节点211的父节点。P2P客户端212请求并下载请求子STB节 点211的RSTP服务器213的回放指针的时间邻域中的视频内容数据组块。如果当前回放 指针位置的组块和下一顺序组块在本地不可用(这种情况有时会发生,如在启动时或由于 带宽波动),则P2P客户端212可以通过取消除高优先级组块请求之外的所有组块请求来响应回放窗口父节点。这有效地释放了客户端STB对等端211针对实质上立即需要的组块的下载带宽。 在特定示例中,指定的回放窗口父STB对等端节点218对其指定的请求子STB对等端节点211的下载请求队列进行监控。如果未决请求的数目指示在请求子STB对等端节点211处没有实质上立即需要的回放窗口组块可用,则回放窗口父STB对等端节点218可以取消来自其他请求STB对等端节点(例如,除了父节点的指定子节点以外的节点)的一个或多个较低优先级请求。这有效地释放了由父节点的指定子STB对等端节点211使用的父节点的上载带宽。 在一些示例中,预取模块221可以补充回放窗口模块220的下载能力。例如,预取模块221可以使用一些或所有剩余下载带宽来请求在本地缓冲器219中丢失的视频内容数据组块。当可用下载带宽超过视频编码/流速率时,预取模块221可以同时下载具有较低优先级的视频内容数据组块,并且回放窗口模块220下载具有较高优先级的实质上立即需要的视频内容数据组块。从而回放窗口模块220和预取模块221均同时将视频内容数据下载至视频文件缓冲器219。 在示例中,所有其他STB对等端节点218可以将视频内容数据组块上载至多于一个请求客户端STB对等端节点211。因此,可以在多个下载客户端STB对等端节点211上划分特定STB对等端节点218的上载带宽。在一些示例中,下载STB对等端节点211的回放窗口模块220可以首先开启与特定服务STB对等端节点218的单一连接,并可以保持特定最小下载速率,该特定最小下载速率可以略微超过下载STB对等端节点211的视频编码/回放速率,以禁止或防止视频播放器215陷入空视频文件缓冲器219的情况(例如,饥饿)。在一些示例中,当下载速率降低到指定最小阈值之下时,作为响应,回放窗口模块220可以通过开启与不同服务STB对等端节点218的多个连接来下载实质上立即需要的组块。在一些示例中,当下载速率下降到指定最小阈值之下时,作为响应,预取模块221可以然后通过开启与不同服务STB对等端节点218的多个连接来下载视频内容数据组块。在任一情况下,至少部分通过使用关于先前下载速度的信息来选择特定服务STB对等端节点。在示例中,这样的信息可以从中央跟踪器获得,或在下载STB对等端节点211处本地保持(例如,基于过去的事务经验)。保持超过最小下载速率的足够下载速率将帮助为视频播放器215的观看用户提供良好的观看体验。 为了准备帮助将视频内容组块下载至下载STB对等端节点211的P2P客户端212的本地视频缓冲器219,预取模块221可以识别本地丢失的视频内容数据,并然后可以选择从中下载丢失的视频内容数据的对等端。预取模块221的性能可以影响总下载性能。由于几乎不知道可用于P2P客户端212的总下载带宽,并且该总下载带宽通常波动,如根据以下公式,各种示例可以提供自适应预取速率 queue—size = queue—time化urrent—block—download—rate ;
if(queue_size > MAX_QUEUE_SIZE)
queue_size = MAX_QUEUE_SIZE ; if (queue_size < MIN_QUEUE_SIZE)
queue_size = MIN_QUEUE_SIZE ; 皿m—requests = queue_size_download_queue. size ()—request—queue, size();
其中,qUeUe_time指请求队列的长度(例如,以其他STB对等端218发送所有数据所花费的秒数给出),download—queue, size()禾口 request_queue. size()返回队列的相应大小。 在一些示例中,将MAX—QUEUE—SIZE和MIN—QUEUE—SIZE设置为指定值,如分别为48和2。 在一些示例中,可以使用基于时间的期限来确定预取请求的总数,该基于时间的期限用来限制在请求队列中开启的任何请求所花费的总持续时间。如果输入请求速率等于处理速率,则队列长度将保持恒定。在一些示例中,为了帮助避免请求饥饿,可以设置基于时间的期限,在该期限之前,需要由其他STB对等端节点218来处理请求。这是有帮助的,如在向多个其他STB对等端218发送许多并发请求来帮助增加或最大化请求客户端STB对等端211的下载带宽利用率时,同时保持严格时间期限,在该时间期限之前要处理特定请求。
在计算要发送的请求的数目的同时,预取模块221或数据发现模块226还可以帮助识别在一个或多个其他STB对等端218处可用的视频内容数据块或组块,并确定从中下载特定视频内容数据组块的特定STP对等端218以保持下载带宽的高利用率,这继而增强了可縮放性。针对组块和对等端选择的一种技术的示例描述如下
partial_chunk_list = partial_downloaded_chunks(chunk—map)
if (partial_chunk_list. empty () ! = true) {interesting—chunk =找到partial_chunk_list中完成其下载所需的块数目
最少的组块} elseinteresting_chunk = _1 ; if (interesting_chunk == _1) {interesting_chunk 二覆盖最稀有的组块} while (num—request 〉 0) reqst_peer = max_down_rate(interesting—chunk)
皿m—request = reqst_peer. send_request (interesting_chunk. free_blocks(); 上述技术可以用于对视频内容数据下载进行优先级排序。在一些示例中,对部分
下载的视频内容组块给出比其他下载更高优先级。在一些示例中,预取模块221可以避免
或防止从指定回放窗口父STB对等端节点218下载视频内容数据,而是选择一个或多个其
他STB对等端218从中预取视频内容数据。在一些示例中,如果识别出多于一个部分下载
的组块,则对非常接近下载完成的部分下载的组块给出比离下载完成较远的另一个部分下
载的组块更高的优先级。 在示例中,如果没有识别出部分下载的组块,则首先选择期望视频内容文件的最稀有/随机组块进行下载。最稀有/随机组块是池中最少其他STB对等端218所存储的组块。该最稀有/随机组块优先策略可以帮助在池中的STB对等端之间传播和分发稀有的内容。 在示例中,一旦识别出期望的视频内容数据的组块,则预取模块221可以识别从中下载该期望的视频数据内容的组块的服务STB对等218。在一些示例中,下载STB对等端
12211的P2P客户端212可以监控与预取模块221进行通信的每个服务STB对等端218的下 载速率。如果期望的视频内容数据组块在池中的多于一个STB对等端218处可用,则预取 模块221可以至少部分基于其历史下载速率来选择一个或多个STB对等端218用于进行下 载,该历史下载速率例如与对该特定期望组块进行缓冲的其他STB对等端218的下载速率 相关。在客户端STB对等端211的下载带宽受其回放窗口模块220限制的情况下,由其预 取模块221建立的附加连接可以减小任何已建立连接上的下载速率。因此,在特定示例中, 预取模块221可以识别STB对等端211的下载带宽何时受到其回放窗口模块220的限制, 并且作为响应,其预取模块221可以相应地动态管理其与其他STB对等端218的连接,例如 以在特定示例中提高其尽可能多的连接的下载性能。 在识别和选择具有已识别的期望视频内容数据组块的STB对等端218时,预取模 块221可以例如使用图4所示的用于增加或最大化可用于下载的任何剩余带宽的利用率的 技术来发出多个请求。 作为概述,两个模块(例如,回放和预取)下载的这种方法,可以提供对所需视频 内容数据的及时传送。预取可以帮助增强网络资源的高效使用,并可以通过比其他方法 (如对内容进行顺序取回或从多个对等端流传输内容的方法)更快地分发内容来帮助提供 P2P网络的鲁棒性。目前所描述的通过单独模块的主动预取可以允许在电影初始几分钟期 间对整个视频文件进行缓冲,对用户进行随机搜索给出相当的回旋余地,而不会引起任何 抖动。主动预取可以帮助增强网络的鲁棒性,并可以帮助提供更好的用户体验。针对实际吞 吐量的仿真示出,在节点的切换期间,本地节点中的预取可以比其他方法更好地避免抖动。 针对VoD服务的本系统和方法的另一增强特征是提供VCR操作。考虑到当用户正在观看电 影的第IO分钟处的视频的场景;滑动窗口 324将对立即需要的视频组块进行缓冲。但是, 假如用户突然期望跳转到电影的第40分钟。现在,回放窗口模块220立即跳转至电影的第 40分钟,并尝试检索与针对电影的第40分钟的滑动窗口 324的位置相对应的视频组块。观 察用户交互的实验看来指示向前搜索或VCR操作的次数随着会话的进程而增加。整个内容 的主动预取帮助提供增加的向前搜索,而没有任何抖动。 各种方法可以在VCR快进和向前跳转操作期间通过最大化下载数据量来寻求降 低或最小化正常回放期间的故障的可能性。然而,在不提供的情况下,如果针对相同家庭 的较低优先级流和较高优先级流共享相同的瓶颈链路,则较低优先级流可以降低较高优先 级流的吞吐量。这可以概括为自干扰。特定方法可以使用减小或最小化该问题的机制,包 括例如DiffServ、探测或使用多个流。使用DiffServ,例如系统可以相应地标记较高、较 低优先级分组,使得路由器可以对分组给出适当的调度和丢弃优先级。许多家庭路由器 支持DiffServ,并且一些802. 11接入点还使用DiffServ标记来进行优先级排序(使用 802. lie)。 探测可以操作为使得如果正在观看的组块的流正在接收不足的带宽,则客户端可 以挂起较低优先级流,并观察该挂起是否增加较高优先级流的带宽。如果是,则这指示这些 流正在竞争相同瓶颈带宽。在这种情况下,使用多个流会起到反作用。
第三种方法可以创建多个TCP连接并从不同对等端节点检索不同组块(如RTSP 协议之类的协议允许文件内的随机访问,使得可以支持随机访问)。例如,Web浏览器能够 常规地创建4个并发TCP连接以取回页面的HTML和图像内容。
在一些情况下,如果尚未取回针对搜索操作的组块,则用户将在正在取回组块时 经历延迟。在一些示例中,以视频的规则时间间隔(例如1分钟)形成连续5秒视频的特定 关键/常用帧可以形成在启动期间可以下载的锚点(anchor point)。多数用户向前搜索也 将是针对使用在锚点中缓冲的组块可以立即提供的这些关键帧。如果用户的搜索不是针对 精确的锚点,则滑动窗口可以被调整至最近的锚点。因此,没有任何延迟,可以立即满足随 机搜索,并且5秒的回放时间可以用来下载滑动窗口的其余部分。使用这样的锚点还可以 在用户扫描视频时帮助支持用户进行电影采样,十分类似于便携式CD播放器所支持的"介 绍米样(intro-s咖pling),,。 来自对用户行为的实验结果示出,多数流行视频内容具有较短的会话长度,其中 多数用户可能之前已经见过最流行的视频,无论是通过其他媒介(影院或DVD)还是在之前 的VoD会话中。在多数这些较小会话中,用户倾向于仅扫描整个视频。基于用户行为对锚 (例如关键帧)和最常用组块进行下载可以帮助在用户扫描整个视频文件时更快速地提供 组块。 调度策略定义了如何发现可用组块、下载什么组块以及从哪里下载组块。这些策
略中的一个或多个可以影响整个VoD系统的总体性能,这是由于这些策略定义了系统传送
的控制消息的数量,并且它们还判定节点接收的数据的效率和及时传送。 在一些示例中,针对由VoD服务发行的每个电影,可以存在由覆盖中对电影内容
进行缓冲的所有节点形成的全局分布的散列表(DHT)。这可以被称为组块映射。首先,可
以将整个电影存储在源服务器中,并所有组块可以从源服务器提供。然而,当STB下载组
块时,它们可以根据其中可用的所有组块来更新其在DHT中的位置,并且可以在节点离开
网络时从DHT中移除节点。覆盖中的一个节点可以负责DHT中视频文件的指定范围的组块
ID。该节点可以保持已对ID落入其ID空间内的组块进行缓冲的所有其他节点的列表。只
要STB要下载特定组块,STB可以搜索DHT,并获得覆盖中已缓冲所需组块的所有节点的列表。 观看者在观看电影时可以检索的三种类型的组块是有区别的。第一种类型的组块 是当前正在观看的组块,该组块明显应当具有最高优先级以避免回放中的中断。至少应当 与当前组块的消耗速率一样块的速度来进行该检索;如果下载速度较大,则对内容进行缓 冲以补偿传送中的任何未来故障。其他类型的检索使得VCR操作更可能经历最小延迟。第 一种类型的预取获得整个电影的关键帧,允许平滑的快进操作。对于MPEG编码的电影,典 型地这将是电影中1/15的帧(虽然这是较大部分的字节量)。对预取当前组块之前的组 块,可以给出最低优先级。这既可以顺序地进行,也可以由系统对观看历史进行采样,以确 定特定DVD章节是否例如比其他章节更常用。取代下载整个单一段(连续组块的集合,形成 几分钟视频),可以利用观察者跳转至章节或场景开始处的事实。因此,系统可以首先下载 每段的前几个组块,足以允许系统无中断地流传输当前段。针对每个段,可以重复该剥离操 作。由于三种类型的下载可能来自于不同源,并且下载带宽可能高于上载带宽,用于观看者 的总可用带宽将比从单一源拉取数据更大。该策略还处理对用户更可能在电影的靠后部分 期间向前跳转的情况的观察。此时,在观看者的STB处将预先高速缓存电影的更多部分。一 旦节点决定下载组块,节点可以查询针对缓存这些所需组块的STB的组块映射或全局DHT。 组块映射返回缓冲这些组块的STB的集合。可以选择在相同子网或AS(自治系统)内所有
14对等端中提供更多上载带宽的STB,以用于下载组块。 在本体系结构的示例中,如果在客户端STB对等端211处不存在可用的本地拷贝, 或者如果持有拷贝的所有其他STB对等端218都繁忙,则本地DHT将电影名称映射至对等 端内容标识符以及基于服务器的URL。由于每个组块可能由多个STB对等端211、218持有, 接收机STB对等端211可以判定联系哪个其他STB对等端218。 一般而言,选择过程可以避 免热点并可以优选服务STB对等端218和下载STB对等端211之间的短传输距离。 一旦组 块来到子网内的STB对等端节点211、218,可以在本地交换组块,减少昂贵的跨AS业务量。
在一些示例中,回放窗口模块220可以尝试在其相应的组块期限期满之前获得滑 动窗口 324所需的组块。在一些示例中,回放窗口模块220可以例如通过搜索DHT来首先 搜索来自子网内其他STB对等端218的期望组块。如果期望组块不可用,则回放窗口模块 220可以例如通过搜索DHT来搜索其他子网中的期望组块。在一些示例中,回放窗口模块 220不能从覆盖网络内获得期望的视频内容数据组块,然而,该回放窗口模块220仍可以从 其他服务器(如源服务器)获得期望的组块。为了保持每个服务器的扇出(fan-out)限制, 并且禁止源处的过度拥挤,一些示例可以对可以同时尝试从单一服务STB对等端节点218 取回组块的请求STB对等端211的最大数目施加限制。相比于预取模块221连接,对回放 窗口模块220连接给出更高优先级。如果特定STB对等端节点218位于扇出限制处,并且 回放窗口模块220请求视频内容数据的组块,则回放窗口模块220可以抢占预取模块221 连接之一,并允许回放窗口模块220连接取回所需组块。在特定示例中,可以使用端口号来 进行回放窗口模块220和预取模块221连接的区别处理。在一些示例中,预取模块221加 入与回放窗口模块220相同的DHT,并获得相同的STB对等端节点218用于下载组块。在这 样的示例中,回放窗口模块220和预取模块221都可以从所选的已经提供了比其他STB对 等端节点218更多上载带宽的STB对等端节点218下载组块。 偏置的邻居选择可以显著减少昂贵的跨子网或跨AS业务量,在该偏置的邻居选 择中,请求STB对等端211从相同子网内的STB对等端218中选择其多数但非所有邻居。 视频内容数据的交换可以偏置为优选在本地STB对等端节点211、218之间完成交换。基 于现有DSL和有线体系结构,可能存在三"环"邻近性,例如,单一家庭内的对等端、子网内 共享相同路由器的对等端、以及共享AS的对等端。在一些示例中,相同子网中的STB对等 端节点211、218可以使用IP地址的公共前缀来进行识别。当STB对等端211采用对服务 STB对等端218进行知晓位置的选择时,组块仅需要来到子网一次,并然后可以根据需要在 子网内对该组块进行复制。 始终从列表中选择第一最本地的STB对等端节点218可以导致接纳控制失败。因 此,在示例中,除了客户端STB对等端节点211已用于检索其他组块的那些STB对等端218 之外,客户端STB对等端节点211可以选择随机的STB对等端218。 在一些示例中,如果请求STB对等端节点211不能获得具有期望组块的任何对等 端的接纳,并且如果期望组块是当前正在播放的组块或是实质上立即需要的组块,则请求 STB对等端211可以设置"最后手段"标记,并重新尝试候选STB对等端218。提供非当前 组块的STB对等端218然后可以移除使用该STB对等端218来预取组块的一个或多个请求 STB对等端211 ;这些其他请求STB对等端211可以在别处重新尝试。在这样的示例中,回 放窗口模块22连接可以抢占其他连接。被取代的STB对等端211 —般而言可能正在观看流行电影,并可以容易地找到另一服务STB对等端218来提供视频内容数据。
图2中的数据发现模块226可以保持覆盖中可用的所有组块与缓冲这些组块的 STB对等端节点218的映射。在示例中,数据发现模块226可以持续地与其他STB对等端 节点211、218交换缓冲器映射。缓冲器映射可以包括描述STB对等端节点218中的组块可 用性的比特阵列。在示例中,数据发现模块226可以交换组块可用性的缓冲器映射,而不是 任何特定组块内可用块的映射;这可以降低控制业务量速率。在组块选择技术的示例中, 预取模块221可以首先下载部分完成的组块;在一些示例中,缓冲器映射可以仅指示视频 内容数据的完整组块。因此,向完成部分组块的下载提供高优先级可以帮助保持系统具备 尽可能多样的对视频数据内容的选择,并可以降低分散于系统中并不可用于交换的部分组 块数据的数量。在一些示例中,数据发现模块226还可以将其回放子节点PID发送至其他 STB对等端218。在一些示例中,数据发现模块226可以接收各个STB对等端218的最新回 放子节点的节点PID。当本地P2P客户端212必须识别具有可用文件的随机请求的部分并 且不作为指定回放父节点来为任何其他请求STB对等端节点211服务的另一服务STB对等 端节点218时,具有缓冲器映射信息和对等端子节点的节点PID可以帮助特定STB对等端 211的P2P客户端212通过一个或多个其他STB对等端218来提供随机搜索服务。使用组 块映射,P2P客户端212可以识别具有所请求的视频内容数据的其他STB对等端218的集 合,以及这样的其他STB对等端218是否作为回放父节点来为任何其他请求STB对等端211 服务。在示例中,如果没有无子节点的STB对等端218可用,则请求STB对等端211的P2P 客户端212的回放窗口 220可以切换至"集群(swarming)"下载技术,在该技术中,请求STB 对等端211可以积极地从多个STB对等端218(如那些然后提供最高可识别的下载速率的 STB对等端218)的集合开始下载期望的组块。 在一些示例中,数据发现模块226可以提供知晓位置的视频内容数据获取,例如, 其中数据发现模块226选择本地DSLAM 102内的另一 STB对等端218作为指定的回放父节 点对等端。 一般而言,在以通信方式耦合至本地DSLAM 102的STB对等端的子网内可以提 供多至80%的总视频内容数据。如果所请求的视频内容数据在本地DSLAM 102内的任何 对等端104上均不可用,则数据发现模块226可以在本地DSLAM 102之外选择从中取回期 望视频内容数据的节点。由于视频内容数据多数是从本地DSLAM 102内的STB对等端节点 104中取回的,因此系统一般而言是服务质量实质上不受外部干扰(如由于视频内容数据 的长距离传输引入的拥塞或抖动)的系统。 已经示意了这里描述的对等端辅助的VoD系统的示例,使用修改的开放源 Live555流服务器来实现RTSP服务器213。图2示出了可以包括通信接口层(如P2P封装 器214)在内的示例。P2P封装器214可以包括一个或多个原语,以帮助RTSP服务器213读 取通过P2P客户端212的数据,或者在从另一 STB对等端218请求数据之前检查期望的视 频内容数据是否在本地可用。在示例中,如果期望的数据在本地不可用,则RTSP服务器213 可以如通过停止对视频播放器215的视频馈送来暂停(例如,暂停几秒钟)。RTSP服务器 213然后可以与P2P客户端212重新检查是否已在本地接收到期望的数据。特定示例可以 使用RTSP服务器213的其他实现方式(例如,Videolan),但是可以类似地包括P2P封装器 214以将RTSP服务器213与P2P客户端212接口连接。 在一些示例中,中央跟踪器216驻留在指定节点104处,并跟踪在系统上可用的STB对等端211、218。在示例中,在连接至系统时,每个节点104联系中央跟踪器216,例如 以接收覆盖信息。在一些示例中,当联系中央跟踪器216时,可以发送系统中所有对等端 104的覆盖信息。在一些示例中,可以将中央跟踪器216修改为同时支持多个电影。在这样 的示例中,中央跟踪器216可以基于所请求的特定电影来发送对等端列表。还可以通过控 制来自中央跟踪器216的对等端列表来控制知晓位置的内容发现。 在一些示例中,P2PVoD系统100可以定义协议以与其他STB对等端104通信,例 如用于交换缓冲器映射和视频内容数据。STB对等端211、218可以与中央跟踪器216进行 通信,例如以周期性地或循环地取回对等端列表。为了与中央跟踪器216进行通信,STB对 等端节点211、218可以例如通过使用超文本传输协议(HTTP)来发送或接收消息。在示例 中,P2PVoD系统100可以使用5个不同的请求/响应消息,例如以允许节点104与其他节 点104进行通信、例如以交换信息和下载视频内容数据。在示例中,这样的协议消息可以包 括BUFFE薩P、 PIECE、 CANCEL、 REQ_PLAYBACK_PARENT和PLAYBACK_PEER。
在该示例中,BUFFERMAP消息可以请求服务STB对等端218向请求对等端节点211 发送服务STB对等端218当前正在缓冲的视频内容数据的组块的映射。在示例中,响应于 BUFFERMAP消息,服务STB对等端218将仅返回此时正在缓冲的完整组块的列表。
PIECE请求消息可以请求服务STB对等端218发送视频内容数据的组块中的块 (例如基于其可用性)。例如,如果视频内容数据的实际块可用,则接收PIECE消息的服务 STB对等端218可以使用视频内容数据的实际块作为响应,否则服务STB对等端218可以 忽略PIECE消息。如果请求STB对等端211尚未接收到所请求的数据,并不再需要所请求 的数据,则请求客户端STB对等端211可以例如通过使用CANCEL消息来取消请求。在示例 中,PIECE和CANCEL请求消息可以指定可应用组块数目和相应的块数目。PIECE响应消息 可以包括实际请求的视频内容数据以及相应的组块和块的数目。在该示例中,CANCEL消息 不具有响应消息。 REQ PLAYBACK PARENT消息请求第一对等端作为请求对等端的回放父节点。如果 第一对等端不是任何其他节点的回放父节点,则该第一对等端将以请求对等端的PID作为 响应。如果第一对等端不可用作请求对等端的回放父节点,则第一对等端以它已作为其回 放父节点的对等端的PID作为响应。 图4示出了 P2PVoD系统100的示例的通信映射的示例。在该示例中,P2PVoD系 统100可以包括中央跟踪器416、存储完整电影的已散播的P2P客户端430、以及不具有电 影文件但将从其他STB对等端下载以播放电影的新P2P客户端431。 在该示例中,新P2P客户端431可以例如通过联系中央跟踪器216来加入覆盖,中 央跟踪器216可以返回此时对全部或部分电影432进行缓冲的对等端的完整列表。在接收 到对等端列表时,新P2P客户端431可以开始建立与一个或多个对等端的连接(如433处 所示)。在连接至对等端时,新客户端431可以向对等端发送提供其PID (对等端标识符) 的HANDSHAKE消息,如434所示。接收该握手消息的对等端可以以其缓冲器映射及其回放 子节点的PID进行响应(如435处所示)。在该示例中,在接收到缓冲器映射和所有其他 对等端的回放子节点的PID之后,新客户端431可以选择特定对等端(如436处所示),该 特定对等端此时未用作指定的回放父节点,并且还包括期望的视频内容数据以服务于该新 客户端437。在所示的场景中,新客户端431可以建立与已散播的客户端430、客户端-1以
17及客户端-2的连接。在所示的场景中,已散播的客户端430和客户端-1均以其回放子节 点的有效PID进行响应。仅客户端_2以虚设回放子节点的PID进行响应,指示客户端_2 未用作任何其他对等端的指定回放父节点。在所示的场景中,新客户端431可以选择客户 端-2作为其指定的回放父节点。在一些示例中,如果有多个未用作父节点的对等端可用, 则客户端对等端可以选择服务对等端节点,该服务对等端节点包括期望的组块,但是包括 最少数目的缓冲的组块。在一些示例中,地理位置上接近新节点的对等端可以优选被选为 指定的回放父节点。在该示例中,节点仅可以用作一个其他节点的父节点。P2P客户端可以 从其指定的父节点请求其回放模块220所需的数据,并可以使用可用的剩余带宽来执行预 取。当节点采取对等端的指定父节点的角色时,该节点可以向所有对等端公开该信息。这 可以帮助减少或最小化要将该特定节点作为指定父节点的请求。 所公开的父对等端的状态还帮助客户端识别哪些节点在快进或其他VCR操作期
间能够自由提供视频数据内容。在一些示例中,当用户调用VCR操作时,并且当本地客户端
不具有所请求的视频内容数据时,以及当这种所请求的内容在本地客户端的指定回放父节
点中也不可用时,本地客户端可以搜索剩余的对等端并选择另一对等端作为其指定的回放
父节点。在选择新回放父节点时,客户端可以开始下载所请求的视频内容数据。 图5示出了 P2P覆盖的示意性示例。在该示例中,一旦所有P2P客户端550建立
其主要(指定的父节点)551和次要(所有其他对等端)552连接时,P2P网络可以组织成
与图5所示的类似的覆盖。 在示例中,可以验证对新输入的对等端的接纳,使得对新对等端的接纳不会导致 性能恶化,如其中对一个流的接纳导致大量订户经历视频信号的恶化。避免广泛感知的运 转中断的一种方式是使用集成的接纳控制。如果由于网络或服务中任何地方的超额订阅而 导致不能支持视频会话,则该集成的接纳控制可以向请求STB传送"此时不能提供服务"信 号。特定示例可以包括分布式接纳控制,如其中对新节点的接纳取决于在网络中分发整个 视频内容的范围,以及可用源节点的数目。在示例中,当新节点请求电影时,客户端软件可 以在初始启动期间对与滑动窗口的大小和锚点相对应的初始段进行缓冲。如果不能满足所 需的最小阈值下载速率,并且启动延迟超过最大允许阈值持续时间,则P2P覆盖可以被认 为是"拥挤"的,并且可以避免或排除对新节点的接纳。如当内容供应商检测到随着向电影 添加新订户,对现有订户产生视频信号恶化时,这可以允许通过利用新源节点来更新电影 的全局DHT,以在运行时添加新源节点。
附加注释 以上详细描述包括对形成详细描述的一部分的附图的参考。作为示意,附图示出 了可以实现本发明的具体实施例。这些实施例这里也被称为"示例"。这样的示例可以包括 除了那些示出和描述的元件以外的元件。然而,本发明人还想到其中仅提供所示和所描述 的那些元件的示例。 本文中引用的所有公开、专利和专利文献的全部内容通过引用合并于此,正如单 独通过引用来合并。在本文和通过引用如此合并的那些文献之间的不一致使用的情况下, 所合并的引用中的使用应当视为对本文的使用的补充;对于不可调和的不一致,由本文中 的使用来控制。 在本文中,术语"一"的使用是专利文献中共有的使用,以包括一个或多于一个,独立于"至少一个"或"一个或多个"的任何其他情况或使用。在本文中,术语"或"用来指代 非排他的或,使得除非另外指出,否则"A或B"包括"A但没有B"、"B但没有A"、以及"A和 B"。在所附权利要求中,术语"包括(including)"禾P"其中(in which)"用作相应术语"包 括(comprising)"和"其中(wherein)"的通俗英语等同物。同样,在以下权利要求中,术语 "包括(including)"和"包括(comprising)"是开放式的,即包括除了权利要求中在这样的 术语之后列出的那些元件以外的元件的系统、设备、产品或过程仍被视为落入该权利要求 的范围内。此外,在以下权利要求中,术语"第一"、"第二"和"第三"等仅用作标记,并不意 在对其对象施加数值要求。 这里描述的方法示例可以至少部分由机器或计算机实现。 一些示例可以包括利用 指令编码的计算机可读介质或机器可读介质,该指令用于配置电子设备执行在以上示例中 描述的方法。这样的方法的实现方式可以包括代码,如微代码、汇编语言代码、高级语言代 码等等。这样的代码可以包括用于执行各种方法的计算机可读指令。该代码可以形成计算 机程序产品的部分。此外,可以在执行或其他时间期间将该代码有形地存储在一个或多个 易失性或非易失性计算机可读介质上。这些计算机可读介质可以包括但不限于硬盘、可拆 卸磁盘、可拆卸光盘(例如,致密光盘和数字视频盘)、磁带、存储卡或存储棒、随机存取存 储器(RAM)、只读存储器(ROM)等。 以上描述应是示意性而不是限制性的。例如,上述示例(或其一个或多个方面) 可以以彼此组合的方式来使用。例如本领域技术人员在审视以上描述时可以使用其他实施 例。所提供的摘要符合37C.F.R. §1. 72(b),以允许读者快速确定技术公开的本质。应理 解,所提交的摘要不用于解释或限制权利要求的范围或意义。此外,在以上详细描述中,可 以将各个特征组合到一起以简化本公开。这不应被解释为,没有要求保护的所公开特征对 于任何权利要求而言是必要的。更合理地,本发明的主题可以在于具体公开实施例的少于 全部的特征。因此,在此将以下权利要求合并到详细描述中,并且每个权利要求独立作为单 独的实施例。应当参照所附权利要求以及被授予这些权利要求的权利的等同物的全部范围 来确定本发明的范围。
19
权利要求
一种对等P2P视频点播VoD方法,使用池中的多个支持IP的VoD对等端来向池中的视频内容数据请求客户端对等端提供视频内容数据,所述方法包括针对请求客户端对等端,指定池中的一个其他对等端作为父对等端,以提供由请求客户端对等端控制的回放显示实质上立即需要的高优先级回放内容;将高优先级视频内容数据从父对等端下载至请求客户端对等端;将低优先级预取内容从池中不同于父对等端的另一对等端下载至请求客户端对等端;在请求客户端对等端处分配带宽,使得在请求客户端对等端处将回放模块未用于下载高优先级回放视频内容数据的带宽分配用于下载预取内容;以及使用请求客户端对等端来提供包括回放内容和预取内容在内的视频数据内容以进行回放显示。
2. 根据权利要求1所述的方法,包括联系中央跟踪器以获得提供池中的其他对等端 的覆盖信息。
3. 根据权利要求1所述的方法,其中,指定池中的一个其他对等端作为父对等端包括 定位不具有指定子对等端的另一对等端;以及从所定位的另一对等端接收许可,以从所定位的用作父对等端的另一对等端下载视频 内容数据。
4. 根据权利要求1所述的方法,其中,将高优先级视频内容数据从父对等端下载至请 求子对等端包括监控视频缓冲器指针;以及以至少部分使用信息而确定的速率来请求顺序视频内容数据,所述信息与所述顺序视 频内容数据在视频缓冲器指针所指示的位置之外的指定长度的视频缓冲器窗口中是否可 用相关。
5. 根据权利要求4所述的方法,其中,下载低优先级预取内容包括下载与视频缓冲器 窗口之外的视频缓冲器位置相对应的视频内容数据。
6. 根据权利要求4所述的方法,其中,下载低优先级预取内容包括包括对池中较少对 等端处存储的视频内容数据的优先选择。
7. 根据权利要求1所述的方法,其中,指定池中的一个其他对等端作为父对等端包括 使用与父对等端的视频内容数据的先前下载速率相关的信息来选择父对等端。
8. 根据权利要求1所述的方法,其中,将低优先级预取内容从池中不同于父对等端的 另一对等端下载至请求客户端对等端包括使用与不同于父对等端的另一对等端的视频内 容数据的先前下载速率相关的信息来选择不同于父对等端的另一对等端。
9. 根据权利要求1所述的方法,包括选择增加或最大化在对等端池中的视频内容数 据传送效率的回放信息请求大小值。
10. 根据权利要求1所述的方法,其中,将低优先级预取内容下载至请求客户端对等端 包括向一个或多个其他对等端发布预取内容;以及 施加要满足预取请求的时间期限。
11. 根据权利要求1所述的方法,其中,下载低优先级预取内容包括相对于下载尚未部分下载的视频内容数据组块,包括对完成下载已部分下载的视频内容数据组块的优先选 择。
12. —种对等P2P视频点播VoD系统,包括支持IP的VoD控制器对等端,被配置为在多个终端用户之间分布的对等端的池中使 用,所述对等端包括支持IP的通信端口 ;本地视频服务器,被配置为耦合至本地视频监视器,以向本地视频监视器提供视频内 容数据从而在本地视频监视器上显示;回放模块,耦合至通信端口和本地视频服务器,所述回放模块被配置为,以第一优先级 从另一对等端下载本地视频服务器需要用于在本地视频监视器上实质上立即显示的视频 内容数据;预取模块,耦合至通信端口和本地视频服务器,所述预取模块被配置为,以低于第一优 先级的第二优先级从一个或多个对等端获得用于相对而言不立即在本地视频监视器上显 示的视频内容数据,其中,所述对等端被配置为将回放模块未使用的剩余通信端口下载带 宽分配用于使用预取模块来下载视频内容数据;以及数据发现模块,包括父对等端存储器位置,被配置为指定池中的一个其他对等端作为 父对等端,以从父对等端获得具有高优先级的视频内容数据,父对等端包括回放模块需要 用于在本地视频监视器上实质上立即显示的所存储的视频内容数据;并且数据发现模块包 括接口,被配置为与中央跟踪器进行通信,以获得与哪些对等端可用相关的当前信息。
13. 根据权利要求12所述的系统,其中,对等端包括视频缓冲器,视频缓冲器包括视频 回放指针,其中,本地视频服务器被配置为读取视频缓冲器的视频内容数据,并在本地视 频服务器向监视器提供视频内容数据用于显示时更新视频回放指针。
14. 根据权利要求13所述的系统,其中,回放模块被配置为当指定视频文件的指定组 块在视频缓冲器中不可用,并且指定视频文件的指定组块在视频回放指针的指定数目的后 续组块之内时,以与可用下载带宽相关的第一速率,从父对等端下载指定视频文件的指定 组块。
15. 根据权利要求14所述的系统,其中,预取模块被配置为将视频文件的附加组块从 父对等端或不同于父对等端的另一对等端下载至视频缓冲器,其中,所述视频文件的附加 组块是视频文件中在视频回放指针的指定数目的后续组块之外的附加后续组块。
16. 根据权利要求15所述的系统,其中,预取模块被配置为以根据回放模块的第一下 载速率和剩余下载带宽而确定的第二下载速率,从另一对等端下载所述附加组块。
17. 根据权利要求12所述的系统,其中,预取模块被配置为,通过使用所述另一对等端 的视频内容数据的先前下载速率来选择所述另一对等端,以执行非顺序预取。
18. 根据权利要求12所述的系统,其中,回放模块被配置为保持增加或最大化池中的视频内容数据传送效率的回放信息请求大小。
19. 根据权利要求12所述的系统,其中,预取模块被配置为向一个或多个其他对等端发出预取请求,其中,所述预取请求包括要满足预取请求的时间期限。
20. 根据权利要求12所述的系统,其中,预取模块被配置为,优先选择从不同于回放模 块的父对等端的对等端获得视频内容数据。
21. 根据权利要求12所述的系统,其中,预取模块被配置为,相对于获得在池中较多对等端处可用的视频内容数据,优先选择获得在池中较少对等端处可用的视频内容数据。
22. 根据权利要求12所述的系统,其中,预取模块被配置为,相对于获得视频内容数据以下载尚未部分下载的组块,优先选择获得视频内容数据以完成下载已部分下载的组块。
23. 根据权利要求12所述的系统,其中,当没有回放父节点可用时,回放模块被配置为,从池中的对等端获得视频内容数据,所述对等端与池中的另一对等端相比,表现出对视频内容数据的相对较快先前下载速率。
24. 根据权利要求12所述的系统,其中,所述对等端包括指示完整视频内容组块在所述对等端上可用的缓冲器映射;数据发现模块被配置为在所述对等端接收或清除视频数据内容时,更新所述缓冲器映射;以及所述对等端被配置为将缓冲器映射和对等端识别码传送至另一对等端。
全文摘要
本发明提供了一种对等P2P视频点播VoD系统或方法,使用池中的多个支持IP的VoD机顶盒STB对等端,向池中的请求客户端对等端提供视频内容数据。池中的一个其他对等端可以被指定为父对等端,以下载回放显示实质上立即需要的高优先级回放内容。可以将低优先级预取内容从池中不同于父对等端的另一对等端下载至请求客户端对等端。在请求客户端对等端处将回放模块未用于下载高优先级回放视频内容数据的带宽分配用于下载预取内容。使用请求客户端对等端,可以提供视频内容数据用于视频监视器上回放显示,其中,这样提供的视频数据内容可以包括回放内容和预取内容。
文档编号H04N7/173GK101715650SQ200880021804
公开日2010年5月26日 申请日期2008年6月27日 优先权日2007年6月28日
发明者亨宁·舒尔泽林, 瓦伊什纳夫·贾纳德汉 申请人:纽约市哥伦比亚大学信托人
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1