国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于GIS與Android的移動視頻技術(shù)研究

2012-04-29 00:44:03林夏陳義華
電腦知識與技術(shù) 2012年1期

林夏 陳義華

摘要:介紹了當(dāng)前視頻GIS系統(tǒng)發(fā)展的狀況,研究分析了基于GIS的視頻編解碼及傳輸、空間信息與視頻信息的結(jié)合等技術(shù)。在此基礎(chǔ)上設(shè)計了一個基于Android平臺的遠(yuǎn)程移動視頻GIS系統(tǒng)。詳細(xì)論述了系統(tǒng)的總體構(gòu)架、工作原理,主要功能及系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)等,最后分析了系統(tǒng)存在的不足和今后研究的方向。

關(guān)鍵詞:Android;H264視頻流;RTP協(xié)議;移動視頻GIS;GPS

中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)01-0159-04

Research on the Mobile Video Technology Based on GIS and Android

LIN Xia, CHEN Yi-hua

(School of Resource and Environment Engineering, Hefei University of Technology, Hefei 230009, China)

Abstract: This paper introduces the current situation of the development of the video GIS system. Then the technology of video encod? ing, decoding and transmission and the method of combination of spatial data and video data are analyzed. On this foundation, a remote mobile video GIS system based on the Android platform is proposed. The architecture, working principle, main function and key tech? niques of system are discussed. Eventually, the defects existed in system is analyzed and the future research direction of mobile video system is summarized.

Key words:android; H264 video; RTP protocol; mobile video GIS; GPS

隨著地理信息(GIS)系統(tǒng)迅速地發(fā)展和廣泛應(yīng)用,與多媒體數(shù)據(jù)尤其是視頻數(shù)據(jù)結(jié)合的GIS無論在效果還是表現(xiàn)力上都比傳統(tǒng)的GIS有著天然優(yōu)勢。國外在這方面的研究比較早,Berry(2000)提出了視頻地圖系統(tǒng),即在視頻的一個聲道中記錄精確的位置和事件數(shù)據(jù),并提出數(shù)據(jù)的外業(yè)采集、內(nèi)業(yè)處理與實際應(yīng)用方案。[1]Navarrete& Blat (2002)在VideoGIS項目中通過建立視頻片段的地理索引,來將視頻影像和地理信息相結(jié)合。[2]國內(nèi)也有過相關(guān)研究:孔云峰(2007)在一個公路視頻GIS項目中,實現(xiàn)了視頻和地圖的同步播放和交互查詢。[3]豐江帆和張宏(2007)在視頻直播系統(tǒng)項目中,融合了GPS和視頻數(shù)據(jù),實現(xiàn)了基于位置的視頻直播系統(tǒng)。[4]宋宏權(quán)(2010)用Adobe Flex技術(shù),成功設(shè)計和實現(xiàn)了基于Web的視頻GIS系統(tǒng),把視頻GIS研究又向前發(fā)展了一步。[5]

如今,隨著網(wǎng)絡(luò)通信技術(shù)的成熟和廣泛應(yīng)用,尤其是3G網(wǎng)絡(luò)的普及,基于網(wǎng)絡(luò)多媒體的視頻地理信息系統(tǒng)已然蓬勃發(fā)展,并且日漸成熟。目前比較流行的一種做法,是把視頻數(shù)據(jù)傳輸?shù)椒?wù)器端,然后在服務(wù)器端通過手工處理音頻通道或建立視頻影像元數(shù)據(jù)記錄空間位置信息,來實現(xiàn)地理空間信息與視頻信息的同步。另一種做法是把GIS技術(shù)應(yīng)用到視頻監(jiān)控系統(tǒng)中,實現(xiàn)位置信息與視頻信息的同步。近幾年來,隨著智能手機(jī)和云服務(wù)的普及應(yīng)用,可以預(yù)見,基于手持移動端的移動視頻地理信息系統(tǒng)將會成為未來的研究熱點。

