引言
目前,嵌入式視頻監控系統已成為國內外視頻監控系統應用的主流,但是在 IPv4平臺下存在地址不足、不能合理分配帶寬、安全性能及移動性能差等諸多問題,而新一代 IPv6協議不僅能很好的解決以上問題,而且還具有可以提高視頻傳輸速度和傳輸質量等多方而的優點。如何使嵌入式視頻監控系統與 IPv6技術相結合是當前監控系統研究的一個重要方向。
1 視頻監控系統總體設計
2 1系統結構
系統總體結構如圖 1所示。攝像頭和視頻服務器組合在一起稱為視頻服務端或網絡攝像機,每個視頻服務端分配一個獨立 IPv6后通過雙絞線接入網絡,客戶端通過 IP網絡直接訪問和控制視頻服務端。攝像頭和麥克風將采集的模擬音視頻信號送入內部嵌入式 Linux操作系統的視頻服務器,并通過雙絞線接入網絡。模擬信號被送入編碼器編碼成 MPEG-4的視頻流和 ADPCM的音頻流,從編碼器出來的音視頻流再被分為兩路,一路送入本地的視頻監視器,另一路通過網絡發送到客戶端。客戶端把服務器端傳來音視頻數據分為兩路,一路進行客戶端存儲,另一路啟動 irectShow流水線,將視頻信號和音頻信號分離,分別送入各自的解碼器(視頻信號采用 MPEG-4解碼器解碼)。最后,解碼后的音視頻信號被送入對應的設備進行實時預覽。

1.2系統設計思路
系統工作需要硬件和軟件協調土作共同實現。攝像頭采集視頻、麥克風采集音頻,由服務器端采集卡完成音視頻的采集和壓縮,通過調用驅動程序讀取采集和壓縮后的音視頻數據到緩存。緩存區中的音視頻數據發送傳輸都由服務器端軟件實現。
服務器端軟件讀出緩沖區的數據,啟動發送模塊,發送時采用 RTP協議打包,模塊讀取緩沖區中的視頻流是以一幀為最小單位,由于按一幀打包時數據長度比較大小適合在網絡中傳輸,所以需要在打包前將幀分割成幾段以適合網絡傳輸。按照 RTP協議打包好的數據,通過 UDP傳輸到客戶端,如果是單用戶采用單播,如果是多用戶則采用多播。
客戶端采用 B/S模式接收服務器發送的音視頻流,并解碼播放。 B/S模式下,播放視頻在 IE中實現,具體的實現需要 ActiveX控件支持,由控件嵌入到 WEB中實現,這樣客戶端只需要通過瀏覽器就可以觀看現場視頻。服務器采集音視頻流并壓縮,通過網絡發送到客戶端,客戶端解碼還原出清晰的圖像是視頻監控的基本功能。
2 視頻監控硬件原理及設計
本系統是在 GX-ARM9-S3C2410核心模塊上進行開發。該嵌入式監控視頻服務器的設計主要是指根據系統要求實現的功能,選定主控制芯片和專用音視頻壓縮芯片,并確定其外圍電路,實現聲音圖像采集、壓縮、輸出等功能。由于作者主要完成系統的軟件部分,這里只對硬件部分做簡要介紹。硬件模塊結構設計如圖 4.2所示:

2.1音視頻壓縮 /解壓縮模塊
該模塊的質量直接關系到系統的圖像和聲音以及傳輸質量,是系統硬件的重要部件之一。因此模塊選用了 VW2010,它是 VWEB公司開發的實時 MPEG4音視頻壓縮 /解壓縮芯片((Encoder/Decoder),該芯片內集成有 3個信號處理 /控制單元,包括一個視頻編碼 (壓縮)器、一個視頻解碼 (解壓)器和一個片內 CPU(內部擴展一個音頻編碼 DSP C Digital Signal Processors、一個音頻解碼 DSP、一個多路復合單元和一個多路解復合單元 ):具有可編程、高性能和低功耗等特點。
2.2音視頻采集、A/D模塊
該模塊將攝像頭采集到的模擬視頻信號發送到模塊中的視頻 A/D轉換芯片進行視頻數字化處理,同時將麥克風采集到的模擬音頻送入音頻 A/D轉換芯片進行音頻數字化處理。采用 Philips的 SAA7115H,它是 9bit視頻 A/D轉換器,支持 NTSC/PAL/SECAM制式,輸出數字的視頻信號符合 ITU601和 ITU-8656標準。系統的音頻模塊主要是以一塊音頻 A/D轉換芯片 PCM 1800以及與之配套的模擬音頻輸入輸出電路構成。 PCM 1800芯片最高采樣率可達到 96KHz,可以滿足絕大多數語音應用的要求。該芯片的數字音頻輸入輸出接口采用 I2S模式,直接和 VW210芯片連接。
2.3網絡傳輸模塊
模塊選用的網絡接口芯片是 Realte公司的 RTL8201BL。它是具有 lOM/100Mps自適應功能的以太網收發控制器,是目前應用最為廣泛的一種網絡接口芯片。系統將壓縮后的音視頻數據打包,通過網絡接口發送到網絡中,其電路圖如圖 3所示。

3 軟件總體結構與設計
系統軟件設計包括服務器端和客戶端軟件設計。服務器端軟件主要實現采集音視頻、壓縮編碼、打包發送到網絡。客戶端軟件主要實現接受服務器發送過來的音視頻壓縮包,然后對數據拼接解碼、播放,如圖 4所示。

3.1MPEG-4視頻流的 RTP組包處理
要通過 RTP傳輸 MPEG-4視頻流,需要對其進行打包 (Packetization)處理。加上時間、同步等信息。MPEG-4對每個 voP (voP是 VO在某一時刻的對象,即某一幀 vo)獨立進行編 / 解碼。因此以 VOP為單位進行打包,既提高了效率又充分利用了 MPEG-4的編碼特性。為了不造成 IP碎片,包長還須有一個限制,就是不能超過該網絡路徑的 MTU(Maxium Transit Unit)。考慮到傳輸的高效性和丟包的魯棒性,我們取包長為當前 VOP大小與路徑 MTU值的較小值,采用如下組包機制:
1 VOP能放入單個 RTP包,就把此 VOP單獨放入一個 RTP包中;
2 VOP分段,放入多個 RTP包,此時須把 VOP頭部信息復制到每個 RTP包,以去除包間的相關性,達到丟包的魯棒性 :為減小包數,降低開銷,一包中能放入多少宏塊就盡可能多地放入多少宏塊,但即使最后一個包中仍有剩余空間,也小能把另一 VOP中的宏塊放入此包中,算法流程如圖 5所示。

3.2服務器端視頻發送和客戶端視頻接收
在基于DirectShow的視頻發送端中,其過濾器圖分別由 Video Capture Filter,Video Codec和 RTP Video Renderer Filter按順序連接成一條“流水線”協同工作,他們分別完成源過濾器、轉換過濾器和呈現過濾器的工作。 Video Capture Filter負責視頻數據采集, Video Codec負責視頻數據的壓縮,最后由 RTP Video RendererFilter將壓縮的視頻數據封裝 RTP包發送到網絡上。過濾器之間的數據發送采用推模式。

視頻發送實現過程如下:
1)初始化 coM組件,初始化 DirectShow,包括建立 GraphManager接口、建立 GraphBuilder接口(它的 CLSID為 CLSID_ FilterGraph)、建立 BasicFilter接口,并將 VWSource Filter (VW210), Sputter Filter(音視頻分離過濾器)、Codec Fil-ter(TopStepdVideo)和 RTPVren}lter (RTP傳輸呈現過濾器)加到 GraphBuilder。
2)通過系統設各列舉接口找到系統中默認的視頻捕獲設備,并添加到 GraphBuilder中,查詢 GraphBuilder獲得媒體事件接口和媒體控制接口,連接各個過濾器,設置 RTP Vrenflter參數。
3)通過 GraphManager的控制接口,運行過濾器圖,捕獲并發送圖象。
4)等待運行結束消息,釋放各個接口,關閉 COM組件。視頻發送實現過程中圖像傳輸的實現最為關健,當視頻發送端響應網絡客戶端發出的視頻數據請求后,馬上啟動視頻數據發送線程,開始采集 MPEG視頻數據并源源不斷地寫入到發送緩沖區中。它的實現原理是:位于源過濾器 VWSource Filter(VW210卡)將從攝像頭獲取的模擬視頻圖像首先進行A/D轉換,然后將采集到的視頻數據交給下游的 MPEG Stream Spatter filter,由它對獲得的數據進行解析后轉交給其下游的變換過濾器 Video Coder filter進行 MPEG編碼,然后將編碼后的 MPEG視頻數據寫入發送緩沖區,這部分都由 VW210卡完成。如果選擇本地存盤則過濾器圖連接到此結束,將視頻數據直接寫入磁盤。視頻接收端程序流程如下圖 7所示:

4 結論
本文創新點:本視頻監控系統是基于 ARM嵌入式核心處理器的硬件平臺,其中嵌入式系統中移植 TCP/IPv6協議,在原有 MPEG4視頻編碼基礎上采用了新的運動估計優先估計矢量分布概率算法進行優化,同時對視頻傳輸算法也作了相應的改進。系統結合了流媒體技術,IPv6技術,嵌入式技術等優點,實驗證明該系統視頻監控方而取得了良好效果。
參考文獻:
[1]鄭瑞杰等.超寬帶家庭多媒體網關的設計與實現[J] .微計算機信息. 2007, 8-2,6-8.
[2]袁野.基于嵌入式技術的網絡視頻監控系統 [J].通訊世界,2002(4), 62-63
[3]謝希仁.計算機網絡 [M].北京,電子土業出版社,2003.
[4]周慧燦.數字視頻的網絡傳輸關鍵技術研究 .湖南大學碩士論文,2005 (4)
[5]鄒思軼.嵌入式 Linux設計應用.清華大學出版社,2002.