資源描述:
《基于dm365網絡視頻監(jiān)控系統(tǒng)設計和實現》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、基于DM365網絡視頻監(jiān)控系統(tǒng)設計和實現 摘要:采用DM365達芬奇視頻處理芯片開發(fā)了嵌入式網絡視頻監(jiān)控系統(tǒng),選擇H.264視頻數據編碼算法以提高數據編碼效率。該系統(tǒng)軟件包括視頻監(jiān)控服務器模塊和客戶監(jiān)控端模塊。運行于DM365平臺上的視頻監(jiān)控服務器將采集的視頻數據經過H.264編碼器壓縮后存儲在硬盤上,并以RTP/RTCP協(xié)議傳輸給客戶監(jiān)控端;運行于PC機上的客戶監(jiān)控端程序可以實現攝像頭的遠程控制與實時監(jiān)控現場。關鍵詞:DM365;視頻監(jiān)控系統(tǒng);H.264;流媒體中圖分類號:TP393.07文獻標志碼:A文章編號:1006-8228(2013)10-3
2、5-030引言隨著電子、計算機、通信和自動化技術的發(fā)展,嵌入式視頻監(jiān)控系統(tǒng)已成為現代安防系統(tǒng)發(fā)展趨勢,并且已經引起了人們的重視。嵌入式視頻監(jiān)控系統(tǒng)主要由嵌入式處理器、嵌入式操作系統(tǒng)及相關軟硬件等組成。TI公司的達芬奇技術是一種專門針對數字視頻應用、基于信號處理的解決方案,能為視頻設備制造商提供集成處理器、軟件、工具和支持,以簡化設計進程,加速產品創(chuàng)新[1]。本系統(tǒng)采用TM320DM365(簡稱DM365)視頻處理芯片開發(fā)嵌入式網絡視頻監(jiān)控系統(tǒng),它具有功耗低、性能高、開發(fā)周期短、可擴展等優(yōu)點。101網絡視頻監(jiān)視系統(tǒng)結構DM365處理器集成了一個ARM926
3、EJ-S內核,一個H.264高清編解碼協(xié)處理器HDVICP和一個MPEG-4/JPEG高清編解碼協(xié)處理器MJCP,可以支持H.264/MPEG-4高清視頻編解碼。本系統(tǒng)利用DM365的強大運算能力,在ARM926EJ-S內核上運行基于Linux操作系統(tǒng)的應用程序實現視頻采集、視頻顯示、網絡通信、流媒體傳輸、外圍器件控制等;在HDVICP協(xié)處理器上運行H.264算法來實現視頻編碼。本系統(tǒng)所設計的網絡視頻監(jiān)控系統(tǒng)總體結構如圖1所示,它由攝像頭、視頻服務器、網絡和客戶監(jiān)控端等模塊組成。攝像頭實現對現場實時視頻的采集,由視頻服務器讀取采集到的視頻信號經H.264
4、編碼器編碼后進行存儲和網絡實時傳輸;客戶監(jiān)控端主要完成視頻信號的接收、存儲、播放和下載等功能。另外,客戶監(jiān)控端可以把用戶的操作轉換成相應的控制信號發(fā)送到視頻服務器,由視頻服務器對外圍器件進行控制。2視頻監(jiān)控服務器模塊的設計10視頻監(jiān)控服務器的主要任務是監(jiān)聽網絡連接,采集視頻數據,視頻數據壓縮編碼,存儲視頻數據并分發(fā)給客戶監(jiān)視端[2]。在視頻數據采集方面,使用V4L2常用模型;在編碼方面,結合DM365芯片的特點采用H.264壓縮編碼標準;另外,使用RTP/RTCP協(xié)議在視頻監(jiān)控服務器與客戶監(jiān)控端之間進行視頻數據傳輸[3]。2.1視頻監(jiān)視服務器模塊工作流程
5、視頻監(jiān)控服務器包括三個子模塊,一是視頻數據處理子模塊,負責視頻數據采集與編碼;二是視頻監(jiān)控控制子模塊,負責開啟、關閉視頻監(jiān)控等控制操作;三是數據傳輸子模塊,負責視頻數據的實時傳輸以及備份視頻數據等工作。視頻監(jiān)控服務器模塊的工作流程如下。①主控程序對系統(tǒng)初始化,主要包括ARM處理器與HDVICP協(xié)處理器的共享內存的配置,視頻采集設備的初始化等。②主控程序建立視頻采集線程Capture、視頻壓縮線程Video、視頻數據存儲與實時傳輸線程Trans、視頻文件備份線程BackData和監(jiān)聽線程Listen。當主控程序完成初始化工作和線程創(chuàng)建工作后轉化為系統(tǒng)控制線
6、程Ctrl。③Capture線程負責采集視頻信號;Video線程負責將視頻采集線程采集到的視頻信號用H.264編碼器壓縮編碼;Trans線程負責將壓縮后的視頻數據存儲在視頻服務器端的硬盤上,并實時地將視頻流傳輸給視頻監(jiān)控端;Listen線程主要負責監(jiān)聽客戶監(jiān)控端的控制命令,并對命令進行詞法解析,執(zhí)行相應的命令;BackData線程負責視頻文件的傳輸,以備客戶端備份視頻文件。④如果退出系統(tǒng),則所有線程結束;否則循環(huán)執(zhí)行③。102.2視頻數據處理子模塊流程在視頻監(jiān)控服務器中涉及到的數據分為兩類:一類是攝像頭采集到的原始視頻數據,一類是壓縮后的視頻數據。這兩類
7、數據均存放在緩沖區(qū)中,這些緩沖區(qū)被多個線程共享。共享的方法是采用管道通信,一方將緩沖區(qū)的地址送入管道,另一方從管道讀取緩沖區(qū)地址對該緩沖區(qū)共享。2.2.1緩沖區(qū)共享由于運行在Linux上的應用程序調用malloc獲得的緩沖區(qū)所用地址均為虛擬地址,因此,緩沖區(qū)的物理空間不一定連續(xù),當把緩沖區(qū)的地址傳遞給協(xié)處理器進行編碼的時候,數據完整性問題就出現了,因為編碼算法是運行在HDVICP協(xié)處理器上的,這是一個只有實地址的世界。所以,TI公司開發(fā)的編碼引擎(CodecEngine,簡稱CE)的軟件架構時提供了CMEM模塊,該模塊為ARM926EJ-S內核和協(xié)處理器
8、之間通信提供了連續(xù)的內存。程序員可調用CMEMAPI申請物理上連續(xù)的共享緩沖區(qū)。