視頻壓縮技術的系統考慮

原文:http://www.chinavideo.org/index.php?option=com_content&task=view&id=293&Itemid=5
摘要:編解碼技術在過去十年中不斷改進。最新的編解碼技術(H.264/AVC與VC-1)代表着第三代視頻壓縮技術。爲具體應用選擇正確的編解碼器並優化其實時實施仍然是一項巨大的挑戰,最佳的設計必須權衡壓縮效率及可用的計算能力。本文探討了壓縮能力與複雜性之間的權衡,並討論市場中可能會影響主流視頻編解碼器未來的實時實施與主要趨勢。

1.前言

    數字視頻產品需求近些年出現猛增。主流應用包括視頻通信、安全監控與工業自動化,而最熱門的要算娛樂應用,如 DVD、HDTV、衛星電視、高清 (HD) 機頂盒、因特網視頻流、數碼相機與 HD 攝像機、視頻光盤庫 (video jukebox)、高端顯示器(LCD、等離子顯示器、DLP)以及個人攝像機等。衆多精彩的新應用目前也處於設計或前期部署中,例如針對家庭與手持設備及地面/衛星標準(DVB-T、DVB-H、DMB)的高清 DVD(藍光/HD-DVD)和數字視頻廣播、高清視頻電話、數碼相機以及 IP 機頂盒。由於手持終端計算能力的提高以及電池技術與高速無線連接的發展,最終產品的移動性與集成性也在不斷提高。

    視頻壓縮是所有令人振奮的、新型視頻產品的重要動力。壓縮-解壓(編解碼)算法可以實現數字視頻的存儲與傳輸。典型的編解碼器要麼採用行業標準,如 MPEG2、MPEG4、H.264/AVC 與 AVS,要麼採用專有算法,如 On2、Real Video、Nancy與Windows Media Video (WMV) 等。WMV 是個例外——它最初是微軟公司的專有算法,而現在則以 VC-1 的新名稱在業界實現了標準化。編解碼技術在過去十年中不斷改進。最新的編解碼技術(H.264/AVC 與 VC-1)代表着第三代視頻壓縮技術。這兩種編解碼技術利用如可編程 DSP 與ASIC 等低成本 IC 的處理能力,都能夠達到極高的壓縮比。不過,爲具體應用選擇正確的編解碼器並優化其實時處理仍然是一項巨大的挑戰。最佳的設計必須權衡壓縮效率及可用的計算能力。此外,如何在計算能力有限的情況下獲得最佳壓縮效率也是一門大學問。

在本文中,我們首先概述視頻編碼的主要概念,同時介紹傳統壓縮標準。然後我們重點介紹其中包括 H.264/AVC、WMV9/VC-1與AVS 等在內的最新編解碼技術的功能,此外,還將深入探討壓縮能力與複雜性之間的權衡。最後,討論市場中可能會影響主流視頻編解碼器未來的實時處理與主要趨勢。  

數字視頻的主要挑戰在於原始或未壓縮的視頻需要存儲或傳輸大量數據。例如,標準清晰度的 NTSC 視頻的數字化一般是每秒 30 幀速率,採用 4:2:2 YcrCb 及 720(480,其要求超過 165Mbps 的數據速率。保存 90 分鐘的視頻需要 110GB 空間,或者說超過標準 DVD-R 存儲容量的 25 倍。即使是視頻流應用中常用的頭直媛適悠擔ㄈ紓篊IF:352x288 4:2:0、30 幀/秒)也需要超過 36.5Mbps 的數據速率,這是 ADSL 或 3G 無線等寬帶網絡速度的許多倍。目前的寬帶網可提供 1~10Mbps 的持續傳輸能力。顯然數字視頻的存儲或傳輸需要採用壓縮技術。

視頻壓縮的目的是對數字視頻進行編碼——在保持視頻質量的同時佔用儘可能少的空間。編解碼技術理論依據爲信息理論的數學原理。不過,開發實用的編解碼技術需要藝術性的精心考慮。

3. 壓縮權衡

在選擇數字視頻系統的編解碼技術時需要考慮諸多因素。主要因素包括應用的視頻質量要求、傳輸通道或存儲介質所處的環境(速度、時延、錯誤特徵)以及源內容的格式。同樣重要的還有預期分辨率、目標比特率、色彩深度、每秒幀數以及內容和顯示是逐行掃描還是隔行掃描。壓縮通常需要在應用的視頻質量要求與其他需求之間做出取捨。首先,用途是存儲還是單播、多播、雙向通信或廣播?對於存儲應用,到底有多少可用的存儲容量以及存儲時間需要多久?對於存儲之外的應用,最高比特率是多少?對於雙向視頻通信,時延容差或容許的端到端系統延遲是多少?如果不是雙向通信,內容需要在脫機狀態提前完成編碼還是需要實時編碼?網絡或存儲介質的容錯能力如何?根據基本目標應用,不同壓縮標準以不同方式處理這些問題的權衡。

