《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 基于嵌入式Linux視頻的網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)

基于嵌入式Linux視頻的網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)

2008-06-18
作者:漆世錢, 郭麥成

  摘 要: 介紹了一種采用Browser/Server結(jié)構(gòu),、在視頻服務(wù)器上內(nèi)置一個(gè)嵌入式Web服務(wù)器,、基于嵌入式Linux視頻的網(wǎng)絡(luò)監(jiān)控系統(tǒng)" title="網(wǎng)絡(luò)監(jiān)控系統(tǒng)">網(wǎng)絡(luò)監(jiān)控系統(tǒng)。重點(diǎn)闡述了其服務(wù)器端的設(shè)計(jì),。
  關(guān)鍵詞: 嵌入式Linux Web服務(wù)器 MPEG-4 網(wǎng)絡(luò)通信

?

  隨著計(jì)算機(jī)技術(shù)及網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,,公安、安防行業(yè)的發(fā)展趨勢(shì)必然是全面數(shù)字化,、網(wǎng)絡(luò)化,。傳統(tǒng)的模擬閉路電視監(jiān)控系統(tǒng)有很多局限性:傳輸距離有限、無(wú)法聯(lián)網(wǎng),,而且模擬視頻信號(hào)數(shù)據(jù)的存儲(chǔ)會(huì)耗費(fèi)大量的存儲(chǔ)介質(zhì)(如錄像帶),,查詢?nèi)∽C時(shí)十分煩瑣?;趥€(gè)人計(jì)算機(jī)的視頻監(jiān)控系統(tǒng)終端功能較強(qiáng),,但穩(wěn)定性不好,視頻前端 ( 如電壓耦合元件等視頻信號(hào)的采集,、壓縮,、通訊) 較為復(fù)雜,可靠性不高,?;谇度胧絃inux視頻的網(wǎng)絡(luò)監(jiān)控系統(tǒng)不需要用于處理模擬視頻信號(hào)的個(gè)人計(jì)算機(jī),而是把視頻服務(wù)器內(nèi)置一個(gè)嵌入式Web服務(wù)器,,采用嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)。由于把視頻壓縮和Web功能集中到一個(gè)體積很小的設(shè)備內(nèi),,可以直接連入局域網(wǎng),,即插即看,省掉復(fù)雜的電纜,,安裝方便(僅需設(shè)置一個(gè)IP地址),,用戶也無(wú)需安裝任何硬件設(shè)備,僅用瀏覽器即可觀看,。
  基于嵌入式Linux的視頻網(wǎng)絡(luò)監(jiān)控系統(tǒng)將嵌入式Linux系統(tǒng)連接上Web,,即視頻服務(wù)器內(nèi)置一個(gè)嵌入式Web服務(wù)器, 攝像機(jī)傳送來(lái)的視頻信號(hào)數(shù)字化后由高效壓縮芯片壓縮, 通過(guò)內(nèi)部總線傳送到內(nèi)置的Web 服務(wù)器上。
1 系統(tǒng)總體框架
  嵌入式Linux視頻網(wǎng)絡(luò)監(jiān)控系統(tǒng)是電工電子裝置,、計(jì)算機(jī)軟硬件以及網(wǎng)絡(luò),、通信等多方面的有機(jī)組合體,它以智能化、網(wǎng)絡(luò)化,、交互性為特征,,結(jié)構(gòu)比較復(fù)雜。如果利用OSI七層模型的內(nèi)容和形式,,把相應(yīng)的數(shù)據(jù)采集控制模塊" title="控制模塊">控制模塊硬件和應(yīng)用軟件以及應(yīng)用環(huán)境等有機(jī)組合,,可以形成一個(gè)統(tǒng)一的系統(tǒng)總體框架,其系統(tǒng)總體框架示意圖如圖1所示,。


  攝像機(jī)傳送來(lái)的視頻信號(hào)數(shù)字化后,,經(jīng)過(guò)壓縮,通過(guò)RS-232/RS485將數(shù)據(jù)送到內(nèi)置的Web服務(wù)器,,嵌入式Linux系統(tǒng)的10/100M以太網(wǎng)口實(shí)現(xiàn)接入Internet網(wǎng)絡(luò),,將現(xiàn)場(chǎng)信號(hào)送到客戶端" title="客戶端">客戶端。整個(gè)系統(tǒng)的核心是嵌入式Linux系統(tǒng),。監(jiān)控系統(tǒng)啟動(dòng)后,,嵌入式Linux系統(tǒng)啟動(dòng)Web Server服務(wù)程序,接收授權(quán)客戶端瀏覽器的請(qǐng)求,,Web Server將根據(jù)通信協(xié)議完成相應(yīng)的監(jiān)測(cè),。
