一种流媒体数据交换方法与装置的制作方法

文档序号:7742960阅读:143来源:国知局
专利名称:一种流媒体数据交换方法与装置的制作方法
技术领域
本发明涉及流媒体,尤其涉及一种流媒体数据交换方法与装置。
背景技术
互联网络基础设施与接入技术的发展,使得网络对超大规模数据交换的支持发生 质的飞跃,相关的网络视频直播/点播、大规模数据共享系统获得了足够底层技术支撑,成 为目前互联网络上占用流量大、用户量高、影响范围广的互联网应用。尤其是互联网上的视 频共享、视频直播点播服务,极大的改变了媒体信息的发布方式,使得普通民众在一定程度 上获得了新闻的报道权,对促进新闻报道的多元化、维护社会稳定与和谐有着重要意义。对于互联网上的流媒体系统来说,应用对等网络(Peer-to-Peer Network,以下简 称P2P网络)能够最大限度地减轻媒体发布者的数据传输压力,将数据的提供责任转给网 络上的普通流媒体用户。这种打散数据流的方式能够适应多变的互联网络环境,提高网络 负载的均衡性,因此受到极大欢迎。尽管采用P2P方式的流媒体数据交换方式与传统的服 务器方式相比,其传输时延较大、且其传输质量不是十分稳定,但对于娱乐性流媒体来说, 目前可达到的传输质量已经完全能够满足用户需求。因此当前最流行的互联网流媒体的发 布与传播系统都采用了 P2P的方式。流媒体共享系统在互联网络上的发展也不是一帆风顺的。相较于P2P文件共享系 统,流媒体共享具有实时或准实时的特性。为保证一定的媒体回放质量,流媒体数据分片的 下载顺序要有一定规则,其下载终端也需要在数据缓冲空间和回放时延中找到令回放效果 最佳的平衡点。目前还没有能够稳定地保证流媒体连贯回放的技术方案。

