殷凡,牛麗,陳甸甸,陳青云
(蘇州市職業(yè)大學(xué)計算機工程學(xué)院,蘇州 215104)
自適應(yīng)緩沖的iOS流媒體傳輸控制算法
殷凡,牛麗,陳甸甸,陳青云
(蘇州市職業(yè)大學(xué)計算機工程學(xué)院,蘇州 215104)
針對一般的流媒體傳輸控制算法在iOS平臺的應(yīng)用中表現(xiàn)出一定的不兼容性,根據(jù)其平臺特征和一般算法的缺陷,提出一種自適應(yīng)緩沖的iOS流媒體傳輸控制算法。首先根據(jù)當(dāng)前網(wǎng)絡(luò)狀態(tài)構(gòu)建流媒體數(shù)據(jù)傳輸預(yù)測模型,然后在加增長乘減少的流量控制算法的基礎(chǔ)上,針對其不易于隨網(wǎng)絡(luò)狀態(tài)的變化而及時修正的缺陷,結(jié)合構(gòu)建的預(yù)測模型對其進行自適應(yīng)緩沖優(yōu)化。通過算法仿真測試表明,該改進算法比一般算法有較低的丟包率和更好的網(wǎng)絡(luò)吞吐量。
iOS平臺;流媒體傳輸;流量控制;自適應(yīng)緩沖;流量預(yù)測
流媒體是指在網(wǎng)絡(luò)中使用流式傳輸技術(shù)的連續(xù)時基媒體,以其高可靠性、可擴展性和靈活性等優(yōu)勢成為移動多媒體領(lǐng)域所研究的關(guān)鍵技術(shù)[1]。近幾年,基于iOS操作系統(tǒng)的移動終端市場占有率成倍增長,而在iOS操作平臺上,蘋果公司實現(xiàn)了自己的流媒體傳輸協(xié)議,但是對其他的協(xié)議或標(biāo)準(zhǔn)并不兼容[2]。
目前,國內(nèi)外關(guān)于流媒體傳輸?shù)南嚓P(guān)研究已經(jīng)有很多。劉高明等人[3]針對流媒體實時傳輸所存在的實際問題,提出了一種嵌入式流媒體同步傳輸實時控制策略,該策略包含流量自適應(yīng)糾正控制算法和延時自適應(yīng)補償算法。左冬紅[4]根據(jù)流媒體發(fā)送應(yīng)用層緩沖區(qū)讀寫指針差值調(diào)整流媒體發(fā)送端的編碼碼率適應(yīng)網(wǎng)絡(luò)帶寬的變化,提出一種面向TCP流媒體傳輸?shù)木幋a碼率自適應(yīng)算法。黃韜等人[5]針對流媒體傳輸控制的延時問題,提出一種基于OpenFlow的自適應(yīng)SVC流媒體分級傳輸策略。趙偉等人[6]針對iOS平臺的流媒體傳輸問題,提出了一種基于RTP/RTCP/RTSP協(xié)議標(biāo)準(zhǔn)的流媒體實時模型。
本文針對根據(jù)一般流媒體傳輸控制算法存在的缺陷和iOS平臺的特點,提出了一種自適應(yīng)緩沖的iOS流媒體傳輸控制算法,對其進行了算法仿真測試,驗證該改進方法的有效性。
RTP/RTCP協(xié)議傳輸流媒體數(shù)據(jù),其傳輸層協(xié)議一般為UDP協(xié)議。RTP協(xié)議為發(fā)送端提供數(shù)據(jù)傳輸服務(wù),向接收端傳輸流媒體數(shù)據(jù);RTCP協(xié)議為發(fā)送端傳輸實時控制數(shù)據(jù),以監(jiān)測數(shù)據(jù)傳送過程中的QoS。一般而言,RTCP數(shù)據(jù)的發(fā)送時間間隔最小為5s。
由RFCl889可以得到,前i個RTP傳輸時間范圍內(nèi)發(fā)送端的報文丟失率L可以作為長時間測量網(wǎng)絡(luò)擁塞的計算手段,其計算公式如式(1)所示;而發(fā)送端的間隔抖動字段可以作為短時間測量網(wǎng)絡(luò)擁塞的計算手段,從RTCP報文中直接獲取即可,J=jitter。
式(1)中,cul_losti為從會話開始到第i個傳輸時間范圍內(nèi)共計丟失的RTP數(shù)據(jù)包的和;而CL(n,i)為從i 到n傳輸時間范圍內(nèi)所共計丟失的RTP數(shù)據(jù)包的和;
式(2)中,hnrn為從會話開始到第i個傳輸時間范圍內(nèi)所收到的最大的RTP數(shù)據(jù)包序列號;而且HNR (n,i)表示為會話從i到n傳輸間隔內(nèi)所累計丟失的RTP數(shù)據(jù)包總數(shù)。
報文的丟包表明該網(wǎng)絡(luò)存在擁塞狀況,而間隔抖動則代表短暫的擁塞狀況,J代表報文丟失前預(yù)測網(wǎng)絡(luò)發(fā)生擁塞狀況的可能性。所以,當(dāng)發(fā)送端獲取接收端發(fā)送過來的RTCP報文時,便可以依靠報文中的間隔抖動值J與前i個RTP傳輸時間范圍內(nèi)發(fā)送端的報文丟失率L(n,i)修正RTP流的發(fā)送速率,其綜合預(yù)測量可以由式(4)表示。
式(4)中,Lmax為流媒體數(shù)據(jù)實時傳輸過程中的最大丟包率;Jmax為流媒體數(shù)據(jù)實時傳輸過程中的最大間隔抖動;w和v分別為RTP報文的丟包率和間隔抖動在整個流媒體數(shù)據(jù)實時傳輸預(yù)測過程中的權(quán)重,并且有w+v=1,其取值可以依據(jù)網(wǎng)絡(luò)情況來人為指定。如果網(wǎng)絡(luò)環(huán)境相對穩(wěn)定,可適當(dāng)增加L的預(yù)測權(quán)重,因為相對穩(wěn)定的網(wǎng)絡(luò)環(huán)境,報文傳輸?shù)亩秳有韵鄬^小,所以取w〉v;而在復(fù)雜多變的網(wǎng)絡(luò)環(huán)境中,我們要增加J的預(yù)測權(quán)重,因為復(fù)雜的網(wǎng)絡(luò)環(huán)境,報文傳輸?shù)亩秳有韵鄬^大,因此取w〈v。
綜上所述,R的取值不但可以代表長時間內(nèi)的網(wǎng)絡(luò)狀況,也可以代表當(dāng)前的網(wǎng)絡(luò)狀態(tài),所以可以通過R的取值預(yù)測RTP報文的發(fā)送速率,這樣就可以降低RTP報文的丟包率,同時又減小流的抖動性。
2.1 加增長乘減少的流量控制算法
加增長乘減少的流量控制算法一般表示為:
其中,aI表示加增長常量,aI≥0;bD表示乘減少因子,0≤bD〈1;rloss表示RTP報文的丟包率,表示RTP報文的丟包率最大閾值,反映的是用戶對RTP、丟包率的最大容忍程度;v(t+1)表示為t+1時RTP數(shù)據(jù)流發(fā)送的速率。于是本文可以從式(5)看出,當(dāng)丟包率大于THloss,則應(yīng)當(dāng)減小音視頻流媒體的采樣率和編碼率,即RTP報文的發(fā)送速率;當(dāng)丟包率小于還未達到THloss的閾值時,本文可以提高音視頻流媒體的采樣率和編碼率,即增大RTP報文的發(fā)送速率。
但是,在上述算法中常量aI和bD是算法的關(guān)鍵,如果這兩個值設(shè)置過大,容易導(dǎo)致RTP流抖動,如果設(shè)置過小,不能提高網(wǎng)絡(luò)的利用率,這樣容易導(dǎo)致音視頻質(zhì)量和流暢性。由于aI和bD值是固定的常量,不易于隨網(wǎng)絡(luò)背景的變化而及時修正該值,所以隨在一定程度上自適應(yīng)網(wǎng)絡(luò),但始終還有一定的缺陷。
2.2 自適應(yīng)流量控制優(yōu)化
本文提出自適應(yīng)流量控制算法的是對加增長乘減少的流量控制算法的優(yōu)化,該算法的簡化圖,如圖1。
圖1 加增長乘減少的流量控制算法簡化圖
該算法的具體操作如式(6)所示。
其中,R是綜合預(yù)測量,該參數(shù)不但反映了長期的網(wǎng)絡(luò)背景,也包含當(dāng)前網(wǎng)絡(luò)環(huán)境的狀態(tài)。可根據(jù)式(4)求導(dǎo)出R的值。C是一個閾值常數(shù),表示對R值的最大容忍程度。根據(jù)經(jīng)驗,本文取C∈[0.1,0.2]范圍內(nèi)的值。而v(0)表示RTP流初始的發(fā)送速率;e則是自然常數(shù),主要是對算法的修正,以一種平穩(wěn)的方式增加和減少發(fā)送速率。利用式(4)代入式(6),本文得出式(7):
當(dāng)然,由于實際的網(wǎng)絡(luò)環(huán)境,本文在傳輸RTP數(shù)據(jù)流時,會受到網(wǎng)絡(luò)寬帶的限制,所以設(shè)vmax為網(wǎng)絡(luò)允許的最大發(fā)送速率,vmax為用戶所能承受的最小發(fā)送速率。當(dāng)vmax≤v(t)≤vmin時,按實際運行做調(diào)整,如圖2所示。
圖2 自適應(yīng)流量控制流程
從圖2中,可以看出如下過程。
(1)當(dāng)RTP數(shù)據(jù)流第一次進行網(wǎng)絡(luò)傳輸,發(fā)送速率初始為v(0)。
(2)當(dāng)會話還沒有終止,發(fā)送端獲取接收端發(fā)出的RTCP報文,就以現(xiàn)在的發(fā)送速率繼續(xù)發(fā)送報文。而如果發(fā)送端收到接收端反饋的RTCP報文,計算出L和J值,從而推導(dǎo)出R(t)值,該值是有公式(4)計算得出,當(dāng)R(t)≤C時,則:
(3)發(fā)送端以最新的v(t+1)速率進行發(fā)送RTP流。
(4)直至?xí)捊Y(jié)束。
2.3 緩沖區(qū)控制優(yōu)化
緩沖區(qū)控制優(yōu)化是將流媒體數(shù)據(jù)的發(fā)送速率不變的情況下,保證緩沖區(qū)內(nèi)的幀數(shù)據(jù)的實時性,丟棄早已超時的數(shù)據(jù)幀,只發(fā)送未超時的數(shù)據(jù)幀,從而保證了移動流媒體的服務(wù)質(zhì)量。
該算法的描述如下:遍歷整個緩沖區(qū),如果當(dāng)幀的等待時延大于等待時延的最大閾值,同時該幀為非I幀,則丟棄該幀,如果是I幀,則再判斷以I幀為參考幀的最后一個后續(xù)幀的是否等待時延也大于等待時延的最大閾值,如果是,則丟棄該幀。
該算法的偽代碼表示如下:
其中,N表示該環(huán)形緩沖區(qū)的長度,TimeStamp[i]表示緩沖區(qū)從頭指針開始的第i位的緩沖區(qū)流數(shù)據(jù)的時間戳,CurrentTimeStamp表示當(dāng)前系統(tǒng)時間戳,TimeDelay[i]表示系統(tǒng)時間戳與TimeStamp[i]的時延差值,TimeDelaytIIreshold表示在緩沖區(qū)內(nèi)可接受的等待時延最大閾值,F(xiàn)ramelype[i]表示當(dāng)前數(shù)據(jù)幀的類型,例如有I幀、P幀和B幀,CodingCycle表示一個H.264的一個編碼周期的幀數(shù)。
為了驗證本文提出的改進算法的有效性,對其進行算法仿真測試。實驗環(huán)境是在局域網(wǎng)內(nèi)做測試的,網(wǎng)絡(luò)拓?fù)湟妶D3。
圖3 算法仿真測試的網(wǎng)絡(luò)拓?fù)鋱D
從圖3可以看出,本文是有4臺iPhone終端,其中以一臺發(fā)RTP流和一臺收RTP流為一測試組,一共有兩組,分別定義為流a和流b。另外,有一臺服務(wù)器作為數(shù)據(jù)轉(zhuǎn)發(fā),若干臺PC的作用是共同占用網(wǎng)絡(luò)信道,發(fā)送大量數(shù)據(jù)模擬網(wǎng)絡(luò)擁塞,而發(fā)送少量數(shù)據(jù)模擬網(wǎng)絡(luò)空間,從而觀察流a和流b的丟包率和網(wǎng)路抖動的情況。
本實驗的參數(shù)為:測試的終端設(shè)備為4臺iPhone和6臺PC,初始報文大小為1024bit,最大丟包率的閾值Lmax為0.04,最大間隔抖動的閾值Jmax為5000,R值的最大容忍度的閾值C為0.2,RTCP報文發(fā)送間隔為5s,每次模擬時間1000s。
3.1 算法平穩(wěn)性測試
為驗證本文算法的平穩(wěn)性,我們用加增長乘減少流量控制算法和本文算法分別傳輸流a的實驗,如圖4。
圖4 RTP報文發(fā)送速率比較
從圖4中,可以看出加增長乘減少流量控制算法的RTP數(shù)據(jù)包發(fā)送速率變化比較大,這樣容易造成RTP流抖動。而本文算法的發(fā)送速率比較平穩(wěn),RTP流不易出現(xiàn)抖動情況。
3.2 算法利用率測試
為比較兩種算法的數(shù)據(jù)總量,分別用加增長乘減少流量控制算法和本文算法傳輸流和流得出數(shù)據(jù),我們可見表1。
表1 收到的RTP數(shù)據(jù)總量統(tǒng)計(單位:B)
從表1可以看出,采用兩種算法分別傳輸流和流,本文算法在1000s內(nèi)傳輸?shù)腞TP數(shù)據(jù)總量都比加增長乘減少流量控制算法來地大,從而大大提高了的網(wǎng)絡(luò)利用率。
3.3 算法丟包率測試
本文為比較兩種算法丟包情況,分別用加增長乘減少流量控制算法和本文算法傳輸流a和流b得出丟包實驗結(jié)果,見表2。
表2 平均RTP報文丟包率比較結(jié)果
從表2中,可以看出本文算法的數(shù)據(jù)丟包率比加增長乘減少流量控制算法還要低,主要是采用緩沖區(qū)控制刪除了非實時數(shù)據(jù),降低了實時可用數(shù)據(jù)的丟包率。
3.4 算法公平性測試
為觀察本文算法的公平性,我們先用本文算法傳輸流,等到100s后再用本文算法傳輸流,然后等到700s再讓流退出網(wǎng)絡(luò),觀察實驗結(jié)果,見圖5。
圖5 RTP流發(fā)送速率的變化
從圖5可以看出本文算法具有一定的公平性。首先讓流a進入網(wǎng)絡(luò),可見該算法充分利用了網(wǎng)絡(luò)資源,到達了最高點。然后再讓流b后進入網(wǎng)絡(luò)時,由于流b和流a共享了局域網(wǎng)的信道,流a發(fā)送速率逐漸減小,流b逐漸增加,到2000b/s時,趨于平穩(wěn)了,擁有相近的發(fā)送速率,最后當(dāng)流b退出網(wǎng)絡(luò)后,流a有恢復(fù)了原有的發(fā)送速率保證較高的網(wǎng)絡(luò)利用率。
流媒體傳輸技術(shù)所要解決的主要問題是如何在復(fù)雜的無線網(wǎng)絡(luò)環(huán)境中保證網(wǎng)絡(luò)帶寬的利用率和用戶的觀看體驗。流媒體傳輸控制技術(shù)能根據(jù)網(wǎng)絡(luò)資源的變化和客戶端情況動態(tài)地調(diào)整多媒體資源碼率,可以很好地解決上面所提到的問題。本文針對根據(jù)一般流媒體傳輸控制算法存在的缺陷和iOS平臺的特點,提出了一種自適應(yīng)緩沖的iOS流媒體傳輸控制算法,仿真實驗結(jié)果表明,本文的改進算法比一般算法有較低的丟包率和更好的網(wǎng)絡(luò)吞吐量。
[1]Saamer Akhshabi,Sethumadhavan Narayanaswamy,etc.An Experimental Evaluation of Rate-Adaptive Video Players Over HTTP[J]. Signal Processing:Image Communication,2012,4(27):271-287.
[2]Chenghao Liu,Imed Bouazizi,etc.Rate Adaptation for Dynamic Adaptive Streaming Over HTTP in Content Distribution Network[J].Signal Processing:Image Communication,2012,4(27):288-311.
[3]劉高明,咼海濤,朱輝,譚懷亮.嵌入式實時流媒體傳輸同步控制策略[J].計算機應(yīng)用研究,2014,31(6):1768-1770.
[4]左冬紅.面向TCP的流媒體傳輸編碼碼率自適應(yīng)算法[J].中國圖象圖形學(xué)報,2011,16(4):510-515.
[5]黃韜,張麗,張云勇,劉韻潔.基于OpenFlow的SVC流媒體時延自適應(yīng)分級傳輸方法[J].通信學(xué)報,2011,34(11):121-128.
[6]趙偉,王美妮,王嘉,姜英.基于iPhone流媒體RTP傳輸?shù)难芯颗c分析[J].中國測試,2012,38(3):80-82.
[7]汪學(xué)舜,余少華,戴錦友,羅婷.基于累積時延的流媒體傳輸模糊擁塞控制[J].計算機科學(xué),2010,37(7):57-61.
[8]林銳,劉峰.一種基于HTTP長連接的自適應(yīng)流媒體傳輸系統(tǒng)[J].電視技術(shù),2012,36(7):85-88.
[9]黃誼拉,柯余洋,熊焰.基于實時流媒體傳輸框架的用戶接入算法研究[J].小型微型計算機系統(tǒng),2015,36(6):1230-1234.
Adaptive Buffered iOS Streaming Media Transmission Control Algorithm
YIN Fan,NIU Li,CHEN Dian-dian,CHEN Qing-yun
(Department of Computer Engineering,Suzhou Vocational University,Suzhou 215104)
Proposes an adaptive buffer iOS streaming media transmission control algorithm according to the characteristics of the platform and the defects of the general algorithm,which is based on the general streaming media transmission control algorithm in the application of iOS platform.Firstly,according to the current network state,constructs the prediction model of streaming media data transmission.Then, based on the flow control algorithm with the increase and decrease multiplication,the model is combined with the forecasting model, which is not easy to be corrected with the network state change adaptive buffer optimization.The simulation results show that the improved algorithm has lower packet loss rate and better network throughput than the general algorithm.
iOS Platform;Streaming Media Transmission;Flow Control;Adaptive Buffer;Traffic Prediction
1007-1423(2017)10-0003-05
10.3969/j.issn.1007-1423.2017.10.001
殷凡(1980-),女,碩士,講師,研究方向為人工智能、計算機支持的協(xié)同工作、移動互聯(lián)通信
牛麗(1980-),女,碩士,副教授,研究方向:數(shù)據(jù)庫技術(shù)、智能終端移動開發(fā)
陳甸甸(1996-),男,大專,研究方向為智能終端移動開發(fā)
陳青云(1996-),男,大專,研究方向為智能終端移動開發(fā)
2017-03-14
2017-04-01
江蘇省大學(xué)生實踐創(chuàng)新項目(No.201511054008Y)、蘇州市教育科學(xué)“十三五”規(guī)劃課題(No.16000Z089)、江蘇開放大學(xué)“十二五”規(guī)劃2015年度課題(No.15SEW-Q-056)