999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于谷歌眼鏡的實時雙向圖像傳輸軟件設計*

2015-10-19 00:33:46單廷佳張志偉陳家玉中國科學技術大學信息科學技術學院安徽合肥230027
網絡安全與數據管理 2015年6期

單廷佳,凌 強,張志偉,陳家玉,李  峰(中國科學技術大學 信息科學技術學院,安徽 合肥 230027)

基于谷歌眼鏡的實時雙向圖像傳輸軟件設計*

單廷佳,凌強,張志偉,陳家玉,李 峰
(中國科學技術大學 信息科學技術學院,安徽 合肥 230027)

谷歌眼鏡是由谷歌公司于2012年4月發布的一款“拓展現實”眼鏡,由于其較小的體積、攜帶的方便性和強大、全面的功能使其具備相當廣闊的應用前景?;诠雀柩坨R的硬件平臺,在安卓系統中開發了一個可以進行雙向實時圖像傳輸的軟件,該軟件借助谷歌眼鏡的攝像頭實時獲取當前時刻佩戴者所觀察到的環境信息并將它們發送到服務器中,服務器對這些信息進行處理之后將有意義的結果返回給谷歌眼鏡進行顯示。其實現的整體思路為接收數據、顯示預覽、發送數據并接收回傳數據、顯示回傳數據。

谷歌眼鏡;Android應用;視頻通信

0 引言

2007年 11月,Google與 84家硬件制造商、軟件開發商及電信營運商成立開放手持設備聯盟來共同研發改良Android系統,隨后,Google發布了 Android的源代碼,從此各個網絡公司相繼推出各類Android應用。Google創造性地將Android系統搭載到一個“眼鏡”上,使Android系統的硬件平臺進一步地拓寬。而針對谷歌眼鏡大多還限于休閑娛樂,對其廣泛的應用背景并沒有深入地發掘。

在醫學領域,在大型醫療設備上還沒出現 Android應用,而谷歌眼鏡的出現,將拓展其硬件平臺,使移動應用與大型醫療器械結合成為可能。本文在搭載 Android系統的谷歌眼鏡上開發一個實時雙向圖像通信的應用軟件,利用TCP網絡傳輸協議,服務器處理谷歌眼鏡捕獲的圖像并回傳處理后的畫面。此應用可以用于手術中幫助醫生分辨病灶部位和動脈等關鍵部位,改變傳統的治療方式,提高醫生的工作效率。

對于所依賴的無線局域網絡環境,由于視頻實時傳輸的需求,選用WiFi傳輸方式;對于WiFi傳輸方式而言,連接不穩定和傳輸出錯率高一直為其缺陷,因此采用TCP網絡傳輸協議[1-2]。

TCP協議是一個面向連接的可靠的數據傳輸協議。TCP協議在傳輸數據之前要經歷3次握手,每次數據報文傳輸完畢后接收方還會發送一個確認ACK,發送方接收到確認 ACK后才會發送下一個數據報[1,3-4]。隨著網絡中端口越來越多,TCP也曾經修改其協議以避免網絡擁塞,如慢啟動、擁塞避免、快速重傳[5-6]等算法。為了提高傳輸效率,TCP協議應用的是 GBN協議,它允許發送方傳輸多個分組而不需要等待確認。TCP協議為了應對多客戶端和小封包傳輸等問題設置了諸多參數,如邏輯參 數TCP_NODELAY、SO_KEEPALIVE、SO_RESUSEADDR,還有整數參數SO_SNFBUF、SO_SNFBUF等。

1 圖像傳輸系統總體設計框架

此圖像傳輸系統的總體設計框架簡單敘述如下:谷歌眼鏡將采集到的一幀圖像數據發送給服務器,服務器端的驗證程序不對數據做任何處理回傳給谷歌眼鏡顯示。算法總體設計框架如圖1所示。

圖1 總體設計框架圖

2 移動終端通信應用設計思想

此應用的主要功能模塊包括捕獲并預覽、發送數據線程發送一幀JPEG格式的圖像數據和接收數據線程接收并回顯服務器已經處理過的圖像數據3個部分。發送和接收數據利用多線程實現,這樣可以節省時間,提高效率。

