張 猛 黃繼海 涂晨陽
(防空兵指揮學院 鄭州 450052)
H.264/AVC標準是 ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動圖像專家組)的聯合視頻組(JVT,JointVideoTeam)開發的標準,也稱為MPEG-4Part10“高級視頻編碼”。它既保留了以往壓縮技術的優點又增加了許多新特性:更低的碼流和更高的圖像質量,更強的容錯能力,簡潔的設計方式和更好的網絡適應性。在相同的重建圖像質量下和同等的畫質下,H.264比編碼標準H.263平均節約64%的傳輸碼流,比MPEG-4ASP也要平均節約39%的傳輸碼流。H.264技術還具備容錯能力強、網絡適應性強等優勢,正好適應了目前國內運營商接入網帶寬非常有限的狀況。與以往標準相比,H.264標準使運動圖像壓縮技術上升到了一個更高的階段,在較低的帶寬上可以提供高質量的圖像傳輸。
在視頻壓縮編碼中,預測法是最簡單、實用的,經過壓縮編碼后傳輸的并不是像素本身的取樣值,而是該取樣的預測值和實際值之差。在同一幅圖像中,鄰近像素之間有著相關性,它們發生突變的概率很小,因此可以利用這些性質進行視頻壓縮編碼。
H.264和以往標準相比并無結構性變化而是在各主要模塊內部使用一些先進的技術,從而提高編碼效率。幀內編碼就是在對一幅圖像進行編碼時沒有利用任何其它幀圖像的信息的編碼,它是傳統混合編碼框架的重要組成部分。幀內預測編碼主要是通過消除圖像的空間冗余信息來實現對圖像的壓縮,也應用于幀間預測的某些宏塊編碼中。在幀內預測模式中,預測塊P是居于已編碼重建塊和當前塊形成的。H.264/AVC對亮度分量和色度分量設定了不同的預測編碼方案。針對亮度分量的幀內預測模式有兩種:基于4×4像素模塊(有9種可選預測模式,獨立預測每一個4×4亮度子塊)和16×16像素模塊(有4種預測模式預測整個16×16亮度塊)的幀內預測模式,分別適用于帶有大量細節的圖像編碼和平坦區域圖像編碼;對色度分量也有四種模式,與16×16模塊相似。
與以往標準相比,H.264幀間預測在繼承了其成熟的編碼框架的同時,又進一步增強和改進了一些新的技術和方法,從而獲得更好的壓縮性。幀間預測編碼通過分析相鄰圖像之間的時域相關性,然后再對預測圖像和實際圖像的差值進行編碼從而實現視頻壓縮。采用的新技術主要有可變模式塊運動補償、采用1/4像素精度的運動估計算法以及多參考幀等。通過對模式塊進行分割,采用樹狀結構運動補償以及把像素精度提高到1/4的像素精度估計并且增加多個參考幀來提高編碼效率減小誤差,但是同時會增加計算的復雜性。
對于大多數圖像來說都有這樣一個共同特征,平坦區域和內容緩慢變化區域遠遠大于細節區域和內容突變區域。即圖像中直流和低頻區域占大部分,高頻區域占小部分,因此在空間域圖像與頻域互換時會產生很小的相關變換系數,通過常見的K-L變換、離散余弦變換(DCT)等正交變換對其進行壓縮編碼。DCT編碼性能接近于K-L變換,相比之下,它具有快速算法,廣泛應用于圖像編碼。H.264采用4×4整數變換,在編碼器中允許精度相同的變換和反變換,便于使用簡單的定點運算方式。
變換編碼實現較復雜而預測編碼實現相對容易,但預測編碼的誤差容易擴散。混合編碼的使用現在越來越多,即對圖像先進行帶有運動補償的幀間預測編碼,再對預測后的殘差信號進行DCT變換。
熵編碼是一種無損壓縮編碼方法,它利用信源的統計特性進行碼率的壓縮編碼,它生成的碼流經解碼后可以無失真的恢復出原數據。H.264采用兩種熵編碼技術來提高編碼效率:基于上下文自適應的變長編碼進行的熵編碼(Context-Based Adaptive Variable-Length Coding,CAVLC)和基于上下文的自適應的算術編碼(Context-Based Adaptive Binary Arithmetic Coding,CABAC)。
CAVLC適用于對亮度和色度殘差數據進行編碼,之后再進行量化編碼。它充分利用殘差通過整數變換以及對量化后的數據特性進行壓縮提高壓縮效率,進一步減少冗余數據間的冗余信息。
CABAC是一種效率很高的自適應算術編碼算法,它考慮的是信源符號序列整體的概率特性,不采用一個碼字代表一個輸入信息符號的辦法。與CAVLC相比,CABAC在同樣的視頻質量下更節省碼率。
熵編碼是對變換編碼后的系數進行編碼。CABAC是H.264/AVC標準中的一種自適應算術熵編碼方法,是將自適應的二進制算術編碼與一個設計精良的上下文模型結合起來得到的方法。其算術編碼的計算復雜度主要體現在兩個方面:概率的估計和更新,解決其優化問題將會使熵編碼的效率得到進一步的提高。CABAC算術編碼過程的主要步驟有:利用每個語法元素的上下文關系,根據已編碼元素為待編碼元素選擇概率模型,即上下文建模;根據當前的統計特性自適應地進行概率估計;對輸入流進行預編碼。
算術編碼是一個遞進計算過程,編碼器必須保存以下變量的記錄狀態:當前區間的下限L;當前區間的大小R;當前字符Binval;各字符的概率 Pa。
上述定義中 L和R用來確定當前區間;Pa是當前區間的劃分依據,由于是二進制編碼只有字符0和1,所以只需記錄P1和P0;最后確定Binval所在的自區間作為下一個遞進中的當前區間。R的遞進關系為:R=R*Pa。

