田 杰,王廣龍,喬中濤,高鳳岐
(軍械工程學院納米技術與微系統實驗室,石家莊050003)
基于FPGA高速視頻圖像實時采集與處理系統設計
田杰,王廣龍*,喬中濤,高鳳岐
(軍械工程學院納米技術與微系統實驗室,石家莊050003)
針對高速視頻圖像實時采集與處理系統處理數據量大與系統實時性之間的矛盾,設計了一種基于高性能FPGA的高帶寬處理系統。采用Cyclone IV GX系列芯片為核心處理器,4片DDR2構造64 bit總線。完成了高速系統硬件電路設計,系統主要由視頻圖像傳感器、FPGA、DDR2、VGA控制器件等組成。實現了高速視頻圖像數據的實時采集、緩存、處理、顯示等一系列過程。實驗表明,利用此系統進行高速視頻圖像的實時采集、處理與顯示時動態畫面流暢、實時性好。
FPGA;實時性;視頻圖像處理;時序分析
隨著經濟的快速發展,各個領域對高速視頻圖像采集與處理的速度與精度提出了更高的要求,譬如:機器人導航領域、現場監控領域、安防領域等。在此背景下,高速視頻圖像實時采集與處理技術得到了長足的發展[1]。
20世紀70年代,人們開始利用高速攝像機來記錄運動的物體,但當時高速攝像機是以膠片的形式作為記錄介質,無法實現數據的實時處理[2]?,F如今,在國外,高速工業相機的采樣頻率高達1 000 frame/s[3],而國內高速視頻圖像采集處理系統正處于發展中階段,一般來說采樣頻率不超過100 frame/s。目前,對高速視頻圖像進行采集處理可以分成兩類。第1類,基于軟件的處理技術,這類處理方式是在PC機的平臺上利用應用軟件對高速視頻圖像進行處理,此類處理方式對系統的實時性要求低,處理結果更加理想;第2類,基于硬件的處理,利用FPGA、DSP對高速視頻圖像進行處理,實時性好,更多地應用于工業控制領域,但其圖像處理結果不如前者理想[4]。由于高速視頻圖像實時采集與處理系統具有數據量大,數據相關性高,而且對圖像的幀、場時間具有嚴格的限制,因此,高速視頻圖像實時采集與處理領域對中央處理芯片、外部存儲芯片的工作速率以及核心算法的運算復雜度等都提出了極大的挑戰。
本課題設計的系統應用于工控領域,國內一些公司開發的高速視頻圖像采集卡多是基于DSP芯片進行處理,但DSP的串行處理方式限制了處理速度[5],由于FPGA具有并行處理能力與流水線技術,因此,本文選用高性能FPGA進行實時采集與處理[6]。
收稿日期:2015-06-12修改日期:2015-09-12
高速視頻圖像采用300 frame/s的速率進行采樣,分辨率為640像素×480像素的標清像素,采用四路高速攝像頭同步進行數據采集,則每秒采集的數據量達369 Mbyte,傳輸速率約為3 Gbit/s。因此,對主要芯片型號的選擇提出以下兩點要求:FPGA芯片應具有豐富的通用I/O接口以及邏輯單元;高速數據緩存模塊應構造多位數據傳輸總線以實現數據的高速緩存。
鑒于此,選擇Altera公司Cyclone IV GX系列芯片作為核心處理器,其可用I/O數達310,邏輯單元數為49 888;選擇4片DDR2構造64 bit總線,每片DDR2的容量為1 Gbit。當FPGA與DDR2之間的時鐘頻率為200 MHz時,傳輸速率達12.8 Gbit/s,充分滿足系統設計需求。
系統采用核心板+擴展板的方式構成。核心板主要包括FPGA+4片DDR2,承擔起高速視頻圖像采集處理的核心算法。系統功能模塊如圖1所示,圖中細線代表控制總線,粗線代表數據總線。

圖1 系統框圖
高速視頻圖像實時采集與處理系統工作原理為:首先采用4路高速CMOS攝像頭作為輸入,將得到的視頻信號經視頻解碼芯片轉換后再傳輸給FPGA,其中,FPGA通過IIC控制視頻解碼芯片;然后FPGA控制DDR2實現圖像數據的高速緩存,當DDR2完成一幀圖像的存儲以后,FPGA讀取DDR2中的數據并對其進行圖像處理;并將得到的結果輸出給VGA顯示模塊,并最終通過VGA接口進行顯示。
2.1高速視頻輸入模塊
本設計利用4路高速CMOS攝像頭采集到的視頻圖像信號作為輸入,采用Techwell公司的TW2867作為視頻解碼芯片,其可輸入4路復合視頻信號,PAL/NTSC/SECAM自動識別,輸出BT656,可多路復用總線,FPGA端解復用,實現多通道視頻圖像數據的同步輸入。FPGA通過IIC總線與視頻解碼芯片進行通信,FPGA與視頻解碼芯片之間的連接關系如圖2所示。

