向厚振,張志杰,王 鵬
(中北大學(xué) 信息與通信工程學(xué)院,山西 太原030051)
近年來(lái),基于FPGA硬件技術(shù)的視頻圖像處理系統(tǒng)被廣泛地應(yīng)用于視頻智能監(jiān)控、智能交通系統(tǒng)、視頻采集、跟蹤系統(tǒng)等。作為機(jī)器視覺的一個(gè)重要研究方向,動(dòng)態(tài)目標(biāo)檢測(cè)在視頻智能監(jiān)控、智能交通系統(tǒng)等方面得到了越來(lái)越多的應(yīng)用。動(dòng)態(tài)目標(biāo)檢測(cè)是視頻智能化系統(tǒng)的前提,其目的是從視頻圖像序列中將變化區(qū)域提取出來(lái)。對(duì)變化區(qū)域的有效提取對(duì)后續(xù)的目標(biāo)分類、跟蹤和行為理解等處理都非常重要[1-2]。
視頻圖像處理系統(tǒng)設(shè)計(jì)中,視頻信號(hào)經(jīng)過(guò)采集、緩存、處理、輸出(顯示或存儲(chǔ))。而緩存模塊的設(shè)計(jì)取決于視頻圖像數(shù)據(jù)傳輸速率以及格式大小,根據(jù)國(guó)際電聯(lián)定義的ITU-RBT.656數(shù)字圖像接口標(biāo)準(zhǔn)[3],中國(guó)采用的是世界上大多數(shù)國(guó)家所采用的720×576分辨力的PAL制式視頻信號(hào),每幀數(shù)據(jù)由場(chǎng)消隱信號(hào)、行控制信號(hào)、有效視頻數(shù)據(jù)組成,一幀圖像大小為3 240 kbit(灰度數(shù)據(jù))。在基于FPGA技術(shù)的視頻和圖像處理系統(tǒng)設(shè)計(jì)中,利用FPGA可配置邏輯資源設(shè)計(jì)一幀圖像數(shù)據(jù)緩存單元的方法是行不通的,那么如何更好地利用FPGA芯片有限資源成為FPGA設(shè)計(jì)的難題。
本文基于Xilinx Vritex-4芯片的動(dòng)態(tài)目標(biāo)檢測(cè)系統(tǒng)設(shè)計(jì),合理利用芯片資源,以及根據(jù)系統(tǒng)動(dòng)態(tài)檢測(cè)設(shè)計(jì)幀間差分法更有效地完成系統(tǒng)設(shè)計(jì),達(dá)到動(dòng)態(tài)檢測(cè)實(shí)時(shí)性的目的。
基于FPGA的動(dòng)態(tài)目標(biāo)檢測(cè)系統(tǒng)分為視頻采集模塊、視頻圖像緩存模塊、視頻數(shù)據(jù)檢測(cè)模塊。系統(tǒng)硬件平臺(tái)設(shè)計(jì)框架如圖1所示,F(xiàn)PGA芯片接收由CCD攝像機(jī)采集到模擬視頻信號(hào)經(jīng)TVP5150解碼芯片轉(zhuǎn)換出來(lái)的數(shù)字視頻信號(hào),F(xiàn)PGA視頻采集模塊檢測(cè)數(shù)字視頻流當(dāng)中的有效視頻圖像信號(hào),經(jīng)圖像緩存模塊緩沖,一路傳輸給檢測(cè)模塊進(jìn)行算法處理,經(jīng)SAA7121編碼芯片轉(zhuǎn)換輸出LCD顯示,一路直接還原為視頻數(shù)據(jù)流信號(hào),完善的系統(tǒng)顯示模塊還包括經(jīng)ADV7123芯片轉(zhuǎn)換輸出到VGA顯示器對(duì)比,以達(dá)到動(dòng)態(tài)目標(biāo)檢測(cè)的可視化效果。此外,系統(tǒng)涉及到FPGA芯片與各個(gè)器件之間的硬件連接和通信協(xié)議,以及對(duì)FPGA內(nèi)部的邏輯資源進(jìn)行例化,包括MicroBlaze軟核、IIC總線模塊、DCM模塊等[4-5]。
系統(tǒng)基于Xilinx Virtex-4芯片設(shè)計(jì)[6],其資源豐富,功能強(qiáng)大,內(nèi)嵌1個(gè)32位的MicroBlaze軟核,集成了10 240個(gè)邏輯單元(slice),128個(gè)DSP邏輯單元,4個(gè)數(shù)字時(shí)鐘管理模塊(DCM)。這些邏輯單元包含分布式RAM的容量高達(dá)160 kbit,塊RAM的容量高達(dá)2 304 kbit。這些為視頻流在FPGA芯片內(nèi)部實(shí)現(xiàn)延時(shí)提供了緩存空間。DSP邏輯單元為視頻數(shù)據(jù)流在片內(nèi)進(jìn)行運(yùn)算和處理提供了計(jì)算能力上的支持。DCM模塊為內(nèi)部例化器件提供系統(tǒng)時(shí)鐘信號(hào)。另外,DCM具有將信號(hào)差分、相移、倍頻、分頻等功能,這些都為系統(tǒng)外接器件提供了相應(yīng)的時(shí)鐘信號(hào),使整個(gè)系統(tǒng)具有良好的擴(kuò)展性。
圖1 系統(tǒng)硬件平臺(tái)設(shè)計(jì)
動(dòng)態(tài)目標(biāo)檢測(cè)圖像數(shù)據(jù)緩存的難點(diǎn)在于數(shù)據(jù)容量大,速率與系統(tǒng)時(shí)鐘不一致,以及視頻圖像數(shù)據(jù)的連續(xù)性。視頻圖像處理是以一幀圖像數(shù)據(jù)進(jìn)行算法處理為前提。經(jīng)過(guò)解碼模數(shù)轉(zhuǎn)換后的720×576分辨力的一幀數(shù)字視頻圖像,包括色度信號(hào)Cb和Cr,以及亮度信號(hào)Y。一幀圖像分奇數(shù)場(chǎng)和偶數(shù)場(chǎng)各288行,一行數(shù)據(jù)以色度信號(hào)Cb、亮度信號(hào)Y和色度信號(hào)Cr按2∶4∶2組成,共1 440個(gè)采樣點(diǎn)。其中的Y數(shù)據(jù)流就是視頻圖像的灰度值數(shù)據(jù)流,也是人眼敏感的圖像數(shù)據(jù),通常圖像處理的也是圖像灰度值。
由解碼芯片傳輸給FPGA芯片的視頻信號(hào)是頻率為27 MHz的亮度色度混合的數(shù)字信號(hào)VPIN。該系統(tǒng)利用VPIN_LLC分頻時(shí)鐘clk_675將亮度信號(hào)(灰度數(shù)據(jù)信號(hào))單獨(dú)提取出來(lái)寫入FIFO做處理,但前提是要檢測(cè)這些信號(hào)是否為視頻有用信號(hào)。檢測(cè)方式有兩種,一種是通過(guò)解碼芯片產(chǎn)生的AVID指示信號(hào)檢測(cè)高低電平,從而判斷輸出數(shù)據(jù)是否為灰度數(shù)據(jù)或無(wú)效數(shù)據(jù)。AVID用來(lái)檢測(cè)指示VPIN有效視頻起始SAV信號(hào)和有效視頻結(jié)束EAV信號(hào),圖2是通過(guò)在線邏輯分析儀ChipScope Pro得到的系統(tǒng)設(shè)計(jì)內(nèi)部信號(hào)波形圖。由圖可知,AVID Start跳變指向的是VPIN有效數(shù)據(jù)起始SAV信號(hào)FF,00,00,C7,同樣AVID Stop跳變指向的是EAV信號(hào)。另一種檢測(cè)方法是通過(guò)可綜合的VHDL程序代碼寫狀態(tài)機(jī)FSM檢測(cè)SAV,EAV信號(hào)。
圖3是系統(tǒng)部分設(shè)計(jì)原理圖。設(shè)計(jì)中,a FIFO緩存VPIN當(dāng)中有效灰度數(shù)據(jù),b FIFO延遲a FIFO的輸出數(shù)據(jù)。通過(guò)寫時(shí)鐘wr_clk控制數(shù)據(jù)輸入,讀使能rd_en、讀時(shí)鐘rd_clk控制數(shù)據(jù)輸出。當(dāng)clk_675上升沿到來(lái)時(shí),a FIFO寫入VPIN數(shù)據(jù)流有效數(shù)據(jù)當(dāng)中的亮度信號(hào)Y,直到a FIFO寫滿半幀奇數(shù)場(chǎng)數(shù)據(jù)或偶數(shù)場(chǎng)數(shù)據(jù),讀使能en_one打開,讀時(shí)鐘not_clk上升沿時(shí)讀出數(shù)據(jù)Y,此時(shí)a FIFO輸出是第一幀的奇數(shù)場(chǎng)或是偶數(shù)場(chǎng)的Y值信號(hào)。Y值信號(hào)進(jìn)入b FIFO緩存,相當(dāng)于將Y值信號(hào)做了延遲,讀使能開啟輸出Y信號(hào)。在系統(tǒng)時(shí)鐘下,兩個(gè)FIFO輸出的ay,by則是VPIN第二幀、第一幀的奇數(shù)場(chǎng)或是偶數(shù)場(chǎng)的Y值信號(hào),將兩個(gè)輸出做差法,可得出相鄰兩幀灰度值變化區(qū)域。
圖2 ChipScope Pro Analyzer分析結(jié)果局部示意圖
圖3 ISE Schematic Symbol FIFO部分原理圖
動(dòng)態(tài)目標(biāo)檢測(cè)就是將視頻圖像序列中變化區(qū)域檢測(cè)出來(lái),這里通過(guò)相鄰兩幀之間做差,將差值通過(guò)閾值判斷,得出像素變化區(qū)域,進(jìn)而檢測(cè)出動(dòng)態(tài)目標(biāo)。系統(tǒng)設(shè)計(jì)中,巧妙地根據(jù)幀差法、FIFO緩存達(dá)到系統(tǒng)檢測(cè)的目的[7-8]。
系統(tǒng)設(shè)計(jì)中的解碼編碼芯片和A/D芯片均由FPGA芯片控制其工作狀態(tài),通過(guò)系統(tǒng)設(shè)計(jì)工具EDK和Platform Studio,對(duì)其內(nèi)部寄存器以及I/O口的配置均由C語(yǔ)言編寫實(shí)現(xiàn)。系統(tǒng)內(nèi)部工作狀態(tài)由內(nèi)部資源實(shí)例化MicroBlaze軟核、總線模塊、DCM模塊等實(shí)現(xiàn)芯片工作的時(shí)序性、穩(wěn)定性。ISE工程實(shí)現(xiàn)系統(tǒng)邏輯處理功能,對(duì)視頻圖像序列進(jìn)行動(dòng)態(tài)檢測(cè)。ChipScope在線邏輯分析儀調(diào)試查看系統(tǒng)搭建成功后內(nèi)部信號(hào)或節(jié)點(diǎn),包括嵌入式硬件和軟處理器。如圖4所示,系統(tǒng)搭建成功后,各個(gè)主要信號(hào)實(shí)時(shí)波形圖。包括視頻輸入信號(hào)VPIN、緩存FIFO輸出dout、系統(tǒng)輸出信號(hào)data_all以及系統(tǒng)時(shí)鐘VPIN_LLC、FIFO讀寫時(shí)鐘。由波形可得出,在有效數(shù)據(jù)位時(shí)FIFO進(jìn)行數(shù)據(jù)輸入,寫入一場(chǎng)數(shù)據(jù)后輸出,data_all是系統(tǒng)將有效灰度數(shù)據(jù)經(jīng)過(guò)檢測(cè)模塊處理后還原到視頻序列后的信號(hào),可輸出LCD顯示其動(dòng)態(tài)檢測(cè)效果。另外,將FIFO緩存輸出信號(hào)直接還原到視頻序列經(jīng)ADV7123輸出到VGA顯示器[9],可觀測(cè)實(shí)時(shí)視頻圖像,以便對(duì)比檢測(cè)動(dòng)態(tài)效果。
圖4 Analyzer分析結(jié)果
視頻圖像處理系統(tǒng)設(shè)計(jì)中,圖像緩存可以讓系統(tǒng)時(shí)序穩(wěn)定,實(shí)時(shí)性更高。本文以動(dòng)態(tài)目標(biāo)檢測(cè)系統(tǒng)設(shè)計(jì)中FIFO緩存與系統(tǒng)設(shè)計(jì)幀差法巧妙結(jié)合,以Xilinx Vritex-4芯片為處理器,TVP5150,SAA7121解碼編碼碼芯片以及ADV7123轉(zhuǎn)換芯片系統(tǒng)實(shí)現(xiàn)了對(duì)視頻圖像的動(dòng)態(tài)檢測(cè)。系統(tǒng)設(shè)計(jì)實(shí)時(shí)性高,穩(wěn)定性好,其次以FPGA芯片為處理器的系統(tǒng)設(shè)計(jì)具有小型化、低功耗、開發(fā)周期短、投入少、芯片價(jià)格適中等優(yōu)點(diǎn)。該系統(tǒng)設(shè)計(jì)可應(yīng)用于基于FPGA的視頻圖像處理系統(tǒng)各類應(yīng)用場(chǎng)合中,具有一定的擴(kuò)展性和應(yīng)用前景。
[1]鄭世寶.智能視頻監(jiān)控技術(shù)與應(yīng)用[J].電視技術(shù),2009,33(1):95-97.
[2]程明潔.智能視頻監(jiān)控系統(tǒng)目標(biāo)檢測(cè)和跟蹤技術(shù)分析[J].電視技術(shù),2008,32(10):86-88.
[3]ITU-R BT 656,Digtal TV system[S].1995.
[4]田耕,胡彬,徐文波.Xilinx ISE Design Suite 10.x FPGA開發(fā)指南[M].北京:人民郵電出版社,2008.
[5]田耘,徐文波.Xilinx FPGA開發(fā)實(shí)用教程[M].北京:清華大學(xué)出版社,2008.
[6]XILINX.Virtex-4 FPGA data sheets[EB/OL].(2010-08-30)[2011-9-07].http://china.xilinx.com/.
[7]王德勝,康令州.基于FPGA的實(shí)時(shí)圖像采集與預(yù)處理[J].電視技術(shù),2011,35(3):38-41.
[8]熊璟,唐廣,唐湘成,等.基于DDR IP核視頻圖像緩存的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2011,35(2):55-57.
[9]宋海吒,唐立軍,謝新輝.基于FPGA和OV7620的圖像采集及VGA顯示[J].電視技術(shù),2011,35(5):51-53.