智能樓宇系統(tǒng)中的軟件化網(wǎng)絡(luò)視頻監(jiān)控服務(wù)器
時(shí)間:2006-04-21 19:54:00來(lái)源:0
導(dǎo)語(yǔ):?本文配合智能樓宇系統(tǒng)集成軟件的開發(fā),針對(duì)具體應(yīng)用系統(tǒng)的特點(diǎn),開發(fā)了基于軟件的網(wǎng)絡(luò)化視頻監(jiān)控
摘要: 本文配合智能樓宇系統(tǒng)集成軟件的開發(fā),針對(duì)具體應(yīng)用系統(tǒng)的特點(diǎn),開發(fā)了基于軟件的網(wǎng)絡(luò)化視頻監(jiān)控服務(wù)器服務(wù)程序和客戶端軟件,文中詳細(xì)論述了基于程序的軟視頻服務(wù)器的基本原理,并給出了具體的軟件實(shí)現(xiàn)。
關(guān)鍵詞:視頻監(jiān)控 視頻服務(wù)器 TCP/IP協(xié)議 組播
1、引言
視頻監(jiān)控是智能樓宇系統(tǒng)中的重要組成部分,對(duì)于加強(qiáng)內(nèi)部和外部人員的管理,應(yīng)付突發(fā)事件、安全防盜和事故追蹤等方面都有著重要的作用[1]。隨著Intertnet的飛速發(fā)展,視頻監(jiān)控的網(wǎng)絡(luò)化也成為主要的技術(shù)發(fā)展趨勢(shì)。實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)控,可以使用戶不受地點(diǎn)的限制而方便地進(jìn)行遠(yuǎn)程監(jiān)控。實(shí)現(xiàn)監(jiān)控網(wǎng)絡(luò)化后,用戶機(jī)只需安裝普通的瀏覽器即可實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,而無(wú)須安裝客戶端程序,大大簡(jiǎn)化系統(tǒng)的安裝和實(shí)現(xiàn)。目前實(shí)現(xiàn)網(wǎng)絡(luò)化視頻監(jiān)控的方案主要有兩種:第一種,使用專用的嵌入式的視頻服務(wù)器,比如荷蘭的AXIS2400[2](四通道MpegI格式)、臺(tái)灣一碩產(chǎn)的(單/雙/四通道,Mpeg4格式)[3]等。第二種就是使用程序?qū)崿F(xiàn)的軟件視頻服務(wù)器[4]。兩種方案各有千秋,前一種需用專門硬件設(shè)備,開發(fā)周期短,畫面質(zhì)量高,但成本費(fèi)用高,靈活性低,尤其是與不同視頻監(jiān)控主機(jī)的通信連接仍然需要軟件配合;相比之下采用程序?qū)崿F(xiàn)的軟件化視頻服務(wù)器成本低,靈活性高,可以方便滿足用戶提出的各種需求,但同時(shí)開發(fā)周期相對(duì)要長(zhǎng)。本文配合智能樓宇系統(tǒng)集成軟件的開發(fā)[5],針對(duì)具體應(yīng)用系統(tǒng)的特點(diǎn),開發(fā)了基于軟件的網(wǎng)絡(luò)化視頻監(jiān)控服務(wù)器服務(wù)程序和客戶端軟件,文中詳細(xì)論述基于程序的軟視頻服務(wù)器的基本原理,并給出了具體的軟件實(shí)現(xiàn)。
2、系統(tǒng)結(jié)構(gòu)及功能概述
應(yīng)用系統(tǒng)硬件結(jié)構(gòu)如圖1所示。網(wǎng)絡(luò)化視頻監(jiān)控系統(tǒng)是在傳統(tǒng)視頻監(jiān)控的基礎(chǔ)上,通過(guò)串口通信控制視頻監(jiān)控矩陣主機(jī)進(jìn)行通道切換,選擇指定的監(jiān)控畫面,再經(jīng)視頻捕捉卡捕捉、軟件壓縮,再通過(guò)web服務(wù)傳送到網(wǎng)絡(luò)上的遠(yuǎn)程客戶程序,遠(yuǎn)程客戶端瀏覽器借助下載的Java小程序?qū)崿F(xiàn)解壓、回放。
圖1 應(yīng)用系統(tǒng)硬件結(jié)構(gòu)圖
應(yīng)用系統(tǒng)軟件結(jié)構(gòu)如圖2所示。視頻服務(wù)程序調(diào)用圖像卡供應(yīng)商提供的的DLL庫(kù)采集視頻流數(shù)據(jù),然后調(diào)用JPEG庫(kù)將采集到的DIB圖像壓縮為JPEG圖像,再通過(guò)UDP協(xié)議的WinSocket套接字發(fā)送給客戶。視頻服務(wù)程序與客戶端的交互是借助于運(yùn)行在客戶端的JavaApplet小程序?qū)崿F(xiàn)的。JavaApplet內(nèi)嵌在網(wǎng)頁(yè)中,當(dāng)用戶訪問(wèn)系統(tǒng)時(shí),JavaApplet小程序隨同html文件下載到客戶端并由IE瀏覽器解釋執(zhí)行。當(dāng)用戶在切換攝像頭時(shí),JavaApplet將選中的攝像頭位號(hào)提交給視頻服務(wù)程序。視頻服務(wù)程序通過(guò)RS-232串口通信將切換報(bào)文發(fā)送給AD196矩陣切換機(jī),由AD196進(jìn)行視頻通道的切換。
在應(yīng)用系統(tǒng)中使用的矩陣切換機(jī)為AD196,該機(jī)有8個(gè)RS-232控制端口。操作內(nèi)容包括:攝像機(jī)監(jiān)視器的切換、巡視、序列控制、PTZ(云臺(tái))控制和報(bào)警接口等。RS-232端口接收的控制命令均為ASCII碼。為了保證云臺(tái)運(yùn)動(dòng)的連續(xù)實(shí)時(shí)性,指定動(dòng)作的ASCII碼及緊隨的終止符最少必須發(fā)送5次,重復(fù)發(fā)送直到動(dòng)作取消,為了確保動(dòng)作的連續(xù)平滑,必須以每秒鐘15次的速率發(fā)送。
圖2 系統(tǒng)軟件結(jié)構(gòu)框圖
另外,在系統(tǒng)的實(shí)現(xiàn)中使用JPEG標(biāo)準(zhǔn)進(jìn)行圖像壓縮而不采用MPEG標(biāo)準(zhǔn)是基于如下原因考慮的。由于系統(tǒng)使用基于TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)傳輸,并且采用基于UDP協(xié)議的組播方式。而TCP/IP的網(wǎng)絡(luò)傳輸存在網(wǎng)絡(luò)阻塞、數(shù)據(jù)丟失等隱患。由于MPEG壓縮標(biāo)準(zhǔn)進(jìn)行幀間壓縮,發(fā)送的只是幀間的差值。若網(wǎng)絡(luò)發(fā)生阻塞,丟失了一幀信息,后面的幀將無(wú)法正確恢復(fù),只有重新傳輸上一幀。這無(wú)疑會(huì)產(chǎn)生很大延時(shí),無(wú)法滿足監(jiān)控系統(tǒng)實(shí)時(shí)性的要求。JPEG標(biāo)準(zhǔn)只對(duì)每一幀圖像進(jìn)行壓縮,各幀之間不進(jìn)行幀間壓縮。這種方式的數(shù)據(jù)量較MPEG方式有所增加但是增加的數(shù)據(jù)對(duì)系統(tǒng)性能的影響不是很大,如:圖像卡采集的圖像為320×240、RGB24位的DIB圖像,經(jīng)過(guò)壓縮每幀圖像的數(shù)據(jù)大概為5Kb,發(fā)送的幀率按15幀/s計(jì)算,每秒的數(shù)據(jù)量為75kb/s,從結(jié)果可以知道并不會(huì)占用太多的帶寬。另外,更重要的一點(diǎn)是,采用JPEG進(jìn)行網(wǎng)絡(luò)傳輸時(shí),如果出現(xiàn)網(wǎng)絡(luò)短暫阻塞,可將當(dāng)前的幀拋棄而不影響下一幀的圖像恢復(fù),因而能夠保證監(jiān)控系統(tǒng)實(shí)時(shí)性的要求,而對(duì)于監(jiān)控系統(tǒng)的圖像傳輸來(lái)說(shuō),實(shí)時(shí)性是第一位的。
3、TCP/IP協(xié)議及IP組播
網(wǎng)絡(luò)通信的方法主要有:基于TCP或UDP協(xié)議的點(diǎn)對(duì)點(diǎn)式、基于UDP協(xié)議的廣播和組播。其中TCP協(xié)議是面向連接的,在交換數(shù)據(jù)前,通信主機(jī)和客戶機(jī)間必須建立連接。另外,TCP協(xié)議提供差錯(cuò)校驗(yàn)、丟幀重發(fā)等傳輸機(jī)制,這些特性使得TCP協(xié)議可以提供高可靠性的數(shù)據(jù)傳輸。同時(shí),這些特點(diǎn)又帶來(lái)一些負(fù)面影響:占用較多的系統(tǒng)資源,特別是面向多連接的應(yīng)用時(shí),頻繁的建立連接會(huì)占用大量的系統(tǒng)資源,在遇到網(wǎng)絡(luò)阻塞時(shí),數(shù)據(jù)幀的丟失會(huì)導(dǎo)使不斷地重發(fā)丟失數(shù)據(jù),使得數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性大大降低。所以,TCP協(xié)議一般應(yīng)用于對(duì)數(shù)據(jù)可靠性要求很高,而對(duì)實(shí)時(shí)性的要求相對(duì)不高的情況下。UDP協(xié)議與TCP協(xié)議不同,是不面向連接的。由于取消了差錯(cuò)校驗(yàn)、丟幀重發(fā)機(jī)制,因而提供的服務(wù)是不可靠的,但是其快速性則提高。還有一點(diǎn)重要的是,UDP協(xié)議支持IP組播,這就為單點(diǎn)對(duì)多點(diǎn)或多點(diǎn)對(duì)多點(diǎn)實(shí)時(shí)數(shù)據(jù)傳送提供了可能。
圖 3單播和多播
在本系統(tǒng)中,由于監(jiān)控系統(tǒng)對(duì)實(shí)時(shí)性的要求高,需要連續(xù)傳送的圖像信息量很大。如果采用點(diǎn)對(duì)點(diǎn)的方式,對(duì)每幀圖像服務(wù)器都必須向每個(gè)連接的客戶機(jī)發(fā)送一次,數(shù)據(jù)的發(fā)送量和響應(yīng)時(shí)間都與客戶的數(shù)目成正比,使得服務(wù)器不能及時(shí)響應(yīng)客戶端的請(qǐng)求,同時(shí)占用了網(wǎng)絡(luò)帶寬,使系統(tǒng)整體效能將大大降低了。而采用基于UDP協(xié)議的IP組播方式可以很好的解決這個(gè)問(wèn)題。IP組播是指在互聯(lián)網(wǎng)上對(duì)一組IP站點(diǎn)同時(shí)進(jìn)行數(shù)據(jù)傳送,發(fā)送方只需發(fā)一次數(shù)據(jù),加入組播組的客戶機(jī)都能接收到數(shù)據(jù)報(bào)。每一個(gè)站點(diǎn)都可以動(dòng)態(tài)的加入或退出該組播組。IP組播允許一點(diǎn)對(duì)多點(diǎn)或多點(diǎn)對(duì)多點(diǎn)通信。單播和組播的比較如圖3所示。在IPv4中使用D類IP地址,它動(dòng)態(tài)分配和恢復(fù)地址范圍是224.0.0到239.255.255.255。其中224.0.0.0到224.0.0.255為局部聯(lián)接多播地址。當(dāng)需要將多播范圍擴(kuò)展到廣域網(wǎng)時(shí),需要有路由器轉(zhuǎn)發(fā)多播數(shù)據(jù)。同時(shí)需要使用Inernet組管理協(xié)議(IGMP)。WINSOCK2系統(tǒng)中提供了對(duì)IP多播的支持,它是一個(gè)與協(xié)議無(wú)關(guān)的、具有實(shí)時(shí)網(wǎng)絡(luò)傳輸能力的網(wǎng)絡(luò)接口。WINSOCK多播模型中定義了數(shù)據(jù)面和控制面的概念??刂泼鏇Q定一個(gè)多播組建立通信的方式,數(shù)據(jù)面決定通信成員間數(shù)據(jù)傳輸?shù)姆绞?。兩平面均采用“無(wú)”根模式,任一用戶所發(fā)送的數(shù)據(jù)都將被傳送到組中所有的成員。數(shù)據(jù)報(bào)的發(fā)送者需指定一個(gè)多播地址為目的地址,向該多播地址發(fā)送數(shù)據(jù)即可。數(shù)據(jù)的接收者可以通過(guò)分組原地址端口來(lái)區(qū)別發(fā)送源。
在系統(tǒng)實(shí)現(xiàn)時(shí),采取了一些有效的措施以提高系統(tǒng)整體的效率和效能。為了保證服務(wù)器端和客戶端傳遞握手信號(hào)和控制命令的可靠性,采用可靠的TCP協(xié)議,以確保客戶端的請(qǐng)求能夠準(zhǔn)確地到達(dá)服務(wù)器端并得到響應(yīng)。在實(shí)現(xiàn)時(shí),為了提高系統(tǒng)資源的使用效率,采用請(qǐng)求——應(yīng)答的方式:每當(dāng)新客戶欲查看監(jiān)控圖像時(shí),必須向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器將該客戶加入用戶使用紀(jì)錄表里;在客戶端離開多播組時(shí)也必須發(fā)出離開信息,服務(wù)器實(shí)時(shí)更改用戶使用紀(jì)錄表,以便能夠準(zhǔn)確地了解當(dāng)前客戶的情況,合理分配系統(tǒng)資源。為了減少客戶間的沖突,視頻服務(wù)程序?yàn)槊總€(gè)視頻通道分配一個(gè)組播地址,查看同一通道的客戶加入到同一組播組,如果切換到其它通道,則必須先離開當(dāng)前的多播組,然后加入新的多播組。
4、軟件實(shí)現(xiàn)
系統(tǒng)的網(wǎng)絡(luò)服務(wù)部分的程序框圖如圖4所示。其中,主線程始終在偵聽客戶端的請(qǐng)求,為每一個(gè)新的聯(lián)接請(qǐng)求創(chuàng)建一個(gè)接受線程。接受線程負(fù)責(zé)與其對(duì)應(yīng)的客戶端進(jìn)行數(shù)據(jù)通信。
與AD196通信的部分代碼如下:
1)切換攝像機(jī)圖像到當(dāng)前的視頻通道。發(fā)送切換視頻通道報(bào)文“*Ma”,“*”號(hào)代表所選定的視頻通道;發(fā)送切換攝像機(jī)報(bào)文“*#a”,“*”號(hào)代表選定的攝像機(jī)。
… …
// 發(fā)送切換Camera報(bào)文
// 1. select channel
DataSnd = strMonNum + "Ma";
m_SASComm.SetOutput(COleVariant(DataSnd)); //將Cstring型賦給COleVariant,
//以文本形式發(fā)送數(shù)據(jù)
// 2. select camera
DataSnd = strCamNum + "#a";
m_SASComm.SetOutput(COleVariant(DataSnd));
… ….
2)控制云臺(tái)運(yùn)動(dòng)。串口發(fā)送云臺(tái)運(yùn)動(dòng)報(bào)文,例如云臺(tái)向左轉(zhuǎn)報(bào)文“2La”。
// 控制云臺(tái)向左
void CAVDlg::OnPanleft()
{
// TODO: Add your control notification handler code here
m_BPanLeft.flag = 1; //向左轉(zhuǎn)的標(biāo)志
CString DataSnd;
if (m_SASComm.GetPortOpen())
{
DataSnd = "2La"; //以2級(jí)的速度向左轉(zhuǎn)
m_SASComm.SetOutput(COleVariant(DataSnd));
}
if (m_BPanLeft.flag = 0)
{
DataSnd = "0La"; //發(fā)送停止向左轉(zhuǎn)的命令
m_SASComm.SetOutput(COleVariant(DataSnd));
}
}
圖4 網(wǎng)絡(luò)服務(wù)程序框圖
5、結(jié)束語(yǔ)
本文所介紹的視頻服務(wù)器系統(tǒng)已成功用于某供電公司調(diào)度大樓的智能樓宇集成系統(tǒng)中,并取得了較好的效果。客戶瀏覽器顯示的圖像較流暢,局域網(wǎng)條件下圖像幀率可達(dá)到10-15幀/秒,而且可以同時(shí)滿足多個(gè)客戶的連接請(qǐng)求。本系統(tǒng)開發(fā)環(huán)境為Visual C++6.0,運(yùn)行的平臺(tái)為windows2000professial /天敏SDK2000圖像采集卡。由于本系統(tǒng)的靈活性高,系統(tǒng)的可擴(kuò)展性高,如可方便地增加圖像監(jiān)視報(bào)警等功能。
參考文獻(xiàn)
1、劉富強(qiáng)著. 數(shù)字視頻監(jiān)控系統(tǒng)的開發(fā)及應(yīng)用 機(jī)械工業(yè)出版社 2003.
2、《AXIS 視頻服務(wù)器管理手冊(cè)》,瑞典AXIS公司。
3、《臺(tái)灣一碩PIXORD系列視頻服務(wù)器手冊(cè)》,南京數(shù)怡通科技有限公司
4、張有為. 多組IP組播在視頻監(jiān)控系統(tǒng)中的應(yīng)用. 計(jì)算機(jī)應(yīng)用 2003.5
5、王選龍等. 智能建筑物信息管理系統(tǒng)中的系統(tǒng)集成軟件開發(fā) 工業(yè)控制計(jì)算機(jī) 2003.11
6、美]Beau Williamson 著 顧金星等譯. IP組播網(wǎng)絡(luò)設(shè)計(jì)開發(fā)(第一卷)[電子工業(yè)出版社
7、(美) Douglas E. Comer著 .用TCP/IP進(jìn)行網(wǎng)際互聯(lián) -電子工業(yè)出版社
8、王險(xiǎn)峰, 劉寶宏編著 .Windows環(huán)境下的多線程編程原理與應(yīng)用 清華大學(xué)出版社
標(biāo)簽:
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。