• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > MPEG-4差错复原技术在无线视频通信中的应用研究

MPEG-4差错复原技术在无线视频通信中的应用研究

录入:edatop.com    点击:

  1 引言

  在无线移动信道环境下的压缩视频传输业务,信道传输差错不但严重影响业务质量;甚至会导致整个视频通信完全失效,因此差错复原技术就成为易发生差错信道下视频编码的重要组成部分。

  传输误码大体上可分为两类[2][5]:一类是随机误码,这主要是由于信道的物理缺陷而致,比如比特位跳转(bit inversion)、比特位插入(bit insertion)、比特位删除(bit deletion)等.另一类是突发错误,比如包交换网络中的包丢失(PACket loss)、存储媒体的物理损伤等。

  当前的视频编码标准都是基于同样的原理进行视频压缩的,即采用运动预测和运动补偿消除时间冗余,采用变换编码消除空间冗余,通过对色度空间的转换消除色度空间的冗余。接着,对 dct变换系数(离散余弦变换)进行量化,对量化后的非零系数进行变长编码和熵编码,以减少统计意义上的冗余,最后获得压缩后的比特流。

  压缩过的视频信号都不可避免地会遭受突发性的位错误(bit error)或分组丢失等错误的攻击。由此,产生了许多错误控制方法,主要分为3类。第一类在进行信源编码及信道编码时,采取措施使比特流具备一定的错误恢复能力;第二类在解码端进行错误检测并进行错误隐藏处理(error concealment);第三类通过信源编码器和解码器之间的相互协作,编码器针对解码器所提供的传输信道特性等信息,自适应地调节编码参数。图1列出了具有错误处理功能的视频应用框图。

 

  图1 具有错误处理功能的视频应用

  本文论述的差错复原视频编码技术,属于第一类错误控制方法。采用差错复原视频压缩技术可以解决在传输过程中传输错误引发的比特流同步丢失以及错误蔓延等问题。

  2 mpeg-4误码复原方法

  2.1 重同步

  mpeg-4提供的重同步标识有一个显著的不同,它的重同步标识并不是在每个组的开始,相反,它将图像分成视频包,每个包由整数个顺序相连的块组成,在每隔k个比特处插入一个重同步标识,如图2所示。因此,在有明显变化的图像部分,对应的宏块将产生更多的比特,从而在这些地方的重同步标识就会多,这种情况下,即使有较短的突发误码,解码器也能在高活动区中的较少宏块中查到误码的位置,保证这部分区域的图像质量。

 

  图2 视频包中的数据格式

  mpeg-4中推荐的k随码率的不同而不同,对于24kbps,k为480bit,对于比特率在 25~48kbps,k为736bit。除了在每个视频包中开始插入重同步标识外,编码器还需减少分属两个视频包中的数据的相关性,这是因为,即使当前图像的一个视频包由于误码而舍弃掉,其余包仍可以由解码器使用和解码,为了消除这个相关性,在编码的每个视频包的头部除重同步标识外,再插入两个额外的信息。

  (1) 在视频包中相对于第一个宏块的绝对宏块数,mb.no;

  (2) 量化参数qp(它指明视频包中用来进行dct变换的量化参数)。

  2.2 数据分割技术

  当检测到比特流中的误码和下一个重同步信号后,解码器将处于两个重同步标识之间含有误码的所有宏块全部舍弃。一般情况下,视频解码器将这些所有宏块的亮度和色度信号用上一帧相对应的宏块的亮度、色度代替。因此,当解码器检测到错误时,能认识到是运动部分还是dct运动误码,因此,它将舍弃所有数据。图2给出了在没有进行数据分割与视频压缩流编码的方案中视频数据的组织形式。值得注意的是运动矢量与dct部分要比前面的头开始的数据大的多。

  在 mpeg-4中通过在运动矢量等运动数据部分和dct数据部分之间加一个运动边界标志mbm(motion boundary marker)标准将两部分分开,采用数据分组的视频包的比特流与组织形式,为了减少与传统方法的差异,在数据部分将保持同样的元素以及结构和识别方法,所有与运动相关的元素信息放入运动数据部分(即运动矢量等数据),与dct数据相关放入dct数据部分,在mpeg-4标准中,mbm标识的长度为 17bit,其值为1 1111 0000 0000 0001。这样当视频包中的数据出现错误时解码器就可以分辨出是运动数据错误还是dct数据有误,从而可以分别进行处理。通过数据分块可以取得很好的效果,表1给出数据分组与否的不同性能。

     表1 数据分组与否的性能比较

 

  2.3 可逆变字长编码(rvlc)

  在易误码的信道中传输压缩视频通常是变字长编码(vlc)。在解码端,如果解码器检测到vlc数据中的误码,它将失去同步信号,因此,不得不将直到下一个重同步点的所有数据全部舍弃,而rvlc避免了这个问题,使得解码器通过在误码处的数据反转,以更好地确定误码位置,如图3所示。rvlc是有前缀特性的特别的vlc,可以从前向或反向进行解码。这种码字的优点在于,当解码器在前向解码时遇到误码,它可以跳到下一个重同步点进行反向解码,直到遇到误码,基于两个误码的位置解码器可以恢复一些数据,如图4所示。

 

  图3 rvlc双向解码(在公共区域的数据将被舍弃)

 

  图4 mpeg-4采用rvlc解码规则

