薛瑩瑩
(河南博物院,河南鄭州 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.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種熵編碼方案:指數哥倫布編碼、基于上下文的自適應可變長編碼和基于上下文的自適應二進制算數編碼。其中基于上下文的自適應二進制算數編碼的壓縮率最高,所以視頻壓縮編碼平臺采用了這種編碼方法。
錯誤檢測技術是實現錯誤隱藏的前提,只有對當前視頻序列是否出錯以及錯誤宏塊出錯的位置進行正確的判斷,才能執行錯誤隱藏,錯誤檢測的成功率和定位的精確度直接影響錯誤隱藏的效果。
現有的錯誤檢測技術主要分為兩類:基于編碼端的錯誤檢測技術和基于解碼端的錯誤檢測技術?;诰幋a端的錯誤檢測技術的基本思想是在編碼端嵌入一些特定的信息(例如:數字水?。?,然后在解碼端對該信息進行檢測就能指示當前的宏塊數據是否被信道誤碼所破壞。該方法雖然能夠獲得較高的錯誤檢測率,但由于受限于編碼端,并且改變了編碼器的結構,在某些情形下并不適用?;诮獯a端的錯誤檢測技術的基本思想是首先檢測當前視頻文件是否發生誤碼,一般針對壓縮算法的語法和嵌入數據進行檢測。然后采用基于內容的檢測方法來判斷錯誤宏塊的位置?;趦热莸臋z測既可以在頻域進行也可以在像素域進行。由于該類方法是利用碼流的語法結構進行錯誤檢測,所以不會增加信道的傳輸比特率。
另外也有在傳輸層進行錯誤檢測,主要是通過數據包頭部的標志信息來檢測當前碼流是否出錯[4]。例如:RTP數據包頭部中的seq字段標志數據包的順序號,通過該字段就可以檢測出是否出現丟包現象。然而此方法需要底層的支持,并不能適用于所有情況。
本文采用的錯誤檢測方法包括錯誤檢測和錯誤定位兩個部分。首先通過匹配錯誤類型集來檢測當前視頻序列是否無誤,然后對于出錯的視頻序列,采用基于宏塊類的判斷方法定位視頻序列中錯誤宏塊的位置。
在上一節中已經能夠檢測出當前壓縮視頻是否無誤,并且如果該視頻序列發生錯誤,可以精確地定位錯誤宏塊的位置。下一步目標就是對錯誤的視頻序列,如何采取相應的措施,利用已經接收到的正確信息,重構視頻中有誤碼的圖像信息,以提高視頻圖像的質量。
按照錯誤隱藏域的不同,錯誤隱藏技術分為基于空域的錯誤隱藏算法和基于時域的錯誤隱藏算法。
基于空域的錯誤隱藏算法主要適用于幀內編碼類型的宏塊,它利用視頻圖像在空域上的相關性,通過有效地空間差值算法對錯誤宏塊進行重建,從而改善解碼圖像的質量。
基于時域的錯誤隱藏算法主要適應于幀間編碼類型的宏塊,它利用視頻序列在時域上相關性,對錯誤宏塊的運動矢量進行估計,然后根據運動補償原理,從參考幀中找到相應的正確圖像數據替換錯誤的圖像數據,進而改善視頻圖像的質量。其中對錯誤宏塊運動矢量的估計是此類算法的關鍵。
邊界匹配算法(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個宏塊的像素差值的平方和,計算公式如下:


獲得錯誤宏塊的運動矢量之后,采用該運動矢量對錯誤宏塊進行運動補償,公式如下:

算法實現分為兩個部分,錯誤檢測和錯誤隱藏。首先在解碼端對視頻序列進行檢測,如果發現錯誤宏塊,則對該錯誤宏塊進行定位,并對該宏塊進行錯誤隱藏。本文重點對時間開銷進行測試,以QCIF(176X144)的標準視頻序列Foreman、Coastguara和Container作為測試對象,如表1所示。

表1 系統時間開銷測試(m s)
本文首先概述了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-),女,碩士,助理工程師,研究方向:信息安全。