一种对等网络流媒体网络编码方法

文档序号:7750089阅读:173来源:国知局
专利名称:一种对等网络流媒体网络编码方法
技术领域
本发明涉及网络编码技术领域,具体而言,本发明涉及一种对等网络流媒体网络 编码方法。
背景技术
流媒体是指在网络上按时间先后次序传输和播放的连续音、视频数据流,具有数 据量大、边下载边播放等特点,逐渐成为互联网上音视频服务的主要形式。然而,流媒体具 有严格的时序关系,播放要求严格的实时连续性。针对IP网络,P2P(Peer to Peer,对等) 技术通过用户间的数据共享和对等传输能够有效提高视频播放质量、网络吞吐量等系统性 能,是一种有效的应用层协作传输技术。然而,由于用户群分裂、网络结构动态变化等因素, P2P流媒体分发仍存在数据“饥饿”现象,导致视频播放中断或质量降低,因此,极端条件下 P2P流媒体分发的性能改善技术仍是其重点研究方向。在实用化网络编码应用中,特别在流媒体分发系统中,最基本的工作是完成视频 数据的分段,以实现段内网络编码,在提高系统传输性能的同时保持流媒体的实时播放特 性。在已有的研究成果中,针对流媒体分发中视频的帧播放特点,网络编码通常采用时间分 段方式以GoP (Group of Picture,画面组)为单位分段和以秒为单位分段,这种分段方式 有利于满足视频播放要求,但视频VBR(Variable-Bit-Rate,变比特率)特性使该方式下的 数据段大小随机波动,不便于缓冲区管理和数据调度。因此,本发明采用数据分段方式,即 每个段具有相同的分段长度。实际上,网络编码的分段长度与节点缓冲区、带宽等多种因素有关,并直接影响播 放起始时延、视频播放质量和带宽有效负载率。因此,在满足资源约束和视频播放要求的综 合条件下,最大化网络编码的分段长度可有效提高编码数据的有效负载率,从而提高带宽 利用率。考虑实际的P2P系统,各节点提供的缓冲区等资源不同,因此它们允许的最大分段 长度,即分段长度约束是不同的。若系统中所有节点采用相同的分段长度,其最大分段长度 只能为所有节点分段长度约束的最小值,造成具有大缓冲区节点的资源浪费,降低带宽利 用率。然而,目前针对P2P流媒体分发的网络编码设计中,还没有实现对不同缓冲区的处 理,影响了 P2P系统性能。

发明内容
本发明的目的旨在至少解决上述技术缺陷之一,特别针对P2P系统中通过将分段 长度约束按大小顺序划分为多个等级,并在同级内使用相同的分段长度,使各节点能够根 据提供的资源使用不同的分段长度,提出了一种对等网络流媒体网络编码方法。为实现上述目的,本发明的实施例提出了一种对等网络流媒体网络编码方法,包 括如下步骤基于分段长度约束对节点分级,所述分段长度约束为每个节点所能采用的可行最大分段长度,将所述节点分为L级,各级的节点数分别为k1;k2. ..kL,n = ki+k2+. . . +K,n为节点数;根据所述节点分级L,确定各级节点不同的分段长度gi,i = 1,2,…,L ;根据所述节点分级L和各级的分段长度gi,对段内数据采用随机网络编码实现段内编码;根据所述段内编码得到的编码数据块,各级节点之间协同工作,低级别节点向同 级或高级别节点发送数据请求,所述被请求的同级别或高级别节点接收所述数据请求,并 向请求节点发送数据。根据本发明实施例的方法,针对P2P系统中各节点具有的不同分段长度约束,以 随机网络编码为基础,通过将分段长度约束按大小顺序划分为多个等级,并在同级内使用 相同的分段长度,使各节点能够根据提供的资源使用不同的分段长度。同时,通过设计相同 长度的编码向量和分段长度的整数倍关系等,使采用不同等级分段长度的节点能够协同工 作,低级别节点可使用同级别或高级别节点的编码数据,具有较高的解码概率。因此,本发 明内容可用于实际P2P流媒体系统中的网络编码设计,以充分利用节点缓冲区等资源,提 高网络编码数据的有效负载率。本发明提出的上述方案,对现有系统的改动很小,不会影响系统的兼容性,而且实 现简单、高效。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。


