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