基于H.264视频通信的交织保护算法.doc_第1页
基于H.264视频通信的交织保护算法.doc_第2页
基于H.264视频通信的交织保护算法.doc_第3页
基于H.264视频通信的交织保护算法.doc_第4页
基于H.264视频通信的交织保护算法.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

75通信学报第28卷第28卷第6期通信学报Vol.28 No.62007年6月Journal on CommunicationsJune 2007基于H.264视频通信的交织保护算法宋彬,郭春芳,秦浩(西安电子科技大学 ISN国家重点实验室,陕西 西安710071)摘 要:根据H.264中NALU(网络适配层单元)结构和实时视频通信的特点,提出了一种在分组网络上传输H.264码流的交织保护算法。该算法结合前向纠删保护,可以对具有不同重要程度的H.264视频数据进行不等保护。另外,基于该算法提出了一种新的支持交织保护的RTP载荷结构和封装方法。实验结果表明,在5%的丢包环境下,与使用简单误码掩盖算法相比,恢复图像PSNR可以提高8dB以上,且信道传输速率基本没有变化,可以提高H.264视频通信的QoS。关键词:视频通信;H.264;交织保护;前向纠错;实时传输协议中图分类号:TN919.8文献标识码:B文章编号:1000-436X(2007)06-0074-06Method of data interleaving for H.264 video communicationSONG Bin, GUO Chun-fang, QIN Hao(National Key Lab. on Integrate Services Network, Xidian University, Xian 710071,China)Abstract: According to the NALU of H.264 and the characteristic of real-time video communication, a method of data interleaving for H.264 video communication was presented. Using forward erasure correction, this method could provide the unequal protection mechanism to the H.264 video stream. The more important the H.264 video stream, the stronger protection it could provide. Furthermore, a novel format of RTP payload and encapsulation was also proposed. Simulation results show that the quality of the reconstructed video can be greatly increased with similar bit rates by using the presented method.Key words: video communication; H.264; interleaving; forward error correction; RTP第6期宋彬等: 基于H.264视频通信的交织保护算法771 引言收稿日期:2006-11-03;修回日期:2007-04-10基金项目:陕西省自然科学基础研究计划资助项目(2004F07)随着第三代移动通信系统的出现和IP网络的迅速发展,视频通信已经成为通信的主要业务之一。继制定了H.261、H.263、H.263+等视频压缩标准后,ITU-T和ISO/IEC联合制定了新的视频压缩编码标准H.2641。与其他视频编码标准相比,H.264标准能更加有效地提高视频编码效率,它可广泛应用于数字电视、无线视频通信、IP视频会议及其他多媒体业务。然而,视频数据在网络上传送必然会受到分组丢失的影响,由于H.264编码算法使用运动估值和运动补偿技术,一旦有分组丢失,不仅会影响到当前解码图像,而且会影响到后续解码图像,即误码扩散。目前,一些抗分组丢失算法已经被应用到视频通信中,如基于分组的纠删码保护算法等2,3。但这些算法只能有效防止随机分组丢失,而对突发丢包其保护能力下降非常明显。基于H.264视频通信的特点,本文提出了一种交织保护算法,首先给出视频数据的交织方法。其次给出支持该交织算法的RTP载荷结构,然后根据H.264码流数据的不同重要性提出一种新的RTP(实时传输协议)载荷封装方式。在高丢包率环境下,使用该算法可以保证H.264视频通信的QoS(服Foundation Item: The Natural Science Basic Research Plan in Shanxi Province of China(2004F07)务质量)。2 H.264视频通信的关键技术2.1 NALU结构H.264中的NAL1(网络适配层)是为了提供“网络友好性”而设计的,它有利于H.264中VCL1(视频编码层)数据到传输层的适配。NAL由NALU(NAL单元)头和NALU载荷两部分组成,具体结构如图1所示。H.264中NALU的重要程度不同,参考帧标识的取值越大,表示当前NALU越重要,例如:参考帧标识取0表示NALU中存放非参考图像的一个Slice(如P-Slice,B-Slice);而参考帧标识取非0表明NALU中存放一个序列参数集(SPS)/图像参数集(PPS)或者参考图像的一个Slice(如I-Slice),会严重影响后续解码。因此,在对H.264码流进行基于数据节点的纠删码保护和交织处理时,可以根据参考帧标识的取值将H.264的数据分为两类:一类为相对重要的图像数据;另一类为非重要的图像数据。2.2 RTP协议RTP4协议提供端到端的实时数据传输,运用于单播或多播网络上,RTP典型的运行于UDP之上,利用UDP的多路复用和校验服务,并支持多地址传输。RTP使用基本选项时头结构占12字节,RTP协议本身并没有任何机制来保证及时分发和提供QoS。RTP分组结构由头字段和载荷两部分组成。其中头字段包括:版本号、填充标识、扩展标识位、载荷类型,以及序列号、时间戳等信息。载荷中存放有效数据信息,如视频码流等。在基于H.264的视频通信中,将NALU数据作为RTP载荷,封装成RTP分组在网络上传输5。2.3 纠删码保护视频数据分组RTP协议本身并没有任何机制来提供丢包保护,因此为了保证视频通信质量,可以使用基于分组的纠删码保护视频数据,即通过使用降低传输效率,增加冗余的办法,达到提高视频通信质量的目的6。在H.264视频通信中,可以利用H.264中NALU的特点,对相对重要的数据信息和非重要的数据信息进行不等保护6。对相对重要的数据信息可以使用冗余度大保护能力强的纠删码保护,而对非重要的数据信息使用冗余度小保护能力弱的纠删码保护。在H.264视频通信中,NALU的排列是很有规律的,如图2所示,重要信息和非重要信息的交叉排列对使用FEC不等保护算法非常有利。图1 NALU结构示意图2 NALU排列结构示意3 基于H.264的交织保护算法3.1 数据交织保护的基本思想在实际视频通信系统中常常存在突发性错误,而纠正突发错误可以采用数据交织的方法。目前,交织的方法很多,如行存列取的交织方法、列存行取的交织方法和行存对角线取的交织方法等。对视频数据采用交织保护的基本思想是:将i个能纠t个错的分组排列成i行n列的方阵。交织前如果遇到连续j个分组的突发错误,且jt,对其中的连续2个码组而言,错误数已远远大于纠错能力t,因而无法正确对出错码组进行纠错。交织后,总的分组数不变,当错误图样落在分组码的纠错能力范围内时,可以正确纠正错误。这样在相同冗余度下,纠删码保护视频码流的能力得到提高。通常把码组数i称为交织深度,理论上交织深度i越大,抗分组丢失的能力就越强,但是要求接收端的缓存区就越大,而且延时也相应加大。因此,实际应用中、特别是实时视频通信中要根据实际要求设置合适的i值。3.2 交织保护算法本文使用纠删码对NALU保护生成数据节点和校验节点,将这些节点封装到RTP分组进行网络传输。首先将一帧图像划分为一个Slice,由于参数集、I帧等重要信息要求时延小,因此对这部分内容仅使用强FEC保护而不使用交织,而对P帧/B帧等数据信息进行一般FEC保护且使用交织算法。对视频码流中非重要信息进行FEC保护和交织处理时,不是以NALU为单位,是将两组重要数据信息(SPS、PPS或I帧)之间的多个P帧/B帧的数据看成一个整体来处理。在同一个交织组中,列号相同的一组FEC节点被封装到一个RTP载荷中。设U1是最大交织深度,U2是最小交织深度,每个FEC节点的字节数D,由于RTP分组的大小不能超过网络MTU(最大传输单元)的大小V,即HRTPU1DV(HRTP是RTP头字段大小),所以交织深度U1和FEC节点大小D成反比。另外,为了保证数据传输效率,每个RTP载荷的字节数不能太少,所以对最小交织深度U2有一定限制。U1、U2、D的取值,应该根据具体的FEC算法、网络状况以及具体的应用来设定。每K个数据节点经FEC保护后生成N=K+M个FEC节点(其中K个数据节点,M个校验节点),则一个交织组包含的最大数据字节数为Bmax=U1KD,最小数据字节数为Bmin=U2KD。假设连续非重要数据信息的总字节数为G,这些数据被分为B=G/Bmax(表示取整运算)个数据块。当G不能被Bmax整除时,除最后一个数据块外,前B-1个数据块的大小为Bmax,即有B-1个交织深度为U1的交织组。对于最后一个数据块,如果它所包含的字节数为iKD+(是小于KD的数),且U2iU1,则把前iKD个字节分成一个交织深度为i的交织组,而剩余的个字节不使用任何保护算法,直接打包发送;否则,最后一个模块不使用任何保护算法,直接打包发送。由于一组连续非重要数据信息末端的少量数据,其重要程度相对较低,对恢复视频的平均质量影响较小,因此可以直接打包发送。具体交织算法如下(如图3所示)。1)以帧为单位缓存待处理的连续P帧/B帧的数据信息,计算它们的总字节数W。当WBmax或者下面将要接收的内容是重要数据信息时,跳到2),否则,继续接收并缓存信息。2)当W/(DK)U1时,跳到3),否则,跳到4)。3)取交织深度为U1,对缓存中待处理的前Bmax个字节进行FEC保护、交织处理和RTP封装,并发送。计算缓存中剩余字节数W,跳到1)。4)当W/(DK)U2时,跳到5),否则,跳到6)。5)取交织深度i=W/(DK)-1,对缓存中待处理的iKD个字节进行FEC保护、交织处理和RTP封装,并发送。计算缓存中剩余字节数W,跳到4)。6)不使用交织算法,也不进行FEC保护,直接进行RTP封装并发送。7)结束。由此可得交织深度i的取值如下其他K(1)3.3 具有交织保护能力的RTP载荷结构本文提出一种适于H.264视频通信的具有交织保护能力的RTP载荷结构,与现有的RTP载荷结构5相比,具有交织保护能力的RTP载荷结构支持多种FEC保护措施,同时为了防止突发丢包而采用了交织算法。新的RTP载荷结构如图4所示。1)R(3bit):表明所采用的交织类型,如:0x1表示使用行存列取的交织算法,0x2表示使用行存对角线取的交织算法,等等。该域与交织算法之间的一一对应关系,通信双方可以通过其他协议协商确定。2)C(1bit):取值为1,表明RTP载荷使用了交织算法;否则取值为0。3)FEC编码类型(4bit):可以表示16种不同的FEC类型,如:0x1表示使用RS码保护RTP载荷数据,0x2表示使用Tornado码保护RTP载荷数据等。4)FEC编码子类型(6bit):该域主要表示在FEC类型中定义的各类型,下面进一步细分的子类型,子类型的信息包括FEC编码的生成规则和保护强度,如:当FEC编码类型域取0x2时,该域取0x1表示使用Tornado(20,15)码(15个数据包,5个校验包,冗余度为25%)保护RTP载荷数据6。第6期宋彬等: 基于H.264视频通信的交织保护算法109图3 交织保护算法流程图图4 RTP载荷结构5)索引号(10bit):当C比特域取值为1时,该域标识RTP载荷在一个交织组中的列号;当C比特域取值为0时,一个FEC节点封装到一个RTP载荷中(详见第3.4节),该域标识了RTP载荷在一个FEC单元中的序号。本数据段用于FEC解码。6)FEC节点大小(8bit):在一个FEC单元中每个FEC节点的大小都是相等的,该字段标识一个FEC节点的大小。3.4 RTP封装经过FEC保护和交织处理后,生成的数据节点和校验节点被封装到RTP载荷中在网络上传输。对于重要程度不同的NALU采用不同的FEC保护等级和不同的交织算法,所以它们的RTP封装方式也是不同的。1)存放重要数据信息的NALU。这类NALU要使用冗余度大,抗丢包能力强的纠删码保护。因此,与P帧/B帧相比,同样大小的K个数据节点,经过纠删码保护后,将生成更多的校验节点。由于这些FEC节点不使用交织保护,为了防止解码端FEC不可解,要求一个FEC节点装入一个RTP载荷(如图5所示)。一组连续的SPS、PPS和I帧等重要数据信息,假定总字节数为G,一个FEC节点的字节数为D,当G不能被D整除时,在G个字节后面进行比特填充。图5 重要数据信息的RTP封装第6期宋彬等: 基于H.264视频通信的交织保护算法792)存放非重要数据信息的NALU。当交织深度为i(U2iU1)时,一个交织组中FEC节点的总数为n=iN,每个FEC节点按照下面的方式装入RTP载荷(如图6所示)。一个交织组中的第一个RTP分组:索引号=0;FEC节点0,FEC节点N,FEC节点2N,FEC节点3NFEC节点(i-1)N。一个交织组中的第二个RTP分组:索引号=1;FEC节点1,FEC节点N+1,FEC节点2N+1,FEC节点3N+1FEC节点(i-1)N+1。一个交织组中的第N个RTP分组:索引号=N-1;FEC节点N-1,FEC节点2N-1,FEC节点3N-1,FEC节点4N-1FEC节点iN-1。对于未使用FEC算法和交织算法的那部分数据,可以直接进行RTP封装。图6非重要数据信息的RTP封装3.5 检测丢包在接收端,综合利用RTP分组头字段中的序列号域、FEC类型域、FEC子类型域和索引号域中的数据内容,可以准确地检测出丢包位置和丢包个数。具体算法如下:对于重要的数据信息,通过FEC类型域和FEC子类型域可知需要一次接收的RTP分组个数,即一个FEC单元中包含的所有FEC节点。由于在视频通信中,第一个RTP分组的序列号是随机选取的,因此,序列号必须和索引号结合在一起使用,才能准确计算FEC节点的丢失个数和丢失位置。对于非重要数据信息,通过FEC类型域和FEC子类型域可知需要一次接收的RTP分组个数,即一个交织组的列数,然后利用分组序列号和索引号计算该交织组中的丢包个数和丢包位置。如果在2种重要程度不同的数据信息的交界处有丢包,可以通过RTP分组头字段中的序列号域和索引号域准确判断丢包属于重要的数据信息,还是属于非重要的数据信息。接下来进一步计算丢包个数和丢包位置。检测到丢包后,接收端使用与发送端相同的FEC和交织保护算法,恢复丢失的数据包。如果丢包个数超出FEC的保护能力,接收端把能够正确恢复的数据包以及丢包个数、丢包位置等信息交给应用层处理,应用层可以使用误码掩盖、防误码扩散等技术6,来降低丢包对恢复视频质量的影响。4 实验结果本文使用标准图像序列“hall monitor”和“foreman”各3000帧(重复20次)进行实验研究,它们是CIF格式(352288),Y:U:V是4:2:0。实验中设定信道速率为384kbit/s,目标帧频为30frame/s,用亮度信号的平均PSNR作为衡量恢复图像客观质量的测度,并使用Gilbert马尔可夫模型来仿真IP网络丢包环境。首先,在不同丢包率环境下,图7给出下面3种方法性能比较的实验结果:1)使用RTP载荷结构,只使用文献6给出的简单误码掩盖算法(EC)。2)使用RTP载荷结构,只使用FEC前向保护,其中重要数据信息使用Tornado码,具体码型由缓存数据信息的字节数确定,冗余度在33%左右,而次重要信息使用Tornado(20,15)保护,冗余度为25%,当网络丢包率超过Tornado码保护能力时,进行误码掩盖(FEC+EC)。3)使用RTP载荷结构,综合使用本文提出的FEC和交织保护算法,其中Tornado码码型同FEC+EC算法,同样当网络丢包率超过Tornado码保护能力时,进行误码掩盖(FEC+IL+EC)。由图7可知,使用本文提出的FEC保护和交织保护算法能够有效提高视频通信的QoS。以Foreman序列为例,在丢包率为5%的情况下,与EC算法相比,恢复图像的平均PSNR(峰值信噪比)可以提高8dB以上;与FEC+EC算法相比,恢复图像的平均PSNR可以提高2dB以上。另外,由表1可知 ,在使用本文提出的算法后,在丢包率为5%的情况下,平均信道传输速率的变化小于3%。图7 基于H.264的抗分组丢失方法比较表1丢包率为5%的情况下,3种算法的平均信道速率/(kbits-1)FEC+IL+ECFEC+ECECForeman402.909396.587392.840Hall Monitor396.991394.253390.618综上所述,在基本相同的信道速率下,利用本文提出的RTP载荷结构,综合使用FEC保护和交织保护算法后,在高丢包率环境下可以大大提高恢复视频的QoS。5 结束语基于H.264的NALU结构和视频通信的特点,本文首先分析了在IP网络上传输压缩视频信号的多项关键技术;然后给出满足视频通信的交织保护算法;接下来根据H.264码流数据的不同重要程度,提出一种新的适于H.264的RTP载荷封装方式以及接收端丢包检测的方法。实验结果表明,综合使用本文提出的算法,在高丢包环境下可以大大提高H.264视频通信的QoS。参考文献:1ITU Telecom. Standardization Sector of ITU. Advanced Video Coding for Generic Audiovisual Services S. ITU-T Recommendation H.264. 2003.2LUBY M, MITZENMACHER M,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论