陳益新,吳開華
(杭州電子科技大學生命信息與儀器工程學院,浙江杭州310018)
傳統的數字圖像處理通常以PC機為平臺,但這種方法處理速度較慢,不夠靈活。隨著固體圖像傳感器CCD和CMOS技術工藝的不斷改進以及數字信號處理器的功能提升,使得DSP等高速處理器件在圖像處理領域有了廣泛的發(fā)展空間[1]。圖像處理應用于檢測系統中具有其獨特的優(yōu)點,它不干擾被測對象,尤其適用在一些不能采用接觸測量的場合。本文研究了一種基于DM6467的高速圖像處理方案。該方案能夠有效的完成對輪對輪廓的圖像采集和處理,同時利用基于EDMA的Ping-pong緩存技術動態(tài)分配內存,極大的提高了系統的處理速度,可以應用于測量、檢測和安防監(jiān)控等諸多領域。
系統構成如圖1所示,包括圖像傳感器、PC機、數字信號處理器、外部存儲單元和以太網通信等部分組成。本方案采用高速面陣CCD完成圖像的高速采集,圖像分辨率為1 280象素×1 024象素,數字信號處理器DSP用于圖像數據處理,DDR2作為DM6467的外部存儲器,存儲圖像數據,FLASH存儲源程序,在上電后程序分別下載到ARM和DSP中,以太網實現PC機與DM6467之間的數據交互。當輪對以一定速度運行到指定位置時,利用外部觸發(fā)信號觸發(fā)CCD進行圖像采集,CCD的傳輸接口是兩路Camera Link接口,采用LVDS方式傳輸。圖像采集卡將采集到的圖像數據傳入PC機內存中,同時通過千兆以太網將圖像數據傳入DM6467中處理,處理結果通過以太網返回主機。
系統的核心處理器選擇TI公司的TMS320DM6467。TMS320DM6467處理器芯片是TI公司推出的高性能數字媒體集成芯片,具有極強的處理能力和高度的靈活性及可編程性。
圖1 系統設計框圖
TMS320DM6467在一個芯片上集成了ARM核和DSP核,利用Codec Engine軟件框架進行兩者之間的交互。ARM運行在MontaVistaLinux操作系統上,負責常用的控制任務及與外設之間的交互。DSP運行在Bios操作系統上,相當于一個“黑匣子”,只進行圖像數據處理算法,這種雙核并行處理模式大大提高了系統處理速度。
本方案利用DM6467的強大運算能力,在DSP內運行輪對輪廓提取算法。ARM核負責系統初始化和DM6467與PC機之間的網絡通信。通過DDR2共享存儲器實現ARM和DSP之間的數據通信。在達芬奇架構中,ARM通過CodecEngine調用DSP側的算法,該算法必須符合xDM標準。本系統中軟件整體流程圖如圖2所示:
圖2 軟件整體流程圖
PC機和DSP處理單元需要雙向數據交互,為提高系統數據交互的速度,本文采用千兆以太網進行雙向的數據傳輸。以太網數據傳輸采用基于TCP套接字編程的方法實現,TMS320DM6467的ARM端作為服務器端監(jiān)聽客戶端(PC端)的連接請求,連接建立后,雙方進行數據的發(fā)送與接收。
輪對輪廓在線檢測系統中的巨量數據處理需要提高DSP的利用率,以提高數據處理的實時性,TMS320DM6467提供了(L1和L2)兩級高速緩存,可配置成Cache或內部存儲器。程序運行時可以把需要進行尺寸算法處理的圖像數據放入Cache中使得運行速度提高。然而,Cache資源十分有限。為了進一步利用Cache資源,引入Ping-pong緩存技術,即在CPU處理數據的同時啟動EDMA傳輸數據,提高CPU處理效率。合理的配置和使用L1和L2是能否提高系統速度的關鍵。DM6467提供了128K的L2空間和32K的L1空間,一方面要使Cache高速緩存盡量的大,以提高數據在Cache中的命中率,減少因數據置換而造成的時間浪費。另一方面要確保內部存儲器的大小,保證有足夠的存儲器空間進行乒乓緩存。
2.3.1 乒乓緩存技術
乒乓緩沖技術在數據接收端建立了兩個數據緩沖區(qū),當第一組數據進來時,EDMA在數據放入ping緩存區(qū)的同時,CPU從Pong緩存區(qū)取數據進行處理;當ping緩存區(qū)放滿時發(fā)出中斷,Ping-pong緩存區(qū)進行切換:EDMA將下一組數據重定向到pong緩存區(qū),而CPU從ping緩存區(qū)取數據處理。Ping-pong緩存技術提供了EDMA數據傳輸和CPU數據處理的并行機制,大大提高了CPU的利用率,其原理如圖3所示。
圖3 Ping-pong緩存原理圖
2.3.2 EDMA3技術在乒乓緩存中的應用
EDMA傳輸是指在沒有CPU參與下自動完成不同存儲器空間之間的數據搬移,主要應用在需要大批量數據搬移的場合。DM6467提供了增強型EDMA控制器EDMA3,它基于RAM結構。EDMA3具有128個相互獨立的傳輸通道,每個通道均對應一個可觸發(fā)傳輸的同步事件,通道的傳輸行為由對應的片上參數存儲器編程指定,如圖4所示。Ping-pong緩存方式下EDMA通道有兩個參數集,一個用于ping傳入/出,另一個用于pong傳入/出,當一個通道傳輸完畢,PaRAM中的新參數集重新加載它們以啟動下一次傳輸。
圖4 參數存儲器
在本方案中由于圖像分辨率為1 280象素×1 024象素,再結合L2內部存儲器的容量將Ping-pong緩沖區(qū)的大小設置成2 560B,為2行圖像數據的大小。信道傳輸源地址為DDR2中圖像數據的地址,信道傳輸目的地址為申請的內部存儲器地址。設置好EDMA3的參數存儲器后,圖像數據之間的傳遞即可在脫離CPU的情況下自動運行,實現與CPU的并行處理。
圖像處理是機器視覺系統的核心部分。它面對的是大量的原始圖像數據,因此在基于面陣CCD的輪對輪廓檢測系統中,圖像處理算法的快速性和有效性是實現輪對輪廓提取的基礎。輪對輪廓提取流程如圖5所示。
圖5 輪對輪廓提取流程圖
本設計在TI最新推出的SEED-VPM6467開發(fā)板和PC機上進行軟、硬件的調試,CCD的分辨率為1 280象素×1 024象素。結合理論和實驗的結果,本方案中將L2存儲空間配置成96K的Cache和32K的內部存儲器,將L1存儲空間配置成24K的Cache和8K的內部存儲器,Ping-pong緩沖區(qū)的大小設置成2 560B。
調試結果如圖6所示。圖6(a)為CCD采集到的原始圖像,圖6(b)為經過閾值分割后的圖像,圖6(c)為經過DSP處理后最終得到的圖像。
圖6 輪對輪廓提取
本文提出了一種基于TMS320DM6467的圖像采集與預處理方案。在PC機的控制下,以面陣CCD采集圖像數據,再通過以太網傳輸至DM6467中供DSP處理。同時該方案引入了基于Cache和Pingpong機制的緩存技術,極大的提高了CPU的處理效率。本文所給出的實驗效果說明了本方案的技術可行性及其良好的檢測性能。
[1]米本和也.CCD/CMOS圖像傳感器基礎與應用[M].北京:科學出版社,2006:53.
[2]褚玉山.嵌入式高速圖像采集系統設計[J].甘肅科技,2010,16(3):29-31.
[3]李武森,遲澤英,陳文建.高速DSP圖像處理系統中的乒乓緩存結構研究[J].光電子技術與信息,2005,18(3):76-79.
[4]丁銳,袁譽樂,趙勇.基于達芬奇平臺的視頻監(jiān)控系統的設計[J].微計算機信息,2007,23(11):44-58.
[5]TI.達芬奇技術概述手冊[EB/OL].www.ti.com,2008-08-12.