新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > H.264視頻編碼基本知識

H.264視頻編碼基本知識

作者: 時(shí)間:2011-04-23 來源:網(wǎng)絡(luò) 收藏

一、 視頻編碼技術(shù)的發(fā)展歷程

   視頻編碼技術(shù)基本是由ISO/IEC制定的MPEG-x和ITU-T制定的H.26x兩大系列視頻編碼國際標(biāo)準(zhǔn)的推出。從H.261視頻編碼建議,到H.262/3、MPEG-1/2/4等都有一個(gè)共同的不斷追求的目標(biāo),即在盡可能低的碼率(或存儲容量)下獲得盡可能好的圖像質(zhì)量。而且,隨著市場對圖像傳輸需求的增加,如何適應(yīng)不同信道傳輸特性的問題也日益顯現(xiàn)出來。于是IEO/IEC和ITU-T兩大國際標(biāo)準(zhǔn)化組織聯(lián)手制定了視頻新標(biāo)準(zhǔn)H.264來解決這些問題。
H.261是最早出現(xiàn)的視頻編碼建議,目的是規(guī)范ISDN網(wǎng)上的會議電視和可視電話應(yīng)用中的視頻編碼技術(shù)。它采用的算法結(jié)合了可減少時(shí)間冗余的幀間預(yù)測和可減少空間冗余的DCT變換的混合編碼方法。和ISDN信道相匹配,其輸出碼率是p×64kbit/s。p取值較小時(shí),只能傳清晰度不太高的圖像,適合于面對面的電視電話;p取值較大時(shí)(如 p>6),可以傳輸清晰度較好的會議電視圖像。H.263 建議的是低碼率圖像壓縮標(biāo)準(zhǔn),在技術(shù)上是H.261的改進(jìn)和擴(kuò)充,支持碼率小于64kbit/s的應(yīng)用。但實(shí)質(zhì)上H.263以及后來的H.263+和H.263++已發(fā)展成支持全碼率應(yīng)用的建議,從它支持眾多的圖像格式這一點(diǎn)就可看出,如Sub-QCIF、QCIF、CIF、4CIF甚至16CIF等格式。

MPEG-1標(biāo)準(zhǔn)的碼率為1.2Mbit/s左右,可提供30幀CIF(352×288)質(zhì)量的圖像,是為CD-ROM光盤的視頻存儲和播放所制定的。MPEG-l標(biāo)準(zhǔn)視頻編碼部分的基本算法與H.261/H.263相似,也采用運(yùn)動(dòng)補(bǔ)償?shù)膸g預(yù)測、二維DCT、VLC游程編碼等措施。此外還引入了幀內(nèi)幀(I)、預(yù)測幀(P)、雙向預(yù)測幀(B)和直流幀(D)等概念,進(jìn)一步提高了編碼效率。在MPEG-1的基礎(chǔ)上,MPEG-2標(biāo)準(zhǔn)在提高圖像分辨率、兼容數(shù)字電視等方面做了一些改進(jìn),例如它的運(yùn)動(dòng)矢量的精度為半像素;在編碼運(yùn)算中(如運(yùn)動(dòng)估計(jì)和DCT)區(qū)分"幀"和"場";引入了編碼的可分級性技術(shù),如空間可分級性、時(shí)間可分級性和信噪比可分級性等。近年推出的MPEG-4標(biāo)準(zhǔn)引入了基于視聽對象(AVO:Audio-Visual Object)的編碼,大大提高了視頻通信的交互能力和編碼效率。 MPEG-4中還采用了一些新的技術(shù),如形狀編碼、自適應(yīng)DCT、任意形狀視頻對象編碼等。但是MPEG-4的基本視頻編碼器還是屬于和H.263相似的一類混合編碼器。

