嵌入式MPEG-2遠程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的實現(xiàn)
掃描二維碼
隨時隨地手機看文章
Vstar MPEG-2系列遠程數(shù)字視頻監(jiān)控系統(tǒng)是一個基于TCP/IP網(wǎng)絡(luò)的嵌入式遠程圖像監(jiān)控系統(tǒng),采用嵌入式設(shè)計方案,系統(tǒng)穩(wěn)定性高,采用MPEG-2視頻壓縮技術(shù),圖像高清晰,畫質(zhì)可達DVD效果,能夠?qū)崿F(xiàn)單畫面輪流監(jiān)看和1~16個畫面同屏監(jiān)看,支持遠程和本地云臺控制,支持多任務(wù)工作方式,而且圖像存儲、監(jiān)看、遠程控制可同步進行,監(jiān)控距離隨網(wǎng)絡(luò)延伸而不斷加長。該系統(tǒng)分為遠程現(xiàn)場、通信網(wǎng)絡(luò)和監(jiān)控服務(wù)三部分,結(jié)構(gòu)圖如圖1所示。
遠程現(xiàn)場部分和監(jiān)控服務(wù)部分都安裝了MPEG-2圖像處理設(shè)備和有線網(wǎng)絡(luò)接口設(shè)備,軟件采用客戶/服務(wù)器(client/server)結(jié)構(gòu),在遠程現(xiàn)場的有線網(wǎng)絡(luò)接口上運行的是服務(wù)器端軟件,監(jiān)控中心運行客戶端軟件。遠程現(xiàn)場的軟件在系統(tǒng)啟動后要向監(jiān)控中心注冊,作為一個監(jiān)控系統(tǒng),必須有監(jiān)控點的名稱、監(jiān)控點的特性描述的內(nèi)容。監(jiān)控中心在認證該監(jiān)控點之前,為了避免與已經(jīng)存在的監(jiān)控點名稱相同造成混淆,必須先檢測網(wǎng)上是否已經(jīng)存在名稱相同的監(jiān)控點,如果有,則會提醒用戶更換名稱。在通過權(quán)限認證后,客戶端可以通過網(wǎng)絡(luò)與服務(wù)器端建立TCP/IP連接,兩端的通信包括圖像數(shù)據(jù)和控制指令通信,客戶端可以在權(quán)限允許范圍內(nèi)根據(jù)需要通過監(jiān)控中心來調(diào)節(jié)服務(wù)器端的參數(shù)設(shè)置和工作方式,服務(wù)器端則向客戶端發(fā)送經(jīng)過編碼處理后的MPEG-2視頻碼流。
客戶端軟件運行在監(jiān)控中心的PC上,提供相應(yīng)的用戶控制接口。用戶可以通過網(wǎng)絡(luò)與服務(wù)器端建立不同類型的連接,從而獲取不同的服務(wù)。服務(wù)器端軟件運行在遠程現(xiàn)場PC104上,它的功能比較豐富,包括硬件的驅(qū)動控制、通信線路管理、圖像數(shù)據(jù)傳輸、系統(tǒng)控制、攝像頭和云臺調(diào)節(jié)等等。
2 系統(tǒng)硬件設(shè)計
硬件核心部分是MPEG-2視頻處理設(shè)備的設(shè)計,圖2中簡單介紹了MPEG-2硬件視頻壓縮處理的結(jié)構(gòu)。MPEG-2視頻采集壓縮模塊以富士通MB86390芯片為核心,完成對標準視頻信號(PAL或NTSC信號)的A/D轉(zhuǎn)換、MPEG-2壓縮以及與PC104主機之間的通信功能。圖2中視頻解碼A/D從攝像頭輸入的模擬視頻信號轉(zhuǎn)化為數(shù)字視頻信號,然后進行編碼預處理,編碼預處理是將接收的視頻信號處理為規(guī)定的格式,即,把視頻解碼輸出的CCIR601格式的信號轉(zhuǎn)化為編碼器可以處理的CIF或QCIF格式,然后再進行MPEG-2壓縮編碼。圖中的SRAM用來作為編碼所需的幀存和存儲編碼完成后的碼流數(shù)據(jù)。PC104上的軟件則通過總線接口單元來控制編碼器的參數(shù)設(shè)置,及讀取編碼壓縮后的碼流數(shù)據(jù)。該模塊包括以下功能單元:以SAA6252為核心的視頻A/D單元,以MB86390為核心的MPEG-2視頻壓縮單元,以AT89C51與EPM7128(EPLD)為核心構(gòu)成的控制邏輯和總線接口單元??偩€接口單元是在EPLD中實現(xiàn)的,它是本模塊與主機(PC104)進行交互的通道,可以和主機進行視頻碼流和控制數(shù)據(jù)的交換??刂七壿嬍且曨l采集壓縮模塊的核心,它控制并協(xié)調(diào)各模塊的工作,提供控制信號,通過EPLD編程實現(xiàn)系統(tǒng)各模塊所需要的選通、緩沖、讀/寫使能,以及數(shù)據(jù)總線和地址總線的切換等等。
鏡頭云臺控制是通過PC104主機的RS232口進行的,允許用戶根據(jù)自己的要求調(diào)節(jié)系統(tǒng)。用戶可以通過調(diào)節(jié)鏡頭的景深(zoom)、焦距(focus)以及光圈(iris)來調(diào)整圖像質(zhì)量,還可以通過云臺的上下左右調(diào)節(jié)來獲取不同角度的圖像。由監(jiān)控中心的Client端軟件通過SOCKET網(wǎng)絡(luò)接口,把調(diào)整信息發(fā)送給Server端,Server接收到控制指令后,進行指令識別,然后向?qū)?yīng)的RS232口發(fā)送指令去控制云臺,完成調(diào)整任務(wù)。
3 系統(tǒng)軟件設(shè)計
傳統(tǒng)的應(yīng)用程序都是單線程的,即,在程序運行期間,由單個線程獨占CPU的控制。在這種情況下,程序在執(zhí)行一些比較費時的任務(wù)時,就無法及時響應(yīng)用戶的操作,影響了應(yīng)用程序的實時性能。在監(jiān)控系統(tǒng),特別是遠程監(jiān)控系統(tǒng)中,應(yīng)用程序往往不但要及時把監(jiān)控對象的最新信息反饋給監(jiān)視客戶(通過圖形顯示),還要處理本地機與遠程機之間的通信以及對控制對象的實時控制等任務(wù),這時,僅僅由單個線程來完成所有任務(wù),顯然無法滿足監(jiān)控系統(tǒng)的實時性要求。為此,可引進多線程機制,主線程專門負責消息的響應(yīng),使程序能夠響應(yīng)命令和其他事件。輔助線程可以用于完成其他比較費時的工作,如通信、圖形顯示和后臺打印等,這樣就不至于影響主線程的運行??傊?,把多線程機制引進通信,有利于提高應(yīng)用程序的實時性,充分利用系統(tǒng)資源。對于大型的工程應(yīng)用來說,不同的線程完成不同的任務(wù),也有利于提高程序的模塊化,便于維護和擴展?! ?
軟件采用了Client/Server結(jié)構(gòu),兩端通過網(wǎng)絡(luò)建立TCP/IP連接,按照自定義的數(shù)據(jù)通信協(xié)議交換數(shù)據(jù),完成數(shù)據(jù)通信和系統(tǒng)控制的功能。監(jiān)控中心的客戶端向服務(wù)器端申請建立連接,服務(wù)器監(jiān)聽到連接請求之后,和客戶端建立SOCKET連接,客戶端向服務(wù)器發(fā)送控制信號,服務(wù)器端向客戶端發(fā)送視頻碼流?! ?BR>
服務(wù)器端軟件運行在PC104上,編碼部分由于采用了硬件壓縮,不占用PC104的系統(tǒng)資源,所以,合理設(shè)計PC104上運行的服務(wù)器軟件結(jié)構(gòu),對于提高整個系統(tǒng)的工作效率有著重要的意義,系統(tǒng)性能也與之密切相關(guān)。軟件設(shè)計的主要思想如下:讀取線程,發(fā)送線程和控制線程之間的同步,防止有限資源的浪費。
在分析控制指令、碼流讀入、發(fā)送傳輸?shù)奶幚磉^程中,可能會存在時間冗余。以讀取碼流為例,系統(tǒng)從EPLD的FIFO中讀取視頻數(shù)據(jù),如果CPU讀取的速度比編碼器的速度快,可能會處于等待的編碼器硬件響應(yīng)狀態(tài)。此時雖然CPU被占用,但實際上系統(tǒng)沒有執(zhí)行有效的任務(wù),造成計算機系統(tǒng)資源的浪費,而嵌入式系統(tǒng)的資源本來就非常緊張。為了充分利用CPU計算能力,提高系統(tǒng)的整體性能,在該系統(tǒng)中采用多線程技術(shù)實現(xiàn)任務(wù)的調(diào)度?,F(xiàn)以遠程現(xiàn)場數(shù)據(jù)處理過程為例分析如下:
(1)讀取線程:負責控制硬件,從編碼器中讀取圖像數(shù)據(jù)到主機內(nèi)存;
?。?)發(fā)送線程:負責視頻碼流的傳輸;
(3)控制線程:負責云臺、攝像頭的控制以及編碼器的參數(shù)設(shè)置?! ?
視頻傳輸中,在服務(wù)器端要求碼流讀取和發(fā)送互不干擾,避免讀取和發(fā)送相互等待或相互沖突的情況出現(xiàn),同樣,在客戶端解碼和接收也存在這個關(guān)系。本設(shè)計采用了一種基于環(huán)形緩沖區(qū)的多線程視頻傳輸技術(shù),較好地解決了這個問題。主機的環(huán)形緩沖區(qū)除了達到數(shù)據(jù)分離互斥作用外,還可以起到平滑碼流的作用。讀取線程和發(fā)送線程是互斥關(guān)系,讀入的視頻數(shù)據(jù)供傳輸線程處理,這是一個簡單的消費者和生產(chǎn)者的關(guān)系問題,只要不進入臨界區(qū),兩個線程可以同時工作,用環(huán)形緩沖區(qū)和互斥鎖完全可以解決這兩個線程的同步問題。線程之間通過同步實現(xiàn)了CPU時間片的合理分配,以及硬件訪問管理、內(nèi)存緩沖區(qū)的訪問管理等等,大大地提高了該系統(tǒng)的處理性能?! ?
客戶端提供用戶的控制接口,用戶通過它要求各種服務(wù)。用戶可以連接到服務(wù)主機,按照自己的要求改變系統(tǒng)的工作方式和工作狀態(tài)。最高權(quán)限可以調(diào)整服務(wù)器端的工作方式,修改系統(tǒng)的管理信息,獲取所有不同類型的服務(wù)?! ?
系統(tǒng)定義了自己的指令系統(tǒng)和指令傳輸協(xié)議。指令可以分為以下幾類:工作控制(傳輸開始、傳輸停止、存儲控制等),鏡頭云臺控制(焦距、光圈、自動轉(zhuǎn)動等),系統(tǒng)設(shè)置(用戶管理、通信參數(shù)設(shè)置等)。每條指令前面都有其唯一的識別標志,服務(wù)器接收到后可以用來和其它指令進行區(qū)分。服務(wù)器的IP固定,主線程在啟動時創(chuàng)建了與監(jiān)控中心的Socket的連接,在指定的服務(wù)端口進行監(jiān)聽,當有用戶要求連接時,為其創(chuàng)建指令通信線路連接,不同權(quán)限的用戶對系統(tǒng)有不同的控制權(quán)。從而實現(xiàn)了監(jiān)控中心對該系統(tǒng)的控制?! ?
監(jiān)控中心客戶軟件還支持圖像的存儲和回放。用戶可以將實際監(jiān)控中的圖像存儲在本地硬盤上,并按照不同的方式檢索回放。
4 結(jié)束語
Vstar MPEG-2系列遠程數(shù)字監(jiān)控系統(tǒng)支持標準視頻信號和高分辨率的圖像采集、壓縮,支持基于Internet的數(shù)據(jù)傳輸,C/S的結(jié)構(gòu)體系允許用戶進行遠端操作系統(tǒng)的工作方式。系統(tǒng)的各個子模塊相對獨立,可以實現(xiàn)以下功能:
(1)實時性:MPEG-2編碼設(shè)備可確保數(shù)字視頻信號實時傳輸與接收。保證監(jiān)控中心接收到的監(jiān)視信息與現(xiàn)場情況不存在不可接受的時差;
(2)連續(xù)性:基于嵌入式技術(shù)的MPEG-2編解碼設(shè)備可確保PAL制視頻的幀速率為:25幀/秒,NTSC制為30幀/秒。并確保監(jiān)控中心看到的圖像清晰可辨以及通信暢通,全天候不間斷可靠運行。
(3)可控性:監(jiān)控中心可遠程對各個分中心圖像進行取舍和控制。系統(tǒng)參數(shù)設(shè)置方便快捷,可以對視頻源的任何參數(shù)進行設(shè)置,并可實現(xiàn)帶寬的動態(tài)調(diào)整。
(4)可擴展性:可以根據(jù)實際情況修改系統(tǒng)結(jié)構(gòu),系統(tǒng)規(guī)模的擴展只需增加相應(yīng)的編解碼器,中心的控制功能具有可擴展性,可與辦公自動化網(wǎng)絡(luò)聯(lián)接,實現(xiàn)多址異地分控;中心的功能也可擴展,還可在適當增加編解碼器的情況下實現(xiàn)遠程視頻會議功能,從而滿足不同方面的需要。
該系列遠程數(shù)字監(jiān)控系統(tǒng)目前已經(jīng)在銀行監(jiān)控、高速公路監(jiān)控、地圖航拍、家用監(jiān)控等方面有著廣泛的應(yīng)用。
參考文獻
1 余兆明,李曉飛,陳來春編著.數(shù)字電視設(shè)備及測量.北京:人民郵電出版社,2000
2 Stevens.TCP/IP詳解——協(xié)議.北京:機械工業(yè)出版社,2000
3 王學龍編著.嵌入式Linux系統(tǒng)設(shè)計與應(yīng)用.北京:清華大學出版社,2001