于洪松,韓廣良,孫海江,李桂菊,武治國,李賡飛
(1.中國科學院 長春光學精密機械與物理研究所,吉林 長春 130033;2.中國科學院大學,北京 100049)
高速視頻圖像處理具有數據量大和實時性高的特點。由于高速視頻應用現場監測的環境條件復雜多變,因此經常需要進行系統的軟硬件升級,這導致了高速視頻圖像處理系統具有復雜性高、設計難度大、設計周期長等特點[1-2]。可編程通用系統的優點在于不需要對硬件進行頻繁改動,只需要對配置文件進行重新燒寫、對上位機進行升級及少量的改動,而這些工作是可以在不影響現場使用的條件下就進行的,因此可以大大降低系統設計時間及成本[3]。
FPGA+DSP架構在圖像處理系統中得到了廣泛的應用,FPGA的并行處理及可編程的特性使得硬件能獲得很高的實時性,而DSP高效的乘加結構及超高的運算性能又特別適合進行圖像處理的算法實現,這使得這種架構尤其適用于實時圖像處理[4-9]。
Compact-PCI總線(以下簡稱CPCI總線)是一種成熟的計算機總線,其支持熱插拔及完善的標準定義使得CPCI架構具有很高的可靠性,再加上其兼容性高、集成度高且便于擴展,使得CPCI架構很適合高速視頻信號處理系統的控制相關處理[2,10]。
本文介紹了基于CPCI總線的FPGA+DSP架構的通用高速視頻信號處理系統的設計及應用。文中采用Xilinx公司專門用于高性能邏輯設計的 Virtex-IV 系列 FPGA XC5VLX50T、TI公司高性能定點數字信號處理器TMS320C6455及PLX公司的總線控制器芯片PCI9656設計了基于CPCI總線的FPGA+DSP架構的通用視頻圖像處理系統。實驗表明,本文設計的系統具有實時性高、穩定性高、集成度高、擴展性好等特點。
圖1為通用視頻圖像處理系統的原理框圖。系統包含兩個幾乎完全相同的部分。每一部分都有圖像采集、數據處理、視頻顯示及PCI控制等模塊,同時配備了豐富的擴展接口,包括串口、千兆以太網接口、擴展GPIO接口等。DSP之間通過McBSP相連接進行通信,FPGA之間通過LVDS相連接進行通信。

圖1 通用視頻圖像處理系統的硬件框圖Fig.1 Block diagram of general-purpose video image process system
DSP掛接4MB的Flash-ROM,可擴展為8MB,用于存儲程序代碼。FPGA采用PROM方式進行加載,斷電重啟后程序不會丟失,并配有狀態指示燈便于觀察PROM加載及FPGA的工作狀態。
FPGA采用Camera Link的Base模式與相機連接,用于采集數字圖像;FPGA掛接一片ADV7188視頻解碼芯片,可采集模擬圖像,數字化后輸出給FPGA進行處理。FPGA掛接一片1 GByte的DDR2SODIMM內存條,時鐘速度可達200MHz,訪問寬度64bit,用于存儲圖像數據。FPGA掛接一片ADV7176視頻編碼器,用于輸出模擬復合視頻信號到監視器。FPGA掛接兩路UART,一路用于RS422串口,另一路用于Camera Link的命令串口,用于與相機通信,進行相機工作模式的配置及基本控制信號的收發。FPGA掛接一個千兆以太網接口,用于與上位機通訊。QSE接口用于與視頻顯示增強板進行高速連接。
考慮到系統的通用性,首先確定負責主要算法的DSP器件的選擇,之后根據DSP選擇協處理器FPGA,最后選擇存儲器件。
實時視頻處理要求DSP器件必須具有主頻高、內部存取速率高、外部接口速率高等特點,為此選用美國 Texas Instruments公司出品的TMS320C6455(以下簡稱6455)。6455為高性能定點處理器,最高工作主頻高達1.2GHz。片內高速存儲空間采用改進的哈佛結構,分為兩級Cache。具有多達64個獨立通道的EDMA數據傳輸控制器。與片外的接口包括高速64bits寬度的EMIFA及32bits寬度的DDR2擴展存儲器接口,最高吞吐能達到1 064MB/s。同時還提供兩路高速的緩沖串口 McBSP,以供通信使用[11]。
協處理器FPGA負責原始數據流的控制、轉換及接口的適配,由于實時視頻處理具有數據量大、數據速率高、運算速度快的特點,因此FPGA應具有時鐘模塊便于管理、存儲器容量大、接口速率高及具有足夠的硬件加速器等特點。為此采用美國Xilinx公司專用于高性能邏輯應用的Virtex-5系列FPGA LX50T。Virtex-5系列 FPGA具有靈活的時鐘管理器,內嵌6個時鐘模塊。內部具有高達16.4Mbits的增強型存儲器Block RAM,并具有內置FIFO控制邏輯。最新的ChipSync技術簡化了針對高帶寬存儲器和其它源同步接口板的設計。內置的時鐘主頻高達550 MHz的DSP48Eslice具有能夠提高DSP性能的乘累加器結構,加強了硬件加速的技術[12]。
由于6455具有預置的DDR2存儲器接口,而Xilinx公司對于Virtex-5系列FPGA也提供了針對DDR2的參考設計,又兼高速視頻處理所需的存儲空間很大,故選用 micron公司-MT8HTF12864HZ-667H1型號的DDR2 SDRAM作為本系統的存儲器。MT8HTF12864 HZ-667H1總容量高達1 024Mbytes,位寬64 bit,數據帶寬可達5.3GB/s[13]。
為了增加本處理系統的通用性,支持模擬輸入圖像和數字輸入圖像兩種采集方式。
針對數字輸入的圖像,采用Camera Link進行圖像的采集。Camera Link總線標準專門為數字相機制定,針對相機圖像數據及相機控制信號的定義、相機的工作模式、數據位的分配及連接件標準做了詳細的規定,由于其具有更少的連接線、更高的傳輸速率以及更小的電磁干擾的特性而成為市面上主流的相機接口。
圖2為本系統針對數字輸入圖像的采集模塊的硬件框圖。

