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