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