h.264視訊編碼器

2020-09-24 14:00:28

隨著時代的發展、Internet的普及,以及對視訊傳輸需求不斷提高,現有的這些視訊壓縮標準明視訊記憶體在著一些缺陷和侷限性。為了克服這些缺點, ITU-T在繼H.261,H.263等視訊壓縮標準之後,制定了新一代視訊壓縮標準,並正式命名為H.264。新一代標準H.264可以得到更好的壓縮影象效果、擁有更多的功能和更大的靈活性。

本文首先介紹了多媒體技術發展的狀況以及視訊壓縮的基本概念和方法,然後分析了H.264編解碼器的基本結構和實現流程,本文在細緻的分析了其編解碼器後,對於解碼器,編碼器都採用了多種方式進行優化。本文最後還將H.264做和MPEG4編碼進行對比做效能分析。本系統開發的視訊編碼器具有高效,穩定,在保證其優良效能的前提下,達到了縮短執行時間的目的。

     H.264是一種視訊高壓縮技術,全稱是MPEG-4 AVC,用中文說是「活動影象專家組-4的高等視訊編碼」,或稱為MPEG-4 Part10。它是由國際電信標準化部門ITU-T和規定MPEG的國際標準化組織ISO/國際電工協會IEC共同制訂的一種活動影象編碼方式的國際標準格式。原來國際電信標準化部門從1998年就H.26L的H.26S兩個分組,前者研製節目時間較長的高壓縮編碼技術,後者則指短節目標準制訂部門。H.26S 的標準化技術的名稱為H.263,聽起來很耳生,但實質上卻早在用了,還被罵得很激烈。因為,H.263先入為大,一直以MPEG-4大內涵的名字在用。 H.263的全稱為MPEG-4 Visual或MPEG-4 Pall Ⅱ,即MPEG-4視訊簡單層面的基礎編碼方式。2001年後,國際電信標準化部門ITU-T和MPEG的上級組織國際標準化組織ISO/國際電氣標準會議IEC成立了聯合視訊組JVT,在H.26L基礎進行H.264的標準化。

1.1視訊編碼標準的發展狀況

MPEG是活動影象專家組Moving Pictures Expert Group的簡稱。它制定了MPEG-1/2/4/7等視訊標準。MPEG-1適用於位元速率為1.5Mbps的活動影象及其伴音的編碼。它主要應用於多媒體計算機、教育與訓練等領域,特別是基於CD的數位視聽系統,如VCD,它還可以應用於VOD和互動式電視等更廣闊的應用領域。MPEG-2是活動影象及其伴音資訊的通用編碼標準,用於對標準清晰度電視(SDTV)和高清晰度電視(HDTV)的編碼,位元速率可達到100Mbps。它主要應用於數位影片儲存、視訊廣播和通訊,是對MPEG-1的重大改進和發展,並且從技術上促進了計算機、廣播電視、數位通訊三大領域的交匯融合,發揮出巨大作用。這兩個協定使得多媒體視訊編碼技術邁上了一個新的臺階。

MPEG-4的初衷是針對視訊會議、視訊電話的甚低位元率編碼,但在制定過程中,隨著多媒體技術的發展和應用需求的變化,引入了視訊物件(VO)的概念。和傳統的基於影象幀的壓縮方法相比,基於視訊物件的策略更易於操作和控制編碼,並能更靈活的適應在基於內容的多種應用中。

MPEG-7全稱是多媒體內容描述介面,它對各種不同型別的多媒體資訊進行標準化描述,並將該描述與所描述的內容相聯絡,力求能夠更快速並且有效的搜尋出使用者所需的不同型別的多媒體資料。MPEG-7重點在於影音內容的描述和定義,以明確的資料結構和語法來定義影音資料的內容。與此同時,ITU-T為滿足可視電話和視訊會議等方面的應用,指定了H.261,H.263等標準。

