H.264/AVC (advanced video coding 高級視頻編碼)

在視頻會議應用中,視頻質量和網絡帶寬佔用是矛盾的,通常情況下視頻流佔用的帶寬越高則視頻質量也越高;如要求高質量的視頻效果,那麼需要的網絡帶寬也越大;解決這一矛盾的鑰匙當然是視頻編解碼技術。評判一種視頻編解碼技術的優劣,是比較在相同的帶寬條件下,哪個視頻質量更好;在相同的視頻質量條件下,哪個佔用的網絡帶寬更少。 
  視頻編解碼技術有兩套標準,國際電聯(ITU-T)的標準H.261、H.263、H.263+等;還有ISO 的MPEG標準Mpeg1、Mpeg2、Mpeg4等等。H.264/AVC是兩大組織集合H.263+和Mpeg4的優點聯合推出的最新標準,最具價值的部分無疑是更高的數據壓縮比。在同等的圖像質量條件下,H.264的數據壓縮比能比H.263高2倍,比MPEG-4高1.5倍。

  以下我們簡單介紹H.264的概念和發展,並探討H.264技術實用化的可能性

H.264/AVC是什麼?
  H.264/AVC標準是由ITU-T和ISO/IEC聯合開發的,定位於覆蓋整個視頻應用領域,包括:低碼率的無線應用、標準清晰度和高清晰度的電視廣播應用、Internet上的視頻流應用,傳輸高清晰度的DVD視頻以及應用於數碼相機的高質量視頻應用等等。
H.264的核心競爭力
  H.264最具價值的部分無疑是更高的數據壓縮比。壓縮技術的基本原理就是將視頻文件中的非重要信息過濾,以便讓數據能夠更快地在網絡中傳輸。在同等的圖像質量條件下,H.264的數據壓縮比能比當前DVD系統中使用的MPEG-2高2-3倍,比MPEG-4高1.5-2倍。正因爲如此,經過H.264壓縮的視頻數據,在網絡傳輸過程中所需要的帶寬更少,也更加經濟。
  在MPEG-4需要6Mbps的傳輸速率匹配時,H.264只需要3Mbps-4Mbps的傳輸速率。我們用交通運輸來做更加形象的比喻:同樣是用一輛卡車運輸一個大箱子,假如MPEG-4能把箱子減重一半,那麼H.264能把箱子減重爲原來的1/4,在卡車載重量不變的情況下,H.264比MPEG-2讓卡車的載貨量增加了二倍。 
  H.264獲得優越性能的代價是計算複雜度的大幅增加,例如分層設計、多幀參論、多模式運動估計、改進的幀內預測等,這些都顯著提高了預測精度,從而獲得比其他標準好得多的壓縮性能。不斷提高的硬件處理能力和不斷優化的軟件算法是H.264得以風行的生存基礎。早在十年前,主頻爲幾十兆的CPU就達到了頂級,而如今普通的臺式機,CPU的主頻已經高達幾千兆。按照摩爾定律的說法,芯片單位面積的容量每18個月翻一番,因此H.264所增加的運算複雜度相對於性能提升效果而言微不足道。更何況新的計算方法層出不窮,也相對緩解H.264對處理速度的飢渴需求。

H.264 與MPEG-4的比較

1、在極低碼率(32-128Kbps)的情況下,H.264與MPEG-4相比具有性能倍增效應,即: 相同碼率的H.26L媒體流和MPEG-4媒體流相比,H.26L擁有大約3個分貝的增益(畫質水平倍增)。 32Kbps的H.26L媒體流,其信躁比與128K的MPEG-4媒體流相近。即在同樣的畫面質量下,H.264的碼率僅僅爲MPEG-4的四分之一。 

h.264/AVC <wbr> <wbr>(advanced <wbr>video <wbr>coding <wbr>高級視頻編碼)

2、 H.26L在中低碼率下與MPEG-4比較: 在中低碼率(32-128Kbps)的情況下,H.26L與MPEG-4相比具有性能倍增效應。

h.264/AVC <wbr> <wbr>(advanced <wbr>video <wbr>coding <wbr>高級視頻編碼)

3、H.264與MPEG-4的畫面效果比較

  下圖左爲MPEG-4在碼率爲1Mbps情況下的畫面質量,右爲H.26L在碼率爲512Kbps情況下的畫面質量。同樣體現了H.26L的性能倍增。

