版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 視頻編碼AVS-P幀算法設(shè)計</p><p><b> 摘 要</b></p><p> 當(dāng)前我國在音視頻產(chǎn)業(yè)領(lǐng)域已經(jīng)具備較強的產(chǎn)業(yè)基礎(chǔ),但由于沒有掌握核心技術(shù)標(biāo)準(zhǔn),相關(guān)企業(yè)長期受制于國外持有標(biāo)準(zhǔn)化專利與技術(shù)的企業(yè)和組織。為了在音視頻產(chǎn)業(yè)領(lǐng)域擁有更多的自主知識產(chǎn)權(quán),2002年6月21日“數(shù)字音視頻編解碼技術(shù)標(biāo)準(zhǔn)化工作組(AVS)”在北京正式成
2、立。AVS工作小組制定了《信息技術(shù)先進音視頻編碼》系列標(biāo)準(zhǔn),簡稱AVS標(biāo)準(zhǔn)。AVS標(biāo)準(zhǔn)是第一個我國自主提出的數(shù)字音視頻編解碼標(biāo)準(zhǔn)。</p><p> AVS標(biāo)準(zhǔn)采用了基于塊運動補償混合編碼方案,為了實現(xiàn)更高的編碼效率,引入了許多新的編碼技術(shù),如新型幀內(nèi)預(yù)測、多宏塊劃分、多參考幀、高精度運動估計、整數(shù)變換、環(huán)路濾波器等。</p><p> 兩幀相鄰運動圖像間存在著一定的關(guān)聯(lián),AVS-P幀
3、間編碼就是利用相鄰兩幀間運動圖像的運動矢量變化編碼圖像的一種算法,運動估計與運動補償是AVS幀間預(yù)測中的主要內(nèi)容,本文針對運動圖像的相關(guān)性,研究幀間預(yù)測的基本內(nèi)容及運動估計中P幀算法編碼運動圖像的原理與步驟。</p><p> 關(guān)鍵詞:AVS算法標(biāo)準(zhǔn),幀間預(yù)測,運動估計,運動矢量</p><p> A RESEARCH ONlNTER-FRAME PREDICTION</p>
4、;<p> ALGORITHM OF AVS-P</p><p><b> ABSTRACT</b></p><p> Our country has good industrial foundation in audio and video omain.However,because of the lack of mastery of the
5、important techniques and standards,related corporatiom have long been enslaved to foreign corpomtious or organizations.To change this disadvantageous situation,“Digital AudioandVideo Codec Technology Standard Work Group
6、”(AVS)was established in Beij ing on June 21,2002.AVS establish our country’s video and audio coding standards,called Information Technology Advanced Audio and Video</p><p> The design of AVS is based on co
7、nventional block-based motion-compensation hybrid video coding concepts.For the enhancement of the coding efficiency,AVS adopts newtools as followed:new intra frame prediction,variable block-size with seven block sizes i
8、n motion prediction,multiple reference picture,fractional-pixel accuracy formotion estimation,integer transform and loop filter.</p><p> Two adjacent motion image exist certain relevance, AVS-P frame by fra
9、me coding is between two adjacent motion image coding image motion vector changes of an algorithm, motion estimation and motion compensation is the main frame to predict the AVS content, according to the study, sports im
10、age correlation between frames the basic content and prediction of motion estimation algorithm for image coding exercise P frame the principle and procedure.</p><p> Keywords:Video coding of AVS , Inter pre
11、diction , Motion estimation,</p><p> Motion vector</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> ABSTRACTII</p><p> 第一章 緒
12、論1</p><p><b> 1.1 引言1</b></p><p> 1.2 AVS視頻編碼標(biāo)準(zhǔn)介紹1</p><p> 1.3 視頻編碼中的幀間預(yù)測算法2</p><p> 1.4 本文的主要工作以及組織結(jié)構(gòu)3</p><p> 第二章 AVS視頻編碼原理4</
13、p><p> 2.1 視頻壓縮編碼標(biāo)準(zhǔn)概述4</p><p> 2.2 AVS編碼中的碼流結(jié)構(gòu)4</p><p> 2.3 AVS碼流的編碼過程5</p><p> 2.4 AVS編碼中的關(guān)鍵技術(shù)6</p><p> 2.4.1 幀內(nèi)預(yù)測6</p><p> 2.4.2 幀
14、間預(yù)測7</p><p> 2.4.3 亞像素插值7</p><p> 2.4.4 整數(shù)變換量化8</p><p> 2.4.5 環(huán)路濾波10</p><p> 2.4.6 熵編碼11</p><p> 第三章 AVS標(biāo)準(zhǔn)中的幀間算法研究14</p><p>
15、3.1 幀間預(yù)測的基本原理14</p><p> 3.1.1 運動估計與運動補償15</p><p> 3.1.2 選擇匹配塊的大小16</p><p> 3.1.3 匹配準(zhǔn)則16</p><p> 3.1.4 搜索模式16</p><p> 3.2 AVS標(biāo)準(zhǔn)中的幀間預(yù)測17</p&
16、gt;<p> 3.2.1 參考圖像的選擇17</p><p> 3.2.2 分像素插值算法17</p><p> 3.2.3 運動矢量預(yù)測19</p><p> 3.3 P幀算法概述21</p><p> 3.3.1 基于塊匹配算法綜述21</p><p> 3.3.2
17、 P幀算法概述21</p><p> 3.3.3 最佳宏塊搜索法23</p><p> 3.4 測試代碼的程序及結(jié)果分析25</p><p> 3.4.1算法分析25</p><p> 3.4.2關(guān)鍵代碼27</p><p> 第四章 設(shè)計總結(jié)與展望36</p><p>
18、; 4.1 論文工作總結(jié)36</p><p> 4.2 下一步工作展望36</p><p><b> 參考文獻38</b></p><p><b> 致 謝39</b></p><p><b> 外文文獻:40</b></p><p>
19、;<b> 中文翻譯:49</b></p><p><b> 第一章 緒論</b></p><p><b> 1.1 引言</b></p><p> 在因特網(wǎng)上傳輸視頻流媒體有許多困難,帶寬問題尤為突出,因此動態(tài)圖像壓縮編碼是其關(guān)鍵技術(shù)之一。通過高效的壓縮技術(shù)將視頻信息大幅度地壓縮可以有
20、效降低對網(wǎng)絡(luò)傳輸帶寬的需求。</p><p> 人們進行數(shù)據(jù)壓縮編碼已經(jīng)有很長的歷史了,數(shù)據(jù)壓縮編碼的基礎(chǔ)理論是香農(nóng)的信息論。傳統(tǒng)的壓縮編碼就是建立在此基礎(chǔ)上的,它以經(jīng)典的集合論為基礎(chǔ),用統(tǒng)計概率模型來描述信源。由此產(chǎn)生了許多優(yōu)秀的壓縮算法。但是傳統(tǒng)的算法未考慮信息接受者的主觀特性及事件信息本身的具體含義、重要程度和引起的后果,所以壓縮比率不高。后來人們發(fā)現(xiàn)音頻和視頻中所攜帶的許多信息對人來說是不敏感的,可以對
21、這些信息進行大幅的有損壓縮,由此產(chǎn)生了許多優(yōu)秀的視頻、音頻壓縮算法。</p><p> 1.2 AVS視頻編碼標(biāo)準(zhǔn)介紹</p><p> 2002年,國家信息產(chǎn)業(yè)部科學(xué)技術(shù)司批準(zhǔn)成立數(shù)字音視頻編解碼技術(shù)標(biāo)準(zhǔn)工作組,制定具有自主知識產(chǎn)權(quán)的AVS系列信源編碼標(biāo)準(zhǔn),AVS標(biāo)準(zhǔn)為《信息技術(shù)先進音視頻編碼》系列標(biāo)準(zhǔn)的簡稱,它包括了系統(tǒng)、視頻、音頻、版權(quán)管理、文件格式、網(wǎng)絡(luò)傳輸?shù)葟囊曨l壓縮技術(shù)到系
22、統(tǒng)規(guī)范的一整套標(biāo)準(zhǔn),是針對中國音視頻產(chǎn)業(yè)的需求,由中國數(shù)字音視頻領(lǐng)域的科研機構(gòu)和企業(yè)牽頭,相關(guān)國際組織和企業(yè)廣泛參與,按照國際開放式規(guī)則制定的中國自主的標(biāo)準(zhǔn),目前已有會員單位150余家,標(biāo)準(zhǔn)工作組掛靠單位為中科院計算所。AVS標(biāo)準(zhǔn)的制定和推廣對減輕國內(nèi)的音視頻相關(guān)產(chǎn)業(yè)的專利費負(fù)擔(dān)以及提升核心競爭力具有極其重要的意義。</p><p> AVS視頻當(dāng)中具有特征性的核心技術(shù)包括:8x8整數(shù)變換、量化、幀內(nèi)預(yù)測、四分
23、之一精度像素插值、特殊的幀間預(yù)測運動補償、以及熵編碼、去塊效應(yīng)環(huán)路濾波等。</p><p><b> l、變換量化</b></p><p> AVS的8x8變換與量化可以在16位處理器上無失配地實現(xiàn),64級量化可以完全適應(yīng)不同的應(yīng)用對碼率和質(zhì)量的要求。目前AVS所采用的變換與量化方案,既適用于16位DSP或其他軟件仿真的快速實現(xiàn),也適合于各種不同平臺的優(yōu)化實現(xiàn)。&
24、lt;/p><p><b> 2、幀內(nèi)預(yù)測</b></p><p> AVS的幀內(nèi)預(yù)測技術(shù)是利用相鄰塊的像素值預(yù)測當(dāng)前塊的像素值,AVS亮度和色度幀內(nèi)預(yù)測都是以8×8塊為單位的。亮度塊有5種預(yù)測模式,色度塊有4種預(yù)測模式。在編碼質(zhì)量相當(dāng)?shù)那疤嵯?,相對于H.264的9種預(yù)測模式,AVS采用較少的預(yù)測模式,使實現(xiàn)的復(fù)雜度大為降低。</p><
25、p><b> 3、幀間預(yù)測</b></p><p> AVS標(biāo)準(zhǔn)采用了16x16、16x8、8x16和8x8的塊模式進行運動補償,較少的塊模式(相比于MPEG.4AVC/H.264),能降低運動矢量和塊模式編碼傳輸?shù)拈_銷,從而提高壓縮效率、降低編解碼實現(xiàn)的復(fù)雜度。而AVS采用不同的4抽頭濾波器進行半像素插值和四分之一像素插值,在不降低性能的情況下減少了插值所需要的參考像素點,降低了
26、數(shù)據(jù)存取帶寬需求。AVS中的P幀預(yù)測可以利用至多2幀的前向參考幀,而B幀采用前后各1個參考幀,P幀與B幀(包括后向參考幀)的參考幀數(shù)相同,其參考幀存儲空間與數(shù)據(jù)存取的開銷均不多于傳統(tǒng)視頻編碼。另外,AVS中B幀的雙向預(yù)測的多種模式的設(shè)定,也有效的節(jié)省了運動矢量的編碼開銷。</p><p><b> 4、熵編碼</b></p><p> AVS熵編碼采用自適應(yīng)變長編
27、碼技術(shù),所有的語法元素和殘差數(shù)據(jù)都是以指數(shù)哥倫布碼的形式映射成二進制比特流,可以很好的發(fā)揮指數(shù)哥倫布碼硬件復(fù)雜度低,可由閉合公式直接解析的優(yōu)點。對預(yù)測殘差的塊變換系數(shù),經(jīng)掃描形成(1evel、run)對串,進行二維聯(lián)合編碼,并可以根據(jù)當(dāng)前l(fā)evel、run的不同概率分布趨勢,自適應(yīng)改變指數(shù)哥倫布碼的階數(shù)。</p><p> 1.3 視頻編碼中的幀間預(yù)測算法</p><p> 視覺特性表
28、明,人眼對活動圖像中的靜止部分和運動部分有著不同的分辨率要求,即對靜止部分有較高的空間分辨力和較低的時間分辨力,而對運動部分有著較低的空間分辨力和較高的時間分辨力。因此可以將圖像分割成靜止部分和運動部分分別進行處理。對于靜止部分可以重復(fù)上一幀的數(shù)據(jù),對于運動部分則需設(shè)法測定其位移量,以位移量來預(yù)測其運動,并將運動信息發(fā)送給接收端,以壓縮運動部分的數(shù)據(jù)量,構(gòu)成完整的圖像,稱為圖像幀間編碼中的運動補償預(yù)測。運動補償?shù)姆椒ㄊ歉櫘嬅鎯?nèi)的運動情
29、況對其加以預(yù)測以后再加以補償。這項技術(shù)的關(guān)鍵是運動矢量計算。通常的方法是采用塊匹配法。運動估計和補償是活動圖像編碼和計算機視覺領(lǐng)域的一項關(guān)鍵技術(shù)。</p><p> 能夠?qū)σ曨l序列進行幀間編碼主要有兩個方面的依據(jù)。</p><p> 首先,從信源的角度看,自然景物大多處于相對不變或緩變狀態(tài),且其運動狀態(tài)必然是連續(xù)的,這是幀間相關(guān)性存在的前提條件。在用攝像機攝取圖像時,根據(jù)不同場合的需要
30、有不同的取景方式,這樣幀間相關(guān)性表現(xiàn)的形式也不相同。目前視頻編碼中考慮的主要是一些簡單形式。</p><p> 幀間預(yù)測考慮的典型情況是頭肩序列,例如可視電話圖像,圖像的內(nèi)容通常是在一個細(xì)節(jié)不十分復(fù)雜的背景前,一個活動量不大的單人圖像。假定人的位置在第K幀與第K-1幀相比有一定的位移,可以將畫面分成3個各具特點的區(qū)域:</p><p> (1)背景區(qū):這部分圖像一般是靜止的,前后兩幀的
31、絕大部分?jǐn)?shù)據(jù)相同,有著極強的相關(guān)性,且只是對人物起陪襯作用。</p><p> (2)運動物體區(qū):如將物體看作簡單的平面位移,則第K幀和第K.1幀的該部分?jǐn)?shù)據(jù)也是幾乎相同的,只是位置發(fā)生了改變,相關(guān)性還是極強的。這部分?jǐn)?shù)據(jù)需要運動估計和運動補償。</p><p> (3)暴露區(qū):這是指運動后所暴露出來的原來被物體蓋住的區(qū)域。如果有存儲器將這些暴露區(qū)的數(shù)據(jù)暫時存儲,則再次經(jīng)遮蓋再暴露出來
32、的數(shù)據(jù)與原來存儲的數(shù)據(jù)也是相同的,還是有強相關(guān)性。</p><p> 雖然以上三類區(qū)域的相關(guān)性是比較理想的劃分結(jié)果,實際中并無如此嚴(yán)格的劃分,但是它們?yōu)閹g編碼算法提供了重要依據(jù)。如果存在場景切換則談不上幀間相關(guān)性。對一些攝像機運動的場合也有類似的結(jié)論。例如,活動圖像是在行進中的車輛上拍攝的,或是攝像機用倍焦的方式拍攝的前方的景物,或用飛行攝像機拍攝地面的景物等等,相鄰幀也存在很強的相關(guān)性。</p>
33、<p> 普通電視圖像及HDTV圖像內(nèi)容則豐富多變,它們可以看成是上述多種圖像序列的復(fù)雜組合,因此總有一定成分的時間相關(guān)性,可以用于圖像的幀間預(yù)測編碼。</p><p> 其次,在活動圖像編碼中,還可以利用入的視覺特性根據(jù)景物的活動性適當(dāng)調(diào)整碼率,這就是所謂的空間分辨率和時間分辨率的交換。</p><p> 研究表明,人類視覺對圖像中的靜止部分有較高的分辨率,必須給予充
34、分的空間(spatial)分辨率,即在傳輸靜止圖像或序列圖像的靜止部分時,要保證較高的水平和垂直分辨率;但與此同時,卻可以減少傳輸幀數(shù),在接收端,依靠幀存儲器把未傳輸?shù)膸a充出來,而按照一定周期傳輸?shù)臄?shù)據(jù)對幀存儲器刷新。因此對傳輸序列圖像而言,可恰當(dāng)降低時間(temporal)分辨率。另一方面,人的視覺對于序列圖像中的運動物體的空間分辨率將隨著物體的運動速度的增加而顯著降低,攝像器材的靈敏度也會造成運動部分的靈敏度下降。此外,電視監(jiān)視器
35、的顯示器件也有一定的積分模糊效應(yīng)。這樣在傳輸序列圖像中的運動物體時,可以降低這部分圖像的清晰度,且這部分圖像的運動速度愈高,就可以用更低的圖像清晰度進行傳輸。</p><p> 綜上所述,根據(jù)圖像的內(nèi)容在清晰度和活動性(幀頻)之間進行調(diào)整,可使重建圖像在視覺上保持一致主觀效果,這種方法就叫做空問分辨率和時間分辨率的交換。</p><p> 以上兩點的分析為視頻幀間編碼提供了理論依據(jù),幀
36、間編碼作為視頻壓縮的有效技術(shù),被各種視頻壓縮標(biāo)準(zhǔn)所采用。</p><p> AVS支持P幀和B幀兩種幀間預(yù)測圖像。P幀至多采用2個前向參考幀,B幀采用前后各一個參考幀。與MPEG.4AVC/H.264的多參考幀相比,AVS在不降低壓縮性能的情況下,節(jié)省了需要的存儲資源與數(shù)據(jù)帶寬,也使參考幀的管理更為方便,降低了整個編解碼器算法的復(fù)雜度。</p><p> 1.4 本文的主要工作以及組織
37、結(jié)構(gòu)</p><p> 1、分析AVS視頻編碼標(biāo)準(zhǔn)原理,研究AVS視頻壓縮編碼的關(guān)鍵技術(shù)。</p><p> 2、研究幀間預(yù)測中P幀算法如何處理運動圖像之間的關(guān)聯(lián)。</p><p> 3、分析參考程序(測試代碼RM52J),并在PC機上運行和調(diào)試。</p><p> 第二章 AVS視頻編碼原理</p><p>
38、; 2.1 視頻壓縮編碼標(biāo)準(zhǔn)概述</p><p> 多媒體信息主要包括文字、聲音、圖像、圖形和視頻等內(nèi)容,其中視頻又是多媒體信息中最重要的組成部分,但是視頻的信息容量巨大。對于高清晰度數(shù)字電視(ITU.R 709),當(dāng)幀頻為25場/秒,每采樣點8比特進行量化,色差格式為4:2:2時,每秒數(shù)據(jù)量高達884.7Mbit/s,而地面廣播系統(tǒng)的傳輸帶寬僅有6M到8M。因此無論是存儲還是傳輸,數(shù)字視頻都必須經(jīng)過極大的壓
39、縮才能具有實際意義。視頻編碼的目的是實現(xiàn)對視頻的壓縮,其核心思想是去相關(guān)。通過減少視頻序列問的相關(guān)性,降低視頻內(nèi)容中的冗余,用較少的比特數(shù)來表示視頻內(nèi)容,從而實現(xiàn)對視頻的壓縮。視頻數(shù)據(jù)中包含著大量的冗余信息,上要包括空域冗余、時域冗余、統(tǒng)計冗余和視覺冗余。依據(jù)消除這些冗余的不同,視頻壓縮編碼的方法基本上分為四類:</p><p> (1)空間冗余度的壓縮。一幅視頻圖像相鄰各點的取值往往相近或相同,具有空間相關(guān)性
40、,這就是空間冗余度。從頻域來看,圖像信號的能量主要集中在低頻附近,高頻信號的能量隨頻率的增加而迅速衰減。通過頻域變換可以將原圖像信號用直流分量及少數(shù)低頻交流分量的系數(shù)來表示,這就是變換編碼中正交余弦變換DCT的方法。</p><p> (2)時間冗余度的壓縮。時域冗余是指視頻圖像序列沿著時陽J軸方向上的冗余,它是由同一物體在相鄰視頻圖像問的移動而產(chǎn)生的。視頻序列在時域存在極強的相關(guān)性,兇此,不傳送像素點本身的值
41、而傳送其與前一幀對應(yīng)像素點的差值,也能有效地壓縮碼率。幀間編碼是利用了時間上的冗余性。</p><p> (3)統(tǒng)計冗余的壓縮。主要是利用視頻數(shù)據(jù)中存在的信息熵的進行編碼,常用方法有霍夫曼編碼、游程編碼和算術(shù)編碼。</p><p> (4)視覺冗余的壓縮。由于人眼視覺的非均勻性,使得人眼視覺對某些空間頻率感覺遲鈍。人眼對于圖像的視覺特性包括:對亮度信號比對色度信號敏感,對低頻信號比對高
42、頻信號敏感,對靜止圖像比對運動圖像敏感,以及對圖像水平線條和垂直線條比對斜線敏感。因此,在視頻壓縮中可以利用視覺的特點,減小色度信號,高頻信號和一些運動數(shù)據(jù)的編碼數(shù)據(jù)量。</p><p> 2.2 AVS編碼中的碼流結(jié)構(gòu)</p><p> AVS視頻編解碼算法標(biāo)準(zhǔn)是基于空間和時間的預(yù)測和補償、空域的變換和基于統(tǒng)計的熵編碼的混合編碼。與H.264類似,其碼流結(jié)構(gòu)語法層次從高到低依次為序列
43、、圖像、條帶、宏塊和塊。</p><p> 視頻序列是比特流的最高層次的語法結(jié)構(gòu)。視頻序列由序列頭開始,后面跟著一個或多個編碼圖像,每幀圖像之前應(yīng)有圖像頭。標(biāo)準(zhǔn)支持兩種序列:逐行序列(幀)和隔行序列(場)。</p><p> 在進行AVS編碼時,視頻序列是比特流的最高層語法結(jié)構(gòu)。視頻序列由序列頭開始,后面跟著一個或多個編碼圖像,每幀圖像之前應(yīng)有圖像頭。序列頭可在比特流中重復(fù)出現(xiàn),稱為重
44、復(fù)序列頭。使用重復(fù)序列頭的主要目的是支持對視頻序列的隨機訪問,序列頭后的第一個編碼圖像是I幀。一幅圖像是一幀,其編碼數(shù)據(jù)由圖像起始碼丌始,到序列起始碼、序列結(jié)束碼或下一個圖像起始碼結(jié)束。Avs視頻輸入的每一幀圖像都被分為若干個條帶(slice),條帶又由若干宏塊行構(gòu)成,因此在條帶頭后跟著若干個宏塊數(shù)據(jù)。宏塊是視頻編碼過程的基本處理單元。每一個宏塊由4個8×8的亮度塊Y以及一個Cb塊和一個Cr塊組成。樣本矩陣元素的值為整數(shù)。AV
45、S支持4:2:0、4:2:2和4:4:4(Y:Cb:Cr)的圖像格式。AVS定義了三種解碼圖像:幀內(nèi)解碼圖像(I幀),前向幀問解碼圖像(P幀),雙向幀間解碼圖像(B幀)。</p><p> 圖2-1 視頻編碼器框圖</p><p> 條帶是按光柵掃描順序連續(xù)的若干宏塊行,條帶內(nèi)的宏塊行不應(yīng)重疊,條帶之間也不應(yīng)重疊。條帶內(nèi)宏塊的解碼處理不應(yīng)使用本圖像其它條帶的數(shù)據(jù)。條帶劃分為宏塊,對宏
46、塊的處理有幀內(nèi)預(yù)測和幀問預(yù)測兩大類,在AVS中塊大小為8x8像素。在4:2:0的圖像格式下,一個宏塊包括4個8×8亮度塊(Y)和2個8×8色度塊(1個Cb,1個Cr);塊是空間預(yù)測補償、時間預(yù)測補償和空間變換的基本單元。而在H.264中,預(yù)測補償和變換的最小單元都是4×4像素塊。實驗表明,在高分辨率情況下,8×8塊的性能比4x4塊更優(yōu),因此AVS的塊尺寸固定為8×8。就IDCT計算復(fù)雜度
47、來講,1個8×8塊比4個4×4塊略高,但1個8×8塊運動補償,運動估計和環(huán)路濾波的復(fù)雜度比4個4x4塊要大為降低。</p><p> 2.3 AVS碼流的編碼過程</p><p> AVS的編碼過程:原始的YUV數(shù)據(jù)進入編碼器,根據(jù)編碼配置的信息進行判斷,分別進行I幀和P幀或者B幀的編碼。</p><p> 如果是I幀,先進行幀內(nèi)
48、編碼。幀內(nèi)編碼不需要參考其它幀的信息,只參考當(dāng)前幀中已編碼重建后的宏塊信息。在初始化編碼器的參數(shù)后,把原始的圖像數(shù)據(jù)進行宏塊分割,再以宏塊為單位經(jīng)過一系列的變換、量化及熵編碼就可以得到I幀圖像的碼流,然后還要經(jīng)過反饋回路的變長解碼,反量化和反變換等操作重建該圖像,為后續(xù)的圖像編碼做參考之用。</p><p> 如果是P幀,也是按照宏塊來進行編碼的,但編碼方式有三種情況:Skip模式,幀內(nèi)編碼和幀間編碼。P幀的幀
49、內(nèi)預(yù)測與I幀相同,對于P幀的幀間編碼,每個宏塊由2個候選參考幀中的1個來預(yù)測,候選參考幀為最近解碼的I或P幀。如果是場編碼的情況,那么對于后一種預(yù)測模式的P場,每個宏塊由最近解碼的4個場來預(yù)測。預(yù)測結(jié)果與原始的YUV數(shù)據(jù)作差得到殘差。對殘差進行量化和變換,經(jīng)熵編碼后輸出。對于跳過(Skip)模式,編碼塊運動補償?shù)臍埐顬榱悖⑹褂妙A(yù)測得到的運動矢量,即該模式下宏塊只需要傳輸模式信號,而不需要傳輸運動矢量、補償殘差等附加信息。</p&
50、gt;<p> B幀的編碼與P幀不同的地方是可以采用雙向預(yù)測方式,AVS的B幀的雙向預(yù)測使用了直接模式(direct mode)、對稱模式(symmetric mode,該模式是AVS所特有的)和跳過模式(skip mode)。使用對稱模式時只需要傳送前向運動矢量碼流,后向運動矢量可由前向運動矢量導(dǎo)出,從而節(jié)省后向運動矢量的編碼開銷。對于直接模式,當(dāng)前塊的前、后向運動矢量都是由后向參考圖像相應(yīng)位置塊的運動矢量導(dǎo)出,無需傳
51、輸運動矢量,因此也可以節(jié)省運動矢量的編碼開銷。跳過模式的運動矢量的導(dǎo)出方法和直接模式的相同,運動補償?shù)臍埐顬榱悖膊恍枰獋鬏斶\動矢量和殘差。 </p><p> 2.4 AVS編碼中的關(guān)鍵技術(shù)</p><p> 2.4.1 幀內(nèi)預(yù)測</p><p> 幀內(nèi)預(yù)測可以去除幀內(nèi)(Intra)塊的空間冗余。以往的編碼標(biāo)準(zhǔn)都是在頻域內(nèi)進行幀內(nèi)預(yù)測,比如MPEG.2的
52、直流系數(shù)(DC)差分預(yù)測、MPEG.4的DC及高頻系數(shù)(AC)預(yù)測。AVS視頻標(biāo)準(zhǔn)采用空域內(nèi)的多方向幀內(nèi)預(yù)測技術(shù),用相鄰的像素塊來預(yù)測當(dāng)前塊,提高了預(yù)測精度,從而提高了編碼效率。AVS視頻標(biāo)準(zhǔn)的幀內(nèi)預(yù)測基于8×8塊大小,亮度分量只有5種預(yù)測模式。H.264標(biāo)準(zhǔn)也采用了這一技術(shù),其預(yù)測塊大小為4x4及16x16,分別有9種和4種預(yù)測模式。試驗表明,AVS采用5種模式大大降低了幀內(nèi)預(yù)測模式?jīng)Q策的計算復(fù)雜度,圖像質(zhì)量PSNR比9種模
53、式的H.264僅損失0.5dBllll。</p><p> AVS的幀內(nèi)預(yù)測模式(亮度)如下表(表2-1)所示:</p><p> 表2-1 8x8亮度塊幀內(nèi)預(yù)測模式</p><p> 色度塊的預(yù)測與之類似,有4種幀內(nèi)預(yù)測模式(將后兩種合并為對角線模式)。相鄰已解碼塊在環(huán)路濾波前的重建像素值用作當(dāng)前塊的參考。</p><p> 當(dāng)前
54、幀內(nèi)預(yù)測塊由其上邊和左邊的參考樣本r[i](i=0~16)和c[i](i=0~16)來預(yù)測(r、c可表示亮度或色度參考樣本),其中,r[0]等于c[0]。如果幀內(nèi)預(yù)測需要用到i大于16的上邊和左邊的參考樣本則r[i]=r[16],c[i]=c[16](i>16)。</p><p> 與MPEG-4、AVC/H.264中所采用的4x4塊的幀內(nèi)預(yù)測方式相比,8x8規(guī)模的預(yù)測塊將增加待預(yù)測樣本和參考樣本之間的距
55、離,從而減弱相關(guān)性,降低預(yù)測精度。因此在AVS的DC、Down-Left、Down-Right這三種模式中,先利用3抽頭的低通濾波器(1,2,1)對參考樣本濾波去除噪聲。在AVS的DC模式中每個像素值由水平和豎直位置的相應(yīng)參考像素值來預(yù)測,所以每個像素的預(yù)測值都有可能不同。這種DC預(yù)測較之H.264中的DC模式預(yù)測更為精確,這對于較大的8x8塊尺寸來講更有意義。</p><p> 2.4.2 幀間預(yù)測<
56、/p><p> 幀間運動補償編碼是混合編碼技術(shù)框架中最重要的部分之一,AVS采用了多項幀間預(yù)測技術(shù)來提高編解碼效率。幀間預(yù)測算法也是本文的主要研究內(nèi)容。</p><p> 1、變塊大小運動補償:變塊大小運動補償是提高運動預(yù)測精確度的重要手段之一,對提高編碼效率起重要作用。塊小則塊內(nèi)殘差能量小,殘差塊的編碼量小,但是確定參考塊模式和運動矢量的信息量大,這部分編碼量增大;相反塊大則編碼殘差塊的
57、能量大,但確定參考塊模式和運動矢量的信息量小。同時塊小計算復(fù)雜度也副高。MPEG-2的運動預(yù)測都是基于16x16的宏塊進行的,在MPEG.4中添加了8x8塊劃分模式。在H.264中則進一步添加16x8、8x16、8x4、4x8、4x4等劃分模式。但實驗數(shù)據(jù)表明小于8x8塊的劃分模式對低分辨率編碼效率影響較大,而對于高分辨率編碼則影響甚微。在高清序列上的大量實驗數(shù)據(jù)表明,去掉8x8以下大小塊的運動預(yù)測模式,整體性能降低2%~4%,但其編碼
58、復(fù)雜度則可降低30%~40%。因此在AVS中將最小宏塊劃分限制為8x8,這一限制大大降低了編解碼器的復(fù)雜度。</p><p> 2、多參考幀預(yù)測:多參考幀預(yù)測可以從前面幾幀圖像中尋找對當(dāng)前塊的最佳匹配,因此能夠提高編碼效率。但一般2--3個參考幀基本上可令人滿意,更多的參考圖像對性能提升影響甚微,復(fù)雜度卻會成倍增加。AVS視頻標(biāo)準(zhǔn)限定最多采用兩個參考幀。因為B幀進行雙向運動補償預(yù)測,需要兩幀參考圖像。因此,AV
59、S解碼器需要能存儲兩幀圖像的參考圖像緩沖區(qū)??紤]到這一點,AVS視頻標(biāo)準(zhǔn)允許P幀使用在其之前的連續(xù)兩個I幀/P幀作為參考圖像,在不增加緩沖區(qū)大小的前提下提高了編碼效率。</p><p> 3、B幀宏塊編碼模式:在AVC/H.264標(biāo)準(zhǔn)中,時域直接模式與空域直接模式是相互獨立的。而AVS視頻標(biāo)準(zhǔn)采用了更加高效的空域/時域相結(jié)合的直接模式,并在此基礎(chǔ)上使用了運動矢量舍入控制技術(shù),AVS標(biāo)準(zhǔn)比H。264中B幀性能有所
60、提高。此外,AVS標(biāo)準(zhǔn)還提出了只對前向運動矢量編碼的對稱模式。后向運動矢量通過前向運動矢量計算獲得,從而實現(xiàn)雙向預(yù)測。</p><p> 4、加權(quán)預(yù)測:與H.264相似AVS還定義了加權(quán)預(yù)測。加權(quán)預(yù)測在場景變換、照度變化等情況下能顯著提高編碼效率。AVS視頻標(biāo)準(zhǔn)的加權(quán)預(yù)測采用了簡單的線性模型,模型參數(shù)在圖像頭中傳送。每一個宏塊都可以單獨選擇是否使用加權(quán)預(yù)測。</p><p> 2.4.
61、3 亞像素插值</p><p> 運動矢量的精度是提高預(yù)測準(zhǔn)確度的重要手段之一。AVS的幀間預(yù)測運動估計與補償,亮度和色度的運動矢量精度分別為1/4和1/8像素,因此需要相應(yīng)的亞像素插值運算,以根據(jù)運動矢量得到相應(yīng)的參考樣本。如果插值過程所參考的整數(shù)樣本在參考圖像外,應(yīng)用該圖像內(nèi)距離參考樣本最近的整數(shù)樣本(邊緣或角樣本)代替,即運動矢量能指向參考圖像外的樣本。</p><p> 影響
62、高精度運動補償性能的一個核心技術(shù)是插值濾波器的選擇。AVC/H.264亞像素插值半像素位置采用6抽頭濾波,這個方案對低分辨率圖像效果顯著。根據(jù)高清視頻的特點,AVS視頻標(biāo)準(zhǔn)對1/2像素位置插值采用4抽頭濾波器Hl(-1/8,5/8,5/8,-1/8),l/4像素插值采用H2(1/16,7/16,7/16,1/16)。其效果與6抽頭濾波器相同,但是大大降低了存取訪問帶寬,對硬件實現(xiàn)有重要價值。與MPEG--4 AVC/H.264的亞像素插
63、值相比AVS的數(shù)據(jù)帶寬減小1 1%,而計算復(fù)雜度并沒有提高,并且該插值方法在高清序列上略顯優(yōu)勢。</p><p> 2.4.4 整數(shù)變換量化</p><p> 離散余弦變換(DCT,Discrete Cosine Transform)主要是根據(jù)圖像在變換域的相關(guān)性消除冗余。由于DCT變換為浮點運算占用內(nèi)存較大,耗時多,且不同的處理器運算結(jié)果會有誤差。在AVS中采用近似的整數(shù)DCT變換
64、——整數(shù)變換ICT(Integer Cosine Transform),其性能接近8x8的DCT變換,且只需要在編碼器端作規(guī)整運算,而在解碼器端不用計算。變換只需要加法和移位運算,運算量小,且不存在舍入誤差。變換的基本單位是8x8子塊。實驗表明,AVS中的變換相對于H.264的High Profile的4x4的ICT有0.05dB的PSNR增益。</p><p> 由于采用ICT,各變換基矢量的模大小不一,因此
65、必須對變換系數(shù)進行不同程度的縮放以達到歸一化。為了減少乘法的次數(shù),在H.264中將正向縮放和量化結(jié)合在一起操作,反向縮放和反量化結(jié)合在一起操作,如圖2-2所示。在AVS中,采用帶PIT(Pre.Scaled Integer Transform)的8×8整數(shù)余弦變換技術(shù),如圖2-3所示。即正向縮放、量化、反向縮放結(jié)合在一起。而解碼端只進行反量化,不再需要反縮放,從而節(jié)省解碼反變換所需的縮放表,降低解碼器的復(fù)雜度。</p&g
66、t;<p> 圖2-2 傳統(tǒng)ICT編碼</p><p> 圖2-3 PIT編碼</p><p> AVS的8x8整數(shù)變換采用了一維8點蝶形快速算法,量化主要通過尺度變換結(jié)合查表操作實現(xiàn)。該模塊的算法步驟如下:</p><p> 1.編碼過程中,對輸入殘差矩陣X進行如下二維正變換:</p><p> Y=(TXTT
67、)>>5 (公式2-1)</p><p> 其中,T為變換矩陣,Y為輸出矩陣。</p><p> 將殘差矩陣擴大32倍,殘差數(shù)據(jù)比較小,擴大32倍是為了提高其量化精度。</p><p> 2.將正變換輸出系數(shù)矩陣先與尺度縮放矩陣玩的元素對應(yīng)相乘,結(jié)果右移19位,再通過
68、量化參數(shù)QP查找量化表得到Q_Table[QP],與尺度縮放后的結(jié)果相乘,再右移l5位,保證量化輸出結(jié)果在16位以內(nèi)。</p><p><b> ?。ü?-2)</b></p><p> AVS中,變換量化流程圖如下:</p><p> 圖2-4 變換和量化流程圖</p><p> 上式中,輸出矩陣為YQ,每
69、個元素陽YQ(I,j)的符號與Y(I,j)相同;E8’是尺度縮放的調(diào)整矩陣,在程序中已經(jīng)設(shè)計成了查找表;f是改善圖像視覺效果的偏移量,當(dāng)I幀時,f=(1<<15)×lO/3l,當(dāng)P幀時,f_(1<<15)×10/62;Q_Table[QP]的值是16位的無符號數(shù),在程序中通過查表提時得到。</p><p> 3.反量化時的輸出矩陣為Y’,IQ_ Table為反量化表,
70、Shift是與QP相對應(yīng)的位移表,反量化公式為:</p><p> Y/(I,J) =(YQ(I,j)IQ_Table[QP])>>Shift[QP]</p><p> 4.反變換可以表示為:</p><p> X/ ={TT[(Y/T)>>3]}>>7 (公式2-
71、3)</p><p> 為了節(jié)省編碼時間和碼流,在該模塊中我們對量化后的系數(shù)進行了門限處理。因為在8×8塊中,如果只有一個非零系數(shù)那么編碼的總開銷一般會達到lO-12bit,從率失真的角度來考慮的話為了提高失真度而付出的碼率代價太大,而且還會增加對該系數(shù)編碼的時間。AVS中編碼系數(shù)為二維(Run和Level),系數(shù)丌銷與這兩個值都有關(guān)系,本算法中對8×8塊門限設(shè)定為3,這表示在一個8
72、5;8塊中:(1)如果只有一個系數(shù),且(Run,level)=(0,1),則該系數(shù)被丟棄。(2)如果有兩個系數(shù),(Run,level)=(1,1)或(4,1),則系數(shù)也被丟棄。同時,設(shè)定幀問編碼的宏塊系數(shù)門限為5。整個宏塊的總系數(shù)丌銷如果小于或等于5,則該宏塊所有的非零系數(shù)都被丟棄,重構(gòu)塊等于預(yù)測塊。</p><p> 2.4.5 環(huán)路濾波</p><p> 塊編碼的一個顯著特性是重
73、建圖像存在塊效應(yīng),主要表現(xiàn)為塊的邊界會出現(xiàn)像素的不連續(xù)??梢圆捎铆h(huán)路濾波去除塊效應(yīng)提高圖像的主觀質(zhì)量和壓縮效率。</p><p> H.264中采用自適應(yīng)環(huán)路濾波,即根據(jù)塊邊界兩側(cè)的塊類型先確定塊邊界強度(Boundary Srength,Bs)值,然后對不同的Bs值采取不同的濾波策略。對所有4x4亮度塊的邊界,Bs值在0--4之間,該值與邊界的性質(zhì)有關(guān)。</p><p> AVS與H
74、.264略有不同,Bs可取3個不同值并且沒有特定濾波方式,若邊界兩邊的兩個塊中有一個塊是幀內(nèi)編碼的則Bs等于2;若兩個相鄰塊的參考幀相同并且兩個運動矢量中任一個分量的差值小于1個整像素時Bs等于O;否則Bs等于1。Bs等于0時不濾波。Bs等于l和2分別采取不同的濾波方式進行濾波。邊界濾波對于每個邊界最多涉及6個像素,即每條邊界兩側(cè)最鄰近的3個像素。而被修改的像素最多4個,即每條邊界兩側(cè)最鄰近的2個像素。除圖像邊界及條帶的邊界之外,宏塊的
75、所有邊界都應(yīng)進行濾波。此處宏塊邊界定義為宏塊內(nèi)部各個8×8塊的邊界,以及當(dāng)前宏塊與相鄰宏塊的上邊界和左邊界。由于AVS的變換和最小預(yù)測塊都是8x8像素,因此環(huán)路濾波的塊大小也是8×8。與H.264的4x4相比AVS塊邊界數(shù)量大大減少,減輕了運算負(fù)擔(dān)。H.264根據(jù)樣點集的Bs值選擇濾波方式。另外AVS中Bs及受其影響而改變值的像素數(shù)量都有所減少。</p><p> 一個宏塊解碼完成后進行環(huán)路
76、濾波,按照光柵掃描順序依次處理。圖像中每個宏塊的濾波過程是:對亮度和色度分別做環(huán)路濾波,首先從左到右對垂直邊界濾波,然后從上到下對水平邊界濾波。當(dāng)前宏塊的上邊或者左邊的樣本值在以前的宏塊環(huán)路濾波過程中可能已經(jīng)被修改,當(dāng)前宏塊的環(huán)路濾波的輸入為修改后的樣本值。并且當(dāng)前宏塊環(huán)路濾波可能進一步修改這些樣本值。當(dāng)前宏塊垂直邊濾波過程中修改的樣本值作為后續(xù)水平邊界濾波過程的輸入。</p><p> 圖2-5 環(huán)路濾波
77、流程圖</p><p> 2.4.6 熵編碼</p><p> H.264支持兩種基于上下文的自適應(yīng)熵編碼方式:變長碼(CAVLC)和二進制算術(shù)編碼(CABAC)。VLC的基本思想是對出現(xiàn)頻率大的符號使用較短的碼字,出現(xiàn)頻率小的符號采用較長的碼字,以期平均碼長最小。H.264采用了若干VLC碼表對應(yīng)不同的概率模型。編碼器根據(jù)上下文(如周圍塊的非零系數(shù)或系數(shù)的絕對值大小)自動地選擇這些
78、碼表中與當(dāng)前數(shù)據(jù)的概率模型最可能匹配的碼表,從而實現(xiàn)上下文自適應(yīng)功能。</p><p> 算術(shù)編碼是一種高效的熵編碼方案,它每個符號所對應(yīng)的碼長被認(rèn)為是分?jǐn)?shù)。由于對每一個符號的編碼都與以前編碼的結(jié)果有關(guān),所以它考慮的是信源符號序列整體的概率特性,而不是單個符號的概率特性,因而它能夠更大程度地逼近信源的極限熵,降低碼率。為了繞開算術(shù)編碼中無限精度小數(shù)的表示問題以及對信源符號概率進行估計,現(xiàn)代的算術(shù)編碼多以有限狀態(tài)
79、機的方式實現(xiàn),H.264的CABAC便是一個例子。每編碼一個二進制符號,CABAC編碼器就會自動調(diào)整對信源概率模型(用1個“狀態(tài)"來表示)的估計,隨后的二進制符號就在這個更新了的概率模型基礎(chǔ)上進行編碼。這樣的編碼器不需要信源統(tǒng)計特性的先驗知識,而是在編碼過程中自適應(yīng)地估計。顯然,與CAVLC編碼中預(yù)先設(shè)定好若干概率模型的方法比較后者有更大的靈活性,編碼性能更好。</p><p> 圖2-6 AVS塊
80、變換系數(shù)熵編碼流程</p><p> 與H.264不同,AVS構(gòu)造的語法元素的所有碼字都是基于指數(shù)哥倫布碼或定長碼。定長碼用來編碼具有均勻分布的語法元素,指數(shù)哥倫布碼用來編碼可變概率分布的語法元素,如環(huán)路濾波索引偏移,宏塊跳過計數(shù)等。采用哥倫布指數(shù)編碼的優(yōu)勢在于:一方面,它的硬件復(fù)雜度比較低,可以根據(jù)閉合公式解析碼字,無需查表;另一方面,它可以根據(jù)編碼無序的概率失真分布靈活地確定以K階指數(shù)哥倫布碼編碼,如果K選
81、得恰當(dāng),則編碼效率可以逼近信息熵。</p><p> 對預(yù)測殘差的塊變換系數(shù),按照掃描的先后順序得到游程run和幅值level依次存入兩個數(shù)組作為熵編碼的輸入數(shù)據(jù)。level、run不是獨立事件,存在著很強的相關(guān)性。在AVS中l(wèi)evel、run采用二維聯(lián)合編碼,并根據(jù)當(dāng)前l(fā)evel、run的不同概率分布的變化趨勢自適應(yīng)改變指數(shù)哥倫布碼的階數(shù)。</p><p> AVS定義了4種由指數(shù)哥
82、倫布碼映射的碼流。無符號整數(shù)語法元素ue(v),包括宏塊類型等變量bbv_check_times,mb_skip_run,mb_type,intra_chroma_pred_mode;有符號整數(shù)語法元素se(v),包括運動矢量,量化參數(shù)增量等alpha_c_offset,beta_offset,mv_diff_x,mv_diff_y,mb_qp_delta;me(v)是用指數(shù)哥倫布碼編碼的語法元素,包括了4:2:0和4:2:2兩種YUV
83、圖像格式下的宏塊CBP標(biāo)志cbp,cbp-422:ce(v)是變長編碼的語法元素,包括變換系數(shù)掃描后對應(yīng)的(run,level),通過變長編碼表映射的系數(shù)值和不能查表時對level的單獨編碼值trans_ coefficient,escape _level_diff. 4種元素分別通過一定的映射規(guī)則或者查表得到k階指數(shù)哥倫布碼的輸入系數(shù)e hum。其中ue(v)直接映射,se(v)和me(v)查AVS標(biāo)準(zhǔn)中相應(yīng)的碼表,而ce(v)對塊變
84、換系數(shù)專門設(shè)定了映射規(guī)則。</p><p> 要調(diào)用的幀內(nèi)(intra)和幀間(inter)三維變長編碼表的首地址分別是AVS _2DVLC_INTRA和AVS_2DVLC_INTER,每個表的三維坐標(biāo)分別對應(yīng)[tablenum][run][abs(1evel)],tablenum從0到6,即共有7張子表,tablenum從0到6,即共有7張子表;幀內(nèi)(intra)表中run的范圍從O到25,level絕對值的
85、范圍從O到26;幀間(inter)表中run和level絕對值的范圍與幀內(nèi)(intra)表相同,即每張表的規(guī)模都是26行、27列。</p><p> 表2-2 跳轉(zhuǎn)門限表</p><p> 第三章 AVS標(biāo)準(zhǔn)中的幀間算法研究</p><p> 3.1 幀間預(yù)測的基本原理</p><p> 幀間預(yù)測采用多參考幀預(yù)測技術(shù),使當(dāng)前塊能
86、夠從前面幾幀圖像中尋找更好的匹配,因此能夠提高編碼效率。AVS視頻標(biāo)準(zhǔn)限定最多采用兩個參考幀,既兼顧了搜索匹配的性能,又大大降低了編碼復(fù)雜度。</p><p> 對于運動圖像編碼,采用變塊大小運動補償可以大大提高運動預(yù)測精確度。AVS中采用了16×8、8×16、8×8分割子塊,在高分辨率序列編碼復(fù)雜度和精度方面進行了折衷。另外,增強運動矢量的精度也是提高預(yù)測準(zhǔn)確度的重要手段之一,而
87、插值濾波器的選擇是影響高精度運動補償性能的一個關(guān)鍵。根據(jù)高清視頻的特性,AVS視頻標(biāo)準(zhǔn)在進行運動矢量搜索時采用了l/4像素精度插值,對l/2和l/4像素位置插值均用4拍濾波器,其效果與6拍濾波器相同,優(yōu)點是大大降低了訪問存取帶寬,足一個對硬件實現(xiàn)非常有價值的特性。</p><p> 幀間編碼模塊主要是利用已編碼視頻場/幀通過基于塊的運動補償進行編碼。這種運動補償方式是利用運動圖像時問上的相關(guān)性進行壓縮編碼的,用
88、參考幀圖像對當(dāng)前圖像的每個宏塊進行運動估計,找到匹配誤差最小的對應(yīng)塊,并計算出運動矢量和誤差圖像。這樣誤差圖像的值一般會很小,可以利用較少的比特數(shù)對其進行編碼,而運功矢量占用的比特數(shù)非常少,因而采用運動估計方式能夠大大提高壓縮比。在AVS中定義了兩種采用幀間預(yù)測編碼的幀:前向預(yù)測(P幀)和雙向預(yù)測(B幀),由于B幀需要使用前后雙向預(yù)測。幀間編碼步驟如下:利用前一幀或兩幀重構(gòu)圖像對當(dāng)前圖像的每一個宏塊進行預(yù)測,在搜索窗中利用設(shè)計好的搜索算
89、法進行最佳匹配塊搜索。運動搜索算法是一個層層遞進的過程,首先對16×16宏塊進行運動估計,接著再按16×8和8×16分割以及8×8分割進行運動估計,通過計算和比較匹配代價找到最佳模式和最優(yōu)的運動矢量。找到最佳匹配塊后,計算出預(yù)測宏塊與當(dāng)前宏塊的殘差。需要注意的是,在進行預(yù)測的時候使用的并非之前幀的原始圖像,而是其編碼后重構(gòu)得到的重構(gòu)圖像。這是因為在解碼的時候,解碼器不可能得到任何一幀原始圖像,只能
90、利用編碼后的圖像進行重構(gòu),再利</p><p> 幀間編碼模塊劃可以分為模式確定和預(yù)測編碼兩部分??紤]到預(yù)測模式對碼流大小和編碼效率的重要影響,課題組采用了跳過模式提前中止策略,使幀率提高約20%,同時減小了碼流。運動搜索是整個代碼中最耗時的部分,占總體運算量的50%以上,因此對運動搜索算法的優(yōu)化非常重要。用改進的菱形搜索法代替全搜索,簡化了搜索過程,大大減小了塊匹配的運算量,與全搜索方式相比提高搜索速度40倍
91、,而搜索效果只比全搜索略有降低。在做運動估計時,采用了SAD最小準(zhǔn)則和SATD最小準(zhǔn)則相結(jié)合的最佳匹配策略,整像素點搜索使用SAD最小準(zhǔn)則,而分像素點使用SATD最小準(zhǔn)則。一般而言,離最優(yōu)匹配點越遠(yuǎn),匹配誤差值SAD越大,這就是有名的單一平面假設(shè),現(xiàn)有的運動估計快速算法大都利用該特性。但是,經(jīng)哈達瑪變換后的SATD值并不滿足該條件,如果在整像素中運用SATD搜索,容易陷入局部最優(yōu)點。而在亞像素中,待搜索點不多,各點處的SAD差異相對不大
92、,可以用SATD選擇碼流較少的匹配位置。</p><p> 代碼中實現(xiàn)亮度幀間預(yù)測的函數(shù)是AVS encode_ inter_ y(AVS_ t*t),它主要調(diào)用的子函數(shù)是;模式判別函數(shù)AVS_ mode_ decision_inter y(AVS_ t*t,AVS_search_t*s),運動矢量搜索函數(shù)AVS_ search(AVS_t* t,AVS_search_ context_t*context)和分
93、像素差值函數(shù)AVS_interpo1ate(AVS_t* t)。實現(xiàn)色度幀間預(yù)測的函數(shù)是AVS_encode_inter_uV(AVS—t*t)。</p><p> 3.1.1 運動估計與運動補償</p><p> 視頻序列的時間相關(guān)性一般很強,也就是說圖像中只有一少部分的物體運動的幅度不大,即同一場景相鄰的兩幀之間在內(nèi)容上的差異不會太大,因此編碼端不需要將相關(guān)視頻圖像的所有像素信息
94、都傳送給解碼端,只需要傳送一部分差異信息即運動物體的運動信息,解碼器能夠根據(jù)已經(jīng)恢復(fù)出來的前一幀圖像以及差異信息恢復(fù)出當(dāng)前幀圖像,此即通常所說的幀間預(yù)測。如何從序列圖像中準(zhǔn)確提取有關(guān)物體運動的信息稱為運動估計(Motion Estimation),其表達方式是運動矢量(Motion Vector)。運動估計研究的主要內(nèi)容就是怎樣快速、有效的獲得足夠精度的運動矢量,這也是幀間預(yù)測算法研究中的主要內(nèi)容。把前一幀相應(yīng)的運動部分信息根據(jù)運動矢量
95、補償?shù)倪^程稱為運動補償(Motion Compensation)。圖3-1是一個典型的運動估計和運動補償?shù)脑韴D。運動估計模塊是在一定的匹配準(zhǔn)則下從一個或多個參考幀中尋找最佳匹配幀:運動補償則是將匹配幀與當(dāng)前幀相減,將得到的殘差經(jīng)過編碼和變換量化之后攜帶相應(yīng)運動信息傳輸?shù)浇獯a端。解碼端就可以根據(jù)這個殘差和運動信息重構(gòu)當(dāng)前幀。由于存在精度誤差,重構(gòu)幀和先前編碼幀有所不同。在編碼端同時也形成</p><p> 圖3
96、-1 運動估計與運動補償原理圖</p><p> 運動估計按搜索單元的大小可以分為全局運動估計、基于像素點的運動估計、基于塊的運動估計、基于區(qū)域的運動估計和基于網(wǎng)格的運動估計;按照搜索域的不同可以分為時域運動估計和頻域運動估計。其中,基于塊的運動估計(塊匹配法)和基于像素點的運動估計(像素遞歸法)得到了廣泛應(yīng)用。塊匹配算法相對簡單,壓縮效率高,易于硬件實現(xiàn),被廣泛應(yīng)用于實際活動圖像壓縮編碼系統(tǒng)中。這種方法只對
97、圖像進行簡單的塊分割,并假定子塊內(nèi)的所有像素位移相同。</p><p> 像素遞歸法是根據(jù)像素間亮度的變化和梯度,通過遞歸修正的方法來估計每個像素運動矢量。每個像素都有1個運動矢量與之對應(yīng)。為了提高壓縮比,不可能將整個運矢量場編碼傳輸,而接收端解碼進行幀間運動補償必須有這樣1個運動矢量。解決這矛盾的方法就是讓解碼端以發(fā)送端同樣條件,用相同的方法進行運動估計。由于此時用已解碼的信息,因此無須傳送運動矢量場。這種方
98、法需要將圖像分割為靜止的背和若干運動的物體,并且接收端較復(fù)雜,不利于一發(fā)多收。但這種方法運動估計精度可以滿足運動補償幀內(nèi)內(nèi)插的要求。</p><p> 3.1.2 選擇匹配塊的大小</p><p> 匹配塊大小的選擇對于匹配準(zhǔn)確性至關(guān)重要:匹配塊選取過大則破壞了塊內(nèi)各像素同平移運動的假設(shè),降低匹配準(zhǔn)確度;反之,選取過小則容易收到噪聲的干擾,使估計不夠可靠。特別是當(dāng)匹配塊選取得很小時,會
99、導(dǎo)致運動估計的運動矢量增加,率降低且編碼復(fù)雜性上升。綜合考慮這些因素,一般以16x16數(shù)據(jù)塊(宏塊)作為的匹配單元。</p><p> 3.1.3 匹配準(zhǔn)則</p><p> 常見的運動估計匹配準(zhǔn)則有三種:MAD、MSE和NCCF,由于MAD沒有乘除操作不需要做乘法運算易于在硬件上實現(xiàn),所以使用較多。通常使用求和絕對誤差SAD代替MAD。</p><p><
100、;b> ?。ü?-1)</b></p><p> 3.1.4 搜索模式</p><p> 搜索模式是運動估計中最關(guān)鍵也是最復(fù)雜的部分。一般情況下,視頻編碼壓縮標(biāo)準(zhǔn)定搜索模式,也就是說可以根據(jù)實際需要選取適合研究課題的搜索方法。選取的原般是在圖像質(zhì)量和算法復(fù)雜度之間權(quán)衡。下面簡單介紹幾種常用的搜索算法,該部容將在本章第三節(jié)做更為詳細(xì)的介紹。</p>
101、<p><b> 1、全搜索方法</b></p><p> 該方法對搜索區(qū)域的所有位置進行窮盡搜索。特點:精度高,但計算復(fù)雜,所以必須研究相應(yīng)的運動估計快速搜索方法。</p><p><b> 2、快速搜索方法</b></p><p> 快速方法主要分為以下幾種:</p><p>
102、 A.多分辨率或分層的快速塊匹配方法——用低分辨率塊的運動矢量預(yù)測較高分辨率塊的運動矢量,或者用同一分辨率下大尺寸塊的運動矢量預(yù)測其內(nèi)部子塊的運動矢量,并在后續(xù)搜索中進一步修正。缺點:構(gòu)造多層/多分辨率圖像有較大的計算復(fù)雜度,且內(nèi)存需求較大。</p><p> B.降低匹配準(zhǔn)則復(fù)雜度的快速塊匹配方法——該類方法比較特別,不會減少搜索點數(shù),而是著眼于匹配準(zhǔn)則(一般為SAD)計算復(fù)雜度的降低。因而常常用于全搜索算
103、法的快速實現(xiàn)。</p><p> C.固定搜索模式的快速塊匹配方法——該方法假設(shè)匹配誤差隨著遠(yuǎn)離全局誤差最小點的距離單調(diào)增加。一般從原點開始采用固定的搜索模板和搜索策略得到最佳匹配塊。著名的算法有:三步法、梯度下降法、四步法、菱形法、六邊形法等。該算法的主要缺點是:沒有利用圖像本身的相關(guān)信息,不能根據(jù)物體運動的劇烈程度自適應(yīng)地改變搜索起點和搜索半徑。針對這些不足,近幾年人們通過對序列圖像的時空相關(guān)性和人眼視覺特
104、性的研究提出許多改進方法,如預(yù)測搜索起點、設(shè)定終止條件、改進搜索模板以及宏塊運動類型的預(yù)判別等。本文主要討論這些方法。</p><p> 3.2 AVS標(biāo)準(zhǔn)中的幀間預(yù)測</p><p> AVS編碼算法主要利用己編碼的幀/場通過基于塊的運動補償進行編碼。其中涉及的主要內(nèi)容有以下幾個方面。</p><p> 3.2.1 參考圖像的選擇</p>
105、<p> AVS標(biāo)準(zhǔn)中規(guī)定:參考圖像不應(yīng)該超過兩幀,且應(yīng)該是最近解碼的I或P幀。參考索引值用來確定對當(dāng)前圖像進行解碼處理所用的參考圖像。參考圖像的兩場可有不同的參考索引值,因此參考圖像的取值范圍為0~3。參考索引值隨著參考圖像與當(dāng)前圖像距離(顯示順序)的增加而增大。索引值為0的參考圖像與當(dāng)前圖像的距離最近,索引值為3的圖像距離最遠(yuǎn),兩個方向單獨處理。</p><p> 3.2.2 分像素插值算法
106、</p><p> 1、亮度樣本插值過程</p><p> 在AVS算法中,支持1/4像素精度的運動矢量運動估計,因此需要進行半像素插值和四分之一像素插值。圖3-2給出了參考圖像整數(shù)樣本、1/2樣本和1/4樣本的位置,其中用大寫字母標(biāo)記的為整數(shù)樣本位置,用小寫字母標(biāo)記的為1/2和1/4樣本位置。二分之一樣本位置的預(yù)測值通過4抽頭濾波器F1(-1,5,5,-1)/8計算得到。四分之一樣本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- AVS視頻編碼中幀間預(yù)測算法及全零塊檢測研究.pdf
- AVS視頻編碼中幀內(nèi)預(yù)測模塊的硬件實現(xiàn).pdf
- 片內(nèi)云架構(gòu)下AVS編碼P幀的硬件實現(xiàn).pdf
- 視頻編碼中快速幀間編碼算法的研究.pdf
- AVS-s視頻編碼器幀內(nèi)預(yù)測模塊和變換量化模塊硬件設(shè)計.pdf
- AVS視頻編碼器優(yōu)化及算法研究.pdf
- 視頻編碼幀內(nèi)預(yù)測算法研究.pdf
- AVS視頻編碼標(biāo)準(zhǔn)的幀間預(yù)測算法的研究及其在DSP上的實現(xiàn).pdf
- 視頻編碼幀間預(yù)測技術(shù)算法優(yōu)化研究.pdf
- AVS視頻編碼并行算法的研究與實現(xiàn).pdf
- AVS2編碼幀內(nèi)預(yù)測模式的快速選擇算法研究.pdf
- 新一代視頻編碼的幀間快速編碼算法.pdf
- AVS1-P2快速幀內(nèi)預(yù)測算法的研究.pdf
- AVS幀內(nèi)預(yù)測解碼算法的硬件化設(shè)計與驗證.pdf
- 多視點視頻編碼快速算法研究【開題報告+文獻綜述+畢業(yè)設(shè)計】
- 達芬奇平臺實時實現(xiàn)AVS(D1)系統(tǒng)——幀間編碼算法.pdf
- 達芬奇平臺實時實現(xiàn)AVS(D1)系統(tǒng)——幀內(nèi)編碼算法.pdf
- AVS視頻編碼模式判決算法優(yōu)化與實現(xiàn).pdf
- AVS視頻編碼器優(yōu)化及模式選擇算法研究.pdf
- AVS音頻編碼算法研究.pdf
評論
0/150
提交評論