圖2 FPGA與TW2867連接關系示意圖
2.2高速緩存模塊
高速緩存DDR2在整個高速視頻圖像實時采集與處理系統硬件電路設計過程中占有重要位置。其總線寬度、存儲容量等參數對系統實時性產生極大的影響。本文采用4片DDR2構造64 bit總線,總容量為4 Gbit,FPGA與DDR2之間的時鐘工作頻率達200 MHz,DDR2內部時鐘頻率達400 MHz。圖3所示為高速緩存模塊(4片DDR2)與FPGA之間數據、地址、控制線之間連接關系示意圖。

圖3 FPGA與DDR2連接圖
在DDR2原理圖設計過程中,DDR2的時鐘信號線必須連接到FPGA中的differential I/O上;命令線、地址線連接到FPGA的通用I/O上即可;數據線DQ、數據選通信號線DQS必須連接到FPGA的DQ/DQS引腳上。
在PCB布線過程中,為保證系統運行過程中時序的正確性,要保證高速緩存模塊數據線等長布線。
2.3電源模塊
系統電源模塊作為整個系統正常工作的動力,其在電子系統設計過程中至關重要。在進行電源模塊設計之前,先對系統進行功耗分析,各主要芯片所需電壓、電流大小如表1所示。

表1 系統功耗分析
由表1中各芯片所需電壓、電流大小進行電源樹設計,系統選用專用電源芯片MP1495DJ,其支持4.5 V~16 V電壓輸入,為簡化設計,本系統全部采用12 V電壓輸入,輸出電壓由MP1495DJ中8腳的相關電阻R1、R2、RT決定,其中,R1、R2、RT所處位置以及大小可依據MP1495DJ數據手冊中給出的參考值進行選擇,這里不做贅述。系統電源樹設計如圖4所示。

圖4 電源樹設計
2.4電源完整性及信號完整性設計
電源完整性設計目的是在保證流經系統的電流足夠大的前提下盡可能降低電源的紋波。需要解決的核心問題是得到足夠低的電源目標阻抗。解決方案是合理地選擇和放置去耦電容,條件允許情況下可以選擇添加單獨的電源層、地層。利用PDN工具計算VCCINT的電源目標阻抗,結果如表2所示。
通過添加不同數量、不同大小的去耦電容,以保證VCCINT電源實際阻抗Zeff在Feffctive范圍內始終小于電源目標阻抗Ztarget,圖5所示為Zeff與頻率之間的關系(通過添加去耦電容得到)。表3列出來此時需要添加的去耦電容的大小以及數量。

表2 目標阻抗計算

圖5 電源阻抗與頻率關系圖

表3 去耦電容大小及數量
多數信號完整性[7]問題是由于反射問題引起的[8],通過引入合適的終端組件進行阻抗匹配可以將反射影響控制在可接受范圍內[9,10],如圖6所示。

圖6 不同終端阻值時反射分析圖
布線結束后,對PCB板進行信號完整性分析,圖6所示為某一網絡(信號完整性分析結果當中狀態顯示為failed)反射分析圖,通過在其端口增加大小不同的電阻,阻值變換范圍由0 Ω~150 Ω,圖中上、下部分分別是此網絡的連接端口。從中發現,當引入終端阻抗大小為80 Ω時,系統信號完整性檢測效果最好。
3.1高速視頻圖像采集模塊
四路圖像傳感器將得到的模擬視頻數據信號通過視頻解碼芯片傳輸給FPGA,其中,FPGA通過IIC總線配置視頻解碼芯片的寄存器。利用FPGA的兩個引腳模擬IIC總線時序。圖7所示為視頻解碼芯片內部寄存器配置流程圖。

圖7 配置視頻解碼芯片流程圖
3.2高速視頻圖像實時處理模塊
本文以基于Sobel的邊緣檢測算法為例,采用兩個3×3卷積核形成邊緣檢測算子,分別將之與圖像做平面卷積得到橫向與縱向檢測的梯度,最后將圖像兩個方向的梯度絕對值相加并進行閾值判斷,判斷像素是否為邊緣點。算法實現框圖如圖8所示。

圖8 Sobel算法實現框圖
由于FPGA具有并行處理能力與流水線技術,便于實現高速視頻圖像的的實時處理。以計算水平梯度Gx為例,通過構建Line Buffer的方式計算圖像中像素點P5的Gx。梯度Gx實現結構圖如圖9所示。

