利用FPGA實(shí)現(xiàn)視頻監(jiān)控系統(tǒng)的視頻處理
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在視頻監(jiān)控系統(tǒng)結(jié)構(gòu)所面臨的眾多挑戰(zhàn)中,上市時(shí)間壓力、CODEC新標(biāo)準(zhǔn)的出臺(tái)和需求范圍的不斷擴(kuò)大(包括高級(jí)目標(biāo)檢測(cè)、運(yùn)動(dòng)檢測(cè)、目標(biāo)跟蹤和目標(biāo)跟蹤功能) 還只是其中的一小部分。要應(yīng)對(duì)這些挑戰(zhàn),視頻監(jiān)控系統(tǒng)的實(shí)現(xiàn)就必須能根據(jù)不同性能要求而進(jìn)行相應(yīng)調(diào)整。
Xilinx的 FPGA產(chǎn)品是各種視頻監(jiān)控系統(tǒng)理想的解決方案,不論它是低端系統(tǒng)還是高端系統(tǒng),是獨(dú)立系統(tǒng)還是PC擴(kuò)展卡系統(tǒng)。
視頻監(jiān)控與DVR系統(tǒng)
高級(jí)數(shù)字視頻壓縮技術(shù)在視頻監(jiān)控系統(tǒng)的數(shù)字錄像機(jī)(DVR)中正得到快速普及。隨著大多數(shù)DVR制造商從MPEG4轉(zhuǎn)為采用H.264 高清(HD) CODEC,對(duì)提高分辨率和壓縮率的要求也變得更急切。專用標(biāo)準(zhǔn)產(chǎn)品(ASSP) 比較適合量大的應(yīng)用,但缺乏靈活性,而且開發(fā)時(shí)間過(guò)長(zhǎng),成本也高。大多數(shù)高級(jí)數(shù)字媒體處理器連實(shí)現(xiàn)H.264 HD解碼都比較困難,何況H.264 HD編碼比解碼還復(fù)雜得多。因此,要滿足H.264 HD的性能要求,最佳方案就是采用一塊FPGA加一塊外部DSP或數(shù)字媒體處理器。
采用低成本的Xilinx FPGA產(chǎn)品還能進(jìn)一步提供運(yùn)動(dòng)檢測(cè)、視頻量化、色域轉(zhuǎn)換(color-space conversion)、硬盤接口、DDR2存儲(chǔ)器接口等功能,以及將兩個(gè)27MHz的 ITU-R BT656數(shù)據(jù)流通過(guò)時(shí)分復(fù)用合為一路54MHz的數(shù)據(jù)流,同時(shí)為DSP處理器提供視頻加速。將兩個(gè)ITU-R BT656數(shù)據(jù)流復(fù)用為一個(gè)之后,系統(tǒng)只需單通道的視頻端口就能獨(dú)立傳送整個(gè)雙通道的視頻數(shù)據(jù)。這種實(shí)現(xiàn)方式在連接只有一個(gè)ITU-R BT656視頻輸入端口的數(shù)字媒體處理器時(shí)非常實(shí)用。圖1所示就是上述推薦系統(tǒng)的結(jié)構(gòu)框圖。
圖1:利用FPGA和數(shù)字媒體處理器搭建的視頻監(jiān)控系統(tǒng)。
對(duì)采用只有單個(gè)ITU-R BT656視頻輸入端口的TI達(dá)芬奇處理器的DVR設(shè)計(jì)而言,更高效 的實(shí)現(xiàn)方案是在數(shù)據(jù)流送入達(dá)芬奇處理器之前,將兩個(gè)以上的ITU-R BT656數(shù)據(jù)流時(shí)分復(fù)用為單個(gè)VLYNQ數(shù)據(jù)流。這種方案減少了用于視頻數(shù)據(jù)流傳輸?shù)腎/O管腳,因而縮小了器件的封裝,降低了系統(tǒng)成本。圖2所示為該設(shè)計(jì)的框圖。
圖2:利用FPGA和達(dá)芬奇處理器搭建的視頻監(jiān)控系統(tǒng)。
PC擴(kuò)展卡形式的DVR系統(tǒng)
PCI總線在PC機(jī)上已成功應(yīng)用了10余年。但今天的PC擴(kuò)展卡DVR系統(tǒng)所要求的帶寬已遠(yuǎn)遠(yuǎn)超出了PCI總線所能提供的極限。
未壓縮的視頻(在除去空白幀之后)數(shù)據(jù)率約為165 Mbps。于是,當(dāng)PCI總帶寬為1 Gbps時(shí),一條PCI總線上最多可同時(shí)連接6個(gè)發(fā)送未壓縮視頻的捕捉或回放設(shè)備。為降低總線帶寬的占用,可以在擴(kuò)展卡上采用一塊MPEG4或 CODEC芯片組,但這樣會(huì)提高成本,而且可選器件也局限于現(xiàn)有的MPEG4芯片組。
PCI Express (PCIe)技術(shù)在流量上有了很大提高。PCI Express可以細(xì)分為多個(gè)通道,每個(gè)通道在出和入上均包含一對(duì)差分對(duì),每對(duì)差分對(duì)支持2 Gbps的數(shù)據(jù)流量。一塊主板上的每個(gè)PCIe插槽都有自己的通道,這些通道是不與其他插槽共享的。每個(gè)插槽可配置為16通道(即x16)、8通道(x8) 、4 通道 (x4)或 1通道 (x1)。因此,每塊采用PCIe總線的擴(kuò)展卡可提供的數(shù)據(jù)流量從2 Gbps(配置為x1通道時(shí))到32 Gbps(配置為x16通道時(shí))。PCIe所支持的高數(shù)據(jù)流量讓我們不再只局限于每卡連接6通道的未壓縮視頻。
采用圖1所示的設(shè)計(jì),我們就能用PC機(jī)代替數(shù)字媒體處理器,并將視頻流通過(guò)PCIe總線送入PC機(jī),從而快速輕松地實(shí)現(xiàn)一套PC擴(kuò)展卡DVR系統(tǒng)。視頻模數(shù)轉(zhuǎn)換器產(chǎn)生4個(gè)獨(dú)立的數(shù)字ITU-R BT656流,然后將其送入一個(gè)低成本的Spartan-3器件進(jìn)行預(yù)處理。這塊FPGA將視頻數(shù)據(jù)中的空白和同步去除,并將其打成適合PCIe的數(shù)據(jù)包,然后將其送入Xilinx PCIe內(nèi)核。接著由軟件接收、顯示和處理輸入的視頻,或?qū)⑵浯鎯?chǔ)到磁盤中。圖3就是這樣一個(gè)PC擴(kuò)展卡視頻監(jiān)控系統(tǒng)。
圖3:PC擴(kuò)展卡視頻監(jiān)控系統(tǒng)。
Xilinx的視頻和圖象處理算法
Xilinx 的FPGA是十分理想的實(shí)時(shí)數(shù)字視頻、圖象處理和濾波平臺(tái),其功能從多相視頻轉(zhuǎn)換器、兩維FIR濾波器、屏幕顯示,到覆蓋(overlay)和α混合等簡(jiǎn)單效果甚至格式和色域轉(zhuǎn)換等。表1列出了一些常用視頻IP模塊組的應(yīng)用指南。
表1:視頻IP模塊組應(yīng)用指南。
Xilinx FPGA無(wú)與倫比的DSP處理能力意味著它可以支持非常高的分辨率(甚至是1080p的圖像質(zhì)量),同時(shí)減小大型DSP陣列的尺寸。此外,Xilinx FPGA還是可重復(fù)編程的硬件,因此很容易對(duì)基于硬件的高性能新視頻和圖像算法進(jìn)行試驗(yàn),從而直接成就最終產(chǎn)品的獨(dú)特性。
實(shí)用的IP資源
為加快視頻監(jiān)控系統(tǒng)中視頻和圖像處理算法設(shè)計(jì)、仿真、實(shí)現(xiàn)和驗(yàn)證的進(jìn)程,Xilinx還提供了豐富的視頻IP模塊組,其中既包括設(shè)計(jì)DVR所需的基礎(chǔ)的簡(jiǎn)單算法,也包含高級(jí)算法。
另外,Xilinx及其合作伙伴還提供了一系列壓縮編碼、解碼和編解碼方案,從為需要快速實(shí)現(xiàn)設(shè)計(jì)的客戶提供的現(xiàn)貨內(nèi)核,到為希望通過(guò)降低比特率來(lái)提供更高圖像質(zhì)量、并以此實(shí)現(xiàn)產(chǎn)品差異化的客戶提供的模塊化參考設(shè)計(jì)和硬件平臺(tái)。
采用Xilinx 的FPGA來(lái)完成某些編解碼模塊中極高強(qiáng)度的處理任務(wù)就意味著,產(chǎn)品不但可支持多通道高清編碼、節(jié)省寶貴的系統(tǒng)處理器周期,而且可通過(guò)減少或消除對(duì)DSP處理器陣列的要求而真正做到成本削減,并輕松將更多特性和功能(從接口特性到更強(qiáng)大的視頻處理功能)集成進(jìn)系統(tǒng)。最重要的是,F(xiàn)PGA提供的是一種可擴(kuò)展方案,因此可在同一個(gè)系統(tǒng)中支持不同的系統(tǒng)結(jié)構(gòu)、額外通道或新的編解碼方案。
通過(guò)增強(qiáng)系統(tǒng)邏輯和實(shí)現(xiàn)新外設(shè),Xilinx FPGA還能進(jìn)一步降低DVR系統(tǒng)的成本。同時(shí),Xilinx及其合作伙伴還為快速開發(fā)視頻監(jiān)控系統(tǒng)提供了以下系統(tǒng)接口:高級(jí)存儲(chǔ)器接口、PCI Express接口、TI的VLYNQ和 EMIF接口、硬盤接口,以及ITU-R BT656接口。
利用Xilinx提供的工具簡(jiǎn)化設(shè)計(jì)
Xilinx 提供的System Generator for DSP允許在Simulink下用Xilinx 的視頻 IP模塊組搭建和調(diào)試高性能DVR系統(tǒng)。采用System Generator開發(fā)和實(shí)現(xiàn)視頻處理算法可以完成經(jīng)過(guò)徹底驗(yàn)證而且執(zhí)行簡(jiǎn)單的設(shè)計(jì)。
Xilinx已開發(fā)出多種經(jīng)過(guò)預(yù)測(cè)試的新的視頻IP模塊組,我們只需在System Generator中拖放模塊就能輕松構(gòu)建起自己的視頻/圖像系統(tǒng)。這為開發(fā)人員節(jié)省了寶貴的時(shí)間,使他們無(wú)需再用HDL語(yǔ)言編寫這些基本模塊的代碼。
為了處理由開發(fā)板發(fā)往PC機(jī)的大量視頻數(shù)據(jù)流,System Generator for DSP還引入了另一種新的高速硬件協(xié)同仿真(通過(guò)一個(gè)以太網(wǎng)接口實(shí)現(xiàn))。該接口可在低延遲下實(shí)現(xiàn)高流量,事實(shí)證明這在System Generator環(huán)境下構(gòu)建視頻/圖像系統(tǒng)時(shí)非常有用。
Xilinx還推出了另一款基于MATLAB語(yǔ)言的設(shè)計(jì)工具AccelDSP綜合工具,這是用于在Xilinx FPGA上設(shè)計(jì)DSP模塊的高級(jí)工具。它可以自動(dòng)完成浮點(diǎn)到定點(diǎn)的轉(zhuǎn)換,產(chǎn)生可綜合的VHDL或Verilog代碼,并創(chuàng)建一個(gè)測(cè)試平臺(tái)用于驗(yàn)證。我們還可以根據(jù)一段MATLAB算法生成一個(gè)定點(diǎn)的C++模型或System Generator模塊。AccelDSP是Xilinx XtremeDSP方案中的關(guān)鍵組件,而Xilinx XtremeDSP則是一套結(jié)合了最先進(jìn)的FPGA、設(shè)計(jì)工具、IP核和合作伙伴關(guān)系以及設(shè)計(jì)和培訓(xùn)服務(wù)的方案。
本文小結(jié)
在一個(gè)視頻監(jiān)控系統(tǒng)中,視頻信號(hào)是通過(guò)多臺(tái)攝像像機(jī)產(chǎn)生的。FPGA的作用就是接收來(lái)自視頻編碼器的ITU-R BT656格式數(shù)字視頻信號(hào)并將處理后的視頻數(shù)據(jù)送到監(jiān)視器上顯示和送至數(shù)字媒體處理器或DSP中進(jìn)行壓縮,并存儲(chǔ)至硬盤。
采用Xilinx的 FPGA,客戶就能在其兼容標(biāo)準(zhǔn)的系統(tǒng)中實(shí)現(xiàn)與競(jìng)爭(zhēng)產(chǎn)品的差異性,同時(shí)仍能取得針對(duì)應(yīng)用的最佳平衡點(diǎn)。而有了Xilinx提供的視頻IP模塊組,客戶更能輕松構(gòu)建一個(gè)高度靈活和可調(diào)整的DVR系統(tǒng),以便同時(shí)滿足低端和高端市場(chǎng)的需求。Xilinx FPGA中提供的VLYNQ內(nèi)核能讓客戶輕松地將多臺(tái)攝像機(jī)發(fā)來(lái)的大量視頻數(shù)據(jù)流發(fā)送到TI的達(dá)芬奇處理器進(jìn)行處理。
AccelChip與Xilinx System Generator這兩種工具的集成則同時(shí)兼顧了算法開發(fā)人員偏好的基于MATLAB的算法綜合開發(fā)方式與系統(tǒng)構(gòu)建師和硬件設(shè)計(jì)師所偏好的圖形化設(shè)計(jì)流程,因此設(shè)計(jì)師們可以利用豐富的MATLAB語(yǔ)言和附帶的工具箱來(lái)創(chuàng)建復(fù)雜DSP算法的System Generator IP模塊。通過(guò)使用這些工具,設(shè)計(jì)小組就能用最高效的硬件建模方式進(jìn)行設(shè)計(jì)實(shí)現(xiàn),并讓算法開發(fā)人員在FPGA設(shè)計(jì)過(guò)程中就全面參與,從而更快實(shí)現(xiàn)更高品質(zhì)的設(shè)計(jì)。