馮靈霞 張亞娟


摘 要:隨著智能手機信息處理能力的增強和移動互聯網傳輸速率的大幅提升,使用手機通過移動網絡進行視頻傳輸越來越普及。Android操作系統雄踞智能手機終端操作系統榜首。由于無線信道環境惡劣,利用無線網絡傳輸高質量視頻極富挑戰。選擇使用H.264作為視頻壓縮標準,基于現有AMID算法,提出一種將丟包率和接收緩沖區使用情況相結合的改進AMID擁塞控制算法。實驗表明:在網絡狀況良好情況下,雖沒有明顯改善接收端丟包率,但發送端發送數據包個數明顯增加;在網絡狀況較差時,對改善丟包率作用明顯,說明該系統對保障視頻傳輸QoS有一定作用。
關鍵詞:視頻傳輸;RTCP;擁塞控制;AMID算法;Android
DOI:10.11907/rjdk.172670
中圖分類號:TP319
文獻標識碼:A 文章編號:1672-7800(2018)004-0148-03
Abstract:With the enhancement of the information processing ability of smart phones and the promotion of the mobile Internet transmission rate, it has become more and more popular to use mobile phones to transmit video via mobile network. In the smartphone platform, Android operating system in the intelligent terminal operating system list on the top. Because the wireless channel environment is abominable, to achieve high quality video transmission over wireless networks is a challenging task. Therefore, the system chooses to use H.264 as the video compression standard by comparison. At the same time, on the basis of H.264, an improved AMID congestion control algorithm combining the packet loss rate and the received buffer usage is proposed based on the existing AMID algorithm. The experiment shows that, When the network is in good condition, although the packet loss rate of the receiver is not obviously improved, the number of packets sent at the transmitter has increased significantly. When the network is poor, it has obvious effect on improving the packet loss rate. So the system has some significance to ensure video transmission QoS.
Key Words:video transmission; RTCP; congestion control; AMID algorithm; Android
0 引言
智能手機既具有手機功能,又具有掌上電腦的信息處理功能,深受人們喜愛。智能手機通過無線方式切入網絡,幫助人們從網絡中獲取信息。Android因其開源性代碼和良好的應用占據了智能手機操作系統的大半壁江山。智能手機可通過無線網絡傳輸信息給遠程處理終端。諸多信息中,多媒體視頻信息量巨大,將智能手機和傳統的視頻實時通信需求相結合具有廣闊的應用前景。視頻實時通信涉及到視頻采集、編碼、傳輸、解碼和顯示等多項技術,本文通過合理選擇視頻編碼標準、精心設計網絡傳輸模塊以及改進常用的擁塞控制算法,以保證基于Android平臺的無線視頻傳輸QoS(Quality of Service,服務質量)。
1 無線視頻傳輸系統分析
基于Android手機的無線視頻傳輸系統實現端到端的無線視頻傳輸,包含視頻采集和視頻播放兩大部分[1]。系統結構如圖1所示。
視頻信息由基于Android的智能手機實時采集并編碼,通過無線通信網絡發送出去,而手機播放終端則要完成視頻的接收、解碼和播放等工作。
2 視頻編碼標準選擇
2.1 視頻編碼標準
視頻壓縮編碼標準由國際標準化組織(International Organization for Standardization,ISO)和國際電信聯盟(International Telecommunications Union,ITU)制定,ISO主要標準有MPEG-1、MPEG-2、MPEG-4、MPEG-7和MPEG-21,ITU標準有H.261、H.263和H.264[2]。MPEG標準主要應用于廣播電視、視頻存儲、互聯網或無線互聯網流媒體等,而ITU制定的標準主要用于網絡傳輸,尤其是實時的視頻通信領域。另外,ITU-T視頻專家組和ISO動態圖像專家組組成的聯合視頻組(JVT)共同制定了新一代的視頻編碼標準H.264[3]。
當前互聯網最常用的視頻編碼技術是MPEG-4和H.264。
2.2 常用視頻編碼標準優劣比較
MPEG-4于1998年11月公布,其設計初衷是針對視頻會議、可視電話的超低比特率編碼,經調整后更加側重于多媒體系統的交互性和靈活性[4]。MPEG-4主要應用于視頻電話、視頻電子郵件和電子新聞等,對傳輸速率要求較低,可以利用很窄的帶寬傳輸數據,從而以最少數據獲得最佳圖像質量。
H.264是繼MPEG-4之后的新一代數字視頻壓縮標準,它既保留了以往壓縮技術的精華,又具有其它壓縮技術無法比擬的優點。
在同等圖像質量的條件下,H.264的壓縮比是MPEG-4的1.5~2倍,采用H.264技術壓縮后的數據量只有MPEG-4的1/3[5],大大節省了用戶的下載時間和數據流量收費。同時,H.264技術采用視頻編碼層(VCL)和網絡提取層(NAL)的分層設計,不僅使信號處理和網絡傳輸分離,而且在不同的網絡環境下,網關不需對VCL比特流進行重構和重編碼。
綜上所述,無線視頻傳輸適合采用H.264視頻編碼標準。
3 網絡傳輸模塊設計
基于手機的無線視頻傳輸系統,由于無線通信帶寬穩定性不強,因而時快時慢現象時有發生。而實時傳輸系統采用的RTP通信協議并不提供任何保證傳輸質量的措施[6],所以需要在應用程序中增加保障視頻傳輸QOS的相關策略。
3.1 擁塞控制策略
當視頻信息通信量激增時,常常會發生網絡擁塞現象,從而造成視頻數據包的傳輸延遲和大量丟失,影響視頻傳輸的QOS。
常見的擁塞控制機制有速率控制和速率整形兩種[7]。前者是指將視頻的發送速率和網絡當前的傳輸帶寬匹配,后者是指對編碼后的視頻流進行修正以匹配當前的網絡帶寬。由于速率控制比速率整形更容易實現,所以常通過速率控制對RTP的傳輸過程進行擁塞控制。基于速率的擁塞控制策略根據應用環境分為基于發送端、基于接收端和混合方式3種。其中基于發送端的速率控制常通過調整發送端的傳輸速率以適應網絡帶寬的變化。本系統中,接收端(客戶端)的計算和處理能力遠比不上發送端(服務器端),所以采用基于發送端的速率控制。
3.2 AIMD算法
擁塞控制算法中行之有效的是AMID算法,即“加法增大”(Additive Increase)和“乘法減小”(Multiplicative Decrease)[8]。其實現思想是:根據實際應用要求設定丟包率的上限值和下限值,當丟包率處在上限值和下限值之間時,維持發送速率;當丟包率超過上限值時,快速降低發送速率(比如減半);當丟包率低于下限值時,緩慢增大發送速率(比如加上某個值)[9]。
AMID算法在實現時,關鍵是如何確定發送速率的變化參數,從而保證傳輸平穩。
3.3 AIMD算法改進
3.3.1 RTP丟包率計算
RTP協議包含RTP數據協議和RTCP控制協議兩部分[10]。RTCP一般采用和RTP相同的分發機制,周期性地向參與會話的所有成員發送控制信息,根據此控制信息計算出丟包率,計算公式如下:
式(1)中,Psend(t)表示發送端在時間段t內發送數據包的個數,Prec(t)表示接收端在時間段t內接收到的數據包個數, Plost(t)就是t時間段內的丟包率。
3.3.2 網絡狀況評估
設置丟包率上限值Plostmax和下限值Plostmin,若Plostmin≤Plost≤Plostmax,則網絡狀況正常,維持發送速率;若Plostmax
3.3.3 改進算法描述
由于智能手機的性能配置較PC機低,所以對視頻信息的解碼處理速度較慢,因此在擁塞控制算法中除了通過丟包率查看網絡狀況外,還要結合接收端的緩存狀況,在客戶端的接收緩沖區設置兩個臨界點C1(位于緩沖區1/4處)和C2(位于緩沖區3/4處),如圖2所示。
算法實現描述如下:
依據丟包率計算公式計算此刻的丟包率Plost(n),與設置的丟包率上限值Plostmax和下限值Plostmin進行比較,根據比較結果分別進行處理:
3.3.4 改進算法偽碼
算法的偽碼表示如下:
IF Plost(n) {IF Buff(n) {S(n)= Smax; } ELSE IF Buff(n)<(C2-C1)/2 //緩沖區較空 {S(n)=min{Smax,(S(n-1)+α)}; } ELSE IF C2>Buff(n)>(C2-C1)/2 //緩沖區較滿 {S(n)=min{Smax,(S(n-1)+α/2)}; } ELSE //緩沖區很滿 {S(n)=S(n-1); } } ELSE IF Plostmin≤Plost(n) ≤Plostmax//網絡狀況正常 {S(n)=S(n-1) } ELSE //網絡擁塞 {IF Buff(n) {S(n)=max{Smin,(S(n-1)× β)}; } ELSE
{S(n)=max{Smin,(S(n-1)× β2)};
}
}
3.3.5 改進算法結果分析
為驗證改進的擁塞控制算法對丟包率的影響,進行以下測試:
實驗平臺包括1個發送端和5個接收端,設定每隔5s發送一次RTPC報文,選取其中的兩個接收端進行重點觀察。設定丟包率的上限值和下限值分別為5%和3%。為驗證擁塞控制算法,設定接收端A所處的網絡帶寬處于平均水平之上,接收端B所處的網絡帶寬處于平均水平之下。統計兩個接收端分別采用傳統的AIMD算法和改進后的AIMD算法下的丟包率,如表1所示,表中統計時間段為200s。
從表1可以看出:
(1)由于接收端A所處的網絡環境明顯高于接收端B,所以不管采用何種算法,發往A的數據量和A接收到的數據量都明顯高于B。
(2)對于接收端A,由于其所處網絡環境較好,所以根據改進的AIMD算法,會導致對A發送的數據量稍微偏大,造成丟包率有所上升,但總的接收數據量有所提高。
(3)接收端B所處網絡環境較差,根據改進的AIMD算法,會以較快速度降低發送速率,造成發給B的數據包個數減少,但丟包率卻明顯提高,說明視頻播放質量得到提升。
4 結語
本文以提高視頻傳輸質量為研究目的,通過精心選擇合適的編碼標準和對傳輸過程中的擁塞控制,在現有AIMD算法基礎上,提出了一種將丟包率和接收端緩沖區使用情況相結合的改進的AIMD擁塞控制算法。對該算法進行實驗驗證,結果表明:在網絡狀態良好的情況下,雖沒有改善接收端的丟包率狀況,但發送數據包的個數卻有所增加;在網絡狀態較差的情況下,接收端的丟包率有較好的改善,表明該措施在保障視頻傳輸QoS時有一定作用。
參考文獻:
[1] 楊光平.基于Android的移動流媒體實時傳輸系統設計與實現[D].西安:西安電子科技大學,2012.
[2] 畢厚杰,王健.新一代視頻壓縮編碼標準:H.264/AVC[M].北京:人民郵電出版社,2009:132-135.
[3] 唐玲娜.H.264視頻解碼優化及DSP實現[D].成都:電子科技大學,2009.
[4] 張琛琛.基于手機視頻監控應用的QOS技術研究與優化設計[D].廣州:華南理工大學,2012.
[5] 李校林,劉海波,張杰,等.RTP/RTCP,RTSP在無線視頻監控系統的設計與實現[J].電視技術,2011,35(19):89-92.
[6] 李軍.異構無線網絡融合理論與技術實現[M].北京:電子工業出版社,2009.
[7] KUNARAK S, SULEESATHIRA R. Predictive RSS with Fuzzy Logic based Vertical Handoff Algorithm in Heterogeneous Wireless Networks[J].IEEE Communications and Information Technologies(ISCIT),2010(1):1235-1240.
[8] 朱輝.改進的異構無線網絡垂直切換算法[J].西安郵電學院學報,2012,17(1):38-41.
[9] 劉浩,胡棟.基于RTP/RTCP協議的IP視頻系統設計與實現[J].計算機應用研究,2012,19(10):140-143.
[10] 李潘潘.基于Android系統的SIP無線視頻通信技術研究[D].西安:長安大學.2011.
(責任編輯:杜能鋼)