基于DSP和FPGA的實時圖像壓縮系統(tǒng)設計
實現(xiàn)這個功能的方法是采用EDMA ping_pong方式。在DSP中使用hEdmaPing和hEdmaPong雙通道EDMA并建立PingBuffer和PongBuffer兩個數(shù)據(jù)存儲區(qū)。 當寫完1幀圖像后,FPGA發(fā)送EXTINT4中斷信號啟動hEdmaPing將數(shù)據(jù)搬移到PingBuffer,同時將通道鏈接至hEdmaPong。在下一個中斷事件發(fā)生時將數(shù)據(jù)搬移到PongBuffer中,CPU在hEdmaPong通道完成中斷服務程序中鏈接hEdmaPing通道。如此往復,使系統(tǒng)數(shù)據(jù)搬移和處理連續(xù)進行。
3.2 DSP/BIOS調(diào)度程序設計
僅僅采用EDMA乒乓方式進行EDMA數(shù)據(jù)傳輸還是不夠的,不能實現(xiàn)數(shù)據(jù)的采集和壓縮同時進行,還需要DSP/BIOS調(diào)度程序。在任務、硬件中斷、軟件中斷中進行調(diào)度,在軟中斷服務函數(shù)中進行圖像壓縮任務。
DSP/BIOS是TI公司所設計開發(fā)的、尺寸可裁剪的實時多任務操作系統(tǒng)內(nèi)核,通過使用DSP/BIOS提供的豐富的內(nèi)核服務,開發(fā)者能快速地創(chuàng)建滿足實時性能要求的精細復雜的多任務應用程序。
DSP/BIOS程序編寫過程如下:
(1)在DSP/BIOS配置面板中添加1個軟中斷jpeg_swi,并將該軟中斷的服務函數(shù)設置為jpeg。
(2)添加軟中斷服務函數(shù)jpeg();代碼如下:
void jpeg(void)
{
Uint32 i;
if(pingpong)
bitstream_length=my_jpegenc->fxns->encode(my_jpegenc,(XDAS_Int8**)buf0,output_bitstream_buffer);
else
bitstream_length=my_jpegenc->fxns->encode(my_jpegenc,(XDAS_Int8 **)buf1,output_bitstream_buffer);
submit_qdma();
while(!(EDMA_getPriQStatus()EDMA_OPT_PRI_HIGH));
}
(3)在EDMA中斷服務函數(shù)中添加如下代碼:
SWI_post(jpeg_swi);
該函數(shù)的作用是觸發(fā)jpeg_swi軟中斷。
4 系統(tǒng)關鍵技術
4.1 時鐘
在使用內(nèi)部生成的時鐘過程中,可能引起設計上的功能和時限問題。組合邏輯產(chǎn)生的時鐘會引入毛刺,造成功能問題,而引入的延遲則可能會導致時限問題。
本設計中用到很多全局時鐘的整數(shù)倍分頻,且由于分頻的整數(shù)倍較大,如果利用FPGA中自帶的DCM模塊很難實現(xiàn)這樣的功能。因此,采用同步計數(shù)器的分頻方法,并且在各個時鐘信號輸出之前,再加一級寄存器輸出,這樣的操作就避免了組合邏輯生成的毛刺被阻擋在寄存器的數(shù)據(jù)輸入端口上。
4.2 DSP與FPGA數(shù)據(jù)交換
由于壓縮算法采用MECOSO公司的JPEG壓縮算法,經(jīng)過優(yōu)化和處理后,壓縮1幅圖像僅需要4 ms。所以影響整個系統(tǒng)能否實現(xiàn)高頻幀的關鍵技術是EDMA向SDRAM中搬移數(shù)據(jù)的速度,在本設計中設幀圖像的大小為600×480=288 KB,傳輸1幅圖像所需的時間需要10 ms。影響其速度主要有2個因素:EMIF所使用的ECLOCK和EMIF相關設置的寄存器。
在本系統(tǒng)中,ECLOCK采用了DSP的CPU4分頻,使EMIF的CLOCK工作在150 MHz,大大提高了搬移速度。由于SRAM映射在DSP的CE2空間,考慮到讀取數(shù)據(jù)需要建立(setup)、選通(Strobe)和保持(Hold)3個步驟,故將CE2相關寄存器的建立時間和選通時間選擇為1個clk,經(jīng)Hold時間設置為0。這樣設置后EMIF總線的數(shù)據(jù)吞吐量為:
本文設計的圖像壓縮系統(tǒng)實現(xiàn)了分辨率為600×480、幀頻率為100幀/s的視頻信號輸入的圖像采集,并能夠進行實時的JPEG壓縮。系統(tǒng)采用DSP+FPGA的方案,雖然是一種較常用的組織方式,但在該系統(tǒng)中解決了一些關鍵的問題,大大提高了圖像壓縮速度及系統(tǒng)的靈活性。本系統(tǒng)已經(jīng)應用于航天領域某監(jiān)測系統(tǒng),效果良好,運行穩(wěn)定。
參考文獻
[1] 李武森,遲澤英,陳文建.高速DSP圖像處理系統(tǒng)中的乒乓緩存結構研究[J].光電子技術與信息,2005(3):76-79.
[2] 周如輝.實時視頻處理系統(tǒng)中乒乓緩存控制器的設計[J].電子元器件應用,2006,33(4):66-68.
[3] 江思敏,劉暢.TMS320C6000 DSP應用開發(fā)教程[M].北京:機械工業(yè)出版社,2005.本文引用地址:http://m.butianyuan.cn/article/191641.htm
評論