Joe Mallett,賽靈思公司高級產(chǎn)品線經(jīng)理,, [email protected]
Akos Zarandy,,Eutecus公司聯(lián)合首席技術官兼副總裁,, [email protected]
范圍廣泛的安全分析應用對處理帶寬的要求迫使企業(yè)重新考慮系統(tǒng)硬件的設計方法。單個視頻和圖像DSP處理器已經(jīng)不能以可接受的數(shù)據(jù)速率完成某些計算 密集的分析運算了,。此外,,也沒有強大可靠的解決方案能夠在全視頻幀速率下處理高分辨率(HD)。這也迫使系統(tǒng)工程師考慮多芯片或其它單芯片系統(tǒng),。兩種解決 方案各有其優(yōu)點和缺點,。
由多片DSP組成的多芯片系統(tǒng)一般可為設計人員提供更為熟悉的設計流程,但卻增加了PCB成本,、占用板級/系統(tǒng)級空間,,同時還可能帶來系統(tǒng)性能問 題。另一方面,,單芯片解決方案看起來在成本,、封裝和功耗方面具有優(yōu)勢,但可能會在無形中增加設計人員的學習難度,,提高設計項目的復雜性和工程成本,,并且有 可能拖延產(chǎn)品發(fā)布的時間。
這也是位于加州伯克利的視頻分析公司Eutecus在開發(fā)下一代安全分析產(chǎn)品—多核視頻分析引擎(MVE™)時遇到的難題,。
我們的第一代產(chǎn)品基于德州儀器(TI)的達芬奇(DaVinci)數(shù)字媒體片上系統(tǒng)(SoC)平臺,。 但在第二代產(chǎn)品中,我們需要更強大的處理能力和系統(tǒng)集成度,。我們很快發(fā)現(xiàn)多個DSP器件的解決方案無論在成本上還是在系統(tǒng)一級效益都不高,。我們需要一個能 夠方便地將上一代產(chǎn)品移植過來,并且能夠為我們的第二代MVE提供更多特性的單芯片解決方案,。
經(jīng)過一番調(diào)研,,我們找到了賽靈思公司的Sp a r t a n ®- 3A DSP 3400A。該器件提供了126個專用XtremeDSP®DSP48A 邏輯片,,可以提供足夠的性能來滿足我們的系統(tǒng)要求,,并且價格也很有吸引力,。
當進一步了解到賽靈思嵌入式開發(fā)套件(EDK)支持Spartan-3A DSP之后,我們對設計移植方面的擔心也很快消失了,。賽靈思公司的EDK嵌入式開發(fā)套件可以實現(xiàn)基于賽靈思MicroBlaze®嵌入式處理器的雙處理器 硬件架構,,與TI公司DaVinci平臺雙處理器硬件架構類似。
選定器件之后,,開始將現(xiàn)有的基于DaVinci的代碼移植到賽靈思雙處理器嵌入式系統(tǒng),,以創(chuàng)造一個單芯片視頻安全分析設計。然后,,在FPGA構造中 創(chuàng)建了適量的加速器模塊來滿足性能要求,,其中包括在全幀速率下處理高分辨率視頻。這就是第二代MVE系統(tǒng),,現(xiàn)在已經(jīng)成功地銷售到航空航天/國防,、機器視覺 和監(jiān)控市場。
視頻分析產(chǎn)品簡介
多核視頻分析引擎(MVE)基于InstantVision Embedded®軟件和能夠提供許多高級功能的專用C-MVA®協(xié)處理器,。
MVE/C-MVA最新版本能夠以全幀速率處理高分辨率視頻,。其功耗還不到1瓦,能夠以全并行方式執(zhí)行多種事件檢測和分類算法,。圖1給出的是一個交 通監(jiān)控應用中視頻分析輸出的例子,,針對不同類型的車輛、車流方向,、車道變化以及違規(guī)變道等情況進行了分類,,所有這些都是并發(fā)進行的并且利用不同的顏色進行 了標記。

設計C-MVA協(xié)處理器的目標是能夠擴展其運算的復雜度以支持密集物體空間的分析功能,,此時需要重疊分析和處理不完整的對象/事件,,因此特別具有挑戰(zhàn)性。專用DSP在這方面的支持性很差,,而且計算可擴展能力也不好,。而FPGA在這兩個方面則具有更大的靈活性。
Spartan-3A DSP 3400A FPGA中的126個XtremeDSP DSP48A邏輯片能夠提供高達30 GMAC的DSP性能,,因此完全能夠滿足視頻分析應用苛刻的成本和性能要求,。賽靈思FPGA還允許我們根據(jù)客戶需求增加更多視頻分析功能以及相關的事件檢 測事例。我們在表1中做了小結,。

