基于p2p的多视点视频传输装置的制作方法

文档序号:7744549阅读:115来源:国知局
专利名称:基于p2p的多视点视频传输装置的制作方法
技术领域
本发明涉及计算机多媒体技术领域,特别涉及一种基于P2P(点对点)的多视点视
频传输装置。
背景技术
多视点视频是近期开始流行的一种新型视频,它可以给用户带来全新的视觉享受,因此该技术吸引了越来越多研究机构关注的目光。多视点视频由一组平行或者聚焦于 一点的摄像机拍摄而得,可以提供多种不同的视觉特效,比如多视角观赏、定格状态下全景 扫描和播放中全景扫描等。目前,网络中流行有各种各样的流媒体系统软件,为成千上万的用户提供视频服 务。但这些服务内容都是传统的单视点视频,随着网络设备和网络技术的发展,在网络中提 供多视点视频服务已成为可能。多视点视频的视觉享受是以视频数据量的增加为代价的, 视点越多,视频数据也就越多,这给网络传输提出了很大的挑战。实时互动多视点视频系统由微软亚洲研究院提出,是一种基于IP多播技术的视 频系统,支持直播和点播两种模式。用户只要安装一个客户端就可以观看多视点的视频节 目,除了各视点的视频之外,观众还可以欣赏三种特效视点切换、定格扫描和播放扫描。定格扫描状态下,视频的播放会暂停,静态的场景以连续的视点角度逐个展现在 用户眼前。播放扫描是在播放状态下将动态的场景以连续的视点角度展现出来。特效视频 是作为独立的视频流进行处理的,同各视点的视频流一样,服务器根据各视点视频数据对 特效视频进行编码。当客户发出视点切换的指令时,服务器会停止原来视点视频数据的传 输,转而传输新视点的视频数据。当客户选择欣赏特效视频的时候,服务器停止当前视点视 频数据的传输,将特效视频数据传送到客户端。这样做可以减轻客户端的负担,因为客户端 的机器性能是各种各样的,未必能承受对视频数实时编码的工作要求。但是带来的问题就 是会加重服务器的负担,如果对视频数据的每一个时刻都制作定格扫描和播放扫描的特效 视频,即使服务器的计算能力高于普通计算机,也是难以承受的。在该系统中,特效视频是 每隔15帧才制作一次。制作好的特效视频缓存在服务器中,以备随时响应客户端的请求。 当客户端选择了特效视频的时候,服务器从缓存中提取与客户端发出命令的时刻最相近的 特效视频发送。现有技术存在的缺点是,该系统的架构和视频的编码方式使得需要传输的数据量 非常大,因此这给该系统在实际网络中的应用带来了很大的难题。

发明内容
本发明旨在至少解决上述技术缺陷之一,目的是提出一种基于P2P的多视点视频 传输装置,从而更好地发挥多视点视频的视觉效果优势。为达到上述目的,本发明一方面提出一种基于P2P的多视点视频传输装置,包括 节点管理模块,用于对本地的各类成员进行管理和维护,并为各个成员的数据调度提供保障;调度模块,用于根据基本层缓冲映射和增强层缓冲映射调度所述节点管理模块,以及根据数据位图为基本层和增强层的每一个数据块分配源节点,并向分配的源节点发送数据请 求;同步模块,用于对基本层数据和增强层数据进行同步,以及对各个视点视频数据进行同 步;缓存模块,用于缓存本地的数据位图和数据块;和播放器,用于根据用户选择的视点播 放对应的视频数据。本发明实施例面向分层的多视点视频编码方案,利用P2P技术高效的数据传输能 力,解决了多视点视频网络传输所带来的巨大挑战,能够达到稳定传输视频数据和快速响 应互动指令的效果。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。