本文將從網(wǎng)絡(luò)多媒體角度,利用GIS和視頻處理技術(shù),設(shè)計了基于Andriod平臺的遠(yuǎn)程移動視頻地理信息系統(tǒng),對系統(tǒng)的主要內(nèi)容及關(guān)鍵技術(shù)進(jìn)行了詳細(xì)的分析。

1系統(tǒng)設(shè)計與分析

1.1系統(tǒng)總體架構(gòu)設(shè)計

移動視頻地理信息系統(tǒng)由手持移動終端、無線通信、Web服務(wù)器和基于GIS的視頻接收終端幾個主要部分組成,系統(tǒng)構(gòu)架見圖1所示。

圖1系統(tǒng)架構(gòu)圖

系統(tǒng)工作原理為:手持移動終端通過Android手機(jī)內(nèi)置的GPS芯片通過定位衛(wèi)星獲取當(dāng)前GPS坐標(biāo)(經(jīng)度和緯度),與手機(jī)采集的視頻實時同步編碼,通過無線通信網(wǎng)絡(luò)發(fā)送給視頻接收終端。視頻接收終端接受到手持移動終端發(fā)來的數(shù)據(jù)后,經(jīng)過解碼,一邊實時顯示視頻數(shù)據(jù),一邊將GPS坐標(biāo)與地圖上的坐標(biāo)進(jìn)行匹配,在地圖上動態(tài)顯示移動端當(dāng)前位置。從而實現(xiàn)在視頻接收終端觀看移動端視頻的同時,同步地在地圖上顯示移動端的當(dāng)前位置和周圍環(huán)境狀況。此外,在手持移動端和視頻接收終端,都可以地圖進(jìn)行查詢和空間分析操作,方便此系統(tǒng)在各個領(lǐng)域中對特定應(yīng)用需求的擴(kuò)展應(yīng)用。

1.2系統(tǒng)功能設(shè)計

移動視頻GIS系統(tǒng)設(shè)計的主要作用是為了適應(yīng)當(dāng)今網(wǎng)絡(luò)通訊技術(shù)特點,特別是WIFI和3G網(wǎng)絡(luò)的普及前提下,利用先進(jìn)的視頻技術(shù)、網(wǎng)絡(luò)傳輸技術(shù)結(jié)合GIS技術(shù),提供移動用戶更清晰、高質(zhì)量的實時視頻通信的同時,支持強(qiáng)大的空間查詢和分析能力,增強(qiáng)用戶體驗。

本系統(tǒng)的核心數(shù)據(jù)是視頻和空間數(shù)據(jù)。要實現(xiàn)移動端實時視頻采集和顯示,系統(tǒng)需要分模塊對視頻數(shù)據(jù)進(jìn)行采集、編碼、傳輸、解碼、存儲和顯示等處理。系統(tǒng)要豐富用戶體驗和增強(qiáng)數(shù)據(jù)多樣性,需要將視頻和空間位置信息融合,再在基本電子地圖功能的基礎(chǔ)上,用GIS定制空間分析功能。由于不同移動用戶可以和不同視頻接收終端進(jìn)行通信,因此系統(tǒng)需要針對不同用戶進(jìn)行信息管理。系統(tǒng)功能結(jié)構(gòu)如圖2所示。

2系統(tǒng)實現(xiàn)

2.1環(huán)境平臺

本系統(tǒng)手持移動終端采用基于Android平臺的ArcGIS API for Android組件進(jìn)行開發(fā)。Android是基于Linux的開源手機(jī)平臺;由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件四部分組成,是首個為移動終端打造的真正開放和完整地移動軟件平臺。ArcGIS API for Android是ESRI公司開發(fā)的在Android平臺下為GIS開發(fā)者提供的軟件開發(fā)包,通過接口可以實現(xiàn)顯示并導(dǎo)航地圖、查找地址點、采集GIS數(shù)據(jù)等功能,可以最大程度地滿足本系統(tǒng)的開發(fā)要求?;谝陨纤悸?,手持移動端基于Android平臺利用ArcGIS API進(jìn)行開發(fā);視頻接收終端采用.net平臺利用ArcGIS Engine組件開發(fā);Web服務(wù)器端利用ArcGIS Server發(fā)布地圖和相關(guān)服務(wù),以供手持移動端調(diào)用。

