基于WLAN的移動視頻監(jiān)控系統(tǒng)
基于WLAN的移動視頻監(jiān)控系統(tǒng)
介紹基于WLAN的移動視頻監(jiān)控系統(tǒng),描述了視頻捕獲、視頻再現(xiàn)、無線視頻傳輸?shù)冉M成模塊的原理和工作過程。附錄中討論了解決無線視頻傳輸QoS的帶寬自適應流量控制、環(huán)形緩沖區(qū)處理、守護線程等三種方法。
關鍵詞:移動視頻監(jiān)控系統(tǒng);視頻通信;QoS?
Keywords: mobile video survcilance system; video communication; QoS 手持移動終端通過無線網(wǎng)絡調(diào)看遠程數(shù)字視頻圖像可廣泛用于工業(yè)控制、小區(qū)安全防范,以及新聞媒體服務等場合。文中給出符合IEEE802.11b的基于無線局域網(wǎng)WLAN并以Intel XScale架構的移動終端為表現(xiàn)形式的移動視頻監(jiān)控系統(tǒng)技術方案。?1.1系統(tǒng)架構
移動視頻監(jiān)控系統(tǒng)框架如圖1所示,位于多處的網(wǎng)絡攝像機通過LAN或VPN提供IP視頻源,移動視頻終端通過WLAN,經(jīng)視頻發(fā)布服務器的認證后,控制攝像機并調(diào)看實時圖像。
系統(tǒng)支持基于一點到多點IP組播協(xié)議(Multicast)。網(wǎng)絡中,可定義224.0.0.0到239.255.255.255范圍的多點IP組播地址。多點組播的優(yōu)點在于滿足網(wǎng)絡規(guī)模較大時,可同時向眾多終端用戶同時提供多路圖像。但須注意視頻源負擔的降低是以增加路由器負擔為代價的,這可由視頻發(fā)布服務器加以限定。? 視頻監(jiān)控系統(tǒng)采用主從(Client/Server)模式。主機端為視頻流發(fā)布源,基于Windows操作系統(tǒng),完成原始視頻圖像的采集、壓縮編碼和網(wǎng)絡數(shù)據(jù)發(fā)送;從機端為播放移動終端,基于嵌入式Linux操作系統(tǒng),完成網(wǎng)絡數(shù)據(jù)接收、反向流量控制、云臺遠程控制、上層用戶界面、視頻解碼與再現(xiàn)等功能。主要技術有:
(1)選用Osprey-100圖像采集卡,實現(xiàn)多路視頻捕獲。在編碼器性能允許條件下,可實現(xiàn)多路視頻傳輸。(2)視頻編解碼采用MPEG4編碼標準,并協(xié)同網(wǎng)絡對QoS進行處理。(3)視頻流經(jīng)基于IEEE802.11b的WLAN,通過UDP通道傳輸;由于WLAN無線信道特性,須加以必要的流量控制和QoS處理。(4)TCP反饋控制及其他數(shù)據(jù)交互通過TCP通道交互。
圖2系統(tǒng)由視頻源端、WLAN、嵌入式移動終端組成。其中視頻源端可分為:視頻捕獲、MPEG4編碼、無線網(wǎng)絡傳輸三模塊;嵌入式移動終端可分為:嵌入式移動終端、MPEG4解碼、視頻再現(xiàn)三模塊;WLAN與雙方無線網(wǎng)絡傳輸模塊實現(xiàn)信息的交互。? 2.1視頻捕獲模塊概述
該模塊完成從模擬視頻采集到捕獲YUV數(shù)字視頻流的功能。圖像采集卡用YUV12格式將多路監(jiān)控攝像機的模擬視頻轉(zhuǎn)換為多種格式的數(shù)字視頻信號。?2.2IPP優(yōu)化視頻編解碼
IPP(Integrated Performance Primitive)是Intel個人互聯(lián)網(wǎng)用戶架構中的重要組成部分,它在操作系統(tǒng)之上向應用程序提供功能調(diào)用,同時又直接立足于硬件,穿越了操作系統(tǒng)。IPP的最大優(yōu)勢在于對各個函數(shù)進行了匯編級上的優(yōu)化;根據(jù)CPU的流水線和總線特性采取措施,可提高訪問速度和處理速度。
IPP庫函數(shù)具有多層處理功能。對功能較弱的,可選擇IPP庫的底層函數(shù);對于較強功能,可選用一個合適的高層IPP函數(shù);用底層“原子”函數(shù)的組合也可替代高層函數(shù),應算法要求還能作出改動,這使得對編解碼算法優(yōu)化有著很大的靈活性。
該系統(tǒng)對編解碼的具體優(yōu)化過程見圖3,按照MPEG4編碼規(guī)范,在Micro Block層和Block層,用IPP作出算法優(yōu)化,達到了大幅度提高編解碼效率和提升系統(tǒng)實時性的目的。? 視頻再現(xiàn)指移動終端LCD顯示屏對解壓視頻信號的實時播放。要求播放器盡可能快的與顯示緩存交互。幀緩沖是Linux嵌入式系統(tǒng)中顯存,它是一個提供顯示內(nèi)存和顯示芯片寄存器從物理內(nèi)存映射到進程地址空間中的部件。宜采用DMA通道不斷地刷新LCD緩沖區(qū)數(shù)據(jù)。其實現(xiàn)流程如圖4所示:將幀緩沖映射到進程地址空間之后,就可以直接進行讀寫操作,而寫操作可立即反應在LCD屏幕上。具體實現(xiàn)是,打開/dev/fb0設備,并通過mmap系統(tǒng)調(diào)用進行地址映射,即可通過改寫緩沖達到視頻的實時播放。采用幀緩沖技術的優(yōu)點在于高度的移植性、較低的系統(tǒng)資源占用率,以及穩(wěn)定性,以滿足實時播放視頻的需要。
4.1無線網(wǎng)絡搭建
該模塊借助CF無線網(wǎng)卡,通過基于IEEE802.11b標準的無線局域網(wǎng)(WLAN),與固定的無線AP(Access Point接入點),架構多點到多點的模式,完成實時視頻的數(shù)據(jù)傳輸。該標準采用ISM(Industrial Scientific Medical)無線廣播2.45GHz頻段,最大速率為11Mbps,采用直接序列擴頻(DSSS)傳輸技術,AP的覆蓋半徑為100~500m的微蜂窩區(qū)域。
4.2CF無線網(wǎng)卡驅(qū)動
該工作重點在無線網(wǎng)卡驅(qū)動的改寫與移植上,可選用基于Intersil Prism芯片組(Version3.0)的ET?CWB1000無線CF網(wǎng)卡,采用Linux Spectum24 PCMCIA驅(qū)動。如圖5,Linux網(wǎng)絡驅(qū)動程序結(jié)構可劃分為四層:設備驅(qū)動/網(wǎng)絡設備層、網(wǎng)絡協(xié)議層、用戶應用層。CF卡與PCMCIA兼容,PCMCIA控制器將卡連接到系統(tǒng)總線,將卡內(nèi)存映射到主I/O和內(nèi)存窗口,并將卡產(chǎn)生的中斷路由到自由處理器中斷線。
1帶寬自適應的流量控制
寬帶視頻的實時傳輸需要一定的網(wǎng)絡帶寬。尤其當有多個用戶同時訪問同一視頻發(fā)布服務器的時候,容易產(chǎn)生并發(fā)擁塞瓶頸。這時輸出碼流需動態(tài)調(diào)整,以適應網(wǎng)絡狀況的變化。圖1所示為基于帶寬自適應的傳輸網(wǎng)絡結(jié)構,在流發(fā)布服務端和瀏覽用戶端之間構造閉環(huán)的負反饋系統(tǒng),發(fā)布服務端通過實時的探測網(wǎng)絡傳輸狀況,根據(jù)相關的控制策略實時的調(diào)整輸出流碼率,從而實現(xiàn)系統(tǒng)對帶寬的動態(tài)自適應。其具體作法:目的端根據(jù)接收的視頻流緩沖區(qū)的狀況,實時管理環(huán)形緩沖區(qū),力圖使輸出節(jié)奏均勻,并實時反饋相應的信息;發(fā)送端根據(jù)來自目的端的反饋信息調(diào)整發(fā)送的數(shù)據(jù)流量,調(diào)節(jié)媒體流的帶寬。
碼率控制是基于網(wǎng)絡可用帶寬確定視頻通信發(fā)送碼率的技術。在系統(tǒng)自適應網(wǎng)絡傳輸過程中,用戶端不斷檢測碼流傳輸質(zhì)量因素,已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計資料,經(jīng)其處理后將信息交決策控制器;決策控制器根據(jù)相應策略控制相關組件,完成該發(fā)送碼流的動態(tài)整合,并交發(fā)送端UDP發(fā)送組件,完成多媒體流的傳輸;瀏覽用戶端UDP接收多媒體數(shù)據(jù)并交后續(xù)的網(wǎng)絡播放器進行解碼播放。
為實現(xiàn)基于帶寬自適應的傳輸,首先需要進行網(wǎng)絡帶寬的動態(tài)探測和評估,然后采用合適的調(diào)整策略來整合碼流。網(wǎng)絡狀態(tài)的評估中,質(zhì)量因素可以是丟包率、包延遲、緩沖區(qū)空間等參數(shù)。該系統(tǒng)采用數(shù)據(jù)包丟失率指標。接收用戶終端不斷測量丟包率,并通過TCP傳回發(fā)送端,決策控制器通過丟包率與規(guī)定的閾值進行比較,來確定是增加還是減少碼率。當丟包率大于上限閾值時,則減少碼流速率;當丟包率小于閾值下限時,則增加碼流速率。? 基于環(huán)形緩沖區(qū)的多線程技術如圖2所示,較好的達到了視頻連續(xù)、平滑碼流、節(jié)約內(nèi)存空間的目的。此外,借助這里的環(huán)形緩沖區(qū)和互斥鎖,可以完全解決線程的同步問題。
在內(nèi)存區(qū)采用地址線性映射,開辟連續(xù)的內(nèi)存塊,保證了線程的訪問速度,有效提高了解碼效率。?
在移動終端程序中,特地引入守護線程負責流量管理,它不屬視頻程序的核心部分,而是獨立地、周期性地在后臺為視頻各個線程執(zhí)行監(jiān)視任務。守護線程的原理類似于單片機的看門狗,定時檢測運行情況,并作出分析,判斷各個緩沖和線程運行狀態(tài);發(fā)現(xiàn)異常情況即時處理,避免線程崩潰,畫面停滯。具體作法是,以輪詢間隔(Poll Interval,PI)來確定輪詢時需要等待的時間,這里PI設定值為1秒,負責監(jiān)視環(huán)形緩沖的容量及各個線程的運行情況。當偵測緩沖量超過閾值或某一線程崩潰時,將根據(jù)各個線程的運行情況維持或重啟線程。