发明内容
为了解决上述的技术问题,提供了一种流媒体数据交换方法与装置,其目的在于, 充分发挥对等网络节点相互协作的特性,通过牺牲数据分片传输时间与数据分片的回放时 间的差距,换取多节点间并行数据传输时间的减小,从而保证节点流媒体数据连贯回放;提 高数据缓存对网络带宽变化的自适应能力,从而提高流媒体系统终端的数据交换效率。本发明提供了一种流媒体数据交换方法,包括步骤1,用户节点建立滑动窗口 ;步骤2,根据各邻居节点的数据分片广告信息,分配属于滑动窗口内的流媒体数据 分片下载任务给一个或多个邻居节点;步骤3,当滑动窗口内的数据符合预设的条件,用户节点提交滑动窗口内的数据给 流媒体数据解码与回放模块以进行播放;步骤4,滑动所述滑动窗口,重复执行步骤2-步骤3,直至流媒体数据下载完毕或用户节点终止流媒体的数据交换过程。在步骤1之前还包括步骤5,用户节点根据各邻居节点的数据分片广告信息,分配属于初始化缓冲区内的流媒体数据分片下载任务给一个或多个邻居节点;步骤6,当初始化缓冲区被填满后,用户节点提交缓冲区中的数据给流媒体数据解 码与回放模块以进行播放。滑动窗口包含若干个基本窗口,每个基本窗口包含一个或多个数据片所需的空 间。所述预设的条件为滑动窗口中的部分或全部基本窗口被填满。 滑动窗口的起始边界为初始化缓冲区内的终止边界。步骤1中,用户节点还根据网络可用带宽周期性地调整滑动窗口的大小。用户节点还周期性将本地存储的数据分片信息广播给邻居节点,以方便邻居节点 调度数据分片下载任务。当基本窗口中已下载的数据分片数量超过设定的阈值,且到达该基本窗口的预计 提交时间,则将该基本窗口中的数据分片提交给流媒体数据解码与回放模块。数据分片具有规定的格式和大小,并具有按照数据分片生成的时间顺序顺次分配 的数据分片标识。本发明提供了一种流媒体数据交换装置,包括流媒体数据缓存模块,用于供用户节点建立滑动窗口 ;当滑动窗口内的数据符合 预设的条件,供用户节点提交滑动窗口内的数据给流媒体数据解码与回放模块以进行播 放,并滑动所述滑动窗口 ;邻居管理模块,用于维护邻居节点列表;流媒体数据解码与回放模块,用于解码并回放流媒体数据缓存模块提供的流媒体 数据数据传输模块,用于根据各邻居节点的数据分片广告信息,分配属于滑动窗口内 的流媒体数据分片下载任务给一个或多个邻居节点。数据传输模块,还用于供用户节点根据各邻居节点的数据分片广告信息,分配属 于初始化缓冲区内的流媒体数据分片下载任务给一个或多个邻居节点;流媒体数据缓存模块,还用于在初始化缓冲区被填满后,供用户节点提交缓冲区 中的数据给流媒体数据解码与回放模块以进行播放。滑动窗口包含若干个基本窗口,每个基本窗口包含一个或多个数据片所需的空 间。所述预设的条件为滑动窗口中的部分或全部基本窗口被填满。滑动窗口的起始边界为初始化缓冲区内的终止边界。流媒体数据缓存模块,还用于供用户节点根据网络可用带宽周期性地调整滑动窗 口的大小。数据传输模块,还用于供用户节点周期性将本地存储的数据分片信息广播给邻居 节点,以方便邻居节点调度数据分片下载任务。流媒体数据缓存模块,还用于当基本窗口中已下载的数据分片数量超过设定的阈 值,且到达该基本窗口的预计提交时间,将该基本窗口中的数据分片提交给流媒体数据解 码与回放模块。数据分片具有规定的格式和大小,并具有按照数据分片生成的时间顺序顺次分配的数据分片标识。本发明为P2P环境下的流媒体数据交换提供了 一种数据交换调度机制,能够同时 考虑到流媒体回放的稳定性、流媒体数据的回放时延、网络带宽资源的变化,为流媒体数据 交换提供高效的数据分片下载调度方法,提高流媒体终端的回放质量,提高终端用户的满 意度。本发明使用基本窗口机制描述流媒体回放终端的数据缓存要求,使用滑动窗口机制 描述网络带宽资源的数据下载能力,将流媒体回放缓存与数据下载的数据缓存区分开来处 理,能够更加灵活的提供流媒体数据的分享手段。


