王茂茹
摘 要:視頻監(jiān)控系統(tǒng)在現(xiàn)實中得到了廣泛應用,嵌入式遠程視頻監(jiān)控系統(tǒng)通過遠程網(wǎng)絡實現(xiàn)異地多客戶端的視頻監(jiān)控服務。以ARM芯片技術(shù)為核心,介紹了嵌入式監(jiān)控系統(tǒng)的硬件結(jié)構(gòu)與整體設計,分析了嵌入式視頻監(jiān)控系統(tǒng)實現(xiàn)流程,對視頻采集、視頻數(shù)據(jù)傳輸以及視頻播放技術(shù)進行了研究。
關(guān)鍵詞:視頻監(jiān)控系統(tǒng);ARM芯片技術(shù);數(shù)據(jù)采集
DOIDOI:10.11907/rjdk.151325
中圖分類號:TP319 文獻標識碼:A 文章編號:1672-7800(2015)007-0124-02
0 引言
伴隨著計算機技術(shù)、多媒體技術(shù)、圖像壓縮處理技術(shù)以及網(wǎng)絡技術(shù)的進一步發(fā)展,視頻監(jiān)控技術(shù)也發(fā)展迅速。此外,嵌入式系統(tǒng)技術(shù)在近幾年取得了輝煌成就,芯片的處理速度和集成度都有了巨大提升,這些為監(jiān)控技術(shù)的發(fā)展打下了良好基礎(chǔ)。由于傳統(tǒng)的視頻監(jiān)控系統(tǒng)通常具有操作繁瑣、可移動性差、不便于組網(wǎng)以及升級維護成本高等缺點。因此,如何設計出一套易升級維護、可遠程監(jiān)控、可靠性高的嵌入式視頻監(jiān)控系統(tǒng)則成為亟待解決的問題。本文提出了一種基于嵌入式芯片實現(xiàn)遠程視頻監(jiān)控系統(tǒng)的技術(shù)方案。
1 嵌入式視頻監(jiān)控系統(tǒng)硬件設計
采用ARM芯片控制的嵌入式系統(tǒng),已遍及消費類電子產(chǎn)品、通信網(wǎng)絡系統(tǒng)、工業(yè)控制系統(tǒng)等各類產(chǎn)品市場,ARM芯片控制的嵌入式系統(tǒng)已開始影響著人們生活的方方面面。
1.1 嵌入式視頻監(jiān)控系統(tǒng)整體硬件框圖
監(jiān)控系統(tǒng)主要實現(xiàn)了遠端攝像頭視頻數(shù)據(jù)的實時傳輸,并對采集到的視頻數(shù)據(jù)進行壓縮后,通過網(wǎng)絡傳輸?shù)揭曨l監(jiān)控端進行圖像顯示。該系統(tǒng)使用三星公司生產(chǎn)的S3C2410 ARM處理器作為主控芯片,同時采用CPLD協(xié)助CPU控制各種系統(tǒng)總線。S3C2410主控芯片負責實時監(jiān)控系統(tǒng)其它功能模塊的啟動和運行情況,如視頻圖像采集、視頻數(shù)據(jù)壓縮、網(wǎng)絡傳輸、云臺控制等模塊的正常運行等。當成功檢測到運動物體時,控制警報電路進行警報,其完整硬件框架如圖1所示。
圖1 系統(tǒng)框架
1.2 嵌入式遠程視頻監(jiān)控系統(tǒng)整體設計
設計一種應用系統(tǒng),既要滿足系統(tǒng)要求,又要考慮系統(tǒng)成本,為了達到高效且價格合適的效果,必須選擇開發(fā)周期短且性價比高的硬件平臺。基于嵌入式技術(shù)的遠程視頻監(jiān)控系統(tǒng)有效地將嵌入式技術(shù)和視頻技術(shù)結(jié)合在一起,很好地解決了傳統(tǒng)基于PC的監(jiān)控系統(tǒng)中存在的問題。攝像機采集處理的視頻信號經(jīng)數(shù)字化后傳送到視頻服務器,經(jīng)JPEG圖像壓縮,然后通過組播方式發(fā)送到網(wǎng)絡上[1]。網(wǎng)絡上的終端用戶可以直接使用監(jiān)控終端軟件將其解壓縮,或直接通過Internet實時觀看監(jiān)控現(xiàn)場的圖像。在監(jiān)控現(xiàn)場利用專用嵌入式芯片和實時操作系統(tǒng),有效地提高了系統(tǒng)的穩(wěn)定性和實用性,并且把網(wǎng)絡傳輸和視頻壓縮功能集成到一個集成度很高的設備內(nèi),可以直接接入互聯(lián)網(wǎng),達到即插即看的目的,省掉了各種連線復雜的電纜。在監(jiān)控終端,監(jiān)控人員只需擁有一臺安裝了監(jiān)控終端軟件并接入互聯(lián)網(wǎng)的PC機,而無需安裝其它特殊的硬件設備,即可對現(xiàn)場進行遠程實時監(jiān)控。嵌入式遠程視頻監(jiān)控系統(tǒng)如圖2所示。
圖2 視頻監(jiān)控系統(tǒng)
2 嵌入式視頻監(jiān)控系統(tǒng)實現(xiàn)
2.1 視頻監(jiān)控系統(tǒng)實現(xiàn)流程
視頻監(jiān)控系統(tǒng)由兩部分組成:服務器端與客戶端。服務器端主要負責對遠程視頻數(shù)據(jù)進行采集、壓縮以及網(wǎng)絡數(shù)據(jù)傳輸?shù)龋豢蛻舳素撠煂σ曨l數(shù)據(jù)進行接收與顯示,同時還可以對服務器端發(fā)出請求指令。視頻監(jiān)控流程如圖3所示。
圖3 視頻監(jiān)控實現(xiàn)流程
從圖3中可以看出,首先需要啟動服務器端應用程序,將攝像頭采集到的視頻數(shù)據(jù)按照有關(guān)規(guī)范進行壓縮處理,同時還需要與監(jiān)控端保持連接,每當收到監(jiān)控端的連接請求后,則開始建立網(wǎng)絡連接會話,將這些數(shù)據(jù)以TCP傳輸協(xié)議傳輸?shù)娇蛻舳恕Mㄟ^這樣的循環(huán)來獲取視頻畫面,并將其解碼后即可顯示現(xiàn)場的視頻畫面。
2.2 視頻數(shù)據(jù)采集實現(xiàn)
嵌入式視頻監(jiān)控使用三星S3C2410 ARM處理器作為核心,根據(jù)相關(guān)的視頻規(guī)范進行視頻采集,并利用內(nèi)存作為緩沖區(qū)來存放視頻數(shù)據(jù)。視頻采集核心代碼如下:
2.3 基于TCP/IP的視頻傳輸實現(xiàn)
系統(tǒng)網(wǎng)絡數(shù)據(jù)傳輸是應用Socket接口實現(xiàn)的。服務器端的應用程序首先需要創(chuàng)建一個Socket接口,Socket接口類似文件描述符,目的是為了更好地分配給服務器進程的資源,同時對這部分資源以獨占進程的方式訪問;其次,在服務器端綁定剛才創(chuàng)建的Socket,而本地的Socket也會在系統(tǒng)中分配到相應的資源標識。對于網(wǎng)絡中的Socket,其命名基本上是與特定網(wǎng)絡的有關(guān)服務標識(如:端口號)一起的,這樣可以更好地與其它客戶端連接,系統(tǒng)可以通過該標識符訪問指定端口號的遠程服務器進程。Socket名稱的綁定方法可以調(diào)用bind方法來實現(xiàn)[2]。最后,服務器端的進程會不斷地等待客戶端對該命名的Socket發(fā)起連接請求信息,使用listen監(jiān)聽遠程信息,并使用accept接受請求處理。
2.4 視頻數(shù)據(jù)保存及實時播放實現(xiàn)
(1)視頻圖像保存。存儲JPEG 文件的方法是:首先通過調(diào)用系統(tǒng)函數(shù)CreateFile創(chuàng)建JPG文件,然后通過調(diào)用系統(tǒng)函數(shù)WriteFile來填寫APP0、SOI等標記碼所需的信息,將經(jīng) JPEG 壓縮后的圖像數(shù)據(jù)接著標記碼填入其中,最后,調(diào)用系統(tǒng)函數(shù)CloseHandle關(guān)閉此文件[3]。
(2)視頻實時播放。本地客戶端播放視頻是通過系統(tǒng)級COM類IPicture組件實現(xiàn)的,IPicture組件可以控制圖像對象及其屬性。首先需要對IPicture對象進行實例化,然后通過調(diào)用Render方法來實現(xiàn)視頻圖像的實時顯示。部分核心代碼如下:
通過Ipicture組件一幀一幀地連續(xù)繪制到屏幕上,以監(jiān)控視頻的動態(tài)播放。考慮到視頻監(jiān)控有多個點,因此,軟件實現(xiàn)了多個視頻點的顯示窗口,最終實現(xiàn)了多個終端視頻同步播放的功能。
3 結(jié)語
基于S3C2410的嵌入式視頻監(jiān)控系統(tǒng)采用了TCP傳輸技術(shù)、數(shù)據(jù)壓縮以及嵌入式技術(shù)等,具有部署方便、穩(wěn)定性高、抗干擾能力強、開發(fā)成本低等優(yōu)點。通過該系統(tǒng)可以有效降低監(jiān)控管理的維護成本,全面提高視頻監(jiān)控管理效率。
參考文獻:
[1] 西剎子.安防天下——智能網(wǎng)絡視頻監(jiān)控技術(shù)詳解與實踐[M].北京:清華大學出版社,2010.
[2] 羅亞非.基于TCP的socket多線程通信[J].電腦知識與技術(shù),2009(3):22-24.
[3] 郭劍,趙建.嵌入式Linux的圖像采集與顯示[J].現(xiàn)代電子技術(shù),2006(7):129-131.
[4] 王志凌,王恒,朱海霞,等.基于ARM的遠程視頻監(jiān)控系統(tǒng)設計與實現(xiàn)[J].軟件導刊,2014,13(7):83-85.
(責任編輯:黃 ?。?