總之,H.261建議是視頻編碼的經(jīng)典之作,H.263是其發(fā)展,并將逐步在實(shí)際上取而代之,主要應(yīng)用于通信方面,但H.263眾多的選項(xiàng)往往令使用者無所適從。MPEG系列標(biāo)準(zhǔn)從針對存儲媒體的應(yīng)用發(fā)展到適應(yīng)傳輸媒體的應(yīng)用,其核心視頻編碼的基本框架是和H.261一致的,其中引人注目的MPEG-4的"基于對象的編碼"部分由于尚有技術(shù)障礙,目前還難以普遍應(yīng)用。因此,在此基礎(chǔ)上發(fā)展起來的新的視頻編碼建議H.264克服了兩者的弱點(diǎn),在混合編碼的框架下引入了新的編碼方式,提高了編碼效率,面向?qū)嶋H應(yīng)用。同時(shí),它是兩大國際標(biāo)準(zhǔn)化組織的共同制定的,其應(yīng)用前景應(yīng)是不言而喻的。


二、 H.264介紹
   H.264是ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動(dòng)圖像編碼專家組)的聯(lián)合視頻組(JVT:joint video team)開發(fā)的一個(gè)新的數(shù)字視頻編碼標(biāo)準(zhǔn),它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份開始草案征集,1999年9月,完成第一個(gè)草案,2001年5月制定了其測試模式TML-8,2002年6月的 JVT第5次會議通過了H.264的FCD板。2003年3月正式發(fā)布。

H.264和以前的標(biāo)準(zhǔn)一樣,也是DPCM加變換編碼的混合編碼模式。但它采用"回歸基本"的簡潔設(shè)計(jì),不用眾多的選項(xiàng),獲得比H.263++好得多的壓縮性能;加強(qiáng)了對各種信道的適應(yīng)能力,采用"網(wǎng)絡(luò)友好"的結(jié)構(gòu)和語法,有利于對誤碼和丟包的處理;應(yīng)用目標(biāo)范圍較寬,以滿足不同速率、不同解析度以及不同傳輸(存儲)場合的需求;它的基本系統(tǒng)是開放的,使用無需版權(quán)。

在技術(shù)上,H.264標(biāo)準(zhǔn)中有多個(gè)閃光之處,如統(tǒng)一的VLC符號編碼,高精度、多模式的位移估計(jì),基于4×4塊的整數(shù)變換、分層的編碼語法等。這些措施使得H.264算法具有很的高編碼效率,在相同的重建圖像質(zhì)量下,能夠比H.263節(jié)約50%左右的碼率。H.264的碼流結(jié)構(gòu)網(wǎng)絡(luò)適應(yīng)性強(qiáng),增加了差錯(cuò)恢復(fù)能力,能夠很好地適應(yīng)IP和無線網(wǎng)絡(luò)的應(yīng)用。

三、 H.264的技術(shù)亮點(diǎn)

1、分層設(shè)計(jì)

   H.264的算法在概念上可以分為兩層:視頻編碼層(VCL:Video Coding Layer)負(fù)責(zé)高效的視頻內(nèi)容表示,網(wǎng)絡(luò)提取層(NAL:Network Abstraction Layer)負(fù)責(zé)以網(wǎng)絡(luò)所要求的恰當(dāng)?shù)姆绞綄?shù)據(jù)進(jìn)行打包和傳送。在VCL和NAL之間定義了一個(gè)基于分組方式的接口,打包和相應(yīng)的信令屬于NAL的一部分。這樣,高編碼效率和網(wǎng)絡(luò)友好性的任務(wù)分別由VCL和NAL來完成。

VCL層包括基于塊的運(yùn)動(dòng)補(bǔ)償混合編碼和一些新特性。與前面的視頻編碼標(biāo)準(zhǔn)一樣,H.264沒有把前處理和后處理等功能包括在草案中,這樣可以增加標(biāo)準(zhǔn)的靈活性。

NAL負(fù)責(zé)使用下層網(wǎng)絡(luò)的分段格式來封裝數(shù)據(jù),包括組幀、邏輯信道的信令、定時(shí)信息的利用或序列結(jié)束信號等。例如,NAL支持視頻在電路交換信道上的傳輸格式,支持視頻在Internet上利用RTP/UDP/IP傳輸?shù)母袷?。NAL包括自己的頭部信息、段結(jié)構(gòu)信息和實(shí)際載荷信息,即上層的VCL數(shù)據(jù)。(如果采用數(shù)據(jù)分割技術(shù),數(shù)據(jù)可能由幾個(gè)部分組成)。

