馬思超,劉 新,葉德建
(復旦大學軟件學院寬帶網絡與互動多媒體實驗室,上海 20120 3)
IPTV播放器內嵌QoE探針的設計與實現
馬思超,劉 新,葉德建
(復旦大學軟件學院寬帶網絡與互動多媒體實驗室,上海 20120 3)
為使網絡電視(IPTV)業務中的QoE指標更準確地反映用戶的真實體驗,同時考慮到不同終端的異構性,提出一種在流媒體播放器下內嵌探針系統的設計架構,包括在播放器內部進行實時數據監測和相關指標計算的實現方案。該系統可以通過插件庫的方式被多款終端平臺集成與移植,使用事件驅動模型消除播放器實時觸發QoE計算任務帶來的解碼延時和性能降低。實驗結果表明,系統在突發延時和I幀丟包等時間點上統計得到的QoE指標相比傳統方式更接近人眼感受,CPU和內存提升5%左右,額外資源開銷有限,同時系統本身也具有較好的兼容性和擴展性。
網絡電視;播放器;體驗質量;探針;事件驅動;插件機制
對于網絡電視(Internet P rotocol Television, I PTV)視頻業務而言,通過監測網絡狀況所體現的服務質量(Quality of Service, QoS)指標并不一定能夠反映用戶的真實體驗。比如,短暫的時延可能會被播放器內部的緩存機制所抵消,用戶察覺不到時延造成的卡頓;周期性的I幀丟包可能并沒有高丟包率,但是解碼器對于關鍵幀的缺失卻使得整個畫面組(Group of Pictures, GOP)無法正常顯示等。正因如此,體驗質量(Quality of Ex perience, QoE)作為一種從用戶體驗角度評定服務質量的概念得到了更多的關注和重視,國際電信聯盟ITU將其定義為終端用戶對于當前業務的主觀接受程度,除了包含端到端的網絡QoS以外,QoE還會對圖像質量進行客觀評價。為了使得最終結果更加逼近用戶的觀看效果, QoE指標的精確計算往往需要依賴于作為業務終端載體的播放器系統[1-2]。然而,不同廠商播放器的異構性和獨立性給這一目標帶來了很大的困難,另一方面,對于播放器內部邏輯的修改也會一定程度地影響其性能和穩定性。
針對這些問題,本文提出一種以插件方式集成的流媒體播放器內嵌QoE探針系統的設計。該系統通過對視頻流的實時監測、捕獲和特征分析進行QoE評測,數據反饋方面采用可擴展的插件接口適配不同的廠商平臺,并建立異步事件驅動模型來對QoE統計事件進行緩存處理,以最大限度減小QoE分析計算對播放系統帶來的影響。
從用戶體驗的角度來看,IPTV的QoE評價標準主要關注2個方面,即請求應答時間和視頻質量評定。
請求應答時間(Request Response Time, RRT)是IPTV運營商質量監測規范[3]中的基本指標,通常意義上是指從請求報文發送到收到第一個應答包的時間間隔,但是這種評定方式對于視頻業務來說是不準確的。最為精確的計算方式應為I-Frame Join Latency,即I幀加入時延。因為只有當最終用戶進行視頻請求操作到播放器能夠解碼還原完整圖像的時候才能真正表示業務響應的成功。
視頻質量評定目前有3種主流指標:媒體傳輸指標(Media Deliver Index, MDI),平均意見評分(Mean Opinion Score for Video, MOS_V)和全參考評估(Perceptual Evaluation of Video Quality, PEVQ)。其中,MDI作為正式的RFC[4]標準而被評測機構、運營商和設備制造商普遍認可,本文所述QoE探針系統的實現最終采用了該指標進行視頻質量方面的評定。
MDI由2個部分組成:延遲參數DF和媒體丟失率MLR。DF反映了視頻流的延時和抖動狀況,計算方法為在統計周期內記錄每個媒體包到達時的虛擬緩沖大小變化,再與視頻流的輸入速率進行對比得出。MLR則是指在一個統計周期里丟失的信息包計數,這里指的是媒體封包,比如MPEG TS包等。
傳統的MDI統計方法一般通過網絡抓包[5-6]方式實現,通過對IP包的解析計算各項指標。該方法存在許多不足,比如對DF的計算復雜度會隨著碼率變大而顯著提高,虛擬緩存大小的不確定性為機頂盒內存帶來了溢出隱患。此外,考慮到大多數視頻的碼率是可變的,固定碼率下算出的DF值顯得不是很準確。另一方面,由于具體的流媒體業務可能會對丟包進行差錯補償或者重傳,因此在網絡層進行統計的MLR值也并不可靠。
綜上所述,為了讓QoE指標最大可能地接近用戶體驗,需要將監測位置放到離用戶最近的地方,因此,來自播放系統的統計和反饋功能就顯得非常有必要。
3.1 設計目標
正如上文所述, QoE指標的計算準確性往往依賴于最靠近解碼單元的數據流狀態信息,本文所述QoE探針系統的設計目標就是在播放器宿主程序提供實時數據接口的基礎上,通過插件注冊式的調用,針對不同的流媒體業務質量監測需求,為IPTV終端提供QoE指標的被動監測和主動分析功能,系統需要具備以下特性:
(1)準確性。播放器內置探針保證反饋數據的實時性和準確性。
(2)兼容性。在符合插件接口協議的基礎上QoE探針系統可以兼容多款機頂盒播放器。
(3)健壯性。探針不能影響播放器的正常運行且具有高魯棒性。
(4)擴展性。QoE評測邏輯可通過插件庫被更新和替換。
3.2 整體架構
整個QoE系統采用C/S架構,如圖1所示,客戶端為內置探針系統的流媒體播放器,服務端為QoE質量檢測服務器。