1990年制定完成的H.261標準(ITU-T Recommendation H.261,Video codec for audiovisual services at p×64kbps)簡稱為p×64,當p=1或2時,位元速率最大為128kbps。由於該位元速率太低,能傳輸影象的清晰度不太高,所以只能適用於面對面的可視電話。當p≥6時,位元速率為384kbps,可以傳輸清晰度尚好的影象,適用於會議電視。

ITU-T的H.263標準(ITU-T Recommendation H.263,Video Coding for LowBit rate Communication)是ITU-T於1996年制定的用於低位元速率聲像服務的壓縮標準,它是ITU-T H.324系列標準所規定的多媒體通訊終端的視訊編解碼標準。H.263實現了位元速率在64kbps以下的視訊壓縮。由於要在低位元速率下實現多媒體通訊,技術上實現就更為困難和複雜,因此,H.263採用了多種先進技術以降低位元速率。

在H.263以後還有一些改進的版本,如H.263+,是對H.263的進一步完善和發展,使得H.263在靈活性和編碼效率等方面有了很大的提高,能適應更加廣泛的應用要求。隨著在低位元速率,網路應用,可延伸性等方面的一致性,ITU-T的VCEG(視訊編碼專家組)和ISO/IEC的MPEG(運動影象編碼專家組)成立了一個聯合視訊小組(JVT:joint video team),共同開發一個新的視訊編碼標準。它既是ITU-T的H.264,又是MPEG-4的第10部分。

第三章 視訊編碼原理

3.1 H.264的發展

  隨著HDTV的興起,H.264這個規範頻頻出現在我們眼前,HD-DVD和藍光DVD均計劃採用這一標準進行節目製作。而且自2005年下半年以來,無論是NVIDIA還是ATI都把支援H.264硬體解碼加速作為自己最值得誇耀的視訊技術。H.264到底是何方「神聖」呢?

  H.264,同時也是MPEG-4第十部分,是由ITU-T視訊編碼專家組(VCEG)和ISO/IEC動態影象專家組(MPEG)聯合組成的聯合視訊組(JVT,Joint Video Team)提出的高度壓縮數位影片編解碼器標準。

   H.264是一種高效能的視訊編解碼技術。目前國際上制定視訊編解碼技術的組織有兩個,一個是「國際電聯(ITU-T)「,它制定的標準有H.261、H.263、H.263+等,另一個是「國際標準化組織(ISO)」它制定的標準有MPEG-1、MPEG-2、MPEG-4等。而H.264則是由兩個組織聯合組建的聯合視訊組(JVT)共同制定的新數位影片編碼標準,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高階視訊編碼(Advanced Video Coding,AVC),而且它將成為MPEG-4標準的第10部分。因此,不論是MPEG-4 AVC、MPEG-4 Part 10,還是ISO/IEC 14496-10,都是指H.264。

  H.264最大的優勢是具有很高的資料壓縮比率,在同等影象品質的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。舉個例子,原始檔案的大小如果為88GB,採用MPEG-2壓縮標準壓縮後變成3.5GB,壓縮比為25∶1,而採用H.264壓縮標準壓縮後變為879MB,從88GB到879MB,H.264的壓縮比達到驚人的102∶1!H.264為什麼有那麼高的壓縮比?低位元速率(Low Bit Rate)起了重要的作用,和MPEG-2和MPEG-4 ASP等壓縮技術相比,H.264壓縮技術將大大節省使用者的下載時間和資料流量收費。尤其值得一提的是,H.264在具有高壓縮比的同時還擁有高品質流暢的影象。

  H.264演演算法的優勢

  H.264是在MPEG-4技術的基礎之上建立起來的,其編解碼流程主要包括5個部分:幀間和幀內預測(Estimation)、變換(Transform)和反變換、量化(Quantization)和反量化、環路濾波(Loop Filter)、熵編碼(Entropy Coding)。

  H.264/MPEG-4 AVC(H.264)是1995年自MPEG-2視訊壓縮標準釋出以後的最新、最有前途的視訊壓縮標準。H.264是由ITU-T和ISO/IEC的聯合開發組共同開發的最新國際視訊編碼標準。通過該標準,在同等圖象品質下的壓縮效率比以前的標準提高了2倍以上,因此,H.264被普遍認為是最有影響力的行業標準。