圖2 數字輸入圖像采集模塊的硬件連接Fig.2 Hardware interconnection of image acquisition module for digital input
本設計采用Camera Link的base模式,采集命令到達后,狀態機啟動,數字相機輸出的LVDS差分數據經過處理芯片轉換成28位并行數據,其中包括24位視頻數據,幀同步信號、行同步信號、數據同步信號以及一個備用信號[14]。
針對模擬輸入的圖像,采用ADI公司的ADV7188視頻解碼芯片進行圖像采集。
ADV7188具有12路模擬輸入通道,4路內部集成54MHz、12-bit ADCs,支持包括 NTSC,PAL及SECAM等多種常用色彩制式,支持I2C協議對芯片進行配置,具有色度瞬態增強及數字噪聲衰減特性[15]。
圖3為本系統針對模擬輸入圖像的采集模塊的硬件連接框圖。
在攝像頭采集到視頻后,在FPGA中設置芯片的寄存器,在DSP中通過I2C協議對芯片進行配置,對模擬輸入圖像進行A/D轉換。采用外部27MHz晶振作為工作時鐘。

圖3 模擬輸入圖像采集模塊的硬件連接Fig.3 Hardware interconnection of image acquisition module for analog input
數據處理模塊主要涉及算法實現及數據存取的相關操作。
算法實現的核心器件為FPGA及DSP。DSP通過AWE#和AOE#控制讀寫使能,通過EMIF方式將20位地址線和32位數據線連接到FPGA上進行數據交換及相應的算法處理。DSP是系統的核心處理器,負責算法的調度,接收來自FPGA的數據后進行相應算法的實現,得到的結果發送給上位機以供監測或者存入DDR2中進行存儲。FPGA作為協處理器,負責數據流的控制,同時完成對視頻編解碼器等設備的復位及寄存器的配置;對采集到的原始圖像進行字節截斷及一些時序控制操作,以配合DSP的運算及控制操作。
數據存取涉及到FPGA與DSP對DDR2的操作。FPGA由于可以建立具有高速緩存的DPRAM而能夠完成對DDR2的直接操作。FPGA對DDR2SDRAM操作的程序采用Xilinx公司的針對DDR2SDRAM的IP核MIG(Memory Interface Generator)進行配置并自動生成[16]。
視頻數據通過FPGA入口處的DPRAM緩沖進入FPGA后,在FPGA中進行原始視頻數據到字節數據的轉換,寫入FPGA出口處的DPRAM中。當檢測到寫入一行圖像后,啟動寫DDR2操作,將該行圖像數據存入DDR2,寫滿一幀數據后,地址自動指向下一幀數據存儲空間的首地址。
DSP與CPCI通過FPGA以總線占用的方式對DDR2進行間接操作,以中斷的方式相互通信。DSP操作DDR2的流程圖如圖4所示。

