APP下载

基于H.H.264264的错误隐藏技术研究

2015-03-30薛莹莹

河南科技 2015年6期
关键词:宏块解码矢量

薛莹莹

(河南博物院,河南郑州 450002)

基于H.H.264264的错误隐藏技术研究

薛莹莹

(河南博物院,河南郑州 450002)

针对由于信道噪声而带来的压缩视频数据不能保证被可靠传输到目的地址的问题,本文基于广泛应用的H.264视频压缩标准,对当前压缩视频进行错误检测和定位,并在解码端利用已经接收的正确信息对视频数据进行重构,提高了视频解码的质量。

H.264;解码端;错误隐藏

在互联网中,由于视频数据具有海量的特点,而传输信道的带宽是有限的,为了减少传输的数据量,就必须对数据进行压缩。压缩算法可以消除图像在时间、空间或者码子上的冗余,达到降低码率的目的,但却导致数据之间依赖性的增强。H.264是新一代低比特率数字视频编码标准,它采用了许多的先进技术,例如:支持7种模式的运动补偿、高精度的运动估计、多参考帧预测、自适应去块滤波器等技术,使得编码效率更高,压缩率可以达到MPEG-2的2倍以上,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。但经过压缩后的视频数据在语义上具有很强的相关性,极易受到信道误码的影响,一旦有误码的产生,不但影响当前数据的恢复,而且会造成误码的扩散。尤其是IP网络只是一种“尽力而为”的网络,不能保证数据包的可靠传输,传输中误码和丢包不可避免。因此,如何将由于信道噪声引起的错误而导致的影响降到最低限度,提高视频图像错误恢复的能力是视频解码系统中必须解决的关键问题。

1 H.264视频压缩编码

1.1 H.264编码的基本原理

H.264没有明确定义编码器或解码器的实现方式,而是规定了一个编码视频比特流的句法,以及对该比特流的解码方式[1]。H.264采用了分层编码结构,分为视频编码层VCL(Video Coding Layer)和网络提取层NAL(Network Abstraction Layer)两个层[2],两个层的编码过程是相互独立的,整体框图如图1所示。其中,VCL是整个H.264视频编码的核心,它采用混合编码的方式对视频内容进行高效的编码,提供具有高压缩率、高质量、可分级等特性的视频编码码流;NAL主要对压缩后的数据进行打包传送,其数据单元为NALU。正是由于H.264采用了这种分层编码方式,将编码与信道隔离,才使得编码后的数据能够适应不同的传输协议和传输网络。

图1 H.2 6 4整体框架

1.2 H.2 64编码特点

1.2.1 帧内预测技术分析

H.264采用了基于块的编码模式,支持亮度块(包括4×4像素宏块和16×16像素宏块两种尺寸)、色度块(8×8像素宏块)以及I-PCM等类型的帧内预测编码[3]。

其中4×4像素亮度块包括9种预测方式,每一个子块都独立预测,分别是水平、垂直、水平向上、水平向下、垂直向左、垂直向右、左下对角、右下对角和均值预测。而16×16像素亮度块采用整体预测,因为待编码区域较为平滑无需进行分块,包括水平、垂直、均值和平面4种预测方式。

设一个16×16预测块的像素值用q(m,n)表示,其中m为块的行坐标,n为块的列坐标,m,n=0,1,2,……15。

c.均值预测:

①当只有上方邻近像素可用时,则各像素的预测值为:

②当只有左边像素可用时,则各像素的预测值为:

③当左边邻近像素和上方邻近像素都可用时,则各像素的预测值为:

④当左边邻近像素和上方邻近像素都不可用时,则各像素的预测值为128。

d.平面预测:

其中函数dlip(x)为:

H.264规定,与一个16×16像素亮度块相对应的是8× 8像素的色度宏块,所以帧内色度块预测采用的是基于8×8的预测方式。与16×16像素亮度块采用的预测方式相似,也包括水平、垂直、均值和平面4种预测方式,只是顺序不同,这里不再详述。

1.2.2 帧间预测技术分析

H.264帧间预测技术把宏块分割为7种类型,这样分割的目的是为了适用不同的图像区域,对于较为平滑的图像区域采用大尺寸分割,反之采用小尺寸分割,这样编码器可以根据图像的平滑程度采用最佳的预测方式。除此之外,H.264可以选择多个参考帧作为当前帧的参考帧进行编码,增强了运动估计的准确度,同时提高了解码器的错误恢复能力。

1.2.3 熵编码技术分析

H.264提出了3种熵编码方案:指数哥伦布编码、基于上下文的自适应可变长编码和基于上下文的自适应二进制算数编码。其中基于上下文的自适应二进制算数编码的压缩率最高,所以视频压缩编码平台采用了这种编码方法。

2 错误检测技术

错误检测技术是实现错误隐藏的前提,只有对当前视频序列是否出错以及错误宏块出错的位置进行正确的判断,才能执行错误隐藏,错误检测的成功率和定位的精确度直接影响错误隐藏的效果。