3.2 H.264標準概述

  H.264和以前的標準一樣,也是DPCM加變換編碼的混合編碼模式。但它採用「迴歸基本」的簡潔設計,不用眾多的選項,獲得比H.263++好得多的壓縮效能;加強了對各種通道的適應能力,採用「網路友好」的結構和語法,有利於對誤碼和丟包的處理;應用目標範圍較寬,以滿足不同速率、不同解析度以及不同傳輸(儲存)場合的需求。

  技術上,它集中了以往標準的優點,並吸收了標準制定中積累的經驗。與H.263 v2(H.263+)或MPEG-4簡單類(Simple Profile)相比,H.264在使用與上述編碼方法類似的最佳編碼器時,在大多數位元速率下最多可節省50%的位元速率。H.264在所有位元速率下都能持續提供較高的視訊品質。H.264能工作在低延時模式以適應實時通訊的應用(如視訊會議),同時又能很好地工作在沒有延時限制的應用,如視訊儲存和以伺服器為基礎的視訊流式應用。H.264提供包傳輸網中處理包丟失所需的工具,以及在易誤碼的無線網中處理位元誤碼的工具。

  在系統層面上,H.264提出了一個新的概念,在視訊編碼層(Video Coding Layer, VCL)和網路提取層(Network Abstraction Layer, NAL)之間進行概念性分割,前者是視訊內容的核心壓縮內容之表述,後者是通過特定型別網路進行遞送的表述,這樣的結構便於資訊的封裝和對資訊進行更好的優先順序控制。

3.3 H.264標準的關鍵技術

·幀內預測編碼

  幀內編碼用來縮減影象的空間冗餘。為了提高H.264幀內編碼的效率,在給定幀中充分利用相鄰宏塊的空間相關性,相鄰的宏塊通常含有相似的屬性。因此,在對一給定宏塊編碼時,首先可以根據周圍的宏塊預測(典型的是根據左上角的宏塊,因為此宏塊已經被編碼處理),然後對預測值與實際值的差值進行編碼,這樣,相對於直接對該幀編碼而言,可以大大減小位元速率。

  H.264提供6種模式進行4×4畫素宏塊預測,包括1種直流預測和5種方向預測,如圖2所示。在圖中,相鄰塊的A到I共9個畫素均已經被編碼,可以被用以預測,如果我們選擇模式4,那麼,a、b、c、d4個畫素被預測為與E相等的值,e、f、g、h4個畫素被預測為與F相等的值,對於影象中含有很少空間資訊的平坦區,H.264也支援16×16的幀內編碼。

·幀間預測編碼

  幀間預測編碼利用連續幀中的時間冗餘來進行運動估計和補償。H.264的運動補償支援以往的視訊編碼標準中的大部分關鍵特性,而且靈活地新增了更多的功能,除了支援P幀、B幀外,H.264還支援一種新的流間傳送幀——SP幀。碼流中包含SP幀後,能在有類似內容但有不同位元速率的碼流之間快速切換,同時支援隨機接入和快速回放模式。圖3 SP-幀示意圖H.264的運動估計有以下4個特性。

  (1)不同大小和形狀的宏塊分割

  對每一個16×16畫素宏塊的運動補償可以採用不同的大小和形狀,H.264支援7種模式,如圖4所示。小塊模式的運動補償為運動詳細資訊的處理提高了效能,減少了方塊效應,提高了影象的品質。

  (2)高精度的亞畫素運動補償

  在H.263中採用的是半畫素精度的運動估計,而在H.264中可以採用1/4或者1/8畫素精度的運動估值。在要求相同精度的情況下,H.264使用1/4或者1/8畫素精度的運動估計後的殘差要比H.263採用半畫素精度運動估計後的殘差來得小。這樣在相同精度下,H.264在幀間編碼中所需的位元速率更小。

  (3)多幀預測

  H.264提供可選的多幀預測功能,在幀間編碼時,可選5個不同的參考幀,提供了更好的糾錯效能,這樣更可以改善視訊影象品質。這一特性主要應用於以下場合:週期性的運動、平移運動、在兩個不同的場景之間來回變換攝像機的鏡頭。

  (4)去塊濾波器

  H.264定義了自適應去除塊效應的濾波器,這可以處理預測環路中的水平和垂直塊邊緣,大大減少了方塊效應。