圖4 DSP操作DDR2的流程圖Fig.4 Flowchart of DSP accessing DDR2
具體操作步驟如下:
(1)查詢DDR2被占用的標識地址0x42000寄存器是否為1;
(2)若為1,則DDR2正在被占用,跳回步驟(1)繼續查詢;若為0,則主動占用,執行步驟(3)進行主動占用;
(3)向標識地址寄存器0x42000寫1完成對DDR2的占用;
(4)完成對DDR2的占用后,若需對DDR2進行讀操作,則轉向步驟(5)初始化讀操作;若需對DDR2進行寫操作,則轉向步驟9)初始化寫操作;
(5)向地址0x42002寫入高16位地址;
(6)向地址0x41001寫1發起讀DDR2命令;(7)從地址0x40000~0x40fff取數;
(8)若需要繼續操作DDR2,轉向步驟(4)進行對DDR2操作的流程判斷;若操作已完成,則向0x42000地址寫0釋放對DDR2的占用;
(9)向地址0x42001寫入高16位地址;
(10)向地址0x40000~0x40fff寫入4K×32bit的數據;
(11)若需繼續操作 DDR2,則轉向步驟(4)進行對DDR2操作的流程判斷;若是操作已完成,則向0x42000地址寫0釋放對DDR2的占用。
在對視頻數據進行處理后,需要對視頻數據進行準確的回放顯示。
采用ADI公司具有高性能視頻編碼功能的ADV7176芯片,在FPGA中設置芯片的寄存器,在DSP中通過I2C總線協議對芯片進行配置,將數字信號轉換成PAL制式電視信號,通過常用的模擬視頻監視器即可對輸出信號進行監測。
ADV7176具有4路10bits的高性能模擬輸出通道,支持ITU-R BT601/656YCrCb到PAL/NTSC等多種制式,高達80dB的視頻信噪比也使得視頻的編碼能夠應對各種復雜現場的需求[17]。
傳統的基于FPGA+DSP架構的視頻圖像處理系統與上位機的人機交互一般通過通信口實現,難以做到對系統的靈活控制。本系統上位機通過CPCI總線控制視頻處理單元,因此可以進行一些對圖像算法的復雜控制及對整個系統的調控,增強了視頻圖像處理系統的通用性。以紅外可見雙通道的目標跟蹤系統為例,上位機程序可以選擇脫靶量來源、跟蹤通道、跟蹤方式、邊沿選取模式、閾值的人工調整及跟蹤目標的數量等。
針對PCI接口的設計一般有兩種方案,一種是在FPGA內部直接進行邏輯設計,但是這種方案需要耗費的資源很多,而且調試周期長,難度大;另一種方案是采用總線控制芯片來簡化設計,為此選用PLX公司生產的為高速PCI總線應用設計的通用I/O芯片PCI9656。
PCI9656具有面向三種處理器局部總線類型的連 接 模 式:M 模 式——適 配 Motorola MPC850、MPC860以及IBM PowerPC 801系列的處理器;C模式——適配Intel i960、DSPs、定制的ASICs、FPGAs以及其他的處理器;J模式——適配Intel i960、IBM PowerPC 401、DSPs以及一些其他處理器。基于通用性的考慮,設計中采用了適配大多數處理器的C模式。
PCI9656具有3種數據傳輸模式:直接主控模式、直接從動模式以及DMA模式。本系統中,大數據量連續傳輸采用DMA模式,其他參數的傳輸采用直接主控模式以及從動模式[18]。
PCI9656的配置需要3部分:首先由與PCI9656對應的EEPROM芯片對其初始化參數進行設置,其次在FPGA程序中對PCI9656進行初始化配置,最后在上位機進行其他的設置。圖5為PCI9656芯片與FPGA的連線圖。PCI9656芯片的驅動程序可以從PLX公司提供的配套開發包中獲取,開發包中還提供了與上位機進行通信的動態鏈接庫文件,內有豐富的函數可供調用,通過VC++環境即可編寫出相應的上位機控制界面。限于篇幅,在此不再具體介紹上位機程序的工作流程。

圖5 PCI9656芯片與FPGA的硬件連接Fig.5 Hardware interconnection between PCI9656 and FPGA
為驗證本系統的有效性,搭建實物平臺,進行實驗驗證。平臺實物圖如圖6所示。

圖6 實驗平臺Fig.6 Platform of experiment
分別采用4種工程常用的相機進行本系統的實時性驗證實驗,兩臺紅外相機的分辨率分別為320×256及640×512,像素位寬均為14bits,兩臺可見相機的分辨率均為1 024×1 024,像素位寬分別為8bits及12bits。分別采用相同的目標跟蹤算法,在DSP內編寫了上位機控制程序進行軟硬件實驗。

圖7 本系統的目標跟蹤效果圖Fig.7 Result of the system aiming at target tracking
實驗以月球上亮度高的區域為跟蹤目標,采用圖像預處理、直方圖自適應閾值及重心跟蹤方式,進行全視場多目標捕獲。上位機通過cPCI總線控制選擇跟蹤目標,鎖定目標后跟蹤穩定,實現了實時跟蹤,效果良好。跟蹤的效果圖如圖7所示。
表1列出分別采用4種相機實現全視場捕獲所用的時間及相關的相機信息。

