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