潘力策,孟利民(.浙江工業大學 信息工程學院,浙江 杭州 3003;.浙江省通信網技術應用研究重點實驗室,浙江 杭州 3003)
基于DM365的雙碼流視頻監控設備的設計與實現*
潘力策1,孟利民2
(1.浙江工業大學信息工程學院,浙江杭州310023;2.浙江省通信網技術應用研究重點實驗室,浙江杭州310023)
針對視頻監控終端設備中的視頻實時顯示、編碼數據本地存儲備份等雙重需求,設計了一種基于DM365視頻處理芯片、H.264壓縮技術、嵌入式Linux操作系統的雙碼流視頻監控終端設備。給出了系統的總體軟硬件結構,重點闡述了視頻處理子系統模塊(包括視頻前端采集模塊和視頻后端顯示模塊)以及視頻編碼模塊。測試結果表明,系統實時監測性能良好,本地存儲的編碼數據清晰穩定,具有很強的實用性和廣闊的發展前景。
視頻監控;DM365;ARM
隨著網絡技術、視頻編解碼技術、信息處理技術在安防領域中的應用日趨成熟,視頻監控系統的發展也從最初的模擬視頻監控系統發展到了如今的網絡數字視頻監控系統[1]。以往視頻圖像處理算法主要由DSP處理,但是隨著算法復雜度的增加及視頻分辨率的提高,傳統DSP逐漸無法勝任這方面的工作[2]。為此,需要新的處理器架構來提高視頻算法的并行性與帶寬。當前TI公司已經推出相關的異構處理器與多核DSP;英偉達公司推出了最新的SoC芯片Tegra4,其內含4個Cortex.A15和72個GeForceGPU[3-4]。最新的SoC制程也已經達到28nm,幾乎取得了相當于PC的頻率帶寬。由于視頻的數據量大,占用帶寬多,這不僅對網絡是個不小的負擔,對圖像本地存儲備份的能力也有很大的影響,所以就需要采取一種高效的壓縮算法對視頻進行編碼,以降低其所占用的網絡帶寬和存儲空間[5]。近年來,H.264、MJPGE等算法的研究使得網絡較實時傳輸和本地存儲備份成為了可能。最新的H.265壓縮算法的出現大大提高了視頻傳輸效率,但這需要相應的處理器能力的提高[6]。
本文所設計的多路數據流視頻監控終端設備基于TI公司的TMS320DM365芯片,支持雙路不同分辨率大小的數據流,分別實現兩種不同的功能,第一路數據流實現D1(720×576)分辨率大小H.264編碼數據的本地存儲備份,第二路數據流實現QVGA(320×240)分辨率大小原始數據的實時顯示。
本文采用視頻采集芯片+多核芯片(ARM核+DSP核或編解碼協處理器組成)的方案來設計視頻監控終端設備,這種方案將視頻采集芯片獲得的數據接入到多核芯片中,再交由DSP核或編解碼協處理器完成視頻數據的編碼,最終通過ARM核對系統進行控制,完成數據流的正確傳遞和其他必要操作。這種方案成本較低,性價比較高。
硬件框架方面,選用了TI公司的基于DaVinci技術的TMS320DM365芯片作為處理器芯片,以及同為TI公司出品的TVP5151芯片作為視頻前端采集芯片來搭建嵌入式視頻監控設備。
系統硬件框架設計圖如圖1所示。

圖1 硬件框架設計圖
軟件框架方面,采用多線程配合工作的方案進行設計,多線程編程相較于多進程編程,它不僅在資源利用率方面有較大的優勢,同時也大大降低了程序員編程的難度,加快了項目軟件的開發。
TMS320DM365芯片上提供了一個視頻處理子系統(VPSS),用于視頻數據的實時采集、播放等功能。VPSS內部集成了一個視頻處理前端模塊(VPFE)和一個視頻處理后端模塊(VPBE),VPFE用來控制接入的外部圖像采集設備,如圖像傳感器、視頻解碼器等,本系統接入了TVP5151視頻解碼器。VPBE則用來控制接入的顯示設備,如標清的模擬電視顯示器、數字的LCD液晶顯示屏等,本系統接入了RGB565LCD液晶顯示屏。此外,VPSS還集成了內存緩存區和DMA(直接內存訪問)控制器,用來保證有效地利用DDR2或mDDR,控制突發帶寬。
2.1驅動配置
2.1.1VPFE采集驅動的配置
VPFE采集驅動通過標準的V4L2接口將底層硬件的功能暴露給了上層應用程序,這樣,應用程序就能通過控制V4L2設備(/dev/Video0)來獲取由連接到VPFE的視頻解碼器(如TVP5151)采集到的一幀原始數據。VPFE硬件模塊支持以下兩種不同的數據管道[7],如圖2所示。

