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