本文設(shè)計(jì)了基于TMS320C6000系列DSP的MPEG-4編碼器。將攝像頭獲取的圖像以MPEG-4標(biāo)準(zhǔn)進(jìn)行實(shí)時(shí)壓縮并通過VGA實(shí)時(shí)顯示,同時(shí)把壓縮好的數(shù)據(jù)通過PCI總線傳輸給ARM控制器,經(jīng)由ARM根據(jù)實(shí)際的需要進(jìn)行視頻數(shù)據(jù)的網(wǎng)絡(luò)傳輸。
C6000系列DSP是TI公司生產(chǎn)的高檔DSP。這一系列DSP都是基VelociTITM構(gòu)架的VLIW DSP,它在每個(gè)周期可以執(zhí)行八條32bit 的指令, 具有高達(dá)200MHZ的CPU,從而使得其運(yùn)算能力達(dá)到1600MIPS。而6416在600MHz主頻下,只利用50%的運(yùn)算能力就可以同時(shí)進(jìn)行單通道MPEG-4視頻編碼、單通道MPEG-4視頻解碼和單通道MPEG-2視頻編碼的處理。同時(shí)其對外接口靈活、開發(fā)工具齊全,被大多數(shù)嵌入式圖像實(shí)時(shí)壓縮系統(tǒng)所采用。因此本系統(tǒng)采用TI公司TMS320C6416芯片為核心處理器。
其中ARM7的作用是時(shí)鐘的產(chǎn)生及控制視頻采集芯片,將采得的數(shù)據(jù)從8位或16位轉(zhuǎn)化為32位,并且使數(shù)據(jù)按照Y、U、V分開的方式排列。這樣相當(dāng)于對采集到的數(shù)據(jù)進(jìn)行了一次預(yù)處理,以便于視頻編碼使用。另外ARM7將32位寬的數(shù)據(jù)輸出給32位的FIFO。用32位的FIFO以及將視頻數(shù)據(jù)轉(zhuǎn)換為32位,可以使DSP讀取視頻數(shù)據(jù)時(shí)32位的數(shù)據(jù)總線沒有空閑,從而提高DSP讀取視頻數(shù)據(jù)的效率;這里使用FIFO是為了減少DSP讀取數(shù)據(jù)的時(shí)間、降低高速設(shè)備和低速設(shè)備的不匹配。每次FIFO半滿時(shí),ARM7會(huì)給DSP發(fā)送中斷信號, 并且在中斷處理程序中使用DMA方式讀取視頻數(shù)據(jù);如果不使用ARM7,DSP會(huì)頻繁中斷,從而花費(fèi)大量時(shí)間在入棧、出棧以及寄存器的設(shè)置上。
但是DMA 只適合于數(shù)據(jù)塊的整體搬移,對于不同數(shù)據(jù)結(jié)構(gòu)間的數(shù)據(jù)傳輸,前DSP 的DMA 控制器就無能為力了。所以可以借助ARM7控制DSPDMA 來完成視頻編碼中復(fù)雜的數(shù)據(jù)傳輸。
完成編碼后的視頻數(shù)據(jù)通過ARM7來進(jìn)行和外界的傳輸,可以通過Internet、 CDMA或者GSM網(wǎng)絡(luò)等,只需要ARM7設(shè)計(jì)相應(yīng)的傳輸接口即可。至于ARM7與編碼卡通信可以通過并口、串口、USB口、PCI接口等方式實(shí)現(xiàn)。其中PCI 接口方式易于ARM7與編碼器高速傳輸數(shù)據(jù),因此可以采用PCI接口。編碼后的數(shù)據(jù)通過DSP的HPI、PCI橋芯片、PCI總線到達(dá)ARM7。ARM7通過DSP的HPI直接對DSP的存儲空間進(jìn)行訪問。