专利名称:对丢失数据单元进行恢复的方法
技术领域:
本发明涉及多媒体通信技术领域,尤其涉及一种对丢失数据单元进行恢复的方法。
背景技术:
多媒体通信业务是下一代网络(NGN,Next Generation Network)主要需要发展的业务;其实现的技术途径为采用基于IP网络的分组交换技术在有线信道或无线信道上传输多媒体数据包。
多媒体通信业务通常选用IP网络作为多媒体数据传输的承载网络,但是IP网络作为承载网络具有服务质量(QoS,Quality Of Service)不能完全保证的缺陷。虽然目前已经设计有一些策略为IP网络的承载层来提供一定的服务质量QoS,但是对于为电信级网络提供服务还是远远不够的。因此对于以IP网络作为承载网络的多媒体通信业务,尤其是音视频通信这类实时性要求非常高的通信业务,为了保证多媒体数据的正确传输,就应该从网络承载层到应用层制定相应的服务质量QoS保证措施;其保证措施不仅要考虑无线信道的多径及衰落等相关问题,还要同时考虑多媒体分组数据在传输过程中的延迟、拥塞和丢包等问题。
多媒体数据被分组处理后的分组数据在IP网络上传输时,常常会由于传输信道的传输质量问题而引起分组数据包发生丢失,而丢包相应就会导致接收端接收的语音、图像恢复质量下降,从而会严重影响到多媒体通信的整体通信性能。所以在多媒体通信系统中,对丢包造成的错误进行抗御和纠正是提高多媒体通信质量非常重要的技术环节,而常用的纠正措施就是丢包重传机制和前向纠错(FEC,Forward Error Correction)机制
其中,丢包重传机制是指对于丢失的数据包,可以要求发送端进行重传,这样就可以有效地解决由于丢包所带来的通信质量损失问题,但是对于会话类应用,如电视会议等,发送端重传丢失的数据包所带来的通信延迟常常是无法忍受的,尤其是对于日益发展的IP组播(Multicast)业务的应用,其不可能为每一个用户都提供丢包重传机制以进行丢包重传;因此丢包重传机制一般只适用于实时性要求不高的多媒体通信业务。
前向纠错FEC机制一般适用于实时性要求较高的多媒体通信业务,对于基于IP网络传输的多媒体通信数据,其前向纠错机制常常采用纠删码(ErasureCodes)技术来对丢失数据包进行有效恢复,纠删码技术的工作原理是接收端根据已接收数据包之间的内在冗余性进行恢复丢失的数据包。目前,一般采用“里德-所罗门”码(RS,Reed-Solomon)作为常用的纠删码。其中RS码在码速率为1/2的情况下,可恢复33%丢失的数据包,但利用RS码进行丢失数据包的恢复,其计算复杂度却比较高,因而限制了大数据量业务对RS码的采用。
H.264标准是国际电信联盟(ITU,International Telecommunication Union)于2003年5月最终制定的面向IP网络的视频压缩编解码传输标准,其中提出了多种抗误码工具。而与H.264标准相配套的由因特网工程任务组(IETF,Internet Engineering Task Force)提出的RFC2733协议,即“通用FEC的RTP载荷格式”(An RTP Payload Format for Generic Forward Error Correction)协议规定了多媒体数据作为载荷单元封装在实时传输协议(RTP,Real-timeTransport Protocol)数据包内的格式,其RFC2733协议共规定了3种用于前向纠错FEC机制的RTP数据包打包方式,基于这3种RTP打包方式,其FEC算法是将RTP数据包按异或操作生成FEC校验包,其中生成的FEC校验包格式也遵循RTP数据包格式;然后发送端将RTP数据包和生成的FEC校验包分别传输到接收端;接收端再根据接收到的RTP数据包和FEC校验包恢复由于传输信道质量问题而丢失的数据包。
其中RFC2733协议规定的3种用于前向纠错FEC机制的RTP打包方式分别如下(1)第一种方案abc de _每个字母表示一个遵循RTP格式的多媒体数据包;f(a,b) f(b,c) f(c,d) f(d,e) _其中每个函数值表示一个FEC校验包;以上表示方式的意义是有一系列多媒体数据包a,b,c,d,e...等,为了生成相应的校验包,利用一个异或函数关系式f(),以a,b数据包分别作为输入参数,由函数f()异或运算输出f(a,b)值作为一个校验包,即f(a,b)=ab _数据包a的每个二进制位和数据包b相应的每个二进制位依次进行异或运算,得到校验包f(a,b);这样同理,依次类推分别得到校验包f(b,c)、f(c,d)和f(d,e);(2)第二种方案f(a,b) f(a,c) f(a,b,c) f(c,d) f(c,e) f(c,d,e) _每个函数值表示一个FEC校验包;每个校验包的生成过程同方案一;(3)第三种方案a b c d _每个字母表示一个遵循RTP格式的多媒体数据包;f(a,b,c) f(a,c,d) f(a,b,d) _每个函数值表示一个FEC校验包;每个校验包的生成过程也同方案一。
综上可见,RTP数据包和FEC校验包之间的关系可以用校验矩阵的数学模型来描述其中校验矩阵的元素为0或1,如果位于校验矩阵中第m行,第n列交叉处的元素为1,则表示第m个校验包和第n个数据包相关(即相关的数据包分别作为函数f()的参数参与了校验包的生成运算);而如果位于校验矩阵中第m行,第n列交叉处的元素为0,则表示第m个校验包和第n个数据包无关。
例如,方案三中RTP数据包与生成的FEC校验包之间的关系可由如下所示的校验矩阵来表示 其中,a,b,c,d分别是4个数据包;第一个校验包f1=f(a,b,c)=abc,因为数据包a、b、c所在的列和第一行交叉处的元素都为1;同理,第二个校验包f2=(a,c,d)=acd,第三个校验包f3=f(a,b,d)=abd,每个校验包都是由每个数据包分别按位异或运算来生成的。
同时在RFC2733协议中,RTP数据包以最长数据包长度为基准,其余数据包在自身末尾补“0”,以使所有参与异或运算的数据包等长;因此FEC校验包长度为生成该包的最长的数据包长度。
但是对于RFC2733协议提出的3种用于前向纠错FEC机制的RTP打包方式,分别具有如下特点方案一对于单个丢失的数据包,可以以100%的概率恢复;对于任意两个丢失的数据包,可以以94%的概率恢复;然而对于连续3个数据包丢失的情况,却无法恢复。这种打包方式的冗余度为44.4%,其中冗余度=校验包数目/(数据包数目+校验包数目)×100%。
方案二的特点是传输时不传输数据包,仅传输校验包,在接收端直接根据接收到的校验包来恢复原来的数据包。这种打包方式的冗余度为16.7%;然而,却只能对任意的单个数据包丢失以及某些连续数据包的丢失进行恢复,无法根据单个接收到的校验包来恢复数据包。
方案三在冗余度为42.9%的条件下,可以对任意单个数据包丢失,或连续两个数据包丢失以及某些3个数据包丢失进行恢复,其中对3个丢失数据包的完全恢复概率为80%,却无法实现以100%的概率来恢复连续丢失3个数据包的情况。
如当f(a,b,c),c和f(a,c,d)三个包同时丢失时,数据包c是无法恢复的;当f(a,c,d),f(a,b,d)和d三个包同时丢失时,数据包d是无法恢复的。
并且在校验包的计算生成过程中,所有数据包以最长数据包长度为基准,其余数据包在自身末尾补“0”,以使所有参与异或校验运算的数据包等长,且生成的校验包长度为生成该包的最长数据包长度,因此必定导致校验包所占比特开销较大,致使数据传输效率较低。
综上也可以看出,RFC2733协议的打包方式在对数据包丢失进行恢复的能力上仍然存在明显的不足,以使由于传输信道质量问题而引起的数据包丢失不能够有效地进行恢复,在一定程度上降低了多媒体通信的整体通信效果。
发明内容
本发明要解决的技术问题在于提出一种能够更好地对数据单元丢失进行恢复,以提高数据单元丢失抵抗能力的对丢失数据单元进行恢复的方法。
为解决上述问题,本发明提出了一种对丢失数据单元进行恢复的方法,用于对多媒体通信系统在传输过程中丢失的数据单元进行恢复,包括步骤(1)创建用于通过对数据单元进行计算生成校验单元的校验矩阵;(2)发送端将需要发送的视频序列的每帧图像数据分割成和所述校验矩阵的列数目相等的多个块,并分别将每个块封装成一个数据单元;(3)发送端根据每个数据单元承载图像数据的重要等级,对所述多个数据单元进行排序,使得各个数据单元的重要性顺序和由校验矩阵决定的各个数据单元的被恢复能力顺序一致;(4)发送端根据所述校验矩阵,对排序后的多个数据单元进行计算生成相应多个校验单元;(5)发送端将多个数据单元按排序次序依次发送到接收端,同时发送生成的每个校验单元到接收端;(6)接收端根据接收的数据单元和校验单元,以及创建的校验矩阵,对丢失的数据单元进行恢复。
其中所述步骤(1)创建的校验矩阵为(m-1)行、m列的矩阵,其中m为大于2的自然数。
所述步骤(1)创建校验矩阵的过程具体包括步骤(11)设置校验矩阵第一行的第二个元素为0,其余元素全部为1;(12)设置校验矩阵第一列元素全部为1;(13)设置校验矩阵第二列的第一个元素为0,其余元素全部为1;(14)设置校验矩阵中未填入元素的维数为(m-2)×(m-2)的右下方子矩阵的反对角线元素全部为1;(15)设置所述子矩阵其余元素全部为0。
较佳地,所述m等于5或等于4。
所述步骤(2)将视频序列的每帧图像数据分割成多个块的过程具体包括步骤(21)将每帧帧内编码帧图像数据分割成多个长度相等的块;(22)将每帧预测帧图像数据或反向预测帧图像数据分割成三个网络抽象层单元;(23)将三个分别用于标识每个网络抽象层单元长度信息的最前面两字节连缀,然后再在其后分别连缀每个网络抽象层单元剩余部分形成一个大数据块;(24)将所述连缀形成的大数据块作为整体分割成多个长度相等的块。
所述步骤(21)中每帧帧内编码帧图像数据长度或所述步骤(23)中每个大数据块的长度不能被要分割成的块的数目整除时,将余数k字节分别填入所述步骤(3)排序后的承载图像数据重要等级高的k个数据单元中,每个数据单元填入一个余数字节;其中k小于要分割成的块的数目。
所述步骤(3)中将承载图像数据重要等级最高的数据单元排在第一位。
所述步骤(4)中每个校验单元是根据所述校验矩阵的相应行元素值,在多个数据单元中选择相应的数据单元进行异或运算生成。
所述步骤(6)中接收端根据所述校验矩阵,选取接收的相应数据单元和校验单元进行异或运算恢复相应丢失的数据单元。
其中所述数据单元为IP数据包,或为电路交换数据帧。
本发明对丢失数据单元进行恢复的方法通过创建最优的校验矩阵,使根据m个数据单元可以计算生成(m-1)个校验单元,并根据不同数据单元在传输中丢失后被恢复的不同能力,来对承载图像数据不同部分的重要等级不同的数据单元按照被恢复能力顺序进行排序发送,这样可以使接收端能够更好地对丢失的数据单元进行恢复,提高了多媒体通信系统的数据单元丢失抵抗能力,得到了更好的多媒体通信质量和效果。
同时,本发明对丢失数据单元进行恢复的方法还提出对多媒体图像数据进行几乎等长的块分割处理,这样可以避免为使所有数据单元达到统一长度,而需要在某些数据单元后面补0而达到使所有数据单元和最长的数据单元等长,使根据不同数据单元计算出来的校验单元也和最长的数据单元等长,而导致校验单元所在传输信道比特开销较大,从而会影响整个系统的传输效率,因此这种方法从整体上提高了多媒体通信系统的传输效率。
图1是本发明对丢失数据单元进行恢复的方法的主要实现原理流程图;
图2是本发明对丢失数据单元进行恢复的方法中,对P帧或B帧进行数据分割处理的示意图;图3是本发明对丢失数据单元进行恢复的方法中采用4×3校验矩阵方式对丢失数据单元进行恢复的恢复概率示意图;图4是本发明对丢失数据单元进行恢复的方法中采用5×4校验矩阵方式对丢失数据单元进行恢复的恢复概率示意图。
具体实施例方式
下面首先说明本发明对丢失数据单元进行恢复的方法所涉及到的一些技术指标,如下假设数据单元在传输信道传输过程中,丢失为独立事件,假设数据单元的信道丢失率为Pc,且m个数据单元中丢失n个数据单元的组合有Cmn个,则m个数据单元中丢失n个数据单元的概率为p(m,n)=Cmnpcn·(1-pc)m-n]]>在所有n个数据单元丢失的组合中,含有包i的组合数为Cm-1n-1,因此丢失的n个数据单元中含有第i个数据单元的概率为pni={Cm-1n-1/Cmn|n=1,2,···m}]]>而第i个数据单元在同时丢失n个数据单元的情况下,无法被恢复的概率pi为pi=Σn=1mpni·p(m,n)·c(n,i)]]>=Σn=1mnm·Cmnpcn·(1-pc)m-n·c(n,i)]]>上式中,c(n,i)表示一个参数n,i的函数,该函数可由校验矩阵决定。
则最终丢失的数据单元无法被恢复的概率可以用Pd×c表示Pd×c=1mΣi=0m-1pi]]>
其中d表示数据单元个数,c表示计算生成的校验单元的个数,则传输的数据单元总体个数m=d+c。
同时,为了从总体上衡量不同校验矩阵对丢失数据单元的恢复效果,还可以进而使用概率Ptotal,n来表示可完全恢复的数据单元丢失组合的概率。
下面再结合各个附图及其表格对本发明对丢失数据单元进行恢复的方法的具体实施过程进行详细的阐述。
请参阅图1,该图是本发明对丢失数据单元进行恢复的方法的主要实现原理流程图;本发明对丢失数据单元进行恢复的方法主要用于对IP网络多媒体通信系统在传输过程中丢失的数据单元进行恢复,其主要实现过程具体如下步骤S10,视频图像数据的发送端和接收端分别创建用于通过对数据单元进行计算生成校验单元的校验矩阵;该创建的校验矩阵主要用于通过对各个数据单元进行计算产生相应的校验单元,其校验矩阵的结构和其中的元素值决定了各个校验单元是由不同的数据单元参与运算而生成的,因而各个数据单元在传输丢失后被恢复的能力也不同,即创建的校验矩阵的具体结构决定了每个数据单元在传输丢失后被恢复的能力。
其中本发明对丢失数据单元进行恢复的方法这里提出创建校验矩阵的结构为(m-1)行、m列的矩阵结构,其中这里所述的m为大于2的自然数,其校验矩阵的创建过程如下1)首先,设置校验矩阵H的第一行的第二个元素为0,其余元素全部设置为1;2)再次,设置校验矩阵H的第一列元素全部为1;3)继而设置校验矩阵H的第二列的第一个元素为0,其余元素全部设置为1;4)再设置校验矩阵H中未填入元素的维数为(m-2)×(m-2)的右下方子矩阵H*的反对角线元素全部为1;该子矩阵H*位于整个校验矩阵H的右下方,其左上顶点元素为校验矩阵H的第2行、第3列元素,其右下顶点元素为校验矩阵H的第m-1行、第m列元素。
5)最后设置该子矩阵H*的其余元素全部为0。
例如,以m等于7为例,对创建6×7(即6行、7列)校验矩阵的过程进行详细说明,如下所述①首先设置第一行元素为C1={1,0,1......,1,1};②再次设置第一列元素为D1={1,1,1......,1,1};③再次设置第二列元素为D2={0,1,1,......,1,1};④对于以元素所在点(2,3)为左上顶点,(6,7)为右下顶点的子矩阵H*,其维数为5×5,设置该子矩阵H*的反对角线元素全部为1;⑤最后设置该子矩阵H*的其余元素均为0;上述创建校验矩阵的过程如下 其中用该方式创建的校验矩阵,其任意列之间交换后得到的校验矩阵同样是最优的校验矩阵。
本发明所提出的校验矩阵创建方式及其结构经过多次实验测试得到m等于5时,即创建的5×4校验矩阵对于丢失数据单元进行恢复的效果是最好的;其次对于m等于4时,创建的4×3校验矩阵对于丢失数据单元进行恢复的效果也不错。
步骤S20,发送端将需要发送的视频序列的每帧图像数据分割成和步骤S10中创建的校验矩阵的列数目相等的多个块,并分别将每个块封装成一个数据单元;即创建的校验矩阵的列数目为5时,则发送端将需要发送的视频序列的每帧图像数据分割成5个块即可。
其中,发送端将需要发送的视频序列的每帧图像数据分割成m个块(其中m为大于2的自然数)即是将H.264视频图像数据进行数据分割(DataPartitioning)处理,其中可以按照图像数据的序列头信息、网络抽象层(NAL,Network Abstraction Layer)单元头信息、帧内编码信息、运动矢量、帧间编码信息等分为大小大约一致的m个块。
因为图像数据被分割处理后,同一视频图像帧的3个数据分割块通常具有不同的数据分割长度,通常最重要的数据分割块具有较小的数据长度,而包含有AC系数(AC系数AC=Alternating Current,表示像素经过DCT变换后的对应非零频率分量的系数)的数据块通常具有最长的数据长度。因此针对不同的信道编码方案,对每一帧的图像数据进行近似等长的块分割处理,并根据需要组成相应的数据单元,这样可以减少数据单元传输过程中的冗余比特,有利于信道编码及传输的效率。
其中将视频序列的每帧图像数据分割成长度大约一致的m个块的过程具体由下列步骤完成将每帧帧内编码帧(即I帧,Intra帧)图像数据按序分割成m个长度相等的块;因为对于I帧采用的是IDR编码模式,其承载的图像数据是整个序列码流中最重要的数据,也是整体数据单元恢复还原的基础,因此对于I帧编码数据,是将整帧图像数据码流按顺序分割成5个长度近似相等的部分,放到相应的数据单元中进行传输即可。
将每帧预测帧(即P帧)图像数据或反向预测帧(即B帧)图像数据依次分割成3个网络抽象层单元(NALU,Network Abstraction Layer Unit);然后将三个网络抽象层单元中每个最前面用于标识其长度信息的两字节单元连缀,再在其后分别连缀每个网络抽象层单元的剩余部分后形成一个大数据块;然后将这个形成的大数据块作为整体分割成m个长度相等的块。
对于每个I帧图像数据长度不能被m整除的情况,或者形成的每个大数据块长度不能被m整除的情况,要将整除m后的余数k字节(k<m)分别填入后续对每个数据单元根据其所承载的图像数据的重要等级进行排序后,排在重要性靠前的相应k个数据单元中,每个数据单元填入一个余数字节。
请参阅图2,该图是本发明对丢失数据单元进行恢复的方法中,对P帧或B帧进行数据分割处理的示意图;因为对于P帧图像数据和B帧图像数据,按照标准每一帧图像数据进行相应的数据分割处理后,分别会生成3个NALU,这里按照每个NALU优先级的高低,将3个NALU顺序放置到m个长度一致的块中,从而实现将每个P帧图像数据或每个B帧图像数据分割成长度一致的块的目的。如图2所示,该图是以将每个P帧图像数据或B帧图像数据分别分割成5个长度大约一致的块的示意图;5个块Packet1......Packet5按照不同优先级由高到低依次排列,每个块的长度是当前帧图像数据量整除5的商值;如果存在余数,则从优先级最高的块开始,依次增加块的长度,如余数为3Bit,则Packet1、Packet2和Packet2要分别增加1Bit的长度。图2中以将P帧分割成3个NALU为例进行说明,其中P帧被分割成的3个NALU分别为DPA、DPB和DPC,其中DPA的长度用Len1表示,DPB的长度用Len2表示,DPC的长度用Len3表示;则用于标识三个数据分割部分长度信息Len1~3的单元,共计6个字节位于块Packet1中;P帧中的DPA部分、DPB部分和DPC部分分别分割放置在Packet1......Packet5的其余部分,从而实现将P帧图像数据分割成5个长度大约一致的块的目的。
并本发明这里所提及的数据单元只是一种一般形式的描述,其不但包括IP数据包,还包括电路交换数据帧,以及包括其它任何具有一定长度和结构的数据单位。
步骤S30,发送端根据每个数据单元承载图像数据的重要等级,对所述多个数据单元进行排序,使得各个数据单元的重要性顺序和由校验矩阵决定的各个数据单元的被恢复能力顺序一致;因为压缩编码视频图像数据每个部分的重要性是不同的,因此为了最为有效地在网络传输过程中保护数据,需要给重要性高的数据赋予更强的抗丢失保护能力;这样发送端可以根据每个数据单元承载图像数据的重要等级,对多个数据单元进行排序,其排序结果应该使得各个数据单元的重要性顺序和由校验矩阵决定的各个数据单元丢失后所被恢复的能力顺序相一致。
本发明上述所提出的校验矩阵结构经过多次实验测试得到m等于5时,即构造的5×4校验矩阵对于丢失数据单元进行恢复的效果是最好的,而对于采用5×4校验矩阵的5个数据单元而言,恢复能力最强的数据单元是第一个(同时丢失4个数据单元的情况),因此最重要的图像数据应当放入第一个数据单元(即0号数据单元),由此应将承载图像数据重要等级最高的数据单元排在第一位;而对于m为4时的情况,即采用4×3校验矩阵的4个数据单元中,第一个数据单元的被恢复能力也是最强的,因此也应当放入重要程度最高的数据信息,其余3个数据单元依次放置重要性较低的图像数据,由此在这种情况下,也应将承载图像数据重要等级最高的数据单元排在第一位。其实对于任何m>2的情况,承载图像数据重要等级最高的数据单元都应该放置在第一位。
步骤S40,发送端根据步骤S10中所创建的校验矩阵,对排序后的多个数据单元进行计算生成相应多个校验单元;其每个校验单元的生成主要是根据所述校验矩阵的相应行元素值,在多个数据单元中选择相应的数据单元进行异或运算生成;如根据(m-1)×m校验矩阵对m个数据单元进行计算校验单元的例子,其生成第k(k<=m-1)个校验单元的方法是如果校验矩阵第k行,第j(1<=j<=m)元素为1,则第j个数据单元参加异或运算;而如果该点元素为0,则第j个数据单元就不参加异或运算。
例如,按照上面校验矩阵的创建方法,假设这里有5个数据单元分别为a、b、c、d和e,则对该5个数据单元创建的5×4校验矩阵如下
则根据上述5×4校验矩阵,对该5个数据单元进行相应的异或运算,可以得到相应的4个校验单元,分别运算如下第一个校验单元根据校验矩阵的第一行元素,选择相应的数据单元进行异或运算,为f1=f(a,c,d,e)=acde;第二个校验单元根据校验矩阵的第二行元素,选择相应的数据单元进行异或运算,为f2=f(a,b,e)=abe;第三个校验单元根据校验矩阵的第三行元素,选择相应的数据单元进行异或运算,为f3=f(a,b,d)=abd;第四个校验单元根据校验矩阵的第四行元素,选择相应的数据单元进行异或运算,为f4=f(a,b,c)=abc;由此可见,对于5个数据单元a、b、c、d和e而言,根据校验矩阵可以生成4个相应的校验单元f1、f2、f3和f4。
步骤S50,发送端将多个数据单元按步骤S30的排序次序依次通过IP网络传输系统发送到接收端,同时发送步骤S40中生成的每个校验单元到接收端;步骤S60,接收端根据接收到的数据单元和校验单元,以及步骤S10中创建的校验矩阵,对丢失的数据单元进行恢复即可。相应地,接收端是根据校验矩阵,选取相应的数据单元和校验单元进行异或运算对传输丢失的相应数据单元进行恢复。一个例子如下比如在采用5×4校验矩阵的情况下,第一个校验单元f1=f(a,c,d,e)=acde;第二个校验单元f2=f(a,b,e)=abe;第三个校验单元f3=f(a,b,d)=abd;
第四个校验单元f4=f(a,b,c)=abc;如果第2个数据单元b在传输过程中丢失,而四个校验单元f1、f2、f3和f4都正常接收到,那么因为f1f2f3f4=acde abe abd abc=b即接收端将f1,f2,f3,f4这4个校验单元按照逐位异或运算,即可恢复传输丢失的数据单元b。
请同时参阅图3和图4,是本发明对丢失数据单元进行恢复的方法中分别采用4×3校验矩阵方式和5×4校验矩阵方式对丢失数据单元进行恢复的恢复概率示意图;图中可见,由于4×3校验矩阵中和5×4校验矩阵中各元素的位置、生成校验单元所需的数据单元个数不同,所以每个数据单元被恢复的概率也不相同。无论是采用4×3校验矩阵方式(即每4个数据单元生成3个校验单元),还是采用5×4校验矩阵方式(即每5个数据单元生成4个校验单元)都具有这一特征,由图3和图4可见,其中在5×4校验矩阵方案中,数据单元5(图4中即节点5)被恢复的概率最为显著。
下面针对本发明对丢失数据单元进行恢复的方法中,分别就采用4×3校验矩阵方式和采用5×4校验矩阵方式所产生的不同效果进行说明。其中4×3方式和5×4方式的码率(码率=1-冗余度)和冗余度的对比见下表
可见5×4方式相对4×3方式而言,码率下降了,冗余度增加了;此表表明了校验矩阵的结构对数据单元的抗丢失保护强度越大,需要的冗余度越高,相应的码率也就越低,因此在选择不同的校验矩阵结构以对数据单元进行不同强度的保护时,就需要权衡码率和冗余度之间的平衡。
接下来,再对4×3方式和5×4方式分别对丢失不同数据单元进行恢复的情况进行对比说明,如下表
可见,对于4×3方式,可以对丢失的任意一个数据单元以100%概率进行恢复;对于丢失的任意两个数据单元也以100%概率进行恢复;对连续丢失的3个数据单元也可以以80%的概率进行恢复。
对于5×4方式,可以对丢失的任意一个数据单元以100%概率进行恢复;对于丢失的任意两个数据单元也以100%概率进行恢复;对连续丢失的3个数据单元也可以以95.24%的概率进行恢复;更进一步,对于连续丢失的4个数据单元也可以以69.05%的概率进行恢复,所以可见5×4方式的校验矩阵是本发明对丢失数据单元进行恢复的方法的最佳实施方式。
最后,再分别对4×3方式和5×4方式的纠删能力(即不能恢复数据单元的能力)进行对比说明,如下表
上表的意义是在不同网络丢包率下,Pd×c所对应的纠删能力数值,比如在网络丢包率为5%时,P4×3的纠删能力就为3.99×10-4。
综上可见,本发明对丢失数据单元进行恢复的方法相对于现有技术而言,以冗余度只增加1.5%的代价,可以在丢失3个非连续数据单元的情况下以100%的概率进行恢复丢失数据单元,而对同时丢失3个连续数据单元的情况,也可以95.24%的概率进行恢复。在数据单元高丢失率的环境下(以30%的数据单元丢失为例)也可以有20%的恢复性能提升机会。对同时丢失4个非连续数据单元的情况,本发明也有69%的恢复能力。
同时本发明对丢失数据单元进行恢复的方法提出在发送数据单元之前,根据数据单元所承载图像数据的不同重要等级,将数据单元之间进行排序,虽然总体上保护各数据单元的冗余是一样的,但可以使某些重要的图像数据得到更好的保护。
同时本发明对丢失数据单元进行恢复的方法还提出对每帧图像数据进行长度大约一致的分割处理,这样经过对每帧图像数据进行等长分割处理后,校验单元的冗余信息减少到了最小,因此可以最大限度地提高IP网络传输系统的传输效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种对丢失数据单元进行恢复的方法,用于对多媒体通信系统在传输过程中丢失的数据单元进行恢复,其特征在于,包括步骤(1)创建用于通过对数据单元进行计算生成校验单元的校验矩阵;(2)发送端将需要发送的视频序列的每帧图像数据分割成和所述校验矩阵的列数目相等的多个块,并分别将每个块封装成一个数据单元;(3)发送端根据每个数据单元承载图像数据的重要等级,对所述多个数据单元进行排序,使得各个数据单元的重要性顺序和由校验矩阵决定的各个数据单元的被恢复能力顺序一致;(4)发送端根据所述校验矩阵,对排序后的多个数据单元进行计算生成相应多个校验单元;(5)发送端将多个数据单元按排序次序依次发送到接收端,同时发送生成的每个校验单元到接收端;(6)接收端根据接收的数据单元和校验单元,以及创建的校验矩阵,对丢失的数据单元进行恢复。
2.根据权利要求1所述的对丢失数据单元进行恢复的方法,其特征在于,所述步骤(1)创建的校验矩阵为(m-1)行、m列的矩阵,其中m为大于2的自然数。
3.根据权利要求2所述的对丢失数据单元进行恢复的方法,其特征在于,所述步骤(1)创建校验矩阵的过程具体包括步骤(11)设置校验矩阵第一行的第二个元素为0,其余元素全部为1;(12)设置校验矩阵第一列元素全部为1;(13)设置校验矩阵第二列的第一个元素为0,其余元素全部为1;(14)设置校验矩阵中未填入元素的维数为(m-2)×(m-2)的右下方子矩阵的反对角线元素全部为1;(15)设置所述子矩阵其余元素全部为0。
4.根据权利要求2或3所述的对丢失数据单元进行恢复的方法,其特征在于,所述m等于5或等于4。
5.根据权利要求1所述的对丢失数据单元进行恢复的方法,其特征在于,所述步骤(2)将视频序列的每帧图像数据分割成多个块的过程具体包括步骤(21)将每帧帧内编码帧图像数据分割成多个长度相等的块;(22)将每帧预测帧图像数据或反向预测帧图像数据分割成三个网络抽象层单元;(23)将三个分别用于标识每个网络抽象层单元长度信息的最前面两字节连缀,然后再在其后分别连缀每个网络抽象层单元剩余部分形成一个大数据块;(24)将所述连缀形成的大数据块作为整体分割成多个长度相等的块。
6.根据权利要求5所述的对丢失数据单元进行恢复的方法,其特征在于,所述步骤(21)中每帧帧内编码帧图像数据长度或所述步骤(23)中每个大数据块的长度不能被要分割成的块的数目整除时,将余数k字节分别填入所述步骤(3)排序后的承载图像数据重要等级高的k个数据单元中,每个数据单元填入一个余数字节;其中k小于要分割成的块的数目。
7.根据权利要求1所述的对丢失数据单元进行恢复的方法,其特征在于,所述步骤(3)中将承载图像数据重要等级最高的数据单元排在第一位。
8.根据权利要求1所述的对丢失数据单元进行恢复的方法,其特征在于,所述步骤(4)中每个校验单元是根据所述校验矩阵的相应行元素值,在多个数据单元中选择相应的数据单元进行异或运算生成。
9.根据权利要求8所述的对丢失数据单元进行恢复的方法,其特征在于,所述步骤(6)中接收端根据所述校验矩阵,选取接收的相应数据单元和校验单元进行异或运算恢复相应丢失的数据单元。
10.根据权利要求1、6、7、8或9所述的对丢失数据单元进行恢复的方法,其特征在于,所述数据单元为IP数据包,或为电路交换数据帧。
11.根据权利要求1所述的对丢失数据单元进行恢复的方法,其特征在于,所述多媒体通信系统为基于IP网络的多媒体通信系统,所述步骤(5)中发送端将数据单元和校验单元通过IP网络发送到接收端。
全文摘要
本发明公开了一种对丢失数据单元进行恢复的方法,包括创建用于生成校验单元的校验矩阵;将需要发送的视频序列的每帧图像数据分割成和校验矩阵的列数目相等的多个块,并将每个块封装成一个数据单元;并根据每个数据单元承载图像数据的重要等级,对多个数据单元进行排序,使得各个数据单元的重要性顺序和由校验矩阵决定的各个数据单元的被恢复能力顺序一致;并根据校验矩阵,对排序后的多个数据单元进行计算生成相应多个校验单元;及将多个数据单元按排序次序依次发送到接收端,并发送生成的每个校验单元到接收端;接收端根据接收的数据单元和校验单元及校验矩阵对丢失数据单元进行恢复。本发明可以提高数据单元丢失抵抗能力。
文档编号H04L1/24GK1741435SQ20041005712
公开日2006年3月1日 申请日期2004年8月24日 优先权日2004年8月24日
发明者罗忠, 王静, 艾达, 贾杰, 常义林 申请人:华为技术有限公司