APP下载

IPTV播放器内嵌QoE探针的设计与实现

2014-08-05马思超叶德建

计算机工程 2014年5期
关键词:播放器插件探针

马思超,刘 新,叶德建

(复旦大学软件学院宽带网络与互动多媒体实验室,上海 20120 3)

IPTV播放器内嵌QoE探针的设计与实现

马思超,刘 新,叶德建

(复旦大学软件学院宽带网络与互动多媒体实验室,上海 20120 3)

为使网络电视(IPTV)业务中的QoE指标更准确地反映用户的真实体验,同时考虑到不同终端的异构性,提出一种在流媒体播放器下内嵌探针系统的设计架构,包括在播放器内部进行实时数据监测和相关指标计算的实现方案。该系统可以通过插件库的方式被多款终端平台集成与移植,使用事件驱动模型消除播放器实时触发QoE计算任务带来的解码延时和性能降低。实验结果表明,系统在突发延时和I帧丢包等时间点上统计得到的QoE指标相比传统方式更接近人眼感受,CPU和内存提升5%左右,额外资源开销有限,同时系统本身也具有较好的兼容性和扩展性。

网络电视;播放器;体验质量;探针;事件驱动;插件机制

1 概述

对于网络电视(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分析计算对播放系统带来的影响。

2 IPTV业务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 流媒体播放器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探针系统工作流程

4 实验结果和分析

在实现上述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的阈值时,图像会立刻出现失真现象,具体数据图表由于篇幅所限不再详细列出。

5 结束语

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

猜你喜欢

播放器插件探针
自编插件完善App Inventor与乐高机器人通信
基于STM32的MP3播放器设计
Moon ACE播放器/放大器一体机
基于jQUerY的自定义插件开发
多通道Taqman-探针荧光定量PCR鉴定MRSA方法的建立
BOPIM-dma作为BSA Site Ⅰ特异性探针的研究及其应用
MapWindowGIS插件机制及应用
播放器背板注塑模具设计
基于Revit MEP的插件制作探讨
透射电子显微镜中的扫描探针装置