本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中图1为本发明实施例的基于P2P的多视点视频传输装置的原理图;图2为本发明优选实施例的基于P2P的多视点视频传输装置的结构图;图3为本发明实施例中一个视点切换中的伙伴管理示意图;图4为多视点视频数据位图的结构。
具体实施例方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。如图1所示,为本发明实施例的基于P2P的多视点视频传输装置的原理图。该装置 包括节点管理模块100、调度模块200、同步模块300、缓存模块400和播放器500。节点管 理模块100用于对本地的各类成员进行管理和维护,并为各个成员的数据调度提供保障。 调度模块200用于根据基本层缓冲映射和增强层缓冲映射调度节点管理模块100,以及根 据数据位图为基本层和增强层的每一个数据块分配源节点,并向分配的源节点发送数据请 求。同步模块300用于对基本层数据和增强层数据进行同步,以及对各个视点视频数据进 行同步。缓存模块400用于缓存本地的数据位图和数据块。播放器500用于根据用户选择 的视点播放对应的视频数据。以下就将以具体实施例的方式对本发明的上述原理图进行详细的介绍,但是需要 说明的是以下实施例仅是本发明的优选实施例,本领域技术人员能够根据本发明的上述原 理对以下实施例进行等同的修改和变换,这些等同的修改或变换也均应包含在本发明的保 护范围之内。如图2所示,为本发明优选实施例的基于P2P的多视点视频传输装置的结构图,以 下就对该装置的各个模块进行详细的介绍。在本发明的一个实施例中,节点管理模块100包括成员管理器110、基本层伙伴管 理器120、邻居伙伴管理器130和增强层伙伴管理器140。为了加以区分,可为所有与基本层数据相关的名词都加上一个“B-”的前缀,而为所有与增强层数据相关的名词都加上“Ε-”的前缀,例如B-Partner表示基本层伙伴、E-Buffer map表示增强层的数据位图。由于播放器500需要两种数据才能播放视频,即基本层数据和增强层数据,因此 本地节点需要为两种数据分别维护不同的伙伴信息,其中,与本地节点交换基本层数据的 伙伴称为基本层伙伴,交换增强层数据的伙伴称为增强层伙伴。另外,与单视点视频系统不 同的是,在多视点视频流媒体系统中,观看同一节目的节点未必选择同一视点,那些选择与 本地视点观看的视点不同的伙伴称为邻居伙伴,它们是潜在的增强层伙伴,因为用户随时 都可能发出切换视点的指令把当前视点切换到某些邻居伙伴目前正在观看的视点。下面分别介绍节点管理模块100中各个管理器的职能和工作原理其中,成员管理器110用于对成员列表进行维护和管理。例如,新加入的节点首 先连接系统的管理服务器,管理服务器从当前系统中随机选择部分节点的信息发送给新节 点。这些节点将被新节点的成员管理器110视为最初的成员加入到它所维护的成员列表 中。其中,在本发明实施例中,基本层伙伴、增强层伙伴和邻居伙伴都是从成员列表中挑选 的,因此,成员列表是所有其它列表的母列表。成员管理器110负责实时维护成员列表。它 定时与所有成员交换自己的成员列表,当本地成员列表中成员数目偏少时,它会从其他成 员发来的成员列表中选择本地没有的成员加到列表中。另外,在本发明的另一个实施例中, 成员管理器110还负责定时向所有成员发送心跳包,并接受其他成员发来的心跳包,若有 成员超过一定时间没有发来心跳包,成员管理器110将认为该成员已退出系统,从而与其 断开连接,并从成员列表中将其删除。简而言之,在本发明实施例中,成员管理器110的责 任就是为其他管理器提供后备军并保证所有成员都是可用的。基本层伙伴管理器120用于对基本层伙伴列表进行维护和管理,并定时与所有基 本层伙伴交换数据位图及将收到的数据位图发送给调度模块200,其中,基本层伙伴是从成 员列表中挑选出来用于基本层数据传输的邻节点。基本层伙伴管理器120负责实时维护基 本层伙伴列表,例如它定时地将所有基本层伙伴按照他们向本地节点发送的基本层数据块 的数量排序,若排在最后的基本层伙伴发送的数据块数目超出了预先设置的下限,基本层 伙伴管理器120将把它从列表中删除然后在成员列表中选出新的基本层伙伴将其代替。在 本发明的另一个实施例中,基本层伙伴管理器120还负责定时与所有基本层伙伴交换数据 位图,然后将收到的数据位图传给调度模块200。邻居伙伴管理器130用于对邻居伙伴列表进行维护和管理,并定时与所有邻居伙 伴交换数据位图并保存,其中,邻居伙伴是与本地节点选择不同视点的邻节点。邻居伙伴也 是从成员列表中选择出来的邻节点,它们虽然被称为伙伴,却与本地节点没有视频数据的 交互,因为它们选择的视点与本地节点不同。邻居伙伴管理器130将它们添加到邻居伙伴 列表中并根据它们选择的视点进行分组管理,所有选择同一视点的邻居伙伴被分为一组。 在节点刚加入系统的时候,用户无法得知各个视点的内容,也无法选择自己喜欢的视点,此 时邻居伙伴管理器130将自行选择一个视点并把该组邻居伙伴交给增强层伙伴管理器140 负责,自己只负责其他组的邻居伙伴。当用户发出视点切换的指令时,假设是从视点A切换 到视点B,邻居伙伴管理器130将把视点A的那组伙伴从增强层伙伴管理器140那里取回, 并把视点B的那组伙伴交给增强层伙伴管理器140。如图3所示,为本发明实施例中一个视点切换中的伙伴管理示意图。假设多视点视频有4个视点,用户当前观看的是第二个视点。所以第二视点的邻居伙伴被作为增强层 伙伴由增强层伙伴管理器140维护,而其他三个视点的邻居伙伴分组维护在邻居伙伴管理 器130中。当用户发出切换到第三视点的指令时,邻居伙伴管理器130将把第三视点的邻 居伙伴列表与增强层伙伴管理器140中的增强层伙伴列表互换位置。邻居伙伴虽然与本地节点之间并没有视频数据的交换,但是他们会周期性的与本 地节点互换增强层数据位图。这些数据位图只是保存在邻居伙伴管理器130中,而不会转 交给调度模块200,因为调度模块200目前不需要为本地节点请求这些增强层数据。如果某 个邻居伙伴长时间没有发来数据位图,邻居伙伴管理器130将把它从列表中删除,然后从 成员列表中选择新的代替者。在本发明实施例中,邻居伙伴管理器130可以大大地缩短视点切换的延迟时间, 例如,假如不设置邻居伙伴管理器130,当视点切换指令发出之后,节点要做以下几件事 情1、从管理服务器获取正在传输新视点视频数据的节点信息。这个步骤耗费的时间 记为tPo2、等待新的增强层伙伴发来新视点视频的数据位图。这个步骤耗费的时间记为tW.3、为新视点的增强层视频数据分配数据源,并发送数据请求。这个步骤耗费的时 间记为tSo4、等待增强层伙伴把所需数据发送到本地。耗费时间记为tr。因此,总计延迟时间可以表示为T = tp+tw+ts+tr。然而,如果有了邻居伙伴管理器130之后,当视点切换指令发出时,只需从邻居伙 伴列表中提出相应视点的邻居伙伴交给增强层伙伴管理器140。这些新的增强层伙伴的数 据位图也是由邻居伙伴管理器130 —直保持维护更新的,因此可以直接交给调度模块200 使用。这样一来,总计延迟时间就变成T = ts+tr,因此视点切换的延迟时间可以大为缩短。增强层伙伴管理器140用于对增强层伙伴列表进行维护和管理,并定时与所有增 强层伙伴交换数据位图及将收到的数据位图发送给所述调度模块,其中,增强层伙伴是从 所述成员列表中挑选出来用于增强层数据传输的邻节点,它们是由增强层伙伴管理器140 从邻居伙伴列表中选出来并实时维护的。当视点切换指令发出时,增强层伙伴管理器140 将把它们交回邻居伙伴列表,新视点的邻居伙伴将变成增强层伙伴。增强层伙伴管理器140 还定时与列表中所有增强层伙伴交换增强层数据位图,然后把它们转交给调度模块200。同 基本层伙伴管理器120 —样,增强层伙伴管理器140也会实时监督增强层伙伴的传输效率 并及时更换不合格的增强层伙伴。另外,在本发明的实施例中,是将基本层数据和增强层数据分开来传输的,虽然各 自的作用不同,但对于传输环节来说都是无差别的数据。本地节点分别从基本层伙伴和增 强层伙伴那里接收基本层数据位图和增强层数据位图,然后分别把它们交给调度模块200。 在本发明中,多视点视频的数据位图与传统单视点视频的不同,如图4所示,为多视点视频 数据位图的结构。其中First Sequence是缓存中所有数据块中的序号最小的数据块的序 号;Video Type是数据类型,表示该数据位图是增强层的还是基本层的;Video Sequence 是视点的序号,该字段只对增强层数据位图有意义,在基本层数据位图中该字段设为0。在这三个字段之后就是所有数据块的位图,O表示该数据块缺失,1表示已保存在缓存中。基本层数据和增强层数据的传输是各自独立进行的,基本层或者增强层伙伴列表中所有伙伴的数据位图更新之后,调度模块200就为相应类别的数据块分配源节点,然后 向其发送数据请求。在本发明中调度模块200采用的调度算法是,调度模块200从缓存模块 400中提取本地的数据位图,从中得知本地缓存中还缺少哪些数据块,然后查看伙伴的数据 位图,获悉哪些伙伴有本地缺少的数据块,然后向这些数据块发送数据请求。如果有多个伙 伴拥有同一块本地缺少的数据,则调度模块200将选择向能够在最短时间内返回数据的伙 伴发送数据请求。在多视点视频技术中,其视觉效果是它最大的优势,视点切换的互动操作给了用 户更大的自由度,随之而来的一个问题就是各视点视频在时间上的同步问题。不仅各视点 的视频数据要同步,基本层和增强层的数据之间也要保持同步,毕竟播放器需要两种数据 才能较好地播放某个视点的视频。本发明通过同步模块300解决同步问题。本装置中各个 节点的播放进度是不同的,而节点要传输什么时间段的数据是跟播放器500的进度密切相 关的,所以数据同步问题要从伙伴的选择入手。下面是同步算法的伪代码Input MemberList list of membersB-PartnerList list of B-PartnersFirst_seq[i] the first sequence of the buffer map of B-Partner[i] or Ε-Partner[i]E-PartnerLis[i] list of Ε-Partners with the ith viewpointLenth the lenth of the buffer mapStandardization 1. Rank the B-Partners in B-PartnerList by the first sequence of their buffer maps in increasingorder.2. Standard 一 0, max 一 03. for i = 0 to the size of B-PartnerList4. do η = 05. for j = i to the size of B-PartnerList6.do if First_seq[i] < First_seq[j] < First_seq[i]+Lenth7.then n++8.if η > max9.then Standard 一 Firs_seq[i], max 一 η10. Run the Synchronization functionSynchronization 1. for i = 0 to the size ο fB-PartnerList2. do if First_seq[i] < Standard or First_seq[i] > Standard+Lenth3. then replace B-Partner[i]with a member in MemberList4.whose First_seq e (Standard, Standard+Lenth)
5. for i = 1 to the number of the viewpoints6. do for j = 0 to the size of E-PartnerLis[i]7. do if First—seq[j]] < Standard or First—seq[j] > Standard+Lenth
8.then replace E-Partner[j]with a member in MemberListwhose First_seq[i] ^ (Standard,Standard+Lenth)从上述算法中可以看到同步模块300必须与基本层伙伴管理器120和邻居伙伴管 理器130协同合作。Standardization函数前9行的作用是选择最合适的进度,所谓最合适 的进度,是指参与传输这个时间段内的视频数据的伙伴最多的进度。该函数的第10行调用 了 Synchronization函数,这个函数的作用是保证基本层伙伴和增强层伙伴都是参与到最 合适进度的数据块传输的节点。其中Standardization函数只在节点新加入的时候运行一 次。而Synchronization函数则是要周期性的运行,以保证所有伙伴的进度始终一致。无论 视点切换指令何时发出,新旧视点的数据在时间上都是连续的,可以保证视点的平滑切换。在本发明的一个实施例中,播放器500可以直接调用微软的MediaPlayer播放器, 当然本领域技术人员也可选择其他播放器,其他播放器也可应用在本发明中。本发明实施例面向分层的多视点视频编码方案,利用P2P技术高效的数据传输能 力,解决了多视点视频网络传输所带来的巨大挑战,能够达到稳定传输视频数据和快速响 应互动指令的效果。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以 理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换 和变型,本发明的范围由所附权利要求及其等同限定。
权利要求
一种基于P2P的多视点视频传输装置,其特征在于,包括节点管理模块,用于对本地的各类成员进行管理和维护,并为各个成员的数据调度提供保障;调度模块,用于根据基本层缓冲映射和增强层缓冲映射调度所述节点管理模块,以及根据数据位图为基本层和增强层的每一个数据块分配源节点,并向分配的源节点发送数据请求;同步模块,用于对基本层数据和增强层数据进行同步,以及对各个视点视频数据进行同步;缓存模块,用于缓存本地的数据位图和数据块;和播放器,用于根据用户选择的视点播放对应的视频数据。
2.如权利要求1所述的基于P2P的多视点视频传输装置,其特征在于,所述调度模块从 缓存模块中提取本地的数据位图,并根据缓存的本地数据块及本地的数据位图确定所缺少 的数据块,之后根据伙伴的数据位图,确定保存所述所缺少的数据块的伙伴并向所缺少的 数据块发送数据请求。
3.如权利要求2所述的基于P2P的多视点视频传输装置,其特征在于,如果所述调度模 块判断多个伙伴拥有同一块本地所缺少的数据块,则所述调度模块选择向能够在最短时间 内返回数据的伙伴发送数据请求。
4.如权利要求1所述的基于P2P的多视点视频传输装置,其特征在于,所述同步模块选 择最合适进度,并保证基本层伙伴和增强层伙伴都参与到所述最合适进度的数据块的传输 中。
5.如权利要求1所述的基于P2P的多视点视频传输装置,其特征在于,所述节点管理模 块包括成员管理器,用于对成员列表进行维护和管理;基本层伙伴管理器,用于对基本层伙伴列表进行维护和管理,并定时与所有基本层伙 伴交换数据位图及将收到的数据位图发送给所述调度模块,其中,所述基本层伙伴是从所 述成员列表中挑选出来用于基本层数据传输的邻节点;邻居伙伴管理器,用于对邻居伙伴列表进行维护和管理,并定时与所有邻居伙伴交换 数据位图并保存,其中,所述邻居伙伴是与本地节点选择不同视点的邻节点;增强层伙伴管理器,用于对增强层伙伴列表进行维护和管理,并定时与所有增强层伙 伴交换数据位图及将收到的数据位图发送给所述调度模块,其中,所述增强层伙伴是从所 述成员列表中挑选出来用于增强层数据传输的邻节点。
6.如权利要求5所述的基于P2P的多视点视频传输装置,其特征在于,所述成员管理器 对成员列表进行维护和管理包括所述成员管理器定时与其他节点交换成员列表,并在本地成员列表中的成员数目偏少 时,从其他成员发来的成员列表中选择本地没有的成员加到列表中;和/或所述成员管理器定时向所有成员发送心跳包,并接受其他成员发来的心跳包,若有成 员超过一定时间没有发来心跳包,则将其从成员列表中将其删除。
7.如权利要求5所述的基于P2P的多视点视频传输装置,其特征在于,所述基本层伙伴 管理器和增强层伙伴管理器还用于实时监督基本层伙伴和增强层伙伴的传输效率,并及时更换不合格的基本层伙伴和增强层伙伴。
8.如权利要求5所述的基于P2P的多视点视频传输装置,其特征在于,所述邻居伙伴管 理器还用于在用户发出视点切换指令时,将原视点的邻居伙伴列表从所述增强层伙伴管理 器取回,并把新视点的邻居伙伴列表发送给所述增强层伙伴管理器。
9.如权利要求5或8所述的基于P2P的多视点视频传输装置,其特征在于,所述邻居伙 伴管理器对邻居伙伴列表进行维护和管理包括如果某个邻居伙伴长时间没有发来数据位图,则所述邻居伙伴管理器将该邻居伙伴从 邻居伙伴列表中删除,再从所述成员列表中选择新的替代者。
10.如权利要求1所述的基于P2P的多视点视频传输装置,其特征在于,所述播放器直 接调用微软的Media Player播放器。
全文摘要
本发明提出一种基于P2P的多视点视频传输装置,包括节点管理模块,用于对本地的各类成员进行管理和维护,并为各个成员的数据调度提供保障;调度模块,用于根据基本层缓冲映射和增强层缓冲映射调度所述节点管理模块,以及根据数据位图为基本层和增强层的每一个数据块分配源节点,并向分配的源节点发送数据请求;同步模块,用于对基本层数据和增强层数据进行同步,以及对各个视点视频数据进行同步;缓存模块,用于缓存本地的数据位图和数据块;和播放器。本发明实施例面向分层的多视点视频编码方案,利用P2P技术高效的数据传输能力,解决了多视点视频网络传输所带来的巨大挑战,能够达到稳定传输视频数据和快速响应互动指令的效果。
文档编号H04L29/06GK101848232SQ20101013371
公开日2010年9月29日 申请日期2010年3月25日 优先权日2010年3月25日
发明者丁贵广, 申晓东, 聂荣显 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1