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