在图4中各符号所代表的含义:l为视频包中有效数据的比特数据; l1为前向解码的比特数;l2为后向解码的比特数;n为视频包中的宏块数;n1为前向解码完全解得的宏块数;n2为后向解码完全解得的宏块数;f_mb(s)为前向解码时当s比特被解码时所解得的宏块数;b_mb(s)为后向解码时当s比特被解码时所解得的宏块数;t为门限值(mpeg-4 推荐值为90)。

  二进制序列的海明加权定义为这个序列中1的个数,例如110110的海明加权是4,产生rvlc的一种方法是采用连续海明加权码,并在它的前后增加一个固定长度的前缀和后缀,考虑海明加权值为1的码(如表2中的第一列),增加一个连续的前缀和后缀1加到其前后形成rvlc,如表 2中第二列,为了完成整个码字,还在rvlc中增加了一个额外码字0,经过这一处理,解码器可以前向和后向对以上的rvlc解码,其原则是当在解码中解出 3个1,即可断定这是一个码字的结束,当然更为完整的高级的rvlc可以通过增加固定长度的前缀等方法来获得。对于应用rvlc进行误码复原的方法,mpeg-4建议并没有标准化,但有一个推荐的方案,如图4所示,首先进行前向解码,如果没有错误,解码过程结束;如果有错误,进行双向解码,比特舍去的方案如下:

  表2 rvlc的形成

 

  上面rvlc是通过在变长码字的前后加上固定的前缀和后缀而构成的(如表2所示)。这种rvlc在编码效率方面损失较大。因此人们又提出了一种新型 rvlc,这种方式在构造可双向解码的码流时方法简单,有利于计算机实现。另外它不仅具有传统rvlc可正向和反向解码的特点,而且在编码效率方而和 vlc十分接近。

  这种新型rvlc是通过对正向和反向的vlc码流进行异或操作来构成的。下面通过一个例子对这种新型rvlc进行说明:即一个5 个符号的集合{a,b,c,d,e},其各个符号出现的概率为{1/2, 1/8,1/8, 1/8, 1/8},那么对该集合进行编码的vlc码表为{0,100,101,110, 111},其传输的符号流为“abcaad”,而编码器生成的vlc码流为0/100/101/0/0/110,为了得到可双向解码的码流,编码器首先将每个码字翻转,组成反向码流;随后编码器在正向码流之后及反向码流之前插入l个0( l必须大于或等于vlc码字的最大长度);最后,编码器将正向码流和反向码流进行异或操作,即可得到可双向解码的码流,如图5所示:

 

  图5 新型rvlc

  不过,由于rvlc固有的特性,用rvlc编码后的编码效率要低于vlc。而另一方面,在底码率的视频压缩信息流中,宏块头信息和运动矢量信息对压缩视频的重建质量影响较大,属于重要信息,如果在编码时对宏块头信息和运动矢量信息进行保护,将有效提高视频流对抗差错的能力。因此只对属于重要信息的宏块头信息和运动矢量信息进行rvlc编码,这样既可提高视频流的抗差错能力和解码端的差错复原能力,又不使编码效率受到太大影响。

  2.4 头扩展编码

  解码器在进行比特流解码时需要一些重要的信息,这些信息就是头数据,这些数据包括视频数据的空间维数、解码相关的时间戳和当前图像的编码方式(帧内或帧间)等,由于信道的误码,部分信息可能被破坏,这时解码器只有丢弃属于当前视频帧的所有数据,为了减少对这些数据的敏感性,mpeg-4引入一种称为头扩展码(hec),在每一个视频包中,引入了被称为hec比特的1 bit信息,如果设定了这个信息,那么描述当前视频帧的重要头信息将在视频包中反复出现,通过对视频包中的头信息与视频帧中的头信息的比较,解码器可以确定视频帧的头信息是否正确,如果是错误的,解码器仍能可利用视频包中的头信息对视频帧的其它数据进行解码。在mpeg-4的验证测试中,通过使用hec减少舍去的视频帧的数目,有效地提高了解码视频的质量。

  2.5 低复杂度mpeg-4抗误码模式性能研究

  mpeg- 4为满足低比特率视频编码,提供了重同步、数据分割和rvlc等多种抗误码的方法。这些方法能使mpeg-4码流在无线传输等易错环境下具有更高的抗误码鲁棒性,但在一些实时性要求较高的应用中,抗误码模块所增加的系统复杂度成为编码器性能提高的瓶颈。基于此为了满足无线视频的实时通信,对低复杂度抗误码模式进行研究。

  (1) 视频容错操作模式。mpeg-4为满足不同网络带宽、编解码器资源和qos等条件下的视频容错,给出了几个操作模式供选择使用。根据采用的容错复杂度可分为中、低、高三种模式。所采纳的容错算法越多,计算复杂度和对解码器要求的也就越高。表3列出了主要容错工具和相匹配的复杂度操作模式。(表中x表示这个容错工具必须使用,x表示这个容错工具是可选的。)

  表3 视频容错操作模式

 

  l 低复杂度。低复杂度的操作模式是基本的容错模式。重新同步标志是必须的,它提供重新同步能力和确定一个视频数据包己经正确收到的能力。在这种模式下可逆变长编码(rvlc)是可选的,已经有报告表明rvlc的错误检测能力比标准的vlc要好,因此即使不实现可逆解码,但是rvlc仍能使用;这种模式也可以使用数据分离。为使用这些功能必须在vol层设置下列参数:

  error_resilience_disabled=0

  data partitioNIng=optional; //可选

  reversible_ vlc= optional; //可选

  l 中复杂度。类似的中等复杂度操作模式要使用重新同步标志,另外还必须使用数据分离,也就是将vop的运动数据信息和其纹理信息用特定代码分开,而rvlc是可选的。为使用该模式必须在vol层中设置:

  error_resilience_disabled=0

  data partitioning=1

  reversible_ vlc=optional; //可选

  l 高复杂度。复杂度的操作模式要求使用这三种容错工具,注意在这种模式下无论解码器是否能够反向解码rvlc,但解码器都应能够正向正确解码码流。在vol层设置如下参数:

  error_resilience_disabled=0

  data partitioning=1

  reversible_ vlc=1

  (2) mpeg-4抗误码模式参考编码结构。根据mpeg-4标准的参考软件模型momusys采用rm+dp+rvlc的抗误码模式,其软件结构如图6所示:

 

  图6 传统mpeg-4抗误码模式编码架构

  图6中,上半部分模块分别对帧内每个宏块完成运动估计、运动补偿,dct,量化等操作,经过vlc编码查表,得到该宏块的比特开销。一旦数据包内累计的宏块比特数超过固定的门限,根据包内宏块数目,对头信息、运动信息以及残差信息分类进行二次编码,形成抗误码模式的码流结构,如图7所示:

 

  图7 mpeg-4非抗误码模式和抗误码模式码流结构比较