·整數變換

  在變換方面,H.264使用了基於4×4畫素塊的類似於DCT的變換,但使用的是以整數為基礎的空間變換,不存在反變換,因為取捨而存在誤差的問題。與浮點運算相比,整數DCT變換會引起一些額外的誤差,但因為DCT變換後的量化也存在量化誤差,與之相比,整數DCT變換引起的量化誤差影響並不大。此外,整數DCT變換還具有減少運算量和複雜度,有利於向定點DSP移植的優點。

·量化

  H.264中可選32種不同的量化步長,這與H.263中有31個量化步長很相似,但是在H.264中,步長是以12.5%的複合率遞進的,而不是一個固定常數。在H.264中,變換系數的讀出方式也有兩種:之字形(Zigzag)掃描和雙掃描。大多數情況下使用簡單的之字形掃描;雙掃描僅用於使用較小量化級的塊內,有助於提高編碼效率。

·.熵編碼

  視訊編碼處理的最後一步就是熵編碼,在H.264中採用了兩種不同的熵編碼方法:通用可變長編碼(UVLC)和基於文字的自適應二進位制算術編碼(CABAC)。

  在H.263等標準中,根據要編碼的資料型別如變換系數、運動向量等,採用不同的VLC碼錶。H.264中的UVLC碼錶提供了一個簡單的方法,不管符號表述什麼型別的資料,都使用統一變字長編碼表。其優點是簡單;缺點是單一的碼錶是從概率統計分佈模型得出的,沒有考慮編碼符號間的相關性,在中高位元速率時效果不是很好。

  因此,H.264中還提供了可選的CABAC方法。算術編碼使編碼和解碼兩邊都能使用所有句法元素(變換系數、運動向量)的概率模型。為了提高算術編碼的效率,通過內容建模的過程,使基本概率模型能適應隨視訊幀而改變的統計特性。內容建模提供了編碼符號的條件概率估計,利用合適的內容模型,存在於符號間的相關性可以通過選擇目前要編碼符號鄰近的已編碼符號的相應概率模型來去除,不同的句法元素通常保持不同的模型。

 

·基本結構

H.264的編碼器如圖3-1所示,包含兩條資料流路徑,一條「前向」路徑(從左到右,藍色表示)和一條「重建」路徑(從右到左,紫色表示)。

圖3-1 H.264編碼器模型

·前向路徑:

Fn為當前輸入幀。它以宏塊為單元進行處理(對應原來影象的16×16個畫素)。每個宏塊按照幀內或者幀間模式被編碼。無論那種模式,都會由重建幀形成一個預測塊P。如果是幀內模式,P由當前已經被編碼,解碼並且重建的幀n的取樣值來預測。如果是幀間模式,P從以前的一個或者多個運動參考幀的運動補償中獲得。即圖中的F’n-1,每個宏塊的預測可由以前的一幀或者幾幀已經編碼,重建的影象得到。

當前宏塊減去預測值得到差值宏塊Dn。Dn經過變換和量化後得到X(經過量化的變換系數)。這些係數被掃描後進行熵編碼。然後和其他一些資訊(比如宏塊預測型別,量化步長以及運動向量資訊)形成壓縮後的碼流。最後送到NAL傳輸。重建路徑:

量化好的宏塊係數X將被解碼以形成重建幀以供繼續編碼。X經過反量化,反變換後得到差值宏塊D’n,因為量化產生誤差,所以和原差值Dn不一樣。預測宏塊P加上D’n生成重建宏塊uF’n。uF’n經過一個濾波器來減少塊失真,得到F’n,由一系列的F’n得到重建幀。

·JM模型採用的搜尋方法

在JM中運動搜尋採用了一種更先進的快速搜尋方法叫做非對稱十字型多層次六邊形格點搜尋演演算法Search)。這是一項有中國專利的演演算法,由於它在低位元速率大運動的影象序列編碼時,在保持較好率失真效能的條件下,運算量十分低,相對於H.264中原有的快速全搜尋演演算法可節約90%以上的計算。現已被H.264標準正式採納。

它的搜尋過程也比較複雜,採用了非對稱交叉搜尋,不均勻多六邊形格點搜尋,擴充套件六邊形搜尋等多種先進的方法,是一種混合的搜尋方式。

它主要有以下的四個步驟如下圖所示:

圖3-2 搜尋步驟

其搜尋方法主要有:1-根據預測資訊初始化搜尋中心;2-非對稱交叉搜尋;3-不均勻多六邊形網格搜尋;3-擴充套件六邊形搜尋;

3.5 H.264解碼器的分析

解碼器模型如圖3-3所示:解碼器從網路適配層接收碼流。經過熵解碼和重新排序後得到量化係數X。然後,再經過反量化,反變換後得到D`n。從碼流的頭資訊,解碼器建立一個預測宏塊P,它和編碼器中原來的P是一樣的。P加上D`n得到Uf`n,濾波後得到解碼宏塊F`n,其基本結構如下所示:

圖3-3 解碼器結構

H.264所採用的一些先進技術在解碼器的各個部分中得到了相應的體現。在解碼器的反變換中採用了由DCT變換改進而來的整數變換,它的預測不但有幀間預測模式還有幀內預測模式,解碼後使用了去塊效應的濾波器。

·變換和量化

無論是經過幀內預測還是幀間預測,殘差宏塊都需要進行變換和量化。以前的標準一般採用8×8的DCT變換。H.264根據殘差資料的型別採用三種不同的方式:幀內編碼宏塊的亮度DC係數採用4×4的矩陣(僅對於16×16的預測模式);色度DC係數使用2×2的矩陣;其他的都採用4×4的塊變換。宏塊裡資料塊按圖3-4所示的順序傳輸。如果是16×16的幀內預測宏塊,首先傳輸編號-1的亮度DC係數,然後是編號0-15的亮度殘差資料,最後是編號16-25的色度DC和色度殘差資料。

圖3-4 宏塊中殘差塊的掃描順序

·幀間編碼宏塊的預測

幀間預測是從已經編碼過的一幀或者幾幀得到的。它是在參考幀取樣點平面上進行平移(運動補償預測)。相對於以前的視訊標準,H.264支援更多種的塊的劃分(到4×4大小)和亞畫素精度的運動向量(到1/4畫素精度)。幀內編碼的每個塊都是由參考幀中相同大小的的區域預測得到的。它們間的偏移量就是運動向量。因為參考幀本身不可能有亞畫素取樣點,所以需要利用附近的畫素內插產生亞畫素的取樣點。圖3-5解釋了它的內插過程。

圖3-5 亞畫素點產生示意圖

半畫素點的插值分別由水平和垂直方向的6階的FIR濾波器產生。1/4畫素點在整數畫素點和半畫素點上進行插值。

3.6 H.264的變換演演算法

H.264中的整型變換方式主要有3種:4*4殘差變換,4*4亮度DC係數變換(16*16幀內模式下),2*2色度DC係數變換。H.264協定中的量化採用分級量化原理。H.264的變換和量化如圖3.6所示。