2.2視頻編碼格式與傳輸協(xié)議

從手機(jī)硬件和無線通信技術(shù)特點出發(fā),為了同時保證視頻的清晰度和流暢性,必須選擇一個先進(jìn)的視頻編碼格式和合適的傳輸協(xié)議。本系統(tǒng)采用H.264標(biāo)準(zhǔn)作為視頻壓縮標(biāo)準(zhǔn),采用RTP協(xié)議作為傳輸協(xié)議,在技術(shù)選擇上保證視頻流的容量小、高保真、快速傳輸,從而實現(xiàn)視頻的實時清晰播放。H.264是國際組織新制定的視頻編碼標(biāo)準(zhǔn),具有高壓縮比、碼率低;圖像質(zhì)量高、容錯能力強(qiáng);網(wǎng)絡(luò)適應(yīng)性強(qiáng);應(yīng)用范圍廣等優(yōu)點,是現(xiàn)代視頻通信的首選格式。實時傳輸協(xié)議RTP是用于Internet上針對多媒體通信制定的一種傳輸協(xié)議,詳細(xì)說明了音視頻的標(biāo)準(zhǔn)數(shù)據(jù)包格式,相對于其他協(xié)議更強(qiáng)調(diào)實時性。經(jīng)過在WIFI網(wǎng)測試,本系統(tǒng)能理想地通過RTP協(xié)議以H.264格式傳輸視頻,到達(dá)實時觀看移動視頻的效果。

2.3視頻數(shù)據(jù)與GPS信息實時編碼

為使視頻多樣性和提高編碼速度,系統(tǒng)中采用JNI(Java native Interface)技術(shù)調(diào)用移植到Android平臺的第三方組件FFmpeg sdk來實現(xiàn)視頻流和GPS信息的同步編碼。FFmpeg是一個開源免費跨平臺的視頻和音頻流方案,屬于自由軟件,提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。視頻編碼時,使用腳本命令來存儲實時GPS信息。腳本命令包括索引、腳本類型、腳本內(nèi)容。這樣當(dāng)攝像頭每獲取一幀并進(jìn)行編碼時,就在編碼中添加一條腳本命令,從而實現(xiàn)視頻數(shù)據(jù)和GPS信息的融合。

2.4數(shù)據(jù)傳輸

H.264視頻流要通過RTP進(jìn)行傳輸,這要求H.264視頻數(shù)據(jù)需要根據(jù)RTP規(guī)范封裝成數(shù)據(jù)包。采用簡單的打包方案,把H.264的NALU放入負(fù)載中,配置RTP包頭的一系列參數(shù),從而形成一個完整地RTP數(shù)據(jù)包,通過網(wǎng)絡(luò)發(fā)送給視頻接收端。其流程分為兩部分:(1)移動端發(fā)送數(shù)據(jù)。其流程簡單歸納為:初始化RTP結(jié)構(gòu)、創(chuàng)建RTP套接字、開啟上下文會話;(2)視頻接收終端接受數(shù)據(jù)。其流程為:建立數(shù)據(jù)接收緩沖區(qū)、從socket端讀取數(shù)據(jù)到緩沖區(qū)、從緩沖區(qū)讀取RTP報文到指定位置。

2.5數(shù)據(jù)解碼