2 系統(tǒng)實(shí)現(xiàn)
2.1 硬件平臺(tái)設(shè)計(jì)
  本系統(tǒng)以公開(kāi)的嵌入式Linux源代碼為基礎(chǔ),根據(jù)設(shè)計(jì)的嵌入式目標(biāo)板編寫相應(yīng)的Bootloader程序,,然后裁剪出合適的內(nèi)核和文件系統(tǒng),。目標(biāo)平臺(tái)CPU采用Motorola公司生產(chǎn)的ColdFire嵌入式處理器MFC5272。 MFC5272采用ColdFire V2可變長(zhǎng)RISC處理器核心和DigitalDNA技術(shù),,在66MHz時(shí)鐘下能夠達(dá)到63Dhrystone2.1MIPS的優(yōu)良處理能力,。內(nèi)部SIM(System Integrated Module)單元集成了豐富的通用模塊,只需很少的外圍芯片就可以實(shí)現(xiàn)兩個(gè)RS-232串行口和一個(gè)USB Slave接口,。MFC5272還內(nèi)嵌一個(gè)FEC(快速以太網(wǎng)控制器),,片外擴(kuò)展一片LXT971,方便地實(shí)現(xiàn)了一個(gè)100/10 Base T的以太網(wǎng)接口,。能夠與常用的外圍設(shè)備(如SDRAM,、ISDN收發(fā)器)實(shí)現(xiàn)無(wú)縫連接,從而簡(jiǎn)化了外圍電路的設(shè)計(jì),,降低了產(chǎn)品成本,、體積和功耗。
2.2 軟件設(shè)計(jì)與實(shí)現(xiàn)
  視頻監(jiān)控系統(tǒng)軟件結(jié)構(gòu)采用的是瀏覽器/服務(wù)器(B/S)網(wǎng)絡(luò)模型,,即由客戶端通過(guò)Web向服務(wù)器提出請(qǐng)求,,服務(wù)器對(duì)請(qǐng)求做出確認(rèn)響應(yīng)并執(zhí)行相應(yīng)的任務(wù)(如向客戶端發(fā)送組播地址、圖像格式,、壓縮格式等),,建立連接后就可以在客戶端監(jiān)控被控點(diǎn),,從而實(shí)現(xiàn)遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控。服務(wù)器(Web Server)端即現(xiàn)場(chǎng)監(jiān)控點(diǎn)的軟件結(jié)構(gòu)包括采集模塊,、壓縮編碼模塊,、網(wǎng)絡(luò)通信模塊、控制模塊等,,如圖2所示,。


2.2.1 視頻采集模塊設(shè)計(jì)
  由于攝像機(jī)得到的是模擬的視頻信號(hào),不能直接為計(jì)算機(jī)使用,,因此要使視頻在網(wǎng)上傳輸,,必須首先對(duì)其數(shù)字化。本系統(tǒng)選用的視頻采集卡為Conexant公司的Bt848卡,,該卡不需要任何本地緩存來(lái)存儲(chǔ)視頻像素?cái)?shù)據(jù),,還能夠充分利用基于PCI總線系統(tǒng)的高帶寬和固有的多媒體功能,并且能夠與其他多媒體設(shè)備實(shí)現(xiàn)互操作,。在整個(gè)系統(tǒng)中由于視頻采集的速度通常高于應(yīng)用軟件取得數(shù)據(jù)并進(jìn)行處理的速度,,因此為了保證視頻數(shù)據(jù)的連續(xù)性,采用了三緩存結(jié)構(gòu),,緩存A是Bt848視頻采集的目標(biāo)地址,,在RISC指令的直接控制下,采集的數(shù)據(jù)都先存放在這個(gè)緩存中,;B和C組成乒乓式結(jié)構(gòu)循環(huán)往復(fù)使用,,當(dāng)某一幀數(shù)據(jù)采集完畢后,產(chǎn)生中斷,,在中斷服務(wù)程序中將緩存A的數(shù)據(jù)復(fù)制到緩存B(或C)中,,然后采集下一幀,當(dāng)下一幀數(shù)據(jù)采集完后,,再將緩存A中的數(shù)據(jù)復(fù)制到緩存C(或B)中,,當(dāng)應(yīng)用程序需要數(shù)據(jù)時(shí)就從緩存B或C中讀取最新的一幀圖像。緩存B和C交替使用,,能夠保證應(yīng)用程序從緩存讀數(shù)據(jù)的操作和驅(qū)動(dòng)程序向緩存寫數(shù)據(jù)的操作不會(huì)發(fā)生沖突,,避免了數(shù)據(jù)的損壞和遲延。
