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