視頻壓縮技術(shù)的系統(tǒng)考慮
編解碼技術(shù)在過去十年中不斷改進(jìn)。最新的編解碼技術(shù)(h.264/avc與vc-1)代表著第三代視頻壓縮技術(shù)。為具體應(yīng)用選擇正確的編解碼器并優(yōu)化其實時實施仍然是一項巨大的挑戰(zhàn),******的設(shè)計必須權(quán)衡壓縮效率及可用的計算能力。本文探討了壓縮能力與復(fù)雜性之間的權(quán)衡,并討論市場中可能會影響主流視頻編解碼器未來的實時實施與主要趨勢。 數(shù)字視頻產(chǎn)品需求近些年出現(xiàn)猛增。主流應(yīng)用包括視頻通信、安全監(jiān)控與工業(yè)自動化,而最熱門的要算娛樂應(yīng)用,如 dvd、hdtv、衛(wèi)星電視、高清 (hd) 機(jī)頂盒、因特網(wǎng)視頻流、數(shù)碼相機(jī)與 hd 攝像機(jī)、視頻光盤庫 (video jukebox)、高端顯示器(lcd、等離子顯示器、dlp)以及個人攝像機(jī)等。眾多精彩的新應(yīng)用目前也處于設(shè)計或前期部署中,例如針對家庭與手持設(shè)備及地面/衛(wèi)星標(biāo)準(zhǔn)(dvb-t、dvb-h、dmb)的高清 dvd(藍(lán)光/hd-dvd)和數(shù)字視頻廣播、高清視頻電話、數(shù)碼相機(jī)以及 ip 機(jī)頂盒。由于手持終端計算能力的提高以及電池技術(shù)與高速無線連接的發(fā)展,最終產(chǎn)品的移動性與集成性也在不斷提高。 視頻壓縮是所有令人振奮的、新型視頻產(chǎn)品的重要動力。壓縮-解壓(編解碼)算法可以實現(xiàn)數(shù)字視頻的存儲與傳輸。典型的編解碼器要么采用行業(yè)標(biāo)準(zhǔn),如 mpeg2、mpeg4、h.264/avc 與 avs,要么采用專有算法,如 on2、real video、nancy與windows media video (wmv) 等。wmv 是個例外——它最初是微軟公司的專有算法,而現(xiàn)在則以 vc-1 的新名稱在業(yè)界實現(xiàn)了標(biāo)準(zhǔn)化。編解碼技術(shù)在過去十年中不斷改進(jìn)。最新的編解碼技術(shù)(h.264/avc 與 vc-1)代表著第三代視頻壓縮技術(shù)。這兩種編解碼技術(shù)利用如可編程 dsp 與asic 等低成本 ic 的處理能力,都能夠達(dá)到極高的壓縮比。不過,為具體應(yīng)用選擇正確的編解碼器并優(yōu)化其實時處理仍然是一項巨大的挑戰(zhàn)。******的設(shè)計必須權(quán)衡壓縮效率及可用的計算能力。此外,如何在計算能力有限的情況下獲得******壓縮效率也是一門大學(xué)問。 在本文中,我們首先概述視頻編碼的主要概念,同時介紹傳統(tǒng)壓縮標(biāo)準(zhǔn)。然后我們重點(diǎn)介紹其中包括 h.264/avc、wmv9/vc-1與avs 等在內(nèi)的最新編解碼技術(shù)的功能,此外,還將深入探討壓縮能力與復(fù)雜性之間的權(quán)衡。最后,討論市場中可能會影響主流視頻編解碼器未來的實時處理與主要趨勢。 2. 視頻壓縮挑戰(zhàn) 數(shù)字視頻的主要挑戰(zhàn)在于原始或未壓縮的視頻需要存儲或傳輸大量數(shù)據(jù)。例如,標(biāo)準(zhǔn)清晰度的 ntsc 視頻的數(shù)字化一般是每秒 30 幀速率,采用 4:2:2 ycrcb 及 720(480,其要求超過 165mbps 的數(shù)據(jù)速率。保存 90 分鐘的視頻需要 110gb 空間,或者說超過標(biāo)準(zhǔn) dvd-r 存儲容量的 25 倍。即使是視頻流應(yīng)用中常用的低分辨率視頻(如:cif:352x288 4:2:0、30 幀/秒)也需要超過 36.5mbps 的數(shù)據(jù)速率,這是 adsl 或 3g 無線等寬帶網(wǎng)絡(luò)速度的許多倍。目前的寬帶網(wǎng)可提供 1~10mbps 的持續(xù)傳輸能力。顯然數(shù)字視頻的存儲或傳輸需要采用壓縮技術(shù)。 視頻壓縮的目的是對數(shù)字視頻進(jìn)行編碼——在保持視頻質(zhì)量的同時占用盡可能少的空間。編解碼技術(shù)理論依據(jù)為信息理論的數(shù)學(xué)原理。不過,開發(fā)實用的編解碼技術(shù)需要藝術(shù)性的精心考慮。 3. 壓縮權(quán)衡 在選擇數(shù)字視頻系統(tǒng)的編解碼技術(shù)時需要考慮諸多因素。主要因素包括應(yīng)用的視頻質(zhì)量要求、傳輸通道或存儲介質(zhì)所處的環(huán)境(速度、時延、錯誤特征)以及源內(nèi)容的格式。同樣重要的還有預(yù)期分辨率、目標(biāo)比特率、色彩深度、每秒幀數(shù)以及內(nèi)容和顯示是逐行掃描還是隔行掃描。壓縮通常需要在應(yīng)用的視頻質(zhì)量要求與其他需求之間做出取舍。首先,用途是存儲還是單播、多播、雙向通信或廣播?對于存儲應(yīng)用,到底有多少可用的存儲容量以及存儲時間需要多久?對于存儲之外的應(yīng)用,最高比特率是多少?對于雙向視頻通信,時延容差或容許的端到端系統(tǒng)延遲是多少?如果不是雙向通信,內(nèi)容需要在脫機(jī)狀態(tài)提前完成編碼還是需要實時編碼?網(wǎng)絡(luò)或存儲介質(zhì)的容錯能力如何?根據(jù)基本目標(biāo)應(yīng)用,不同壓縮標(biāo)準(zhǔn)以不同方式處理這些問題的權(quán)衡。 另一方面是需要權(quán)衡編解碼實時處理的成本。如 h.264/avc 或 wmv9/vc-1等能夠?qū)崿F(xiàn)較高壓縮比的新算法需要更高的處理能力,這會影響編解碼器件的成本、系統(tǒng)功耗以及系統(tǒng)內(nèi)存。 4. 標(biāo)準(zhǔn)化機(jī)構(gòu) 在視頻編解碼技術(shù)定義方面有兩大標(biāo)準(zhǔn)機(jī)構(gòu)。國際電信聯(lián)盟 (itu) 致力于電信應(yīng)用,已經(jīng)開發(fā)了用于低比特率視頻電話的 h.26x 標(biāo)準(zhǔn),其中包括 h.261、h.262、h.263 與 h.264;國際標(biāo)準(zhǔn)化組織 (iso) 主要針對消費(fèi)類應(yīng)用,已經(jīng)針對運(yùn)動圖像壓縮定義了 mpeg 標(biāo)準(zhǔn)。mpeg 標(biāo)準(zhǔn)包括 mpeg1、mpeg2 與 mpeg4。圖 1 說明了視頻編解碼標(biāo)準(zhǔn)的發(fā)展歷程。 mpeg 與 iso 根據(jù)基本目標(biāo)應(yīng)用往往做出稍有不同的取舍。有時它們也會開展合作,如:聯(lián)合視頻小組 (jvt),該小組定義了 h.264 編解碼技術(shù),這種技術(shù)在 mpeg 系列中又被稱為 mpeg4-part 10 或 mpeg4 高級視頻編解碼 (avc)。我們在本文中將這種聯(lián)合標(biāo)準(zhǔn)稱為 h.264/avc。同樣,h.262 對應(yīng) mpeg2,而 h.263 基本規(guī)范類 (baseline profile) 技術(shù)在原理方面與 mpeg4 簡單類 (simple profile) 編解碼技術(shù)存在較多重復(fù)。 標(biāo)準(zhǔn)對編解碼技術(shù)的普及至關(guān)重要。出于規(guī)模經(jīng)濟(jì)原因,用戶根據(jù)可承受的標(biāo)準(zhǔn)尋找相應(yīng)產(chǎn)品。由于能夠保障廠商之間的互操作性,業(yè)界樂意在標(biāo)準(zhǔn)方面進(jìn)行投資。而由于自己的內(nèi)容可以獲得較長的生命周期及廣泛的需求,內(nèi)容提供商也對標(biāo)準(zhǔn)青睞有加。盡管幾乎所有視頻標(biāo)準(zhǔn)都是針對少數(shù)特定應(yīng)用的,但是在能夠適用的情況下,它們在其他應(yīng)用中也能發(fā)揮優(yōu)勢。
為了實現(xiàn)更好的壓縮及獲得新的市場機(jī)遇,itu 與 mpeg 一直在不斷發(fā)展壓縮技術(shù)和開發(fā)新標(biāo)準(zhǔn)。中國最近開發(fā)了一種稱為 avs 的國家視頻編碼標(biāo)準(zhǔn),我們在后面也會做一介紹。目前正在開發(fā)的標(biāo)準(zhǔn)包括 itu/mpeg 聯(lián)合可擴(kuò)展視頻編碼 (joint scalable video coding)(對 h264/ avc 的修訂)和mpeg 多視角視頻編碼 (multi-view video coding)。另外,為了滿足新的應(yīng)用需求,現(xiàn)有標(biāo)準(zhǔn)也在不斷發(fā)展。例如,h.264 最近定義了一種稱為高精度拓展 (fidelity range extensions) 的新模式,以滿足新的市場需求,如專業(yè)數(shù)字編輯、hd-dvd 與無損編碼等。 除了 itu 與 iso 開發(fā)的行業(yè)標(biāo)準(zhǔn)以外,還出現(xiàn)了幾種專用于因特網(wǎng)流媒體應(yīng)用、廣受歡迎的專有解決方案,其中包括 real networks real video (rv10)、microsoft windows media video 9 (wmv9) 系列、on2 vp6 以及 nancy。由于這些格式在內(nèi)容中得到了廣泛應(yīng)用,因此專有編解碼技術(shù)可以成為業(yè)界標(biāo)準(zhǔn)。2003 年 9 月,微軟公司向電影與電視工程師學(xué)會 (smpte) 提議在該機(jī)構(gòu)的支持下實現(xiàn) wmv9 位流與語法的標(biāo)準(zhǔn)化。該提議得到了采納,現(xiàn)在 wmv9 已經(jīng)被 smpte 作為 vc-1 實現(xiàn)標(biāo)準(zhǔn)化。 5. 視頻編碼原理 我們感興趣的所有視頻標(biāo)準(zhǔn)都采用基于模塊的處理方式。每個宏模塊一般包含 4 個 8(8 的光度塊和 2 個 8(8 的色度塊(4:2:0 色度格式)。視頻編碼基于運(yùn)動補(bǔ)償預(yù)測(mc) 原理錯誤!未找到引用源。,變換與量化及熵編碼。圖 2 說明的是一種典型的、基于運(yùn)動補(bǔ)償?shù)囊曨l編解碼技術(shù)。在運(yùn)動補(bǔ)償中,通過預(yù)測與最新編碼的("參考")視頻幀處于同一區(qū)域的視頻幀中各宏模塊的像素來實現(xiàn)壓縮。例如,背景區(qū)域通常在各幀之間保持不變,因此不需要在每個幀中重新傳輸。運(yùn)動估計 (me) 是確定當(dāng)前幀——即與它最相似的參考幀的 16(16 區(qū)域中每個 mb 的過程。me 通常是視頻壓縮中最消耗性能的功能。有關(guān)當(dāng)前幀中各模塊最相似區(qū)域相對位置的信息("運(yùn)動矢量")被發(fā)送至解碼器。 mc 之后的殘差部分分為 8(8 的模塊,各模塊綜合利用變換編碼、量化編碼與可變長度編碼技術(shù)進(jìn)行編碼。變換編碼(如:離散余弦變換或 dct)利用殘差信號中的空間冗余。量化編碼可以消除感知冗余 (perceptual redundancy) 并且降低編碼殘差信號所需要的數(shù)據(jù)量??勺冮L度編碼利用殘差系數(shù)的統(tǒng)計性質(zhì)。通過 mc 進(jìn)行的冗余消除過程在解碼器中以相反過程進(jìn)行,來自參考幀的預(yù)測數(shù)據(jù)與編碼后的殘差數(shù)據(jù)結(jié)合在一起產(chǎn)生對原始視頻幀的再現(xiàn) 。
在視頻編解碼器中,單個幀可以采用三個模式中的一個進(jìn)行編碼 —— 即 i、p 或 b 幀模式(見圖 3)。幾個稱為 intra (i) 的幀單獨(dú)編碼,無需參考任何其他幀(無運(yùn)動補(bǔ)償)。某些幀可以利用 mc 編碼,以前一個幀為參考(前向預(yù)測)。這些幀稱為預(yù)測幀 (p)。 b 幀或雙向預(yù)測幀通過之前的幀以及當(dāng)前幀的后續(xù)幀進(jìn)行預(yù)測。b 幀的優(yōu)勢是能夠匹配堵塞在采用前向預(yù)測的上一幀中的背景區(qū)域。雙向預(yù)測通過平衡前向及后向預(yù)測可以降低噪聲。在編碼器中采用這種功能會要求更多處理量,因為必須同時針對前向及后向預(yù)測執(zhí)行 me,而這會明顯使運(yùn)動估計計算需求加倍。為了保存兩個參考幀,編碼器與解碼器都需要更多內(nèi)存。b 幀工具需要更復(fù)雜的數(shù)據(jù)流,因為相對采集及顯示順序而言,幀不按順序解碼。這個特點(diǎn)會增加時延,因此不適合實時性較高的應(yīng)用。b 幀不用于預(yù)測,因此可以針對某些應(yīng)用進(jìn)行取舍。例如,在低幀速應(yīng)用中可以跳過它們而不會影響隨后 i 與 p 幀的解碼。
6. 傳統(tǒng)視頻編碼標(biāo)準(zhǔn) h.261 itu 編制的 h.261[2] 標(biāo)準(zhǔn)是第一個主流視頻壓縮標(biāo)準(zhǔn)。它主要針對雙工視頻會議應(yīng)用,是為支持 40kpbs~2mbps 的 isdn 網(wǎng)絡(luò)而設(shè)計的。h.261 支持 352(288 (cif) 及 176(144 (qcif) 分辨率,色度分辨率二次采樣為 4:2:0。由于可視電話需要同步實時編解碼,因此復(fù)雜性設(shè)計得較低。由于主要用于對延遲敏感的雙向視頻,因此 h.261 僅允許采用 i 與 p 幀,而不允許 b 幀。 h.261 采用基于塊的 dct 進(jìn)行殘差信號的變換編碼。dct 把像素的每個 8(8 塊映射到頻域,產(chǎn)生 64 個頻率成分(第一個系數(shù)稱為 dc,其他的稱為 ac)。為了量化 dct 系數(shù),h.261 在所有 ac 系數(shù)中采用固定的線性量化。量化后的系數(shù)進(jìn)行行程編碼,其可以按非零系數(shù)描述量化的頻率,后面跟隨一串零系數(shù),在最后一個非零值之后以塊代碼結(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)象。在模塊邊緣采用的 |