《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > 基于Xilinx Spartan-3A DSP的安全視頻分析

基于Xilinx Spartan-3A DSP的安全視頻分析

2012-07-17
作者:Csaba Rekeczky,Joe Mallett
作者:Csaba Rekeczky, Eutecus公司聯(lián)合首席技術(shù)官兼副總裁, rcsaba@eutecus.com

Joe Mallett,賽靈思公司高級(jí)產(chǎn)品線經(jīng)理, jmallett@xilinx.com
Akos Zarandy,Eutecus公司聯(lián)合首席技術(shù)官兼副總裁, zarandy@eutecus.com

范圍廣泛的安全分析應(yīng)用對(duì)處理帶寬的要求迫使企業(yè)重新考慮系統(tǒng)硬件的設(shè)計(jì)方法。單個(gè)視頻和圖像DSP處理器已經(jīng)不能以可接受的數(shù)據(jù)速率完成某些計(jì)算 密集的分析運(yùn)算了。此外,也沒(méi)有強(qiáng)大可靠的解決方案能夠在全視頻幀速率下處理高分辨率(HD)。這也迫使系統(tǒng)工程師考慮多芯片或其它單芯片系統(tǒng)。兩種解決 方案各有其優(yōu)點(diǎn)和缺點(diǎn)。

由多片DSP組成的多芯片系統(tǒng)一般可為設(shè)計(jì)人員提供更為熟悉的設(shè)計(jì)流程,但卻增加了PCB成本、占用板級(jí)/系統(tǒng)級(jí)空間,同時(shí)還可能帶來(lái)系統(tǒng)性能問(wèn) 題。另一方面,單芯片解決方案看起來(lái)在成本、封裝和功耗方面具有優(yōu)勢(shì),但可能會(huì)在無(wú)形中增加設(shè)計(jì)人員的學(xué)習(xí)難度,提高設(shè)計(jì)項(xiàng)目的復(fù)雜性和工程成本,并且有 可能拖延產(chǎn)品發(fā)布的時(shí)間。

這也是位于加州伯克利的視頻分析公司Eutecus在開(kāi)發(fā)下一代安全分析產(chǎn)品—多核視頻分析引擎(MVE™)時(shí)遇到的難題。

我們的第一代產(chǎn)品基于德州儀器(TI)的達(dá)芬奇(DaVinci)數(shù)字媒體片上系統(tǒng)(SoC)平臺(tái)。 但在第二代產(chǎn)品中,我們需要更強(qiáng)大的處理能力和系統(tǒng)集成度。我們很快發(fā)現(xiàn)多個(gè)DSP器件的解決方案無(wú)論在成本上還是在系統(tǒng)一級(jí)效益都不高。我們需要一個(gè)能 夠方便地將上一代產(chǎn)品移植過(guò)來(lái),并且能夠?yàn)槲覀兊牡诙鶰VE提供更多特性的單芯片解決方案。

經(jīng)過(guò)一番調(diào)研,我們找到了賽靈思公司的Sp a r t a n ®- 3A DSP 3400A。該器件提供了126個(gè)專用XtremeDSP®DSP48A 邏輯片,可以提供足夠的性能來(lái)滿足我們的系統(tǒng)要求,并且價(jià)格也很有吸引力。

當(dāng)進(jìn)一步了解到賽靈思嵌入式開(kāi)發(fā)套件(EDK)支持Spartan-3A DSP之后,我們對(duì)設(shè)計(jì)移植方面的擔(dān)心也很快消失了。賽靈思公司的EDK嵌入式開(kāi)發(fā)套件可以實(shí)現(xiàn)基于賽靈思MicroBlaze®嵌入式處理器的雙處理器 硬件架構(gòu),與TI公司DaVinci平臺(tái)雙處理器硬件架構(gòu)類似。

選定器件之后,開(kāi)始將現(xiàn)有的基于DaVinci的代碼移植到賽靈思雙處理器嵌入式系統(tǒng),以創(chuàng)造一個(gè)單芯片視頻安全分析設(shè)計(jì)。然后,在FPGA構(gòu)造中 創(chuàng)建了適量的加速器模塊來(lái)滿足性能要求,其中包括在全幀速率下處理高分辨率視頻。這就是第二代MVE系統(tǒng),現(xiàn)在已經(jīng)成功地銷售到航空航天/國(guó)防、機(jī)器視覺(jué) 和監(jiān)控市場(chǎng)。