另一方面是需要權衡編解碼實時處理的成本。如 H.264/AVC 或 WMV9/VC-1等能夠實現較高壓縮比的新算法需要更高的處理能力,這會影響編解碼器件的成本、系統功耗以及系統內存。

4. 標準化機構

在視頻編解碼技術定義方面有兩大標準機構。國際電信聯盟 (ITU) 致力於電信應用,已經開發了用於低比特率視頻電話的 H.26x 標準,其中包括 H.261、H.262、H.263 與 H.264;國際標準化組織 (ISO) 主要針對消費類應用,已經針對運動圖像壓縮定義了 MPEG 標準。MPEG 標準包括 MPEG1、MPEG2 與 MPEG4。圖 1 說明了視頻編解碼標準的發展歷程。

MPEG 與 ISO 根據基本目標應用往往做出稍有不同的取捨。有時它們也會開展合作,如:聯合視頻小組 (JVT),該小組定義了 H.264 編解碼技術,這種技術在 MPEG 系列中又被稱爲 MPEG4-Part 10 或 MPEG4 高級視頻編解碼 (AVC)。我們在本文中將這種聯合標準稱爲 H.264/AVC。同樣,H.262 對應 MPEG2,而 H.263 基本規範類 (Baseline Profile) 技術在原理方面與 MPEG4 簡單類 (Simple Profile) 編解碼技術存在較多重複。

標準對編解碼技術的普及至關重要。出於規模經濟原因,用戶根據可承受的標準尋找相應產品。由於能夠保障廠商之間的互操作性,業界樂意在標準方面進行投資。而由於自己的內容可以獲得較長的生命週期及廣泛的需求,內容提供商也對標準青睞有加。儘管幾乎所有視頻標準都是針對少數特定應用的,但是在能夠適用的情況下,它們在其他應用中也能發揮優勢。

 


圖1:ITU 與 MPEG 標準的發展歷程 [10]
 


    爲了實現更好的壓縮及獲得新的市場機遇,ITU 與 MPEG 一直在不斷髮展壓縮技術和開發新標準。中國最近開發了一種稱爲 AVS 的國家視頻編碼標準,我們在後面也會做一介紹。目前正在開發的標準包括 ITU/MPEG 聯合可擴展視頻編碼 (Joint Scalable Video Coding)(對 H264/ AVC 的修訂)和MPEG 多視角視頻編碼 (Multi-view Video Coding)。另外,爲了滿足新的應用需求,現有標準也在不斷髮展。例如,H.264 最近定義了一種稱爲高精度拓展 (Fidelity Range Extensions) 的新模式,以滿足新的市場需求,如專業數字編輯、HD-DVD 與無損編碼等。

    除了 ITU 與 ISO 開發的行業標準以外,還出現了幾種專用於因特網流媒體應用、廣受歡迎的專有解決方案,其中包括 Real Networks Real Video (RV10)、Microsoft Windows Media Video 9 (WMV9) 系列、ON2 VP6 以及 Nancy。由於這些格式在內容中得到了廣泛應用,因此專有編解碼技術可以成爲業界標準。2003 年 9 月,微軟公司向電影與電視工程師學會 (SMPTE) 提議在該機構的支持下實現 WMV9 位流與語法的標準化。該提議得到了採納,現在 WMV9 已經被 SMPTE 作爲 VC-1 實現標準化。

