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