視頻接收終端接受到的數(shù)據(jù)是RTP包數(shù)據(jù),因此要經(jīng)過一些列的拆包、組包、解碼之后才能進(jìn)行播放。具體流程為網(wǎng)絡(luò)接收線程從網(wǎng)絡(luò)接口讀取數(shù)據(jù)流,把其放入接受緩沖區(qū)中,有可能需要RTP包時序處理。接著經(jīng)解碼線程從“接收緩沖區(qū)”中拆包處理后,將數(shù)據(jù)讀取到“視頻幀緩沖區(qū)”中,可能需要組包處理。此時,再用GPS線程把GPS信息讀取后直接在地圖上高亮顯示出來。同時,為了消除抖動,再把數(shù)據(jù)放到環(huán)形緩沖區(qū)中處理。然后當(dāng)解碼器資源充足時,解碼線程就從環(huán)形緩沖區(qū)中讀取數(shù)據(jù)進(jìn)行解碼,否則進(jìn)行丟包處理。經(jīng)解碼器解碼后,將得到y(tǒng)uv420格式視頻流,轉(zhuǎn)化為RGB格式后,再放入到“顯示緩沖區(qū)”中,最終播放器從“顯示緩沖區(qū)”中讀取視頻流播放。

本系統(tǒng)采用在windows下對FFmpegsdk二次開發(fā)實現(xiàn)H. 264視頻流的解碼和實時播放。系統(tǒng)數(shù)據(jù)流程圖如圖3所示。

2.6系統(tǒng)實現(xiàn)

基于以上設(shè)計思想,結(jié)合最初的功能需求,作者開發(fā)了以合肥工業(yè)大學(xué)校園為例的遠(yuǎn)程移動視頻GIS系統(tǒng)。該系統(tǒng)不僅建立了合肥市的空間數(shù)據(jù)庫,而且實現(xiàn)了設(shè)計所需的功能要求。

系統(tǒng)開發(fā)主要分兩部分:手持移動終端和視頻接收終端。手持移動終端采用Android + ArcGIS API for Android開發(fā),在邏輯上采用三層架構(gòu):上層應(yīng)用層使用Java編碼,實現(xiàn)視頻采集、視頻實時編碼等基本功能;中間層JNI層實現(xiàn)對底層的調(diào)用,用C++編寫;底層數(shù)據(jù)接收層,實現(xiàn)RTP協(xié)議的網(wǎng)絡(luò)傳輸、視頻編解碼等功能,用C語言編寫。電子地圖的基本功能通過ArcGIS API for Android接口編程來實現(xiàn),空間分析功能通過調(diào)用ArcServer發(fā)布GP服務(wù)實現(xiàn)。視頻接收終端采用在.net平臺下用ArcEngine進(jìn)行二次開發(fā)。

圖4為帶GPS的手持移動終端采集視頻并實時傳輸?shù)挠脩艚缑?,?dāng)移動用戶登錄后,就可通過設(shè)置IP地址和端口與指定視頻接收終端連接,按下“錄制”按鈕,就開始發(fā)送實時采集的視頻與GPS信號,實現(xiàn)視頻通信。

圖5為視頻接收終端實時顯示視頻并定位到移動端GPS位置的用戶界面。圖中正在對合肥工業(yè)大學(xué)主教附近進(jìn)行視頻采集。

3系統(tǒng)實現(xiàn)相關(guān)技術(shù)

3.1 JNI + NDK技術(shù)

Android的上層應(yīng)用是用Java寫的,底層媒體庫是用C語言寫的。為了擯棄Java語言效率低的缺點,本系統(tǒng)采用JNI(Java native interface)+NDK(Native Development Kit)的技術(shù),直接對底層庫進(jìn)行操控,以提高視頻采集和編解碼的效率。NDK提供了一些列的工具集,幫助Android開發(fā)者快速開發(fā)動態(tài)庫,并能自動將動態(tài)庫和java應(yīng)用一起打包成安裝包文件。JNI允許Java代碼和其他語言編寫的代碼進(jìn)行交互。在Android中提供JNI的方式,讓Java程序可以調(diào)用C語言程序。本系統(tǒng)移動端,網(wǎng)絡(luò)傳輸和編碼模塊都采用了JNI + NDK技術(shù)。

3.2 RTP封包處理