h.264/AVC <wbr> <wbr>(advanced <wbr>video <wbr>coding <wbr>高級視頻編碼)

  H.264標準推出僅一年,大部分宣傳支持H.264的終端廠商主要都是支持H.264的基本檔次。因爲H.264編解碼複雜度的增加,對終端廠商的視頻處理能力提出了挑戰。現有的平臺,要麼就根本無法做H.264的編解碼,要麼就不能支持高碼率下的編解碼。而視維視頻會議產品最大支持640*480,視頻標準採用最新的高碼率編解碼技術,圖像清晰流暢。在帶寬節約39%的基礎上視頻質量的信噪比要比同類產品高出40%,是目前視頻質量最好的編碼技術。


H.264/AVC核心技術概覽
   這個標準是由下面幾個處理步驟組成的:

  幀間和幀內預測
  變換(和反變換)
  量化(和反量化)
  環路濾波
  熵編碼
  單張的圖片流組成了視頻,它能分成16X16像素的“宏塊”,這種分塊方法簡化了在視頻壓縮算法中每個步驟的處理過程。舉例來說,從標準清晰度標準視頻流解決方案(720X480)中截取的一幅圖片被分成1350(45X30)個宏塊,然後在宏塊的層次進行進一步的處理。
幀間預測
  改良的運動估計。運動估計用來確定和消除存在於視頻流中不同圖片之間的時間冗餘。當運動估計搜索是根據過去方向的圖片,那麼被編碼的圖片稱爲“P幀圖片”,當搜索是根據過去和將來兩種方向的圖片,那麼被編碼的圖片被稱爲“B幀圖片”。
  爲了提高編碼效率,爲了包含和分離在“H.264運動估計-改良的運動估計”圖中的運動宏塊,宏塊被拆分成更小的塊。然後,以前或將來的圖片的運動矢量被用來預測一個給定的塊。H.264/MPEG-4 AVC發明了一種更小的塊,它具有更好的靈活性,在運動矢量方面可以有更高的預測精度。

H.264運動估計-改良的運動估計
幀內預測
  不能運用運動估計的地方,就採用幀內估計用來消除空間冗餘。內部估計通過在一個預定義好的集合中不同方向上的鄰近塊推測相鄰像素來預測當前塊。然後預測塊和真實塊之間的不同點被編碼。這種方法是H.264/MPEG-4 AVC所特有的,尤其對於經常存在空間冗餘的平坦背景特別有用。
變換
  運動估計和內部估計後的結果通過變換被從空間域轉換到頻率域。H.264/MPEG-4 AVC使用整數DCT4X4變換。而MPEG-2和MPEG-4使用浮點DCT8X8變換。更小塊的H.264/MPEG-4 AVC減少了塊效應和明顯的人工痕跡。整數係數消除了在MPEG-2和MPEG-4中進行浮點係數運算時導致的精度損失。
量化

  變換後的係數被量化,減少了整數係數的預測量和消除了不容易被感知高頻係數。這個步驟也用來控制輸出的比特率維持在一個基本恆定的常量。

H.264量化/碼率控制

環路濾波
  H.264/MPEG-4 AVC標準定義了一個對16X16宏塊和4X4塊邊界的解塊過濾過程。在宏塊這種情況下,過濾的目的是消除由於相鄰宏塊有不同的運動估計類型(比如運動估計和內部估計)或者不同的量化參數導致的人工痕跡。在塊邊界這種情況下,過濾的目的是消除可能由於變換/量化和來自於相鄰塊運動矢量的差別引起的人工痕跡。環路濾波通過一個內容自適應的非線性算法修改在宏塊/塊邊界的同一邊的兩個像素。
熵編碼
  在熵編碼之前,4X4的量化係數必須被重排序。根據這些係數原來採用的預測算法爲運動估計或者內部估計的不同來選擇不同的掃描類型創建一個重排序的串行化流。掃描類型按照從低頻到高頻的順序排序這些係數。既然高頻係數大多數趨向於零,那麼利用遊程編碼就可以縮減零的數目,從而高效的達到熵編碼的目的。
H.264熵編碼-係數的串行化
  在熵編碼步驟通過映射符號的字節流來表示運動矢量,量化係數和宏塊頭。熵編碼通過設計用一個較少的比特位數來表示頻繁使用的符號,比較多的比特位數來表示不經常使用的符號。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章