在第一次的编码过程时,需保存当前宏块的dct量化系数以及运动信息和头信息。极限情况下,若整个一帧打成一个数据包,则数据包内所有宏块量化后dct系数所占存储空间为:

  其中,nw:帧宽,nt:帧长,ny:亮度块数,nuv:色度块数,cmax:单个dct系数所占最大存储空间。

  以4:2:0的cif(352x288)格式为例,一帧含396个宏块,每个宏块内包含4个亮度块和2个色度块,块大小为8x8,共包含64个系数,量化后的每个dct系数,范围在[-2048,2047],需要用2个字节来表示,则共需要30mbyte的存储空间。

  设系统cache容量为t,数据包内包含n个宏块,比特开销分别为:mb0,mb1,..., mbn-1。若满足下式:(1≤n≤n) (2)

  则将宏块mb0内容读出cache,写入内存,而mbn-1写入cache。之后的宏块依次类推。若(2)式满足,则多次对内存的读写操作会导致大晕的cache不命中,严重影响系统编码效率。

  3 优化的mpeg-4抗误码模式编码结构

  综上,在参考软件模型的抗误码模式结构中,由抗误码模块带来的系统开销包括:存储空间以及重复的内存读取操作。根据上述不足,同时兼容原有mpeg-4编码架构,进行以下改进,如图8所示。

  

 

  图8 优化的mpeg-4抗误码模式编码架构

  3.1 一次编码的分类数据包结构

  为了避免二次编码对内存的重复读写操作,系统增加3个存放分类信息的缓存区,第一次编码完成时,将头信息、运动信以以及残差信以分别写入对应的区域中。

  3.2 存储dct量化系数的游程编码

  由于宏块内的残差信息占据整个宏块信息的绝大部分,因此选择先对残差信息以完成正常的vlc/rvlc编码后,存入缓存区域。根据rvlc/vlc码表

  同样以4:2:0的cif格式为例,由式(3)存储同样一帧图像量化后的dct系数,则:

  因此比原来用两个字节存储一个dct系数分别节省6.25%和25%。