圖1 Qo E系統結構
客戶端程序采用了基于插件機制[7-8]的方式進行設計,主要分為2大部分:
(1)播放器宿主程序,負責的工作包括以下:啟動/銷毀探針系統實例;提供數據接口指針和對應的定制配置文件;調用事件接口以觸發不同類型的QoE計算任務。
(2)探針系統插件,從物理形式上來看是動態庫,被播放器宿主程序加載調用,負責實現具體的QoE監測邏輯,并將反饋數據通過網絡套接字傳輸到服務端。
服務端的任務則包括對QoE探針系統的插件管理、接收QoE統計指標、數據格式化以及將最終文件錄入結果信息庫。
3.3 探針系統結構
探針系統作為整個QoE架構的核心,內部包含4個基本模塊,分別是RRT模塊、DF模塊、MLR模塊和公有庫模塊,各模塊的功能與作用如下:
(1)RRT模塊
通過響應播放器的業務請求事件觸發計算任務。首先確認請求類型(組播或者點播業務)并記錄開始時間戳,繼而循環等待數據流接收事件,當捕獲到事件后進行數據幀解析,確認收到第一個包含I幀的數據包則記錄結束時間戳,最后計算該次請求的最終RRT值,通過共享內存傳遞給網絡傳輸模塊。
(2)DF模塊
由于前文提到的虛擬緩沖變化頻率隨著碼率激增和內存限制帶來的性能瓶頸問題,本模塊采用真實解碼緩沖的定時變化反映實際發生的流量抖動,對應的媒體輸入速率也為實時動態碼率。具體實現為在統計周期內通過數據接口獲得每個采樣時間段內的實時緩沖區可用大小,在一個周期結束后,將最大值與最小值的差值作為緩沖變化的估計值,再與本周期末的輸入碼率相除以計算最終的DF值。由于實際應用中DF的測量周期一般為1 s左右,該范圍內碼率突變概率較小,近似地認為周期末的碼率接近于平均碼率,對于不同片源的多次重復實驗結果也驗證了該計算方式的誤差極小可被忽略。
(3)MLR模塊
實際IPTV業務本身可能會在網絡層使用差錯控制技術(如FEC前向糾錯算法就可以用來進行丟包恢復[9]),只有在數據最終流入終端應用層后進行統計的MLR指標才最可靠。此外,即使丟失同樣數量的媒體封包,實際損失的是I幀、B幀還是P幀對于最終解碼的影響也各不相同。為更好反饋視頻質量效果,對播放器網絡數據接收事件進行響應,在獲得數據緩沖副本后對其進行額外的幀解析,計算不同幀的加權丟包計數來反映最終的媒體信息丟失率。
(4)公有庫模塊
封裝了一些公共的庫函數,供其他模塊使用,比如網絡包格式解析、媒體容器解析、視頻幀解析等。本文主要采用ffmpeg開源庫[10]完成媒體解析相關工作。
3.4 接口協議
為了保證探針系統對于各類播放器的可移植性和可定制性,插件機制需要規定它們之間的接口協議。播放器只需要按照協議在適當的時機調用和提供指定接口,剩下的工作都會由具體的插件實現來完成。插件實現,即QoE探針則可以通過一次交叉編譯適配所有滿足接口協議的播放器平臺。
本系統最終定義的交互接口主要有3類:啟動/銷毀接口,數據接口和事件接口,詳細說明如表1所示。

