王 戈 常 敏 楊園園 姚 晨 張學(xué)典
(上海理工大學(xué)光電信息與計算機工程學(xué)院,上海,200093)
嵌入式圖像處理技術(shù)包括數(shù)字圖像處理技術(shù)和嵌入式系統(tǒng)技術(shù)兩部分。圖像處理算法[1]通常需要大量的數(shù)學(xué)運算,而實時圖像處理領(lǐng)域除對運算的正確性提出很高的要求外,對運算的實時性也有相當(dāng)高要求。因此選用計算功能強大的數(shù)字信號處理芯片DSP來實現(xiàn)實時圖像處理已成為趨勢。嵌入式系統(tǒng)[2],擁有軟硬件可裁剪,多任務(wù)處理,穩(wěn)定可靠等優(yōu)點,使得用戶應(yīng)用任務(wù)以及軟硬件資源能夠得到科學(xué)有效的管理。兩種技術(shù)的結(jié)合無疑增強了圖像處理系統(tǒng)的通信、交互及數(shù)據(jù)處理等能力[3]。完整的嵌入式圖像處理系統(tǒng)通常包括原始圖像采集、圖像處理和人機交互界面三大部分,而進行圖像采集和顯示通常需要兩組PPI接口,這就需要選擇接口豐富但價格昂貴的處理器芯片,增加了系統(tǒng)開發(fā)的成本。
針對上述問題,文中選用只包含單組PPI接口的數(shù)字信號處理芯片,通過將這組PPI接口進行分時復(fù)用,實現(xiàn)了實時的圖像采集、處理和顯示。本文以自動檢測運動目標(biāo)的圖像處理[4]為例,說明了系統(tǒng)的具體實現(xiàn)方法。實驗結(jié)果表明所選DSP芯片可以充分利用有限的PPI接口很好地實現(xiàn)圖像的采集、處理和實時顯示等功能。
BF531是ADI公司Blackfin系列的DSP處理器芯片,該處理器[5]是一款高性能的DSP嵌入式微處理器,內(nèi)部集成控制器,數(shù)字信號處理模塊和媒體處理器等,廣泛用于因特網(wǎng)上大量的圖像、聲音、文本和數(shù)據(jù)流的處理,適用于各種因特網(wǎng)設(shè)備,如可視電話、網(wǎng)絡(luò)終端和智能手持設(shè)備等。其強大的數(shù)據(jù)運算能力可以滿足實時圖像處理和視頻處理的需要。BF531的PPI接口是一種可雙向傳輸?shù)慕涌?,部分引腳可以復(fù)用,可一次傳輸8位或16位的數(shù)據(jù)。使用專門的時鐘和3個同步信號(包括行同步,幀同步及場同步)可支持ITU-R 656視頻數(shù)據(jù)格式的傳輸。
本系統(tǒng)的核心設(shè)計思路即是利用BF531芯片的單組并行數(shù)據(jù)口,通過分時復(fù)用實現(xiàn)實時圖像采集和顯示。該技術(shù)曾廣泛應(yīng)用于有限I/O管腳條件下的系統(tǒng)擴展。如單片機系統(tǒng)的鍵盤及顯示電路擴展,以及三總線方式的單片機外部存儲器擴展。
在I/O管腳不夠用的場合,通常都會采用擴展I/O的方法來解決問題。而采用I/O口擴展與分時復(fù)用兩種方法解決問題都有著各自的優(yōu)點及特點,但同時也都暴露出一些問題。采用分時復(fù)用的方式利用較少的I/O管腳實現(xiàn)系統(tǒng)擴展能有效地節(jié)約硬件開發(fā)成本,降低系統(tǒng)的硬件復(fù)雜度,使系統(tǒng)有限的硬件資源得到充分的利用,但與此同時會增加軟件部分的復(fù)雜度,提高了系統(tǒng)軟件部分的開發(fā)難度。而采用擴展I/O口的方式可以使各模塊之間相互獨立,軟件設(shè)計思路較為清晰,降低系統(tǒng)軟件部分的開發(fā)難度,但使用I/O擴展芯片必定會導(dǎo)致硬件設(shè)計成本的上升。
在系統(tǒng)設(shè)計對硬件成本較為敏感的場合,擴展I/O口以及換用包含更多PPI接口的設(shè)計方案難以滿足設(shè)計需求。故本系統(tǒng)選用互補金屬氧化物半導(dǎo)體(Complementary metal-oxide-semiconductor,CMOS)圖像傳感器與TFT液晶分時復(fù)用一組PPI接口來實現(xiàn)對圖像的實時采集與顯示。
利用CMOS圖像傳感器采集圖像數(shù)據(jù),圖像數(shù)據(jù)通過BF531僅有的一組PPI口傳輸?shù)紻SP中,經(jīng)過內(nèi)部嵌入式圖像處理系統(tǒng)對圖像數(shù)據(jù)進行處理,實現(xiàn)對所采集視頻圖像中運動目標(biāo)的自動檢測;通過寄存器配置切換DSP管腳功能,將這組PPI接口配置為GPIO接口(通用可編程接口),驅(qū)動TFT顯示處理后的圖像。
系統(tǒng)硬件框圖如圖1所示。BF531為系統(tǒng)的處理器,其內(nèi)核工作頻率可達400MHz,可實現(xiàn)一個時鐘周期同時執(zhí)行一條32bit涉及ALU和MAC操作的指令(可并行操作兩次算術(shù)運算)和兩條16bit指令。以16階的實數(shù)FIR濾波運算為例,BF531需8個指令周期,而TI公司的54×系列DSP芯片需16個指令周期。如果以400MHz的531與100MHz的5402作對比,則前者運算能力是后者的8倍。故BF531特別適合應(yīng)用于需要處理大量的圖像、聲音、文本和數(shù)據(jù)流的多媒體系統(tǒng)中。
圖1 系統(tǒng)硬件框圖
圖像傳感器選用OmniVision的OV7690,其感光陣列大小為640像素×480像素,容許輸入的時鐘頻率為6~27MHz且包含片上PLL,同時支持多種輸出格式。液晶控制器選擇ILI9331,ILI9331內(nèi)置一個約172KB字節(jié)的RAM,可用于儲存圖像數(shù)據(jù)。系統(tǒng)還通過DSP芯片的擴展口擴展了SDRAM和FLASH,SDRAM用于存儲圖像處理過程中的圖像數(shù)據(jù),F(xiàn)LASH則存儲系統(tǒng)啟動的數(shù)據(jù)和程序代碼[6]。
圖1中BF531的可編程控制IO引腳PF0與PF1與CMOS圖像傳感器OV7690的I2C的數(shù)據(jù)SIO-D與時鐘SIO-C引腳相連,用于寫CMOS的寄存器,配置采集圖像大小,圖像數(shù)據(jù)格式等選項。PF3引腳與CMOS的復(fù)位端連接,當(dāng)要傳下一幀圖片時,復(fù)位CMOS,保證從第一個像素點開始傳輸圖像。CMOS輸出引腳Y0~Y7與BF531的PPI0~PPI7相連,將采集到的圖像數(shù)據(jù)通過PPI口傳給DSP,同時圖像傳感器的像素時鐘,行同步和幀同步信號與PPI口的時鐘和同步信號端相連,保證圖像數(shù)據(jù)傳輸?shù)耐叫院驼_性。
第一次進行圖像采集需對BF531芯片的PLL,EBIU和系統(tǒng)的SDRAM進行設(shè)置,保證芯片正常工作。
圖2所示為圖像采集的軟件流程圖。通過配置FIO-DIR,F(xiàn)IO-FLAG-C和FIO-FLAG-S這3個寄存器[7],使PF2(CMOS圖像傳感器復(fù)位端)為高電平,PF7(TFT片選端)為高電平,即使圖像傳感器處于工作狀態(tài),液晶停止工作。之后配置PPI口和DMA通道[8],使其按照要求傳輸圖像數(shù)據(jù)。
圖2 圖像采集軟件框圖
CMOS初始化利用PF0和PF1,采用I2C工作方式對圖像傳感器進行配置。最后將寄存器DMA0-CONFIG和PPI-CONTROL中的最低位使能位DMAEN和PORT-EN位均置1,開啟PPI和DMA0功能開始采集數(shù)據(jù)。DMA0傳輸完一幀數(shù)據(jù)之后進入中斷,執(zhí)行中斷服務(wù)程序,配置寄存器PPI-CONTROL,關(guān)閉PPI功能。
BF531芯片的PF7,PF6,PF5和PF4分別與LCD的CS,RS,WR,RST連接,CS為液晶的片選端,PF7置低即為選通液晶設(shè)備。液晶接口方式為8080模式,通過控制CS,RS,RD和 WR等引腳的時序?qū)拇嫫鬟M行配置。
系統(tǒng)選用分辨率為240像素×320像素的點陣式RGB彩色屏,按照8bit數(shù)據(jù)寬度把圖像數(shù)據(jù)寫入屏控制器內(nèi)的圖像RAM中,屏的顯示格式設(shè)置為RGB565,一個像素16bit數(shù)據(jù)分兩次傳輸。第一次寫屏需要進行初始化,向屏的特殊寄存器中寫入命令,首先寫入要改寫的寄存器的地址,其次將要寫入的命令值通過數(shù)據(jù)口傳輸進去,該過程的工作時序如圖3所示。
初始化完成后,將處理好的圖像數(shù)據(jù)(已轉(zhuǎn)換為RGB565格式)送屏顯示。液晶實時顯示的軟件流程圖如圖4所示。
圖3 寫寄存器的工作時序
圖4 液晶實時顯示圖像軟件流程圖
圖像處理完成后,液晶的片選端置0,復(fù)位端置1,保證液晶正常工作。而后初始化屏幕,寫入一幀數(shù)據(jù),完成顯示后重新配置PPI口,并將液晶片選端置高,將CMOS復(fù)位,保證從一幀的第一個像素開始采集,開啟PPI和DMA采集下一幀。一幀采集完成后產(chǎn)生中斷信號,圖像數(shù)據(jù)經(jīng)過處理送入屏幕,刷新屏的RAM數(shù)據(jù)。這樣就形成了一個動態(tài)的過程,只要液晶圖像數(shù)據(jù)RAM刷新速度足夠快,就可以滿足人眼對動態(tài)圖像的要求。
本系統(tǒng)的設(shè)計目標(biāo)是實現(xiàn)靜態(tài)背景下運動目標(biāo)的自動檢測[9]。系統(tǒng)的性能由DSP芯片與CMOS傳感器的通信速率、運動目標(biāo)檢測算法的時間復(fù)雜度以及DSP芯片與液晶驅(qū)動器的通信速率共同決定。
經(jīng)過合理的配置OV7690在采集QVGA(320像素×240像素)圖像時,速率可達 60f/s。為達到DSP芯片同攝像頭在速度上的匹配,接收端使用DMA的方式來實現(xiàn)對傳感器輸出數(shù)據(jù)的存儲。DMA技術(shù)的使用使得DSP在接收來自于傳感器的數(shù)據(jù)時,仍能完成數(shù)據(jù)處理的任務(wù)。
在本系統(tǒng)中,DSP芯片運行在400MHz,并經(jīng)過分頻為COMS傳感器提供24MHz的外部時鐘,保證了圖像采集的速率??紤]到實際工程當(dāng)中在滿足任務(wù)要求的前提下應(yīng)留有充分的余量,傳感器實際配置在30f/s的工作模式下。
本系統(tǒng)對實時性有一定要求,故在設(shè)計中采用了幀間差分法與背景查分法相結(jié)合的檢測方法[10,11],以降低計算量并實現(xiàn)較高的處理效率。
實現(xiàn)運動目標(biāo)檢測的軟件流程圖如圖5所示。首先利用幀間差分方法,在同一個靜態(tài)背景下,將不同時刻的兩幅圖像進行差分運算,就能檢測出運動區(qū)域。然后在確定的運動區(qū)域內(nèi)結(jié)合背景差分法進行運動目標(biāo)檢測。
圖5 運動目標(biāo)檢測的軟件流程圖
本系統(tǒng)使用C語言實現(xiàn)上述算法,并在PC機完成功能驗證后,使用ADI公司的VisualDSP++開發(fā)環(huán)境對軟件算法進行編譯、優(yōu)化操作。通過對優(yōu)化后的匯編語言程序進行分析并測算的程序執(zhí)行時間,得出系統(tǒng)對運動目標(biāo)檢測結(jié)果的輸出速率約為20f/s。
DSP芯片同液晶驅(qū)動器的通信[12]方式同樣采用DMA的方式實現(xiàn),液晶控制器工作在8080模式,通過相關(guān)寄存器設(shè)置,將顯示屏設(shè)置為如下模式:
由公式可以計算得出液晶控制器內(nèi)部時鐘頻率:
Internal oscillator clock[Hz]=60×320+2+14]×16×(1.1/0.9)=394kHz。經(jīng)過實際測試,液晶屏幕可穩(wěn)定地工作在60f/s的頻率下。
實驗證明,屏幕刷新的頻率達到12Hz左右,能夠滿足人眼對動態(tài)圖像的要求。本系統(tǒng)還實現(xiàn)了實時采集圖像中運動目標(biāo)的檢測功能。只有一組PPI口的BF531芯片按照常理無法實現(xiàn)同時進行圖像的采集和實時顯示,但是本文通過分時復(fù)用這一組PPI口,借助內(nèi)置RAM的液晶控制器,很好地實現(xiàn)了實時的圖像采集、處理與顯示任務(wù),節(jié)約了硬件成本,降低了硬件設(shè)計難度。
[1] 劉鐵根.嵌入式圖像檢測技術(shù) [M].北京:機械工業(yè)出版社,2008.Liu Tiegen.Embedded image detection technology[M].Beijing:Mechanical Industry Press,2008.
[2] Labrosse J J.MicroC/OS-Ⅱ:the real-time kernel[M].2nd Edition.Lawrence,USA:CRC Press,2002.
[3] 高輝,杜慶靈.視頻監(jiān)控系統(tǒng)中動目標(biāo)檢測算法研究[J].計算機與數(shù)字工程,2008,36(9):34-37.Gao Hui,Du Qingling.Research on moving object detection algorithm in video monitor system [J].Computer & Digital Engineering,2008,36(9):34-37.
[4] 黃永麗,曹丹華,吳裕斌.實時監(jiān)控系統(tǒng)中運動人體圖像分割[J].光電工程,2002,29(1):70-71.Huang Yongli,Cao Danhua,Wu Yubin.Segmentation of motion human body image in real-time monitor system[J].Opto-Electronic Engineering,2002,29(1):70-71.
[5] Anolog Device,Inc.Blackfin Rembedded processor ADSP-BF531/ADSP-BF532datasheet [EB/OL].[2012-10-1].http://www.analog.com/en/processors-dsp/blackfin/ADSP-BF531/products/product.html.
[6] 李武森,遲澤英,陳文建.嵌入式高速DSP視頻圖像處理系統(tǒng)中數(shù)據(jù)存儲器的接口設(shè)計 [J].紅外技術(shù),2003,25(1):51-54.Li Wusen,Chi Zeying,Chen Wenjian.Configuring of data memory in high speed DSP video processing system [J].Infrared Technology,2003,25(1):51-54.
[7] Anolog Device,Inc.ADSP-BF533Blackfin processor hardware reference[EB/OL].[2012-10-1].http://www.analog.com/zh/processors-dsp/blackfin/adspbf531/products/product.html.
[8] 王金礎(chǔ),余松煜.TMS320C3x高速數(shù)據(jù)采集的DMA實現(xiàn)[J].數(shù)據(jù)采集與處理,2000,15(1):86-89.Wang Jinchu,Yu Songyu.High speed data acquisition implemented with DMA of TMS320C3x [J].Journal of Data Acquisition and Processing,2000,15(1):86-89.
[9] 謝鳳英,趙丹培.Visual C++數(shù)字圖像處理 [M].北京:電子工業(yè)出版社,2008.Xie Fengying,Zhao Danpei.Digital image processing using visual C++[M].Beijing:Publishing House of Electronics Industry,2008.
[10]高輝,杜慶靈.視頻監(jiān)控系統(tǒng)中動目標(biāo)檢測算法研究[J].計算機與數(shù)字工程,2008,36(9):34-37.Gao Hui,Du Qingling.Research on moving object detection algorithm in video monitor system [J].Computer & Digital Engineering,2008,36(9):34-37.
[11]李勁菊,朱青,王耀南.一種復(fù)雜背景下運動目標(biāo)檢測與跟蹤方法 [J].儀器儀表學(xué)報,2010,31(10):2242-2246.Li Jinju,Zhu Qing,Wang Yaonan.Detecting and tracking method of moving target in complex environment[J].Chinese Journal of Scientific Instrument,2010,31(10):2242-2246.
[12]李立,金華標(biāo),陳智君,等.基于FPGA和DSP的高分辨率圖像采集系統(tǒng)[J].數(shù)據(jù)采集與處理,2008,23(1):117-122.Li Li,Jin Huabiao,Chen Zhijun,et al.High resolution image data acquisition system based on FPGA and DSP[J].Journal of Data Acquisition and Processing,2008,23(1):117-122.