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