3.3 抗误码性能分析

  对优化设计后的mpeg-4抗误码模式编码器进行测试,测试序列如表4。不同的误码环境可以根据比特误码率(ber)和数据包丢失率(plr)来衡量。本文采用比特误码率对抗误码工具性能进行分析。采用数据分类与不采用数据分类的一般模式相比,数据包长度为1kbits,平均psnr增益如表5所示。

  表4 测试序列参数

 

  表5 mpeg-4抗误码模式与非抗误码模式比较

 

  在随机误码环境下(ber 10-3),采用数据分类抗误码方法比不采用数据分类的编码模式平均psnr高2db。不同打包长度的数据分类抗误码模式增益比较。数据打包长度采用表6。

  表6 不同打包长度中冗余信息与有效荷载的比例

 

  采用数据分类抗误码保护的序列质量明显好于非抗误码模式的序列质量,而在不同的数据包尺寸的情况中,数据包尺寸越小,冗余信息在数据包中所占的比重越大,抗误码效果也越好。当数据包大小为10kbits,几乎包括整个一帧的所有宏块,因此其序列质量基本接近非抗误码模式下的效果。

  4 结束语

  以上对mpeg-4视频标准中误码的复原进行了讨论,详细描述了视频编码纠错方法,并通过测试数据说明了它们的优点,并提出一种适合无线视频通信的低抗误码模式。本文阐述的差错复原视频编码技术是视频压缩编码技术中的一个重要方面,其目的是在不改变传输信道特性以及尽可能少地增加额外比特数的前提下,提高视频流媒体的鲁棒性。其中多描述符视频编码的研究是一个相对新的领域,是今后差错复原编码技术的研究重点。

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:控制系统的电磁兼容性
下一篇:基于PCMCIA的ARINC429通信卡设计

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图