首先谷歌眼鏡開啟攝像頭,將圖像數據采集到谷歌眼鏡中并利用Android系統中的 Surface對象開啟預覽[7],采集到的圖像數據通過IO流處理后利用TCP協議發送[8]給服務器。同時服務器將接收到的數據回傳給谷歌眼鏡,谷歌眼鏡接收到數據后將數據解壓縮后利用 Bitmap對象加載到屏幕上[7],將服務器返回圖像與預覽圖像放在一起可以直觀地比較所返回的圖像與采集到的圖像在延遲、流暢程度等方面的差異。其主體框架如圖2所示。

圖2 軟件設計總體框架圖

2.1谷歌眼鏡與服務器進行連接功能實現

初始狀態時電腦和谷歌眼鏡均不知道對方的IP地址,但均在同一個局域網內。因此在服務器程序上定義一個網段 (一般為 192.168),通常一個網段中會產生256個IP地址,而在其中 254個IP地址中,會有一個 IP地址為谷歌眼鏡的IP地址。

通常的做法是利用循環的原理,在主程序中創建一個 IP地址,將此IP地址作為 connect函數的參數,若connect函數成功執行則連接成功;若 connect函數報錯則換另一個IP地址,如此最多執行254次connect函數,則可連接谷歌眼鏡。但此方法會使程序執行時間比較長,效率比較低。

為了縮短連接谷歌眼鏡所需要的時間,本文利用多線程方法來實現對谷歌眼鏡IP地址的查找。首先在主線程中創建254個子線程,然后將網段中的254個IP地址作為參數傳入其子線程的執行函數。此函數的作用就是嘗試對傳入的IP地址進行連接,如果連接失敗則輸出連接失敗,然后子線程結束;如果成功則將谷歌眼鏡的IP地址保存到服務器中,同時谷歌眼鏡也會保存服務器的IP地址,至此連接成功建立。服務器連接谷歌眼鏡框圖如圖3所示。

圖3 服務器連接谷歌眼鏡設計框架圖

2.2雙向傳輸數據

當谷歌眼鏡與服務器連接后,谷歌眼鏡需要將自己采集到的圖像數據傳送到服務器,服務器的測試程序不對圖像做任何處理,再重新傳回到谷歌眼鏡。

開始時谷歌眼鏡捕獲并保存圖像,此部分功能可以由以 Android Camera框架為基礎的一些接口函數實現。利用 initCamera()函數初始化谷歌眼鏡的攝像頭,然后調用 camera對象中的 startPreview方法開始在谷歌眼鏡上預覽以觀察效果[7]。獲取圖像之后將圖像數據存儲在數組之中。

谷歌眼鏡得到一幀圖像后將原始YUV格式圖像按大約15∶1的比例壓縮成 JPEG格式并存儲在數組之中。在傳輸過程中,因為服務器不知道谷歌眼鏡發送的一幀圖像大小,所以無法分配存儲空間。因而谷歌眼鏡無法直接將數據加載到輸出流中利用 Socket()函數發送出去[8],需要提前發送一個表示一幀圖像數組長度的整數n,在服務器中建立長度為n的數組用以存儲所接收的數據。因此每傳輸每一幀圖像均需要提前傳輸一個表示數組長度的整數n,可以稱它為“數組帽”。

數據傳輸的初始算法為單線程傳輸算法,即在一個線程中實現圖像數據傳輸,谷歌眼鏡先傳送一幀圖像,然后等待服務器接收,服務器接收完畢后再回傳接收到的圖像。因為圖像獲取為連續的,所以一幀幀圖像連續起來,就實現了圖像的實時雙向傳輸。但是在谷歌眼鏡完成傳輸與接收服務器回傳數據之間,谷歌眼鏡處于空閑狀態,相應的服務器也有這樣的空閑狀態,即“傳輸—等待—接收—再傳輸”,這樣就增加了圖像傳輸的時間,降低了傳輸的效率。

針對上述方法的缺陷,本文提出一種新的圖像數據傳輸方法,稱為“雙線程算法”。在客戶端主程序中創建2個子線程,子線程A只發送圖像,子線程B只接收圖像。由于同一主程序下的線程是可以并發執行的,因此谷歌眼鏡在利用子線程A發送一幀圖像的同時可以利用子線程B接收服務器返回的一幀圖像,這樣就實現了發送和接收的并發進行,從而消除了等待時間,縮短了圖像傳輸的時間,提高了傳輸效率。