圖1 算術編碼流程
算術編碼是對整個流分配碼字,為了將差錯控制在一定范圍內,CABAC將片(Slice)作為算術編碼的生命期,但是對具體句法的元素的編碼是發生在宏塊級。在同一宏塊內句法元素是獨立編碼,宏塊之間的上下文信息則可以作為依據用于對當前塊進行編碼。
H.264將一個片內可能出現的數據劃分為399個上下文模型,每個模型以ctxidx標示,在每個模型內部進行概率的查找和更新。每個上下文模型通過H.264為其建立的對應的概率表,獨立地維護概率狀態。這些模型的劃分精確到比特,幾乎大多數的比特和它們鄰近的比特處于不同的上下文模型中。通常,每個句法元素的上下文模型根據上下文索引偏移量與上下文增量來確定。其中,上下文索引偏移量對于特定類型片中的特定句法元素是唯一確定的,可以在標準中通過查表獲得。而上下文增量,則是根據相鄰塊的編碼情況(也就是上下文信息)得出。
對于不同的句法元素,所需相鄰塊的信息不同,但一般包括可用性(如當前塊在片的邊緣上,則相鄰塊可能由于不是在同一片中而不可用)與同一句法元素的編碼值。通常用于計算上下文增量的上下文建模函數為ctx_var_add=cond_term(A,B),A和B表示當前塊的相鄰塊。其中cond_term()表示的是一種函數關系。另外,對于利用先前已編碼的二進制值的上下文建模函數可表示為ctx_var_bin[k]=cond_term(b1,…,bk-1)。
為優化算術編碼的特性,CABAC從統計角度對輸入流作了一套預編碼方法。如果給定的符號是非二進制值,將其乘以2的倍數放大(左移),即當輸入流中連續出現大量MPS,或者MPS對LPS的概率比非常高時,可以達到極高的壓縮效果。這種將輸入流重新編碼后再進行算術編碼的過程叫做輸入流的二進制化,從而獲得MPS概率極高的比特流。
算術編碼的復雜度主要體現在兩個方面:概率的估計和更新。劃分子區間的乘法運算:R=R*Pa。假設輸入流為T,當前字符為Binval,在Binval之前的字符流為 f,f∈T,條件概率P(Binval/f)就是當前字符的概率估計值。隨著條件因子 f的增長,帶來的計算量急劇增大,而且每處理一個字符,需要作兩次類似的計算。因此為解決這一問題,概率估計值Pa必須取自P(Binval/f)(取自一個嚴格的統計模型),它所對應的輸出碼率能最大限的逼近信源熵率;另外需要保證通過同樣的法則估計和更新Pa能夠順利在當前劃分區間編解碼。
據以上分析,CABAC在計算的復雜度和編碼效率之間作了折中,建立了一個基于查表得概率模型,把區間[0,0.5]的概率量化為64個值,這些概率對應于LPS(最小概率符號),則MPS(最大概率符號)的概率為1-Plps。字符的概率估計值被限制在表內,概率的刷新也從計算P(Binval/f)轉變為按照某種法則在表中查找。
在CABAC建立的概率模型中,可以利用MPS出現時的刷新值都只是簡單地指向當前的下一位來降低概率估計和刷新中的計算量。

圖2 CABAC自適應自述編碼原理
通過優化算術編碼中頻繁使用的乘法運算R=R*Pa亦可以大大減少計算量。CABAC首先建立起一個4*64的二維表格,存儲預先計算好的乘法結果。令表格入口參數一個來自Pa另個一個來自R。P x直接以n(量化后的概率表索引值)作為參數,R的量化公式為:m=(R?6)&3;在每次需要作乘法運算時,通過m和n進行查表操作即可得到結果。
H.264標準中所涉及到的關鍵技術:幀間預測、幀內預測、DCT變換以及熵編碼技術,基于上下文自適應的二進制算術熵編碼(CABAC)是一種很高效的編碼算法。它不僅動態地更新概率模型,而且采用新的方法對計算量和編碼速度進行優化,與其他主流熵編碼技術(CAVLC)相比,CABAC有著更高的編碼效率。在H.264標準的發展應用中,CABAC編碼算法必將應用地更加廣泛。
[1]畢厚杰,王建.新一代視頻壓縮編碼標準-H.264/AVC[M].第二版.北京:人民郵電出版社,2009
[2]余兆明,査日勇,黃磊,等.圖像編碼標準H.264技術[M].北京:人民郵電出版社,2006
[3]黃晁,沈燕飛,李錦濤,等.降低視頻編碼復雜度的算法研究[C]//AVS第四次會議文檔AVS_M1056,武漢,2003
[4]H'HNEL H,YANGW Q,YORK T A.An AC2Based Capaci2tance Measuring Circuit for Tomography Systems and its SiliconChip Design[J].IEEE Colloquium:Advances in Sensors,1995,12
[5]陳志波.H.264運動估值與網絡視頻傳輸關鍵問題研究[D].北京:清華大學畢業論文,2002
[6]A.M.Tourapis,O.C.Au,M.L.iou.Predictive motion vectorfield adaptivesearch technique(PM VFAST)-enhancing block based motion estimation.Visual Communications and Image Processing,2001