圖3-6 H.264變換與量化

·H.264的4*4殘留變換

4*4殘留變換及圖3-7所示的4*4變換1,它是以下式為變換核的整形變換,二維整型變換通常可以分解為一維的形式,先進行4行一維整數變換,再進行4列一維整數變換。一維整數變換公式為:

一維反變換公式:

式中A,B,C,D表示變換系數;a,b,e,d表示輸入象素;al,bl,cl,dl表示恢復係數。對上式分析可知,變換的係數均為整數,這樣通過移位,加減就可以實現其演演算法。

 

圖3-7 整型正變換蝶形圖

·H.264亮度直流係數變換

當宏塊的編碼在16*6l幀內模式下,此時整個16*16塊的亮度分量是由相鄰象素點預測得到。宏塊的16個4*4塊的直流分量組成一個4X4直流係數矩陣Xl,這個矩陣的變換採用離散哈達馬變換(DiscretelldamaardTransform,DHT),如圖所示4*4變換2。

正向變換公式:

反變換公式:

式中ZD是幾量化後的矩陣,XQD經反量化可以得到.在幀內編碼的宏塊裡,大多數的能量都集中在直流係數上,這種變換有利於進一步壓縮4*4的亮度直流訊號的相關性。

本課題,我們偵錯的JM7.3版本。首先下載並解壓JM測試模型,在子目錄在新建一個mybin的資料夾,把bin的檔案拷入mybin的檔案裡:

圖4-1 JM資料夾中所包含的檔案

開啟工程檔案jm.dsw.進入VC介面。

在file選擇new,新建一個myencoder.cfg(在lend工程下)在路徑下選擇mybin檔案路徑.確定。

圖4-2 開啟工程

這時在lendcod files下的Header Files下多了一個myencoder.cfg..電擊encoder.cfg在右邊出現的批設定。

.

圖4-3 引陣列態檔

在lendcod files下的Header Files下的configfile.h檔案的

#define DEFAULTCONFIGFILENAME 「encoder.cfg」

改為

#define DEFAULTCONFIGFILENAME 「myencoder.cfg」

然後在選中lencod files 在工程的選單下setting的DEBUG設定如圖引數設定:

圖4-4 設定介面

然後編譯,若要修改某個引數。可直接在myencoder.cfg中修改。比如YUV檔案,設定檔案的安放路徑為E:\視訊編碼的其他版本\JM路徑下的dancer_cif_ori90.yuv。我們在myencoder.cfg中InputFile = 「E:\視訊編碼的其他版本\JM\dancer_cif_ori90.yuv」

 

 

 

4.2 H.264解碼器庫檔案的使用方法

·介面函數資訊

1.void JVT_init(struct inp_par*input,struct img_par*img,

StorablePicture*dec_picture,char*filename);

功能:解碼器的初始化。

引數資訊:struct inp_par*input――――設定資訊引數

struct img_par*img――――影象資訊引數

StorablePicture*dec_picture――――解碼後的影象序列

Char*filename――――輸入的H.264檔案的檔名

 

2.void JVT_dec(struct inp_par*input,struct img_par*img,

NALU_t*nalu,int*current_header);

功能:解碼第i幀。

引數資訊:struct inp_par*input――――設定資訊引數

struct img_par*img――――影象資訊引數

NALU_t*nalu――――指向nalu單元的指標

int*current_header――――幀頭資訊

 

3.void JVT_free(struct inp_par*input,struct img_par*img,

ColocatedParams*Co_located);

功能:銷燬解碼器,釋放資源。

引數資訊:struct inp_par*input――――設定資訊引數

struct img_par*img――――影象資訊引數

ColocatedParams*Co_located――――儲存單元分配引數

 

4.NALU_t*AllocNALU(int buffersize);

功能:分配NALU單元。

引數資訊:int buffersize――――單元大小

 

 

5.void FreeNALU(NALU_t*n);

