劉 燕,陳興文,李 敏
(大連民族學院信息與通信工程學院,遼寧大連116605)
隨著計算機及通信技術的發(fā)展,圖像和視頻的應用愈加廣泛。大部分圖像數(shù)據(jù)在實際應用前皆需進行有針對性的處理,如根據(jù)圖像數(shù)據(jù)特點和應用領域對圖像進行增強、除噪、銳化和識別等。此外,為了有效實時地傳輸信息,還必須對圖像進行壓縮。圖像處理技術尤其是實時處理,現(xiàn)已成為一個熱門的研究方向。本研究旨在設計基于DSP的實時圖像處理系統(tǒng)。在DSP的控制下,不借助任何微機系統(tǒng)即可實現(xiàn)對圖像的采集、轉換、處理以及顯示等相關工作,即做到了“嵌入式”。具有體積小、成本低、工作可靠等優(yōu)點。能根據(jù)對圖像處理的不同要求,通過軟件編程來完成相關的圖像處理工作。
該數(shù)字圖像處理系統(tǒng)主要由圖像信號處理和圖像視頻采集顯示兩大模塊構成,具體包括視頻信號采集、邏輯控制、幀緩存、圖像處理、圖像數(shù)據(jù)傳送及圖像顯示6部分[1-2]。硬件結構框圖如圖1。
視頻信號的采集部分主要由CCD圖像傳感器及視頻采集與解碼功能于一體的SAA7111AHZ組成,邏輯控制部分由CPLD完成,圖像處理部分以DSP為核心,圖像傳送部分主要通過EDMA通道使圖像數(shù)據(jù)在DSP及緩存RAM間傳送,圖像顯示部分將處理后的圖像數(shù)據(jù)經過AL250芯片D/A轉換后輸出標準的VGA信號,在一般的顯示器上即可顯示。
圖1 基于DSP的數(shù)字圖像處理平臺硬件結構圖
該模塊以TMS320C6416GLZ為核心,利用片內集成外設EDMA通道對圖像視頻采集顯示模塊采集到的輸入RAM中的數(shù)據(jù)搬移到圖像信號處理模塊DSP片內RAM中,進行算法處理,然后將處理后的數(shù)據(jù)送回視頻采集顯示模塊,經過AL250 D/A轉換后輸出標準的VGA信號顯示。為了提高程序執(zhí)行效率,必須將程序要用到的數(shù)據(jù)先由片外存儲器調到片內數(shù)據(jù)RAM,利用EDMA與CPU并行工作的特點,采用PING-PONG技術,可作到如同數(shù)據(jù)總在片內數(shù)據(jù)RAM被處理,以提高運行速度[3-4]。
使用PING、PONG兩個存儲區(qū),PING存儲區(qū)主要進行算法處理,因此該區(qū)設在高速的片內數(shù)據(jù)RAM中,PONG存儲區(qū)選用片外SDRAM,主要任務是緩存處理后的數(shù)據(jù)并將其傳輸?shù)捷敵鯮AM。從輸入RAM接收到的數(shù)據(jù)通過EDMA通道0傳輸?shù)絇ING中,在此完成算法處理,然后將處理后的數(shù)據(jù)緩存到PONG中,與此同時EDMA通道1將PONG中的上次結果送到輸出RAM。這樣使得對數(shù)據(jù)處理的同時傳輸處理后的數(shù)據(jù)送顯示。
(1)外部存儲器擴展。EMIF是外部存儲器和C6416片內其他單元的接口,CPU訪問片外存儲器時必須通過EMIF,EMIF具有很強的接口能力,C6416的EMIFA支持8/16/32/64bit的數(shù)據(jù)訪問,EMIFB支持8/16bit的數(shù)據(jù)訪問。本系統(tǒng)利用EMIFA擴展兩片SDRAM(Micron公司的MT48LC2M32B2TG),擴展后的存儲容量為128Mbit,數(shù)據(jù)線64位寬。
(2)擴展的直接存儲器訪問(EDMA)。本系統(tǒng)充分利用了C6416中EDMA的優(yōu)勢,利用 EDMA實現(xiàn)片內存儲器、片內外設,以及外部存儲空間之間的數(shù)據(jù)搬移,完成整個系統(tǒng)的數(shù)據(jù)傳輸。由于EDMA可以進行獨立操作,因而整個采樣和輸出過程基本不影響DSP的數(shù)據(jù)運算。在本系統(tǒng)中一幀圖像需要占用512KB的存儲空間,每幀圖像分8場傳輸,每傳輸一場圖像數(shù)據(jù)為64KB。在使用EDMA通道傳輸時,一場圖像設置16K個數(shù)據(jù)單元,每個數(shù)據(jù)單元為32bit,在場同步信號的控制下,啟動數(shù)據(jù)的傳輸。
視頻采集顯示模塊集成了系統(tǒng)中采集、邏輯控制及圖像顯示三部分。該部分主要包括Philips公司的 SAA7111AHZ芯片,Averlogic公司的AL250芯片,并載有兩片128KB(16bit寬)的雙口RAM作為幀存儲和一片用于控制時序和地址產生的CPLD,視頻采集硬件結構如圖2。
SAA7111AHZ芯片進行視頻采集得到16bit的標準復合彩色數(shù)字信號,寫入輸入RAM中進行緩存,當采集完畢后,產生中斷給DSP,通知DSP可以開始對圖像進行處理了,此時,DSP讀取當前場采集得到的圖像數(shù)據(jù),和前一場中采集得到的圖像數(shù)據(jù)進行算法處理。處理后的數(shù)據(jù)寫入輸出RAM,經AL250芯片D/A轉換后輸出標準的VGA信號。由于SAA7111AHZ與AL250都是由IIC總線控制的,因此采用一單片機來控制IIC總線。
圖2 視頻采集硬件結構圖
系統(tǒng)軟件采用模塊化設計,分為系統(tǒng)初始化、圖像數(shù)據(jù)傳輸以及圖像處理3大部分。在系統(tǒng)完成了上電啟動或復位后,DSP程序加載與啟動,并完成系統(tǒng)的初始化以及各個參數(shù)的設置,即系統(tǒng)自舉,隨后開始等待外部中斷,當觸發(fā)搬移圖象數(shù)據(jù)的外部中斷INT4產生后,DSP啟動SAA7111AHZ中采集到的數(shù)據(jù)自雙口RAM搬移至內部RAM,數(shù)據(jù)傳輸完畢,隨即產生EDMA中斷,進入中斷服務程序,對采集到的數(shù)據(jù)進行處理并送入雙口RAM,經過AL250芯片D/A轉換后輸出標準的VGA信號便可以在一般的顯示器上顯示處理后的圖象。具體的系統(tǒng)軟件流程如圖3。
圖3 系統(tǒng)軟件流程圖
為了測試系統(tǒng)的功能,采用了經典的邊緣提取算法驗證。首先在系統(tǒng)硬件平臺上采集到的待處理的原始圖像如圖4(a)。經典的邊緣提取算子主要按照模板實現(xiàn),由于模板不允許移出邊界,因此對邊界上無法進行操作的象素,復制其臨近邊緣的灰度值,例如在Sobel算子(33模板)中對邊界象素進行如下處理:
void sobelfilter(Uint16* inputbuffer16,Uint16* outputbuffer16,int cols,int rows)
{
……
for(i=0;i<cols;i++)
*((Uint16*)outputbuffer16+i)=*((Uint16*)outputbuffer16+cols+i);
for(i=cols*rows-cols;i<cols*rows;i++)
*((Uint16*)outputbuffer16+i)=*((Uint16*)outputbuffer16-cols+i);}
對圖4(a)原始圖像進行不同的邊緣提取算子處理后的圖像分別如圖4(b)、4(c)、4(d)。
圖4 原始圖像與處理后的圖像
從處理后的圖中可以直觀的看出,Roberts算子邊緣定位較高,Soble算子的邊緣圖中提取出的邊緣數(shù)欠完整且受噪聲干擾較大。LoG算子的邊緣圖中的邊緣連續(xù)性很好,完整性也較優(yōu),但是LoG算子邊緣較粗,主要因為在過濾噪聲的同時將邊緣平滑了,所以使得邊緣相對較粗。
本系統(tǒng)以TMS320C6416為核心構建了實時圖像處理平臺,并在所構建的圖像處理平臺上完成了邊緣檢測算法,實現(xiàn)了不借助微機任何資源即可完成對圖像的采集、轉換、處理以及顯示等相關工作,大大降低了系統(tǒng)的成本,提高了工作的可靠性,具有較高的應用價值。
[1]許爽,索繼東,趙繼印.自動找點的掌紋圖像定位分割方法[J].計算機工程與設計,2011(9):3102-3105.
[2]姜明新,王洪玉,蔡興洋.基于碼本模型和多特征的早期煙霧檢測[J].中國圖象圖形學報,2012(9):1102-1108.
[3]張俊星,石立新,王都生.閾值自適應語音自動分割系統(tǒng)模型[J].計算機工程與設計,2010(8):1886-1889.
[4]肖瑛,馮長建.組合窗函數(shù)的短時傅里葉變換時頻表示方法[J].探測與控制學報,2010(3):43-47.