根據Android系統的特點,子線程被看成類的實現(對象),并且擁有自己的成員和方法。要實現上文中的雙線程算法,首先需要開啟用于接收數據的子線程B,再創建一個用于傳輸數據的對象C,將要發送的圖像數據復制給子線程A。在此程序中,復制數據的方法被寫在對象C的構造函數中,即當對象C被創建時復制數據的方法已經開始執行。當子線程B得知對象C創建后立即創建發送數據的子線程A,當子線程A得知數據已經被復制到自身的數組成員中時立即將數組加載到輸出流中,利用 Socket將流中的數據加上一個“數組帽”后發送到服務器。同時線程B創建用于接收數據的Socket,一旦輸入流中有數據,則進行接收,接收完一幀圖像后利用Bitmap類將其加載到屏幕上,這樣在實際的應用中,工作人員就可以看到經過處理后的醫學圖像。

算法在具體實現過程中不可避免地會有一些函數之間的嵌套,其具體的實現過程如圖4所示。

圖4 數據傳輸算法流程圖

2.3網絡傳輸速率的優化

TCP傳輸協議中有一些參數是針對多客戶端情況的,但在此應用中,在一個局域網中僅有一個服務器和一個客戶端,為了提高傳輸速率,TCP協議中的一些參數需要改變。TCP協議默認開啟 Nagle算法[9],但由于Nagle算法導致的不可預測的較高的延遲以及使吞吐量降低的負面影響,需要關閉Nagle算法,即設置TCP_NODELAY為TRUE;在此應用中,僅有一個客戶端并且對實時性有較高的要求,因此要設置SO_KEEPALIVE為TRUE,即一直保持Socket端口打開,防止再次連接;當緩沖區數組長度太小時會引起阻塞,降低傳輸效率,過大又會造成內存浪費,因此可以根據一幀圖像數組長度大小合理設置緩沖區數組長度,提高程序執行速度。

攝像頭采集的數據被存儲在數組中,為了提高傳輸的幀率,除了上面的修改TCP中的參數以提高速率,另一個思路就是壓縮圖像數據數組的長度。GZIP算法是Android系統已經成熟應用過的壓縮算法,在一定程度上能夠壓縮數組的長度,提高傳輸速率。

3 算法實際測試

經實際測試,此通信軟件可以穩定運行0.5小時以上,并且在300 Mb/s帶寬情況下,平均傳輸速率可以達到895 kb/s,傳輸幀率可以穩定在11 S/s左右,基本能夠滿足設計要求。當算法為單線程時,谷歌眼鏡傳輸的幀率僅在7 S/s左右,算法改為多線程后,圖像數據傳輸的速率有明顯提高,由此說明此多線程算法有更好的執行效率。

4 結論

針對以上設備連接和數據傳輸所用的傳統算法的缺陷,此軟件在設計時提出利用多線程的設計思路。對單線程思想中的時間浪費行為進行優化,消除了等待時間,提高了數據傳輸的效率。

現階段根據對無線網絡情況下的TCP網絡出現的諸多問題,許多機構也進行了各種優化操作,但還停留在理論階段,還沒實現成熟的應用。由于Android系統的特性并為了應用軟件的可移植性,因此無法去應用那些在理論方面比現在主流的TCP協議更優的TCP改進協議,如 TCPWestwood[10-11]等。

此通信軟件有可靠的穩定性,并且算法復雜度較小,可以高效地完成數據的傳輸。但由于WiFi網絡的不穩定性,畫面偶爾會出現卡頓現象。若是硬件條件更完善,則其效果會更佳。

[1]POSTEL J.RFC 793:Transmission control protocol[Z].1981.

[2]CERF V.RFC 1120:Internet activities board[Z].1990.

[3]SOCOLOFSKY T,KALE C.RFC 1180:TCP/IP Tutorial[Z].1991.

[4]KUROSE J F,ROSS K W.計算機網絡:自頂向下方法[M].陳鳴,譯.北京:機械工業出版社,2009.

[5]ALLMAN M,PAXSON V,STEVENS W.RFC 2581:TCP congestion control[Z].1999.

[6]LAKSHMAN T V,MADHOW U.The performance of TCP/IP for networks with high bandwidth-delay products and randomloss[J].IEEE/ACMTransactions on Networking,1997,5(3):336-350.

[7]OSTRANDER J.Android UI基礎教程[M].劉文斌,譯.北京:人民郵電出版社,2012.

[8]STORIMER J.TCP Socket編程[M].門佳,譯.北京:人民郵電出版社,2013.[9]NAGLE J.RFC 896:Congestion control in IP/TCP Internetworks[Z].1984.