图1为本发明的基于滑动窗口辅助的流媒体数据交换方法流程图;图2为本发明的滑动窗口工作流程图;图3为本地存储区域图示例;图4为滑动窗口工作示例;图5为本发明的流媒体节点装置结构图;图6为本发明的流媒体节点装置中的基于滑动窗口辅助的流媒体数据缓存模块 结构图。
具体实施例方式下面结合附图和具体实施方式
对本发明进行说明。首先需要说明的是,本发明中的用户节点,指发出流媒体数据下载指令、开启流媒 体传输和回放过程的用户所使用的流媒体终端节点;邻居节点,指在用户节点邻居节点列 表上,能够与该用户节点直接进行数据交换的流媒体终端节点。图3示出了一个用户节点的数据缓存结构图。数据缓存是用户节点中暂存已下载 的流媒体数据的存储空间。图中标有1、2……等数字的小长方形代表流媒体数据分片。数 据分片为为了应对网络层传输协议对数据包大小的限制,对流媒体数据按照一定规则分解 成为适合互联网络传输的较小数据块。在本发明中,数据分片概念为流媒体数据分割的最 小尺度。图3中的BW1、BW2为基本窗口,基本窗口的大小(size)不小于数据分片的大小。 例如,对视频流媒体来说,我们假设一个视频帧的大小为2-4kbytes,以太网的MTU通常限 制在1500bytes —个包,因此在实际传输时需要将该视频帧切分为最少2_3个数据分片;而 基本窗口的大小可以为1个或几个视频帧的大小。基本窗口是数据缓存向流媒体数据解码 与回放模块提交数据的最小尺度,其描述的是媒体数据编/解码与回放机制对连续播放流 媒体数据的要求。一个基本窗口中可以包含一个或多个数据分片。另外,图3中还包含了 滑动窗口 SW的概念。滑动窗口描述的是所述用户节点当前可用的流媒体传输带宽,通常包 含一个或多个基本窗口,如本例中SW就同时包含了 BWl、BW2和BW3三个基本窗口。另外, 图3中还有初始化缓冲空间InitBuff的概念,其作用是在多媒体数据下载任务建立初期, 对数据做一定数据量的缓冲,以防止网络的不稳定对用户节点的影响,较大程度上保证流 媒体数据的回放质量。实施例一下面结合图1、图2、图3和图4,对本发明中提出的基于滑动窗口辅助的流媒体数据交换方法做详细说明。当用户节点发起一个多媒体数据流下载请求时,该用户节点首先在缓存空间中分 配一个初始化缓冲空间,然后根据邻居节点广播的数据分片拥有信息,分配属于初始化缓 冲区内的流媒体数据分片下载任务给一个或多个邻居节点(步骤S101)。当所述初始化缓冲空间中的数据下载完成时,数据缓存模块将初始化缓冲空间中 的数据提交给专门的流媒体数据解码与回放模块,解码后开始数据的回放(步骤S102)。同 时,紧邻初始化缓冲空间的终止边界顺序建立基本窗口 BWi,i为自然数,基本窗口的大小 可以根据该流媒体所使用的编解码标准确定。在图3中基本窗口均包含3个数据分片,如 基本窗口 BWl包含数据分片6、7和8。若流媒体数据的编码格式在某一时刻改变成其他编 码方式,对连续播放流媒体数据的需求有了变化,则用户节点可以立即相应更改基本窗口 的大小,而不会影响到节点上流媒体数据缓存的效率。最后,所述用户节点紧邻初始化缓冲空间的终止边界建立滑动窗口,启动滑动窗 口机制对流媒体数据的下载过程进行调度(步骤103),详细调度方法如图2所示。首先, 所述用户节点根据滑动窗口尺寸参数确定滑动窗口的终止边界(步骤S201),如在图3中, 滑动窗口的大小为3个基本窗口的大小;第二,所述用户节点使用与步骤SlOl相同的方法, 根据各个邻居节点所拥有数据分片的信息,分配属于所述滑动窗口的流媒体数据分片下载 任务给一个或多个邻居节点(步骤S202);当紧邻所述滑动窗口起始边界的基本窗口被填 满时,提交该基本窗口中数据给流媒体数据解码与回放模块(步骤S203);此时,滑动窗口 的起始边界和终止边界同时向后移动,覆盖已提交数据所代表流媒体时刻之后的基本窗口 (步骤S204),这也是滑动窗口名称的来源;所述用户节点重复步骤S202至步骤S204中的 数据下载与提交过程,直到该流媒体数据全部下载完毕,或者因其他原因导致流媒体数据 交换进程的终止(步骤S205)。对于上述基于滑动窗口辅助的流媒体数据交换方法,还有几点需要进一步说明。(1)本发明中的基于滑动窗口辅助的流媒体数据交换方法应用范围广泛。由于使 用数据分片、基本窗口、滑动窗口的概念分别表述网络层的数据传输能力、应用层的数据传 输要求、以及网络可用带宽的数量,该数据交换方法可以满足多种流媒体数据传输应用系 统的需求,如客户端/服务器模式的视频直播、点播服务,对等网络模式的视频直播、点播 服务,以及多媒体网络电话等。(2)滑动窗口反应的是用户节点可用网络带宽的数量,而由于互联网络连接的不 稳定性,该可用带宽数量是一个不断变化的数值。因此用户节点需要周期性探测当前可用 带宽的数量,并修正滑动窗口的大小值。图3中当前滑动窗口的大小为3个基本窗口的大 小。若用户节点探测到网络可用带宽增加,就可以按照该贷款的增加量重设滑动窗口的大 小为4个基本窗口甚至更多。另外,由于流媒体的数据传输有一定的实时性要求,若网络的 可用带宽无法支持一个基本窗口的数据下载,则其回放质量就不可能达到要求。(3)由于滑动窗口中的数据并不是完全按照时间顺序到达,因此当紧邻滑动窗口 的初始边界的基本窗口数据被填满时,若相邻时间的其他一个或多个流媒体数据基本窗口 已经填满,则可以一次提交多个基本窗口。例如,图3中滑动窗口 SW包含基本窗口 BW1、BW2 和BW3.当BWl中的数据全部到达后,用户节点判断紧邻BWl的基本窗口 BW2中的数据也已 经全部到达,但BW3的数据还未完全到达。则用户节点将基本窗口 BWl和BW2所包含的流媒体数据提交给流媒体数据解码与回放模块,同时将滑动窗口 SW向后滑动两个基本窗口, 亦即,令滑动窗口覆盖基本窗口 BW3、BW4和BW5,如图4所示。(4)用户节点上的数据缓存空间是有限的,当缓存空间被已下载的流媒体数据占 满时,用户节点会用新的数据覆盖缓存在缓存空间中流媒体节目时刻最早的已下载数据。 这样不但可以控制数据缓存对用户节点所在主机的内存和硬盘空间的消耗,同时还能保留 该媒体流的最新数据以共享给该用户节点的邻居节点。
(5)若本发明中的基于滑动窗口辅助的流媒体数据交换方法被应用在对等网络中 的应用场景时,所述用户节点还需要周期性向其邻居节点广播本地缓存空间中已下载的流 媒体数据分片信息,并在邻居节点提出数据请求时提供相关流媒体数据。(6)流媒体数据解码与回放模块在解码时通常支持一定程度的容错性,也就是说, 如果接收到的数据有一定程度的失真或损失,解码器具备修复或部分修复数据的能力。因 此,当一个基本窗口的最迟提交时刻到来时,如果仍然有部分该窗口所属的数据分片未能 到达,则数据缓存仍然可以提交该不完整基本窗口中的数据给流媒体解码器。这样可以最 大限度的利用已有的数据资源,尽量提高流媒体的回放质量。实施例二下面结合图5和图6对本发明中提出的流媒体节点装置给出详细说明。图5中给出了所述流媒体节点装置500的主要功能模块,该节点装置通过所述基 于滑动窗口辅助的流媒体数据交换方法,能够应用于直播、点播等多种互联网络流媒体系 统中。该节点装置包括如下主要功能模块数据传输模块504,其主要职责包括根据邻居管理模块提供的邻居结点信息和 基于滑动窗口辅助的流媒体数据缓存模块提供的数据分片信息,负责分配数据分片的下载 任务给各个邻居节点;同时,数据传输模块还负责监视所述用户节点网络带宽资源的变化, 并将其反馈给所述数据缓存模块;最后,数据传输模块负责发送和接收各种网络数据包,并 维护各个邻居节点的网络连接。邻居管理模块502,其主要职责包括在对等网络环境下,负责所述用户节点的邻 居节点列表管理与维护、删除已失效节点、添加新的邻居节点;根据对等网络类型的不同, 邻居管理模块的管理方法与手段需要有所调整,如在使用分布式散列表(DHT)的对等网络 空间中,该模块需要根据协议要求维护一定规模的散列空间。流媒体回放模块501,其主要职责包括对数据缓存模块提交的流媒体数据进行 解码;同时,负责播放解码后的流媒体内容,满足流媒体节点装置使用者的需求。基于滑动窗口辅助的流媒体数据缓存模块503,其主要职责包括管理本地存储 空间;建立并管理流媒体的初始化缓存空间;建立、管理、移除缓存空间中的基本窗口 ;管 理滑动窗口 ;为所述用户节点的邻居节点提供本地缓存空间中拥有的数据分片列表。该数 据缓存模块中主要包括以下几个子模块本地存储子模块601,负责所述用户节点的本地存储区域的维护,数据分片的存储 空间分配,并执行基本装口管理子模块、滑动窗口管理子模块、数据分享管理子模块以及初 始化管理子模块的管理指令。基本窗口管理子模块602,负责基本窗口结构的构建、维护、管理与撤销。该模块可 以根据流媒体数据的编码标准和流畅回放该媒体流所需的数据量大小,确定一个基本窗口的大小,亦即一个基本窗口应当包含多少个数据分片。在一个流媒体数据下载过程中,当流 媒体数据的编码方式出现变化、所需缓存数据量有了变化,基本窗口管理子模块可以自适 应进行调整,改变基本窗口的大小。滑动窗口管理子模块603,负责滑动窗口的构建、维护与管理。同时,该子模块与数 据传输模块配合,根据数据传输模块提供的当前网络可用带宽情况,周期性调整滑动窗口 的大小,这种自适应方式不但可以最大限度地利用带宽资源,而且可以有效避免盲目进行 超量数据传输。初始化管理子模块604,负责流媒体数据传输的初始化缓冲区的建立与维护。流媒 体的数据连续性和互联网络提供服务的不稳定性是一对矛盾,为了尽量避免互联网可用带 宽资源的扰动对流媒体回放的影响,在流媒体数据下载的初始阶段,用户节点应当在开始 解码回放流媒体数据前,缓存一定量的数据。因此初始化管理子模块的重要功能就是根据 所掌握的互联网带宽资源数据,确定初始化缓存空间的大小,在流媒体回放延迟与回放稳 定性之间,找到最佳平衡点。数据分享管理子模块605,负责周期性广播本地存储子模块中所有的数据分片给 所述用户节点的邻居节点,共享数据分片。若本发明中的流媒体节点装置应用于对等网络 中,则该节点不但可以从其邻居节点下载流媒体数据,还应当分享本地缓存中已有的数据 分片给其邻居节点。本实施例所述的流媒体节点装置采用定期广播的方式发送本地数据分 片信息给其所有邻居节点。本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还 可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由 权利要求书的范围来确定的。
权利要求
一种流媒体数据交换方法,其特征在于,包括步骤1,用户节点建立滑动窗口;步骤2,根据各邻居节点的数据分片广告信息,分配属于滑动窗口内的流媒体数据分片下载任务给一个或多个邻居节点;步骤3,当滑动窗口内的数据符合预设的条件,用户节点提交滑动窗口内的数据给流媒体数据解码与回放模块以进行播放;步骤4,滑动所述滑动窗口,重复执行步骤2-步骤3,直至流媒体数据下载完毕或用户节点终止流媒体的数据交换过程。
2.如权利要求1所述的流媒体数据交换方法,其特征在于,在步骤1之前还包括 步骤5,用户节点根据各邻居节点的数据分片广告信息,分配属于初始化缓冲区内的流媒体数据分片下载任务给一个或多个邻居节点; 步骤6,当初始化缓冲区被填满后,用户节点提交缓冲区中的数据给流媒体数据解码与 回放模块以进行播放。
3.如权利要求1或2所述的流媒体数据交换方法,其特征在于,滑动窗口包含若干个基 本窗口,每个基本窗口包含一个或多个数据片所需的空间。
4.如权利要求3所述的流媒体数据交换方法,其特征在于,所述预设的条件为滑动窗 口中的部分或全部基本窗口被填满。
5.如权利要求3所述的流媒体数据交换方法,其特征在于,滑动窗口的起始边界为初 始化缓冲区内的终止边界。
6.如权利要求3所述的流媒体数据交换方法,其特征在于,步骤1中,用户节点还根据 网络可用带宽周期性地调整滑动窗口的大小。
7.如权利要求3所述的流媒体数据交换方法,其特征在于,用户节点还周期性将本地 存储的数据分片信息广播给邻居节点,以方便邻居节点调度数据分片下载任务。
8.如权利要求3所述的流媒体数据交换方法,其特征在于,当基本窗口中已下载的数 据分片数量超过设定的阈值,且到达该基本窗口的预计提交时间,则将该基本窗口中的数 据分片提交给流媒体数据解码与回放模块。
9.如权利要求3所述的流媒体数据交换方法,其特征在于,数据分片具有规定的格式 和大小,并具有按照数据分片生成的时间顺序顺次分配的数据分片标识。
10.一种流媒体数据交换装置,其特征在于,包括流媒体数据缓存模块,用于供用户节点建立滑动窗口 ;当滑动窗口内的数据符合预设 的条件,供用户节点提交滑动窗口内的数据给流媒体数据解码与回放模块以进行播放,并 滑动所述滑动窗口;邻居管理模块,用于维护邻居节点列表;流媒体数据解码与回放模块,用于解码并回放流媒体数据缓存模块提供的流媒体数据 数据传输模块,用于根据各邻居节点的数据分片广告信息,分配属于滑动窗口内的流 媒体数据分片下载任务给一个或多个邻居节点。
11.如权利要求10所述的流媒体数据交换装置,其特征在于,数据传输模块,还用于供用户节点根据各邻居节点的数据分片广告信息,分配属于初 始化缓冲区内的流媒体数据分片下载任务给一个或多个邻居节点;流媒体数据缓存模块,还用于在初始化缓冲区被填满后,供用户节点提交缓冲区中的 数据给流媒体数据解码与回放模块以进行播放。
12.如权利要求10或11所述的流媒体数据交换装置,其特征在于,滑动窗口包含若干 个基本窗口,每个基本窗口包含一个或多个数据片所需的空间。
13.如权利要求12所述的流媒体数据交换装置,其特征在于,所述预设的条件为滑动 窗口中的部分或全部基本窗口被填满。
14.如权利要求12所述的流媒体数据交换装置,其特征在于,滑动窗口的起始边界为 初始化缓冲区内的终止边界。
15.如权利要求12所述的流媒体数据交换装置,其特征在于,流媒体数据缓存模块,还 用于供用户节点根据网络可用带宽周期性地调整滑动窗口的大小。
16.如权利要求12所述的流媒体数据交换装置,其特征在于,数据传输模块,还用于供 用户节点周期性将本地存储的数据分片信息广播给邻居节点,以方便邻居节点调度数据分 片下载任务。
17.如权利要求12所述的流媒体数据交换装置,其特征在于,流媒体数据缓存模块,还 用于当基本窗口中已下载的数据分片数量超过设定的阈值,且到达该基本窗口的预计提交 时间,将该基本窗口中的数据分片提交给流媒体数据解码与回放模块。
18.如权利要求12所述的流媒体数据交换装置,其特征在于,数据分片具有规定的格 式和大小,并具有按照数据分片生成的时间顺序顺次分配的数据分片标识。
全文摘要
本发明涉及一种流媒体数据交换方法与装置。该流媒体数据交换方法包括步骤1,用户节点建立滑动窗口;步骤2,根据各邻居节点的数据分片广告信息,分配属于滑动窗口内的流媒体数据分片下载任务给一个或多个邻居节点;步骤3,当滑动窗口内的数据符合预设的条件,用户节点提交滑动窗口内的数据给流媒体数据解码与回放模块以进行播放;步骤4,滑动所述滑动窗口,重复执行步骤2-步骤3,直至流媒体数据下载完毕或用户节点终止流媒体的数据交换过程。本发明能够同时考虑到流媒体回放的稳定性、流媒体数据的回放时延、网络带宽资源的变化,为流媒体数据交换提供高效的数据分片下载调度方法,提高流媒体终端的回放质量,提高终端用户的满意度。
文档编号H04N7/173GK101841691SQ201010118279
公开日2010年9月22日 申请日期2010年3月4日 优先权日2010年3月4日
发明者冯凯, 刘悦, 叶靖, 张铁赢, 李哲中, 李静远, 程学旗 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1