為了達(dá)到實時的效果,系統(tǒng)采用了H.264視頻標(biāo)準(zhǔn)編碼和RTP協(xié)議來傳輸視頻數(shù)據(jù)。H.264編碼器支持的視頻流格式是YUV(Android視頻采集默認(rèn)的生成格式),其壓縮系統(tǒng)包括視頻編碼層(VCl)和網(wǎng)絡(luò)提取層(NAL),分別負(fù)責(zé)實現(xiàn)視頻數(shù)據(jù)壓縮編碼和解碼和對視頻數(shù)據(jù)進(jìn)行封裝打包后使其在網(wǎng)絡(luò)中傳送。H.264數(shù)據(jù)的RTP封包實質(zhì)就是先配好RTP數(shù)據(jù)分組頭部,再把NALU(網(wǎng)絡(luò)提取層單元)打包進(jìn)RTP的負(fù)載中,從而通過RTP協(xié)議傳輸。本系統(tǒng)先定義了RTP協(xié)議的相關(guān)數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)報文結(jié)構(gòu)、頭部結(jié)構(gòu)、頭擴(kuò)展結(jié)構(gòu)、同部源結(jié)構(gòu)和RTP會話上下文結(jié)構(gòu),再用打包算法把已生成的H.264視頻負(fù)載到RTP數(shù)據(jù)包中。打包的常用算法有:固定包長打包算法、面向?qū)崟r流媒體的混合模式打包算法、基于NALU大小的單個或者分割打包算法等。方法各有優(yōu)缺點,因此要根據(jù)系統(tǒng)需求,選擇合適的算法。本文鑒于Android系統(tǒng)性能的考慮,使用了較簡單的固定包長打包算法。其優(yōu)點是算法簡單,打包效率高;缺點是NAL單元有可能不放到同一個RTP包中,但這可以通過在視頻接受端進(jìn)行視頻預(yù)處理解決,使視頻分幀后再播放。

3.3多線程技術(shù)

多線程技術(shù)的好處在于線程之間共用內(nèi)存,節(jié)省了內(nèi)存;相互間的切換,由于速度快,就像多個線程同時執(zhí)行一樣,提高了效率。在本系統(tǒng)中,手持移動端和視頻接收終端都用了多線程技術(shù)。在手持移動端,由于手機(jī)的CPU處理能力遠(yuǎn)不及PC機(jī),為了保持系統(tǒng)性能而不出現(xiàn)黑屏、死機(jī)等狀況,用分線程去處理那些CPU占用率高的任務(wù)。其中,用主線程完成UI界面刷新和即時功能操作的響應(yīng),如按鈕的即時響應(yīng)、UI界面的切換;用分線程執(zhí)行CPU占用率高和耗時的工作,如視頻編碼、網(wǎng)絡(luò)通訊。在視頻接收終端,線程的引入是為了減少程序并發(fā)執(zhí)行時所付出的時間和空間開銷,使系統(tǒng)具有良好的并發(fā)性。從網(wǎng)絡(luò)接收RTP包到最終播放,用了4個線程:網(wǎng)絡(luò)接收線程、解碼線程、GPS數(shù)據(jù)讀取線程、視頻播放線程;3個緩沖區(qū):接收緩沖區(qū)、視頻數(shù)據(jù)環(huán)形緩沖區(qū)和顯示緩沖區(qū),以使視頻接收端在緩沖一段時間后流暢播放視頻。

4總結(jié)

本論文研究的創(chuàng)新之處在于根據(jù)現(xiàn)代手機(jī)系統(tǒng)和網(wǎng)絡(luò)通信特點,采用最新的技術(shù),設(shè)計了一個基于Android的遠(yuǎn)程移動視頻系統(tǒng),融合了視頻信息和空間位置信息,實現(xiàn)了視頻和空間信息的查詢和分析功能。實踐表明,本文提出的基本思路和設(shè)計方案具有可行性。此外,本系統(tǒng)具有良好的可擴(kuò)展性,可根據(jù)不同行業(yè)、領(lǐng)域的需求定制和擴(kuò)展相應(yīng)的功能,應(yīng)用到如車載視頻監(jiān)控、森林火災(zāi)監(jiān)控、視頻旅游等方面。

