關鍵字:
作者:Jeremiah Golston,,TI 首席技術官 [email protected]
Ajit Rao 博士,,TI 技術應用工程師 [email protected]
2006 年 4 月加州舊金山嵌入式系統(tǒng)會資料
1. 前言
數字視頻產品需求近些年出現(xiàn)猛增。主流應用包括視頻通信,、安全監(jiān)控與工業(yè)自動化,,而最熱門的要算娛樂應用,如 DVD,、HDTV,、衛(wèi)星電視、高清 (HD) 機頂盒,、因特網視頻流,、數碼相機與 HD 攝像機、視頻光盤庫 (video jukebox),、高端顯示器(LCD,、等離子顯示器,、DLP)以及個人攝像機等。眾多精彩的新應用目前也處于設計或前期部署中,,例如針對家庭與手持設備及地面/衛(wèi)星標準(DVB-T,、DVB-H、DMB)的高清 DVD(藍光/HD-DVD)和數字視頻廣播,、高清視頻電話,、數碼相機以及 IP 機頂盒。由于手持終端計算能力的提高以及電池技術與高速無線連接的發(fā)展,,最終產品的移動性與集成性也在不斷提高,。
視頻壓縮是所有令人振奮的、新型視頻產品的重要動力,。壓縮-解壓(編解碼)算法可以實現(xiàn)數字視頻的存儲與傳輸,。典型的編解碼器要么采用行業(yè)標準,如 MPEG2,、MPEG4,、H.264/AVC 與 AVS,要么采用專有算法,,如 On2,、Real Video、Nancy與Windows Media Video (WMV) 等,。WMV 是個例外——它最初是微軟公司的專有算法,,而現(xiàn)在則以 VC-1 的新名稱在業(yè)界實現(xiàn)了標準化。編解碼技術在過去十年中不斷改進,。最新的編解碼技術(H.264/AVC 與 VC-1)代表著第三代視頻壓縮技術,。這兩種編解碼技術利用如可編程 DSP 與ASIC 等低成本 IC 的處理能力,都能夠達到極高的壓縮比,。不過,,為具體應用選擇正確的編解碼器并優(yōu)化其實時處理仍然是一項巨大的挑戰(zhàn)。最佳的設計必須權衡壓縮效率及可用的計算能力,。此外,,如何在計算能力有限的情況下獲得最佳壓縮效率也是一門大學問。
在本文中,,我們首先概述視頻編碼的主要概念,,同時介紹傳統(tǒng)壓縮標準。然后我們重點介紹其中包括 H.264/AVC,、WMV9/VC-1與AVS 等在內的最新編解碼技術的功能,,此外,還將深入探討壓縮能力與復雜性之間的權衡,。最后,,討論市場中可能會影響主流視頻編解碼器未來的實時處理與主要趨勢,。
2. 視頻壓縮挑戰(zhàn)
數字視頻的主要挑戰(zhàn)在于原始或未壓縮的視頻需要存儲或傳輸大量數據。例如,,標準清晰度的 NTSC 視頻的數字化一般是每秒 30 幀速率,,采用 4:2:2 YcrCb 及 720′480,其要求超過 165Mbps 的數據速率,。保存 90 分鐘的視頻需要 110GB 空間,,或者說超過標準 DVD-R 存儲容量的 25 倍。即使是視頻流應用中常用的低分辨率視頻(如:CIF:352x288 4:2:0,、30 幀/秒)也需要超過 36.5Mbps 的數據速率,,這是 ADSL 或 3G 無線等寬帶網絡速度的許多倍。目前的寬帶網可提供 1~10Mbps 的持續(xù)傳輸能力,。顯然數字視頻的存儲或傳輸需要采用壓縮技術,。
視頻壓縮的目的是對數字視頻進行編碼——在保持視頻質量的同時占用盡可能少的空間。編解碼技術理論依據為信息理論的數學原理,。不過,開發(fā)實用的編解碼技術需要藝術性的精心考慮,。
3. 壓縮權衡
在選擇數字視頻系統(tǒng)的編解碼技術時需要考慮諸多因素,。主要因素包括應用的視頻質量要求、傳輸通道或存儲介質所處的環(huán)境(速度,、時延,、錯誤特征)以及源內容的格式。同樣重要的還有預期分辨率,、目標比特率,、色彩深度、每秒幀數以及內容和顯示是逐行掃描還是隔行掃描,。壓縮通常需要在應用的視頻質量要求與其他需求之間做出取舍,。首先,用途是存儲還是單播,、多播,、雙向通信或廣播?對于存儲應用,,到底有多少可用的存儲容量以及存儲時間需要多久,?對于存儲之外的應用,最高比特率是多少,?對于雙向視頻通信,,時延容差或容許的端到端系統(tǒng)延遲是多少?如果不是雙向通信,,內容需要在脫機狀態(tài)提前完成編碼還是需要實時編碼,?網絡或存儲介質的容錯能力如何,?根據基本目標應用,不同壓縮標準以不同方式處理這些問題的權衡,。
如 H.264/AVC 或 WMV9/VC-1等能夠實現(xiàn)較高壓縮比的新算法需要更高的處理能力,,這會影響編解碼器件的成本、系統(tǒng)功耗以及系統(tǒng)內存,。
4. 標準化機構
在視頻編解碼技術定義方面有兩大標準機構,。國際電信聯(lián)盟 (ITU) 致力于電信應用,已經開發(fā)了用于低比特率視頻電話的 H.26x 標準,,其中包括 H.261,、H.262、H.263 與 H.264,;國際標準化組織 (ISO) 主要針對消費類應用,,已經針對運動圖像壓縮定義了 MPEG 標準。MPEG 標準包括 MPEG1,、MPEG2 與 MPEG4,。圖 1 說明了視頻編解碼標準的發(fā)展歷程。
MPEG 與 ISO 根據基本目標應用往往做出稍有不同的取舍,。有時它們也會開展合作,,如:聯(lián)合視頻小組 (JVT),該小組定義了 H.264 編解碼技術,,這種技術在 MPEG 系列中又被稱為 MPEG4-Part 10 或 MPEG4 高級視頻編解碼 (AVC),。我們在本文中將這種聯(lián)合標準稱為 H.264/AVC。同樣,,H.262 對應 MPEG2,,而 H.263 基本規(guī)范類 (Baseline Profile) 技術在原理方面與 MPEG4 簡單類 (Simple Profile) 編解碼技術存在較多重復。
標準對編解碼技術的普及至關重要,。出于規(guī)模經濟原因,,用戶根據可承受的標準尋找相應產品。由于能夠保障廠商之間的互操作性,,業(yè)界樂意在標準方面進行投資,。而由于自己的內容可以獲得較長的生命周期及廣泛的需求,內容提供商也對標準青睞有加,。盡管幾乎所有視頻標準都是針對少數特定應用的,,但是在能夠適用的情況下,它們在其他應用中也能發(fā)揮優(yōu)勢,。
圖1:ITU 與MPEG 標準的發(fā)展歷程[10]
為了實現(xiàn)更好的壓縮及獲得新的市場機遇,,ITU 與 MPEG 一直在不斷發(fā)展壓縮技術和開發(fā)新標準。中國最近開發(fā)了一種稱為 AVS 的國家視頻編碼標準,我們在后面也會做一介紹,。目前正在開發(fā)的標準包括 ITU/MPEG 聯(lián)合可擴展視頻編碼 (Joint Scalable Video Coding)(對 H264/ AVC 的修訂)和MPEG 多視角視頻編碼 (Multi-view Video Coding),。另外,為了滿足新的應用需求,,現(xiàn)有標準也在不斷發(fā)展,。例如,H.264 最近定義了一種稱為高精度拓展 (Fidelity Range Extensions) 的新模式,,以滿足新的市場需求,,如專業(yè)數字編輯、HD-DVD 與無損編碼等,。
除了 ITU 與 ISO 開發(fā)的行業(yè)標準以外,,還出現(xiàn)了幾種專用于因特網流媒體應用、廣受歡迎的專有解決方案,,其中包括 Real Networks Real Video (RV10),、Microsoft Windows Media Video 9 (WMV9) 系列、ON2 VP6 以及 Nancy,。由于這些格式在內容中得到了廣泛應用,,因此專有編解碼技術可以成為業(yè)界標準。2003 年 9 月,,微軟公司向電影與電視工程師學會 (SMPTE) 提議在該機構的支持下實現(xiàn) WMV9 位流與語法的標準化,。該提議得到了采納,現(xiàn)在 WMV9 已經被 SMPTE 作為 VC-1 實現(xiàn)標準化,。
5. 視頻編碼原理
我們感興趣的所有視頻標準都采用基于模塊的處理方式。每個宏模塊一般包含 4 個 8′8 的光度塊和 2 個 8′8 的色度塊(4:2:0 色度格式),。視頻編碼基于運動補償預測(MC) 原理,,變換與量化及熵編碼。圖 2 說明的是一種典型的,、基于運動補償的視頻編解碼技術,。在運動補償中,通過預測與最新編碼的(“參考”)視頻幀處于同一區(qū)域的視頻幀中各宏模塊的像素來實現(xiàn)壓縮,。例如,,背景區(qū)域通常在各幀之間保持不變,因此不需要在每個幀中重新傳輸,。運動估計 (ME) 是確定當前幀——即與它最相似的參考幀的 16′16 區(qū)域中每個 MB 的過程,。ME 通常是視頻壓縮中最消耗性能的功能。有關當前幀中各模塊最相似區(qū)域相對位置的信息(“運動矢量”)被發(fā)送至解碼器,。
MC 之后的殘差部分分為 8′8 的模塊,,各模塊綜合利用變換編碼、量化編碼與可變長度編碼技術進行編碼。變換編碼(如:離散余弦變換或 DCT)利用殘差信號中的空間冗余,。量化編碼可以消除感知冗余 (perceptual redundancy) 并且降低編碼殘差信號所需要的數據量,。可變長度編碼利用殘差系數的統(tǒng)計性質,。通過 MC 進行的冗余消除過程在解碼器中以相反過程進行,,來自參考幀的預測數據與編碼后的殘差數據結合在一起產生對原始視頻幀的再現(xiàn) 。
圖2:標準運動補償視頻編碼
在視頻編解碼器中,,單個幀可以采用三個模式中的一個進行編碼 —— 即 I,、P 或 B 幀模式(見圖 3)。幾個稱為 Intra (I) 的幀單獨編碼,,無需參考任何其他幀(無運動補償),。某些幀可以利用 MC 編碼,以前一個幀為參考(前向預測),。這些幀稱為預測幀 (P),。
B 幀或雙向預測幀通過之前的幀以及當前幀的后續(xù)幀進行預測。B 幀的優(yōu)勢是能夠匹配堵塞在采用前向預測的上一幀中的背景區(qū)域,。雙向預測通過平衡前向及后向預測可以降低噪聲,。在編碼器中采用這種功能會要求更多處理量,因為必須同時針對前向及后向預測執(zhí)行 ME,,而這會明顯使運動估計計算需求加倍,。為了保存兩個參考幀,編碼器與解碼器都需要更多內存,。B 幀工具需要更復雜的數據流,,因為相對采集及顯示順序而言,幀不按順序解碼,。這個特點會增加時延,,因此不適合實時性較高的應用。B 幀不用于預測,,因此可以針對某些應用進行取舍,。例如,在低幀速應用中可以跳過它們而不會影響隨后 I 與 P 幀的解碼,。
圖3:I,、P 與 B 幀間預測圖示
6. 傳統(tǒng)視頻編碼標準
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),,其比特長度已針對典型概率分布進行過優(yōu)化。
基于標準塊的編碼最終產生模塊化視頻,。H.261 標準利用環(huán)路濾波避免這種現(xiàn)象,。在模塊邊緣采用的簡單 2D FIR 濾波器用于平滑參考幀中的量化效應。必須同時在編碼器及解碼器中精確地對每個比特應用上述濾波,。
MPEG-1
MPEG-1[3] 是 ISO 開發(fā)的第一個視頻壓縮算法,。主要應用是數字媒體上動態(tài)圖像與音頻的存儲與檢索,如速率為 1.15Mbps,、采用 SIF 分辨率(352′240 – 29.97fps 或者 352′288 – 25 fps)的VCD,。MPEG-1 與 H.261 相似,不過編碼器一般需要更高的性能,,以便支持電影內容的較高運動性而不是典型的可視電話功能,。
與 H.261 相比,MPEG1 允許采用 B 幀,。另外它還采用自適應感知量化,也就是說,,對每個頻段采用單獨的量化比例因子(或等步長),,以便優(yōu)化人們的視覺感受。MPEG-1 僅支持逐行視頻,,因此新標準——MPEG2 已經開始做出努力,,同時支持分辨率及比特率更高的逐行與隔行視頻。
MPEG-2/H.262
MPEG-2[4] 專門針對數字電視而開發(fā),,很快成為了迄今最成功的視頻壓縮標準,。MPEG-2 既能夠滿足標準逐行視頻的需求(其中視頻序列由一系列按一定時間間隔采集的幀構成),又能夠滿足電視領域常用的隔行視頻的需求。隔行視頻交替采集及顯示圖像中兩組交替的像素(每組稱為一個場),。這種方式尤其適合電視顯示器的物理特性,。MPEG2 支持標準的電視分辨率,其中包括:針對美國和日本采用的 NTSC 制式隔行 720′480 分辨率,,每秒 60 場,,以及歐洲和其他國家采用的PAL 制式的 720′576 分辨率,每秒 50 場,。
MPEG-2 建立在 MPEG-1 基礎之上,,并具備擴展功能,能支持隔行視頻及更寬的運動補償范圍,。由于高分辨率視頻是非常重要的應用,,因此 MPEG-2 支持的搜索范圍遠遠大于 MPEG-1。與之前的標準相比,,它顯著提高了運動估計的性能要求,,并充分利用更寬搜索范圍與更高分辨率優(yōu)勢的編碼器需要比 H.261 和 MPEG-1 高得多的處理能力。MPEG2 中的隔行編碼工具包含優(yōu)化運動補償的能力,,同時支持基于場和基于幀的預測,,而且同時支持基于場和基于幀的 DCT/IDCT。MPEG-2 在 30:1 左右的壓縮比時運行良好,。MPEG-2 在 4-8Mbps 時達到的質量適合消費類視頻應用,,因此它很快在許多應用中得到普及,如:數字衛(wèi)星電視,、數字有線電視,、DVD 以及后來的高清電視等。
另外,,MPEG-2 增加了分級視頻編碼工具,,以支持多層視頻編碼,即:時域分級,、空域分級,、SNR 分級以及數據分割。盡管 MPEG-2 中針對分級視頻應用定義了相關類別 (profile),,不過支持單層編碼的主類 (Main Profile) 是當今大眾市場中得到廣泛應用的唯一 MPEG-2 類,。MPEG-2 通常稱為 MPEG-2 主類。
MPEG-2 解碼最初對于通用處理器及 DSP 具有很高的處理要求,。優(yōu)化的固定功能 MPEG-2 解碼器開發(fā)已問世,,由于使用量較高,成本已逐漸降低,。MPEG2 證明低成本芯片解決方案的供應是視頻編解碼標準成功和普及的關鍵,。
H.263
H.263[5] 在 H.261 之后得到開發(fā),,主要是為了以更低的比特率實現(xiàn)更高的質量。其主要目標之一是基于普通 28.8Kbps 電話調制解調器的視頻,。目標分辨率是 SQCIF (128′96)~CIF (352′288),。其基本原理與 H.261 大同小異。
H.263 的運動矢量在兩個方向上允許是 ? 的倍數(“半像素”),,參考圖像以數字方式內插到更高的分辨率,。這種方法可以提高 MC 精度及壓縮比。MV 可采用更大的范圍,。為不同方案提供許多新的選項,,包括:
- 4個運動矢量——每個塊采用一個運動矢量,而非整個 MB 采用單個運動矢量,。
- 3D VLC:Huffman 編碼——將塊結束 (EOB) 指示符與每個運行級別對結合在一起,。這種功能主要用于低比特率,這時大多時候只有一,、兩個編碼系數,。
盡管存在這些功能,但是仍然很難在普通電話線上實現(xiàn)理想的視頻質量,,而且目前基于標準調制解調器的可視電話仍然是一個難題,。不過,由于 H.263 一般情況下可提供優(yōu)于 H.261 的效率,,它成為了電視會議首選的算法,,但是,為了兼容舊系統(tǒng),,仍然需要支持 H.261,。H.263 逐漸發(fā)展成為了 H.263+,其增加了可選的附件,,為提高壓縮并實現(xiàn)分組網的魯棒性提供支持,。H.263 及其附件構成了 MPEG-4 中許多編碼工具的核心。
MPEG-4
MPEG-4[6] 由 ISO 提出,,以延續(xù) MPEG-2 的成功,。一些早期的目標包括:提高容錯能力以支持無線網、對低比特率應用進行更好的支持,、實現(xiàn)各種新工具以支持圖形對象及視頻之間的融合,。大部分圖形功能并未在產品中受到重視,相關實施主要集中在改善低比特率壓縮及提高容錯性上,。.
MPEG-4 簡化類 (SP) 以H.263為基礎,為改善壓縮增加了新的工具,,包括:
- 無限制的運動矢量:支持對象部分超出幀邊界時的預測,。
- 可變塊大小運動補償:可以在 16′16 或 8′8 粒度下進行運動補償,。
- 上下文自適應幀內 DCT DC/AC 預測:可以通過當前塊的左右相鄰塊預測 DC/AC DCT 系數。
- 擴展量化 AC 系數的動態(tài)范圍,,支持高清視頻:從 H.263 的 [-127:127] 到 [-2047, 2047],。
增加了容錯功能,以支持丟包情況下的恢復,,包括:
- 片斷重同步 (Slice Resynchronization):在圖像內建立片斷 (slice),,以便在出現(xiàn)錯誤后更快速的進行重新同步。與 MPEG-2 數據包大小不同,,MPEG4 數據包大小與用于描述 MB 的比特數量脫離了聯(lián)系,。因此,不管每個 MB 的信息量多少,,都可以在位流中按相同間隔進行重新同步,。
- 數據分割:這種模式允許利用唯一的運動邊界標記將視頻數據包中的數據分割成運動部分和 DCT 數據部分。這樣就可以實現(xiàn)對運動矢量數據更嚴格的檢查,。如果出現(xiàn)錯誤,,我們可以更清楚地了解錯誤之處,從而避免在發(fā)現(xiàn)錯誤情況下拋棄所有運動數據,。
- 可逆 VLC:VLC 編碼表允許后向及前向解碼,。在遇到錯誤時,可以在下一個slice進行同步,,或者開始編碼并且返回到出現(xiàn)錯誤之處,。
- 新預測 (NEWPRED):主要用于在實時應用中實現(xiàn)快速錯誤恢復,這些應用中的解碼器在出現(xiàn)丟包情況下采用逆向通道向解碼器請求補充信息,。
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 視頻編解碼技術中引入的功能時,,明顯可以發(fā)現(xiàn)幾種基本技巧提供了大部分壓縮增益。圖 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
視頻編碼技術在過去幾年最重要的發(fā)展之一是由 ITU 和 ISO/IEC 的聯(lián)合視頻小組 (JVT) 開發(fā)了 H.264/MPEG-4 AVC[8] 標準。在發(fā)展過程中,,業(yè)界為這種新標準取了許多不同的名稱,。ITU 在 1997 年開始利用重要的新編碼工具處理 H.26L(長期),結果令人鼓舞,,于是 ISO 決定聯(lián)手 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% 的案例實現(xiàn) 1.5 倍以上的編碼效率提高,77% 的案例中達到 2 倍以上,,部分案例甚至高達 4 倍,。H.264 實現(xiàn)的改進創(chuàng)造了新的市場機遇,如:
- 600Kbps 的 VHS 品質視頻,??梢酝ㄟ^ ADSL 線路實現(xiàn)視頻點播。
- 高清晰電影無需新的激光頭即可適應普通 DVD,。
H.264 標準化時支持三個類別:基本類,、主類及擴展類。后來一項稱為高保真范圍擴展 (FRExt) 的修訂引入了稱為高級類的 4 個附加類,。在初期主要是基本類和主類引起了大家的興趣,。基本類降低了計算及系統(tǒng)內存需求,,而且針對低時延進行了優(yōu)化,。由于 B 幀的內在時延以及 CABAC 的計算復雜性,,因此它不包括這兩者?;绢惙浅_m合可視電話應用以及其他需要低成本實時編碼的應用。
主類提供的壓縮效率最高,,但其要求的處理能力也比基本類高許多,,因此使其難以用于低成本實時編碼和低時延應用。廣播與內容存儲應用對主類最感興趣,,它們是為了盡可能以最低的比特率獲得最高的視頻質量,。
盡管 H.264 采用與舊標準相同的主要編碼功能,不過它還具有許多與舊標準不同的新功能,,它們一起實現(xiàn)了編碼效率的提高,。圖 5 的編碼器框圖總結了其主要差別,概述如下:
幀內預測與編碼:H.264 采用空域幀內預測技術來預測相鄰塊鄰近像素的 Intra-MB 中的像素,。它對預測殘差信號和預測模式進行編碼,,而不是編碼塊中的實際像素。這樣可以顯著提高幀內編碼效率,。
幀間預測與編碼:H.264 中的幀間編碼采用了舊標準的主要功能,,同時也增加了靈活性及可操作性,包括適用于多種功能的幾種塊大小選項,,如:運動補償,、四分之一像素運動補償、多參考幀,、通用 (generalized) 雙向預測和自適應環(huán)路去塊,。
可變矢量塊大小:允許采用不同塊大小執(zhí)行運動補償,??梢詾樾≈?4′4 的塊傳輸單個運動矢量,因此在雙向預測情況下可以為單個 MB 傳輸多達 32 個運動矢量,。另外還支持 16′8,、8′16、8′8,、8′4 和 4′8 的塊大小,。降低塊大小可以提高運動細節(jié)的處理能力,因而提高主觀質量感受,,包括消除較大的塊化失真,。
圖5:H.264 框圖與功能[10]
四分之一像素運動估計:通過允許半像素和四分之一像素運動矢量分辨率可以改善運動補償。
多參考幀預測:16 個不同的參考幀可以用于幀間編碼,,從而可以改善視頻質量的主觀感受并提高編碼效率,。提供多個參考幀還有助于提高 H.264 位流的容錯能力,。值得注意的是,這種特性會增加編碼器與解碼器的內存需求,,因為必須在內存中保存多個參考幀,。
自適應環(huán)路去塊濾波器:H.264 采用一種自適應解塊濾波器,它會在預測回路內對水平和垂直區(qū)塊邊緣進行處理,,用于消除塊預測誤差造成的失真,。這種濾波通常是基于 4′4 塊邊界為運算基礎,其中邊界各邊的 3 個像素可通過 4 級濾波器進行更新,。
整數變換:采用 DCT 的早期標準必須為逆變換的固點實施來定義舍入誤差的容差范圍,。編碼器與解碼器之間的 IDCT 精度失配造成的漂移是質量損失的根源。H.264 利用整數 4′4 空域變換解決了這一問題——這種變換是 DCT 的近似值,。4′4 的小區(qū)塊還有助于減少阻塞與振鈴失真,。
量化與變換系數掃描:變換系數通過標量量化方式得到量化,不產生加大的死區(qū),。與之前的標準類似,,每個 MB 都可選擇不同的量化步長,不過步長以大約 12.5% 的復合速率增加,,而不是固定遞增,。同時,更精細的量化步長還可以用于色度成分,,尤其是在粗劣量化光度系數的情況下,。
熵編碼:與根據所涉及的數據類型提供多個靜態(tài) VLC 表的先前標準不同,H.264 針對變換系數采用上下文自適應 VLC,,同時針對所有其他符號采用統(tǒng)一的 VLC (Universal VLC) 方法,。主類還支持新的上下文自適應二進制算術編碼器 (CABAC)。CAVLC 優(yōu)于以前的 VLC 實施,,不過成本卻比VLC高,。
CABAC利用編碼器和譯碼器的機率模型來處理所有語法元素 (syntax elements),包括:變換系數和運動矢量,。為了提高算術編碼的編碼效率,,基本概率模型通過一種稱為上下文建模的方法對視頻幀內不斷變換的統(tǒng)計進行適應。上下文建模分析提供編碼符號的條件概率估計值,。只要利用適當的上下文模型,,就能根據待編碼符號周圍的已編碼符號,在不同的概率模型間進行切換,,進而充份利用符號間的冗余性,。每個語法元素都可以保持不同的模型(例如,運動矢量和變換系數具有不同的模型)。相較于 VLC 熵編碼方法 (UVLC/CAVLC),,CABAC 能多節(jié)省 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):用于源編輯功能,,如:a 混合,。
- High 4:4:4 12 bit color profile (H444P):最高品質的源編輯與色彩保真度,支持視頻區(qū)域的無損編碼以及與新的整數色域變換(從 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 系列編解碼器,實現(xiàn)了視頻壓縮效率的顯著提高,。WMV9 另外還作為 VC-1 在 SMPTE 中實現(xiàn)了標準化[12],。
與 H.264 類似,它包含許多高級編碼工具,不過種類有所不同,。除了支持半象素雙線性插值之外,,WMV9 的 ME 還允許 ? 象素雙立方插值(采用 4 抽頭近似雙立方濾波器)。另外它還包含與 H.264 類似的環(huán)內去塊濾波器,,不過濾波器和決策細節(jié)不同,。其他部分功能包括:
多個VLC 表:WMV9 主類包含多套針對不同類型內容進行優(yōu)化的 VLC 表。這些表可以在幀級切換,,以適應輸入視頻的特征,。
DCT/IDCT 變換切換:WMV9 支持多種 DCT 塊大小,包括:8′8,、8′4,、4′8 和 4′4。其采用專用的 16 位整數變換與逆變換,。
量化:采用一般基于步長的量化和死區(qū)量化,。死區(qū)量化可以在低比特率時實現(xiàn)顯著節(jié)省。
另一個有趣的功能是能夠在涉及衰落的情況下采用明確的衰落補償,。它可以提高這些情況下運動補償的質量,。
WMV9/VC-1 在性能方面與 MPEG-2 和 MPEG-4 簡化類相比有顯著提高,相對于 H.264,,其知覺質量感受也非常優(yōu)秀[13],。不過,在提供相似壓縮效率情況下,,WMV9/VC-1 與 H.264 主類相比復雜性要求較低,。WMV9 廣泛應用于個人電腦環(huán)境,而且已經成為互聯(lián)網消費設備中的重要技術,。WMV9/VC-1 在好萊塢和獨立制片業(yè)正日益受寵,,多部電影的發(fā)行開始采用WMV9/VC-1 進行編碼,以實現(xiàn) PC DVD 上的高清晰播放,。此外,,WMV9 已經作為新興的 HD-DVD 格式壓縮選項實現(xiàn)了標準化。
9. AVS
2002 年,,中國信息產業(yè)部成立的音視頻技術標準 (AVS) 工作組宣布準備針對移動多媒體,、廣播、DVD等應用編寫一份國家標準,。該視頻標準稱為 AVS [14],,由兩個相關部分組成 — 針對移動視頻應用的 AVS-M 和針對廣播與 DVD 的 AVS1.0。AVS 標準與 H.264 相似,。
AVS1.0 同時支持隔行和逐行掃描模式,。AVS 中 P 幀可以利用 2 幀的前向參考幀,,同時允許 B 幀采用前后各一個幀。在隔行模式下,,4 個場可以用作參考,。可以僅在幀級執(zhí)行隔行模式中的幀/場編碼,,這一點與 H.264 不同,,其中允許此選項的 MB 級自適應。AVS 具有與 H.264相似的環(huán)路濾波器,,可以在幀級關閉,。另外,B 幀還無需環(huán)路濾波器,。幀內預測是以 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 基本規(guī)范存在交叉,。它僅支持逐行視頻,、I 與 P 幀,不支持 B 幀,。主要 AVS-M 編碼工具包括基于 4′4 塊的幀內預測,、1/4象素運動補償、整數變換與量化,、上下文自適應 VLC 以及高度簡化的環(huán)路濾波器,。與 H.264 基本規(guī)范相似,AVS-M 中的運動矢量塊大小降至 4′4,,因此 MB 可擁有多達 16 個運動矢量,。采用多幀預測,但僅支持 2 個參考幀,。此外,,AVS-M 中還定義了 H.264 HRD/SEI 消息的子集。AVS-M的編碼頻率約為 0.3dB,在相同設置下稍遜于 H.264 基本規(guī)范,,而解碼器的復雜性卻降低了大約
20%,。
10. 各編解碼器的功能與工具對比
表1概述我們介紹的視頻標準采用的主要壓縮功能與工具。
功能 H.261 MPEG1 MPEG2 H.263 MPEG4 H.264 WMV9/ VC-1 AVS 圖像編碼類型 I,、P I,、P、B I,、P,、B I、P,、B I,、P、B I,、P,、B I、P,、B I,、P、B 熵編碼 VLC VLC VLC VLC,、SAC VLC UVLC,、CAVLC、CABAC 多表 VLC 自適應 VLC MV 分辨率 整數象素 半象素 半象素 半象素 ? 象素 ? 象素 ? 象素 ? 象素 變換 8′8 DCT 8′8 DCT 8′8 DCT 8′8 DCT 8′8 DCT 4′4 與 8′8 整數 8′8,、8′4,、 4′8、 4′4 整數 DCT 8x8 整數 矢量塊大小 16′16 16′16 16′16,、16′8 8′8或16′16 8′8,、16′16 16′16、16′8,、 8′16,、 8′8、8′4,、4′8,、4′4 16′16、16′8,、8′8, 4′4(色度) 16′16,、16′8、8′16,、8′8,、8′4,、4′8、4′4 空域幀內預測 無 無 無 無 無 有 無 有 支持的格式 逐行 逐行 逐行/隔行 逐行 逐行/隔行 逐行/隔行 逐行/隔行 逐行/隔行 預測模式 幀 幀 場/幀 幀 場/幀 場/幀 場/幀 場/幀 去塊濾波器 環(huán)內 無 后期 附件 J 環(huán)內 后期 環(huán)內 環(huán)內 環(huán)內
表1:標準編解碼器中的主要壓縮功能
11. 市場趨勢與應用
視頻壓縮正在市場中催生數量日益增長的數字視頻產品,。采用數字視頻壓縮技術的終端設備范圍廣泛,,從電池驅動的便攜設備到高性能基礎設備。表 2 概述部分應用,、主要需求,、采用的典型視頻編解碼器及其在這些應用中的發(fā)展趨勢。
應用 需求 采用的編解碼器 發(fā)展趨勢 安全/監(jiān)控 多路編碼 Motion JPEG,、H.263 MPEG4-SP,、H.264 可視電話、視頻會議 低延遲,、低比特率 H.261,、H.263 H.264-BP 因特網數據流 低速率、多種格式的解碼器,、權限管理 WMV,、Real Video、 MPEG-4 (QuickTime, DivX) DVD 高質量,、隨機訪問,、低成本 MPEG2-MP H.264、WMV9,、AVS 數字地面電視 高質量 MPEG2 MPEG2,、H.264、AVS 衛(wèi)星電視 高質量 MPEG2 H.264-HP 手持終端數字視頻 低功耗,、低比特率、容錯性 WMV9,、H,264 個人視頻記錄器 高質量,、低壓縮、隨機訪問 MPEG2 WMV9,、H.264 數碼攝像機 低功率,、高質量、低比特率 傳統(tǒng) DV 標準 MPEG2,、MPEG4 移動數據流 低復雜性解碼,、容錯性 MPEG4-SP RV、H,.264-BP,、WMV9,、AVS-M
表2:標準應用采用的典型編解碼器與發(fā)展趨勢
12. 實時實現(xiàn)
數字視頻的最佳處理器解決方案取決于具體的目標應用。TI 擁有可支持多種標準并滿足主要設計及系統(tǒng)約束需求的各種 DSP,。TI 的解決方案范圍廣泛,,其中包括低功耗 c5000 DSP 與移動OMAP 應用處理器,、高性能 c6000 DSP 與視頻優(yōu)化的高性能 DM64x 和 DM644x 數字媒體處理器。目前倍受關注的處理器之一是未面世的 DM6446,,我們將在本節(jié)中進行介紹,。
德州儀器 (TI) 的 DM 系列處理器專門針對高端視頻系統(tǒng)的需求而設計。該系列的最新處理器是功能強大的 DM6446[15],,其采用了 TI 的達芬奇 (DaVinci) 技術[16],。DM6446 的雙內核架構兼具 DSP 和 RISC 技術優(yōu)勢,集成了時鐘頻率達 594MHz 的 c64x+ DSP 內核與 ARM926EJ-S內核,。新一代 c64x+ DSP 是 TMS320C6000? DSP 平臺中性能最高的定點 DSP,,并建立在 TI 開發(fā)的第二代高性能高級 VLIW 架構的增強版之上。c64x+ 與前代 C6000 DSP 平臺代碼兼容,。DM644x 等可編程數字媒體處理器可以支持所有的現(xiàn)有業(yè)界標準以及采用單個可編程數字媒體處理器的專有視頻格式,。DM6446 還具有片上內存,包括一個 2 級高速緩存和眾多具有視頻專用功能的外設,。DM6446 還包含一種視頻/影像協(xié)處理器 (VICP),,用于減輕相關算法(如:JPEG、H.264,、MPEG4 與 VC-1)的 DSP 內核繁重的視頻與影像處理負擔,,從而使更多的 DSP MIPS 能夠用于視頻后處理或者其他并行運行等功能。
表 3說明 DM6446 在各種標準下保持 D1 (720′480) 分辨率大約所需要的頻率,。
視頻編解碼標準 編碼器 解碼器 H.263 / MPEG4-SP 250MHz 100MHz H.264 — 基本類 410MHz 300MHz H.264 — 主類 590MHz 450MHz WMV9/VC-1 360MHz 360MHz
表3:單片TI DM6446 平臺處理 D 1 30fps(720′480),、YUV 4:2:0 性能所需要頻率典型值。解碼器性能數據是針對最差情況下的比特流,。解碼器性能隨所采用功能組合的變化而變化,。上述例子中假定為高品質的編碼。DM6446 上的c64x+ 可達到594MHz 的時鐘頻率,。
請注意:所顯示的編碼頻率數據是根據現(xiàn)有/計劃實施而得出的典型測試數據,。另外,編碼器負載隨目標應用不同而存在顯著差異,。壓縮標準規(guī)定需要的語法與可用的工具,,不過許多算法結果取決于具體實施情況。主要變量包括:比特率控制算法,、單通道與多通道編碼,、I/B/P 幀比率、運動搜索范圍,、運動搜索算法,、以及選用的個別工具與模式。這種靈活性允許我們在計算負載和改進質量之間做出不同取舍,。顯然所有編碼器都可以采用或高或低的頻率實現(xiàn)不同的視頻質量水平,。
13. 結論
越來越多的視頻壓縮標準可以針對具體最終應用提供越來越高的壓縮效率和越來越豐富的工具,。另外,向網絡化連接發(fā)展的趨勢意味著許多產品越來越需要支持多種標準,。多種標準和專有算法的流行也使我們難以選擇單個標準,,尤其是在硬件決策經常超前于產品部署的情況下。不僅如此,,每個視頻編碼算法都提供豐富的工具與功能選擇,,以平衡壓縮效率的復雜性。工具和功能的選擇是與特定應用和用例息息相關的重復過程,。由于必須支持的編解碼器數量的增多以及針對具體解決方案和應用而對編解碼器進行優(yōu)化的選擇范圍更為廣泛,,因此在數字視頻系統(tǒng)中采用靈活的媒體處理器是大勢所趨。DM6446 等數字媒體處理器可充分滿足性能處理需求同時架構靈活,,從而能夠快速把新標準實施推向市場,,其中包括:H.264、AVS 與 WMV9,。我們可以在標準定義階段實施算法并且保持軟件算法與工具的更新,,從而緊隨標準大大小小的修改并且滿足應用不斷變化的質量需求。
14. 參考文獻
- J. R. Jain 與A. K. Jain,,《位移測量及其在幀間圖像編碼中的應用》,,IEEE Trans. Commun.,COM-29 卷,,第 12 期,,1799~1808 頁,1981 年 12 月,。
- ITU-T建議 H.261:1993,,《用于 px64Kbps 音頻/視頻業(yè)務的視頻編解碼技術》。
- ISO/IEC 11172-2:1993,,《1.5Mbps 數字存儲媒體的動態(tài)圖像及相關音頻的編碼 – 第2部分:視頻》,。
- ISO/IEC 13818-2:1995,《動態(tài)圖像及相關音頻信息的通用編碼:音頻》,。
- ITU-T 建議 H.263:1998,,《低速率通信的視頻編碼》,。
- ISO/IEC 14496-2:2001,,《信息技術 —— 音頻/視頻對象的通用編碼 —— 第2部分:視頻》。
- G. Sullivan與T. Wiegand,,“視頻壓縮 —— 從概念到 H.264/AVC 標準”,,《IEEE 學報》93 卷第 1 期,2005 年 1 月,。
- ISO/IEC 14496-10:2003,,《信息技術 —— 音頻/視頻對象的編碼 —— 第 10 部分:高級視頻編碼》,。
- 《AVC 正式檢驗測試報告》(ISO/IEC 14496-10 | ITU-T Rec. H.264),ISO/IEC JTC1/SC29/WG11,,MPEG-2003/N6231,,2003 年 12 月,Waikoloa ,。
- 《UB 視頻公司的 H.264 白皮書》,, www.ubvideo.com 。
- ITU-T 與 ISO/IEC 聯(lián)合視頻小組:《H.264/AVC 保真度范圍擴展修訂草案》,,Doc. JVT-L047,,2004 年 9 月。
- 《SMPTE 421M,、SMPTE 電視標準草案:VC-1 壓縮視頻比特流格式與解碼過程》,。
- 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 頁,。
- L. Fan、S. Ma,、F. Wu:“AVS 視頻標準概述”,,《ICME 2004 年學報》,423-426 頁,。
- 《TMS320DM6446 數字媒體片上系統(tǒng)》,,網址 www.ti.com 。
- Bill Witowsky,、Gene Frantz, 《用于數字視頻的達芬奇技術》,,網址 www.ti.com 。