視頻分析產(chǎn)品簡(jiǎn)介

多核視頻分析引擎(MVE)基于InstantVision Embedded®軟件和能夠提供許多高級(jí)功能的專用C-MVA®協(xié)處理器。

MVE/C-MVA最新版本能夠以全幀速率處理高分辨率視頻。其功耗還不到1瓦,能夠以全并行方式執(zhí)行多種事件檢測(cè)和分類算法。圖1給出的是一個(gè)交 通監(jiān)控應(yīng)用中視頻分析輸出的例子,針對(duì)不同類型的車輛、車流方向、車道變化以及違規(guī)變道等情況進(jìn)行了分類,所有這些都是并發(fā)進(jìn)行的并且利用不同的顏色進(jìn)行 了標(biāo)記。

 

多內(nèi)核視頻分析引擎 (MVE)及示例應(yīng)用的發(fā)展路線圖

 

圖 1 – 多內(nèi)核視頻分析引擎 (MVE)及示例應(yīng)用的發(fā)展路線圖

設(shè)計(jì)C-MVA協(xié)處理器的目標(biāo)是能夠擴(kuò)展其運(yùn)算的復(fù)雜度以支持密集物體空間的分析功能,此時(shí)需要重疊分析和處理不完整的對(duì)象/事件,因此特別具有挑戰(zhàn)性。專用DSP在這方面的支持性很差,而且計(jì)算可擴(kuò)展能力也不好。而FPGA在這兩個(gè)方面則具有更大的靈活性。

Spartan-3A DSP 3400A FPGA中的126個(gè)XtremeDSP DSP48A邏輯片能夠提供高達(dá)30 GMAC的DSP性能,因此完全能夠滿足視頻分析應(yīng)用苛刻的成本和性能要求。賽靈思FPGA還允許我們根據(jù)客戶需求增加更多視頻分析功能以及相關(guān)的事件檢 測(cè)事例。我們?cè)诒?中做了小結(jié)。

 

典型事件檢測(cè)應(yīng)用中支持的視頻分析功能

 

表1 – 典型事件檢測(cè)應(yīng)用中支持的視頻分析功能

此外,通過(guò)賽靈思FPGA和ISE®設(shè)計(jì)套件工具,視頻分析設(shè)計(jì)小組可以為終端客戶定制解決方案方面提供更大靈活性。通過(guò)快速建立標(biāo)準(zhǔn)分辨率和高分 辨率視頻處理原型,我們可以快速定制視頻分析引擎和片上系統(tǒng)(SoC)解決方案。這樣我們就可以根據(jù)客戶需求更高效地利用 Spartan-3A DSP 3400A或成本更低的Spartan-3A DSP 1800A FPGA器件中的可用資源。

FPGA解決方案另一個(gè)好處是可以利用同一硬件平臺(tái)創(chuàng)建多種不同的衍生產(chǎn)品。由于我們已經(jīng)使用VHDL設(shè)計(jì)了多種分析加速器引擎,因此可以將這些專 用內(nèi)核集成到C-MVA協(xié)處理器中。這種方法允許工程師重新利用雙MicroBlaze嵌入式系統(tǒng)來(lái)創(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è)計(jì)中,我們使用 ARM9x 做通信和控制,用 C64x+ 做分析算法的DSP處理。然而,兩者組合起來(lái)構(gòu)成的系統(tǒng)仍然無(wú)法滿足我們第二代產(chǎn)品所需要的高性能處理要求。因此,我們轉(zhuǎn)向了Spartan-3A DSP FPGA系列。

通過(guò)創(chuàng)建擁有兩個(gè)獨(dú)立運(yùn)行MicroBlaze v7軟內(nèi)核處理器的賽靈思嵌入式系統(tǒng),我們簡(jiǎn)化了設(shè)計(jì)移植任務(wù)。

這種架構(gòu)使我們可以分別移植ARM和DSP處理器代碼,從而大大簡(jiǎn)化了設(shè)計(jì)移植過(guò)程。圖2給出了Eutecus硬件系
統(tǒng)的框圖,以及基于MVE的參考SoC設(shè)計(jì)。

 

Dual-MicroBlaze? System-on-Chip (SoC)架構(gòu)MVE引擎協(xié)處理器框圖

 

