H.264視頻編碼
視頻編碼技術(shù)基本是由ISO/IEC制定的MPEG-x和ITU-T制定的H.26x兩大系列視頻編碼國際標準的推出。從H.261視頻編碼建議,到H.262/3、MPEG-1/2/4等都有一個(gè)共同的不斷追求的目標,即在盡可能低的碼率(或存儲容量)下獲得盡可能好的圖像質(zhì)量。而且,隨著(zhù)市場(chǎng)對圖像傳輸需求的增加,如何適應不同信道傳輸特性的問(wèn)題也日益顯現出來(lái)。于是IEO/IEC和ITU-T兩大國際標準化組織聯(lián)手制定了視頻新標準H.264來(lái)解決這些問(wèn)題。
H.261是最早出現的視頻編碼建議,目的是規范ISDN網(wǎng)上的會(huì )議電視和可視電話(huà)應用中的視頻編碼技術(shù)。它采用的算法結合了可減少時(shí)間冗余的幀間預測和可減少空間冗余的DCT變換的混合編碼方法。和ISDN信道相匹配,其輸出碼率是p×64kbit/s。p取值較小時(shí),只能傳清晰度不太高的圖像,適合于面對面的電視電話(huà);p取值較大時(shí)(如 p>6),可以傳輸清晰度較好的會(huì )議電視圖像。H.263 建議的是低碼率圖像壓縮標準,在技術(shù)上是H.261的改進(jìn)和擴充,支持碼率小于64kbit/s的應用。但實(shí)質(zhì)上H.263以及后來(lái)的H.263+和H.263++已發(fā)展成支持全碼率應用的建議,從它支持眾多的圖像格式這一點(diǎn)就可看出,如Sub-QCIF、QCIF、CIF、4CIF甚至16CIF等格式。
MPEG-1標準的碼率為1.2Mbit/s左右,可提供30幀CIF(352×288)質(zhì)量的圖像,是為CD-ROM光盤(pán)的視頻存儲和播放所制定的。MPEG-l標準視頻編碼部分的基本算法與H.261/H.263相似,也采用運動(dòng)補償的幀間預測、二維DCT、VLC游程編碼等措施。此外還引入了幀內幀(I)、預測幀(P)、雙向預測幀(B)和直流幀(D)等概念,進(jìn)一步提高了編碼效率。在MPEG-1的基礎上,MPEG-2標準在提高圖像分辨率、兼容數字電視等方面做了一些改進(jìn),例如它的運動(dòng)矢量的精度為半像素;在編碼運算中(如運動(dòng)估計和DCT)區分幀和場(chǎng);引入了編碼的可分級性技術(shù),如空間可分級性、時(shí)間可分級性和信噪比可分級性等。近年推出的MPEG-4標準引入了基于視聽(tīng)對象(AVO:Audio-Visual Object)的編碼,大大提高了視頻通信的交互能力和編碼效率。 MPEG-4中還采用了一些新的技術(shù),如形狀編碼、自適應DCT、任意形狀視頻對象編碼等。但是MPEG-4的基本視頻編碼器還是屬于和H.263相似的一類(lèi)混合編碼器。
總之,H.261建議是視頻編碼的經(jīng)典之作,H.263是其發(fā)展,并將逐步在實(shí)際上取而代之,主要應用于通信方面,但H.263眾多的選項往往令使用者無(wú)所適從。MPEG系列標準從針對存儲媒體的應用發(fā)展到適應傳輸媒體的應用,其核心視頻編碼的基本框架是和H.261一致的,其中引人注目的MPEG-4的基于對象的編碼部分由于尚有技術(shù)障礙,目前還難以普遍應用。因此,在此基礎上發(fā)展起來(lái)的新的視頻編碼建議H.264克服了兩者的弱點(diǎn),在混合編碼的框架下引入了新的編碼方式,提高了編碼效率,面向實(shí)際應用。同時(shí),它是兩大國際標準化組織的共同制定的,其應用前景應是不言而喻的。
H.264和以前的標準一樣,也是DPCM加變換編碼的混合編碼模式。但它采用回歸基本的簡(jiǎn)潔設計,不用眾多的選項,獲得比H.263++好得多的壓縮性能;加強了對各種信道的適應能力,采用網(wǎng)絡(luò )友好的結構和語(yǔ)法,有利于對誤碼和丟包的處理;應用目標范圍較寬,以滿(mǎn)足不同速率、不同解析度以及不同傳輸(存儲)場(chǎng)合的需求;它的基本系統是開(kāi)放的,使用無(wú)需版權。 在技術(shù)上,H.264標準中有多個(gè)閃光之處,如統一的VLC符號編碼,高精度、多模式的位移估計,基于4×4塊的整數變換、分層的編碼語(yǔ)法等。這些措施使得H.264算法具有很的高編碼效率,在相同的重建圖像質(zhì)量下,能夠比H.263節約50%左右的碼率。H.264的碼流結構網(wǎng)絡(luò )適應性強,增加了差錯恢復能力,能夠很好地適應IP和無(wú)線(xiàn)網(wǎng)絡(luò )的應用。 三、 H.264的技術(shù)亮點(diǎn) 1、分層設計 H.264的算法在概念上可以分為兩層:視頻編碼層(VCL:Video Coding Layer)負責高效的視頻內容表示,網(wǎng)絡(luò )提取層(NAL:Network Abstraction Layer)負責以網(wǎng)絡(luò )所要求的恰當的方式對數據進(jìn)行打包和傳送。在VCL和NAL之間定義了一個(gè)基于分組方式的接口,打包和相應的信令屬于NAL的一部分。這樣,高編碼效率和網(wǎng)絡(luò )友好性的任務(wù)分別由VCL和NAL來(lái)完成。 VCL層包括基于塊的運動(dòng)補償混合編碼和一些新特性。與前面的視頻編碼標準一樣,H.264沒(méi)有把前處理和后處理等功能包括在草案中,這樣可以增加標準的靈活性。 NAL負責使用下層網(wǎng)絡(luò )的分段格式來(lái)封裝數據,包括組幀、邏輯信道的信令、定時(shí)信息的利用或序列結束信號等。例如,NAL支持視頻在電路交換信道上的傳輸格式,支持視頻在Internet上利用RTP/UDP/IP傳輸的格式。NAL包括自己的頭部信息、段結構信息和實(shí)際載荷信息,即上層的VCL數據。(如果采用數據分割技術(shù),數據可能由幾個(gè)部分組成)。 2、高精度、多模式運動(dòng)估計 H.264支持1/4或1/8像素精度的運動(dòng)矢量。在1/4像素精度時(shí)可使用6抽頭濾波器來(lái)減少高頻噪聲,對于1/8像素精度的運動(dòng)矢量,可使用更為復雜的8抽頭的濾波器。在進(jìn)行運動(dòng)估計時(shí),編碼器還可選擇增強內插濾波器來(lái)提高預測的效果。 在H.264的運動(dòng)預測中,一個(gè)宏塊(MB)可以按圖2被分為不同的子塊,形成7種不同模式的塊尺寸。這種多模式的靈活和細致的劃分,更切合圖像中實(shí)際運動(dòng)物體的形狀,大大提高了運動(dòng)估計的精確程度。在這種方式下,在每個(gè)宏塊中可以包含有1、2、4、8或16個(gè)運動(dòng)矢量。 在H.264中,允許編碼器使用多于一幀的先前幀用于運動(dòng)估計,這就是所謂的多幀參考技術(shù)。例如2幀或3幀剛剛編碼好的參考幀,編碼器將選擇對每個(gè)目標宏塊能給出更好的預測幀,并為每一宏塊指示是哪一幀被用于預測。 3、4×4塊的整數變換 H.264與先前的標準相似,對殘差采用基于塊的變換編碼,但變換是整數操作而不是實(shí)數運算,其過(guò)程和DCT基本相似。這種方法的優(yōu)點(diǎn)在于:在編碼器中和解碼器中允許精度相同的變換和反變換,便于使用簡(jiǎn)單的定點(diǎn)運算方式。也就是說(shuō),這里沒(méi)有反變換誤差。 變換的單位是4×4塊,而不是以往常用的8×8塊。由于用于變換塊的尺寸縮小,運動(dòng)物體的劃分更精確,這樣,不但變換計算量比較小,而且在運動(dòng)物體邊緣處的銜接誤差也大為減小。為了使小尺寸塊的變換方式對圖像中較大面積的平滑區域不產(chǎn)生塊之間的灰度差異,可對幀內宏塊亮度數據的16個(gè)4×4塊的DC系數(每個(gè)小塊一個(gè),共16個(gè))進(jìn)行第二次4×4塊的變換,對色度數據的4個(gè)4×4塊的DC系數(每個(gè)小塊一個(gè),共4個(gè))進(jìn)行2×2塊的變換。 H.264為了提高碼率控制的能力,量化步長(cháng)的變化的幅度控制在12.5%左右,而不是以不變的增幅變化。變換系數幅度的歸一化被放在反量化過(guò)程中處理以減少計算的復雜性。為了強調彩色的逼真性,對色度系數采用了較小量化步長(cháng)。 4、統一的VLC H.264中熵編碼有兩種方法,一種是對所有的待編碼的符號采用統一的VLC(UVLC :Universal VLC),另一種是采用內容自適應的二進(jìn)制算術(shù)編碼(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC是可選項,其編碼性能比UVLC稍好,但計算復雜度也高。UVLC使用一個(gè)長(cháng)度無(wú)限的碼字集,設計結構非常有規則,用相同的碼表可以對不同的對象進(jìn)行編碼。這種方法很容易產(chǎn)生一個(gè)碼字,而解碼器也很容易地識別碼字的前綴,UVLC在發(fā)生比特錯誤時(shí)能快速獲得重同步。
二、 H.264介紹
H.264是ITU-T的VCEG(視頻編碼專(zhuān)家組)和ISO/IEC的MPEG(活動(dòng)圖像編碼專(zhuān)家組)的聯(lián)合視頻組(JVT:joint video team)開(kāi)發(fā)的一個(gè)新的數字視頻編碼標準,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份開(kāi)始草案征集,1999年9月,完成第一個(gè)草案,2001年5月制定了其測試模式TML-8,2002年6月的 JVT第5次會(huì )議通過(guò)了H.264的FCD板。2003年3月正式發(fā)布。
評論