[10]CASETTI C,GERLA M,MASCOLO S,et al.TCPWestwood:end-to-endbandwidthestimationfor enhanced transport over wireless links[J].Journal of Wireless Networks,2002,8(5):467-479.

[11]Chen Jiwei,PAGANINI F,SANADIDI M Y.Fluid-flow analysis of TCP Westwood with RED[J].Computer Networks,2006,50(9):1302-1326.

Design of a real-time tw o-w ay image transm ission softw are for Google Project Glass

Shan Tingjia,Ling Qiang,Zhang Zhiwei,Chen Jiayu,Li Feng
(Department of Automation,University of Science and Technology of China,Hefei 230027,China)

Google Project Glass is a wearable device with an optical head-mounted display(OHMD),which was announced by Google on April 2012.Its small volume,which makes it easy to be carried,and its powerful functionality will potentially lead to broad applications of Google Project Glass.This paper is mainly to show a new two-way real-time image transmission software,which is based on the hardware platform of Google Project Glass.The software collects real-time information of the wearer with the on-board camera and sends it to the server.After the server processes the information,it will return useful results to the glasses for display.The overall aim of the software is receiving and sending data,and showing the preview.

Google Project Glass;Android application;video communication

TP311

A

1674-7720(2015)06-0092-03

2014-11-17)

單廷佳(1992-),男,碩士研究生,主要研究方向:圖像處理、軟件工程。

凌強(1975-),通信作者,男,博士,副教授,博士生導師,主要研究方向:網絡化控制系統、信號處理、嵌入式系統等。E-mail:qling@ustc.edu.cn。

張志偉(1989-),男,碩士研究生,主要研究方向:網絡緩存、信號處理、軟件工程。

國家自然科學基金( 61273112 )

主站蜘蛛池模板: 日韩无码一二三区| 国产欧美日韩另类精彩视频| 热re99久久精品国99热| 日韩高清成人| 精品视频91| 亚洲国产中文欧美在线人成大黄瓜 | 99福利视频导航| 91精品啪在线观看国产| 一级高清毛片免费a级高清毛片| 亚洲精品无码AⅤ片青青在线观看| 人妻丰满熟妇AV无码区| 日韩毛片免费| 亚洲人成人伊人成综合网无码| 中文无码毛片又爽又刺激| 国产成人8x视频一区二区| 国产成人精品亚洲77美色| 亚洲成年人片| 亚洲最新网址| 欧洲成人免费视频| 国产在线精彩视频二区| 欧美日本激情| 久久五月天综合| 狠狠操夜夜爽| 精品欧美一区二区三区久久久| 久久精品人人做人人爽电影蜜月| 国产丝袜91| 欲色天天综合网| 日韩毛片视频| 国产自在线拍| 91视频青青草| 少妇被粗大的猛烈进出免费视频| 日本伊人色综合网| 色妞永久免费视频| 999精品在线视频| 中文字幕日韩久久综合影院| 91九色最新地址| 高潮毛片免费观看| 91免费国产在线观看尤物| 国产精品国产三级国产专业不| 手机精品福利在线观看| V一区无码内射国产| 国产日韩欧美黄色片免费观看| 成人免费网站久久久| 亚洲男人的天堂在线观看| 国产精品综合色区在线观看| 亚洲中久无码永久在线观看软件| 亚洲一区二区在线无码| 亚洲不卡影院| 亚洲色欲色欲www在线观看| 日本国产一区在线观看| 亚洲人成人无码www| 免费人成视网站在线不卡| 久久这里只有精品8| 欧美精品v日韩精品v国产精品| 丰满人妻一区二区三区视频| 全色黄大色大片免费久久老太| 日韩毛片视频| 亚洲国产成人精品青青草原| 大香伊人久久| 日本黄色不卡视频| 538精品在线观看| 黄片一区二区三区| 无码啪啪精品天堂浪潮av| 国产精品黄色片| 国产视频大全| 亚洲毛片网站| 日韩a在线观看免费观看| 乱人伦视频中文字幕在线| YW尤物AV无码国产在线观看| 色综合天天综合中文网| 久久99国产视频| 91色在线视频| 国产91高跟丝袜| 亚洲午夜18| 久操中文在线| www.亚洲色图.com| 亚洲中久无码永久在线观看软件| 欧美精品亚洲日韩a| 无码中文字幕乱码免费2| 国产理论精品| 久久情精品国产品免费| av一区二区三区在线观看|