圖2 VPFE硬件模塊數據管道圖
(1)輸入接口通過IPIPE接入到SDRAM,所有型號的SoC都支持這個通道。
(2)輸入接口通過IPIPE接入到Previewer,并最終從Resizer輸出兩種不同分辨率大小的視頻數據到SDRAM,從RSZ-A輸出的是原始分辨率大小的圖像,用于后續的數據編碼,從RSZ-B輸出的是分辨率較小的圖像,用于后續的實時顯示。
為了實現前文所述的視頻實時顯示功能,通過VPFE驅動將VPFE硬件模塊配置成第二種數據流通道的采集方式。
2.1.2VPBE顯示驅動的配置
VPBE顯示驅動由更底層的V4L2(Video for Linux 2)驅動和FB(Frame Buffer)驅動構成,當內核加載V4L2驅動時,它會向內核注冊/dev/Video2和/dev/Video3兩個設備,而當內核加載FB驅動時,它會向內核注冊/dev/fb/0、/dev/fb/1、/dev/fb/2、/dev/fb/34個設備,注冊的設備都對應了它們所能控制的圖層[8],對應關系如表1所示。

表1 圖層與設備對應關系表
可以通過設置系統啟動參數來決定VPBE驅動被加載時會向內核注冊的設備,以此決定開啟的圖層以及圖層開啟后受何種設備控制[9],例如,注冊/dev/fb/3設備,VID1圖層將被開啟且只受/dev/fb/3設備控制。在實際方案中,啟動參數指定VPBE向內核注冊/dev/Video2設備和/dev/fb/0設備,分別開啟了VID0圖層和OSD0圖層,其中VID0圖層受/dev/Video2設備控制,用于顯示采集到的視頻數據,而OSD0圖層受/dev/fb/0設備控制,用于顯示QT等UI交互界面,其余圖層默認保持關閉狀態。
VID0圖層的數據和VID1圖層的數據會依次經過VPBE硬件模塊中的OSD部件和ENC部件,最終由DAC模塊輸出模擬信號或者由LCD控制器輸出數字信號[10],數據管道如圖3所示。

圖3 VPBE硬件模塊數據管道圖
在前文中已提到,LCD液晶屏被接入到了VPBE模塊,所以VPBE驅動將VPBE硬件模塊配置成視頻數據由VID0圖層輸入,并最終通過LCD控制器輸出到LCD液晶屏上。
2.2應用程序設計
在VPFE驅動將VPFE硬件模塊配置為雙分辨率數據流的前提下,將應用層程序設計為一路數據流用于視頻實時顯示,另外一路數據流用于視頻編碼,Capture線程數據流程圖如圖4所示。

圖4 Capture線程數據流圖
(1)第一路數據流
hCapture-->hCapBuf-->hDstBuf(D1:720x576)-->hOutFifo,用于視頻編碼存儲。
(2)第二路數據流
hCapture-->hCapBuf-->hRzbBuf-->hDisBuf(QVGA:320x240)-->hDisplay,用于視頻實時顯示。
hCapBuf緩存用于存放VPFE采集驅動采集到的原始視頻數據,存放著736×576大小的數據,hDstBuf緩存中的數據用于供后續視頻編碼存儲,存放著D1:720×576大小的數據,hDisBuf緩存中的數據用于供后續視頻顯示回放,存放著QVGA:320×240大小的數據,hRzbBuf緩存中的數據用于供后續視頻編碼上傳。
原始視頻數據的編解碼需要用到達芬奇軟件框架的Codec Engine(編解碼引擎)技術來實現。Codec Engine定義了一組VISA(Video Image Speech Audio)APIs接口供應用程序調用。DM365的高清視頻協處理器(HDVICP)封裝了相應的編解碼算法,ARM處理器中的應用程序可以通過VISA-APIs接口對編解碼算法進行調用。ARM處理器負責執行應用程序,視頻協處理器負責執行編解碼算法,這樣不僅大大降低了ARM處理器的CPU占用率,還能提高編解碼的效率。本文采用H.264編碼標準進行編碼,需要調用相應的H.264算法實例。
3.1視頻編碼接口
H.264是一種高性能的視頻編解碼標準,繼承了H.263和MPEG1/2/4視頻編碼器的優點。H.264標準中定義了兩個層次:視頻編碼層(VCL)和網絡抽象層(NAL),VCL負責高效的數字視頻數據壓縮,NAL提供適當的接口對數據進行打包和傳送。
為了得到H.264格式的視頻流,需要配置alg_server.cfg文件來實現對已經編譯算法的調用,文件配置如下:


在應用程序中能調用的接口函數有:VIDENC1_cre ate、VIDENC1_control、VIDENC1_process和VIDENC1_delete,它們分別負責編碼實例的創建、控制、運行以及最終的清除。
3.2應用程序設計
所設計的Video線程基于Capture線程,Capture線程向Video線程輸入一路D1:720×576大小的數據流,Video線程如圖5所示。

圖5 Video線程數據流圖
測試環境搭建方法如下:
(1)LCD液晶屏連接在以TMS320DM365為主芯片的產品板上,TMS320DM365主芯片的CPU頻率為216MHz,板載Flash為1GB,板載DDR2為128MB。
(2)本地備份的視頻數據文件存儲在SD卡中,文件格式為H.264,文件大小為6.2MB,總時長為1min,使用VLC播放器播放。
經測試,視頻監控終端設備能實時地顯示攝像頭采集到的視頻畫面,顯示畫面大小為QVGA(320×240),如圖7(a)所示。SD卡里存儲備份的視頻數據也成功紀錄了一段時間內的視頻畫面,分辨率大小為D1(720×576),如圖7(b)所示。

圖7 測試結果圖
本文設計實現了基于TMS320DM365硬件平臺的視頻監控終端設備,該視頻監控終端設備不僅具有數據采集功能,而且還集成了本地存儲備份以及原始數據實時顯示等核心功能。采用TMS320DM365的ARM+DSP雙核模式,提高了編碼效率以及傳輸效率,通過測試發現,實時圖像清晰流暢,ARM資源占有率低,可擴展性大,滿足系統實時性和穩定性的要求。
[1]張偉.視頻監控技術的發展歷程和方向[J].中國交通信息產業,2007(6):139-142.
[2]鄭磊.基于嵌入式Linux的網絡視頻監控系統研究[D].武漢:武漢理工大學,2011.
[3]劉繼超.基于DM355的嵌入式網絡視頻監控系統設計[D].青島:青島科技大學,2012.
[4]望重.嵌入式網絡視頻監控系統的研究與實現[D].鎮江:江蘇大學,2010.
[5]胡攀.基于Linux的網絡視頻監控系統設計[D].武漢:武漢理工大學,2012.
[6]項昌晨,王磊.基于TMS320DM365的網絡視頻監控系統設計[J].機電一體化,2011,17(12):58-63.
[7]Texas Instruments.Davinci Linux VPFE Capture Driver[EB/OL].[2014-12-15].http://www.ti.com/lit/an/sprs566a/sprs566a.pdf.
[8]Texas Instruments,Video Processing Back End(VPBE)[EB/OL].[2014-12-15].http://www.ti.com.cn/cn/lit/ug/sprufg9c/sprufg9c.pdf.
[9]Texas Instruments,LSP 2.10 DaVinci Linux VPBE Frame Buffer Driver[EB/OL].[2014-12-15].http://www.ti.com/lit/ug/spruek9/spruek9.pdf.
[10]Texas Instruments,LSP 2.10 DaVinci Linux V4L2 Display Driver[EB/OL].[2014-12-15].http://www.ti.com/lit/ug/spruel3/spruel3.pdf.
Design and implementation of multiple streaming video monitoring device based on DM365
Pan Lice1,Meng Limin2
(1.College of Information Engineering,Zhejiang University of Technology,Hangzhou 310023,China;2.Zhejiang Provincial Key Laboratory of Communication Networks and Applications,Hangzhou 310023,China)
This paper introduces the design of a multiple streaming video monitoring device based on the video processing chip DM365,H.264 encoding technology and embedded Linux.It elaborated on the overall structure of the system hardware and software modules,especially on the video processing subsystem module(including video processing front end and video processing back end)and video encoding module.The client has real-time monitoring of the scene after receiving,and the device has real-time displaying of the captured video and backup the encoded video data.Experimental results show that the system is stable and reliable,and has a wide range of application.
video monitoring;DM365;ARM
TP37
A
1674-7720(2015)10-0041-03
2014-12-23)
潘力策(1989-),男,碩士研究生,主要研究方向:多媒體數字通信與網絡。
國家自然科學基金項目(61372087)
孟利民(1963-),女,博士,教授,主要研究方向:無線通信與網絡、智能信息系統、網絡管理、多媒體數字通信與網絡。