2.2.2 視頻壓縮編碼的設(shè)計(jì)
  本設(shè)計(jì)選用了基于對(duì)象的MPEG-4視頻編碼技術(shù),,首先對(duì)輸入的任意形狀的VOP序列,用基于塊的混合編碼技術(shù)編碼,。處理順序是先幀內(nèi)VOP,,后幀間VOP和雙向預(yù)測(cè)VOP。在對(duì)VOP的形狀信息編碼之后,,取得任意形狀VOP的采樣,,每個(gè)VOP用宏塊" title="宏塊">宏塊柵格劃分成不相交的宏塊,,每個(gè)宏塊含有四個(gè)8×8的像素塊,以進(jìn)行運(yùn)動(dòng)估計(jì)和補(bǔ)償及紋理編碼,。已編碼的VOP幀保存在VOP幀存儲(chǔ)器中,。運(yùn)動(dòng)向量在當(dāng)前VOP幀和已編碼VOP幀之間計(jì)算。對(duì)將被編碼的塊或宏塊,,計(jì)算其運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)誤差,。運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)后的I-VOP及誤差用8×8塊DCT編碼,并進(jìn)行DCT系數(shù)的量化,,然后是行程編碼和熵編碼,。最后,形狀,、運(yùn)動(dòng)和紋理信息復(fù)合成VOL位流輸出,。這種編碼方法可以允許用戶修改、增加或重定位一個(gè)視頻場(chǎng)景中的對(duì)象,,甚至可以轉(zhuǎn)換場(chǎng)景中對(duì)象的行為,。對(duì)于不同的帶寬和計(jì)算復(fù)雜性需求,不必針對(duì)每種情況分別編碼,,可以使用同一個(gè)視頻位流,,而采用不同的參數(shù)以選擇不同的層以獲得靈活性。在出現(xiàn)網(wǎng)絡(luò)擁塞,、丟包等現(xiàn)象時(shí)仍能提供連貫性較好的視頻圖像,。視頻壓縮編碼進(jìn)程將編碼后的的視頻存放到已編碼視頻緩沖隊(duì)列中,同時(shí)激活或等待直播進(jìn)程和存儲(chǔ)管理進(jìn)程的相應(yīng)處理,。