圖9 梯度Gx實現結構圖
圖中,P1,P2,…,P9為依次由圖像傳入的像素點,X1,X2,…,X9為Sobel算子的參數。Line Buffer通過使用 Megafunction中的 altshift_tab實現,其中,tap的個數以及每個tap輸出的緩存長度都設置為3。加法器及乘法器亦可以通過Megafunction構造。
3.3系統顯示模塊
高速視頻圖像實時采集與處理系統利用FPGA進行處理,并將處理結果通過VGA接口顯示。利用FPGA的兩個引腳模擬HSYNC與VSYNC控制信號。本文采用的顯示模式為640像素×480像素× 60 Hz,其時鐘與行掃描信號、場掃描信號之間的關系如圖10所示。

圖10 VGA接口時序圖
其中,場計數器驅動時鐘應為行計數器的溢出信號,當行計數器為800時,場計數器加1,場計數器的周期為525。當行計數器與場計數器同時計數到有效顯示區域時,圖像正確顯示。
利用Verilog語言可以方便構造出VGA正常工作所需要的時序信號,保證系統正常顯示。
基于FPGA的高速視頻圖像實時采集與處理系統硬件設計完成后,首先實現四路攝像頭的實時顯示,顯示結果見圖11所示。實驗過程中,目標實時顯示,無時滯發生。

圖11 四路攝像頭實時顯示結果
然后對其中一路攝像頭采集到的圖像信息進行邊緣提取并通過VGA接口顯示。圖12為通過VGA接口傳出的邊緣提取后圖像。通過系統的顯示設備可以檢測到系統每幀圖像的處理時間為16.7 ms,實時性好,動態畫面流暢,且同時邊緣提取圖像能夠清晰顯示,符合系統設計需求。

圖12 邊緣提取圖
高速視頻圖像實時采集與處理系統被廣泛應用于安防、智能車、監控等各領域。本文利用高性能FPGA、四片DDR2等器件進行硬件電路設計,充分滿足高速視頻圖像實時采集與處理過程中對系統實時性的需求,并在此基礎上實現了目標的邊緣檢測。實驗表明,系統動態畫面流暢,實時性好。
[1] Yahia Said,Taoufik Saidani,Fethi Smach,et al.Embedded Real-Time Video Processing System on FPGA[J].Lecture Notes in Computer Science,2012,7340:93-102.
[2] 張祥.高幀率視頻圖像獲取與實時處理系統硬件設計[D].西南交通大學,2014.
[3] Brekke B,Nilsen L C L,Lund J,et al.Ultra-High Frame Rate Tissue Doppler Imaging[J].Ultrasound in Medicine&Biology,2014,40(1):222-231.
[4] 葉敏,周文暉,顧偉康.基于FPGA的實時圖像濾波及邊緣檢測方法[J].傳感技術學報,2007,20(3):623-627.
[5] 馮輝宗,陳葉,徐洋.基于FPGA的實時圖像采集與Sobel邊緣檢測[J].傳感器與微系統,2011(6):116-118.
[6] 馮偉昌,林玉池,何冬.基于FPGA的雙通道實時圖像處理系統[J].傳感技術學報,2010,23(8):1118-1122.
[7] 白同云.高速PCB電源完整性研究[J].中國電子科學研究院學報,2006,1(1):22-30.
[8] T W,H C,T W.Overview of Power Integrity Solutions on Package and PCB:Decoupling and EBG Isolation[J].IEEE Transactions on Electromagnetic Compatibility,2010,52(2):134-140.
[9] 閆靜純,李濤,蘇浩航.高速高密度PCB電源完整性分析[J].電子器件,2012,35(3):296-299
[10]任勇峰,張凱華,程海亮.基于FPGA的高速數據采集存儲系統設計[J].電子器件,2015,38(1):135-139.

田杰(1990-),女,漢族,黑龍江哈爾濱人,在讀碩士研究生,主要研究領域為視頻圖像處理與微系統,ysdmhj@ 163.com;

王廣龍(1964-),男,教授,博士生導師,主要從事微傳感器與微納米系統研究。
Design of a High-Speed Real-Time Video Acquisition and Processing System Based on FPGA
TIAN Jie,WANG Guanglong*,QIAO Zhongtao,GAO Fengqi
(Laboratory of Nanotechnology and Microsystems,Ordnance Engineering College,Shijiazhuang 050003,China)
A high-bandwidth system based on high-performance FPGA is designed to deal with the contradiction between the high-volume data with real-time performance in video processing system.The system consists of the chips of Cyclone IV GX and four pieces of DDR2 which make up 64-bit bus.The circuit has been completed and the system is made up of image sensors,FPGA,DDR2,VGA controller and so on.The system realizes the real-time data acquisition,data-caching,processing and display.The experiment shows that high-speed real-time video acquisition and processing system can be achieved and the system has the characteristics of excellent real-time performance.
FPGA;real-time performance;video processing;time series analysis
TP391
A
1005-9490(2016)03-0623-05
EEACC:7220;0230H10.3969/j.issn.1005-9490.2016.03.024