现有的错误检测技术主要分为两类:基于编码端的错误检测技术和基于解码端的错误检测技术。基于编码端的错误检测技术的基本思想是在编码端嵌入一些特定的信息(例如:数字水印),然后在解码端对该信息进行检测就能指示当前的宏块数据是否被信道误码所破坏。该方法虽然能够获得较高的错误检测率,但由于受限于编码端,并且改变了编码器的结构,在某些情形下并不适用。基于解码端的错误检测技术的基本思想是首先检测当前视频文件是否发生误码,一般针对压缩算法的语法和嵌入数据进行检测。然后采用基于内容的检测方法来判断错误宏块的位置。基于内容的检测既可以在频域进行也可以在像素域进行。由于该类方法是利用码流的语法结构进行错误检测,所以不会增加信道的传输比特率。

另外也有在传输层进行错误检测,主要是通过数据包头部的标志信息来检测当前码流是否出错[4]。例如:RTP数据包头部中的seq字段标志数据包的顺序号,通过该字段就可以检测出是否出现丢包现象。然而此方法需要底层的支持,并不能适用于所有情况。

本文采用的错误检测方法包括错误检测和错误定位两个部分。首先通过匹配错误类型集来检测当前视频序列是否无误,然后对于出错的视频序列,采用基于宏块类的判断方法定位视频序列中错误宏块的位置。

3 错误隐藏技术

在上一节中已经能够检测出当前压缩视频是否无误,并且如果该视频序列发生错误,可以精确地定位错误宏块的位置。下一步目标就是对错误的视频序列,如何采取相应的措施,利用已经接收到的正确信息,重构视频中有误码的图像信息,以提高视频图像的质量。

按照错误隐藏域的不同,错误隐藏技术分为基于空域的错误隐藏算法和基于时域的错误隐藏算法。

基于空域的错误隐藏算法主要适用于帧内编码类型的宏块,它利用视频图像在空域上的相关性,通过有效地空间差值算法对错误宏块进行重建,从而改善解码图像的质量。

基于时域的错误隐藏算法主要适应于帧间编码类型的宏块,它利用视频序列在时域上相关性,对错误宏块的运动矢量进行估计,然后根据运动补偿原理,从参考帧中找到相应的正确图像数据替换错误的图像数据,进而改善视频图像的质量。其中对错误宏块运动矢量的估计是此类算法的关键。

边界匹配算法(BMA:Boundary Mathing Algorithm)是Lam W M等人提出的经典运动向量估计算法[5]。该算法的主要原理是首先确定错误宏块的候选运动矢量集,然后根据边界平滑原则,计算候选运动矢量集中每个运动矢量对应宏块的边界匹配差值,从候选运动矢量集选取最小的边界匹配差值作为错误宏块的运动矢量,最后采用该运动矢量在参考帧中寻找相应的视频数据进行替换。

设e(fx,y)表示当前错误宏块,gn表示第n帧,(x,y)表示当前错误宏块在帧gn中的位置,de(fx,y)表示错误宏块的运动矢量,De(fx,y)表示候选运动矢量集。则错误宏块的运动矢量为:

其中,DU,DD,DL,DR分别代表与错误宏块相邻的上下左右4个宏块的像素差值的平方和,计算公式如下:

获得错误宏块的运动矢量之后,采用该运动矢量对错误宏块进行运动补偿,公式如下:

4 仿真实验

算法实现分为两个部分,错误检测和错误隐藏。首先在解码端对视频序列进行检测,如果发现错误宏块,则对该错误宏块进行定位,并对该宏块进行错误隐藏。本文重点对时间开销进行测试,以QCIF(176X144)的标准视频序列Foreman、Coastguara和Container作为测试对象,如表1所示。

表1 系统时间开销测试(m s)

5 结语

本文首先概述了H.264视频压缩编码技术,重点介绍了编码器原理、H.264编码特点,包括帧内预测技术、帧间预测技术和熵编码。然后阐述了错误检测技术发展现状,归纳总结了错误隐藏技术,并对边界匹配算法进行了详细分析,在此基础上实现了基于H.264的错误隐藏,并给出了实验结果。

[1]毕厚杰.新一代视频压缩编码标准—h.264/avc[M].北京:人民邮电出版社,2005.

[2]孙华.H.264视频编码标准的分层设计与功能[J].广播与电视技术,2004,31(4):31-33.

[3]徐睿.H.264帧内预测算法技术研究[D].沈阳理工大学,2011.

[4]方勇,吴成柯,郑济昌.基于宏块类型的错误检测方法[J].中国科学,2008,38(4):592-598.

[5]Lam W M,Reilbman A,Liu R B.Recovery of lost or erroneously received motion vectors[J].Proceedings of ICASSP.Minneapolis:IEEE,1993:417-420.

Research on H.264 Based Error Concealment Technology

Xue Yingying
(Henan Museum,Zhengzhou Henan 450002)

Due to the problem that compressed video data brought by channel noise cannot be guaranteed to be reliably transmitted to the destination address,this paper,based on the H.264 video compression standard which has beenwidely used,conducted the error detection and localization for the current compressed video,and reconstructed thevideo dataat thedecoderusing the received correct information,to improve the quality ofvideodecoding.

H.264;decoding;error concealment

TN919

:A

:1003-5168(2015)03-0030-3

2015-2-16

薛莹莹(1982-),女,硕士,助理工程师,研究方向:信息安全。

猜你喜欢

宏块解码矢量
《解码万吨站》
矢量三角形法的应用
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
基于矢量最优估计的稳健测向方法
三角形法则在动态平衡问题中的应用
基于选择特征宏块的快速视频稳像
基于宏块合并的H.264模式选择算法
色料减色混合色矢量计算