殷凡,牛麗,陳甸甸,陳青云
(蘇州市職業大學計算機工程學院,蘇州 215104)
自適應緩沖的iOS流媒體傳輸控制算法
殷凡,牛麗,陳甸甸,陳青云
(蘇州市職業大學計算機工程學院,蘇州 215104)
針對一般的流媒體傳輸控制算法在iOS平臺的應用中表現出一定的不兼容性,根據其平臺特征和一般算法的缺陷,提出一種自適應緩沖的iOS流媒體傳輸控制算法。首先根據當前網絡狀態構建流媒體數據傳輸預測模型,然后在加增長乘減少的流量控制算法的基礎上,針對其不易于隨網絡狀態的變化而及時修正的缺陷,結合構建的預測模型對其進行自適應緩沖優化。通過算法仿真測試表明,該改進算法比一般算法有較低的丟包率和更好的網絡吞吐量。
iOS平臺;流媒體傳輸;流量控制;自適應緩沖;流量預測
流媒體是指在網絡中使用流式傳輸技術的連續時基媒體,以其高可靠性、可擴展性和靈活性等優勢成為移動多媒體領域所研究的關鍵技術[1]。近幾年,基于iOS操作系統的移動終端市場占有率成倍增長,而在iOS操作平臺上,蘋果公司實現了自己的流媒體傳輸協議,但是對其他的協議或標準并不兼容[2]。
目前,國內外關于流媒體傳輸的相關研究已經有很多。劉高明等人[3]針對流媒體實時傳輸所存在的實際問題,提出了一種嵌入式流媒體同步傳輸實時控制策略,該策略包含流量自適應糾正控制算法和延時自適應補償算法。左冬紅[4]根據流媒體發送應用層緩沖區讀寫指針差值調整流媒體發送端的編碼碼率適應網絡帶寬的變化,提出一種面向TCP流媒體傳輸的編碼碼率自適應算法。黃韜等人[5]針對流媒體傳輸控制的延時問題,提出一種基于OpenFlow的自適應SVC流媒體分級傳輸策略。趙偉等人[6]針對iOS平臺的流媒體傳輸問題,提出了一種基于RTP/RTCP/RTSP協議標準的流媒體實時模型。
本文針對根據一般流媒體傳輸控制算法存在的缺陷和iOS平臺的特點,提出了一種自適應緩沖的iOS流媒體傳輸控制算法,對其進行了算法仿真測試,驗證該改進方法的有效性。
RTP/RTCP協議傳輸流媒體數據,其傳輸層協議一般為UDP協議。RTP協議為發送端提供數據傳輸服務,向接收端傳輸流媒體數據;RTCP協議為發送端傳輸實時控制數據,以監測數據傳送過程中的QoS。一般而言,RTCP數據的發送時間間隔最小為5s。
由RFCl889可以得到,前i個RTP傳輸時間范圍內發送端的報文丟失率L可以作為長時間測量網絡擁塞的計算手段,其計算公式如式(1)所示;而發送端的間隔抖動字段可以作為短時間測量網絡擁塞的計算手段,從RTCP報文中直接獲取即可,J=jitter。

式(1)中,cul_losti為從會話開始到第i個傳輸時間范圍內共計丟失的RTP數據包的和;而CL(n,i)為從i 到n傳輸時間范圍內所共計丟失的RTP數據包的和;

式(2)中,hnrn為從會話開始到第i個傳輸時間范圍內所收到的最大的RTP數據包序列號;而且HNR (n,i)表示為會話從i到n傳輸間隔內所累計丟失的RTP數據包總數。

報文的丟包表明該網絡存在擁塞狀況,而間隔抖動則代表短暫的擁塞狀況,J代表報文丟失前預測網絡發生擁塞狀況的可能性。所以,當發送端獲取接收端發送過來的RTCP報文時,便可以依靠報文中的間隔抖動值J與前i個RTP傳輸時間范圍內發送端的報文丟失率L(n,i)修正RTP流的發送速率,其綜合預測量可以由式(4)表示。

式(4)中,Lmax為流媒體數據實時傳輸過程中的最大丟包率;Jmax為流媒體數據實時傳輸過程中的最大間隔抖動;w和v分別為RTP報文的丟包率和間隔抖動在整個流媒體數據實時傳輸預測過程中的權重,并且有w+v=1,其取值可以依據網絡情況來人為指定。如果網絡環境相對穩定,可適當增加L的預測權重,因為相對穩定的網絡環境,報文傳輸的抖動性相對較小,所以取w〉v;而在復雜多變的網絡環境中,我們要增加J的預測權重,因為復雜的網絡環境,報文傳輸的抖動性相對較大,因此取w〈v。
綜上所述,R的取值不但可以代表長時間內的網絡狀況,也可以代表當前的網絡狀態,所以可以通過R的取值預測RTP報文的發送速率,這樣就可以降低RTP報文的丟包率,同時又減小流的抖動性。
2.1 加增長乘減少的流量控制算法
加增長乘減少的流量控制算法一般表示為:

其中,aI表示加增長常量,aI≥0;bD表示乘減少因子,0≤bD〈1;rloss表示RTP報文的丟包率,表示RTP報文的丟包率最大閾值,反映的是用戶對RTP、丟包率的最大容忍程度;v(t+1)表示為t+1時RTP數據流發送的速率。于是本文可以從式(5)看出,當丟包率大于THloss,則應當減小音視頻流媒體的采樣率和編碼率,即RTP報文的發送速率;當丟包率小于還未達到THloss的閾值時,本文可以提高音視頻流媒體的采樣率和編碼率,即增大RTP報文的發送速率。
但是,在上述算法中常量aI和bD是算法的關鍵,如果這兩個值設置過大,容易導致RTP流抖動,如果設置過小,不能提高網絡的利用率,這樣容易導致音視頻質量和流暢性。由于aI和bD值是固定的常量,不易于隨網絡背景的變化而及時修正該值,所以隨在一定程度上自適應網絡,但始終還有一定的缺陷。
2.2 自適應流量控制優化
本文提出自適應流量控制算法的是對加增長乘減少的流量控制算法的優化,該算法的簡化圖,如圖1。

圖1 加增長乘減少的流量控制算法簡化圖
該算法的具體操作如式(6)所示。

其中,R是綜合預測量,該參數不但反映了長期的網絡背景,也包含當前網絡環境的狀態。可根據式(4)求導出R的值。C是一個閾值常數,表示對R值的最大容忍程度。根據經驗,本文取C∈[0.1,0.2]范圍內的值。而v(0)表示RTP流初始的發送速率;e則是自然常數,主要是對算法的修正,以一種平穩的方式增加和減少發送速率。利用式(4)代入式(6),本文得出式(7):


當然,由于實際的網絡環境,本文在傳輸RTP數據流時,會受到網絡寬帶的限制,所以設vmax為網絡允許的最大發送速率,vmax為用戶所能承受的最小發送速率。當vmax≤v(t)≤vmin時,按實際運行做調整,如圖2所示。

圖2 自適應流量控制流程
從圖2中,可以看出如下過程。
(1)當RTP數據流第一次進行網絡傳輸,發送速率初始為v(0)。
(2)當會話還沒有終止,發送端獲取接收端發出的RTCP報文,就以現在的發送速率繼續發送報文。而如果發送端收到接收端反饋的RTCP報文,計算出L和J值,從而推導出R(t)值,該值是有公式(4)計算得出,當R(t)≤C時,則:

(3)發送端以最新的v(t+1)速率進行發送RTP流。
(4)直至會話結束。
2.3 緩沖區控制優化
緩沖區控制優化是將流媒體數據的發送速率不變的情況下,保證緩沖區內的幀數據的實時性,丟棄早已超時的數據幀,只發送未超時的數據幀,從而保證了移動流媒體的服務質量。
該算法的描述如下:遍歷整個緩沖區,如果當幀的等待時延大于等待時延的最大閾值,同時該幀為非I幀,則丟棄該幀,如果是I幀,則再判斷以I幀為參考幀的最后一個后續幀的是否等待時延也大于等待時延的最大閾值,如果是,則丟棄該幀。
該算法的偽代碼表示如下:

其中,N表示該環形緩沖區的長度,TimeStamp[i]表示緩沖區從頭指針開始的第i位的緩沖區流數據的時間戳,CurrentTimeStamp表示當前系統時間戳,TimeDelay[i]表示系統時間戳與TimeStamp[i]的時延差值,TimeDelaytIIreshold表示在緩沖區內可接受的等待時延最大閾值,Framelype[i]表示當前數據幀的類型,例如有I幀、P幀和B幀,CodingCycle表示一個H.264的一個編碼周期的幀數。
為了驗證本文提出的改進算法的有效性,對其進行算法仿真測試。實驗環境是在局域網內做測試的,網絡拓撲見圖3。