同時,本文也只是基于一個實驗性系統(tǒng)去探究和設(shè)計,存在著一些問題。(1)經(jīng)過測試,在WIFI網(wǎng)絡(luò)下,視頻能流暢播放。但用普通網(wǎng)絡(luò)(帶寬40kb~60kb),視頻則不是很流暢;(2)視頻有時會出現(xiàn)跳躍的現(xiàn)象。這是由于有時RTP協(xié)議是不可靠傳輸協(xié)議,有時會出現(xiàn)丟包現(xiàn)象。此外,此系統(tǒng)沒有對RTP包接受部分進(jìn)行很好的失序和擁塞處理,也是導(dǎo)致視頻不穩(wěn)定因素之一;(3)移植性不佳,未實現(xiàn)跨平臺性?;贏ndroid的遠(yuǎn)程視頻移動GIS系統(tǒng)應(yīng)具有和不同平臺環(huán)境的視頻接收終端進(jìn)行通信的能力,而本系統(tǒng)并未處理這方面的問題。

隨著3G網(wǎng)絡(luò)的成熟和普及,基于手持設(shè)備系統(tǒng)的視頻地理信息系統(tǒng)將有巨大的發(fā)展空間和應(yīng)用。無論是硬件設(shè)備、網(wǎng)絡(luò)傳輸速度的提高,還是軟件技術(shù)的發(fā)展更新,都意味著視頻編解碼和傳輸性能的提高,屆時將實現(xiàn)真正意義上的實時的、高保真的視頻播放。在下一階段的研究中,主要有三個研究方向:(1)完善視頻與空間信息相結(jié)合的模型,把GIS技術(shù)更廣泛地利用到移動視頻領(lǐng)域;(2)開發(fā)具有良好封裝性和可移植性的模塊功能。將視頻編解碼模塊、網(wǎng)絡(luò)通信模塊封裝得更好,提供不同數(shù)據(jù)格式的編解碼接口和不同協(xié)議的封包接口,供上層應(yīng)用調(diào)用;(3)針對Android系統(tǒng)特點的網(wǎng)絡(luò)通信技術(shù)、編碼技術(shù)、分包算法的研究和優(yōu)化。

參考文獻(xiàn):

[1] Berry J K. Capture‘Whereand‘Whenon Video-Based GIS[J].GEOWORLD,2000(9):26-27.

[2] Navarrete T, Blat J. VideoGIS:segmenting and indexing video based on geographic information[C]. 5thAGILE Conference on Geographic Information Science, Palma(Balearic Islands, Spain),April 25th-27th 2002.

[3]孔云峰.一個公路視頻GIS的設(shè)計與實現(xiàn)[J].公路,2007(1):119-121

[4]豐江帆,張宏,沙月進(jìn). GPS車載移動視頻監(jiān)控系統(tǒng)的設(shè)計[J].測繪通報,2007(2):51-53.

[5]宋宏權(quán),孔云峰.Adobe Flex框架中的視頻GIS系統(tǒng)設(shè)計與開發(fā).武漢大學(xué)學(xué)報(信息科學(xué)版),2010,35(6):743-745.

[6]魏聰穎.基于事實流媒體傳輸系統(tǒng)的H.264組包算法研究[J].計算機(jī)科學(xué),2007,34(8):41-44.

[7]胡曉樂.基于Android平臺的MID視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].廣州:中山大學(xué),2010.

洪雅县| 汝阳县| 上虞市| 柯坪县| 黎川县| 岐山县| 昌图县| 瓮安县| 扎兰屯市| 麻江县| 波密县| 涞水县| 苗栗县| 道真| 保亭| 昌江| 思茅市| 秭归县| 富阳市| 河津市| 伊春市| 共和县| 陆川县| 曲阜市| 天峨县| 招远市| 乐安县| 安达市| 当雄县| 望奎县| 湄潭县| 伊川县| 永登县| 乌兰浩特市| 朝阳县| 东宁县| 彰武县| 瓦房店市| 佳木斯市| 红桥区| 贡嘎县|