CN1855794A - 一种基于纠删码的数据传输保护方法 - Google Patents
一种基于纠删码的数据传输保护方法 Download PDFInfo
- Publication number
- CN1855794A CN1855794A CNA2005100661467A CN200510066146A CN1855794A CN 1855794 A CN1855794 A CN 1855794A CN A2005100661467 A CNA2005100661467 A CN A2005100661467A CN 200510066146 A CN200510066146 A CN 200510066146A CN 1855794 A CN1855794 A CN 1855794A
- Authority
- CN
- China
- Prior art keywords
- data
- back end
- node
- layer
- correcting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明提供一种基于纠删码的数据传输保护方法,其核心为:设置仅具有一层校验节点层的纠删码,根据所述纠删码进行数据传输保护。本发明在确保数据传输保护能力没有显著下降的情况下,通过设置仅具有一层校验节点层的纠删码,有效减少了纠删码生成校验节点层的运算量,大大降低了数据传输延迟时间,使数据传输保护性能与代价比得到提高,使本发明的数据传输保护方法能够很好地适用于H.263、H.264等技术领域;从而通过本发明提供的技术方案实现了提高数据传输保护性价比、提高数据传输效率、促进H.264等新技术应用的目的。
Description
技术领域
本发明涉及通信系统中抗丢包错误技术领域,具体涉及一种基于纠删码的数据传输保护方法。
背景技术
纠删码是一种使用广泛的抗丢包错误技术。
纠删码中的Tornado码由于其相对于其他纠删码如Reed-Solomon码等,具有结构简单、运算高效、保护能力强等特点,在实际的数据传输过程中,尤其是在音频、视频数据的实时传输过程中获得了较为广泛的应用。
所谓Tornado码,就是将数据码流顺序逐段分割成大小相同的一个个单元(Unit),也叫做数据节点(Data Nodes),然后按照一定的数学运算规则对这些数据节点进行计算,产生出第一层的校验节点(Parity Nodes或者CheckNodes),对于第一层的校验节点继续按照相同或者不同的数学运算规则运算产生出第二层的校验节点,依次类推,可以生成第三层,第四层,直至第N层的校验节点。
由于Tornado码中各层节点数目按照固定的比例递减,使Tornado码的结构象一个向右旋转90°的金字塔,如附图1所示。按照等比级数的求和法则可知,整个金字塔结构中的节点数目是数据节点数目的p倍数,其中的p不一定是整数。
上述倍数关系使Tornado码在数据传输过程中,最终在编码端和解码端需要处理的节点数目与数据节点数目n呈一种线性关系,这意味着编解码端处理Tornado码需要的时间复杂度与数据节点数n存在线性关系,即具有线性时间特性(linear-time)。
正是由于Tornado码具有线性时间特性,使其运算效率高,适用于通信系统的实时通信。
Tornado码的各校验节点和各数据节点都由发送端通过网络发送给接收端。如果在网络传输过程中,部分节点丢失了,由于上层节点参加了下层节点的生成,即上层节点的信息已经包含在了下层节点以及更下层节点中,因此,丢失的节点可以通过足够数目的下层节点或者更下层节点来完全恢复。如果每个节点是一个包,则丢失的包可以由正确接收到的其它包来完全恢复,从而实现数据传输保护。
目前,采用Tornado码实现基于H.261/H.263/H.263+/H.263++/H.264视频压缩编码的数据传输保护方法包括如下步骤:
在步骤1、设计Tornado码的结构。具体为:根据给定的保护能力、其它要求、具体的数据类型如音频还是视频、速率大小等因素决定数据节点大小为L1比特,根据具体应用中可以接受的最大网络延迟等因素确定数据节点数目n、总校验节点数目L、中间校验层的层数m、各层之间节点数目的递缩比例因子
等,确定任何相邻两层的节点之间的二部图的左边度分布向量和右边度分布向量。
到步骤2、根据上述左边度分布向量和右边度分布向量采用随机图匹配的方式生成每个相邻两层节点之间的随机二部图。
到步骤3、开始数据传输过程,发送端的H.261/H.263/H.263+/H.263++/H.264视频编码器产生数据码流,这个数据码流是需要进行数据传输保护的。
到步骤4、把需要保护的数据码流,分割成具有L1比特的大小相等的数据节点D0、D1、D2、D3....DT。
到步骤5、令t=0。
到步骤6、获取Dt、Dt+1....Dt+n-1n个数据节点。
到步骤7、根据步骤2确定的相邻两层节点之间的随机二部图为上述n个数据节点Dt、Dt+1....Dt+n-1逐层生成各个中间校验节点层MC(0)、MC(1)...MC(m)和最后校验节点层FC。
到步骤8、将数据节点Dt、Dt+1....Dt+n-1和通过步骤7生成的各校验节点层中的校验节点全部通过UDP/IP或者TCP/IP等网络打包方式打包后发送至接收端。
到步骤9、发送端根据t、T的数值判断所有的数据节点是否处理完毕,如果所有的数据节点已处理完毕,到步骤10;否则,t=t+n,到步骤6。
在步骤10、发送端的通信过程结束。
由于在实时通信过程中发送端往往是一边进行编码压缩一边发送的,所以上述步骤3至步骤8表示的并不是时间上的先后顺序,而是逻辑上的先后顺序。
上述过程是对发送端进行描述的,对于接收端,在接收端接收到一批数据节点和校验节点后,首先应判断哪些数据节点是应该收到而实际上丢失了、并可恢复的数据节点,然后,对于上述丢失了的且可恢复的数据节点按照Tornado码的一般解码过程进行解码恢复。接收端重复上述接收并恢复过程,直到通信过程结束。
虽然Tornado码相对于其他纠删码具有结构简单、运算高效、保护能力强等特点,但是,由于Tornado码需要生成多个中间节点层,需要层层计算、且生成最后校验节点层中的校验节点时需要采用Reed-Solomon等比较复杂的计算方法,给发送端增加了大量的计算工作,如果需要传输的视频数据如H.264压缩编码其本身的计算量大,则需要发送端具有很强的计算能力,从而限制了H.264等技术的应用。
由Tornado码的结构可以看出,如果Tornado码每层节点数据相对于前一层节点数目的递减比例因子
且m=3,由于第3层校验节点的数目至少是2,则可以反推出数据节点数目n=16。也就是说,如果以一帧图像作为一个数据节点,则采用Tornado码会带来16帧的时间延迟。在实际的应用中,视频通信帧率不会超过30fps,那么16帧就对应超过0.5秒的时间延迟,加上其它方面的时间延迟,使视频数据传输的时间延迟就非常大了。即便是m=2,由于Tornado码带来的时间延迟也有0.25秒以上。
由于H.264的NAL(Network Adaption Layer网络适配层)数据格式是IETF(Internet Engineering Task Force)刚刚完成的,现有的基于Tornado码实现数据传输保护的方法并没有针对H.264NAL功能,没有和H.264NAL达到最佳配合效果。
发明内容
本发明的目的在于,提供一种基于纠删码的数据传输保护方法,通过设置仅有一层校验节点层的纠删码,在数据传输保护能力没有显著下降的情况下,克服了现有技术的对发送端计算能力要求高、数据传输时间延迟长、限制H.264等技术应用的缺点。
为达到上述目的,本发明提供的一种基于纠删码的数据传输保护方法,包括:
a、设置仅具有一层校验节点层的纠删码;
b、根据所述纠删码进行数据传输保护。
所述步骤a具体包括如下步骤:
a1、确定所述纠删码的数据节点层中数据节点对应的数据包的大小、数据节点层中数据节点个数n、校验节点层中校验节点个数L;
a2、确定所述数据节点层与校验节点层之间的随机二部图及预定算法。
所述步骤a1具体为:
根据数据传输速率、数据类型、数据保护能力要求、网络延迟需求确定所述纠删码的数据节点层中数据节点对应的数据包的大小、数据节点层中包含的数据节点个数n、校验节点层包含的校验节点个数L。
所述步骤a2具体为:
确定二部图的左边度分布向量、右边度分布向量;
根据所述左边度分布向量、右边度分布向量通过随机匹配的方式生成所述数据节点层与校验节点层之间的随机二部图,并确定所述数据节点层与校验节点层之间根据所述随机二部图进行异或运算的关联关系。
所述步骤b具体包括如下步骤:
b1、发送端根据所述纠删码数据节点层中数据节点对应的数据包的大小将数据码流分割成各数据节点;
b2、根据所述纠删码的预定算法、随机二部图为所述分割的n个数据节点仅生成一层具有L个校验节点的校验节点层;
b3、将所述n个数据节点和L个校验节点传输至接收端;
b4、所述接收端在确定传输丢失的数据节点能够被恢复时,根据其接收的校验节点、所述随机二部图、所述异或运算的关联关系恢复所述丢失的数据节点。
所述数据码流包括:基于网络适配层封装的数据单元或基于网络抽象层封装的数据单元的数据码流;
且所述步骤b1具体为:
所述发送端将预定个数的基于网络适配层或基于网络抽象层封装的数据单元组成的位块根据所述纠删码的数据节点层中数据节点大小分割成各数据节点。
所述基于网络适配层封装的数据单元包括:基于H.263网络适配层封装的数据单元;
所述基于网络抽象层封装的数据单元包括:基于H.264网络抽象层封装的数据单元。
所述步骤b1还包括:
在确定所述位块的大小不为所述纠删码的数据节点层中数据节点大小的整数倍时,填充所述位块的长度,使填充后的位块为所述纠删码的数据节点层中数据节点大小的整数倍。
所述步骤a还包括:
确定各数据类型与各数据传输保护等级的对应关系;
根据各数据传输保护等级设置多个均具有一层校验节点层、且具有不同的校验节点个数的纠删码。
所述步骤b具体包括:
根据数据码流中各数据承载的预定信息确定各数据的数据类型;
根据所述各数据的数据类型、各数据类型与数据传输保护等级的对应关系确定所述数据码流中各数据对应的数据传输保护等级;
根据所述数据传输保护等级将数据码流分成对应的子流;
根据各子流对应的纠删码对各子流进行数据传输保护。
所述预定信息具体包括:基于H.264网络抽象层的数据单元的非纹理信息和纹理信息。
通过上述技术方案的描述可知,本发明在确保数据传输保护能力没有显著下降的情况下,通过设置仅具有一层校验节点层的纠删码,减少了纠删码生成校验节点层的运算量,减少了数据传输延迟时间,使数据传输保护性能与代价比得到提高,使本发明的数据传输保护方法能够适用于H.264等新技术;通过对网络适配层或网络抽象层封装的数据单元进行数据节点的分割,使本发明的数据传输保护方法能够与H.263、H.264等技术取得很好的配合;通过对不同数据类型采用具有不同保护能力的纠删码,如对重要数据采用冗余度高的纠删码、对普通数据采用冗余度低的纠删码,使本发明能够针对不同的数据如重要图像数据、普通图像数据等实现非等重保护,使各类重要数据在高丢包环境下能够被尽可能的恢复,使数据码流在纠删码的平均冗余率相同的情况下,能够得到最大程度的数据传输保护;从而通过本发明提供的技术方案实现了提高数据传输保护性价比、提高数据传输效率、促进H.264等新技术应用的目的。
附图说明
图1是现有技术中Tornado码的结构示意图;
图2是本发明改进的Tornado码的结构示意图;
图3是本发明改进的Tornado码与H.264NAL单元配合实现数据传输保护的示意图;
图4是H.264NAL单元的数据格式示意图。
具体实施方式
在采用Tornado码进行数据传输保护的过程中,设置多层的Tornado码校验节点层会在一定程度上增强数据传输保护能力,但是,设置多层的Tornado码校验节点层也会使Tornado码的运算量大,从而使数据在进行传输保护过程中付出了时间延迟长的代价。如果能够在确保数据传输保护能力没有显著下降的情况下,减少校验节点层的层数,就能够有效减少Tornado码的运算量,大大减小数据传输过程中的时间延迟,从而寻求到更高的数据传输保护性能-代价比。
因此,本发明的核心是:设置仅具有一层校验节点层的纠删码,根据所述纠删码进行数据传输保护。
下面基于本发明的核心思想对本发明提供的技术方案做进一步的描述。
本发明的纠删码仅具有一层校验节点层,去掉了Tornado码的中间校验节点层,同样,也去掉了Tornado码中按照Reed-Solomon编码产生最后一层校验节点的固有要求,这样,本发明的纠删码如附图2所示,仅具有一层数据节点层和一层校验节点层,可以说本发明的纠删码是一种结构简化的Tornado码,是一种改进的Tornado码。
本发明改进的Tornado码的数据节点大小L1、数据节点层中数据节点的个数n、校验节点层中校验节点个数L可根据实际需求来确定。如根据数据传输速率、数据类型如音频数据/视频数据等、数据保护能力要求、能够接收的最大网络延迟等因素确定数据节点层中数据节点大小L1、数据节点层中包含的数据节点个数n、校验节点层中包含的校验节点个数L。
如果设定现有技术中Tornado码具有m层中间校验节点层,且从数据节点层至第m个中间层,相邻两层之间的节点数目的等比递缩因子为
最后层与第m层之间的节点数目的等比递索因子为
则现有技术中Tornado码的总节点数TotalNode为:
由于TotalNode=n+L,因此,L的设置是有限制的,
L不能够任意设定。由于需要保证Tornado码中每层节点的节点个数都是整数,因此需要以及
都是整数,这个条件叫做隐含整数节点数条件。根据该条件,如果给定Tornado码中的m和
就可以计算出n需要满足的条件,如当m=3,
则可以计算出n=16k,其中k为任意自然数。由此可知,n能够取得的最小值为16,且现有技术中Tornado码的码率r为:而冗余率1-r为:
本发明改进的Tornado码由于不存在中间校验节点层,使改进的Tornado码不再需要上述隐含整数节点数目的条件,本发明改进的Tornado码的校验节点层的校验节点个数L为:
本发明的改进的Tornado码的数据节点层与校验节点层的节点数目的等比递缩因子
可以任意设置,在给定数据节点个数n的条件下,L可以灵活设定。
本发明改进的Tornado码可表示为TN(n+L,n),如TN(30,20),表示数据节点层中数据节点数目n=20、校验节点层中校验节点数目L=10。此时,本发明改进的Tornado码的
而码率r=2/3=66.7%。
比较本发明改进的Tornado码的码率、冗余率与现有技术中Tornado码的码率、冗余率可知,在具有相同的数据节点个数n和等比递缩因子
条件下,本发明改进的Tornado码的码率比原Tornado码的码率增加了1/6,提高的百分比是:33%、冗余率比原Tornado码的冗余率减小了,因此,本发明改进的Tornado码的传输效率提高了。现有技术的Tornado码引入的数据传输延迟时间至少是0.5秒,而改进的Tornado码引入的数据传输延迟在视频帧率达到正常水平即30fps时,最低可以为1/15=0.07秒,按照视频帧率为8fps计算,改进的Tornado码引入的数据传输延迟时间最长也不超过0.25s。
在确定本发明改进的Tornado码的数据节点个数n、校验节点个数L、数据节点大小后,需要确定由数据节点生成校验节点的预定算法和数据节点层与校验节点层的关联关系。数据节点层与校验节点层的关联关系即数据节点层中哪些数据节点参与了校验节点层中校验节点的生成。
本发明确定改进的Tornado码中数据节点层与校验节点层的关联关系的方法与现有技术中Tornado码的两层之间的关联关系相同,具体过程为:
数据节点层与校验节点层之间的关联关系在本质上是一种图的拓扑关系,这种关联关系可以用二部图(Bipartite Graph)来描述。在离散数学的分支“图论”(Graph Theory)中,二部图也叫做偶图,是一种特殊的图。这种图分成左右两个节点集合,或称左右两个顶点(vertex)集合,边(Edge)即左、右两节点之间的连接弧,边表示左、右节点之间的关联关系,存在于一对分属于左右节点集合的节点之间,且同一节点集合中任何两个节点之间没有边。
举例来说,数据节点层和校验节点层之间的关联关系为:如果数据节点i和校验节点j之间存在关联,即数据节点i参加了生成校验节点j的运算,那么在数据节点i和校验节点j之间存在一条边;反之亦然。如果按照充分必要条件的形式可将数据节点i与校验节点j之间的关联关系表述为:数据节点i参加了生成校验节点j的运算,当且仅当数据节点i和数据节点j之间存在一条边。
本发明改进的Tornado码中只存在1个二部图,即数据节点层与校验节点层之间的二部图,而现有技术的Tornado码中至少存在两个二部图。
因为关联关系本质上是一种多对多(Many-to-many)的关系,因此,对于上述例子中的数据节点i和校验节点j都可以有多个节点与其关联。也就是说,数据节点i可以参与校验节点层中多个校验节点的生成运算,而校验节点j可以由数据节点层中多个数据节点生成。
按照图论中的术语,和一个节点关联的边数叫做该节点的度数(degree),对于本发明改进的Tornado码中的二部图有两个度序列:左边度序列和右边度序列。左边度序列就是左节点即生成节点集合中各个节点的度数形成的序列,右度序列就是右节点即被生成节点集合中各个节点的度数形成的序列。
根据节点的左边度序列、右边度序列可以定义边的度,如对于边e,如果其左边的数据节点i的度为②,而右边的校验节点j的度为⑧,则可以说边e的左度为②,右度为⑧。
在本发明改进的Tornado码中,二部图中存在的边越多,即左右两个节点集合之间的关联关系越多,则数据传输保护能力越强,即数据传输保护能力与左右两个节点机会之间的关联关系相关,与具体的哪个数据节点与哪个校验节点关联无直接关系。更严格地说,左边度分布向量和右边度分布向量是决定改进的Tornado码数据传输保护能力的一个重要因素。
本发明在确定改进的Tornado码的数据节点大小、数据节点层的数据节点个数、校验节点层的校验节点个数后,设计数据节点层与校验节点层的二部图的左边度分布向量和右边度分布向量,并通过随机匹配的方式生成数据节点层与校验节点层的随机二部图,在该随机二部图中边和哪些节点关联是随机的,但是在宏观上,边度的分布符合由左边度分布向量和右边度分布向量给定的分布规律。
本发明改进的Tornado码的数据节点层与校验节点层之间的预定算法为异或算法XOR(eXclusive OR),或者也叫做模二加运算(addition modulo2)。XOR运算是一种位运算,改进的Tornado码的数据节点是等长的二进制位块(BitBlock),校验节点就是两个数据节点的位块对应位之间进行位XOR后形成的位块。如果两个长度分别为L的位块为:A=[a0,a1,a2,.....,aL],B=[b0,b1,b2,.....,bL],则A与B异或运算后的结果定义为:A/B=[a0/b0,a1/b1,a2/b2,....,aL/bL]。
采用XOR运算是因为XOR具有如下数学性质:对于任意二进制变量a,b有:(a/b)/b=a。同样,对于任意二进制位块变量A=[a0,a1,a2,.....,aL],B=[b0,b1,b2,.....,bL],有:(A/B)/B=A。如果A,B是数据节点,则(A/B)就是校验节点,这样,在数据节点传输过程中,当数据节点A丢失,而数据节点B和校验节点(A/B)被接收端正确接收,则接收端可以通过(A/B)/B=A来恢复丢失的数据节点A。
接收端根据公式(A/B)/B=A来恢复传输丢失的数据节点只是一个最简单、最基本的例子,根据公式(A/B)/B=A还可以构造一系列更加复杂的涉及多个丢失节点的恢复方程。比如数据节点A、B、C都丢失了,但是校验节点A/B、A/C、A/B/C都被接收端正确接收,则接收端可以根据公式(A/B)/(A/C)/(A/B/C)=A来恢复数据节点A。
总之,接收端在根据本发明改进的Tornado码的解码过程中恢复丢失的数据节点时,其恢复数据节点原则是:对于二部图,如果有一个右节点被正确接收,且与该右节点相关联的所有左节点中只有一个左节点丢失,那么,该丢失的左节点就可以通过这个右节点与所有未丢失的左节点相异或来恢复。
下面以本发明改进的Tornado码在H.264技术中的具体应用来说明本发明的基于纠删码的数据传输保护方法。
H.264视频压缩编码标准是ITU-T(国际电信联盟)联合ISO/IEC(国际标准化组织/国际电工委员会)MPEG(运动图像专家组)国际标准组织制定的,H.264已逐渐成为多媒体通信中的主流标准。
由于H.264使用多种高效编码算法,使得视频码流对信道误码非常敏感,以IP网络为例,IP网络尽管在承载层采用了很多的QoS策略,仍然会频繁出现网络带宽波动、丢包、包延迟等问题,在实际的视频通信中,IP网络丢包造成的图像质量退化是非常严重的,有时甚至是无法忍受的,严重时将导致解码端系统的崩溃。也就是说,H.264相对于其它视频压缩编码标准来说,因为其能力更强,效率更高,功能更丰富,使得其对于网络删除错误的承受能力也更低,即使单个原发性错误,也可能会造成恢复视频质量的急剧下降。
因此,在基于H.264的视频通信中,必须采用有效的抗丢包错误技术、并结合多种视频抗误码方法,来保证恢复图像的质量。
本发明为尽可能的与H.264等技术进行有效配合,采取了如下两项实用的配合措施:
措施一、在对H.264视频编码器压缩编码后输出的数据码流经过NAL(网络抽象层)进行打包后,将预定个数的连续的H.264NAL单元(NAL Unit,简称NALU)设置为一个大的位块,如附图3所示,再根据这个大的位块进行数据节点的分割、校验节点的产生等过程,然后进行网络传输。即本发明在分割数据节点时,是以H.264NAL单元为基础来实现的。
在实际的应用中,为保证这个大的位块的数据长度为数据节点大小的整数倍,本发明还可以在大位块的数据长度不为数据节点大小的整数倍时,填充该位块,如在该大位块的尾部填充若干个数的0,使该位块的数据长度为数据节点大小的整数倍。
H.264NAL相当于一个网络适配层,能够保证在其上的数据码流与具体的传输网络无关,通过H.264NAL适配后的H.264NAL单元可以适合很多具体的网络协议来进行打包传输。在同样存在与H.264NAL相似的网络适配层的其他技术中,如H.263等技术中,同样可以适用上述措施。
措施二、在确定本发明改进的Tornado码的校验节点层中校验节点数目时,还可以考虑H.264NAL单元中承载的信息,根据H.264NAL单元中承载的信息确定其是普通数据还是重要数据,对重要数据应采用冗余度高的改进的Tornado码,对普通数据则采用冗余度相对较低的改进的改进的Tornado码。H.264NAL单元的具体结构如附图4所示。
在图4中,H.264NAL单元由NAL头信息和NAL载荷组成的。NAL头信息包含了1比特的forbidden_zero_bit、2比特的Nal_ref_idc和5比特的Nal_unit_type,其中forbidden_zero_bit总为零;Nal_unit_type表示NALU的类型,目前在H.264技术中一共定义了12种类型;Nal_ref_idc的意义为:如果Nal_ref_idc的取值为零,则表示该H.264NAL单元中存放非参考图象的一个Slice或Slice数据分割,该H.264NAL单元不会影响其后续H.264NAL单元的解码;如果Nal_ref_idc的取值为非零,即取值为1,则表示该H.264NAL单元中存放一个序列/图像参数集或者是参考图像的一个Slice或Slice数据分割,该H.264NAL单元会严重影响其后续H.264NAL单元的解码。
因此,在使用本发明改进的Tornado码对H.264的码流进行数据传输保护时,首先可以根据H.264NAL单元中Nal_ref_idc的取值将视频数据分为两类:一类为重要图像数据,即Nal_ref_idc的取值为1的H.264NAL单元,另一类为普通图像数据,即Nal_ref_idc的取值为0的H.264NAL单元。然后,对重要图像数据使用冗余度较高即码率较低,保护能力强的改进的Tornado码进行数据传输保护,如使用TN(30,20)的改进的Tornado码;而对普通图像数据可以使用冗余度较小即码率较高,保护能力较弱的改进的Tornado码进行数据传输保护,如使用TN(24,20)的改进的Tornado码。
在其他技术中,同样可以根据数据承载的预定信息中的内容,来确定数据的类型,从而根据数据的类型确定其重要程度,然后,对不同重要程度的数据采用不同的改进Tornado码的冗余度,以实现非等重的数据传输保护方法。
通过这种非等重的数据传输保护算法,能够有效保证各类重要信息在高丢包环境下能够以较高概率得到正确恢复,从而能够尽可能地保证数据传输的正确性、视频图像质量等。
下面针对H.264中的一种数据类型,对本发明提供的基于纠删码的数据传输保护方法在H.264技术中的应用过程进行详细说明。
在步骤1、首先确定本发明改进的Tornado码TN(M+N,N),其中:N为数据节点个数,M为校验节点个数。然后,设计出数据节点和校验节点之间的随机二部图。
到步骤2,发送端连续收集S个H.264NALU,将这S个H.264NALU组成一个大位块,如果这个大位块的长度不为数据节点长度的整数倍,则需要将该这个大位块填充位数,使其为数据节点长度的整数倍,填充位数的方法如在大位块的末尾补上若干个连续的0等。然后,发送端将这个大位块分割成长度均为L1比特的N个小位块,作为N个数据节点。
到步骤3、根据步骤1设计的随机二部图对N个数据节点采用XOR运算生成M个校验节点。
到步骤4、将N个数据节点和M个校验节点按照具体的网络协议进行打包,并通过网络发送至接收端。
到步骤5、发送端判断所有的H.264NALU是否全部处理完毕,如果全部处理完毕,到步骤6;否则,到步骤2。
在步骤6、发送端的通信过程结束。
上述过程是对发送端进行描述的,对于接收端,在接收端接收到一批数据节点和校验节点后,首先应判断哪些数据节点是应该收到而实际上丢失了、并可恢复的数据节点,然后,对于上述丢失了的且可恢复的数据节点按照本发明改进的Tornado码的一般解码过程进行解码恢复。接收端重复上述接收并恢复过程,直到通信过程结束。
当本发明实际应用于H.264技术中时,应将视频码流根据数据类型分成多个子流,如根据NALU属性将视频码流分成两个子流,其中重要图像数据的NALU组成一个子流,普通图像数据的NALU组成一个子流,对于重要图像数据子流,采用冗余度较高、保护能力较强的纠删码利用上述步骤进行数据传输保护处理;对于普通图像数据子流,采用冗余度较低、保护能力较弱的纠删码利用上述步骤进行数据传输保护。从而,使各类重要数据在高丢包环境下能够被尽可能的恢复,使数据码流在纠删码的平均冗余率相同的情况下,能够得到最大程度的数据传输保护。
下面通过实验来表明在采用本发明改进的Tornado码对数据进行传输保护时,其在保护能力方面相对于现有技术中采用Tornado码对数据进行传输保护时的保护能力没有明显的下降。
实验一:在相同条件下,使用本发明改进的Tornado码与现有技术中的Tornado码对数据节点的恢复能力的比较。
设定本发明改进的Tornado码为TNnew(32,16),即具有16个数据节点、且总节点数为32的改进的Tornado码。设定现有技术中Tornado码为TNorg(32,16)、且中间校验层的层数m=3,数据节点层与校验节点层的节点数目的等比递缩因子
即具有16个数据节点、且总节点数为32的纠删码。由于因此,现有技术中的Tornado码需要分成5层,其中,1层是数据节点层,4层是校验节点层。
在丢失不同数据节点个数的情况下,使用本发明改进的Tornado码与现有技术中的Tornado码对数据节点的恢复概率如表1所示。
表1
丢失节点数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
TNnew | 100% | 100% | 99.9% | 99.47% | 98.38% | 96.17% | 92.53% | 86.67% |
TNorg | 100% | 100% | 100% | 99.9% | 99.3% | 97.7% | 94.1% | 87.5% |
丢失节点数 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
TNnew | 78.23% | 67.38% | 53.94% | 39.32% | 25.19% | 13.41% | 5.28% | 1.17% |
TNorg | 76.7% | 62.6% | 47.4% | 31.5% | 18.6% | 9.3% | 3.5% | 1.2% |
从表1中可以看出,在冗余开销相同的条件下,即在现有技术的Tornado码和本发明改进的Tornado码具有相同校验节点个数和相同数据节点个数的条件下,使用本发明改进的Tornado码和现有技术中的Tornado码在恢复丢失的数据节点时,两者的恢复概率相差很少,如在最恶劣的情况下,即同样丢失16个数据节点,现有技术中的Tornado码的恢复概率是1.2%,而本发明的改进的Tornado码的恢复概率是1.17%。
由此可见,本发明改进的Tornado码在数据传输保护能力方面,相对于现有技术没有明显的下降,而本发明改进的Tornado码由于减少了纠删码生成校验节点层的运算量、减少了数据传输延迟时间,使数据传输保护性能与代价比得到提高,使本发明的数据传输保护方法能够适用于H.264等新技术。
由于PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)是视频图像质量的重要度量指标,下面通过实验二对本发明在采用同一校验节点个数的改进的Tornado码对视频图像中的重要数据和非重要数据进行视频数据传输保护、采用两种具有不同校验节点个数的改进的Tornado码分别对视频图像中的重要数据和普通数据进行视频数据传输保护时的PSNR进行比较。
实验二:设定单一校验节点个数的改进的Tornado码为TN(28,20),两种具有不同校验节点个数的改进的Tornado码为TN1(30,20)和TN2(26,20)。
TN(28,20)的码率与TN1(30,20)和TN2(26,20)的平均码率相同,因此,采用这两种策略对视频数据传输进行保护,其在冗余开销方面是完全相同的。
针对Foreman图像序列进行测试时,PSNR的比较结果如表2所示。
表2
丢包率: | 0% | 2% | 4% | 6% | 8% | 10% | 12% | 14% | 16% |
PSNR1 | 36.26 | 36.26 | 35.67 | 33.40 | 26.89 | 23.47 | 21.33 | 21.07 | 20.80 |
PSNR2 | 36.26 | 36.26 | 34.48 | 35.18 | 34.23 | 33.12 | 27.02 | 24.35 | 22.56 |
其中:PSNR1与TN(28,20)对应,PSNR2与TN1(30,20)和TN2(26,20)对应。
针对Container图像序列进行测试时,PSNR的比较结果如表3所示。
表3
丢包率: | 0% | 2% | 4% | 6% | 8% | 10% | 12% | 14% | 16% |
PSNR1 | 35.77 | 35.77 | 35.77 | 35.06 | 34.81 | 33.25 | 32.90 | 29.70 | 28.66 |
PSNR2 | 35.77 | 35.77 | 35.19 | 35.77 | 35.52 | 34.92 | 34.20 | 33.86 | 33.01 |
其中:PSNR1与TN(28,20)对应,PSNR2与TN1(30,20)和TN2(26,20)对应。
从表2、表3中可明显看出,在通信网络具有相同丢包率的环境下,对H.264的重要数据和普通数据采用两种不同保护能力的纠删码进行视频数据传输保护时比只采用一种保护能力的纠删码进行视频数据传输保护时的PSNR明显提高,而在冗余开销方面却完全相同,使本发明在数据传输保护能力上具有很好的优势。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。
Claims (11)
1、一种基于纠删码的数据传输保护方法,其特征在于,包括如下步骤:
a、设置仅具有一层校验节点层的纠删码;
b、根据所述纠删码进行数据传输保护。
2、如权利要求1所述的一种基于纠删码的数据传输保护方法,其特征在于,所述步骤a具体包括如下步骤:
a1、确定所述纠删码的数据节点层中数据节点对应的数据包的大小、数据节点层中数据节点个数n、校验节点层中校验节点个数L;
a2、确定所述数据节点层与校验节点层之间的随机二部图及预定算法。
3、如权利要求2所述的一种基于纠删码的数据传输保护方法,其特征在于,所述步骤a1具体为:
根据数据传输速率、数据类型、数据保护能力要求、网络延迟需求确定所述纠删码的数据节点层中数据节点对应的数据包的大小、数据节点层中包含的数据节点个数n、校验节点层包含的校验节点个数L。
4、如权利要求2所述的一种基于纠删码的数据传输保护方法,其特征在于,所述步骤a2具体为:
确定二部图的左边度分布向量、右边度分布向量;
根据所述左边度分布向量、右边度分布向量通过随机匹配的方式生成所述数据节点层与校验节点层之间的随机二部图,并确定所述数据节点层与校验节点层之间根据所述随机二部图进行异或运算的关联关系。
5、如权利要求4所述的一种基于纠删码的数据传输保护方法,其特征在于,所述步骤b具体包括如下步骤:
b1、发送端根据所述纠删码数据节点层中数据节点对应的数据包的大小将数据码流分割成各数据节点;
b2、根据所述纠删码的预定算法、随机二部图为所述分割的n个数据节点仅生成一层具有L个校验节点的校验节点层;
b3、将所述n个数据节点和L个校验节点传输至接收端;
b4、所述接收端在确定传输丢失的数据节点能够被恢复时,根据其接收的校验节点、所述随机二部图、所述异或运算的关联关系恢复所述丢失的数据节点。
6、如权利要求5所述的一种基于纠删码的数据传输保护方法,其特征在于,所述数据码流包括:基于网络适配层封装的数据单元或基于网络抽象层封装的数据单元的数据码流;
且所述步骤b1具体为:
所述发送端将预定个数的基于网络适配层或基于网络抽象层封装的数据单元组成的位块根据所述纠删码的数据节点层中数据节点大小分割成各数据节点。
7、如权利要求6所述的一种基于纠删码的数据传输保护方法,其特征在于:
所述基于网络适配层封装的数据单元包括:基于H.263网络适配层封装的数据单元;
所述基于网络抽象层封装的数据单元包括:基于H.264网络抽象层封装的数据单元。
8、如权利要求6所述的一种基于纠删码的数据传输保护方法,其特征在于,所述步骤b1还包括:
在确定所述位块的大小不为所述纠删码的数据节点层中数据节点大小的整数倍时,填充所述位块的长度,使填充后的位块为所述纠删码的数据节点层中数据节点大小的整数倍。
9、如权利要求1至8所述的任一权利要求所述的一种基于纠删码的数据传输保护方法,其特征在于,所述步骤a还包括:
确定各数据类型与各数据传输保护等级的对应关系;
根据各数据传输保护等级设置多个均具有一层校验节点层、且具有不同的校验节点个数的纠删码。
10、如权利要求9所述的一种基于纠删码的数据传输保护方法,其特征在于,所述步骤b具体包括:
根据数据码流中各数据承载的预定信息确定各数据的数据类型;
根据所述各数据的数据类型、各数据类型与数据传输保护等级的对应关系确定所述数据码流中各数据对应的数据传输保护等级;
根据所述数据传输保护等级将数据码流分成对应的子流;
根据各子流对应的纠删码对各子流进行数据传输保护。
11、如权利要求10所述的一种基于纠删码的数据传输保护方法,其特征在于,所述预定信息具体包括:基于H.264网络抽象层的数据单元的非纹理信息和纹理信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100661467A CN100446452C (zh) | 2005-04-21 | 2005-04-21 | 一种基于纠删码的数据传输保护方法 |
PCT/CN2006/000389 WO2006111063A1 (fr) | 2005-04-21 | 2006-03-14 | Procede pour proteger la transmission de donnees en fonction de codes d'effacement |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100661467A CN100446452C (zh) | 2005-04-21 | 2005-04-21 | 一种基于纠删码的数据传输保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1855794A true CN1855794A (zh) | 2006-11-01 |
CN100446452C CN100446452C (zh) | 2008-12-24 |
Family
ID=37114704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100661467A Expired - Fee Related CN100446452C (zh) | 2005-04-21 | 2005-04-21 | 一种基于纠删码的数据传输保护方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN100446452C (zh) |
WO (1) | WO2006111063A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263606A (zh) * | 2010-05-28 | 2011-11-30 | 华为技术有限公司 | 信道数据编码、解码方法及装置 |
CN102843212A (zh) * | 2012-08-03 | 2012-12-26 | 中兴通讯股份有限公司 | 编解码处理方法及装置 |
CN104393960A (zh) * | 2014-12-09 | 2015-03-04 | 南京邮电大学 | 一种基于纠删码的卫星网络星地多路径可靠传输方法 |
CN110532126A (zh) * | 2019-07-26 | 2019-12-03 | 西安交通大学 | 纠删码存储系统数据快速恢复方法、装置及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9848209B2 (en) | 2008-04-02 | 2017-12-19 | Microsoft Technology Licensing, Llc | Adaptive error detection for MPEG-2 error concealment |
US9788018B2 (en) | 2008-06-30 | 2017-10-10 | Microsoft Technology Licensing, Llc | Error concealment techniques in video decoding |
US9924184B2 (en) | 2008-06-30 | 2018-03-20 | Microsoft Technology Licensing, Llc | Error detection, protection and recovery for video decoding |
US9131241B2 (en) | 2008-11-25 | 2015-09-08 | Microsoft Technology Licensing, Llc | Adjusting hardware acceleration for video playback based on error detection |
US8340510B2 (en) | 2009-07-17 | 2012-12-25 | Microsoft Corporation | Implementing channel start and file seek for decoder |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7581156B2 (en) * | 2002-12-16 | 2009-08-25 | Microsoft Corporation | Systems and methods for providing improved encoding and reconstruction of data |
-
2005
- 2005-04-21 CN CNB2005100661467A patent/CN100446452C/zh not_active Expired - Fee Related
-
2006
- 2006-03-14 WO PCT/CN2006/000389 patent/WO2006111063A1/zh active Application Filing
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263606A (zh) * | 2010-05-28 | 2011-11-30 | 华为技术有限公司 | 信道数据编码、解码方法及装置 |
CN102263606B (zh) * | 2010-05-28 | 2014-02-19 | 华为技术有限公司 | 信道数据编码、解码方法及装置 |
CN102843212A (zh) * | 2012-08-03 | 2012-12-26 | 中兴通讯股份有限公司 | 编解码处理方法及装置 |
WO2014019549A1 (zh) * | 2012-08-03 | 2014-02-06 | 中兴通讯股份有限公司 | 编解码处理方法及装置 |
CN102843212B (zh) * | 2012-08-03 | 2016-10-26 | 南京中兴新软件有限责任公司 | 编解码处理方法及装置 |
CN104393960A (zh) * | 2014-12-09 | 2015-03-04 | 南京邮电大学 | 一种基于纠删码的卫星网络星地多路径可靠传输方法 |
CN104393960B (zh) * | 2014-12-09 | 2017-08-11 | 南京邮电大学 | 一种基于纠删码的卫星网络星地多路径可靠传输方法 |
CN110532126A (zh) * | 2019-07-26 | 2019-12-03 | 西安交通大学 | 纠删码存储系统数据快速恢复方法、装置及存储介质 |
CN110532126B (zh) * | 2019-07-26 | 2020-10-27 | 西安交通大学 | 纠删码存储系统数据快速恢复方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100446452C (zh) | 2008-12-24 |
WO2006111063A1 (fr) | 2006-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1855794A (zh) | 一种基于纠删码的数据传输保护方法 | |
CN100338925C (zh) | 在数据流中插入纠错码和重建数据流的装置和方法 | |
CN1168217C (zh) | 变长编码数据发送装置 | |
US8037397B2 (en) | Method for recovering a lost data unit | |
CN1859580A (zh) | 支持错误弹性的多媒体数据网络实时传送方法 | |
CN107196746A (zh) | 实时通信中的抗丢包方法、装置和系统 | |
CN1856112A (zh) | 基于h.264的压缩视频传输误码消除方法 | |
CN1795679A (zh) | 对多媒体传输的辅助信息进行编码和解码的方法、装置和系统 | |
CN1531349A (zh) | Fgs/pfgs视频位流的包装化 | |
Alregib et al. | Error-resilient transmission of 3D models | |
CN101166273A (zh) | 实现视频数据传送的方法、装置及系统 | |
CN1893663A (zh) | 多媒体通信的传输保护方法 | |
CN111050291B (zh) | 一种基于系统在线喷泉码的高编码符号度值广播方法 | |
CN101060338A (zh) | 一种卷积码速率匹配的方法和装置 | |
CN1909436A (zh) | 一种实现纠错的方法及系统以及一种实现纠错的接入设备 | |
CN110740334A (zh) | 一种帧级别的应用层动态fec编码方法 | |
Baruffa et al. | Error protection and interleaving for wireless transmission of JPEG 2000 images and video | |
US20120134373A1 (en) | Method of packetizing encoded symbols and apparatus using the same | |
Lin et al. | Efficient optimal RCPC code rate allocation with packet discarding for pre-encoded compressed video | |
US20140101521A1 (en) | Method and apparatus for decoding received packets in broadcasting and communication system | |
CN100344163C (zh) | 视频编解码处理方法 | |
CN1848953A (zh) | 一种h263编码中码率的控制方法 | |
Cai et al. | Error-resilient unequal error protection of fine granularity scalable video bitstreams | |
Cheng et al. | Accelerated expanding-window FEC using RS-code for real-time video streaming | |
Liu et al. | A progressive transmission scheme for 3D models in VR/AR based on UEP-LT code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081224 Termination date: 20150421 |
|
EXPY | Termination of patent right or utility model |