視頻壓縮技術(shù)的系統(tǒng)考慮
MPEG-2 解碼最初對(duì)于通用處理器及 DSP 具有很高的處理要求。優(yōu)化的固定功能 MPEG-2 解碼器開發(fā)已問世,由于使用量較高,成本已逐漸降低。MPEG2 證明低成本芯片解決方案的供應(yīng)是視頻編解碼標(biāo)準(zhǔn)成功和普及的關(guān)鍵。
H.263
H.263[5] 在 H.261 之后得到開發(fā),主要是為了以更低的比特率實(shí)現(xiàn)更高的質(zhì)量。其主要目標(biāo)之一是基于普通 28.8Kbps 電話調(diào)制解調(diào)器的視頻。目標(biāo)分辨率是 SQCIF (128(96)~CIF (352(288)。其基本原理與 H.261 大同小異。
H.263 的運(yùn)動(dòng)矢量在兩個(gè)方向上允許是 1/2 的倍數(shù)(“半像素”),參考圖像以數(shù)字方式內(nèi)插到更高的分辨率。這種方法可以提高 MC 精度及壓縮比。MV 可采用更大的范圍。為不同方案提供許多新的選項(xiàng),包括:
* 4 個(gè)運(yùn)動(dòng)矢量——每個(gè)塊采用一個(gè)運(yùn)動(dòng)矢量,而非整個(gè) MB 采用單個(gè)運(yùn)動(dòng)矢量。
* 3D VLC:Huffman 編碼——將塊結(jié)束 (EOB) 指示符與每個(gè)運(yùn)行級(jí)別對(duì)結(jié)合在一起。這種功能主要用于低比特率,這時(shí)大多時(shí)候只有一、兩個(gè)編碼系數(shù)。
盡管存在這些功能,但是仍然很難在普通電話線上實(shí)現(xiàn)理想的視頻質(zhì)量,而且目前基于標(biāo)準(zhǔn)調(diào)制解調(diào)器的可視電話仍然是一個(gè)難題。不過,由于 H.263 一般情況下可提供優(yōu)于 H.261 的效率,它成為了電視會(huì)議首選的算法,但是,為了兼容舊系統(tǒng),仍然需要支持 H.261。H.263 逐漸發(fā)展成為了 H.263+,其增加了可選的附件,為提高壓縮并實(shí)現(xiàn)分組網(wǎng)的魯棒性提供支持。H.263 及其附件構(gòu)成了MPEG-4 中許多編碼工具的核心。
MPEG-4
MPEG-4[6] 由 ISO 提出,以延續(xù) MPEG-2 的成功。一些早期的目標(biāo)包括:提高容錯(cuò)能力以支持無線網(wǎng)、對(duì)低比特率應(yīng)用進(jìn)行更好的支持、實(shí)現(xiàn)各種新工具以支持圖形對(duì)象及視頻之間的融合。大部分圖形功能并未在產(chǎn)品中受到重視,相關(guān)實(shí)施主要集中在改善低比特率壓縮及提高容錯(cuò)性上。.
MPEG-4 簡化類 (SP) 以H.263為基礎(chǔ),為改善壓縮增加了新的工具,包括:
無限制的運(yùn)動(dòng)矢量:支持對(duì)象部分超出幀邊界時(shí)的預(yù)測。
可變塊大小運(yùn)動(dòng)補(bǔ)償:可以在 16(16 或 8(8 粒度下進(jìn)行運(yùn)動(dòng)補(bǔ)償。
上下文自適應(yīng)幀內(nèi) DCT DC/AC 預(yù)測:可以通過當(dāng)前塊的左右相鄰塊預(yù)測 DC/AC DCT 系數(shù)。
擴(kuò)展量化 AC 系數(shù)的動(dòng)態(tài)范圍,支持高清視頻:從 H.263 的 [-127:127] 到 [-2047, 2047]。
增加了容錯(cuò)功能,以支持丟包情況下的恢復(fù),包括:
片斷重同步 (Slice Resynchronization):在圖像內(nèi)建立片斷 (slice),以便在出現(xiàn)錯(cuò)誤后更快速的進(jìn)行重新同步。與 MPEG-2 數(shù)據(jù)包大小不同,MPEG4 數(shù)據(jù)包大小與用于描述 MB 的比特?cái)?shù)量脫離了聯(lián)系。因此,不管每個(gè) MB 的信息量多少,都可以在位流中按相同間隔進(jìn)行重新同步。
數(shù)據(jù)分割:這種模式允許利用唯一的運(yùn)動(dòng)邊界標(biāo)記將視頻數(shù)據(jù)包中的數(shù)據(jù)分割成運(yùn)動(dòng)部分和 DCT 數(shù)據(jù)部分。這樣就可以實(shí)現(xiàn)對(duì)運(yùn)動(dòng)矢量數(shù)據(jù)更嚴(yán)格的檢查。如果出現(xiàn)錯(cuò)誤,我們可以更清楚地了解錯(cuò)誤之處,從而避免在發(fā)現(xiàn)錯(cuò)誤情況下拋棄所有運(yùn)動(dòng)數(shù)據(jù)。
可逆 VLC:VLC 編碼表允許后向及前向解碼。在遇到錯(cuò)誤時(shí),可以在下一個(gè)slice進(jìn)行同步,或者開始編碼并且返回到出現(xiàn)錯(cuò)誤之處。
新預(yù)測 (NEWPRED):主要用于在實(shí)時(shí)應(yīng)用中實(shí)現(xiàn)快速錯(cuò)誤恢復(fù),這些應(yīng)用中的解碼器在出現(xiàn)丟包情況下采用逆向通道向解碼器請(qǐng)求補(bǔ)充信息。
MPEG-4 高級(jí)簡化類 (ASP) 以簡化類為基礎(chǔ),增加了與 MPEG-2 類似的 B 幀及隔行工具(用于Level 4 及以上級(jí)別)。另外它還增加了四分之一像素運(yùn)動(dòng)補(bǔ)償及用于全局運(yùn)動(dòng)補(bǔ)償?shù)倪x項(xiàng)。MPEG-4 高級(jí)簡化類比簡化類的處理性能要求更高,而且復(fù)雜性與編碼效率都高于 MPEG-2。
MPEG-4 最初用于因特網(wǎng)數(shù)據(jù)流,例如,已經(jīng)被 Apple 的 QuickTime 播放器采用。MPEG-4 簡化類目前在移動(dòng)數(shù)據(jù)流中得到廣泛應(yīng)用。MPEG-4 ASP 是已經(jīng)流行的專有 DivX 編解碼器的基石。
工具與壓縮增益
當(dāng)我們查看 H.261、MPEG1、MPEG2 與 H.263 視頻編解碼技術(shù)中引入的功能時(shí),明顯可以發(fā)現(xiàn)幾種基本技巧提供了大部分壓縮增益。圖 4 說明這些技巧及其相關(guān)效果。與 4 個(gè)運(yùn)動(dòng)矢量以及四分之一像素運(yùn)動(dòng)補(bǔ)償?shù)裙ぞ呦啾?,運(yùn)動(dòng)補(bǔ)償(整數(shù)像素與半像素)的效果顯然更為突出。
圖 4:基本技巧的效果:1) 無 MC;2) 增加 Skip 模式構(gòu)成 CR 編碼器;3) 僅允許零 MV;4) 允許整數(shù)像素 MC;5) 允許半像素 MC;6) 允許 4-MV;7) 允許四分之一像素MC。如欲了解有關(guān)詳細(xì)說明,敬請(qǐng)參見 [7]。
7. H.264/ MPEG4-AVC
視頻編碼技術(shù)在過去幾年最重要的發(fā)展之一是由 ITU 和 ISO/IEC 的聯(lián)合視頻小組 (JVT) 開發(fā)了 H.264/MPEG-4 AVC[8] 標(biāo)準(zhǔn)。在發(fā)展過程中,業(yè)界為這種新標(biāo)準(zhǔn)取了許多不同的名稱。ITU 在 1997 年開始利用重要的新編碼工具處理 H.26L(長期),結(jié)果令人鼓舞,于是 ISO 決定聯(lián)手 ITU 組建 JVT 并采用一個(gè)通用的標(biāo)準(zhǔn)。因此,大家有時(shí)會(huì)聽到有人將這項(xiàng)標(biāo)準(zhǔn)稱為 JVT,盡管它并非正式名稱。ITU 在 2003 年 5 月批準(zhǔn)了新的 H.264 標(biāo)準(zhǔn)。ISO 在 2003 年 10 月以 MPEG-4 Part 10、高級(jí)視頻編碼或 AVC 的名稱批準(zhǔn)了該標(biāo)準(zhǔn)。
H.264/AVC 在壓縮效率方面取得了巨大突破,一般情況下達(dá)到 MPEG-2 及 MPEG-4 簡化類壓縮效率的大約 2 倍。在 JVT 進(jìn)行的正式測試中 [9],H.264 在 85 個(gè)測試案例中有 78% 的案例實(shí)現(xiàn) 1.5 倍以上的編碼效率提高,77% 的案例中達(dá)到 2 倍以上,部分案例甚至高達(dá) 4 倍。H.264 實(shí)現(xiàn)的改進(jìn)創(chuàng)造了新的市場機(jī)遇,如:
* 600Kbps 的 VHS 品質(zhì)視頻??梢酝ㄟ^ ADSL 線路實(shí)現(xiàn)視頻點(diǎn)播。
* 高清晰電影無需新的激光頭即可適應(yīng)普通 DVD。
H.264 標(biāo)準(zhǔn)化時(shí)支持三個(gè)類別:基本類、主類及擴(kuò)展類。后來一項(xiàng)稱為高保真范圍擴(kuò)展 (FRExt) 的修訂引入了稱為高級(jí)類的 4 個(gè)附加類。在初期主要是基本類和主類引起了大家的興趣?;绢惤档土擞?jì)算及系統(tǒng)內(nèi)存需求,而且針對(duì)低時(shí)延進(jìn)行了優(yōu)化。由于 B 幀的內(nèi)在時(shí)延以及 CABAC 的計(jì)算復(fù)雜性,因此它不包括這兩者?;绢惙浅_m合可視電話應(yīng)用以及其他需要低成本實(shí)時(shí)編碼的應(yīng)用。
主類提供的壓縮效率最高,但其要求的處理能力也比基本類高許多,因此使其難以用于低成本實(shí)時(shí)編碼和低時(shí)延應(yīng)用。廣播與內(nèi)容存儲(chǔ)應(yīng)用對(duì)主類最感興趣,它們是為了盡可能以最低的比特率獲得最高的視頻質(zhì)量。
盡管 H.264 采用與舊標(biāo)準(zhǔn)相同的主要編碼功能,不過它還具有許多與舊標(biāo)準(zhǔn)不同的新功能,它們一起實(shí)現(xiàn)了編碼效率的提高。圖 5 的編碼器框圖總結(jié)了其主要差別,概述如下:
幀內(nèi)預(yù)測與編碼:H.264 采用空域幀內(nèi)預(yù)測技術(shù)來預(yù)測相鄰塊鄰近像素的 Intra-MB 中的像素。它對(duì)預(yù)測殘差信號(hào)和預(yù)測模式進(jìn)行編碼,而不是編碼塊中的實(shí)際像素。這樣可以顯著提高幀內(nèi)編碼效率。
幀間預(yù)測與編碼:H.264 中的幀間編碼采用了舊標(biāo)準(zhǔn)的主要功能,同時(shí)也增加了靈活性及可操作性,包括適用于多種功能的幾種塊大小選項(xiàng),如:運(yùn)動(dòng)補(bǔ)償、四分之一像素運(yùn)動(dòng)補(bǔ)償、多參考幀、通用 (generalized) 雙向預(yù)測和自適應(yīng)環(huán)路去塊。
可變矢量塊大?。涸试S采用不同塊大小執(zhí)行運(yùn)動(dòng)補(bǔ)償。可以為小至 4(4 的塊傳輸單個(gè)運(yùn)動(dòng)矢量,因此在雙向預(yù)測情況下可以為單個(gè) MB 傳輸多達(dá) 32 個(gè)運(yùn)動(dòng)矢量。另外還支持 16(8、8(16、8(8、8(4 和 4(8 的塊大小。降低塊大小可以提高運(yùn)動(dòng)細(xì)節(jié)的處理能力,因而提高主觀質(zhì)量感受,包括消除較大的塊化失真。
四分之一像素運(yùn)動(dòng)估計(jì):通過允許半像素和四分之一像素運(yùn)動(dòng)矢量分辨率可以改善運(yùn)動(dòng)補(bǔ)償。
多參考幀預(yù)測:16 個(gè)不同的參考幀可以用于幀間編碼,從而可以改善視頻質(zhì)量的主觀感受并提高編碼效率。提供多個(gè)參考幀還有助于提高 H.264 位流的容錯(cuò)能力。值得注意的是,這種特性會(huì)增加編碼器與解碼器的內(nèi)存需求,因?yàn)楸仨氃趦?nèi)存中保存多個(gè)參考幀。
自適應(yīng)環(huán)路去塊濾波器:H.264 采用一種自適應(yīng)解塊濾波器,它會(huì)在預(yù)測回路內(nèi)
對(duì)水平和垂直區(qū)塊邊緣進(jìn)行處理,用于消除塊預(yù)測誤差造成的失真。這種濾波通常是基于 4(4 塊邊界為運(yùn)算基礎(chǔ),其中邊界各邊的 3 個(gè)像素可通過 4 級(jí)濾波器進(jìn)行更新。
評(píng)論