數(shù)字電視H.2 6 4編碼技術(shù)分析及應(yīng)用展望
0 引言
典型的數(shù)字電視系統(tǒng)是在發(fā)送端的數(shù)字電視節(jié)目源(主要由視頻、音頻等數(shù)據(jù)組成)先經(jīng)過信源編碼處理.得到壓縮編碼后的視頻、音頻碼流,隨后進(jìn)行信源編碼,需要輔助數(shù)據(jù)與控制數(shù)據(jù)的支持。信道編碼實(shí)現(xiàn)檢錯(cuò)、糾錯(cuò)功能,以提高數(shù)字電視傳輸信號的抗干擾能力,以便之適應(yīng)信道傳輸特性,再進(jìn)行載波調(diào)制以實(shí)現(xiàn)頻譜搬移最后送入傳輸信道。目前數(shù)字視頻領(lǐng)域,有兩大制定視頻編碼標(biāo)準(zhǔn)的組織,它們是ITU-T與ISO/IEC。ITU-T制定的標(biāo)準(zhǔn)包括H.261、H.263、H.264,主要應(yīng)用于實(shí)時(shí)視頻通信領(lǐng)域,如會(huì)議電視。MPEG系列標(biāo)準(zhǔn)是由ISO/IEC制定的,主要應(yīng)用于視頻存儲(chǔ)(VCD、DVD)、廣播電視、因特網(wǎng)或無線網(wǎng)上的流媒體等。H.264具有較強(qiáng)的抗誤碼特性,可適應(yīng)丟包率高、干擾嚴(yán)重的無線信道中的視頻傳輸。
1 編碼技術(shù)分析
1.1 幀內(nèi)預(yù)測編碼
幀內(nèi)編碼用來縮減圖像的空間冗余。為了提高H.264幀內(nèi)編碼的效率,在給定幀中充分利用相鄰宏塊的空間相關(guān)性,相鄰的宏塊通常含有相似的屬性。因此,在對一給定宏塊編碼時(shí),首先可以根據(jù)周圍的宏塊預(yù)測(典型的是根據(jù)左上角的宏塊,因?yàn)榇撕陦K已經(jīng)被編碼處理),然后對預(yù)測值與實(shí)際值的差值進(jìn)行編碼,這樣,相對于直接對該幀編碼而言,可以大大減小碼率。如圖l。
1.2 幀間預(yù)測編碼
幀間預(yù)測編碼利用連續(xù)幀中的時(shí)間冗余來進(jìn)行運(yùn)動(dòng)估計(jì)和補(bǔ)償。H.264的運(yùn)動(dòng)補(bǔ)償支持以往的視頻編碼標(biāo)準(zhǔn)中的大部分關(guān)鍵特性。
(1)不同大小和形狀的宏塊分割
對每一個(gè)16×16像素宏塊的運(yùn)動(dòng)補(bǔ)償可以采用不同的大小和形狀。
(2)高精度的亞像素運(yùn)動(dòng)補(bǔ)償
在H.263中采用的是半像素精度的運(yùn)動(dòng)估計(jì),而在H.264中可以采用1/4或者1/8像素精度的運(yùn)動(dòng)估值。在要求相同精度的情況下,H.264使用1/4或者1/8像素精度的運(yùn)動(dòng)估計(jì)后的殘差要比H.263采用半像素精度運(yùn)動(dòng)估計(jì)后的殘差來得小。這樣在相同精度下,H.264在幀間編碼中所需的碼率更小。
(3)多幀預(yù)測
H.264提供可選的多幀預(yù)測功能,在幀間編碼時(shí),可選5個(gè)不同的參考幀,提供了更好的糾錯(cuò)性能,這樣便可以改善視頻圖像質(zhì)量。這一特性主要應(yīng)用于以下場合:周期性的運(yùn)動(dòng)、平移運(yùn)動(dòng)、在兩個(gè)不同的場景之間來回變換攝像機(jī)的鏡頭。
(4)去塊濾波器
H.264定義了自適應(yīng)去除塊效應(yīng)的濾波器,這可以處理預(yù)測環(huán)路中的水平和垂直塊邊緣,大大減少了方塊效應(yīng)。
1.3 熵編碼
視頻編碼處理的最后一步就是熵編碼,在H.264中采用熵編碼方法有三種。第一種是Exp-Golomb碼,它適用于除變換系數(shù)之外的所有其他系數(shù)。第二種是基于上下文的自適應(yīng)變長編碼(CAVLC),它適用于變換系數(shù)。第三種是基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)。CAV-LC與CABAC根據(jù)相鄰塊的情況進(jìn)行當(dāng)前塊的編碼,以達(dá)到更好的編碼效率。CABAC比CAVLC壓縮數(shù)率高,但要復(fù)雜一些。
(1)Exp-Golomb碼:最簡單的熵編碼方法是對所有的句法元素,除了量化系數(shù)外,使用單一無限可擴(kuò)展的碼字表,這樣就不必為每個(gè)句法元素設(shè)計(jì)一個(gè)專用的VLC表。它適用于除變換系數(shù)之外的所有符號,如頭部等句法元素。它是有規(guī)則結(jié)構(gòu)的可變長編碼(如表1)。
(2)CAVLC編碼:基于上下文的自適應(yīng)變長編碼是用來對差值的經(jīng)zig-zag掃描的4×4(和2×2)塊變換系數(shù)進(jìn)行編碼的方法。CAVLC利用了量化的4×4塊的若干特性:①預(yù)測、變換和旦化后的塊一般是稀疏的(包含了很多個(gè)0)。CAVLC利用游程編碼來緊湊地代表一長串0。②zig-zag掃描后的最高非零系數(shù)常常是+1/-1的序列。③相鄰塊的非零系數(shù)數(shù)目是相關(guān)的。系數(shù)的數(shù)目用對照表來編碼,對照表的選擇取決于相鄰塊中非零系數(shù)數(shù)目。④非零系數(shù)的幅度在重排數(shù)組的開始處比較高(接近DC系數(shù)),在高頻處比較低。CAVLC利用這一點(diǎn)根據(jù)最近編碼的幅度,適當(dāng)?shù)剡x擇幅度參數(shù)的VLC對照表。
(3)CABAC方法:算術(shù)編碼使編碼和解碼兩邊都能使用所有句法元素(變換系數(shù)、運(yùn)動(dòng)矢量)的概率模型。為了提高算術(shù)編碼的效率,通過內(nèi)容建模的過程,使基本概率模型能適應(yīng)隨視頻幀而改變的統(tǒng)計(jì)特性。內(nèi)容建模提供了編碼符號的條件概率估計(jì),利用合適的內(nèi)容模型,存在于符號間的相關(guān)性可以通過選擇目前要編碼符號鄰近的已編碼符號的相應(yīng)概率模型來去除,不同的句法元素通常保持不同的模型。可知基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼算法的基本步驟是:①對每個(gè)語法元素,根據(jù)其上下文選擇概率模型。②基于局部統(tǒng)計(jì)自適應(yīng)調(diào)整概率統(tǒng)計(jì)③使用算術(shù)編碼。實(shí)現(xiàn)方框圖如圖2所示。
上下文概率選擇:根據(jù)過去的觀察選擇“上下文概型”。該模型為一個(gè)或幾個(gè)二進(jìn)制符號位的概率模型,它可以從有效模型中選擇,它們是根據(jù)最近概碼的數(shù)據(jù)符號的統(tǒng)計(jì)得來的。上下文模型儲(chǔ)存每個(gè)二進(jìn)制符號是1或0的概率。二進(jìn)制化:將非二進(jìn)制符號(變換系數(shù)或運(yùn)動(dòng)矢量)轉(zhuǎn)換成二進(jìn)制碼。ABAC只處理1和0。
算術(shù)編碼引擎:一個(gè)算術(shù)編碼器所選擇的概率模型對每個(gè)位進(jìn)行編碼。對每個(gè)位只有兩個(gè)子區(qū)間(相當(dāng)于0和1)概率更新:所選擇的上下文模型根據(jù)實(shí)際的編碼值加以更新(如位值為“1”,則頻度“1”的概目增值)。
2 H.264在視頻會(huì)議中的應(yīng)用
目前,大多數(shù)的視頻會(huì)議系統(tǒng)均采用H.261或H.263視頻編碼標(biāo)準(zhǔn),而H.264的出現(xiàn),使得在同等速率下,H.264能夠比H.263減小50%的碼率。也就是說,用戶即使是只利用384kbit/s的帶寬,就可以享受H.263下高達(dá)768kbit/s的高質(zhì)量視頻服務(wù)。H.264不但有助于節(jié)省龐大開支,還可以提高資源的使用效率,同時(shí)令達(dá)到商業(yè)質(zhì)量的視頻會(huì)議服務(wù)擁有更多的潛在客戶。
面向IP和無線環(huán)境H.264草案中包含了用于差錯(cuò)消除的工具,便于壓縮視頻在誤碼、丟包多發(fā)環(huán)境中傳輸,如移動(dòng)信道或IP信道中傳輸?shù)慕研浴?br /> 為了抵御傳輸差錯(cuò),H.264視頻流中的時(shí)間同步可以通過采用幀內(nèi)圖像刷新來完成,空間同步由條結(jié)構(gòu)編碼(slicestructured coding)來支持。同時(shí)為了便于誤碼以后的再同步,在一幅圖像的視頻數(shù)據(jù)中還提供了一定的重同步點(diǎn)。另外,幀內(nèi)宏塊刷新和多參考宏塊允許編碼器在決定宏塊模式的時(shí)候不僅可以考慮編碼效率,還可以考慮傳輸信道的特性。除了利用量化步長的改變來適應(yīng)信道碼率外,在H.264中,還常利用數(shù)據(jù)分割的方法來應(yīng)對信道碼率的變化。從總體上說,數(shù)據(jù)分割的概念就是在編碼器中生成具有不同優(yōu)先級的視頻數(shù)據(jù)以支持網(wǎng)絡(luò)中的服務(wù)質(zhì)量QoS。例如采用基于語法的數(shù)據(jù)分割(syntax-based data partitioning)方法,將每幀數(shù)據(jù)按其重要性分為幾部分,這樣允許在緩沖區(qū)溢出時(shí)丟棄不太重要的信息。還可以采用類似的時(shí)間數(shù)據(jù)分割(temporal data partitioning)方法,通過在P幀和B幀中使用多個(gè)參考幀來完成。
在無線通信的應(yīng)用中,我們可以通過改變每一幀的量化精度或空間/時(shí)間分辨率來支持無線信道的比特率變化??墒?,在多播的情況下,要求編碼器對變化的各種比特率進(jìn)行響應(yīng)是不可能的。因此,不同于MPEG-4中采用的精細(xì)分級編碼FGS(Fine Granular Scalability)的方法(效率比較低),H.264采用流切換的SP幀來代替分級編碼。
3 結(jié)束語
因此視頻會(huì)議產(chǎn)品支付H.264協(xié)議,研究人員致力于普及H.264這個(gè)全新的業(yè)界標(biāo)準(zhǔn)。我們必將能體驗(yàn)H.264視頻服務(wù)給我們帶來高品質(zhì)的享受。