2、高精度、多模式運(yùn)動(dòng)估計(jì)

H.264支持1/4或1/8像素精度的運(yùn)動(dòng)矢量。在1/4像素精度時(shí)可使用6抽頭濾波器來減少高頻噪聲,對于1/8像素精度的運(yùn)動(dòng)矢量,可使用更為復(fù)雜的8抽頭的濾波器。在進(jìn)行運(yùn)動(dòng)估計(jì)時(shí),編碼器還可選擇"增強(qiáng)"內(nèi)插濾波器來提高預(yù)測的效果。

在H.264的運(yùn)動(dòng)預(yù)測中,一個(gè)宏塊(MB)可以按圖2被分為不同的子塊,形成7種不同模式的塊尺寸。這種多模式的靈活和細(xì)致的劃分,更切合圖像中實(shí)際運(yùn)動(dòng)物體的形狀,大大提高了運(yùn)動(dòng)估計(jì)的精確程度。在這種方式下,在每個(gè)宏塊中可以包含有1、2、4、8或16個(gè)運(yùn)動(dòng)矢量。

在H.264中,允許編碼器使用多于一幀的先前幀用于運(yùn)動(dòng)估計(jì),這就是所謂的多幀參考技術(shù)。例如2幀或3幀剛剛編碼好的參考幀,編碼器將選擇對每個(gè)目標(biāo)宏塊能給出更好的預(yù)測幀,并為每一宏塊指示是哪一幀被用于預(yù)測。

3、4×4塊的整數(shù)變換

H.264與先前的標(biāo)準(zhǔn)相似,對殘差采用基于塊的變換編碼,但變換是整數(shù)操作而不是實(shí)數(shù)運(yùn)算,其過程和DCT基本相似。這種方法的優(yōu)點(diǎn)在于:在編碼器中和解碼器中允許精度相同的變換和反變換,便于使用簡單的定點(diǎn)運(yùn)算方式。也就是說,這里沒有"反變換誤差"。 變換的單位是4×4塊,而不是以往常用的8×8塊。由于用于變換塊的尺寸縮小,運(yùn)動(dòng)物體的劃分更精確,這樣,不但變換計(jì)算量比較小,而且在運(yùn)動(dòng)物體邊緣處的銜接誤差也大為減小。為了使小尺寸塊的變換方式對圖像中較大面積的平滑區(qū)域不產(chǎn)生塊之間的灰度差異,可對幀內(nèi)宏塊亮度數(shù)據(jù)的16個(gè)4×4塊的DC系數(shù)(每個(gè)小塊一個(gè),共16個(gè))進(jìn)行第二次4×4塊的變換,對色度數(shù)據(jù)的4個(gè)4×4塊的DC系數(shù)(每個(gè)小塊一個(gè),共4個(gè))進(jìn)行2×2塊的變換。

H.264為了提高碼率控制的能力,量化步長的變化的幅度控制在12.5%左右,而不是以不變的增幅變化。變換系數(shù)幅度的歸一化被放在反量化過程中處理以減少計(jì)算的復(fù)雜性。為了強(qiáng)調(diào)彩色的逼真性,對色度系數(shù)采用了較小量化步長。

4、統(tǒng)一的VLC