功能:釋放NALU單元。

引數資訊:NALU_t*n――――NALU單元地址

 

6.void CloseBitstreamFile();

功能:關閉檔案。

由於jm進行編碼的是都是YUV檔案,所以我們首先下載一個YUV播放器。

圖4-5 YUV播放器

該播放器是由VC開發的。是一個WINDOWS下的播放器,它可以播放YUV,m4u和264多種格式的視訊檔。可以同時開啟多個視窗,可以單幀和連續播放視訊。為了便於對不同格式影象的主觀品質進行比較還加入了影象放大功能。

其具有VideoPlayer的播放部分和解碼部分分開處理,解碼部分採用單獨的解碼庫delib.lib和libxvidcore.lib分別解碼MPEG-4和H.264格式的視訊檔等功能。

4.3 JM程式偵錯

我們首先執行JM程式,得到如下的結果。

圖4-6 JM執行結果

由此可知,輸入的視訊檔為foreman_part_qcif.yuv,輸出檔案有四個。且其中輸出的播放檔案是test_rec.yuv。我們首先來波形兩個檔案,來主管的對比效果。

 

圖4-7 H.264壓縮前後效果對比

下面我們對進行H.264壓縮前後其訊雜比進行分析。

圖4-8 H.264訊雜比分析

通過模擬,我們可以發現,當位元率越大的時候,訊雜比就越大。

以前av資訊被看作純粹的資料,編碼時沒有結合自身包含的內容,例如視訊序列被認為是象素的組合。MPEG4採用了物件的概念,不同的資料來源被視作不同的物件,分別編碼。資料的接收者不再是被動的,他可以對不同的物件進行自己的操作:刪除、新增、移動等。語音、影象、視訊等可以作為單獨存在的物件,也可以集合成一個更高層的物件,我們稱之為場景。MPEG4在編碼前首先要對視訊序列進行分析和理解以提取目標。

一幅複雜的畫面就由這些可操作的原始目標組成。如果對這些目標分別進行編碼 ,終端使用者便可以自由地操縱這些原始目標 (如目標的座標 ,視點 ,動畫等 ),還可得到一些原始目標的資訊。

優點:

不同物件的獨立編碼可以取得較高的壓縮效能,如背景採用壓縮比較高、損失較大的辦法編碼,運動物體採用壓縮比較低、損失較小的辦法,在壓縮效率與解碼品質間得到較好的平衡。同時也帶來在終端處可以操縱內容的能力。而傳統的壓縮方法是基於幀、基於塊的 ,壓縮效能不高且無法對物件進行操作。MPEG4中的物件操作使得使用者可以在使用者端直接將不同物件進行拼接 ,得到使用者自己合成的影象,這在傳統方法中是無法直接實現的。

對比MPEG4和H.264其訊號噪比如下所示:

圖4-9 H.264和MPEG4訊雜比分析

從上圖分析,H.264的編碼效能由於MPEG4新能,且當位元率越大的時候,效能優勢更大。

  TML-8為H.264的測試模式,用它來對H.264的視訊編碼效率進行比較和測試。測試結果所提供的PSNR已清楚地表明,相對於MPEG-4(ASP:Advanced Simple Profile)和H.263++(HLP:High Latency Profile)的效能,H.264的結果具有明顯的優越性。

  H.264的PSNR比MPEG-4(ASP)和H.263++(HLP)明顯要好,在6種速率的對比測試中,H.264的PSNR比MPEG-4(ASP)平均要高2dB,比H.263(HLP)平均要高3dB。6個測試速率及其相關的條件分別為:32 kbit/s速率、10f/s影格率和QCIF格式;64 kbit/s速率、15f/s影格率和QCIF格式;128kbit/s速率、15f/s影格率和CIF格式;256kbit/s速率、15f/s影格率和QCIF格式;512 kbit/s速率、30f/s影格率和CIF格式;1024 kbit/s速率、30f/s影格率和CIF格式。