高壓縮比標(biāo)準(zhǔn)的各種特性為技術(shù)人員提供了廣闊的空間,,在復(fù)雜性、延遲以及其他約束實時性能的因素之間獲得最佳平衡,。
用數(shù)字視頻編碼進行視頻壓縮能夠在盡可能降低視頻容量的同時保持可接受的視頻質(zhì)量,。但是,為便于傳輸和存儲而降低大小的視頻壓縮可能會犧牲一些圖像質(zhì)量,。此外,,視頻壓縮還要求處理器具備較高性能,并且在設(shè)計中要支持豐富的功能,,因為不同類型的視頻應(yīng)用在分辨率,、帶寬以及靈活性方面都有著不同的要求。具有更高靈活性的數(shù)字信號處理器(DSP)不僅能夠充分滿足上述需求,,而且還可充分發(fā)揮高級視頻壓縮標(biāo)準(zhǔn)提供的豐富選項來幫助系統(tǒng)開發(fā)人員實現(xiàn)產(chǎn)品優(yōu)化。
視頻編解碼(編解碼器)算法的固有結(jié)構(gòu)和復(fù)雜性促使我們必須采用優(yōu)化方案,。編碼器非常重要,,因為它們不但必須滿足應(yīng)用要求,而且也是視頻應(yīng)用進行大量處理任務(wù)的主要部分,。雖然編碼器是基于信息理論之上的,,但在實施過程中仍需要在不同因素間權(quán)衡取舍,因此會非常復(fù)雜,。編碼器應(yīng)當(dāng)具有高度的可配置性,,并能針對各種視頻應(yīng)用提供簡單易用的系統(tǒng)接口且實現(xiàn)性能最佳化,從而使開發(fā)人員受益匪淺,。
視頻壓縮的特性
原始數(shù)字視頻的傳輸或存儲需要占用大量空間,。像H.264/MPEG-4 AVC等高級視頻編解碼器能實現(xiàn)高達(dá)60:1到100:1的壓縮比并確保持續(xù)不變的吞吐量,這使我們能夠利用較窄的傳輸通道實現(xiàn)傳輸,,并能減少視頻存儲所占的空間,。
與靜態(tài)影像領(lǐng)域的JPEG標(biāo)準(zhǔn)一樣,ITU與MPEG視頻編碼算法也需要結(jié)合采用離散轉(zhuǎn)換編碼(DCT或類似技術(shù)),、量化和可變長度編碼等技術(shù)來壓縮幀中的宏塊,。一旦算法建立了基線編碼內(nèi)(I幀),只需通過視覺內(nèi)容的差值或它們之間的殘留值進行編碼,,就可建立眾多的后續(xù)預(yù)測幀(P幀),。我們可用所謂運動補償技術(shù)來實現(xiàn)這種幀間差值。該算法首先估算前一參考幀宏塊移入到當(dāng)前幀的位置,,然后再消除冗余并壓縮剩余部分,。
圖1給出了一般性運動補償視頻編碼器的結(jié)構(gòu)圖,。運動矢量(MV)數(shù)據(jù)描述了各塊的移動位置,該數(shù)據(jù)在估算階段創(chuàng)建,,這通常是算法中計算強度最大的階段,。
圖1:一般性運動補償視頻編碼器的結(jié)構(gòu)圖。
圖2顯示了P幀(右)及其參考幀(左),。在P幀下方,,剩余部分(黑色部分)顯示了計算出運動矢量(藍(lán)色部分)后剩余的編碼量。
圖2:顯示計算運動矢量后剩余編碼量的P 幀及參考幀,。
視頻壓縮標(biāo)準(zhǔn)僅指定位流語法與解碼進程,,從而使編碼器擁有很大的創(chuàng)新空間。速率控制也是一個可以創(chuàng)新的領(lǐng)域,,使編碼器能分配量化參數(shù),,從而以適當(dāng)?shù)姆绞酱_定視頻信號中的噪聲。此外,,高級H.264/MPEG-4 AVC標(biāo)準(zhǔn)還可提供宏塊大小,、運動補償四分之一像素分辨率(quarter-pel resolution)、多參考幀,、雙向幀預(yù)測(B幀)以及自適應(yīng)環(huán)內(nèi)去塊濾波(in-loop deblocking)等多種選擇,,從而既提高了靈活性同時還增強了功能。
多樣化的應(yīng)用需求
視頻應(yīng)用要求差異很大,。高級壓縮標(biāo)準(zhǔn)的各種特性為技術(shù)人員提供了廣闊的空間,,在復(fù)雜性、延遲以及其他約束實時性能的因素之間獲得最佳平衡,。例如,,我們可以設(shè)想,視頻電話,、視頻會議以及數(shù)碼攝像機(DVR)對視頻就有著不同的要求,。
視頻電話與視頻會議
就視頻電話與視頻會議應(yīng)用而言,傳輸帶寬通常是最重要的問題,。根據(jù)鏈接的不同,,帶寬傳輸?shù)姆秶山橛诿棵霐?shù)十到數(shù)千KB之間。在某些情況下,,我們可以確保傳輸速度,,但對于互聯(lián)網(wǎng)及眾多企業(yè)內(nèi)部網(wǎng)而言,傳輸速度會有很大差異,。因此,,視頻會議編碼器通常需要滿足不同類型的鏈路,并應(yīng)實時適應(yīng)不斷變化的可用帶寬,。發(fā)送系統(tǒng)收到接收端條件后,,應(yīng)不斷調(diào)節(jié)編碼輸出,,以確保盡可能以最少的視頻中斷提供最佳的視頻質(zhì)量。如果條件較差,,則編碼器可以采取降低平均比特率,、跳幀或更改圖像組(GoP,即I幀與P幀相混合)等方法來應(yīng)對,。I幀的壓縮程度低于P幀,,因此帶有較少I幀的GoP所需的整體帶寬較低。由于視頻會議的可視內(nèi)容通常不會變化,,因此可減少I幀的使用數(shù)量,,使其低于娛樂應(yīng)用的水平。
H.264采用自適應(yīng)環(huán)路內(nèi)去塊濾波器處理塊的邊緣,,以保持視頻在當(dāng)前幀與后續(xù)幀之間的平滑,,從而提高視頻編碼質(zhì)量,這點在低比特率時尤其有效,。此外,,關(guān)閉過濾器也能提高在既定比特率下可視化數(shù)據(jù)的數(shù)量,并可將運動估算分辨率從四分之一像素精度提高到二分之一乃至更高,。在某些情況下,,我們可能需要降低去塊濾波質(zhì)量或降低分辨率,從而減小編碼工作的復(fù)雜性,。
由于互聯(lián)網(wǎng)的分組提供不能確保質(zhì)量,,因此視頻會議通常能從可提高容錯率的編碼機制中受益,。如圖3所示,,P幀的連續(xù)圖像條(progressive strip)可用做幀內(nèi)編碼(I圖像條),這樣在初始幀之后就不再需要完整的I幀了,,并能減少整個I幀被丟棄和圖像破損的問題,。
圖3:P 幀的連續(xù)條狀圖像可用做幀內(nèi)編碼。
數(shù)字錄像
適用于家庭娛樂的數(shù)碼攝像機(DVR)可能是使用范圍最廣的實時視頻編碼器應(yīng)用了,。對于這種系統(tǒng)來說,,如何實現(xiàn)存儲容量和畫質(zhì)之間的最佳平衡是一大問題。與不能容忍延遲的視頻會議不同,,如果系統(tǒng)緩沖可用的存儲器足夠的話,,則視頻錄制的壓縮可以承受一定的實時延遲。要滿足實際要求的設(shè)計意味著讓輸出緩沖器可以處理數(shù)個幀,,這樣才足以保持磁盤能獲得穩(wěn)定持續(xù)的數(shù)據(jù)流,。不過,在某些情況下,,由于可視信息變化非???,導(dǎo)致算法產(chǎn)生大量P幀數(shù)據(jù),這時緩沖器就可能出現(xiàn)阻塞,。只要解決了阻塞問題,,圖像質(zhì)量就能重新提升。
有效進行權(quán)衡取舍的機制之一就是即時改變量化參數(shù)Qp,。量化是壓縮數(shù)據(jù)算法最后階段的步驟之一,。提高量化可減少算法的比特率輸出,但圖像失真會與Qp的平方成正比增長,。提高Qp會降低算法的比特率輸出,,但同時也會影響畫質(zhì)。不過,,由于這種變化是實時發(fā)生的,,因此有助于減少跳幀或畫面破損的現(xiàn)象。如果可視內(nèi)容更改非???,例如緩沖器擁塞時,那么這時雖然畫質(zhì)降低,,但卻不會像內(nèi)容緩慢變化時那樣引人注意,。可視內(nèi)容返回較低比特率且緩沖器清空后,,就能將Qp重設(shè)為正常值,。
編碼器的靈活性
由于開發(fā)人員可在各種視頻應(yīng)用中使用DSP,因此DSP編碼器在設(shè)計時就應(yīng)當(dāng)考慮到要發(fā)揮自身在壓縮標(biāo)準(zhǔn)方面的靈活性優(yōu)勢,。例如,,基于德州儀器(TI)移動應(yīng)用領(lǐng)域OMAP媒體處理器、TMS320C64x+DSP或達(dá)芬奇(DaVinci?)處理器的編碼器就具備高度靈活性,。為了最大限度地提高壓縮性能,,每個編碼器都可用于充分利用其平臺的DSP架構(gòu),其中包括某些處理器中內(nèi)置的視頻與圖像協(xié)處理器(VICP),。
所有編碼器均使用一套采用默認(rèn)參數(shù)的基本API,,因此無論使用何種類型的系統(tǒng),系統(tǒng)接口都不會改變,。擴展的API參數(shù)可使編碼器滿足特定應(yīng)用的要求,。默認(rèn)情況下,可將參數(shù)預(yù)設(shè)為高質(zhì)量,,此外還提供高速預(yù)設(shè)設(shè)置,。程序使用擴展參數(shù)可以覆蓋所有預(yù)設(shè)參數(shù)。
擴展參數(shù)使應(yīng)用能滿足H.264或MPEG-4的要求,。編碼器可支持若干選項,,如YUV 4:2:2與YUV 4:2:0輸入格式,、最小四分之一像素分辨率的運動補償、各種I幀間隔(從每幀都為I幀到首個I幀后無后續(xù)I幀),、Qp比特率控制,、存取運動矢量、去塊濾波器控制,、同時編碼兩個或更多通道以及I圖像條(strip)等等,。編碼器可動態(tài)不受限制地確定默認(rèn)運動矢量的搜索范圍,這種技術(shù)相對于固定范圍搜索而言是一個進步,。
此外,,通常都會存在最佳操作點(sweet spot),也就是既定輸入分辨率和每秒幀數(shù)(fps)情況下最佳的輸出比特率,。開發(fā)人員應(yīng)當(dāng)認(rèn)識到編碼器的這個最佳點,,從而在設(shè)計方案中實現(xiàn)系統(tǒng)傳輸與畫質(zhì)的最佳設(shè)計平衡。