亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android的視頻流自適應算法設(shè)計

        2012-04-12 00:00:00王輝田鵬輝
        現(xiàn)代電子技術(shù) 2012年22期

        摘 要:隨著網(wǎng)絡(luò)的快速發(fā)展,對高質(zhì)量視頻的實時傳輸提出了更高的要求,然而由于智能手機處理能力低、內(nèi)存小等硬件配置因素,使得嵌入式媒體播放器中的視頻數(shù)據(jù)無法自適應網(wǎng)絡(luò)狀況,最終導致視頻數(shù)據(jù)在傳輸過程中大量丟失,降低接收到的視頻圖像質(zhì)量。在此提出基于Android的視頻流自適應算法,該算法可動態(tài)探測網(wǎng)絡(luò)帶寬,自動適應網(wǎng)絡(luò)擁塞狀況,制定平滑的數(shù)據(jù)傳輸帶寬,緩解網(wǎng)絡(luò)擁塞,根據(jù)傳輸帶寬控制視頻編碼和視頻傳輸速率,提高視頻傳輸質(zhì)量。

        關(guān)鍵詞:網(wǎng)絡(luò)擁塞; 媒體播放器; Android; 視頻自適應; 網(wǎng)絡(luò)帶寬

        中圖分類號:TN91934; TP301.6 文獻標識碼:A 文章編號:1004373X(2012)22004204

        近年來隨著網(wǎng)絡(luò)的快速發(fā)展,對高質(zhì)量視頻的實時傳輸也提出了更高的要求,然而由于IP網(wǎng)絡(luò)的體系結(jié)構(gòu)就決定它只能提一種供盡力而為(Besteffort)的傳輸服務,并沒有服務質(zhì)量的保障(QoS),因此很難保證視頻傳輸所需的穩(wěn)定帶寬,最終將導致網(wǎng)絡(luò)擁塞,并且在傳輸過程中丟失大量的視頻數(shù)據(jù),引起接收到的視頻圖像質(zhì)量急劇下降。目前,盡管在許多高端手機和PDA上都有多媒體播放器,但是因為手機處理器能力低、內(nèi)存小等硬件配置因素的影響,和PC機上的播放器相比手機現(xiàn)有的這些播放器功能都非常不完善,嚴重影響著視頻流的解碼效率,并最終導致解碼出的視頻頻數(shù)據(jù)無法實時處理,極大地影響用戶的使用。這一現(xiàn)象產(chǎn)生的原因主要是由于媒體播放器是基于嵌入式系統(tǒng)的,而目前所用的大多數(shù)嵌入式處理器其工作頻率和運算能力都不能和同時期的PC機用的處理器相比,而播放高質(zhì)量的視頻文件又需要處理器進行大量復雜的解碼工作,所以一旦CPU處理速度跟不上就會使導致圖像質(zhì)量下降。

        解決這一問題主要有2種方法,一種方法就是在硬件上使用更高性能的CPU或者硬件解碼芯片,加快視頻處理速度;另一種方法就是在軟件上使用好的視頻自適應算法,當產(chǎn)生網(wǎng)絡(luò)擁塞而導致丟包時可以及時糾正。一般來說,系統(tǒng)使用的硬件一旦確定就不會輕易改變,因為這涉及到硬件電路設(shè)計、成本等諸多因素,所以本文將從軟件角度改善視頻流的傳輸,提出基于Android的視頻流自適應算法,該算法可以動態(tài)探測網(wǎng)絡(luò)帶寬,自動適應網(wǎng)絡(luò)擁塞狀況,制定平滑的數(shù)據(jù)傳輸帶寬,從而緩解網(wǎng)絡(luò)擁塞,根據(jù)傳輸帶寬控制視頻編碼和視頻傳輸速率,相應地提高視頻傳輸質(zhì)量。

        1 系統(tǒng)分析

        1.1 Android平臺簡介

        Android系統(tǒng)是Google公司開發(fā)的基于Linux系統(tǒng)的開源手機操作平臺,采用軟件堆層(Software Stack)的架構(gòu),是首個為移動終端打造的真正開放和完整的移動軟件。

        Android平臺框架共由5部分組成。底層核心是基于Linux 2.6內(nèi)核開發(fā)的獨立操作系統(tǒng),該層用來提供系統(tǒng)的底層服務,包括安全機制、內(nèi)存管理、進程管理、網(wǎng)絡(luò)堆棧及一系列的驅(qū)動模塊。中間是Android執(zhí)行環(huán)境,包括系統(tǒng)運行庫、Dalvik虛擬機、核心庫和一些C/C++庫等支持Android使用的各個組件。應用層框架是開發(fā)人員使用這些API框架來開發(fā)自己的應用,簡化了應用程序開發(fā)的架構(gòu)設(shè)計。應用層程序是用Java語言編寫的運行在虛擬機上的程序。

        為確保視頻的高質(zhì)量傳輸,以及方便針對嵌入式平臺運行的調(diào)整和優(yōu)化,在選擇編碼的時候選擇開源項目FFmpeg。FFmpeg是一個開源跨平臺多媒體數(shù)據(jù)解決方案,它包含非常先進的視頻編解碼庫Libavcodec,支持超過90種編解碼標準及RTSP,HTTP,MMS等多種網(wǎng)絡(luò)傳輸協(xié)議。FFmpeg通過C語言實現(xiàn),常被移植到各種嵌入式系統(tǒng)中[1]。將FFmpeg移植到Android系統(tǒng)中,能夠增加Android系統(tǒng)對編解碼格式標準的支持,提高Android系統(tǒng)對多媒體信息處理能力,改善用戶體驗。

        1.2 視頻傳輸協(xié)議RTP/RTCP

        視頻傳輸?shù)暮诵氖且曨l流(Streaming Video)的傳輸,視頻流通常是指一系列連續(xù)的、帶有時間戳的視頻包數(shù)據(jù)。視頻流技術(shù)則是研究視頻數(shù)據(jù)有效傳輸?shù)募夹g(shù),主要包括視頻數(shù)據(jù)的壓縮及視頻流的實時傳輸,以保證用戶能夠獲得良好的視頻質(zhì)量。多媒體流的實時傳輸對帶寬和延遲比較敏感,因此視頻流的傳輸需要選擇合適的傳輸協(xié)議。

        實時傳輸協(xié)議(Realtime Transport Protoco1,RTP)報文用來作實時傳輸時,可以靈活改變速率、防止亂序。但是,僅僅使用RTP時間戳是無法實現(xiàn)視頻的自適應傳輸。要實現(xiàn)視頻自適應傳輸,需要借助于RTP控制協(xié)議(Realtime Transport Control Protocol,RTCP)[2]。在流式傳輸?shù)膶崿F(xiàn)方案中,采用TCP/RTCP來傳輸控制信息,用RTP/UDP來傳輸視頻流數(shù)據(jù)。RTCP報文在傳輸過程中可以為RTP數(shù)據(jù)提供網(wǎng)絡(luò)狀況和服務質(zhì)量的反饋。

        2 基于Android的視頻流自適應算法設(shè)計

        為解決網(wǎng)絡(luò)擁塞時視頻所面臨的問題,本文進行了基于Android的視頻自適應算法的研究。該算法可以動態(tài)探測網(wǎng)絡(luò)帶寬,使用網(wǎng)絡(luò)擁塞控制制定數(shù)據(jù)接收速率,在避免網(wǎng)絡(luò)擁塞的同時做到了與TCP的公平與友好。

        2.1 視頻自適應算法框架

        基于Android的視頻自適應算法的主要原理是在Android手機上實現(xiàn)視頻接收的自適應調(diào)節(jié)。首先,Android手機會發(fā)送網(wǎng)絡(luò)探測信息的數(shù)據(jù)包,包中帶有序列號、包丟失率、延時及環(huán)路時間等。然后,服務器會應答收到的數(shù)據(jù)包,在應答包中會包含有相應的序列號和網(wǎng)絡(luò)信息反饋等開銷,這樣,就提供了端到端的反饋。Android系統(tǒng)根據(jù)網(wǎng)絡(luò)開銷解碼數(shù)據(jù)包并分析網(wǎng)絡(luò)帶寬,當帶寬變窄時,能在用戶允許的范圍內(nèi)丟棄某些次要信息,比如高碼率的視頻數(shù)據(jù),而當帶寬變大時,則可以提高視頻傳輸碼率或增大幀速率,這樣就可以根據(jù)網(wǎng)絡(luò)的狀態(tài),自動適應網(wǎng)絡(luò)帶寬變化,動態(tài)接收視頻數(shù)據(jù)流,達到較好的傳輸效果。

        本文提出的基于Android的視頻自適應算法是針對網(wǎng)絡(luò)環(huán)境中傳輸實時視頻數(shù)據(jù)而提出的。當在網(wǎng)絡(luò)上傳輸視頻數(shù)據(jù)時,網(wǎng)絡(luò)視頻自適應傳輸算法會在UDP協(xié)議的基礎(chǔ)上加入RTP和RTCP傳輸控制協(xié)議[3],然后通過發(fā)送網(wǎng)絡(luò)探測和有效反饋實現(xiàn)基于Android的網(wǎng)絡(luò)視頻自適應控制,視頻自適應技術(shù)框架如圖1所示。

        TCP友好速率控制協(xié)議(TCP Friendly Rate Control,TFRC) 是一種應用于單播的基于速率的擁塞控制算法[4]。本文提出的基于Android的視頻自適應擁算法就借鑒了TFRC模型穩(wěn)態(tài)速率公式,在該公式中,關(guān)鍵技術(shù)主要包括TFRC穩(wěn)態(tài)速率公式中各參數(shù)的確定以及視頻數(shù)據(jù)接收速率控制。TFRC穩(wěn)態(tài)速率公式如下[5]:

        B(p)=

        s[tRTT2bp3+t0min(1,33bp8)p(1+32p2)]-1

        式中:s表示TCP的報文大小,單位為B;p表示丟失事件率;t0表示數(shù)據(jù)報文超時時間;tRTT表示數(shù)據(jù)報文環(huán)路時間;b為一個應答所代表的接收到的報文數(shù)。通過TFRC穩(wěn)態(tài)速率公式可以計算出一個傳輸數(shù)據(jù)流的穩(wěn)態(tài)接收速率B(p)。

        依據(jù)該TFRC穩(wěn)態(tài)速率公式得出速率值B(p)隨著丟失事件率等幾個參數(shù)的變化而變化,而其中最主要的是丟失事件率p的計算。丟失事件率的計算有3個主要步驟,即初始化參數(shù)列表,丟失事件(Loss Events)判斷,以及計算丟包事件率。

        (1) 初始化參數(shù)列表。根據(jù)TFRC理論,丟失事件率以最近8個丟失事件作為計算依據(jù)[6],據(jù)此引入?yún)?shù)數(shù)組。

        (2) 丟失事件(Loss Events)判斷。本文對丟失事件的判斷采用以下算法描述:

        Android系統(tǒng)Qos監(jiān)控模塊監(jiān)測到有丟包情況發(fā)生{If 本次丟包與上一次丟包的時間間隔大于RTT,即該包不屬于上次丟失事件的發(fā)送窗口。

        Then 新的丟失事件發(fā)生,計算丟失間隔。}

        采用該算法可以判斷出當前的丟失事件,進而可用于計算丟失事件率p。

        (3) 計算丟失事件率p。按照丟失事件率的算法,一個非連續(xù)的丟包并不會改變丟失事件率,因此當包丟失率上升時速率值的下降也是緩慢的,丟失事件率算法應用在TFRC穩(wěn)態(tài)速率公式中能夠較準確地描述網(wǎng)絡(luò)的實際擁塞狀況。

        2.3 瓶頸帶寬的計算

        在TFRC算法的基礎(chǔ)上控制視頻數(shù)據(jù)的接收速率,可以通過視頻自適應算法制定出平滑的帶寬輸出數(shù)據(jù),從而避免TCP協(xié)議的AIMD算法所帶來的帶寬振蕩。此外,視頻自適應算法并不把TFRC速率計算公式的輸出作為源端的接收速率,而是以客戶端反饋的瓶頸帶寬做為上界,并且結(jié)合當前帶寬輸出值B(p)及最近帶寬,制定數(shù)據(jù)傳輸率來自動適應網(wǎng)絡(luò)狀態(tài)的變化。

        發(fā)送端在tTimestamp時刻向接收端發(fā)送數(shù)據(jù)包,在接收端收到N個具有相同時間戳tTimestamp的數(shù)據(jù)包后,采用以下公式計算瓶頸帶寬:BnBw=∑Ni=1packet(i)[tRecv_ClientN-tRecv_Client1]-1式中:BnBw為網(wǎng)絡(luò)瓶頸帶寬;Packet(i)為第i個數(shù)據(jù)包大小,單位B;tTimestamp為數(shù)據(jù)包發(fā)送時間戳;tRecv_ClientN為接收到第N個數(shù)據(jù)包的時間;tRecv_Client1為接收到第1個數(shù)據(jù)包的時間。

        通過瓶頸帶寬公式計算出的網(wǎng)絡(luò)瓶頸帶寬BnBw可以作為數(shù)據(jù)發(fā)送速率的上界,從而避免了TFRC算法的帶寬波動。

        2.4 視頻流自適應算法描述

        利用RTP/RTCP的反饋結(jié)果,設(shè)計合適的基于Android的視頻自適應算法。當監(jiān)測到網(wǎng)絡(luò)出現(xiàn)擁塞,導致帶寬下降后,Android系統(tǒng)會自動調(diào)整接收策略,從占用較多帶寬,質(zhì)量較高的視頻流向占用帶寬較少,質(zhì)量稍微差一點的視頻流上轉(zhuǎn)移。因此,假如出現(xiàn)持續(xù)的低帶寬情況,視頻自適應算法的結(jié)果就是在最初階段丟包率會較大,隨后就會逐漸適應低帶寬的環(huán)境,丟包率也會呈下降趨勢。因此,考慮到嵌入式設(shè)備的性能,提出的自適應算法不應過于復雜,可以將視頻自適應算法和視頻編碼算法相結(jié)合,動態(tài)地調(diào)整視頻的編碼和發(fā)送,從而達到較為流暢的媒體流。通過以上分析,得出自適應算法具體步驟如下:

        (1) 初始化設(shè)置視頻編碼器,啟動網(wǎng)絡(luò)發(fā)送線程;

        (2) 設(shè)定B為發(fā)送端當前的帶寬,Bmin和Bmax分別為網(wǎng)絡(luò)所能達到的最小帶寬和最大帶寬,且B∈[Bmin,Bmax];

        (3) 根據(jù)給定網(wǎng)絡(luò)帶寬B,確定視頻壓縮碼率;

        (4) 根據(jù)視頻壓縮碼率,壓縮視頻數(shù)據(jù),加入網(wǎng)絡(luò)探測信息,以視頻幀為單位采用RTP方式打包后送入緩沖區(qū);

        (5) 網(wǎng)絡(luò)發(fā)送模塊從緩沖區(qū)中取出視頻數(shù)據(jù)包,并將視頻數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)上;

        (6) 網(wǎng)絡(luò)監(jiān)測模塊接收客戶反饋的網(wǎng)絡(luò)QoS信息,根據(jù)視頻流自適應算法確定當前的發(fā)送帶寬Bnew,調(diào)用視頻速率自適應模塊,按照控制策略調(diào)整視頻壓縮碼率,如果沒有用戶終止信息,則執(zhí)行步驟(4);

        (7) 退出視頻發(fā)送線程,終止。

        數(shù)據(jù)包丟失率是監(jiān)控器估計網(wǎng)絡(luò)信道狀況的指標,但不能直接利用丟失率判斷網(wǎng)絡(luò)信道狀況并據(jù)此調(diào)整視頻的接收,因為會使接收數(shù)據(jù)變動得過于頻繁,視頻產(chǎn)生波動,質(zhì)量不穩(wěn)定,所以要先對其做平滑處理。根據(jù)平'滑后的數(shù)據(jù)包丟失率與事先確定的閾值的關(guān)系判斷網(wǎng)絡(luò)上的負載情況,依此將網(wǎng)絡(luò)狀態(tài)分為若干類:假定分為3類(輕載,滿載和阻塞),網(wǎng)絡(luò)狀態(tài)的分類算法:設(shè)定2個閾值kl、k2(測試給定值),平滑后RTP數(shù)據(jù)包的丟失率為t(n)。視頻編碼算法為A(i),其中i為調(diào)整編碼的系數(shù),i越大,壓縮比越高,對應于3種狀態(tài)的i值分別為il

        (1) 當t(n)< kl時,視為輕載;

        (2) 當kl

        (3) 當t(n)> k2時,視為阻塞。

        則自適應算法描述為:

        if(t(n)

        else if(kl

        A(i2);D;

        else

        A(i3);TFRC(D);

        此算法可根據(jù)網(wǎng)絡(luò)的實際情況劃分為多種狀態(tài)進行調(diào)整。與TCP基于AIMD窗口控制算法相比,視頻自適應算法采用了緩和得多的速率變化策略,在TFRC公式的基礎(chǔ)上既做到了與TCP 流的友好,又平滑了數(shù)據(jù)傳輸速率,能夠為視頻數(shù)據(jù)提供良好的傳輸質(zhì)量保證。

        3 實驗結(jié)果

        為驗證本文提出的視頻流自適應算法的應用效果,在Android系統(tǒng)中進行了模擬實驗。以下是采用視頻流自適應算法的視頻傳輸實驗結(jié)果,實驗結(jié)果分析如圖2所示。自適應視頻流解碼質(zhì)量與傳統(tǒng)的聯(lián)播技術(shù)之間的實驗效果比較,采用的視頻序列是Coastguard CIF,其中網(wǎng)絡(luò)帶寬變動范圍為128~512 Kb/s。

        圖2 視頻流自適應算法實驗結(jié)果分析從以上試驗結(jié)果可以看出,與目前主要的實時視頻傳輸技術(shù)相比,視頻流自適應算法具有一定的優(yōu)勢:從帶寬自適應能力上來說,視頻自適應算法能對網(wǎng)絡(luò)帶寬的變動做出及時的響應并能有效避免網(wǎng)絡(luò)擁塞,提供穩(wěn)定連續(xù)的視頻傳輸質(zhì)量;視頻自適應算法對視頻編碼器的依賴較小,即不需要復雜的視頻自適應編碼算法,也不占用冗余的存儲空間,因此在對視頻流的實時性要求高的應用上具有較突出的優(yōu)勢。

        4 結(jié) 語

        本文針對Android平臺的特點提出基于Android的視頻流自適應算法,該算法可動態(tài)探測網(wǎng)絡(luò)帶寬,自動適應網(wǎng)絡(luò)擁塞狀況,制定平滑的數(shù)據(jù)傳輸帶寬,緩解網(wǎng)絡(luò)擁塞,根據(jù)傳輸帶寬控制視頻編碼和視頻傳輸速率,提高視頻傳輸質(zhì)量,對網(wǎng)絡(luò)帶寬的波動有較好的適應性。該算法在Android 2.2軟件平臺上進行了系統(tǒng)測試,具有良好的效果,證明該算法可適應網(wǎng)絡(luò)擁塞狀況,提高視頻質(zhì)量,改善用戶體驗,為其他移動終端嵌入式多媒體應用軟件的開發(fā)給出了一些參考。

        參 考 文 獻

        [1] 吳張順,張詢.基于FFmpeg的視頻編碼存儲研究與實現(xiàn)[J].杭州電子科技大學學報,2006,26(3):3034.

        [2] HAMANN T, WALRAND J. A new fair window algorithm for ECN capable TCP (NewECN) \[C\]// Proceedings of 2000 IEEE INFOCOM. Tel Aviv, Israel, CA: IEEE Computer Society, 2000: 200206.

        [3] HENGER U, BOLLIGER J, TH C. TCP Vegas revisited \[C\]// Proceedings of 2000 IEEE INFOCOM. Tel Aviv, Israel: IEEE Computer Society, 2000: 221227.

        [4] RICHARD J, ANANTHARAM V. A case study for TCP Vegas and deficit roundrobin gateways \[J/OL\]. \[19981220\].Http://www.path.berkeley.

        [5] HANDLEY M, PAHYE J, FLOYD S. TCP friendly rate control (TFRC): Protocol specification \[EB/OL\]. \[20100126\]. http:// www. glyustb.iteye.com/blog/580612.

        [6] DISALEM D, SCHULZRINNE H. The lossdelay based adjustment algorithm: a TCPfriendly adaptation scheme \[C\]// Workshop on NOSSDAV. \[S.l.\]: \[s.n.\], 1998: 227233.

        作者簡介: 王 輝 女,1975年出生,陜西西安人,講師。主要研究方向為計算機網(wǎng)絡(luò)、網(wǎng)絡(luò)安全、網(wǎng)絡(luò)協(xié)議與分析。

        久久综合给日咪咪精品欧一区二区三| 一区二区三区午夜视频在线| 久久综合九色欧美综合狠狠 | 在线观看免费的黄片小视频| 亚洲最大免费福利视频网| 真人做爰片免费观看播放| 亚洲熟妇少妇69| 国产人成在线成免费视频| 亚洲中文字幕日韩综合| 国产一精品一av一免费| 亚洲日韩欧美一区二区三区| 中国老太老肥熟女视频| 国产一区二区av免费观看| 蜜臀av午夜一区二区三区| 亚洲永久无码动态图| 亚洲熟女国产熟女二区三区| 麻神在线观看免费观看| 三叶草欧洲码在线| 国产欧美一区二区成人影院| 玩弄丝袜美腿超短裙校花| 一本色道久久婷婷日韩| 无码人妻精品丰满熟妇区| 97精品国产91久久久久久久| 水蜜桃在线观看一区二区国产 | 日日噜噜噜夜夜狠狠久久蜜桃 | 欧美综合区| 亚洲av日韩精品一区二区| 热99re久久精品这里都是精品免费 | 色丁香色婷婷| 日韩av中文字幕一卡二卡| 蜜臀一区二区三区精品| 久久人人爽人人爽人人av| 99久久精品一区二区三区蜜臀| 久久国产精品免费专区| 日韩精品久久久久久免费| AV有码在线免费看| 超短裙老师在线观看一区二区| 色翁荡息又大又硬又粗视频| 亚洲欧美日韩精品久久亚洲区 | 精品视频一区二区三三区四区| 一区二区三区免费观看在线视频|