視頻分析對性能處理的要求可充分發(fā)揮賽靈思FPGA的并行架構(gòu)、嵌入式和DSP處理能力所帶來的優(yōu)點,。
范圍廣泛的安全分析應(yīng)用對處理帶寬的要求迫使企業(yè)重新考慮系統(tǒng)硬件的設(shè)計方法,。單個視頻和圖像DSP處理器已經(jīng)不能以可接受的數(shù)據(jù)速率完成某些計算密集的分析運(yùn)算了。此外,,也沒有強(qiáng)大可靠的解決方案能夠在全視頻幀速率下處理高分辨率(HD),。這也迫使系統(tǒng)工程師考慮多芯片或其它單芯片系統(tǒng)。兩種解決方案各有其優(yōu)點和缺點,。
由多片DSP組成的多芯片系統(tǒng)一般可為設(shè)計人員提供更為熟悉的設(shè)計流程,但卻增加了PCB成本,、占用板級/系統(tǒng)級空間,,同時還可能帶來系統(tǒng)性能問題,。另一方面,單芯片解決方案看起來在成本,、封裝和功耗方面具有優(yōu)勢,,但可能會在無形中增加設(shè)計人員的學(xué)習(xí)難度,提高設(shè)計項目的復(fù)雜性和工程成本,,并且有可能拖延產(chǎn)品發(fā)布的時間,。
這也是位于加州伯克利的視頻分析公司Eutecus在開發(fā)下一代安全分析產(chǎn)品—多核視頻分析引擎(MVE™)時遇到的難題。
我們的第一代產(chǎn)品基于德州儀器(TI)的達(dá)芬奇(DaVinci)數(shù)字媒體片上系統(tǒng)(SoC)平臺,。 但在第二代產(chǎn)品中,,我們需要更強(qiáng)大的處理能力和系統(tǒng)集成度。我們很快發(fā)現(xiàn)多個DSP器件的解決方案無論在成本上還是在系統(tǒng)一級效益都不高,。我們需要一個能夠方便地將上一代產(chǎn)品移植過來,,并且能夠為我們的第二代MVE提供更多特性的單芯片解決方案。
經(jīng)過一番調(diào)研,,我們找到了賽靈思公司的Spartan®-3A DSP 3400A,。該器件提供了126 個專用 XtremeDSP®DSP48A邏輯片,可以提供足夠的性能來滿足我們的系統(tǒng)要求,,并且價格也很有吸引力,。
當(dāng)進(jìn)一步了解到賽靈思嵌入式開發(fā)套件(EDK)支持Spartan-3A DSP之后,我們對設(shè)計移植方面的擔(dān)心也很快消失了,。賽靈思公司的EDK嵌入式開發(fā)套件可以實現(xiàn)基于賽靈思MicroBlaze®嵌入式處理器的雙處理器硬件架構(gòu),,與TI公司DaVinci平臺雙處理器硬件架構(gòu)類似。
選定器件之后,,開始將現(xiàn)有的基于DaVinci的代碼移植到賽靈思雙處理器嵌入式系統(tǒng),,以創(chuàng)造一個單芯片視頻安全分析設(shè)計。然后,,在FPGA構(gòu)造中創(chuàng)建了適量的加速器模塊來滿足性能要求,,其中包括在全幀速率下處理高分辨率視頻。這就是第二代MVE系統(tǒng),,現(xiàn)在已經(jīng)成功地銷售到航空航天/國防,、機(jī)器視覺和監(jiān)控市場。
視頻分析產(chǎn)品簡介
多核視頻分析引擎(MVE)基于InstantVision Embedded® 軟件和能夠提供許多高級功能的專用C-MVA®協(xié)處理器,。
MVE/C-MVA最新版本能夠以全幀速率處理高分辨率視頻,。其功耗還不到1瓦,能夠以全并行方式執(zhí)行多種事件檢測和分類算法,。圖1給出的是一個交通監(jiān)控應(yīng)用中視頻分析輸出的例子,,針對不同類型的車輛、車流方向,、車道變化以及違規(guī)變道等情況進(jìn)行了分類,,所有這些都是并發(fā)進(jìn)行的并且利用不同的顏色進(jìn)行了標(biāo)記,。
圖 1. 多內(nèi)核視頻分析引擎 (MVE)及示例應(yīng)用的發(fā)展路線圖
設(shè)計C-MVA協(xié)處理器的目標(biāo)是能夠擴(kuò)展其運(yùn)算的復(fù)雜度以支持密集物體空間的分析功能,此時需要重疊分析和處理不完整的對象/事件,,因此特別具有挑戰(zhàn)性,。專用DSP在這方面的支持性很差,而且計算可擴(kuò)展能力也不好,。而FPGA在這兩個方面則具有更大的靈活性,。
Spartan-3A DSP 3400A FPGA中的126個XtremeDSP DSP48A邏輯片能夠提供高達(dá)30 GMAC的DSP性能,因此完全能夠滿足視頻分析應(yīng)用苛刻的成本和性能要求,。賽靈思FPGA還允許我們根據(jù)客戶需求增加更多視頻分析功能以及相關(guān)的事件檢測事例,。我們在表1中做了小結(jié)。
表1: 典型事件檢測應(yīng)用中支持的視頻分析功能
此外,,通過賽靈思FPGA和ISE® 設(shè)計套件工具,,視頻分析設(shè)計小組可以為終端客戶定制解決方案方面提供更大靈活性。通過快速建立標(biāo)準(zhǔn)分辨率和高分辨率視頻處理原型,,我們可以快速定制視頻分析引擎和片上系統(tǒng)(SoC)解決方案,。這樣我們就可以根據(jù)客戶需求更高效地利用Spartan-3A DSP 3400A或成本更低的Spartan-3A DSP 1800A FPGA器件中的可用資源。
FPGA解決方案另一個好處是可以利用同一硬件平臺創(chuàng)建多種不同的衍生產(chǎn)品,。由于我們已經(jīng)使用VHDL設(shè)計了多種分析加速器引擎,,因此可以將這些專用內(nèi)核集成到C-MVA協(xié)處理器中。這種方法允許工程師重新利用雙MicroBlaze嵌入式系統(tǒng)來創(chuàng)建不同的FPGA編程文件,,這樣就構(gòu)成了高度可擴(kuò)展的解決方案,,可以輕松調(diào)節(jié)適應(yīng)范圍廣泛的視頻分析應(yīng)用。
從DaVinci移植到賽靈思FPGA
我們先前一代的視頻分析產(chǎn)品基于TI DaVinci數(shù)字媒體SoC芯片TMS320DM6446,。該芯片包括ARM9x處理器和C64x+ DSP協(xié)處理器,。在設(shè)計中,我們使用ARM9x做通信和控制,,用C64x+做分析算法的DSP處理,。然而,兩者組合起來構(gòu)成的系統(tǒng)仍然無法滿足我們第二代產(chǎn)品所需要的高性能處理要求,。因此,,我們轉(zhuǎn)向了Spartan-3A DSP FPGA系列。
通過創(chuàng)建擁有兩個獨立運(yùn)行MicroBlaze v7軟內(nèi)核處理器的賽靈思嵌入式系統(tǒng),,我們簡化了設(shè)計移植任務(wù),。這種架構(gòu)使我們可以分別移植ARM和DSP處理器代碼,從而大大簡化了設(shè)計移植過程,。圖2給出了Eutecus硬件系統(tǒng)的框圖,,以及基于MVE的參考SoC設(shè)計。
圖 2. Dual-MicroBlaze® System-on-Chip (SoC)架構(gòu)MVE引擎協(xié)處理器框圖
我們的MVE引擎包括運(yùn)行在MicroBlaze (MB0)上的InstantVision嵌入式軟件,,運(yùn)行在MicroBlaze (MB1)上的系統(tǒng)控制和通信部分以及C-MVA協(xié)處理器,。C-MVA協(xié)處理器是運(yùn)行在FPGA構(gòu)造上的硬件加速器IP內(nèi)核模塊鏈,。
利用ISE設(shè)計套件和MicroBlaze軟核,我們的ARM和DSP代碼移植工作相當(dāng)簡單,。一個突出優(yōu)點就是,InstantVision跨平臺環(huán)境是采用高級標(biāo)準(zhǔn)C/C++語言編寫的,,只需要很少的修改,。
一旦完成代碼移植,我們驗證其功能的正確性并且識別出性能瓶頸,。事實表明,,優(yōu)化和加速對原TI處理器開發(fā)的C/C++代碼是一項重要挑戰(zhàn),因為當(dāng)初在開發(fā)這一平臺的過程中,,我們在匯編級優(yōu)化時使用了幾個DaVinci C64x+協(xié)處理加速模塊,。在轉(zhuǎn)換過程中,我們遵循以下一系列步驟:首先利用高級C函數(shù)來重寫這些模塊,。最后,,用運(yùn)行在FPGA構(gòu)造上的同等功能加速器模塊來代替這些模塊的大部分功能。