基于FPGA的幀內(nèi)預(yù)測(cè)編碼器硬件架構(gòu)設(shè)計(jì)詳解_第1頁
基于FPGA的幀內(nèi)預(yù)測(cè)編碼器硬件架構(gòu)設(shè)計(jì)詳解_第2頁
基于FPGA的幀內(nèi)預(yù)測(cè)編碼器硬件架構(gòu)設(shè)計(jì)詳解_第3頁
基于FPGA的幀內(nèi)預(yù)測(cè)編碼器硬件架構(gòu)設(shè)計(jì)詳解_第4頁
基于FPGA的幀內(nèi)預(yù)測(cè)編碼器硬件架構(gòu)設(shè)計(jì)詳解_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于FPGA的幀內(nèi)預(yù)測(cè)編碼器硬件架構(gòu)設(shè)計(jì)詳解針對(duì)幀內(nèi)預(yù)測(cè)的快速算法,由于DSP架構(gòu)軟件順序執(zhí)行的局限性難以滿足實(shí)時(shí)性要求,而FPGA以其高速的計(jì)算速度和強(qiáng)大的并行處理能力成為H.264和AVS編解碼的理想平臺(tái)。本文在FPGA平臺(tái)上采用資源共享、高并行和多流水線結(jié)構(gòu)實(shí)現(xiàn)了亮度幀內(nèi)預(yù)測(cè)算法。該方法在分析AVS幀內(nèi)亮度5種預(yù)測(cè)模式的基礎(chǔ)上,將像素預(yù)測(cè)與模式判決在一個(gè)模塊中完成,并且利用各模式預(yù)測(cè)的相似性,實(shí)現(xiàn)運(yùn)算單元共享和多種模式并行執(zhí)行,兼顧了處理速度和實(shí)現(xiàn)代價(jià)。仿真及綜合結(jié)果表明該設(shè)計(jì)能夠完全滿足標(biāo)清(704×576,30f/s)數(shù)字視頻的實(shí)時(shí)處理要求。AVS(AudioVideoCodingStandard)標(biāo)準(zhǔn),是《信息技術(shù)—先進(jìn)音視頻編碼》系列標(biāo)準(zhǔn)的簡(jiǎn)稱,是由我國(guó)自主提出的數(shù)字音視頻編解碼技術(shù)標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)達(dá)到了當(dāng)前國(guó)際先進(jìn)水平。AVS具有以下優(yōu)點(diǎn):(1)性能高,編碼效率是MPEG2的2倍以上,與H.264的編碼效率處于同一水平;(2)復(fù)雜度低,算法復(fù)雜度比H.264明顯低,軟硬件實(shí)現(xiàn)成本都低于H.264;(3)我國(guó)掌握主要知識(shí)產(chǎn)權(quán),專利授權(quán)模式簡(jiǎn)單,費(fèi)用低。AVS視頻標(biāo)準(zhǔn)制定的目標(biāo)是:適應(yīng)數(shù)字電視廣播、數(shù)字存儲(chǔ)媒體、因特網(wǎng)流媒體、多媒體通信等應(yīng)用中對(duì)運(yùn)動(dòng)圖像壓縮技術(shù)的需要,這就對(duì)編碼的實(shí)時(shí)性提出了很高的要求。幀內(nèi)預(yù)測(cè)是AVS編解碼中很重要的部分,其原理是利用圖像內(nèi)部相鄰像素間的相關(guān)性來降低編碼碼率,也就是通過減少空間冗余度來達(dá)到壓縮的目的。視頻編碼器幀內(nèi)預(yù)測(cè)部分的硬件架構(gòu)設(shè)計(jì)方案一般分為兩種。第一種是基于可重構(gòu)硬件電路的設(shè)計(jì)。這種電路結(jié)構(gòu)設(shè)計(jì)思想是根據(jù)幀內(nèi)預(yù)測(cè)各模式算法上的相似性,設(shè)計(jì)出能夠處理所有預(yù)測(cè)模式的可重構(gòu)的運(yùn)算單元。該運(yùn)算單元可根據(jù)預(yù)測(cè)模式的不同對(duì)輸入的數(shù)據(jù)選擇相應(yīng)的數(shù)據(jù)通路,從而達(dá)到資源的最優(yōu)化利用。由于該電路結(jié)構(gòu)是逐個(gè)處理各個(gè)模式的預(yù)測(cè),因此其缺點(diǎn)是處理速度慢。第二種設(shè)計(jì)方案是將具有相同預(yù)測(cè)值求解算法的預(yù)測(cè)模式共用同一個(gè)預(yù)測(cè)器,以優(yōu)化資源利用,文獻(xiàn)采用了這種設(shè)計(jì)方案。本文參考第二種設(shè)計(jì)方案,提出了一種基于資源共享以及并行流水[7]的幀內(nèi)預(yù)測(cè)編碼器硬件架構(gòu)。1AVS幀內(nèi)預(yù)測(cè)模塊算法原理AVS的幀內(nèi)預(yù)測(cè)分為亮度(1uma)和色度(chroma)預(yù)測(cè)兩種,都是以8x8的塊為單位進(jìn)行預(yù)測(cè)的。其中,亮度預(yù)測(cè)包括33個(gè)參考像素點(diǎn),有5種預(yù)測(cè)模式(如圖1所示),Vertical預(yù)測(cè)模式、Horizontal預(yù)測(cè)模式、DC預(yù)測(cè)模式、Down_Left預(yù)測(cè)模式和Down_Right預(yù)測(cè)模式。圖1標(biāo)示了AVS幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)方向,標(biāo)號(hào)的對(duì)應(yīng)關(guān)系為:Vertical模式(模式值為0)、Horizontal模式(模式值為1)、DC模式(模式值為2)、Down_Left模式(模式值為3)、Down_Right(模式值為4)。色度預(yù)測(cè)包括17個(gè)參考像素點(diǎn),有4種預(yù)測(cè)模式,分別為:DC模式(模式值為0)、Horizontal模式(模式值為1)、Vertical模式(模式值為2)和Plane模式(模式值為3)。其中,DC模式、Horizontal模式、Vertical模式與亮度預(yù)測(cè)算法相同。AVS的幀內(nèi)預(yù)測(cè)模塊子塊級(jí)主要包括像素值預(yù)測(cè)和模式判決兩部分,實(shí)現(xiàn)的功能主要是在給出當(dāng)前塊的左邊像素,左上像素以及上邊像素的情況下按照各種模式預(yù)測(cè)的方法得到當(dāng)前塊的預(yù)測(cè)像素值。AVS編碼標(biāo)準(zhǔn)采用了計(jì)算預(yù)測(cè)塊和原始?jí)K之間的SAD來尋找最合適的預(yù)測(cè)模式的方法。編碼器將所有的預(yù)測(cè)模式遍歷一遍,算出所有模式對(duì)應(yīng)的SAD值,取其中擁有最小SAD的模式作為最終選擇的模式。2幀內(nèi)預(yù)測(cè)硬件設(shè)計(jì)與實(shí)現(xiàn)2.1幀內(nèi)預(yù)測(cè)模塊硬件設(shè)計(jì)方案設(shè)計(jì)中,Blockjudge子模塊的功能是由系統(tǒng)計(jì)數(shù)的BlockNum變量判斷當(dāng)前塊在一幀圖像中的位置,從而決定當(dāng)前塊的相鄰塊邊緣像素的可用性。由圖2可知,在給定輸入數(shù)據(jù)的情況下,多種模式并行掛起,由于預(yù)測(cè)是按一個(gè)時(shí)鐘預(yù)測(cè)一個(gè)像素進(jìn)行的,在預(yù)測(cè)完一個(gè)像素就進(jìn)計(jì)算一次絕對(duì)誤差計(jì)算,然后預(yù)測(cè)完下一個(gè)就將誤差累加,最終預(yù)測(cè)完成,SAD的計(jì)算也完成。模式判決模塊完成的是在SAD計(jì)算完后比較得出各模式下的SAD最小值,按其對(duì)應(yīng)的預(yù)測(cè)模式即最佳預(yù)測(cè)模式選擇輸出對(duì)應(yīng)的預(yù)測(cè)數(shù)據(jù)。可見整個(gè)過程是多個(gè)模式并行,并且共享公共運(yùn)算單元,單個(gè)模式多級(jí)流水,從而提高資源利用率。2.2亮度預(yù)測(cè)模塊的VHDL實(shí)現(xiàn)幀內(nèi)亮度預(yù)測(cè)模塊的VHDL實(shí)現(xiàn)主要涉及到四部分:讀寫數(shù)據(jù)單元,運(yùn)算單元,數(shù)據(jù)比較單元,輸出單元。這四個(gè)部分分別對(duì)應(yīng)于狀態(tài)機(jī)(亮度幀內(nèi)預(yù)測(cè)模塊狀態(tài)機(jī)如圖3所示)的streceive、stcalculate、stcompare和sttrans狀態(tài)。狀態(tài)之間的轉(zhuǎn)換通過狀態(tài)計(jì)數(shù)器完成,預(yù)測(cè)輸出數(shù)據(jù)用于與當(dāng)前塊數(shù)據(jù)做殘差供DCT使用,最佳模式輸出供熵編碼寫碼流。系統(tǒng)的起始狀態(tài)是stidle狀態(tài),當(dāng)使能en置1時(shí)轉(zhuǎn)到streceive狀態(tài);streceive狀態(tài)將接收的數(shù)據(jù)(總共接收97個(gè)數(shù)據(jù),前64個(gè)是8x8塊的原始數(shù)據(jù),后33個(gè)是參考數(shù)據(jù))分別暫存到RAM00和RAM11中,RAM00中存儲(chǔ)的當(dāng)前塊數(shù)據(jù)用于與各種模式預(yù)測(cè)值進(jìn)行SAD運(yùn)算,RAM11中的數(shù)據(jù)用于得出預(yù)測(cè)數(shù)據(jù),同時(shí)在該狀態(tài)存儲(chǔ)預(yù)測(cè)模式V和H需要的參考數(shù)據(jù);當(dāng)使能en置0時(shí)進(jìn)入stcalculate狀態(tài),在stcalculate狀態(tài)將33個(gè)參考數(shù)據(jù)中相鄰的三個(gè)數(shù)據(jù)按(a+2b+c+2)》》2低通濾波,得到31個(gè)預(yù)測(cè)數(shù)據(jù)。并且存儲(chǔ)DDR模式,DDL模式,DC_LEFT模式和DC_TOP模式需要的預(yù)測(cè)數(shù)據(jù)。在stm4狀態(tài)讀取DC_LEFT和DC_TOP的預(yù)測(cè)數(shù)據(jù)d和e,同時(shí)進(jìn)行運(yùn)算(d+e)》》1得到f,將f進(jìn)行限幅運(yùn)算clip(f),從而得到DC模式的預(yù)測(cè)值并將其存儲(chǔ);同時(shí)完成的有V,H,DDL,DDR的模式預(yù)測(cè)。預(yù)測(cè)過程按單像素進(jìn)行,即串行輸入串行輸出,SAD的計(jì)算通過SAD《=SAD+ABS(a-b)累加完成。各種模式下2個(gè)時(shí)鐘完成一個(gè)像素值的存儲(chǔ)和絕對(duì)差值的計(jì)算;系統(tǒng)在stcompare狀態(tài)通過冒泡排序法得到SAD最小值minSAD,其對(duì)應(yīng)的模式即為最佳預(yù)測(cè)模式;sttrans狀態(tài)完成最佳預(yù)測(cè)模式以及對(duì)應(yīng)的預(yù)測(cè)值輸出。各種模式實(shí)現(xiàn)過程中的公共單元:主要運(yùn)算單元:l《=(a+b+b+c+2)》》2;SAD《=SAD+ABS(a-b);讀寫數(shù)據(jù)單元:V,DC_TOP是將8個(gè)值按列賦值得到64個(gè)數(shù)據(jù);H,DC_LEFT是將8個(gè)值按行賦值得到64個(gè)數(shù)據(jù);DDL,DDR是將15個(gè)值按照循環(huán)移位的方式給行賦值得到64個(gè)數(shù)據(jù),都是通過循環(huán)嵌套計(jì)數(shù)器來完成。色度預(yù)測(cè)的狀態(tài)圖與亮度類似,只是輸入的參考數(shù)據(jù)是17個(gè)。Plane模式預(yù)測(cè)實(shí)現(xiàn)比較復(fù)雜,在給出輸入數(shù)據(jù)的情況下有一個(gè)預(yù)處理的過程,運(yùn)算量較大,預(yù)處理過程中得到的中間結(jié)果需要判斷正負(fù)號(hào),而且涉及到左移四位右移五位的運(yùn)算,因此數(shù)據(jù)位寬需要擴(kuò)展至16位,最終的符號(hào)位才不會(huì)被移走,負(fù)數(shù)在運(yùn)算的過程中以補(bǔ)碼的形式存在,所以若符號(hào)位為1則在右移后高位補(bǔ)1,反之則補(bǔ)0。3實(shí)驗(yàn)結(jié)果本文設(shè)計(jì)是以8×8塊為單元,采用VHDL硬件描述語言實(shí)現(xiàn)了幀內(nèi)像素值預(yù)測(cè)以及模式判決模塊。設(shè)計(jì)中所采用的硬件處理平臺(tái)是Xilinx公司的VidexII系列FPGAxc2vp20,整個(gè)設(shè)計(jì)在ISE10.1環(huán)境下進(jìn)行。3.1功能仿真結(jié)果仿真過程中我們將預(yù)測(cè)輸出內(nèi)容存儲(chǔ)到Pre_RAM中,在每個(gè)子塊預(yù)測(cè)結(jié)束時(shí)打印至文本文件,同時(shí)將相同的視頻碼流加入到我們采用的軟件模型并打印與我們仿真相應(yīng)的部分內(nèi)容,將兩者進(jìn)行比較。至模塊完成時(shí),已成功完成一個(gè)完整視頻碼流的數(shù)據(jù)對(duì)比,結(jié)果完全相同。3.2時(shí)序仿真結(jié)果與功能仿真一樣,我們將Pre_RAM中存儲(chǔ)的內(nèi)容在每個(gè)塊預(yù)測(cè)結(jié)束時(shí)打印至文本文件,同時(shí)將相同的視頻碼流加入到我們采用的軟件模型并打印與我們仿真相應(yīng)的部分內(nèi)容,將兩者進(jìn)行比較,結(jié)果也完全相同。由于篇幅限制圖4僅給出了與圖5對(duì)應(yīng)的同一亮度塊在軟件模型中的內(nèi)存數(shù)據(jù),8x8亮度塊預(yù)測(cè)的仿真結(jié)果如圖5所示,圖中顯示的當(dāng)前狀態(tài)是stm4,stcompare和sttrans,其中sum_v,sum_h,sum_dc,sum_dc_left,sum_dc_top,sum_ddl,sum_ddr分別表示各對(duì)應(yīng)模式下的SAD值,log表示最佳預(yù)測(cè)模式,dataout表示最佳預(yù)測(cè)值,對(duì)比可知二者結(jié)果一致。3.3綜合資源利用情況如圖6所示,整個(gè)預(yù)測(cè)過程占用了328個(gè)時(shí)鐘周期。而系統(tǒng)時(shí)鐘頻率在100MHZ的情況下要達(dá)到實(shí)時(shí)時(shí)鐘周期需要控制在526之內(nèi),顯然仿真結(jié)果表明該硬件結(jié)構(gòu)完全滿足標(biāo)清AVS視頻實(shí)時(shí)編碼要求。4結(jié)束語本文將AVS幀內(nèi)亮度預(yù)測(cè)模塊的像素值預(yù)測(cè)和模式判決結(jié)合到

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論