圖3 算法仿真測試的網絡拓撲圖
從圖3可以看出,本文是有4臺iPhone終端,其中以一臺發RTP流和一臺收RTP流為一測試組,一共有兩組,分別定義為流a和流b。另外,有一臺服務器作為數據轉發,若干臺PC的作用是共同占用網絡信道,發送大量數據模擬網絡擁塞,而發送少量數據模擬網絡空間,從而觀察流a和流b的丟包率和網路抖動的情況。
本實驗的參數為:測試的終端設備為4臺iPhone和6臺PC,初始報文大小為1024bit,最大丟包率的閾值Lmax為0.04,最大間隔抖動的閾值Jmax為5000,R值的最大容忍度的閾值C為0.2,RTCP報文發送間隔為5s,每次模擬時間1000s。
3.1 算法平穩性測試
為驗證本文算法的平穩性,我們用加增長乘減少流量控制算法和本文算法分別傳輸流a的實驗,如圖4。

圖4 RTP報文發送速率比較
從圖4中,可以看出加增長乘減少流量控制算法的RTP數據包發送速率變化比較大,這樣容易造成RTP流抖動。而本文算法的發送速率比較平穩,RTP流不易出現抖動情況。
3.2 算法利用率測試
為比較兩種算法的數據總量,分別用加增長乘減少流量控制算法和本文算法傳輸流和流得出數據,我們可見表1。

表1 收到的RTP數據總量統計(單位:B)
從表1可以看出,采用兩種算法分別傳輸流和流,本文算法在1000s內傳輸的RTP數據總量都比加增長乘減少流量控制算法來地大,從而大大提高了的網絡利用率。
3.3 算法丟包率測試
本文為比較兩種算法丟包情況,分別用加增長乘減少流量控制算法和本文算法傳輸流a和流b得出丟包實驗結果,見表2。

表2 平均RTP報文丟包率比較結果
從表2中,可以看出本文算法的數據丟包率比加增長乘減少流量控制算法還要低,主要是采用緩沖區控制刪除了非實時數據,降低了實時可用數據的丟包率。
3.4 算法公平性測試
為觀察本文算法的公平性,我們先用本文算法傳輸流,等到100s后再用本文算法傳輸流,然后等到700s再讓流退出網絡,觀察實驗結果,見圖5。

圖5 RTP流發送速率的變化
從圖5可以看出本文算法具有一定的公平性。首先讓流a進入網絡,可見該算法充分利用了網絡資源,到達了最高點。然后再讓流b后進入網絡時,由于流b和流a共享了局域網的信道,流a發送速率逐漸減小,流b逐漸增加,到2000b/s時,趨于平穩了,擁有相近的發送速率,最后當流b退出網絡后,流a有恢復了原有的發送速率保證較高的網絡利用率。
流媒體傳輸技術所要解決的主要問題是如何在復雜的無線網絡環境中保證網絡帶寬的利用率和用戶的觀看體驗。流媒體傳輸控制技術能根據網絡資源的變化和客戶端情況動態地調整多媒體資源碼率,可以很好地解決上面所提到的問題。本文針對根據一般流媒體傳輸控制算法存在的缺陷和iOS平臺的特點,提出了一種自適應緩沖的iOS流媒體傳輸控制算法,仿真實驗結果表明,本文的改進算法比一般算法有較低的丟包率和更好的網絡吞吐量。
[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].計算機應用研究,2014,31(6):1768-1770.
[4]左冬紅.面向TCP的流媒體傳輸編碼碼率自適應算法[J].中國圖象圖形學報,2011,16(4):510-515.
[5]黃韜,張麗,張云勇,劉韻潔.基于OpenFlow的SVC流媒體時延自適應分級傳輸方法[J].通信學報,2011,34(11):121-128.
[6]趙偉,王美妮,王嘉,姜英.基于iPhone流媒體RTP傳輸的研究與分析[J].中國測試,2012,38(3):80-82.
[7]汪學舜,余少華,戴錦友,羅婷.基于累積時延的流媒體傳輸模糊擁塞控制[J].計算機科學,2010,37(7):57-61.
[8]林銳,劉峰.一種基于HTTP長連接的自適應流媒體傳輸系統[J].電視技術,2012,36(7):85-88.
[9]黃誼拉,柯余洋,熊焰.基于實時流媒體傳輸框架的用戶接入算法研究[J].小型微型計算機系統,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-),女,碩士,講師,研究方向為人工智能、計算機支持的協同工作、移動互聯通信
牛麗(1980-),女,碩士,副教授,研究方向:數據庫技術、智能終端移動開發
陳甸甸(1996-),男,大專,研究方向為智能終端移動開發
陳青云(1996-),男,大專,研究方向為智能終端移動開發
2017-03-14
2017-04-01
江蘇省大學生實踐創新項目(No.201511054008Y)、蘇州市教育科學“十三五”規劃課題(No.16000Z089)、江蘇開放大學“十二五”規劃2015年度課題(No.15SEW-Q-056)