視頻壓縮技術(shù)的系統(tǒng)考慮
圖 2:標(biāo)準(zhǔn)運(yùn)動(dòng)補(bǔ)償視頻編碼 |
在視頻編解碼器中,單個(gè)幀可以采用三個(gè)模式中的一個(gè)進(jìn)行編碼 —— 即 I、P 或 B 幀模式(見圖 3)。幾個(gè)稱為 Intra (I) 的幀單獨(dú)編碼,無需參考任何其他幀(無運(yùn)動(dòng)補(bǔ)償)。某些幀可以利用 MC 編碼,以前一個(gè)幀為參考(前向預(yù)測)。這些幀稱為預(yù)測幀 (P)。
B 幀或雙向預(yù)測幀通過之前的幀以及當(dāng)前幀的后續(xù)幀進(jìn)行預(yù)測。B 幀的優(yōu)勢是能夠匹配堵塞在采用前向預(yù)測的上一幀中的背景區(qū)域。雙向預(yù)測通過平衡前向及后向預(yù)測可以降低噪聲。在編碼器中采用這種功能會(huì)要求更多處理量,因?yàn)楸仨毻瑫r(shí)針對前向及后向預(yù)測執(zhí)行 ME,而這會(huì)明顯使運(yùn)動(dòng)估計(jì)計(jì)算需求加倍。為了保存兩個(gè)參考幀,編碼器與解碼器都需要更多內(nèi)存。B 幀工具需要更復(fù)雜的數(shù)據(jù)流,因?yàn)橄鄬Σ杉帮@示順序而言,幀不按順序解碼。這個(gè)特點(diǎn)會(huì)增加時(shí)延,因此不適合實(shí)時(shí)性較高的應(yīng)用。B 幀不用于預(yù)測,因此可以針對某些應(yīng)用進(jìn)行取舍。例如,在低幀速應(yīng)用中可以跳過它們而不會(huì)影響隨后 I 與 P 幀的解碼。
圖3:I、P 與 B 幀間預(yù)測圖示 |
6. 傳統(tǒng)視頻編碼標(biāo)準(zhǔn)
H.261
ITU 編制的 H.261[2] 標(biāo)準(zhǔn)是第一個(gè)主流視頻壓縮標(biāo)準(zhǔn)。它主要針對雙工視頻會(huì)議應(yīng)用,是為支持 40kpbs~2Mbps 的 ISDN 網(wǎng)絡(luò)而設(shè)計(jì)的。H.261 支持 352(288 (CIF) 及 176(144 (QCIF) 分辨率,色度分辨率二次采樣為 4:2:0。由于可視電話需要同步實(shí)時(shí)編解碼,因此復(fù)雜性設(shè)計(jì)得較低。由于主要用于對延遲敏感的雙向視頻,因此 H.261 僅允許采用 I 與 P 幀,而不允許 B 幀。
H.261 采用基于塊的 DCT 進(jìn)行殘差信號的變換編碼。DCT 把像素的每個(gè) 8(8 塊映射到頻域,產(chǎn)生 64 個(gè)頻率成分(第一個(gè)系數(shù)稱為 DC,其他的稱為 AC)。為了量化 DCT 系數(shù),H.261 在所有 AC 系數(shù)中采用固定的線性量化。量化后的系數(shù)進(jìn)行行程編碼,其可以按非零系數(shù)描述量化的頻率,后面跟隨一串零系數(shù),在最后一個(gè)非零值之后以塊代碼結(jié)束。最后,可變長度編碼 (Huffman) 將運(yùn)行級別對 (run-level pair) 轉(zhuǎn)換成可變長度編碼 (VLC),其比特長度已針對典型概率分布進(jìn)行過優(yōu)化。
基于標(biāo)準(zhǔn)塊的編碼最終產(chǎn)生模塊化視頻。H.261 標(biāo)準(zhǔn)利用環(huán)路濾波避免這種現(xiàn)象。在模塊邊緣采用的簡單 2D FIR 濾波器用于平滑參考幀中的量化效應(yīng)。必須同時(shí)在編碼器及解碼器中精確地對每個(gè)比特應(yīng)用上述濾波。
MPEG-1
MPEG-1[3] 是 ISO 開發(fā)的第一個(gè)視頻壓縮算法。主要應(yīng)用是數(shù)字媒體上動(dòng)態(tài)圖像與音頻的存儲(chǔ)與檢索,如速率為 1.15Mbps、采用 SIF 分辨率(352(240 - 29.97fps 或者 352(288 - 25 fps)的VCD。MPEG-1 與 H.261 相似,不過編碼器一般需要更高的性能,以便支持電影內(nèi)容的較高運(yùn)動(dòng)性而不是典型的可視電話功能。
與 H.261 相比,MPEG1 允許采用 B 幀。另外它還采用自適應(yīng)感知量化,也就是說,對每個(gè)頻段采用單獨(dú)的量化比例因子(或等步長),以便優(yōu)化人們的視覺感受。MPEG-1 僅支持逐行視頻,因此新標(biāo)準(zhǔn)——MPEG2 已經(jīng)開始做出努力,同時(shí)支持分辨率及比特率更高的逐行與隔行視頻。
MPEG-2/H.262
MPEG-2[4] 專門針對數(shù)字電視而開發(fā),很快成為了迄今最成功的視頻壓縮標(biāo)準(zhǔn)。MPEG-2 既能夠滿足標(biāo)準(zhǔn)逐行視頻的需求(其中視頻序列由一系列按一定時(shí)間間隔采集的幀構(gòu)成),又能夠滿足電視領(lǐng)域常用的隔行視頻的需求。隔行視頻交替采集及顯示圖像中兩組交替的像素(每組稱為一個(gè)場)。這種方式尤其適合電視顯示器的物理特性。MPEG2 支持標(biāo)準(zhǔn)的電視分辨率,其中包括:針對美國和日本采用的 NTSC 制式隔行 720(480 分辨率,每秒 60 場,以及歐洲和其他國家采用的PAL 制式的 720(576 分辨率,每秒 50 場。
MPEG-2 建立在 MPEG-1 基礎(chǔ)之上,并具備擴(kuò)展功能,能支持隔行視頻及更寬的運(yùn)動(dòng)補(bǔ)償范圍。由于高分辨率視頻是非常重要的應(yīng)用,因此 MPEG-2 支持的搜索范圍遠(yuǎn)遠(yuǎn)大于 MPEG-1。與之前的標(biāo)準(zhǔn)相比,它顯著提高了運(yùn)動(dòng)估計(jì)的性能要求,并充分利用更寬搜索范圍與更高分辨率優(yōu)勢的編碼器需要比 H.261 和 MPEG-1 高得多的處理能力。MPEG2 中的隔行編碼工具包含優(yōu)化運(yùn)動(dòng)補(bǔ)償?shù)哪芰Γ瑫r(shí)支持基于場和基于幀的預(yù)測,而且同時(shí)支持基于場和基于幀的 DCT/IDCT。MPEG-2 在 30:1 左右的壓縮比時(shí)運(yùn)行良好。MPEG-2 在 4-8Mbps 時(shí)達(dá)到的質(zhì)量適合消費(fèi)類視頻應(yīng)用,因此它很快在許多應(yīng)用中得到普及,如:數(shù)字衛(wèi)星電視、數(shù)字有線電視、DVD 以及后來的高清電視等。
另外,MPEG-2 增加了分級視頻編碼工具,以支持多層視頻編碼,即:時(shí)域分級、空域分級、SNR 分級以及數(shù)據(jù)分割。盡管 MPEG-2 中針對分級視頻應(yīng)用定義了相關(guān)類別 (profile),不過支持單層編碼的主類 (Main Profile) 是當(dāng)今大眾市場中得到廣泛應(yīng)用的唯一 MPEG-2 類。MPEG-2 通常稱為 MPEG-2 主類。
評論