本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中图1为根据本发明实施例的对等网络流媒体网络编码的流程框图;图2为根据本发明实施例的基于分段长度约束的节点分级,L = 3的示意图;图3为根据本发明实施例的视频数据的分级分段,L = 3的示意图;图4为根据本发明实施例的一级分段的段内分块及编码示意图;图5为根据本发明实施例的二级分段的段内分块及编码示意图;图6为根据本发明实施例的节点主动请求编码数据块的流程图;图7为根据本发明实施例的节点处理编码数据块请求的流程图。
具体实施例方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。为实现本发明之目的,本发明实施例公开了一种对等网络流媒体网络编码方法, 结合图1所示,该方法包括如下步骤SlOl 基于分段长度约束对节点分级,分段长度约束为每个节点上的最大分段长 度,将节点分为L级,各级的节点数分别为k1; k2. . . kL, η = ki+k2+. . . +kL, η为节点数。具体的说,基于分段长度约束对所有节点分级包括首先,确定各节点的分段长度约束<,j = l,2,…,η。分段长度约束<为每个节点所能采用的可行最大分段长度。其 中,分段长度约束4是由各Peer节点提供的缓冲区、接入带宽、播放时延约束等因素决定。 然后将上述各节点的分段长度约束<按从小到大进行排序,即· S…《乂。根据Ρ2Ρ流 媒体系统结构和解码概率需求,估计节点数阈值λ。阈值λ可以保障所有节点在网络编码 系统中都能够尽可能的解码,即具有较高的解码概率。其影响该阈值的因素包括网络拓扑 结构和需求的解码概率,在固定其他条件下,阈值越大,解码概率越高,反之越低。根据节点数阈值λ,将各节点分为L级,各级的节点数分别为
ki+k2+. . . +kL,即确定每一级的节点数和该级可使用的最大分段长度^nax。其中,最高级节点数必须大于节点数阈值,即& > λ,由此可以保障解码概率。下面以节点分级L = 3时的分级方法为例,结合图2详细说明。 图2为基于分段长度约束的节点分级L = 3时的示意图,如图2中所示,基于分段 长度约束¥将所有节点划分为三个等级,即L = 3。具体的说,首先确定各节点的分段长度约束¥,然后对节点的分段长度约束按从 小到大进行排序,即i ^·、《。根据P2P流媒体系统结构和解码概率需求,估计节点 数阈值λ,依据该阈值,对系统中所有节点进行分级,即确定每一级的节点数和该级可使用 的最大分段长度^max。在本实施例中,将N个节点划分为三级,每级节点数为ki;i = 1,2,3。 其中,第一级节点的节点数为h,第二级节点的节点数为k2,第三级节点的节点数为k3,且 本实施例提供的网络编码分段采用数据分段方式,克服了时间分段方式造成的数 据块大小波动的缺点,便于缓冲区管理和数据调度。针对给定视频,网络编码分段长度的确 定需要综合考虑了以下因素节点缓冲区、动态带宽变化范围、播放起始时延等。S102 根据节点分级L,确定各级节点不同的分段长度gi,i = 1,2,…,L。在上述步骤中给定的节点分级下,确定每一级使用的分段长度gi,i = 1,2,…,L。 其中,一级以上的分段长度gi(i ^ 2)为一级分段长度&的整数倍。设视频数据总长度为S,则分段长度gl把该视频数据等分成m段,即S = mXgl。 若节点共分为L级,则m可分解为L-I个正整数,即
,其中κ i = 1, 2,…,L-I为第i+1级的分段长度乘子。高级分段的分段长度gi,i > 2是次高级分段的分段长度的整数倍,即 Si =^l-Igi-! =^1Kjgl,则最高级分段长度为& 二!!口/^免。即所有级别分段长度的最小公
倍数为做高级别分段长度,能够整除视频总数据长度S。在本实施例中,相同级别的节点具有相同的分段长度。各级分段长度gi除满足上述整数化关系外,还要满足每一级的分段长度gi,i = 1,2...L要不大于该级中各节点最大分段长度的最小值,结合图2所示,即 …
在实际计算中,可采用整数规划计算各级分段长度参数,并实现分段长度的最大 化。图3示出了视频数据的分级分段,L = 3的示意图。结合图2和图3所示,将视频 内容划分为三级,各级分段长度分别为gl、&和g3,其中,& = 2gl、g3 = 4gl,即K1=K2 = 2。如图3中所示,分段后,一级节点将视频内容分段为S11, S12,…,Sm,二级节点分段 为S21,S22,…,^f,三级节点分段为S41,S42,…,&宁。其中,高级分段的每一段包含低级分 段的多个分段,如S21由S11和S12构成,J2f由Snri和Sm构成;S41由Sn、S12, S13和S14构成,
4 学甶 Sm—3、Sm—2、 Snri和Sm构成。优选的,通过设计节点分段,可使K i = 2,i = 1,2,…,L-1,形成二分分段。S103:根据节点分级L和各级的分段长度gi,对段内数据采用随机网络编码实现 段内编码。根据步骤101和102中确定的节点分级L和各级的分段长度gi,对段内数据进行 网络编码,本实施例采用随机网络编码实现段内编码。图4示出了一级分段的段内分块及编码示意图。如图4中所示,一级分 段的段数据等分为N块,每个数据块长度为gl/N。然后由节点随机生成编码向量 di = ^iel + ai2e2 + · ·. + o^e》,其中’司为已有数据块的编码向量。若为编码数据块, 贝阮为该块的编码向量;若为原始数据块,则《为单位向量。在此编码向量下,新编码数据块 Ei 为已有数据块 Bil,Bi2,…,BiN 的线性组合 Ei = anBn+ai2Bi2+- + aiNBiN, 如图4所示,编码数据包由编码向量和编码数据构成的有效负载组成,增大编码 数据长度可提高数据有效负载率,进而提高带宽利用率。在段内编码中,所有级别的分段采用相同的分块方式,即编码块数相同,各级别的 分段的编码块数相同,同一级别的分段中每块数据块长度大小相同,因此,每一块数据块长 度与分段长度成正比。高级别节点在实施段内编码前,进行数据重组,包括如下步骤将该级的每段数据划分为若干子段,其中,子段长度为最低一级的分段长度gl,然 后以子段为单位对编码数据进行重组。如图3所示,各子段按顺序从横向排列转换为纵向排列,然后在分块时以重组后 的数据进行分块。结合图3和图5所示,二级分段S21划分为两个子段S11和S12,对上述子 段进行重组;三级分段S41对子段Sn、S12, S13, S14进行重组。重组后数据采用相同分块数, 如此以来,每个子段的分块方式与一级分段的分块方式完全相同,在编码数据请求中可以 复用。即由节点随机生成编码向量碗=anel + ai2e2 + ··· +,其中 ,为已有数 据块的编码向量。若为编码数据块,则€为该块的编码向量;若为原始数据块,则《·为单位 向量。在此编码向量下,新编码数据块Ei为已有数据块Bil,Bi2,…,BiN的线性组合Ei =α ηΒη+α i2Bi2+…+ α iNBiN。在本实施例中,以二级分段实施段内编码为例, 即 其中,对二级分段数据也等分为N块,每个数据块长度为2gl/N。S104:根据段内编码得到的编码数据块,各级节点之间协同工作,低级别的节点向 同级别或高级别节点发送数据请求,被请求节点接收数据请求,并向请求节点发送数据。在上述分级分段和段内编码方式下,不同级别分段长度的节点之间能够协同工 作,低级别的节点可以向同级别或高级别的节点请求数据,同级别或高级别节点根据请求 节点的分级参数和所请求的段号,定位到所请求的数据的位置,针对定位到的内容进行随 机网络编码,并传输该子段的编码数据。然而,高级别的节点不能使用低级别节点的网络编 码数据,只能使用同级别或更高级别节点的编码数据。具体的说,结合图6所示,低级别节点向同级别或高级别节点请求编码数据块包 括以下步骤,下面以节点A表示低级别节点,节点S表示同级别或高级别节点。Sl 节点A请求指定段的编码数据块,向节点S发送本节点的分级参数及指定段的 段号。在本实施例中,节点A为一级分段节点,节点S为二级分段节点,指定段的段号为S11.S2:节点A接收来自节点S发送的编码向量,判断本次编码向量Cii和已接收的向 量α 是否线性相关,若线性相关,则丢弃该编码向量,执行步骤Sl ;否则执行步骤S3 ;S3 节点S根据节点A的分级参数和所请求的段号,向节点A传输该子段的编码数 据;S4 节点A判断是否接收到能够解码的最少线性无关块,若已接收到,则从解码块 中产生可以播放的流媒体数据;否则,判断向被请求节点请求数据块的次数,若超过了设定的请求次数阈值,则该段编码块请求结束;若未超过设定的请求次 数阈值,重新定位被请求节点,执行步骤Si,再次发送数据请求。其中,在步骤S3中,被请求节点即节点S根据请求节点即节点A的分级参数和所 请求的段号,向请求节点传输该子段的编码数据,结合图7所示,包括如下步骤S31 节点S接收节点A的分级参数及所请求的编码数据块的段号,根据请求参数 定位请求内容在本节点上的段号和位置;S32:节点S随机产生N个随机数Ciil,α i2,…,α iN,并组成一个N维编码向量
,并将该向量发送给节点A ;S33 节点S接收节点A的反馈信息,若节点A重新请求编码向量,则执行步骤S32 ; 若可用则执行步骤S34 ;否则不做任何响应,结束本次请求;S34 将定位的数据块等分为N块,N > 1,根据编码向量和数据块Bil,Bi2,…,BiN, 生成新的编码数据块Ei = α ηΒη+ α i2Bi2+…+ α iNBiN ;优选的,节点S组合对应位置的已有编码数据块,生成新的编码数据块。S35:节点S向节点A发送编码向量αi和数据块Ei。
根据本发明实施例提供的方法,结合图4和图5所示,二级分段节点定位编码数据 段S11在数据块E21中的位置,即编码块E21的上半部分。该二级分段节点生成新的编码向量和编码数据块
并发送给请求的一级分段节 点。类似地,若一级分段节点向二级分段节点请求编码数据段S12,二级分段节点发送编码 数据
给请求节点。如此以来,低
级别节点可以任意使用高级别节点的网络编码数据。若二级分段节点向二级分段节点请求编码数据段S21,服务节点发送编码数据
给请求节点。根据本发明实施例提供的对等网络流媒体网络编码方法,采用分级分段方式,能 够有效处理P2P网络中节点缓冲区差异等因素引起的不同分段长度约束。该编码方法以随 机网络编码为基础,可应用于实际分布式的P2P流媒体系统中,具有较高的实用性。对不同 级别的节点传送大小不同的编码块,解决了同等分段方式对大缓冲区节点的资源浪费。低级别的节点可以向同级别或更高级别节点请求数据块,提高了解码概率,支持 节点间的协同工作。针对视频数据总长度进行设计,能够处理视频最后分段的网络编码。总 之,本发明实施例提供的方法充分利用不同节点提供的缓冲区等资源,并保持了网络编码 的优势,通过提高编码数据有效负载率可改善网络带宽利用率和视频播放质量,并具有较 高的实用价值。本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可 以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中, 该程序在执行时,包括方法实施例的步骤之一或其组合。另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模 块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如 果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机 可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种对等网络流媒体网络编码方法,其特征在于,该方法包括如下步骤基于分段长度约束对节点分级,所述分段长度约束为每个节点所能采用的可行最大分段长度,将所述节点分为L级,各级的节点数分别为k1,k2...kL,n=k1+k2+...+kL,n为节点数;根据所述节点分级L,确定各级节点不同的分段长度gi,i=1,2,…,L;根据所述节点分级L和各级的分段长度gi,对段内数据采用随机网络编码实现段内编码;根据所述段内编码得到的编码数据块,各级节点之间协同工作,低级别节点向同级或高级别节点发送数据请求,所述被请求的同级别或高级别节点接收所述数据请求,并向请求节点发送数据。
2.如权利要求1所述的方法,其特征在于,基于分段长度约束对所有节点分级包括如 下步骤确定各节点的分段长度约束^ , j = 1,2,…,η ;将所述各节点的分段长度约束<按从小到大进行排序,即 估计节点数阈值入;根据所述节点数阈值λ,将所述节点分为L级,各级的节点数分别为k1; k2. . . kL, η = ki+k2+. . . +&,确定每一级的节点数和该级可使用的最大分段长度g,max,其中,& > λ,
3.如权利要求1所述的方法,其特征在于,确定各级节点不同的分段长度gi包括如下 步骤除一级以外的其他级别的分段长度gi,i > 2为一级分段长度为gl的整数倍,分段长度 gl将视频数据等分为m段,S卩S = mXgl,其中,S为视频数据总长度,gl为一级分段长度, 为第i+Ι级的分段长度乘子,i = 1,2,…,L-1,高级分段的分段长度gi,i > 2为次高级分段的分段长度的整数倍,即 ,则最高级分段长度为
4.如权利要求3所述的方法,其特征在于,所述最高级分段长度&能够整除视频总数 据长度S,同级别节点具有相同的分段长度。
5.如权利要求2或3所述的方法,其特征在于,各级别的分段长度为gi,i= 1,2...L, 则每一级的分段长度小于或等于该分级中各节点最大分段长度的最小值,即
6.如权利要求1所述的方法,其特征在于,对段内数据采用随机网络编码实现段内编 码,包括如下步骤将各级分段的段数据等分为N块,则每块数据块长度为gi/N ;由节点随机生成编码向量 ;则新编码数据块Ei为已有数据块Bil,Bi2,…,BiN的线性组合Ei = α nBn+Qi2Bi2+-+ Q iNBiN。
7.如权利要求6所述的方法,其特征在于,对高级别分段的段内数据采用随机网络编 码实现段内编码前,进行数据重组,包括如下步骤将所述高级别分段的每段数据划分为子段,所述子段长度为一级分段长度gl,然后以 子段为单位对编码数据进行重组;对重组后的数据等分为N块,则每块数据块长度为gi/N。
8.如权利要求6所述的方法,其特征在于,各级别的分段的编码块数相同,同一级别的 分段中每块数据块长度大小相等,所述每块数据块长度与其所在级别的分段长度成正比。
9.如权利要求1所述的方法,其特征在于,各级别分段长度的节点之间协同工作包括 如下步骤51低级别节点请求指定段的编码数据块,向同级别或高级别节点发送本节点的分级 参数及所述指定段的段号;52所述低级别节点接收所述同级别或高级别节点发送的编码向量,判断本次编码向 量α 已接收的向量α"是否线性相关,若线性相关,则丢弃该编码向量,执行步骤Sl ; 否则执行步骤S3 ;53所述同级别或高级别节点根据所述低级别节点的分级参数和所请求的段号,向所 述低级别节点传输该子段的编码数据;S4:所述低级别节点判断是否接收到能够解码的最少线性无关块,若已接收到,则从解 码块中产生流媒体数据;否则,判断向被请求的同级别或高级别节点请求数据块的次数;若超过请求次数阈值,则该段编码块请求结束;若未超过请求次数阈值,重新定位高级 别节点,执行步骤Si,再次发送数据请求。
10.如权利要求9所述的方法,其特征在于,所述同级别或高级别节点根据所述低级 别节点的分级参数和所请求的段号,向所述低级别节点传输该子段的编码数据包括如下步 骤S31 所述同级别或高级别节点接收所述低级别节点的分级参数及所请求的编码数据 块的段号,根据请求参数定位请求内容在本节点上的段号和位置;S32:所述同级别或高级别节点随机产生N个随机数Ciil,Cii2,…,α ,并组成一个N 维编码向量 ,并将该向量发送给所述低级别节点;S33 所述同级别或高级别节点接收所述低级别节点的反馈信息,若所述低级别节点重 新请求编码向量,则执行步骤S32 ;若可用则执行步骤S34 ;否则不做任何响应,结束本次请 求;S34通过以下两种方式之一生成新的编码数据块1)将定位的数据块等分为N块,根据编码向量和数据块Bil,Bi2,…,BiN,生成新的编码 数据块 Ei = αi1Βi1+ αi2Bi2+…+ αiNBiN, Ν> 1 ;2)所述同级别或高级别被请求节点组合对应位置的已有编码数据块,生成新的编码数据块;S35所述同级别或高级别节点向所述低级别节点发送编码向量αi和数据块Ei。
全文摘要
本发明的实施例公开了一种对等网络流媒体网络编码方法,该方法包括基于分段长度约束对节点分级,分段长度约束为每个节点所能采用的可行最大分段长度,将节点分为L级,各级的节点数分别为k1,k2...kL,n=k1+k2+...+kL,n为节点数;根据节点分级L,确定各级节点不同的分段长度gi,i=1,2,…,L;根据节点分级L和各级的分段长度gi,对段内数据采用随机网络编码实现段内编码;各级别分段长度的节点之间协同工作,高级别节点接收同级别或低级别节点的数据请求,并向该请求节点发送数据。根据本发明实施例提供的方法,充分利用了不同节点提供的缓冲区等资源,并保持了网络编码的优势,通过提高编码数据有效负载率可改善网络带宽利用率,并具有较高的实用价值。
文档编号H04L29/06GK101848224SQ201010186909
公开日2010年9月29日 申请日期2010年5月26日 优先权日2010年5月26日
发明者于敬敬, 奚宏生, 王子磊 申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1