天天看點

H.264編解碼

H.264是由ITU-T(ITU Telecommunication Standardization Sector,國際電信聯盟遠端通信标準化組)視訊編碼專家組(VCEG)和ISO/IEC動态圖像專家組(MPEG)聯合組成的聯合視訊組(JVT,Joint Video Team)提出的高度壓縮數字視訊編解碼器标準。

  ITU-T的H.264标準和ISO/IECMPEG-4第10部分(正式名稱是ISO/IEC 14496-10)在編解碼技術上是相同的,這種編解碼技術也被稱為AVC,即進階視訊編碼(Advanced Video Coding)。該标準第一版的最終草案(FD)已于2003年5月完成。

  H.264是ITU-T以H.26x系列為名稱命名的标準之一,同時AVC是ISO/IEC MPEG一方的稱呼。

  H.264/AVC項目最初的目标是希望新的編解碼器能夠在比相對以前的視訊标準(比如MPEG-2或者H.263)低很多的碼率下(比如說,一半或者更少)提供很好的視訊品質;同時,并不增加很多複雜的編碼工具,使得硬體難以實作。

  另外一個目标是可适應性,即該編解碼器能夠在一個很廣的範圍内使用(比如說,即包含高碼率也包含低碼率,以及不同的視訊分辨率),并且能在各種網絡和系統上(比如多點傳播,DVD存儲,RTP/IP包網絡,ITU-T多媒體電話系統)工作。

  H.264/AVC的新特征

  1、多參考幀的運動補償。比起以前的視訊編碼标準,H.264/AVC以更靈活的方式使用已編碼的更多幀來作為參考幀。在某些情況下,可以使用最多32個參考幀(在以前的标準裡面,參考幀的數目不是1就是對B幀來說的2)。該特性對大多數場景序列都可以帶來一定的碼率降低或者品質提高,對某些類型的場景序列,例如快速重複的閃光,反複的剪切或者背景遮擋的情況,它能很顯著的降低編碼的碼率。

  2、變塊尺寸運動補償。可使用最大16x16至最小4x4的塊來進行運動估計與運動補償,能夠對圖像序列中的運動區域進行更精确的分割。

  3、為了減少鋸齒并得到更銳化的圖像,采用六抽頭的濾波器來産生二分之一像素的亮度分量預測值。

  4、宏塊對結構允許場模式中采用16x16的宏塊(相對于MPEG-2中的16x8)。

  5、1/4像素精度的運動補償能夠提供更高精度的運動塊預測,由于色度通常是亮度抽樣的1/2,這時

  運動補償的精度就達到了1/8像素精度。

  6、權重的運動預測,指在運動補償時可以使用增權重重和偏移的辦法。它能在一些特殊的場合,如淡入、淡出、淡出而後淡入等情況提供相當大的編碼增益。

  7、使用了一個環内的除塊效應濾波器,能夠減輕普遍存在于其他基于離散餘弦變換(DCT)的視訊編解碼器的塊效應。

  8、一個比對的整數4x4變換(類似于離散餘弦變換的設計),同樣在高精度拓展 中,采用整數8x8變換,并能在4x4變換和8x8變換中進行自适應的選擇。

  9、在第一次4x4變換後,對DC系數(色度的DC系數和某種特殊狀況的亮度DC系數)再進行一次Hadamard變換,使得在平滑區域得到更好的壓縮效果。

  10、利用臨近塊的邊界像素的Intra空間預測(比曾在MPEG-2視訊部分使用的直流系數預測和在H.263+和MPEG-4視訊部分使用的變換系數預測的效果要好)。

  11、基于上下文的二進制算數編碼 (CABAC),它能夠靈活的将各種文法元素,在已知相應上下文機率分布的狀況下進行更有效的無損熵編碼。

  12、基于上下文的變長編碼 (CAVLC),用于對量化後的變化系數進行編碼。比起CABAC它的複雜度相對較低,壓縮比不高,但是比起以前的視訊編碼标準所使用的熵編碼方案,它又是相當有效的。

  13、對既不是用CABAC也不是用CAVLC的文法元素,使用指數哥倫布碼(Exponential-Golomb)(Exp-Golomb)熵編碼方案,進行編碼。

  14、使用一個網絡抽象層 (NAL),使得相同的視訊文法可以适用于多種網絡環境中;并且使用了序列參數集(SPSs)和圖像參數集(PPSs)來提供更高的強健性(robustness)和靈活性。

  15、切換條帶(Switching slices,包括SP和SI兩種),它使得編碼器能夠指令解碼器跳轉到一個正在處理的視訊碼流,用來解決視訊碼流碼率切換和"竅門模式"(Trick mode)操作。當解碼器利用SP/SI條帶跳轉到一個視訊碼流中間時,除非之後的解碼幀引用切換幀之前的圖像作為參考幀,它都可以得到完全一緻的解碼重建圖像。

  16、靈活的宏塊排列模式(FMO for Flexible macroblock ordering,也被稱為條帶組slice groups技術)和任意條帶排列(ASO for arbitrary slice ordering)模式,用來更改圖像編碼的最基本機關-宏塊的編碼順序。它能夠用來提高有繞信道下碼流的魯棒性(robustness)以及一些其它的目的。

  17、資料分區(DP for Data partitioning),能夠将重要程度不同的文法元素分開打包傳輸,并使用非平等資料保護(UEP for unequal error protection)等

  技術來改善視訊碼流對抗信道誤碼/丢包的魯棒性(Robustness).

  18、備援條帶(RS for Redundant Slices),同樣是一個提高碼流魯棒性的技術。編碼器利用該技術可以發送圖象某區域(或者全部)的另一個編碼表示(通常是較低分辨率的編碼碼流)使得當主表示發生錯誤或者丢失的時候能夠用備援的第二個編碼表示來解碼。

  19、使用了一個自動的位元組碼流打包方法,避免了碼流中出現與開始碼重複的碼字。開始碼是碼流中用于随機通路和重建同步的碼字。

  20、補充增強資訊(SEI for Supplemental Enhancement Information)和視訊可用資訊(VUI for Video Usability Information)增加了向視訊碼流中加入資訊的辦法,為各種應用提供了用途。

繼續閱讀