5. 視頻編碼原理

    我們感興趣的所有視頻標準都採用基於模塊的處理方式。每個宏模塊一般包含 4 個 8(8 的光度塊和 2 個 8(8 的色度塊(4:2:0 色度格式)。視頻編碼基於運動補償預測(MC) 原理錯誤!未找到引用源。,變換與量化及熵編碼。圖 2 說明的是一種典型的、基於運動補償的視頻編解碼技術。在運動補償中,通過預測與最新編碼的("參考")視頻幀處於同一區域的視頻幀中各宏模塊的像素來實現壓縮。例如,背景區域通常在各幀之間保持不變,因此不需要在每個幀中重新傳輸。運動估計 (ME) 是確定當前幀——即與它最相似的參考幀的 16(16 區域中每個 MB 的過程。ME 通常是視頻壓縮中最消耗性能的功能。有關當前幀中各模塊最相似區域相對位置的信息("運動矢量")被髮送至解碼器。

    MC 之後的殘差部分分爲 8(8 的模塊,各模塊綜合利用變換編碼、量化編碼與可變長度編碼技術進行編碼。變換編碼(如:離散餘弦變換或 DCT)利用殘差信號中的空間冗餘。量化編碼可以消除感知冗餘 (perceptual redundancy) 並且降低編碼殘差信號所需要的數據量。可變長度編碼利用殘差係數的統計性質。通過 MC 進行的冗餘消除過程在解碼器中以相反過程進行,來自參考幀的預測數據與編碼後的殘差數據結合在一起產生對原始視頻幀的再現 。

 

圖 2:標準運動補償視頻編碼
 

    在視頻編解碼器中,單個幀可以採用三個模式中的一個進行編碼 —— 即 I、P 或 B 幀模式(見圖 3)。幾個稱爲 Intra (I) 的幀單獨編碼,無需參考任何其他幀(無運動補償)。某些幀可以利用 MC 編碼,以前一個幀爲參考(前向預測)。這些幀稱爲預測幀 (P)。

    B 幀或雙向預測幀通過之前的幀以及當前幀的後續幀進行預測。B 幀的優勢是能夠匹配堵塞在採用前向預測的上一幀中的背景區域。雙向預測通過平衡前向及後向預測可以降低噪聲。在編碼器中採用這種功能會要求更多處理量,因爲必須同時針對前向及後向預測執行 ME,而這會明顯使運動估計計算需求加倍。爲了保存兩個參考幀,編碼器與解碼器都需要更多內存。B 幀工具需要更復雜的數據流,因爲相對採集及顯示順序而言,幀不按順序解碼。這個特點會增加時延,因此不適合實時性較高的應用。B 幀不用於預測,因此可以針對某些應用進行取捨。例如,在低幀速應用中可以跳過它們而不會影響隨後 I 與 P 幀的解碼。

 

圖3:I、P 與 B 幀間預測圖示

6. 傳統視頻編碼標準

H.261

ITU 編制的 H.261[2] 標準是第一個主流視頻壓縮標準。它主要針對雙工視頻會議應用,是爲支持 40kpbs~2Mbps 的 ISDN 網絡而設計的。H.261 支持 352(288 (CIF) 及 176(144 (QCIF) 分辨率,色度分辨率二次採樣爲 4:2:0。由於可視電話需要同步實時編解碼,因此複雜性設計得較低。由於主要用於對延遲敏感的雙向視頻,因此 H.261 僅允許採用 I 與 P 幀,而不允許 B 幀。

H.261 採用基於塊的 DCT 進行殘差信號的變換編碼。DCT 把像素的每個 8(8 塊映射到頻域,產生 64 個頻率成分(第一個係數稱爲 DC,其他的稱爲 AC)。爲了量化 DCT 係數,H.261 在所有 AC 係數中採用固定的線性量化。量化後的係數進行行程編碼,其可以按非零係數描述量化的頻率,後面跟隨一串零係數,在最後一個非零值之後以塊代碼結束。最後,可變長度編碼 (Huffman) 將運行級別對 (run-level pair) 轉換成可變長度編碼 (VLC),其比特長度已針對典型概率分佈進行過優化。

基於標準塊的編碼最終產生模塊化視頻。H.261 標準利用環路濾波避免這種現象。在模塊邊緣採用的簡單 2D FIR 濾波器用於平滑參考幀中的量化效應。必須同時在編碼器及解碼器中精確地對每個比特應用上述濾波。

MPEG-1

MPEG-1[3] 是 ISO 開發的第一個視頻壓縮算法。主要應用是數字媒體上動態圖像與音頻的存儲與檢索,如速率爲 1.15Mbps、採用 SIF 分辨率(352(240 - 29.97fps 或者 352(288 - 25 fps)的VCD。MPEG-1 與 H.261 相似,不過編碼器一般需要更高的性能,以便支持電影內容的較高運動性而不是典型的可視電話功能。

與 H.261 相比,MPEG1 允許採用 B 幀。另外它還採用自適應感知量化,也就是說,對每個頻段採用單獨的量化比例因子(或等步長),以便優化人們的視覺感受。MPEG-1 僅支持逐行視頻,因此新標準——MPEG2 已經開始做出努力,同時支持分辨率及比特率更高的逐行與隔行視頻。

MPEG-2/H.262

MPEG-2[4] 專門針對數字電視而開發,很快成爲了迄今最成功的視頻壓縮標準。MPEG-2 既能夠滿足標準逐行視頻的需求(其中視頻序列由一系列按一定時間間隔採集的幀構成),又能夠滿足電視領域常用的隔行視頻的需求。隔行視頻交替採集及顯示圖像中兩組交替的像素(每組稱爲一個場)。這種方式尤其適合電視顯示器的物理特性。MPEG2 支持標準的電視分辨率,其中包括:針對美國和日本採用的 NTSC 制式隔行 720(480 分辨率,每秒 60 場,以及歐洲和其他國家採用的PAL 制式的 720(576 分辨率,每秒 50 場。

MPEG-2 建立在 MPEG-1 基礎之上,並具備擴展功能,能支持隔行視頻及更寬的運動補償範圍。由於高分辨率視頻是非常重要的應用,因此 MPEG-2 支持的搜索範圍遠遠大於 MPEG-1。與之前的標準相比,它顯著提高了運動估計的性能要求,並充分利用更寬搜索範圍與更高分辨率優勢的編碼器需要比 H.261 和 MPEG-1 高得多的處理能力。MPEG2 中的隔行編碼工具包含優化運動補償的能力,同時支持基於場和基於幀的預測,而且同時支持基於場和基於幀的 DCT/IDCT。MPEG-2 在 30:1 左右的壓縮比時運行良好。MPEG-2 在 4-8Mbps 時達到的質量適合消費類視頻應用,因此它很快在許多應用中得到普及,如:數字衛星電視、數字有線電視、DVD 以及後來的高清電視等。

另外,MPEG-2 增加了分級視頻編碼工具,以支持多層視頻編碼,即:時域分級、空域分級、SNR 分級以及數據分割。儘管 MPEG-2 中針對分級視頻應用定義了相關類別 (profile),不過支持單層編碼的主類 (Main Profile) 是當今大衆市場中得到廣泛應用的唯一 MPEG-2 類。MPEG-2 通常稱爲 MPEG-2 主類。

MPEG-2 解碼最初對於通用處理器及 DSP 具有很高的處理要求。優化的固定功能 MPEG-2 解碼器開發已問世,由於使用量較高,成本已逐漸降低。MPEG2 證明低成本芯片解決方案的供應是視頻編解碼標準成功和普及的關鍵。

H.263

H.263[5] 在 H.261 之後得到開發,主要是爲了以更低的比特率實現更高的質量。其主要目標之一是基於普通 28.8Kbps 電話調制解調器的視頻。目標分辨率是 SQCIF (128(96)~CIF (352(288)。其基本原理與 H.261 大同小異。

H.263 的運動矢量在兩個方向上允許是 1/2 的倍數(“半像素”),參考圖像以數字方式內插到更高的分辨率。這種方法可以提高 MC 精度及壓縮比。MV 可採用更大的範圍。爲不同方案提供許多新的選項,包括:

* 4 個運動矢量——每個塊採用一個運動矢量,而非整個 MB 採用單個運動矢量。

* 3D VLC:Huffman 編碼——將塊結束 (EOB) 指示符與每個運行級別對結合在一起。這種功能主要用於低比特率,這時大多時候只有一、兩個編碼係數。

儘管存在這些功能,但是仍然很難在普通電話線上實現理想的視頻質量,而且目前基於標準調制解調器的可視電話仍然是一個難題。不過,由於 H.263 一般情況下可提供優於 H.261 的效率,它成爲了電視會議首選的算法,但是,爲了兼容舊系統,仍然需要支持 H.261。H.263 逐漸發展成爲了 H.263+,其增加了可選的附件,爲提高壓縮並實現分組網的魯棒性提供支持。H.263 及其附件構成了 MPEG-4 中許多編碼工具的核心。

MPEG-4

MPEG-4[6] 由 ISO 提出,以延續 MPEG-2 的成功。一些早期的目標包括:提高容錯能力以支持無線網、對低比特率應用進行更好的支持、實現各種新工具以支持圖形對象及視頻之間的融合。大部分圖形功能並未在產品中受到重視,相關實施主要集中在改善低比特率壓縮及提高容錯性上。.

MPEG-4 簡化類 (SP) 以H.263爲基礎,爲改善壓縮增加了新的工具,包括:

* 無限制的運動矢量:支持對象部分超出幀邊界時的預測。

* 可變塊大小運動補償:可以在 16(16 或 8(8 粒度下進行運動補償。

* 上下文自適應幀內 DCT DC/AC 預測:可以通過當前塊的左右相鄰塊預測 DC/AC DCT 係數。

* 擴展量化 AC 係數的動態範圍,支持高清視頻:從 H.263 的 [-127:127] 到 [-2047, 2047]。

增加了容錯功能,以支持丟包情況下的恢復,包括:

* 片斷重同步 (Slice Resynchronization):在圖像內建立片斷 (slice),以便在出現錯誤後更快速的進行重新同步。與 MPEG-2 數據包大小不同,MPEG4 數據包大小與用於描述 MB 的比特數量脫離了聯繫。因此,不管每個 MB 的信息量多少,都可以在位流中按相同間隔進行重新同步。

* 數據分割:這種模式允許利用唯一的運動邊界標記將視頻數據包中的數據分割成運動部分和 DCT 數據部分。這樣就可以實現對運動矢量數據更嚴格的檢查。如果出現錯誤,我們可以更清楚地瞭解錯誤之處,從而避免在發現錯誤情況下拋棄所有運動數據。

* 可逆 VLC:VLC 編碼表允許後向及前向解碼。在遇到錯誤時,可以在下一個slice進行同步,或者開始編碼並且返回到出現錯誤之處。

* 新預測 (NEWPRED):主要用於在實時應用中實現快速錯誤恢復,這些應用中的解碼器在出現丟包情況下采用逆向通道向解碼器請求補充信息。

MPEG-4 高級簡化類 (ASP) 以簡化類爲基礎,增加了與 MPEG-2 類似的 B 幀及隔行工具(用於Level 4 及以上級別)。另外它還增加了四分之一像素運動補償及用於全局運動補償的選項。MPEG-4 高級簡化類比簡化類的處理性能要求更高,而且複雜性與編碼效率都高於 MPEG-2。

MPEG-4 最初用於因特網數據流,例如,已經被 Apple 的 QuickTime 播放器採用。MPEG-4 簡化類目前在移動數據流中得到廣泛應用。MPEG-4 ASP 是已經流行的專有 DivX 編解碼器的基石。

工具與壓縮增益

當我們查看 H.261、MPEG1、MPEG2 與 H.263 視頻編解碼技術中引入的功能時,明顯可以發現幾種基本技巧提供了大部分壓縮增益。圖 4 說明這些技巧及其相關效果。與 4 個運動矢量以及四分之一像素運動補償等工具相比,運動補償(整數像素與半像素)的效果顯然更爲突出。

圖 4:基本技巧的效果:1) 無 MC;2) 增加 Skip 模式構成 CR 編碼器;3) 僅允許零 MV;4) 允許整數像素 MC;5) 允許半像素 MC;6) 允許 4-MV;7) 允許四分之一像素MC。如欲瞭解有關詳細說明,敬請參見 [7]。

7. H.264/ MPEG4-AVC

視頻編碼技術在過去幾年最重要的發展之一是由 ITU 和 ISO/IEC 的聯合視頻小組 (JVT) 開發了 H.264/MPEG-4 AVC[8] 標準。在發展過程中,業界爲這種新標準取了許多不同的名稱。ITU 在 1997 年開始利用重要的新編碼工具處理 H.26L(長期),結果令人鼓舞,於是 ISO 決定聯手 ITU 組建 JVT 並採用一個通用的標準。因此,大家有時會聽到有人將這項標準稱爲 JVT,儘管它並非正式名稱。ITU 在 2003 年 5 月批准了新的 H.264 標準。ISO 在 2003 年 10 月以 MPEG-4 Part 10、高級視頻編碼或 AVC 的名稱批准了該標準。

H.264/AVC 在壓縮效率方面取得了巨大突破,一般情況下達到 MPEG-2 及 MPEG-4 簡化類壓縮效率的大約 2 倍。在 JVT 進行的正式測試中 [9],H.264 在 85 個測試案例中有 78% 的案例實現 1.5 倍以上的編碼效率提高,77% 的案例中達到 2 倍以上,部分案例甚至高達 4 倍。H.264 實現的改進創造了新的市場機遇,如:

* 600Kbps 的 VHS 品質視頻。可以通過 ADSL 線路實現視頻點播。

* 高清晰電影無需新的激光頭即可適應普通 DVD。

H.264 標準化時支持三個類別:基本類、主類及擴展類。後來一項稱爲高保真範圍擴展 (FRExt) 的修訂引入了稱爲高級類的 4 個附加類。在初期主要是基本類和主類引起了大家的興趣。基本類降低了計算及系統內存需求,而且針對低時延進行了優化。由於 B 幀的內在時延以及 CABAC 的計算複雜性,因此它不包括這兩者。基本類非常適合可視電話應用以及其他需要低成本實時編碼的應用。

主類提供的壓縮效率最高,但其要求的處理能力也比基本類高許多,因此使其難以用於低成本實時編碼和低時延應用。廣播與內容存儲應用對主類最感興趣,它們是爲了儘可能以最低的比特率獲得最高的視頻質量。

儘管 H.264 採用與舊標準相同的主要編碼功能,不過它還具有許多與舊標準不同的新功能,它們一起實現了編碼效率的提高。圖 5 的編碼器框圖總結了其主要差別,概述如下:

幀內預測與編碼:H.264 採用空域幀內預測技術來預測相鄰塊鄰近像素的 Intra-MB 中的像素。它對預測殘差信號和預測模式進行編碼,而不是編碼塊中的實際像素。這樣可以顯著提高幀內編碼效率。

幀間預測與編碼:H.264 中的幀間編碼採用了舊標準的主要功能,同時也增加了靈活性及可操作性,包括適用於多種功能的幾種塊大小選項,如:運動補償、四分之一像素運動補償、多參考幀、通用 (generalized) 雙向預測和自適應環路去塊。

可變矢量塊大小:允許採用不同塊大小執行運動補償。可以爲小至 4(4 的塊傳輸單個運動矢量,因此在雙向預測情況下可以爲單個 MB 傳輸多達 32 個運動矢量。另外還支持 16(8、8(16、8(8、8(4 和 4(8 的塊大小。降低塊大小可以提高運動細節的處理能力,因而提高主觀質量感受,包括消除較大的塊化失真。

四分之一像素運動估計:通過允許半像素和四分之一像素運動矢量分辨率可以改善運動補償。

多參考幀預測:16 個不同的參考幀可以用於幀間編碼,從而可以改善視頻質量的主觀感受並提高編碼效率。提供多個參考幀還有助於提高 H.264 位流的容錯能力。值得注意的是,這種特性會增加編碼器與解碼器的內存需求,因爲必須在內存中保存多個參考幀。

自適應環路去塊濾波器:H.264 採用一種自適應解塊濾波器,它會在預測迴路內

對水平和垂直區塊邊緣進行處理,用於消除塊預測誤差造成的失真。這種濾波通常是基於 4(4 塊邊界爲運算基礎,其中邊界各邊的 3 個像素可通過 4 級濾波器進行更新。

整數變換:採用 DCT 的早期標準必須爲逆變換的固點實施來定義舍入誤差的容差範圍。編碼器與解碼器之間的 IDCT 精度失配造成的漂移是質量損失的根源。H.264 利用整數 4(4 空域變換解決了這一問題——這種變換是 DCT 的近似值。4(4 的小區塊還有助於減少阻塞與振鈴失真。

量化與變換系數掃描:變換系數通過標量量化方式得到量化,不產生加大的死區。與之前的標準類似,每個 MB 都可選擇不同的量化步長,不過步長以大約 12.5% 的複合速率增加,而不是固定遞增。同時,更精細的量化步長還可以用於色度成分,尤其是在粗劣量化光度係數的情況下。

熵編碼:與根據所涉及的數據類型提供多個靜態 VLC 表的先前標準不同,H.264 針對變換系數採用上下文自適應 VLC,同時針對所有其他符號採用統一的 VLC (Universal VLC) 方法。主類還支持新的上下文自適應二進制算術編碼器 (CABAC)。CAVLC 優於以前的 VLC 實施,不過成本卻比VLC高。

CABAC利用編碼器和譯碼器的機率模型來處理所有語法元素 (syntax elements),包括:變換系數和運動矢量。爲了提高算術編碼的編碼效率,基本概率模型通過一種稱爲上下文建模的方法對視頻幀內不斷變換的統計進行適應。上下文建模分析提供編碼符號的條件概率估計值。只要利用適當的上下文模型,就能根據待編碼符號周圍的已編碼符號,在不同的概率模型間進行切換,進而充份利用符號間的冗餘性。每個語法元素都可以保持不同的模型(例如,運動矢量和變換系數具有不同的模型)。相較於 VLC 熵編碼方法 (UVLC/CAVLC),CABAC 能多節省 10 % bit速率。

加權預測:它利用前向和後向預測的加權總和建立對雙向內插宏模塊的預測,這樣可以提高場景變化時的編碼效率,尤其是在衰落情況下。

保真度範圍擴展

2004 年 7 月,H.264 標準增加了稱爲保真度範圍擴展 (FRExt) [11]的新修訂。這次擴展在H.264 中添加了一整套工具,而且允許採用附加的色域、視頻格式和位深度。另外還增加了對無損幀間編碼與立體顯示視頻的支持。FRExt 修訂版在 H.264 中引入了 4 種新類,即:

* High Profile (HP):用於標準 4:2:0 色度採樣,每分量 8 位彩色。此類引入了新的工具 —— 隨後詳述。

* High 10 Profile (Hi10P):用於更高清晰度視頻顯示的標準 4:2:0 色度採樣,10 位彩色。

* High 4:2:2 10 bit color profile (H422P):用於源編輯功能,如:( 混合。

* High 4:4:4 12 bit color profile (H444P):最高品質的源編輯與色彩保真度,支持視頻區域的無損編碼以及與新的整數色域變換(從 RGB 到 YUV 及黑色)。

在新的應用領域中,H.264 HP 對廣播與 DVD 尤爲有利。某些試驗顯示出 H.264 HP 的性能比MPEG2 提高了 3 倍。下面介紹 H.264 HP 中引入的主要附加工具。

自適應殘差塊大小與整數 8(8 變換:用於變換編碼的殘差塊可以在 8(8 與 4(4 之間切換。引入了用於 8(8 塊的新 16 位整數變換。較小的塊仍然可以採用以前的 4(4 變換。

8(8 亮度幀內預測:增加了 8 種模式,除之前的 16(16 和 4(4 塊以外,使亮度內部宏模塊還能夠對 8(8 塊進行幀內預測。

量化加權:用於量化 8(8 變換系數的新量化加權矩陣。

單色:支持黑/白視頻編碼。

8. Windows Media Video 9 / VC-1

Windows Media 是提供網上音樂與視頻預訂服務與視頻流的主要格式。微軟公司於 2002 年推出了 Windows Media Video 9 系列編解碼器,實現了視頻壓縮效率的顯著提高。WMV9 另外還作爲 VC-1 在 SMPTE 中實現了標準化[12]。

與 H.264 類似,它包含許多高級編碼工具,不過種類有所不同。除了支持半象素雙線性插值之外,WMV9 的 ME 還允許 1/4 象素雙立方插值(採用 4 抽頭近似雙立方濾波器)。另外它還包含與 H.264 類似的環內去塊濾波器,不過濾波器和決策細節不同。其他部分功能包括:

多個 VLC 表:WMV9 主類包含多套針對不同類型內容進行優化的 VLC 表。這些表可以在幀級切換,以適應輸入視頻的特徵。

DCT/IDCT 變換切換:WMV9 支持多種 DCT 塊大小,包括:8(8、8(4、4(8 和 4(4。其採用專用的 16 位整數變換與逆變換。

量化:採用一般基於步長的量化和死區量化。死區量化可以在低比特率時實現顯著節省。

另一個有趣的功能是能夠在涉及衰落的情況下采用明確的衰落補償。它可以提高這些情況下運動補償的質量。

WMV9/VC-1 在性能方面與 MPEG-2 和 MPEG-4 簡化類相比有顯著提高,相對於 H.264,其知覺質量感受也非常優秀[13]。不過,在提供相似壓縮效率情況下,WMV9/VC-1 與 H.264 主類相比複雜性要求較低。WMV9 廣泛應用於個人電腦環境,而且已經成爲互聯網消費設備中的重要技術。WMV9/VC-1 在好萊塢和獨立製片業正日益受寵,多部電影的發行開始採用WMV9/VC-1 進行編碼,以實現 PC DVD 上的高清晰播放。此外,WMV9 已經作爲新興的 HD-DVD 格式壓縮選項實現了標準化。

9. AVS

2002 年,中國信息產業部成立的音視頻技術標準 (AVS) 工作組宣佈準備針對移動多媒體、廣播、DVD等應用編寫一份國家標準。該視頻標準稱爲 AVS [14],由兩個相關部分組成 - 針對移動視頻應用的 AVS-M 和針對廣播與 DVD 的 AVS1.0。AVS 標準與 H.264 相似。

AVS1.0 同時支持隔行和逐行掃描模式。AVS 中 P 幀可以利用 2 幀的前向參考幀,同時允許 B 幀採用前後各一個幀。在隔行模式下,4 個場可以用作參考。可以僅在幀級執行隔行模式中的幀/場編碼,這一點與 H.264 不同,其中允許此選項的 MB 級自適應。AVS 具有與 H.264相似的環路濾波器,可以在幀級關閉。另外,B 幀還無需環路濾波器。幀內預測是以 8(8 塊爲單位進行。MC 允許對亮度塊進行 1/4 象素補償。ME 的塊大小可以是 16(16、16(8、8(16 或 8(8。變換方式是基於 16 位的 8(8 整數變換(與 WMV9 相似)。VLC 是基於上下文自適應 2D 運行/級別編碼。採用 4 個不同的 Exp-Golomb 編碼。用於每個已量化係數的編碼自適應到相同 8(8 塊中前面的符號。由於 Exp-Golomb 表是參數化的表,因此表較小。用於逐行視頻序列的 AVS 1.0 的視頻質量在相同比特率時稍遜於 H.264 主類。

AVS-M 主要針對移動視頻應用,與 H.264 基本規範存在交叉。它僅支持逐行視頻、I 與 P 幀,不支持 B 幀。主要 AVS-M 編碼工具包括基於 4(4 塊的幀內預測、1/4象素運動補償、整數變換與量化、上下文自適應 VLC 以及高度簡化的環路濾波器。與 H.264 基本規範相似,AVS-M 中的運動矢量塊大小降至 4(4,因此 MB 可擁有多達 16 個運動矢量。採用多幀預測,但僅支持 2 個參考幀。此外,AVS-M 中還定義了 H.264 HRD/SEI 消息的子集。AVS-M的編碼頻率約爲 0.3dB,在相同設置下稍遜於 H.264 基本規範,而解碼器的複雜性卻降低了大約20%。

10. 各編解碼器的功能與工具對比

表1概述我們介紹的視頻標準採用的主要壓縮功能與工具。

表 1:標準編解碼器中的主要壓縮功能

11. 市場趨勢與應用

視頻壓縮正在市場中催生數量日益增長的數字視頻產品。採用數字視頻壓縮技術的終端設備範圍廣泛,從電池驅動的便攜設備到高性能基礎設備。表 2 概述部分應用、主要需求、採用的典型視頻編解碼器及其在這些應用中的發展趨勢。

 
表 2:標準應用採用的典型編解碼器與發展趨勢


 
12. 實時實現

數字視頻的最佳處理器解決方案取決於具體的目標應用。TI 擁有可支持多種標準並滿足主要設計及系統約束需求的各種 DSP。TI 的解決方案範圍廣泛,其中包括低功耗 c5000 DSP 與移動OMAP 應用處理器、高性能 c6000 DSP 與視頻優化的高性能 DM64x 和 DM644x 數字媒體處理器。目前倍受關注的處理器之一是未面世的 DM6446,我們將在本節中進行介紹。

德州儀器 (TI) 的 DM 系列處理器專門針對高端視頻系統的需求而設計。該系列的最新處理器是功能強大的 DM6446[15],其採用了 TI 的達芬奇 (DaVinci) 技術[16]。DM6446 的雙內核架構兼具 DSP 和 RISC 技術優勢,集成了時鐘頻率達 594MHz 的 c64x+ DSP 內核與 ARM926EJ-S內核。新一代 c64x+ DSP 是 TMS320C6000(tm) DSP 平臺中性能最高的定點 DSP,並建立在 TI 開發的第二代高性能高級 VLIW 架構的增強版之上。c64x+ 與前代 C6000 DSP 平臺代碼兼容。DM644x 等可編程數字媒體處理器可以支持所有的現有業界標準以及採用單個可編程數字媒體處理器的專有視頻格式。DM6446 還具有片上內存,包括一個 2 級高速緩存和衆多具有視頻專用功能的外設。DM6446 還包含一種視頻/影像協處理器 (VICP),用於減輕相關算法(如:JPEG、H.264、MPEG4 與 VC-1)的 DSP 內核繁重的視頻與影像處理負擔,從而使更多的 DSP MIPS 能夠用於視頻後處理或者其他並行運行等功能。

表3說明 DM6446 在各種標準下保持 D1 (720(480) 分辨率大約所需要的頻率。

 

表3:單片TI DM6446 平臺處理 D 1 30fps(720(480)、YUV 4:2:0 性能所需要頻率典型值。
 

表解碼器性能數據是針對最差情況下的比特流。解碼器性能隨所採用功能組合的變化而變化。上述例子中假定爲高品質的編碼。DM6446 上的 c64x+ 可達到 594MHz 的時鐘頻率。

    請注意:所顯示的編碼頻率數據是根據現有/計劃實施而得出的典型測試數據。另外,編碼器負載隨目標應用不同而存在顯著差異。壓縮標準規定需要的語法與可用的工具,不過許多算法結果取決於具體實施情況。主要變量包括:比特率控制算法、單通道與多通道編碼、I/B/P 幀比率、運動搜索範圍、運動搜索算法、以及選用的個別工具與模式。這種靈活性允許我們在計算負載和改進質量之間做出不同取捨。顯然所有編碼器都可以採用或高或低的頻率實現不同的視頻質量水平。

13. 結論

    越來越多的視頻壓縮標準可以針對具體最終應用提供越來越高的壓縮效率和越來越豐富的工具。另外,向網絡化連接發展的趨勢意味着許多產品越來越需要支持多種標準。多種標準和專有算法的流行也使我們難以選擇單個標準,尤其是在硬件決策經常超前於產品部署的情況下。不僅如此,每個視頻編碼算法都提供豐富的工具與功能選擇,以平衡壓縮效率的複雜性。工具和功能的選擇是與特定應用和用例息息相關的重複過程。由於必須支持的編解碼器數量的增多以及針對具體解決方案和應用而對編解碼器進行優化的選擇範圍更爲廣泛,因此在數字視頻系統中採用靈活的媒體處理器是大勢所趨。DM6446 等數字媒體處理器可充分滿足性能處理需求同時架構靈活,從而能夠快速把新標準實施推向市場,其中包括:H.264、AVS 與 WMV9。我們可以在標準定義階段實施算法並且保持軟件算法與工具的更新,從而緊隨標準大大小小的修改並且滿足應用不斷變化的質量需求。

14. 參考文獻

[1] J. R. Jain與A. K. Jain,《位移測量及其在幀間圖像編碼中的應用》,IEEE Trans. Commun.,COM-29 卷,第 12 期,1799~1808 頁,1981 年 12 月。

[2] ITU-T建議 H.261:1993,《用於 px64Kbps 音頻/視頻業務的視頻編解碼技術》。

[3] ISO/IEC 11172-2:1993,《1.5Mbps 數字存儲媒體的動態圖像及相關音頻的編碼 - 第2部分:視頻》。

[4] ISO/IEC 13818-2:1995,《動態圖像及相關音頻信息的通用編碼:音頻》。

[5] ITU-T 建議 H.263:1998,《低速率通信的視頻編碼》。

[6] ISO/IEC 14496-2:2001,《信息技術 —— 音頻/視頻對象的通用編碼 —— 第2部分:視頻》。

[7] G. Sullivan與T. Wiegand,“視頻壓縮 —— 從概念到 H.264/AVC 標準”,《IEEE 學報》93 卷第 1 期,2005 年 1 月。

[8] ISO/IEC 14496-10:2003,《信息技術 —— 音頻/視頻對象的編碼 —— 第 10 部分:高級視頻編碼》。

[9] 《AVC 正式檢驗測試報告》(ISO/IEC 14496-10 | ITU-T Rec. H.264),ISO/IEC JTC1/SC29/WG11,MPEG-2003/N6231,2003 年 12 月,Waikoloa。

[10] 《UB 視頻公司的 H.264 白皮書》,www.ubvideo.com

[11] ITU-T 與 ISO/IEC 聯合視頻小組:《H.264/AVC 保真度範圍擴展修訂草案》,Doc. JVT-L047,2004 年 9 月。

[12] 《SMPTE 421M、SMPTE 電視標準草案:VC-1 壓縮視頻比特流格式與解碼過程》。

[13] Srinivasan, S.、(John) Hsu, P.、Holcomb, T.、Mukerjee, K.、Regunathan, S.L.、Lin, B.、Liang, J.、Lee, M.-C.、Ribas-Corbera, J.,“Windows Media Video 9:概述與應用”,《信號處理:圖像通信》,19 卷,第 9 期,2004 年 10 月 1 日,851~875 頁。

[14] L. Fan、S. Ma、F. Wu:“AVS 視頻標準概述”,《ICME 2004 年學報》,423-426 頁。

[15] 《TMS320DM6446 數字媒體片上系統》,網址 www.ti.com

[16] Bill Witowsky、Gene Frantz, 《用於數字視頻的達芬奇技術》,網址 www.ti.com

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章