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