此外,,通過賽靈思FPGA和ISE®設計套件工具,視頻分析設計小組可以為終端客戶定制解決方案方面提供更大靈活性,。通過快速建立標準分辨率和高分 辨率視頻處理原型,,我們可以快速定制視頻分析引擎和片上系統(tǒng)(SoC)解決方案。這樣我們就可以根據(jù)客戶需求更高效地利用 Spartan-3A DSP 3400A或成本更低的Spartan-3A DSP 1800A FPGA器件中的可用資源,。
FPGA解決方案另一個好處是可以利用同一硬件平臺創(chuàng)建多種不同的衍生產(chǎn)品,。由于我們已經(jīng)使用VHDL設計了多種分析加速器引擎,,因此可以將這些專 用內(nèi)核集成到C-MVA協(xié)處理器中。這種方法允許工程師重新利用雙MicroBlaze嵌入式系統(tǒng)來創(chuàng)建不同的FPGA編程文件,,這樣就構成了高度可擴展 的解決方案,,可以輕松調(diào)節(jié)適應范圍廣泛的視頻分析應用,。
從DaVinci移植到賽靈思FPGA
我們先前一代的視頻分析產(chǎn)品基于TI DaVinci數(shù)字媒體SoC芯片TMS320DM6446,。該芯片包括ARM9x處理器和C64x+ DSP協(xié)處理器,。在設計中,,我們使用 ARM9x 做通信和控制,,用 C64x+ 做分析算法的DSP處理,。然而,,兩者組合起來構成的系統(tǒng)仍然無法滿足我們第二代產(chǎn)品所需要的高性能處理要求,。因此,,我們轉向了Spartan-3A DSP FPGA系列。
通過創(chuàng)建擁有兩個獨立運行MicroBlaze v7軟內(nèi)核處理器的賽靈思嵌入式系統(tǒng),,我們簡化了設計移植任務,。
這種架構使我們可以分別移植ARM和DSP處理器代碼,從而大大簡化了設計移植過程,。圖2給出了Eutecus硬件系
統(tǒng)的框圖,,以及基于MVE的參考SoC設計。

我們的MVE引擎包括運行在MicroBlaze (MB0) 上的InstantVision嵌入式軟件,,運行在 MicroBlaze (MB1) 上的系統(tǒng)控制和通信部分以及C-MVA協(xié)處理器,。C-MVA協(xié)處理器是運行在FPGA構造上的硬件加速器IP內(nèi)核模塊鏈。
利用ISE設計套件和MicroBlaze軟核,,我們的ARM和DSP代碼移植工作相當簡單,。一個突出優(yōu)點就是,InstantVision跨平臺環(huán)境是采用高級標準C/C++語言編寫的,,只需要很少的修改,。
一旦完成代碼移植,我們驗證其功能的正確性并且識別出性能瓶頸,。事實表明,,優(yōu)化和加速對原 TI 處理器開發(fā)的C/C++代碼是一項重要挑戰(zhàn),因為當初在開發(fā)這一平臺的過程中,,我們在匯編級優(yōu)化時使用了幾個DaVinci C64x+協(xié)處理加速模塊,。在轉換過程中,我們遵循以下一系列步驟:首先利用高級C函數(shù)來重寫這些模塊,。最后,,用運行在FPGA構造上的同等功能加速器模 塊來代替這些模塊的大部分功能。
從功能的觀點來看,, MVE解決方案由三層組成,,將接收標準/高分辨率視頻流作為輸入數(shù)據(jù),,然后生成事件檢測元數(shù)據(jù)。生成的元數(shù)據(jù)提供目標/事件跟蹤和分類支持,,同時將一些用于調(diào)試目的的圖像流也作為分析輸出,。我們的功能
模塊要么通過運行在MicroBlaze處理器上的嵌入式軟件實現(xiàn),要么就以專用IP內(nèi)核方式實現(xiàn),。我們將這些專用硬件
加速器置入FPGA構造,,這些加速器構成的加速器鏈就組成了C-MVA分析協(xié)處理器。
如圖3所示,,MVE視頻分析引擎的三個算法層包括幾個主要的功能模塊,。利用FPGA中可用資源動態(tài)配置的專用IP內(nèi)核可大大加速這些功能模塊。C- MVA協(xié)處理器的設計基于這些IP內(nèi)核,,整個分析算法的前端和中層(參見圖4)加速也是如此,。我們可以利用賽靈思ISE設計套件支持的這種模塊化設計方法 同時在性能和功耗方面對系統(tǒng)進行擴展。


