基于DSP的實時圖像處理系統(tǒng)
但是DMA 只適合于數(shù)據(jù)塊的整體搬移,對于不同數(shù)據(jù)結(jié)構間的數(shù)據(jù)傳輸,前DSP 的DMA 控制器就無能為力了。所以可以借助ARM7控制DSPDMA 來完成視頻編碼中復雜的數(shù)據(jù)傳輸。
完成編碼后的視頻數(shù)據(jù)通過ARM7來進行和外界的傳輸,可以通過Internet、 CDMA或者GSM網(wǎng)絡等,只需要ARM7設計相應的傳輸接口即可。至于ARM7與編碼卡通信可以通過并口、串口、USB口、PCI接口等方式實現(xiàn)。其中PCI 接口方式易于ARM7與編碼器高速傳輸數(shù)據(jù),因此可以采用PCI接口。編碼后的數(shù)據(jù)通過DSP的HPI、PCI橋芯片、PCI總線到達ARM7。ARM7通過DSP的HPI直接對DSP的存儲空間進行訪問。
3 軟件設計及優(yōu)化
3.1 視頻采集
本系統(tǒng)在視頻采集中設計了一個數(shù)據(jù)結(jié)構將空間連續(xù)的先行緩沖區(qū)轉(zhuǎn)化為一個環(huán)形的緩沖區(qū),其簡單的示意圖如圖4所示。
采用此方法只要為這個緩沖區(qū)分配足夠大的空間,使其中存放的圖像幀的數(shù)目至少大于3,這樣就可以保證在對圖像數(shù)據(jù)進行處理的同時還可以同步進行新的圖像數(shù)據(jù)的采集,而不會發(fā)生任何數(shù)據(jù)沖突。系統(tǒng)將會永遠保留環(huán)形緩沖區(qū)中最舊的N幀圖像直至被系統(tǒng)取走。
3.2 視頻編碼
MPEG-4的視頻編碼是基于對象的視頻編碼,它仍然采用傳統(tǒng)的預測編碼、運動補償、DCT變換構成的混合編碼方式。編碼器的核心算法包括運動估計、DCT/IDCT、量化、VLC 等,其中運動估計占據(jù)整個編碼器近四分之一的運算量。因此,研究適合DSP 結(jié)構的、在速度和編碼質(zhì)量之間具有良好折中的運動估計算法是實現(xiàn)實時編碼的一個關鍵問題。
在視頻編碼中應該采用塊匹配的運動估計算法,但傳統(tǒng)的塊匹配算法在匹配速度上達不到滿意的效果,因此本系統(tǒng)采用了在三步搜索算法的基礎上改進的四步搜索的塊匹配算法。
四步搜索算法描述如下:
(1)搜索匹配點組成一個菱形窗口,如圖5所示。初始的9個匹配點為菱形的4個頂點、4條邊的中點及菱形的中心點,如圖5中的實心點。對每個點計算SAD的值,選取SAD最小的點。如果該點是此次搜索窗口的中心則跳到第4步,否則到第2步。
圖5 四步搜索算法示意圖
(2)以SAD最小的點為新的菱形匹配點窗口的中心點,其余的匹配點的選取按下面的原則進行。
a)如果SAD最小的點是當前搜索窗口的角上的點,如A點,則取與A點不相鄰的另外5個點,如圖5中的形如的點。選取SAD最小的點,并到第3步;
b)如果SAD最小的點是當前搜索窗口的邊上的點,如B點,則取與B點不相鄰的另外3個點,如圖5中的形如的點。選取SAD最小的點,并到第3步;
c)如果SAD最小的點是當前搜索窗口的中心點C點,則到第4步;
(3)搜索模式同2,最后都到第4步。
評論