表1 針對不同相機的實驗結果Fig.1 Results of the system at different cameras
設計并實現了基于CPCI總線的FPGA+DSP架構通用視頻圖像處理系統,通過PCI總線與傳統FPGA+DSP架構的結合,擴展了圖像處理系統的應用范圍。實驗表明,本文設計的視頻圖像處理系統在實際應用中具有實時性高、集成度高、交互性好、擴展性好等特點,已被應用于某目標跟蹤系統中,滿足了實際應用的需求。
[1] 樊博,王延杰,孫宏海,等 .FPGA實現高速實時多端口圖像處理系統的研究[J].液晶與顯示,2013,28(4):620-625.Fan B,Wang Y J,Sun H H,et al.High speed real-time multiport image processing system realized on FPGA [J].Chinese Journal of Liquid Crystals and Display,2013,28(4):620-625.(in Chinese)
[2] 葉有時,趙保軍,唐林波,等.多目標實時跟蹤可編程片上系統的軟件優化[J].光學精密工程,2011,19(3):681-689.Ye Y S,Zhao B J,Tang L B,et al.Software optimization of multi-target real-time tracking SOPC system[J].Optics and Precision Engineering,2011,19(3):681-689.(in Chinese)
[3] 王本明,趙前晟,丁海鋒,等 .基于CPCI總線的通用FPGA信號處理板的設計[J].電子科技,2009,22(10):25-28.Wang B M,Zhao Q S,Ding H F,et al.Design of general FPGA signal processing board based on CPCI bus[J].Electronic Science and Technology,2009,22(10):25-28.(in Chinese)
[4] 蘇宛新,程靈燕,程飛燕 .基于DSP+FPGA的實時視頻信處理系統設計[J].液晶與顯示,2010,25(1):145-148.Su W X,Cheng L Y,Cheng F Y.Design ofreal-time video signal processing system based on DSP+ FPGA[J].Chinese Journal of Liquid Crystals and Display,2010,25(1):1145-148.(in Chinese)
[5] 張向陽,程勇策,曲思潼 .基于DSP+FPGA的Camera Link接口相機的圖像處理平臺設計[J].電視技術,2013,37(15):215-219.Zhang X Y,Cheng Y C,Qu S T.Camera withcamera link interface image process platform based on DSP and FPGA[J].Video Engineering,2013,37(15).(in Chinese)
[6] 王靜軒,尹傳歷 .基于DSP和FPGA的嵌入式實時圖像增強系統[J].液晶與顯示,2013,28(3):459-463.Wang J X,Yin C L.Embedded color image enhancement system based on DSP and FPGA[J].Chinese Journal of Liquid Crystals and Display,2013,28(3):459-463.(in Chinese)
[7] 朱明,魯劍鋒 .基于DSP+FPGA結構圖像處理系統設計與實現[J].計算機測量與控制,2004,12(9):866-869.Zhu M,Lu J F.Design andimplementation of digital image processing system based on DSP + FPGA architecture[J].Computer Measurement and Control,2004,12(9):866-869.(in Chinese)
[8] 高楊,劉榮科,胡偉 .基于FPGA+DSP的高清視頻圖像系統設計與實現[J].電子測量技術,2011,34(1):69-73.Gao Y,Liu R K,Hu W.Design and implementation of high definition video image system based on FPGA+ DSP[J].Electronic Measurement and Technology,2011,34(1):69-73.(in Chinese)
[9] 李易難,牛燕雄,楊露 .基于DSP+FPGA視頻圖像采集處理系統的設計[J].電子測量技術,2014,37(1):58-61.Li Y N,Niu Y X,Yang L.Design ofvideo image sampling and processing system based on DSP and FPGA[J].Electronic Measurement and Technology,2014,37(1):58-61.(in Chinese)
[10] PICMG.PICMG 2.0compact PCI specification[R].PCI Industrial Computers Manufactures Group,1999.
[11] Texas Instruments.TMS320C6xoptimizing C compiler user guide[R].Texas Instruments Incorporated,1999.
[12] Xilinx Incorporated.Virtex-5family overview[R].Xilinx Incorporated,2009.
[13] Micron Technology.Datasheet of MT8HTF3264HY-667[R].Micron Technology,2004.
[14] AIA.Specifications of the camera link interface standard for digital cameras and frame grabbers[R].2004.
[15] Analog Devices.Datasheet of ADV7188[R].Analog Devices,2007.
[16] Xilinx.Interfacing micron DDR2memory modules to Xilinx Virtex5FPGAs:A step-by-step guide[R].Xilinx,2008.
[17] Analog Devices.Datasheet of ADV7175A/7176A[R].Analog Devices,2000.
[18] PLX Technology.PCI 9656BA data book[R].PLX Technology,2003.