H.264中熵編碼有兩種方法,一種是對所有的待編碼的符號采用統(tǒng)一的VLC(UVLC :Universal VLC),另一種是采用內(nèi)容自適應(yīng)的二進(jìn)制算術(shù)編碼(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC是可選項(xiàng),其編碼性能比UVLC稍好,但計(jì)算復(fù)雜度也高。UVLC使用一個(gè)長度無限的碼字集,設(shè)計(jì)結(jié)構(gòu)非常有規(guī)則,用相同的碼表可以對不同的對象進(jìn)行編碼。這種方法很容易產(chǎn)生一個(gè)碼字,而解碼器也很容易地識別碼字的前綴,UVLC在發(fā)生比特錯(cuò)誤時(shí)能快速獲得重同步。

5、幀內(nèi)預(yù)測

在先前的H.26x系列和MPEG-x系列標(biāo)準(zhǔn)中,都是采用的幀間預(yù)測的方式。在H.264中,當(dāng)編碼Intra圖像時(shí)可用幀內(nèi)預(yù)測。對于每個(gè)4×4塊(除了邊緣塊特別處置以外),每
個(gè)像素都可用17個(gè)最接近的先前已編碼的像素的不同加權(quán)和(有的權(quán)值可為0)來預(yù)測,即此像素所在塊的左上角的17個(gè)像素。顯然,這種幀內(nèi)預(yù)測不是在時(shí)間上,而是在空間域上進(jìn)行的預(yù)測編碼算法,可以除去相鄰塊之間的空間冗余度,取得更為有效的壓縮。

如圖4所示,4×4方塊中a、b、...、p為16 個(gè)待預(yù)測的像素點(diǎn),而A、B、...、P是已編碼的像素。如m點(diǎn)的值可以由(J+2K+L+2)/ 4 式來預(yù)測,也可以由(A+B+C+D+I+J+K+L)/ 8 式來預(yù)測,等等。按照所選取的預(yù)測參考的點(diǎn)不同,亮度共有9類不同的模式,但色度的幀內(nèi)預(yù)測只有1類模式。

6、面向IP和無線環(huán)境

H.264 草案中包含了用于差錯(cuò)消除的工具,便于壓縮視頻在誤碼、丟包多發(fā)環(huán)境中傳輸,如移動(dòng)信道或IP信道中傳輸?shù)慕研浴?

為了抵御傳輸差錯(cuò),H.264視頻流中的時(shí)間同步可以通過采用幀內(nèi)圖像刷新來完成,空間同步由條結(jié)構(gòu)編碼(slice structured coding)來支持。同時(shí)為了便于誤碼以后的再同步,在一幅圖像的視頻數(shù)據(jù)中還提供了一定的重同步點(diǎn)。另外,幀內(nèi)宏塊刷新和多參考宏塊允許編碼器在決定宏塊模式的時(shí)候不僅可以考慮編碼效率,還可以考慮傳輸信道的特性。

除了利用量化步長的改變來適應(yīng)信道碼率外,在H.264中,還常利用數(shù)據(jù)分割的方法來應(yīng)對信道碼率的變化。從總體上說,數(shù)據(jù)分割的概念就是在編碼器中生成具有不同優(yōu)先級的視頻數(shù)據(jù)以支持網(wǎng)絡(luò)中的服務(wù)質(zhì)量QoS。例如采用基于語法的數(shù)據(jù)分割(syntax-based data partitioning)方法,將每幀數(shù)據(jù)的按其重要性分為幾部分,這樣允許在緩沖區(qū)溢出時(shí)丟棄不太重要的信息。還可以采用類似的時(shí)間數(shù)據(jù)分割(temporal data partitioning)方法,通過在P幀和B幀中使用多個(gè)參考幀來完成。

在無線通信的應(yīng)用中,我們可以通過改變每一幀的量化精度或空間/時(shí)間分辨率來支持無線信道的大比特率變化??墒牵诙嗖サ那闆r下,要求編碼器對變化的各種比特率進(jìn)行響應(yīng)是不可能的。因此,不同于MPEG-4中采用的精細(xì)分級編碼FGS(Fine Granular Scalability)的方法(效率比較低),H.264采用流切換的SP幀來代替分級編碼。

四、 H.264的性能比較

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

H.264的PSNR比MPEG-4(ASP)和H.263++(HLP)明顯要好,在6種速率的對比測試中,H.264的PSNR比MPEG-4(ASP)平均要高2dB,比H.263(HLP)平均要高3dB。6個(gè)測試速率及其相關(guān)的條件分別為: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格式。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