表1 Qo E探針系統接口協議說明
數據接口對于統計采樣結果的數據結構表示如下:

另外,考慮到實際移植過程中不同播放器對于數據反饋的支持方式與程度不盡相同,數據接口本身必須可以被擴展和定制。因此,系統采用xml配置文件來映射數據接口的結構,其格式如下:

該文件對每個方法的名稱、函數指針索引、類型和參數內容都作出詳細描述,探針系統則通過解析各節點來生成最終的數據接口定義。
3.5 異步事件驅動模型
對于內嵌探針而言,有些QoE指標的計算任務需要播放器調用相關事件接口來觸發,這就需要建立一個完整的事件驅動模型[11],如圖2所示。Reactor類是監聽者,它利用操作系統提供的多路分離函數實現循環等待,當事件接口被調用時,它會生成對應事件對象Event并將其加入到異步派發類AsyncDispatcher的阻塞隊列中緩存。Dispatcher在初始化時通過register_handler()函數將Event_Handler對象注冊到事件驅動列表中,另一方面,它通過dispatch方法實行事件分配調度,以保證對于某一類型的事件,會調用適當Event_Handler類的響應函數handle_event()進行處理。這個模型的優點是將事件本身與處理函數解耦,同時可以對實時事件進行存儲轉發,以消除事件處理過程對播放系統帶來的性能影響。

圖2 事件驅動模型UML關系圖
3.6 工作流程
QoE探針系統的整個工作流程如圖3所示。首先它需要與質量檢測服務器進行通信注冊,登記其正在運行的機頂盒平臺,如果注冊成功,則通過初始化函數獲得啟動參數提供的數據接口指針數組,同時解析其定制配置文件以確定最終的數據接口定義。然后,系統根據數據接口的完整性來確認當前平臺可以進行計算的QoE指標,繼而分別創建子線程開啟相關模塊,主線程則建立事件驅動模型對播放器的事件調用進行監聽,一旦捕獲則將其壓入隊列,此外主線程還要對已經存儲在隊列中的事件進行派發,以觸發各模塊的計算任務。最后,如果銷毀接口被調用,系統還需要進行解注冊,并且釋放占用的靜態資源。

圖3 Qo E探針系統工作流程
在實現上述QoE探針系統之后,筆者所在實驗室在與上海電信研究院的合作下將其集成到了2款IPTV機頂盒平臺上,各自配置如表2所示。

表2 實驗終端設備配置信息
為了分析探針系統的開銷狀況,對2個平臺下的播放器進行測試,在對同一視頻進行點播請求的情況下,采樣統計各自的CPU和內存使用率百分比,得到其平均系統資源占用情況如圖4所示。

圖4 Qo E探針系統資源占用情況
可以看到,在集成了QoE探針系統后,播放器的CPU使用率提升了約5%,內存使用率提高了5%~8%左右,表明探針的添加對于這2個播放系統來說是合理可接受的。
為了驗證探針系統對于QoE指標的監測準確性,在華為機頂盒上同時運行了內嵌QoE探針的播放器和網絡抓包質量分析程序,并在相同時間內進行多次頻道切換的操作,記錄下各自統計的RRT響應時間比較結果,如圖5所示。

圖5 R RT指標監測結果對比
人眼感知數據是切換頻道者自身的主觀反應,為了保證該數值的可靠性,這里還加入了多位其他觀察者的反饋并得到一個平均值。從圖5中可以看出,探針系統監測出的RRT指標普遍處在人眼感知與網絡抓包結果的范圍之間,而對于第2次和第14次切換高清頻道帶來的突發響應時延增大,探針系統的統計結果則明顯比網絡抓包更加接近人眼感受。
除RRT指標外,也在實際環境存在網絡損傷的情況下對探針系統生成的MLR值進行了統計,分別與網絡抓包得到的丟包率和MLR進行了橫向和縱向比較,如圖6所示。