圖 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è)計(jì)套件和MicroBlaze軟核,我們的ARM和DSP代碼移植工作相當(dāng)簡(jiǎn)單。一個(gè)突出優(yōu)點(diǎn)就是,InstantVision跨平臺(tái)環(huán)境是采用高級(jí)標(biāo)準(zhǔn)C/C++語(yǔ)言編寫(xiě)的,只需要很少的修改。

一旦完成代碼移植,我們驗(yàn)證其功能的正確性并且識(shí)別出性能瓶頸。事實(shí)表明,優(yōu)化和加速對(duì)原 TI 處理器開(kāi)發(fā)的C/C++代碼是一項(xiàng)重要挑戰(zhàn),因?yàn)楫?dāng)初在開(kāi)發(fā)這一平臺(tái)的過(guò)程中,我們?cè)趨R編級(jí)優(yōu)化時(shí)使用了幾個(gè)DaVinci C64x+協(xié)處理加速模塊。在轉(zhuǎn)換過(guò)程中,我們遵循以下一系列步驟:首先利用高級(jí)C函數(shù)來(lái)重寫(xiě)這些模塊。最后,用運(yùn)行在FPGA構(gòu)造上的同等功能加速器模 塊來(lái)代替這些模塊的大部分功能。

從功能的觀點(diǎn)來(lái)看, MVE解決方案由三層組成,將接收標(biāo)準(zhǔn)/高分辨率視頻流作為輸入數(shù)據(jù),然后生成事件檢測(cè)元數(shù)據(jù)。生成的元數(shù)據(jù)提供目標(biāo)/事件跟蹤和分類支持,同時(shí)將一些用于調(diào)試目的的圖像流也作為分析輸出。我們的功能
模塊要么通過(guò)運(yùn)行在MicroBlaze處理器上的嵌入式軟件實(shí)現(xiàn),要么就以專用IP內(nèi)核方式實(shí)現(xiàn)。我們將這些專用硬件
加速器置入FPGA構(gòu)造,這些加速器構(gòu)成的加速器鏈就組成了C-MVA分析協(xié)處理器。

如圖3所示,MVE視頻分析引擎的三個(gè)算法層包括幾個(gè)主要的功能模塊。利用FPGA中可用資源動(dòng)態(tài)配置的專用IP內(nèi)核可大大加速這些功能模塊。C- MVA協(xié)處理器的設(shè)計(jì)基于這些IP內(nèi)核,整個(gè)分析算法的前端和中層(參見(jiàn)圖4)加速也是如此。我們可以利用賽靈思ISE設(shè)計(jì)套件支持的這種模塊化設(shè)計(jì)方法 同時(shí)在性能和功耗方面對(duì)系統(tǒng)進(jìn)行擴(kuò)展。

 

視頻分析算法組織的框圖

 

圖 3 – 視頻分析算法組織的框圖

 

MVE 分析引擎、InstantVision和驅(qū)動(dòng)軟件

 

圖 4 – MVE 分析引擎、InstantVision和驅(qū)動(dòng)軟件

利用FPGA加速器模塊增壓

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

 

為第三代MVE / C-MVA開(kāi)發(fā)的專用硬件加速模塊IP內(nèi)核系列

 

表2 – 為第三代MVE / C-MVA開(kāi)發(fā)的專用硬件加速模塊IP內(nèi)核系列

與其他開(kāi)發(fā)小組一樣,我們的開(kāi)發(fā)小組也分別由不同的硬件和軟件開(kāi)發(fā)人員組成。對(duì)于維持開(kāi)發(fā)人員的生產(chǎn)力以保證項(xiàng)目的成功來(lái)說(shuō),在這兩個(gè)設(shè)計(jì)領(lǐng)域之間保留足夠的抽象非常關(guān)鍵。我們利用Xilinx Platform Studio中的Create
IP Wizard來(lái)改進(jìn)這一任務(wù),為硬件加速模塊生成RTL模塊和軟件驅(qū)動(dòng)文件。

這些模塊包括訪問(wèn)寄存器所需要的接口邏輯、嵌入式系統(tǒng)中的DMA邏輯和FIFO。一旦利用模塊創(chuàng)建了RTL,我們就將其放到嵌入IP目錄中,設(shè)計(jì)人員可根據(jù)需求進(jìn)一步修改。

