摘 要: 針對高清視頻監(jiān)控系統(tǒng)的實際應(yīng)用,基于FPGA和DSP嵌入式技術(shù),設(shè)計并實現(xiàn)了一套基于FPGA和DSP嵌入式技術(shù)的多源高清視頻監(jiān)控系統(tǒng)。其中以FPGA和DSP芯片為板卡核心,采用模塊化設(shè)計思想,實現(xiàn)了四路壓縮視頻流的解壓縮和圖像處理功能。使用SOPC構(gòu)建基于Nios Ⅱ軟核處理器的微控制器系統(tǒng),實現(xiàn)視頻的數(shù)據(jù)格式轉(zhuǎn)換、縮放和疊加功能,將四路視頻疊加拼接成一路視頻。利用硬件編程實現(xiàn)視頻流與輔助信息的同步,將整合后的視頻數(shù)據(jù)通過PCI接口傳輸給上位機應(yīng)用程序顯示。最終通過試驗給出了系統(tǒng)的監(jiān)控效果,證明了系統(tǒng)的可行性和優(yōu)越性。
關(guān)鍵詞: 視頻監(jiān)控; FPGA; DSP; SOPC軟核; PCI通信
中圖分類號: TN919?34; TP391 文獻標識碼: A 文章編號: 1004?373X(2016)03?0068?04
Design and implementation of embedded multi?source HD video monitoring system
QU Zhaogui
(Sichuan Technology and Business University, Chengdu 611745, China)
Abstract: For the actual application of HD video monitoring system, a set multi?source HD video monitoring system based on FPGA and DSP embedded technologies was designed and realized, in which the FPGA and DSP chips are taken as the core of the board, and the modular design thought is adopted to realize the uncompress and image processing functions of the four?channel compressed video stream. The SOPC is used to construct the microcontroller system based on Nios Ⅱ soft?core processor to realize the format conversion, scaling and superposition functions of the video data, and superpose and splice the four?channel videos into one?channel video. The synchronization of video stream and auxiliary information is implemented by means of hardware programming. The integrated video data is transmitted to the upper computer application program through PCI interface for display. The system monitoring result is given by the tests. The feasibility and superiority of the system were proved.
Keywords: video monitoring; FPGA; DSP; SOPC soft?core; PCI communication
0 引 言
隨著圖像壓縮技術(shù)、網(wǎng)絡(luò)傳輸技術(shù)和嵌入式技術(shù)的快速發(fā)展,使得以微控制器為核心、軟硬件相結(jié)合的嵌入式視頻監(jiān)控系統(tǒng)成為國內(nèi)外許多學者的研究課題[1]。當前諸如美、日、加拿大等國的視頻監(jiān)控系統(tǒng)由于長期發(fā)展和積累的技術(shù),加上政府的大力支持,處于領(lǐng)先優(yōu)勢,而國內(nèi)的視頻監(jiān)控系統(tǒng)發(fā)展較為緩慢,研發(fā)力度相對欠缺,仍然處于研究實踐階段[2]。但隨著國內(nèi)市場需求的不斷增強,其發(fā)展的潛力也不容忽視,新一代智能化的視頻監(jiān)控系統(tǒng)將會得到越來越多的投入和建設(shè)。本文所設(shè)計的多源高清視頻監(jiān)控系統(tǒng)緊跟視頻監(jiān)控系統(tǒng)的發(fā)展趨勢,能夠?qū)崟r處理四路高清監(jiān)控視頻,同時具有視頻與輔助信息同步的功能,為下一步智能化處理提供了技術(shù)支持,具備多源化、高清化及智能化等優(yōu)點,具有廣闊的實用價值。
1 技術(shù)簡介與方案設(shè)計
隨著人們對多媒體的需求往高清化發(fā)展,各種數(shù)字視頻所包含的信息量也日益增強,傳輸網(wǎng)絡(luò)所需要的帶寬面臨著極大的挑戰(zhàn)[3]。視頻編解碼技術(shù)成為視頻監(jiān)控技術(shù)發(fā)展的關(guān)鍵因素,也是視頻監(jiān)控系統(tǒng)降低傳輸成本和存儲成本的一個重要手段。目前市場上常用的幾種編碼解碼標準是:H.261標準,H.263標準,MPEG?1標準,MPEG?2(H.262)標準,MPEG?4標準,H.264標準。本系統(tǒng)中前端輸入數(shù)據(jù)為四路像素值大小為1 024×768的高清視頻數(shù)據(jù),采用壓縮率高的H.264標準對四路視頻進行壓縮。
高分辨率的視頻圖像數(shù)據(jù)非常龐大,需要按照一定格式存儲和傳輸,目前常用的存儲格式有YUV和RGB兩種。為節(jié)省高清視頻數(shù)據(jù)的傳輸帶寬和存儲空間,圖像在編碼過程中采樣的格式也有不同,常用的有4[∶]4[∶]4,4[∶]2[∶]2兩種。在視頻監(jiān)控系統(tǒng)中,圖像的疊加操作是非常常見的,圖像疊加需要將多路圖像經(jīng)過特殊算法處理整合成一路輸出。不同攝像頭獲得的監(jiān)控圖像相當于不同的圖層,改變這些圖層的順序和屬性就可以改變疊加后圖像的效果,其中屬性包括各個圖層的像素值、透明度等。
本文中的多源高清視頻監(jiān)控系統(tǒng)還需要根據(jù)用戶需求自動縮放某一路視頻圖像到指定大小。在處理高清視頻過程中,性能較好的縮放算法非常重要。本系統(tǒng)中采用基于嵌入式的硬件編程方式來實現(xiàn)高分辨率的圖像縮放,在FPGA中直接調(diào)用IP核。
本文設(shè)計的多源高清視頻監(jiān)控系統(tǒng)建立在實驗的基礎(chǔ)上,具有很強的通用性。系統(tǒng)分為上位機和板卡兩部分,其中上位機主要用于接收網(wǎng)絡(luò)視頻和顯示整合視頻,板卡用于處理監(jiān)控視頻。該系統(tǒng)要求能實現(xiàn)以下功能:
(1) 系統(tǒng)配套的上位機應(yīng)用程序能夠通過網(wǎng)絡(luò)接收壓縮視頻數(shù)據(jù)和輔助信息,并打包下發(fā)給處理板卡。
(2) 處理板卡通過PCI接口接收壓縮視頻流和輔助信息,對視頻流進行解壓縮、格式轉(zhuǎn)換、縮放和疊加等處理,對輔助信息進行緩存處理。
(3) 系統(tǒng)具備容錯機制,處理后的視頻流要跟輔助信息同步后再上傳給上位機應(yīng)用程序,同時應(yīng)用程序顯示監(jiān)控圖像并將輔助信息存放到指定內(nèi)存中。
(4) 系統(tǒng)可以工作在三種顯示模式下:四分屏、畫中畫和全屏模式。三種模式可自由切換,上位機應(yīng)用程序可使用按鈕操作或點擊屏幕操作實現(xiàn)模式之間的轉(zhuǎn)換。
值得一提的是,SOPC是一種特殊的嵌入式系統(tǒng),SOPC有三種常用構(gòu)成方案[4]:基于FPGA嵌入式IP硬核的SOPC系統(tǒng)、基于FPGA嵌入式IP軟核的SOPC系統(tǒng)和基于HardCopy技術(shù)的SOPC系統(tǒng)。完整的基于Nios Ⅱ的SOPC系統(tǒng)是一個軟硬件復合的系統(tǒng),Nios Ⅱ的硬件設(shè)計是為了定制合適的CPU和外設(shè),在SOPC Builder和Quartus Ⅱ中完成。完成Nios Ⅱ的硬件開發(fā)后,SOPC Builder可自動生成與自定義的Nios Ⅱ CPU和外設(shè)系統(tǒng)、存儲器、外設(shè)地址映射等相應(yīng)的軟件開發(fā)包SDK,在生成的SDK基礎(chǔ)上,進入軟件開發(fā)流程。用戶可使用匯編或C,甚至C++進行嵌入式程序設(shè)計,使用GNU工具或第三方工具進行程序的編譯連接以及調(diào)試。
根據(jù)系統(tǒng)功能需求和技術(shù)指標,本文提出一種嵌入式視頻監(jiān)控系統(tǒng)的解決方案,其整體架構(gòu)如圖1所示。
針對系統(tǒng)功能需求和技術(shù)指標,提出的基于FPGA+DSP架構(gòu)的視頻監(jiān)控系統(tǒng)由上位機和處理板卡組成。其中處理板卡包括FPGA芯片和DSP 芯片,F(xiàn)PGA芯片負責系統(tǒng)數(shù)據(jù)傳輸和信號控制功能,DSP芯片負責視頻流的解碼功能。上位機是面向用戶的應(yīng)用軟件,包括接收遠程壓縮視頻流并傳輸給處理板卡,同時顯示處理后的整合視頻流。
2 系統(tǒng)的硬件及工作流程設(shè)計
由于系統(tǒng)輸入指標要求至少能夠處理四路壓縮視頻流,因此采用四片DSP芯片實時解壓縮四路視頻流,同時需要一片F(xiàn)PGA芯片完成四路視頻流的圖像后處理功能[5]。在實現(xiàn)視頻解壓縮和視頻后處理時,需要用到FLASH寄存器和DDR2寄存器來緩存視頻數(shù)據(jù)和系統(tǒng)文件。系統(tǒng)的硬件總體框架如圖2所示。
FPGA端主要分為五個小模塊,分別為PCI接口模塊、視頻緩存模塊、視頻處理模塊、同步模塊、時鐘復位模塊。多源高清視頻監(jiān)控系統(tǒng)要求能夠?qū)崿F(xiàn)四路高清數(shù)據(jù)的傳輸和并行處理工作。整個多源高清視頻監(jiān)控系統(tǒng)的數(shù)據(jù)流從上位機下傳到板卡,經(jīng)過處理后再傳輸給上位機顯示,其中經(jīng)過多個模塊,各個模塊對數(shù)據(jù)的處理不同,導致接口處數(shù)據(jù)格式也不同。其中上位機與板卡之間通信也有一定協(xié)議,F(xiàn)PGA與DSP之間數(shù)據(jù)也遵循一定協(xié)議。
系統(tǒng)人機交互的響應(yīng)由上位機應(yīng)用程序來完成,系統(tǒng)工作流程如下:
(1) 點擊上位機啟動按鈕,板卡和上位機初始化。
(2) 上位機讀取網(wǎng)絡(luò)數(shù)據(jù),檢測到四路壓縮視頻的IDR幀后,啟動下傳DMA,將四路壓縮視頻數(shù)據(jù)傳輸給板卡。
(3) FPGA通過PCI接口接收到四路壓縮視頻數(shù)據(jù)后,根據(jù)協(xié)議拆包,并分別緩存到四片DPRAM中,并給四片DSP發(fā)送中斷。
(4) 四片DSP檢測到各自的中斷后,通過EMIF接口讀取FPGA DPRAM中的視頻數(shù)據(jù)并開始解碼。
(5) 四片DSP將解碼完成后的四路視頻數(shù)據(jù)通過視頻接口傳輸給FPGA。
(6) FPGA將解壓縮的四路視頻數(shù)據(jù)進行圖像格式轉(zhuǎn)換、縮放和疊加后,整合成一路視頻數(shù)據(jù),通過PCI接口傳輸給上位機。
(7) 上位機接收到整合視頻數(shù)據(jù)后,進行顯示。
(8) 系統(tǒng)默認情況下工作在四分屏模式下,當用戶點擊畫中畫或者全屏按鈕時,上位機通過PCI接口配置 PCI 工作模式寄存器,F(xiàn)PGA檢測到該寄存器的值有變化時,根據(jù)協(xié)議將四路視頻圖像進行圖層變化,從而達到預期效果。
3 系統(tǒng)的軟件設(shè)計
該系統(tǒng)的軟件組成分為三個大模塊,分別是FPGA模塊、DSP模塊和上位機應(yīng)用程序模塊。在本設(shè)計中,F(xiàn)PGA端又分為五個小模塊,分別為PCI接口模塊、視頻緩存模塊、視頻處理模塊、同步模塊、時鐘復位模塊,如圖3所示。
為提高系統(tǒng)的性能,設(shè)計兩個復位信號:硬復位和軟復位。前者通過板卡上的復位按鈕實現(xiàn),該復位按鈕連接到FPGA上[6];后者通過上位機的復位按鈕實現(xiàn),PCI接口模塊中初始化一個軟復位寄存器,上位機檢測到軟復位信號后,配置軟復位寄存器,F(xiàn)PGA檢測到該寄存器值的變化,啟動復位,從而實現(xiàn)軟復位。
系統(tǒng)中的PCI接口模塊主要實現(xiàn)四路高清視頻數(shù)據(jù)的上下行通道的傳輸工作,傳輸數(shù)據(jù)量大,而且速度要求很快[7]。設(shè)計中采用PLDA公司的PCI Express IP 內(nèi)核完成通信工作,該IP核支持32 b/64 b PCI?XPCI主從模式讀寫,最高支持133 MHz 總線速度;給用戶提供高達6個BAR空間和擴展ROM,用于配置寄存器;支持4 KB的突發(fā)傳輸大?。蛔罡咛峁?個獨立的DMA通道完成數(shù)據(jù)的高速傳輸。PCI板卡設(shè)備需要正確的配置才能正常工作,因此系統(tǒng)上電時,PC機上位機程序?qū)鳛镻CI主設(shè)備對板卡進行配置工作,正確配置后,板卡將會作為PCI主設(shè)備啟動DMA讀方式或?qū)懛绞酵瓿梢曨l數(shù)據(jù)的傳輸工作。
從PCI接口模塊下傳的視頻數(shù)據(jù)需要經(jīng)過緩存,轉(zhuǎn)換成DSP解壓縮芯片所要求的數(shù)據(jù)格式。DSP與FPGA使用EMIF接口連接,整個壓縮視頻緩存模塊的框架圖如圖4所示。
其中PCI下傳FIFO是PCI接口模塊中下傳通道中設(shè)計的FIFO,它將輸出32位的數(shù)據(jù)到壓縮視頻緩存模塊中,DPRAM控制模塊接收FIFO的數(shù)據(jù),去掉傳輸數(shù)據(jù)中的輔助信息和包頭,提取出一幀圖像的有效數(shù)據(jù),并根據(jù)DSP的EMIF接口信號產(chǎn)生DPRAM所需要的控制信號。DSP中斷模塊主要根據(jù)DPRAM的讀/寫信號來產(chǎn)生DSP中斷脈沖,該中斷脈沖通知DSP讀取DPRAM中的圖像數(shù)據(jù)。本設(shè)計中EMIF與FPGA相連接,從而使FPGA平臺充當一個協(xié)同處理器及高速數(shù)據(jù)傳輸接口。
視頻處理模塊主要完成四路視頻圖像的整合疊加處理,為縮短開發(fā)周期,提高設(shè)計的靈活性,在本系統(tǒng)中,采用Altera公司提供的視頻及圖像處理套件。整個視頻處理模塊的框架圖如圖5所示。
對于轉(zhuǎn)換模塊,DSP通過視頻接口(VP口)與視頻處理模塊相連,由于SOPC圖像整合模塊的視頻輸入接口和VP口的信號不完全一致,因此需要一轉(zhuǎn)換模塊,根據(jù)VP口的輸入信號產(chǎn)生符合圖像整合模塊的輸入信號時序。選擇模塊根據(jù)上位機命令,選擇四路解壓縮視頻流中的一路放大到主顯圖像大小輸出,其他三路縮放到次顯圖像大小。對于SOPC圖像整合模塊,選擇模塊傳輸過來的四路解壓縮視頻流,通過數(shù)據(jù)格式轉(zhuǎn)換、縮放后,整合成一路視頻輸出[8],其中需要轉(zhuǎn)化的格式有:YUV顏色空間轉(zhuǎn)為RGB顏色空間,4[∶]2[∶]2采樣轉(zhuǎn)為4[∶]4[∶]4采樣。本設(shè)計中DDR2 SDRAM的內(nèi)存核心頻率為100 MHz(理論值能到200 MHz)。DDR2 每次預讀取4 b數(shù)據(jù),倍增系數(shù)為4。故帶寬為100 MHz×32×4=12.8 GB/s。無論系統(tǒng)工作在哪種模式下,32 b,256 MB大小的DDR2均能滿足項目需求。
設(shè)計中使用DSP對四路視頻圖像進行H.264解壓縮。視頻與輔助信息同步模塊中例化了四片DPRAM,用于緩存輔助信息。每路視頻的輔助信息大小為128 B,同步模塊主要是根據(jù)DSP輸出的GPIO信息來控制DPRAM的讀/寫地址和讀/寫使能信號。
4 系統(tǒng)調(diào)試與試驗結(jié)果
系統(tǒng)硬件調(diào)試主要是對板卡上各器件進行可靠性測試。本文按照以下幾個步驟完成硬件調(diào)試。
(1) 短路斷路測試:在系統(tǒng)上電前查看PCB版連線是否正確,測試各電源與地之間是否存在短路。
(2) 電源電壓測試:該系統(tǒng)中的DSP核電壓為1.35 V,DSP外圍I/O芯片電壓為3.3 V,F(xiàn)PGA核電壓為1.1 V,PCI接口電壓為3.0 V。給系統(tǒng)上電后測試各電壓芯片的輸出電壓是否穩(wěn)定,噪聲的影響及輸出的各等級電壓能不能滿足芯片的工作要求,還要觀察芯片的發(fā)熱情況;使用示波器測試FPGA的主時鐘,觀察其波形是否正確。
(3) 器件測試:包括DSP,F(xiàn)PGA,DDR2,Nand FLASH和接口芯片。主要檢測各個芯片的電源、地和信號管腳之間的連線以及電平是否正確。
(4) 下載測試:在FPGA中編寫分頻、流水燈等簡單邏輯的測試程序,通過JTAG,AS口下載,如果FPGA能夠正常實現(xiàn)相應(yīng)的邏輯功能,則表明FPGA的下載口能夠正常工作。同樣,DSP也采用相同方法測試下載口是否正常工作。
軟件調(diào)試采用功能仿真和時序仿真相結(jié)合的方法。在FPGA中完成各個模塊的編寫之后,先使用Modelsim仿真工具對各個模塊進行功能仿真,確保每個模塊能夠?qū)崿F(xiàn)相應(yīng)的功能。當各個模塊功能仿真都完成之后,在Quartus Ⅱ中整合各個模塊,使用嵌入式邏輯分析儀Signal Tag Ⅱ?qū)ο到y(tǒng)各模塊進行時序分析,Signal Tag Ⅱ?qū)⑦壿媰?nèi)核插入到FPGA中,捕捉FPGA中各信號量的波形,并將該波形通過JTAG口傳回到軟件,通過軟件界面來顯示。使用Signal Tag Ⅱ能夠快速了解系統(tǒng)運行過程中各信號量的變化和時序特點。根據(jù)Signal Tag Ⅱ提供的相關(guān)信息進行分析,定位錯誤原因并加以修正。
上位機控制界面顯示的圖像為四路遠程攝像頭獲取的監(jiān)控圖像。由圖像可以看出四路視頻數(shù)據(jù)能夠正常流暢地顯示,系統(tǒng)能夠快速響應(yīng)上位機的工作模塊命令,在四分屏、畫中畫和全屏中自由切換。同時,實驗結(jié)果證明,四路視頻能夠同步響應(yīng)輔助信息,系統(tǒng)總體延時大約為10幀。
在系統(tǒng)軟硬件調(diào)試完畢之后,需要加載軟件程序到硬件平臺上進行聯(lián)合調(diào)試和驗證。在系統(tǒng)上電完成初始化操作后,如果能夠完成預定目標則表示系統(tǒng)設(shè)計成功。經(jīng)過多次聯(lián)合調(diào)試,該系統(tǒng)顯示的監(jiān)控圖像質(zhì)量良好,能夠?qū)崟r接收、傳輸及處理視頻流,且穩(wěn)定可靠,可應(yīng)用于多種后臺系統(tǒng)中,能夠?qū)崿F(xiàn)預期功能需求和技術(shù)指標。
5 結(jié) 論
本文基于FPGA和DSP技術(shù)的多源高清視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn),結(jié)合當前主流技術(shù)和發(fā)展趨勢,采用模塊化和軟硬件相結(jié)合的設(shè)計方法完成嵌入式視頻監(jiān)控系統(tǒng)的構(gòu)建。在視頻圖像傳輸部分,根據(jù)各部分數(shù)據(jù)流的特點,采用PCI接口、EMIF接口和視頻接口,完成了多路視頻數(shù)據(jù)的傳輸,提高了系統(tǒng)數(shù)據(jù)傳輸?shù)男阅?。系統(tǒng)的測試和試驗結(jié)果表明,該監(jiān)控系統(tǒng)圖像質(zhì)量良好,穩(wěn)定可靠且具有良好的兼容性。然而本系統(tǒng)只涉及到視頻和監(jiān)控數(shù)據(jù)的傳輸,并沒有涉及音頻信號的傳輸,因此,對于多類型信號傳輸?shù)臄U展設(shè)計值得進行下一步的深入探討。
參考文獻
[1] 武一,黃宇,劉曉娟,等.基于SOPC的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計[J].計算機測量與控制,2012,20(1):63?65.
[2] 王立.基于TMS320DM642DSP的H.264編碼器結(jié)構(gòu)設(shè)計與實現(xiàn)[D].北京:北京郵電大學,2011.
[3] 李波.基于FPGA與DSP的視頻監(jiān)控系統(tǒng)實現(xiàn)[D].哈爾濱:哈爾濱工程大學,2012.
[4] 劉強,潘明,劉大鵬,等.基于SOPC的嵌入式視頻監(jiān)控系統(tǒng)設(shè)計[J].桂林電子科技大學學報,2013,33(3):210?213.
[5] 朱建武,李榕,凌云,等.基于FPGA的目標跟蹤系統(tǒng)設(shè)計與實現(xiàn)[J].計算機工程,2012,38(5):243?246.
[6] 任勇屹,張祺,韋忠正,等.一種FPGA和TMS320DM642的通信方案[J].計算機應(yīng)用與軟件,2013,30(7):298?300.
[7] 高鵬.基于FPGA的PCI接口數(shù)據(jù)采集系統(tǒng)設(shè)計[D].鎮(zhèn)江:江蘇科技大學,2012.
[8] 許崢,李明,李成金,等.基于SOPC的實時圖像處理系統(tǒng)設(shè)計[J].光電技術(shù)應(yīng)用,2011,26(4):4?7.