圖6 ML R指標監測結果對比
這里網絡損傷儀器設置的是0.2%丟包,測試的片源為碼率為2 Mb/s的標清視頻。發現在大多數時間內MLR都與網絡丟包率LR趨勢保持一致,但是在15 min和38 min的統計周期里,相比網絡抓包,探針系統的MLR值變化則明顯高于丟包率,而這2段時間內實際播放畫面相較其他時段出現了明顯的卡幀現象,考慮到這應該是因為I幀丟失帶來的影響,也可以證明,通過播放器探針系統得出的丟包反饋指標能夠更好地與用戶直觀體驗相符合。
另外,探針系統監測得出的DF指標也存在類似于用戶直觀體驗對應的聯系,同樣在2 Mb/s碼率的測試視頻播放過程中,當DF值超過50 ms的閾值時,圖像會立刻出現失真現象,具體數據圖表由于篇幅所限不再詳細列出。
IPTV網絡電視的目標是提供流媒體視頻服務,其終端用戶體驗是最重要的。本文從IPTV業務的QoE定義和具體指標統計方法出發,設計并實現了一種可以被機頂盒播放器內嵌的探針系統,旨在最大程度地獲取接近用戶真實體驗的質量反饋信息。系統除了要保證QoE指標的準確性以外,還必須降低對播放器的性能和穩定性的影響。實驗結果表明,該系統監測得出的QoE指標相比傳統網絡抓包質量分析軟件更加接近人眼直觀感受,它對播放器造成的額外資源開銷也在可接受的范圍以內。插件設計模式也使得探針系統自身更方便被移植和擴展,為未來的QoE評測方法更新和質量檢測系統實際部署做好準備。今后的研究重點將放在如何進一步解耦探針與播放系統上,以保證兩者運行的相對獨立性,同時需要簡化模型,使得整個系統框架更加輕量化,以減輕其在不同平臺上集成的工作量。
[1] 張大陸, 張起強, 胡治國, 等. IP網絡中視頻流QoE評價模型[J]. 計算機工程與應用, 2012, 48(3): 83-87.
[2] 劉潔彬. 面向實時監控的流媒體播放器的設計與實現[D].北京: 北京郵電大學, 2010.
[3] 肖 晴, 姚 良. IPT V端到端質量保證的實現[J]. 電信技術, 2008, (6): 19-22.
[4] Welch J. A Proposed Media Delivery Index(MDI)[EB/OL]. (2006-04-15). http://www.ietf.org/rfc/rfc4445.txt.
[5] 徐立松, 郭曉金. I PTV測試儀MDI指標提取方案研究[J].廣東通信技術, 2009, (3): 8-11.
[6] 徐嘯濤, 俞秀金, 胡蕊莉. IPTV業務質量指標研究[J]. 計算機與網絡, 2009, (19): 65-67.
[7] 陳方明, 陳 奇. 基于插件思想的可重用軟件設計與實現[J]. 計算機工程與設計, 2005, 26(1): 172-176.
[8] 彭永康, 章義來. 插件及其接口的研究與應用[J]. 計算機應用, 2003, 23(6): 122-123.
[9] 夏宏飛, 呂曉鵬, 劉 峰. IPT V業務中的應用層差錯控制技術分析[J]. 中興通訊技術, 2009, 15(6): 49-52.
[10] Korbel F. FFmpeg Basic Document[EB/OL]. (2012-02-01). http://www.ffmpeg.org/documentation.html.
[11] CSDN. Yarn(hadoop2)框架的軟件設計模式[EB/OL]. (2012-11-01). http://www.uml.org.cn/sjjm/201211161.asp.
編輯 顧逸斐
Design and Implementation of Embedded QoE Probe for IPTV Player
MA Si-chao, LIU Xin, YE De-jian
(Laboratory of Broadband Networks and Interactive Multimedia, School of Software, Fudan University, Shanghai 201203, China)
In order to make the Quality of Experience(QoE) metrics of Internet Protocol Television(IPTV) services more accurately approach real us er experience an d considering het erogeneity of different terminals, this paper propos es design architecture of streaming media player embedded probe sys tem, and gives the implementatio n of real-time data monitoring and r elated indicators calculation inside the player. This system can be int egrated in a vari ety of plat form through plug-in library, and uses e vent-driven model to elim inate the decoding delay and performance problems caused by QoE computing tasks. Test results show that the final QoE metrics is closer t o the ultimate user’s experience in the time of un expected delay and I frame packet loss while the probe system itself has low resources cost of only 5 % increase and can be easily ported and extended.
Internet Protocol Television(IPTV); player; Quality of Experience(QoE); probe; event-driven; plug-in mechanism
10.3969/j.issn.1000-3428.2014.05.050
上海科技發展攻關計劃基金資助項目(12511503002)。
馬思超(1988-),男,碩士研究生,主研方向:網絡多媒體技術;劉 新,講師;葉德建,副教授。
2013-04-19
2013-05-13E-mail:10212010020@fudan.edu.cn
1000-3428(2014)05-0243-04
A
TP37