我們的IP內(nèi)核開(kāi)發(fā)流程包括一個(gè)通用的標(biāo)準(zhǔn)外設(shè)模塊開(kāi)發(fā)流程,用于基于PLB46MPMC-OPB的回傳。這些外設(shè)包括單端和多I/O原型 (SIMO,MIMO, MISO模型),支持我們?yōu)橐罂量痰膱D像流處理算法靈活創(chuàng)造多線程協(xié)處理器流水線。在設(shè)計(jì)和定制不同分析引擎的過(guò)程中,通過(guò)近乎任意次序?qū)P內(nèi)核進(jìn)行 組合和配置,我們達(dá)到了這方面的要求。

MVE分析引擎由InstantVision嵌入式軟件模塊以及構(gòu)成C-MVA分析協(xié)處理器的硬件加速器組成。我們?cè)谝黄琗ilinx Spartan-3A-DSP 3400A FPGA中實(shí)現(xiàn)了MVE的原型,并創(chuàng)建了SoC參考設(shè)計(jì)。其中包括所有通信和數(shù)據(jù)流所需要的I/O功能(參考圖2了解完整的硬件固件框圖)。 這一完整的SoC參考設(shè)計(jì)使用了91%的邏輯片資源、 81%的塊RAM和32%的DSP邏輯片,不僅包含MVE分析引擎,還包括所有支持I/O模塊。

單就MVE分析引擎來(lái)說(shuō)(不包括MPMC-PLB主干和專用I/O組件),它僅使用了46%的邏輯片、44%的塊RAM和23%的DSP邏輯片,因此可以將其移植到成本更低的Spartan3A-DSP 1800A FPGA器件。

在單個(gè)時(shí)鐘周期內(nèi),我們?cè)O(shè)計(jì)的CMVA協(xié)處理器中所有IP內(nèi)核可以完成所有相關(guān)處理。這一功能與異步FSL接口相結(jié)合,系統(tǒng)集成商能夠利用來(lái)自系統(tǒng) 其它部分的不同時(shí)鐘域來(lái)驅(qū)動(dòng)C-MVA協(xié)處理器。這樣做可以讓C-MVA在較低的像素時(shí)鐘頻率中運(yùn)行,同時(shí)利用更高頻率的內(nèi)部系統(tǒng)時(shí)鐘來(lái)驅(qū)動(dòng)主干 (backbone),從而在保證系統(tǒng)性能要求的同時(shí)大大降低功耗。

定制、封裝和系統(tǒng)集成

為驗(yàn)證并進(jìn)一步開(kāi)發(fā)這一系統(tǒng),我們創(chuàng)建了一個(gè)包括所有軟件層在內(nèi)的安全/監(jiān)控應(yīng)用,允許用戶在系統(tǒng)的不同層面快速集成我們的產(chǎn)品。完整SoC設(shè)計(jì)在單個(gè)參考設(shè)計(jì)中包括硬件IP內(nèi)核、固件和軟件,請(qǐng)見(jiàn)圖5。

 

完整的硬件-固件-軟件參考設(shè)計(jì)

 

圖 5 – 完整的硬件-固件-軟件參考設(shè)計(jì)

我們可在硬件、固件和軟件組件等不同層次進(jìn)行靈活定制以組成系統(tǒng)集成。服務(wù)器級(jí)的定制包括 PGA中的可定制SoC設(shè)計(jì),而在客戶(配置)一級(jí),則可在WIN32或 Net API層進(jìn)行修改。這種架構(gòu)使我們及客戶可快速實(shí)現(xiàn)不同配置和測(cè)試接口的原型。用戶可以在UART或TCP/IP上實(shí)現(xiàn)客戶-服務(wù)器 (C/S)通信,從而提供靈活的配置管理、性能精細(xì)調(diào)整、狀態(tài)監(jiān)控和固件升級(jí)。

盡管剛剛完成第二代產(chǎn)品,但我們已經(jīng)開(kāi)始考慮第三代產(chǎn)品的要求。根據(jù)在這一項(xiàng)目中取得的經(jīng)驗(yàn),我們?cè)谛乱淮a(chǎn)品中會(huì)著重考慮賽靈思的FPGA器件,特別是賽靈思公司正在致力于利用最先進(jìn)的工藝技術(shù)推出更可靠更先進(jìn)的新器件和DSP功能。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。