利用FPGA加速器模塊增壓
為真正發(fā)揮FPGA視頻分析系統(tǒng)的全面潛力,我們需要將視頻加速引擎集成到嵌入式系統(tǒng)中,。 我們預見到幾個性能瓶頸,,因此設計小組開始采用VHDL進行一組加速器的早期開發(fā)。 作為賽靈思ISE設計套件和嵌入式開發(fā)套件 (EDK)的一部分,,代碼剖析器幫助我們進一步確定性能瓶頸并開發(fā)設計所需要的所有加速器模塊,。 表2提供了系列IP內(nèi)核的全面列表。

與其他開發(fā)小組一樣,,我們的開發(fā)小組也分別由不同的硬件和軟件開發(fā)人員組成,。對于維持開發(fā)人員的生產(chǎn)力以保證項目的成功來說,在這兩個設計領域之間保留足夠的抽象非常關鍵,。我們利用Xilinx Platform Studio中的Create
IP Wizard來改進這一任務,,為硬件加速模塊生成RTL模塊和軟件驅動文件。
這些模塊包括訪問寄存器所需要的接口邏輯,、嵌入式系統(tǒng)中的DMA邏輯和FIFO,。一旦利用模塊創(chuàng)建了RTL,我們就將其放到嵌入IP目錄中,,設計人員可根據(jù)需求進一步修改,。
我們的IP內(nèi)核開發(fā)流程包括一個通用的標準外設模塊開發(fā)流程,用于基于PLB46MPMC-OPB的回傳,。這些外設包括單端和多I/O原型 (SIMO,MIMO, MISO模型),,支持我們?yōu)橐罂量痰膱D像流處理算法靈活創(chuàng)造多線程協(xié)處理器流水線。在設計和定制不同分析引擎的過程中,,通過近乎任意次序對IP內(nèi)核進行 組合和配置,,我們達到了這方面的要求,。
MVE分析引擎由InstantVision嵌入式軟件模塊以及構成C-MVA分析協(xié)處理器的硬件加速器組成。我們在一片Xilinx Spartan-3A-DSP 3400A FPGA中實現(xiàn)了MVE的原型,,并創(chuàng)建了SoC參考設計,。其中包括所有通信和數(shù)據(jù)流所需要的I/O功能(參考圖2了解完整的硬件固件框圖)。 這一完整的SoC參考設計使用了91%的邏輯片資源,、 81%的塊RAM和32%的DSP邏輯片,,不僅包含MVE分析引擎,還包括所有支持I/O模塊,。
單就MVE分析引擎來說(不包括MPMC-PLB主干和專用I/O組件),,它僅使用了46%的邏輯片、44%的塊RAM和23%的DSP邏輯片,,因此可以將其移植到成本更低的Spartan3A-DSP 1800A FPGA器件。
在單個時鐘周期內(nèi),,我們設計的CMVA協(xié)處理器中所有IP內(nèi)核可以完成所有相關處理,。這一功能與異步FSL接口相結合,系統(tǒng)集成商能夠利用來自系統(tǒng) 其它部分的不同時鐘域來驅動C-MVA協(xié)處理器,。這樣做可以讓C-MVA在較低的像素時鐘頻率中運行,,同時利用更高頻率的內(nèi)部系統(tǒng)時鐘來驅動主干 (backbone),從而在保證系統(tǒng)性能要求的同時大大降低功耗,。
定制,、封裝和系統(tǒng)集成
為驗證并進一步開發(fā)這一系統(tǒng),我們創(chuàng)建了一個包括所有軟件層在內(nèi)的安全/監(jiān)控應用,,允許用戶在系統(tǒng)的不同層面快速集成我們的產(chǎn)品,。完整SoC設計在單個參考設計中包括硬件IP內(nèi)核、固件和軟件,,請見圖5,。

我們可在硬件、固件和軟件組件等不同層次進行靈活定制以組成系統(tǒng)集成,。服務器級的定制包括 PGA中的可定制SoC設計,,而在客戶(配置)一級,則可在WIN32或 Net API層進行修改,。這種架構使我們及客戶可快速實現(xiàn)不同配置和測試接口的原型,。用戶可以在UART或TCP/IP上實現(xiàn)客戶-服務器 (C/S)通信,從而提供靈活的配置管理,、性能精細調(diào)整,、狀態(tài)監(jiān)控和固件升級。
盡管剛剛完成第二代產(chǎn)品,,但我們已經(jīng)開始考慮第三代產(chǎn)品的要求,。根據(jù)在這一項目中取得的經(jīng)驗,,我們在新一代產(chǎn)品中會著重考慮賽靈思的FPGA器件,特別是賽靈思公司正在致力于利用最先進的工藝技術推出更可靠更先進的新器件和DSP功能,。