基于DSP和FPGA的視頻編碼器硬件平臺1

2013-08-27 14:55 來源:電子信息網(wǎng) 作者:和靜

隨著寬帶Internet的快速發(fā)展和電子設(shè)備計算能力的迅速提高,在Internet上實時傳輸高清晰度視頻信息成為可能,以Internet為傳輸媒介的視頻會議、視頻監(jiān)控、Internet電視臺等視頻應(yīng)用方興未艾。這些應(yīng)用的一個共同特點是,都需要一個高性能的實時視頻編碼器,特別是高分辨率的視頻應(yīng)用給視頻編碼器的計算能力提出了很高的要求。例如,一幅720×576的4∶2∶2視頻格式的畫面,包含有3240個16×16的YUV宏塊(MacroBlock,即MB)。如果該視頻幀按照P幀或者B幀進行壓縮,那么每一個YUV宏塊都要進行運動估計、運動補償、DCT(Discrete Cosine Transform)/反DCT變換、量化/反量化和VLC(Variable Length Coding)等環(huán)節(jié)的運算。如果進行實時壓縮(每秒鐘壓縮25幀)的話,大致需要316~5GIPS(Instruction persecond)的計算能力。

目前,單一的CPU/DSP一般還不具備這樣的計算能力。為了解決高清晰畫面的實時視頻壓縮問題,本文提出了DSP和FPGA(Field Pro-grammable Gate Array)協(xié)同設(shè)計方案。使用FPGA完成視頻采集、YUV(視頻亮度Y、色度分量

UV)分離、數(shù)據(jù)I/O(Input/Output)等所有周邊功能,使用高性能的DSP進行視頻壓縮編碼,因而在視頻編碼器內(nèi)DSP和FPGA能夠進行流水操作,有效地提高了編碼器的性能。

為了降低算法的計算復(fù)雜度,本文提出了基于宏塊空間復(fù)雜度的宏塊編碼類型判別算法(MTJBSC)。在標準MPEG24視頻運動估計算法中,判別宏塊的編碼類型是通過計算當前宏塊內(nèi)像素值方差和參考宏塊與當前宏塊之間的方差來實現(xiàn)的,因此計算量很大。MTJBSC算法首先計算出當前宏塊的空間負責度(MBC),然后通過比較當前宏塊的MBC與SAD(Sum of Absolute Difference)值來判斷當前宏塊的編碼類型,大大降低了算法的計算復(fù)雜度。

1 硬件設(shè)計方案

基于TI公司的圖像開發(fā)工具包(Imaging Developer Kit,即IDK)[2]架構(gòu),設(shè)計了視頻編碼器的硬件平臺。從整體上來講,視頻編碼器的硬件實現(xiàn)由DSP和FPGA兩個模塊組成,其邏輯框圖如圖1所示。由于視頻壓縮編碼計算量很大,為了盡可能提高視頻壓縮幀率,由DSP專門負責視頻壓縮編碼,而視頻采集、YUV轉(zhuǎn)換和編碼器I/O接口等其它功能則交由FPGA模塊來實現(xiàn)。

1

如圖1所示,用戶控制命令(例如視頻壓縮模式)由FPGA模塊首先截獲,然后FPGA模塊向DSP模塊產(chǎn)生外部中斷,DSP在響應(yīng)中斷時讀取存儲在FPGA中的用戶控制命令字,然后DSP解析命令字,并根據(jù)用戶要求的視頻格式、幀圖像分辨率和視頻壓縮碼流速率進行視頻壓縮編碼。

基于DSP和FPGA設(shè)計的視頻編碼器硬件平臺(二)

1 2 > 
DSP FPGA

相關(guān)閱讀

暫無數(shù)據(jù)

一周熱門