引言 目前,嵌入式視頻監(jiān)控系統(tǒng)已成為國內(nèi)外視頻監(jiān)控系統(tǒng)應(yīng)用的主流,但是在 IPv4平臺下存在地址不足、不能合理分配帶寬、安全性能及移動性能差等諸多問題,而新一代IPv6協(xié)議不僅能很好的解決以上問題,而且還具有可以提高視頻傳輸速度和傳輸質(zhì)量等多方而的優(yōu)點(diǎn)。如何使嵌入式視頻監(jiān)控系統(tǒng)與IPv6技術(shù)相結(jié)合是當(dāng)前監(jiān)控系統(tǒng)研究的一個重要方向。 1 視頻監(jiān)控系統(tǒng)總體設(shè)計 1.1系統(tǒng)結(jié)構(gòu) 系統(tǒng)總體結(jié)構(gòu)如圖1所示。攝像頭和視頻服務(wù)器組合在一起稱為視頻服務(wù)端或網(wǎng)絡(luò)攝像機(jī),每個視頻服務(wù)端分配一個獨(dú)立IPv6后通過雙絞線接入網(wǎng)絡(luò),客戶端通過IP網(wǎng)絡(luò)直接訪問和控制視頻服務(wù)端。攝像頭和麥克風(fēng)將采集的模擬音視頻信號送入內(nèi)部嵌入式Linux操作系統(tǒng)的視頻服務(wù)器,并通過雙絞線接入網(wǎng)絡(luò)。模擬信號被送入編碼器編碼成MPEG-4的視頻流和ADPCM的音頻流,從編碼器出來的音視頻流再被分為兩路,一路送入本地的視頻監(jiān)視器,另一路通過網(wǎng)絡(luò)發(fā)送到客戶端。客戶端把服務(wù)器端傳來音視頻數(shù)據(jù)分為兩路,一路進(jìn)行客戶端存儲,另一路啟動irectShow流水線,將視頻信號和音頻信號分離,分別送入各自的解碼器(視頻信號采用 MPEG-4解碼器解碼)。最后,解碼后的音視頻信號被送入對應(yīng)的設(shè)備進(jìn)行實(shí)時預(yù)覽。 圖1 系統(tǒng)總體結(jié)構(gòu)圖 1.2系統(tǒng)設(shè)計思路 系統(tǒng)工作需要硬件和軟件協(xié)調(diào)土作共同實(shí)現(xiàn)。攝像頭采集視頻、麥克風(fēng)采集音頻,由服務(wù)器端采集卡完成音視頻的采集和壓縮,通過調(diào)用驅(qū)動程序讀取采集和壓縮后的音視頻數(shù)據(jù)到緩存。緩存區(qū)中的音視頻數(shù)據(jù)發(fā)送傳輸都由服務(wù)器端軟件實(shí)現(xiàn)。 服務(wù)器端軟件讀出緩沖區(qū)的數(shù)據(jù),啟動發(fā)送模塊,發(fā)送時采用RTP協(xié)議打包,模塊讀取緩沖區(qū)中的視頻流是以一幀為最小單位,由于按一幀打包時數(shù)據(jù)長度比較大小適合在網(wǎng)絡(luò)中傳輸,所以需要在打包前將幀分割成幾段以適合網(wǎng)絡(luò)傳輸。按照RTP協(xié)議打包好的數(shù)據(jù),通過UDP傳輸?shù)娇蛻舳耍绻菃斡脩舨捎脝尾ィ绻嵌嘤脩魟t采用多播。 客戶端采用B/S模式接收服務(wù)器發(fā)送的音視頻流,并解碼播放。B/S模式下,播放視頻在IE中實(shí)現(xiàn),具體的實(shí)現(xiàn)需要ActiveX控件支持,由控件嵌入到WEB中實(shí)現(xiàn),這樣客戶端只需要通過瀏覽器就可以觀看現(xiàn)場視頻。服務(wù)器采集音視頻流并壓縮,通過網(wǎng)絡(luò)發(fā)送到客戶端,客戶端解碼還原出清晰的圖像是視頻監(jiān)控的基本功能。 2 視頻監(jiān)控硬件原理及設(shè)計 本系統(tǒng)是在 GX-ARM9-S3C2410核心模塊上進(jìn)行開發(fā)。該嵌入式監(jiān)控視頻服務(wù)器的設(shè)計主要是指根據(jù)系統(tǒng)要求實(shí)現(xiàn)的功能,選定主控制芯片和專用音視頻壓縮芯片,并確定其外圍電路,實(shí)現(xiàn)聲音圖像采集、壓縮、輸出等功能。由于作者主要完成系統(tǒng)的軟件部分,這里只對硬件部分做簡要介紹。硬件模塊結(jié)構(gòu)設(shè)計如圖2所示: 圖2 視服器硬件框圖 2.1音視頻壓縮/解壓縮模塊 該模塊的質(zhì)量直接關(guān)系到系統(tǒng)的圖像和聲音以及傳輸質(zhì)量,是系統(tǒng)硬件的重要部件之一。因此模塊選用了VW2010,它是VWEB公司開發(fā)的實(shí)時MPEG4音視頻壓縮 /解壓縮芯片((Encoder/Decoder),該芯片內(nèi)集成有3個信號處理/控制單元,包括一個視頻編碼(壓縮)器、一個視頻解碼(解壓)器和一個片內(nèi)CPU(內(nèi)部擴(kuò)展一個音頻編碼 DSP C Digital Signal Processors、一個音頻解碼DSP、一個多路復(fù)合單元和一個多路解復(fù)合單元 ):具有可編程、高性能和低功耗等特點(diǎn)。 2.2音視頻采集、A/D模塊 該模塊將攝像頭采集到的模擬視頻信號發(fā)送到模塊中的視頻A/D轉(zhuǎn)換芯片進(jìn)行視頻數(shù)字化處理,同時將麥克風(fēng)采集到的模擬音頻送入音頻A/D轉(zhuǎn)換芯片進(jìn)行音頻數(shù)字化處理。采用Philips的SAA7115H,它是9bit視頻A/D轉(zhuǎn)換器,支持 NTSC/PAL/SECAM制式,輸出數(shù)字的視頻信號符合ITU601和ITU-8656標(biāo)準(zhǔn)。系統(tǒng)的音頻模塊主要是以一塊音頻A/D轉(zhuǎn)換芯片PCM 1800以及與之配套的模擬音頻輸入輸出電路構(gòu)成。PCM 1800芯片最高采樣率可達(dá)到96KHz,可以滿足絕大多數(shù)語音應(yīng)用的要求。該芯片的數(shù)字音頻輸入輸出接口采用I2S模式,直接和VW210芯片連接。 2.3網(wǎng)絡(luò)傳輸模塊 模塊選用的網(wǎng)絡(luò)接口芯片是Realte公司的RTL8201BL。它是具有l(wèi)OM/100Mps自適應(yīng)功能的以太網(wǎng)收發(fā)控制器,是目前應(yīng)用最為廣泛的一種網(wǎng)絡(luò)接口芯片。系統(tǒng)將壓縮后的音視頻數(shù)據(jù)打包,通過網(wǎng)絡(luò)接口發(fā)送到網(wǎng)絡(luò)中,其電路圖如圖3所示。 圖3 以太網(wǎng)接口連接 3 軟件總體結(jié)構(gòu)與設(shè)計 系統(tǒng)軟件設(shè)計包括服務(wù)器端和客戶端軟件設(shè)計。服務(wù)器端軟件主要實(shí)現(xiàn)采集音視頻、壓縮編碼、打包發(fā)送到網(wǎng)絡(luò)。客戶端軟件主要實(shí)現(xiàn)接受服務(wù)器發(fā)送過來的音視頻壓縮包,然后對數(shù)據(jù)拼接解碼、播放,如圖4所示。 圖4 服務(wù)器端軟件構(gòu)架圖 3.1 MPEG-4視頻流的RTP組包處理 要通過RTP傳輸MPEG-4視頻流,需要對其進(jìn)行打包(Packetization)處理。加上時間、同步等信息。MPEG-4對每個voP (voP是 VO在某一時刻的對象,即某一幀 vo)獨(dú)立進(jìn)行編/解碼。因此以VOP為單位進(jìn)行打包,既提高了效率又充分利用了 MPEG-4的編碼特性。為了不造成IP碎片,包長還須有一個限制,就是不能超過該網(wǎng)絡(luò)路徑的MTU(Maxium Transit Unit)。考慮到傳輸?shù)母咝院蛠G包的魯棒性,我們?nèi)“L為當(dāng)前VOP大小與路徑MTU值的較小值,采用如下組包機(jī)制: 1) VOP能放入單個RTP包,就把此VOP單獨(dú)放入一個RTP包中; 2) VOP分段,放入多個RTP包,此時須把VOP頭部信息復(fù)制到每個RTP包,以去除包間的相關(guān)性,達(dá)到丟包的魯棒性 :為減小包數(shù),降低開銷,一包中能放入多少宏塊就盡可能多地放入多少宏塊,但即使最后一個包中仍有剩余空間,也小能把另一VOP中的宏塊放入此包中,算法流程如圖5所示。 圖5 組包算法流程 3.2 服務(wù)器端視頻發(fā)送和客戶端視頻接收 在基于DirectShow的視頻發(fā)送端中,其過濾器圖分別由Video Capture Filter,Video Codec和 RTP Video Renderer Filter按順序連接成一條“流水線”協(xié)同工作,他們分別完成源過濾器、轉(zhuǎn)換過濾器和呈現(xiàn)過濾器的工作。 Video Capture Filter負(fù)責(zé)視頻數(shù)據(jù)采集,Video Codec負(fù)責(zé)視頻數(shù)據(jù)的壓縮,最后由 RTP Video RendererFilter將壓縮的視頻數(shù)據(jù)封裝 RTP包發(fā)送到網(wǎng)絡(luò)上。過濾器之間的數(shù)據(jù)發(fā)送采用推模式。 圖6 發(fā)送端軟件流程圖 視頻發(fā)送實(shí)現(xiàn)過程如下: 1) 初始化COM組件,初始化DirectShow,包括建立GraphManager接口、建立 GraphBuilder接口(它的CLSID為CLSID_ FilterGraph)、建立BasicFilter接口,并將VWSource Filter (VW210), Sputter Filter(音視頻分離過濾器)、Codec Filter(TopStepdVideo)和RTPVren}lter(RTP傳輸呈現(xiàn)過濾器)加到 GraphBuilder。 2) 通過系統(tǒng)設(shè)各列舉接口找到系統(tǒng)中默認(rèn)的視頻捕獲設(shè)備,并添加到GraphBuilder中,查詢GraphBuilder獲得媒體事件接口和媒體控制接口,連接各個過濾器,設(shè)置RTP Vrenflter參數(shù)。 3) 通過GraphManager的控制接口,運(yùn)行過濾器圖,捕獲并發(fā)送圖象。 4) 等待運(yùn)行結(jié)束消息,釋放各個接口,關(guān)閉COM組件。 視頻發(fā)送實(shí)現(xiàn)過程中圖像傳輸?shù)膶?shí)現(xiàn)最為關(guān)健,當(dāng)視頻發(fā)送端響應(yīng)網(wǎng)絡(luò)客戶端發(fā)出的視頻數(shù)據(jù)請求后,馬上啟動視頻數(shù)據(jù)發(fā)送線程,開始采集MPEG視頻數(shù)據(jù)并源源不斷地寫入到發(fā)送緩沖區(qū)中。它的實(shí)現(xiàn)原理是:位于源過濾器VWSource Filter(VW210卡)將從攝像頭獲取的模擬視頻圖像首先進(jìn)行A/D轉(zhuǎn)換,然后將采集到的視頻數(shù)據(jù)交給下游的MPEG Stream Spatter filter,由它對獲得的數(shù)據(jù)進(jìn)行解析后轉(zhuǎn)交給其下游的變換過濾器Video Coder filter進(jìn)行 MPEG編碼,然后將編碼后的MPEG視頻數(shù)據(jù)寫入發(fā)送緩沖區(qū),這部分都由VW210卡完成。如果選擇本地存盤則過濾器圖連接到此結(jié)束,將視頻數(shù)據(jù)直接寫入磁盤。視頻接收端程序流程如下圖7所示: 圖7 接收端軟件流程圖 4 結(jié)論 本文創(chuàng)新點(diǎn):本視頻監(jiān)控系統(tǒng)是基于ARM嵌入式核心處理器的硬件平臺,其中嵌入式系統(tǒng)中移植TCP/IPv6協(xié)議,在原有MPEG4視頻編碼基礎(chǔ)上采用了新的運(yùn)動估計優(yōu)先估計矢量分布概率算法進(jìn)行優(yōu)化,同時對視頻傳輸算法也作了相應(yīng)的改進(jìn)。系統(tǒng)結(jié)合了流媒體技術(shù),IPv6技術(shù),嵌入式技術(shù)等優(yōu)點(diǎn),實(shí)驗證明該系統(tǒng)視頻監(jiān)控方而取得了良好效果。 作者:侯國平 來源:《微計算機(jī)信息》(嵌入式與SOC)2009年第8-2期 |