H.264概覽
1. 引言
數(shù)字電視和DVD-video的出現(xiàn)使得廣播電視和家庭娛樂發(fā)生了徹底的變革.越來越多的這些應(yīng)用成為可能隨著視頻壓縮技術(shù)的標(biāo)準(zhǔn)化.MPGE系列的下一個標(biāo)準(zhǔn),MPEG4,正使得新一代的基于因特網(wǎng)的視頻應(yīng)用成為可能.而現(xiàn)在視頻壓縮的ITU-T H.263標(biāo)準(zhǔn)被廣泛的應(yīng)用于視頻會議系統(tǒng).
MPEG4(視頻)和H.263都是基于視頻壓縮(視頻編碼)技術(shù)的標(biāo)準(zhǔn)(大約從1995年開始).運動圖像專家組和視頻編碼專家組(MPEG和VCEG)致力于開發(fā)一個比MPEG4和H.263有更好性能的新標(biāo)準(zhǔn),有著高品質(zhì),低比特視頻流的特性一個更好的視頻圖像壓縮方法.新標(biāo)準(zhǔn)"高級視頻編碼"(AVC)的歷史可追溯到7年前.
1995年,為了通過電話線傳輸視頻信號而制定的H.263標(biāo)準(zhǔn)定稿以后.ITU-T視頻編碼專家組(VCEG)就開始工作在兩個更深入的發(fā)展領(lǐng)域:一個是"短期"的努力去增加H.263的額外特性(制定出標(biāo)準(zhǔn)的版本2),還有一個"長期"的努力,去開發(fā)一個適用于低比低率下可視通信的新標(biāo)準(zhǔn),提供比之前的ITU-T標(biāo)準(zhǔn)更有效,明顯更好的視頻壓縮方法.2001年,ISO運動圖像專家組(MPEG)意識到H.26L的潛在優(yōu)點,就組成了視頻聯(lián)合工作組(JVT),包括MPEG和VCEG的的專家.JVT的主要任務(wù)就是將H.26L"模式"草案發(fā)展成為一個完全的國際標(biāo)準(zhǔn).實際上,結(jié)果產(chǎn)生了兩個標(biāo)準(zhǔn):ISO MPEG4第10部分和ITU-T H.264. 新標(biāo)準(zhǔn)的官方命名是"高級視頻編碼"(AVC);然而,舊的命名H.26L和以ITU文檔號命名的IH.264[1]更廣為人知.
2. H.264 編解碼器
和之前的標(biāo)準(zhǔn)一樣(如MPEG1,MPEG2和MPEG4),H.264標(biāo)準(zhǔn)草案并沒有明確定義一個編解碼器.在一定程度上,標(biāo)準(zhǔn)定義了視頻比特流編碼和與之相對應(yīng)的解碼方法的語法.然而實際上,一個符合的編碼和解碼器一般包括如圖Figure 2-1 和Figure 2-2中所示的功能模塊.同時這些圖中所示功能通常是必須的,但編解碼器還是可以有相當(dāng)多的變種.基本的功能模塊(預(yù)測,傳輸,量化,熵編碼)與之前的標(biāo)準(zhǔn)(MPEG1,MPEG2,MPEG4,H.261,H.263)差不多.H.264的最重要的變化是在這些功能模塊的實現(xiàn)細(xì)節(jié)上.
編碼器包括兩個數(shù)據(jù)流路徑.一個"前向"路徑(從左到右,以藍(lán)色表示)和一個"重構(gòu)"路徑(從右到左,以洋紅色表示).解碼器的數(shù)據(jù)流路徑以從右到左的方式表示,以此來說明編碼器和解碼器之間的相同點.
2.1 編碼器(前向路徑)
當(dāng)一個輸入幀Fn被提交編碼,。該幀以宏塊(相當(dāng)于16X16像素的原始圖像)為單位來進(jìn)行處理,。 每個宏塊被編碼成幀內(nèi)模式或幀間模式,。在這兩種情況下,,會產(chǎn)生一個基于重建幀的預(yù)測宏塊P,。在幀內(nèi)模式下,,P根據(jù)之前已經(jīng)編碼,,解碼,重建的當(dāng)前幀n中的采樣產(chǎn)生(圖中以uF’n表示,。注意是未經(jīng)過濾的采樣用來產(chǎn)生P),。在幀間模式下,P根據(jù)采用一個或多個參考幀的運動補(bǔ)償預(yù)測來產(chǎn)生,。在圖中,,參考幀表示為之前已經(jīng)編碼的幀F’n-1;然而,,每個宏塊的預(yù)測可能根據(jù)過去或?qū)恚ㄒ詴r間為序)的一或多個已經(jīng)編碼并重構(gòu)的幀來產(chǎn)生,。
預(yù)測P被從當(dāng)前宏塊中減去來產(chǎn)生一個殘留的或差異宏塊Dn。它以量化變換系數(shù)集X變換(使用塊變換)并量化.這些系數(shù)被重新排序并進(jìn)行熵編碼,。在宏塊解碼時需要的熵編碼系數(shù)和邊信息(如宏塊預(yù)測模式,,量化步長,描述宏塊如何運動補(bǔ)償?shù)倪\動矢量等等)組成了壓縮的比特流,。它被傳輸?shù)搅司W(wǎng)絡(luò)抽象層(NAL)進(jìn)行傳輸或保存。
2.2 編碼器(重建路徑)
為了編碼更進(jìn)一步的宏塊,,需通過解碼宏塊量化系數(shù)X來重建一幀,。系數(shù)X被重新調(diào)整(Q-1)并且進(jìn)行逆變換(T-1)來產(chǎn)生一個不同的宏塊Dn’,這與原始的差異宏塊Dn不同,;它在量化過程中有了損耗,,所以Dn’是Dn的一個失真版本。
預(yù)測宏塊P被加到Dn’中來創(chuàng)建一個重建宏塊uF’n(原始宏塊的一個失真版本),。為了減少阻斷失真的影響使用了一個濾鏡,,重建參考幀從一系列的宏塊F’n中創(chuàng)建。
2.3 解碼器
解碼器從NAL(網(wǎng)絡(luò)抽象層)接收壓縮的比特流,。數(shù)據(jù)元素被熵解碼并且重新排列來產(chǎn)生一個量化系數(shù)集X,。它們被重新調(diào)整并進(jìn)行逆轉(zhuǎn)換來生成Dn’(與編碼器中所示的Dn’相同),。使用比特流中解碼出的頭部信息,解碼器生成一個預(yù)測宏塊P,,與在編碼器中生成的原始預(yù)測幀P相同,。P被加到Dn’中來生成uFn’,uF’n經(jīng)過過濾生成了解碼的宏塊Fn’,。
編碼器的重建路徑應(yīng)該從圖示和上面的討論中清除,,它實際上是為了確保編碼器和解碼器使用相同的參考幀來生成預(yù)測幀P。如果不這樣做,,編碼器和解碼器中的預(yù)測幀P就不會相同,,導(dǎo)致編碼器和解碼器之間存在一個越來越大的誤差或是“偏移”。
3.參考資料
1 ITU-T Rec. H.264 / ISO/IEC 11496-10, “Advanced Video Coding”, Final Committee Draft, Document JVTE022,September 2002