2.2.3 網(wǎng)絡(luò)通信模塊設(shè)計(jì)
  網(wǎng)絡(luò)通信模塊是系統(tǒng)的主體部分,,它包含三個(gè)數(shù)據(jù)通道:監(jiān)聽(tīng)通道、控制通道和視頻數(shù)據(jù)通道,。監(jiān)聽(tīng)通道用來(lái)傳輸控制前端設(shè)備的命令數(shù)據(jù),;視頻數(shù)據(jù)通道用來(lái)傳輸各個(gè)組的視頻數(shù)據(jù)。三個(gè)通道采用不同的通信端口,,所以各個(gè)通道傳輸數(shù)據(jù)彼此獨(dú)立,。網(wǎng)絡(luò)通信模塊設(shè)計(jì)開(kāi)發(fā)是通過(guò)網(wǎng)絡(luò)編程接口(Windows Socket,簡(jiǎn)稱Winsock)來(lái)實(shí)現(xiàn)的,。按照系統(tǒng)瀏覽器/服務(wù)器的網(wǎng)絡(luò)傳輸模型,,在服務(wù)器端建立了以SOCKET為類型的監(jiān)聽(tīng)套接字" title="套接字">套接字、控制套接字,;在客戶端建立了SOCKET類型的請(qǐng)求套接字,、控制套接字,這些都是采用TCP協(xié)議封裝傳輸數(shù)據(jù)的,。
  另外,,在服務(wù)器和客戶機(jī)兩端都用到了一個(gè)組播類(CMulticast),,它是專門為視頻傳輸而封裝的類,由CObject派生而來(lái),,其中定義了以SOCKET類型的收發(fā)視頻數(shù)據(jù)的套接字和組套接字,,從而實(shí)現(xiàn)了用組播通信方式來(lái)傳輸U(kuò)DP協(xié)議封裝的視頻數(shù)據(jù)包。系統(tǒng)中IP網(wǎng)絡(luò)數(shù)據(jù)通信流程如圖3所示,。


  下面給出在服務(wù)器端建立監(jiān)聽(tīng)套接字和控制套接字的程序,。
  ……
  int ret=0;
  BOOL bFlag=TRUE:   //設(shè)置套接字為可重用端口地址
  ret=setsockopt(lInfo.listenSocket,SOL_SOCKET,SO_REUSE ADDR,(char)*&bFlag,sizeof(bFlag));
  SOCKADDR_IN sockAddr;
  char* addr =severaddr.GetBuffer(0);  //定義監(jiān)聽(tīng)套接字的地址
  sockAddr.sin_family = AF_INET;
  sockAddr.sin_addr.S_un.S_addr =inet_addr(addr);
  sockAddr.sin_port = htons(PORT);
  if(bind(lInfo.listenSocket,(LPSOCKADDR)&sockAddr, sizeof(sockAddr))==SOCKET_ERROR)  //監(jiān)聽(tīng)套接字綁定到指定的地址和端口上
  {……//出錯(cuò)處理}
  if(listen(lInfo.listenSocket,5)= = SOCKET_ERROR   //監(jiān)聽(tīng)套接字開(kāi)始監(jiān)聽(tīng)
  {……//出錯(cuò)處理}
  ret=WSAAsyncSelect(lInfo.listenSocket,Af
  xGetMainWnd()->m-hWnd,
  WM_LISTENSOCKETEVENT,FD_READ—FD_WRITE—FD_CLOSE);    //為監(jiān)聽(tīng)套接字設(shè)置消息回調(diào)機(jī)制
  ……          //建立控制套接字原理同監(jiān)聽(tīng)套接字一樣
2.2.4 控制模塊設(shè)計(jì)開(kāi)發(fā)
  控制模塊實(shí)現(xiàn)了用戶對(duì)前端設(shè)備如鏡頭、云臺(tái)和畫(huà)面切換的控制,。服務(wù)器在接收到由客戶中心監(jiān)控終端發(fā)送過(guò)來(lái)的控制信息幀后,,對(duì)其進(jìn)行判斷解析,并送入各個(gè)相應(yīng)的控制部件接口,,以實(shí)現(xiàn)相應(yīng)的控制,。
3 實(shí)驗(yàn)結(jié)果
  將視頻監(jiān)控系統(tǒng)的Web服務(wù)器連接到局域網(wǎng),然后接入Internet,給web服務(wù)器分配一個(gè)IP地址,。在用戶終端 ,由于使用普通的瀏覽器只能顯示單畫(huà)面, 很不方便,使用微軟公司的VC6.0 配合微軟的瀏覽器控件, 只需幾分鐘就可完成一個(gè)多畫(huà)面的瀏覽器軟件,。在瀏覽器的地址欄中直接輸入視頻服務(wù)器的地址 ,即可在瀏覽器頁(yè)面中播放遠(yuǎn)程實(shí)時(shí)穩(wěn)定、流暢的圖像,,取得了良好的監(jiān)控效果,。
  基于嵌入式Linux視頻的網(wǎng)絡(luò)監(jiān)控系統(tǒng)的Web服務(wù)器直接連入網(wǎng)絡(luò),沒(méi)有線纜長(zhǎng)度和信號(hào)衰減的限制,,同時(shí)網(wǎng)絡(luò)是沒(méi)有距離概念的,,徹底拋棄了地域的概念,擴(kuò)展了布控區(qū)域,。又由于視頻壓縮和Web功能集中到一個(gè)體積很小的設(shè)備內(nèi),,直接連入局域網(wǎng)或廣域網(wǎng),即插即看,,系統(tǒng)的實(shí)時(shí)性,、穩(wěn)定性、可靠性大大提高,,無(wú)需專人管理,,非常適合于無(wú)人值守的環(huán)境。隨著計(jì)算機(jī)技術(shù),、網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,,人們對(duì)視頻監(jiān)控系統(tǒng)的要求會(huì)越來(lái)越高。相信該系統(tǒng)在電子商務(wù),、視頻會(huì)議,、遠(yuǎn)程監(jiān)控、遠(yuǎn)程教學(xué)、遠(yuǎn)程醫(yī)療,、水利和電力監(jiān)控等方面有廣闊的應(yīng)用前景。
參考文獻(xiàn)
1 孟萬(wàn)化,傅蓉心. 基于Web視頻監(jiān)控系統(tǒng)的研究與應(yīng)用[J]. 微計(jì)算機(jī)信息,2005;10(1):111~114
2 萬(wàn)加富,,張文斐,,張占松. 網(wǎng)絡(luò)監(jiān)控系統(tǒng)原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2003
3 徐立中,,馬小平. 多媒體監(jiān)視監(jiān)控技術(shù)與系統(tǒng)[M].北京:國(guó)防工業(yè)出版社,,2003
4 芮 雨,溫燕紅,,余松煜. 基于VxWorks的視頻采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程,2000;26(5):56~57
5 李晶皎,,王愛(ài)俠,張廣淵. ColdFire系列32位微處理器與嵌入式Linux應(yīng)用[M].北京:北京航空航天大學(xué)出版社,,2005

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]