公务员期刊网 论文中心 正文

网络电视视频质量监察模型探讨

网络电视视频质量监察模型探讨

本文作者:谭杰、孙志刚、程辉 单位:国防科学技术大学计算机学院

MDI[4]包括两个部分:延迟因素DF(DelayFactor)和媒体丢包率MLR(MediaLossRate)。但从RFC4445中可以看出计算和实现DF的算法比较复杂。DF是指一个时间间隔期间,在每个视频流报文数据包接收处观察到的,流入的报文数据与流出的报文数据之间的最大差值与媒体流码率MR(MediaRate)的比值,即接收到的字节数和解码所需的字节数之间的最大差值再与MR的比值。若在每个采样周期内有k个报文到达,则需要计算2k+1个虚拟缓冲区VB(VirtualBuffer)值,即每一条报文到达前的VB和报文到达后的VB,然后选取其中的最大虚拟缓冲区VB(max)和最小虚拟缓冲区VB(min),则DFVB(max)VB(min)MR=。因此,如果要得到一个DF值,需要在一个采样点上计算两次VB,并且在这个采样周期内所有VB值中找到最大值和最小值,根据公式然后需要进行一次除法计算,而对于一个持续的视频流来说,需要得到多个DF值才能进行性能判断,这样的算法将势必会在一定程度上加大硬件实现的难度、增加设备的负载。

针对计算DF值算法较复杂的问题,本文对MDI:DF的算法进行了研究,发现另一种实现较其简单的基于令牌桶计算网络延迟及抖动情况的TBM算法[5],其计算出来的TB值与DF值相似,能反映网络状态,但是TB值并不能很好地与DF值拟合。因此,本文第二部分主要介绍了对TBM算法进行改进的TBM+算法基本思想,第三部分描述了TBM+算法,第四部分介绍了在实验室搭建的一个IPTV监测模型,以及对DF算法、TBM算法和TBM+算法的对比实验,并针对三种视频监测的实验结果进行比较和性能分析,最后是本文的结束语。

基本思想

将基于令牌桶的算法思想与DF算法思想进行比较,令牌桶算法是通过令牌桶内的令牌数就相当于报文长度,并且无需在多个虚拟缓冲区VB值中取最大值和最小值,而是直接输出时刻点的令牌数,因此可以直接反映缓存区的变化情况,较DF算法思想更直观、简单,同时由于DF算法中存在除法运算,因此从硬件实现的角度来看,基于令牌桶的算法实现起来会更容易、方便。本文是基于令牌桶的方法实现视频质量监测。其TBM+算法基本思想[1]是:如果接收到一条报文,则将该报文长度lpack输入令牌管理模块中,由令牌管理模块将与lpack相等的令牌数量加入令牌桶。同时,令牌管理模块根据恒定的速率MR将令牌从桶中删除。可编程定时器产生MR_t,MR_t表示令牌减小操作的时间间隔。寄存器中存有MR_v,MR_v为每次减小的令牌数。MR为令牌桶中令牌减少的速率,即MR=MR_v/MR_t。当令牌桶中令牌装满时,则表示接口流量到达过快;当令牌桶中变空时,则表示接口流量到达过慢或无报文到达。令牌桶中UP_THD(underflowprotect)为下溢保护阀值,令牌桶内令牌数目少于该值时,表示近段时间内报文到达速率较低;OP_THD(overflowprotect)为上溢保护阀值,令牌桶内令牌数目大于该值时,表示近段时间内报文到达速率较高;Bucket_value为当前令牌数;B为令牌桶深度。将OP_THD、UP_THD、Bucket_value、B、MR_t和MR_v这些参数输入TBM+计算模块进行计算,最后得到结果TB值。令牌桶计算模型如图1所示。TBM+算法是在TBM算法上进行改进和完善的。

针对TBM算法并不能很好地与DF算法的结果相拟合这个不足,对此在计算TB值的具体算法上进行了改进:一方面在Bucket_value与保护阈值进行比较时,计算出与TBM算法不同的值赋给up_flow和down_flow;另一方面与TBM算法直接将up_flow和down_flow的值作为结果输出不同,TBM+算法是将up_flow和down_flow的值与以前采样周期的TB值进行累加,得到当前采样周期的TB值做为结果输出。

算法描述

根据以上参数定义可知,令牌桶内令牌个数反映了虚拟缓冲区VB的大小,同时UP_THD和OP_THD反映了VB接近下溢和上溢时需要报警的阀值。当Bucket_value<0或Bucket_value>B时,说明VB已经出现下溢或上溢现象。当Bucket_value>OP_THD时,计算出当前令牌桶中大于上溢保护阀值OP_THD的令牌数up_flow;当Bucket_value<UP_THD时,计算出当前令牌桶中令牌数down_flow。最后再将这些令牌数up_flow和down_flow与TB值进行累加,最终得到TB值。具体的令牌桶算法TBM+如表1所示。表1中的第10条语句计算的是当前令牌桶中的令牌数量,MR_V/MR_T*ttt是令牌桶中减少的令牌数总和,即总共经过了ttt时间后令牌桶按照MR的速率减少的令牌数,lsum是接收的报文长度的总和,即令牌桶接收的令牌数总和,两者相减就得到桶中此时的令牌数量。第11至13条语句,考虑的是令牌桶下溢的情况,此时的桶中令牌排空,故将bucket_value的值赋0。第14至16条语句,考虑的是当前令牌桶中的令牌数大于上溢保护阀值的情况,将当前令牌数与上溢保护阀值的差值记录在up_flow中。第17至19条语句,考虑的是当前令牌桶中的令牌数小于上溢保护阀值的情况,将当前令牌数记录在down_flow中。第20至22条语句,考虑的是当前令牌桶中的令牌数介于两个保护阀值之间的情况,则up_flow和down_flow都为0。第24条语句计算当前采样周期的TB值,即将之前所有采样周期的TB值与当前采样周期的up_flow值、down_flow值进行累加。

实验结果与分析

整个视频质量监测模型系统中硬件设计的核心部分主要是在NetMagic[6]平台上完成。NetMagic平台是国防科学技术大学计算机学院网络与信息安全研究所面向下一代互联网体系结构研究而设计开发的可重构的开发式交换平台。NetMagic平台采用了高性能FPGA和商用以太网交换芯片相结合的新型体系结构,可提供高端口密度报文线速转发能力和逻辑可重构能力,从而有效支持新型网络协议和报文处理机制的快速实现和部署。NetMagic采用开源开放的设计思想和模块可重用的设计理念,为用户提供了高可用的基本功能模块并设计了良定义的标准接口,可有效减少用户的系统设计、实现及验证周期。我们先在实验室搭建了一个模拟IPTV的实验环境,再将NetMagic放入环境中组成视频质量监测模型。

这个视频质量监测模型需要一台视频服务器、一台视频客户端、一台计算机作为控制端和监测端,一台NetMagic部署在视频服务器与客户端之间。具体的模型网络拓扑图如图2所示。视频服务器发送出视频报文,视频报文经过网络流入NetMagic;NetMagic将每条报文进入的时刻记录在报文数据中,同时根据接收到控制计算机发送的控制指令,对媒体流进行模拟网络干扰,再将每条报文提取出一条摘要报文发送给监测计算机,最后将原视频报文从NetMagic发送出去;视频客户端接收到视频报文。控制/监测计算机则从接收到的每条摘要报文中提取出报文长度和时间戳,根据不同的算法得到所需的实验结果——DF值和TB值。

利用Wireshark抓包软件捕获网络中的视频服务器与终端之间的流媒体数据,并保存成Trace文件。通过观察分析,Trace文件中包含每个报文接收的时刻、长度、源和目的IP地址、源和目的端口号以及协议类型等,并且发现流媒体数据是封装在UDP协议中进行传输的。根据IP协议和UDP协议的格式,将这种UDP报文中的时刻和长度所对应的字段提取出来,分别输入到DF算法和令牌桶算法之中,最后计算出我们需要的DF值和TB值。

在计算DF的实验中,MR=1.664Mb/s,采样周期为100ms,每一个采样周期计算出一个DF值;在TBM算法和TBM+算法的实验中,设一个令牌为1字节,其参数设置为MR_t=10ms,MR_v=2080,采样周期为100ms,UP_THD=4000,OP_THD=6000,B=10000,每一个采样周期输出一个TB值。最终,通过三个不同的算法进行计算,分别得到所要的实验结果DF值、TBM算法的TB值和TBM+算法的TB值,如图3所示。从实验结果的曲线图中可以看出,TBM+算法的TB值曲线较TBM算法的可以更好地与DF值的曲线拟合,说明TBM+算法比TBM算法更能反映所测的网络状态。如图3(b)所示,可以发现在第135个采样周期时刻,出现了一次突发性报文到达,使得令牌桶内令牌数Bucket_value陡然增加,从而导致DF值和TB值也突然增加。如图3(a)、图3(b)、图3(c)所示,当DF值为一定值或TB值为0时,说明网络中无报文到达或报文到达速率较慢,存在网络延时;当DF值或TB值变化越频繁,说明网络抖动越强烈。

结束语

本文设计了一种监测网络性能参数的IPTV视频质量监测模型,该监测模型使用了一种优于计算MDI:DF值为性能参数、基于令牌桶TBM算法的改进算法TBM+,可以解决目前缺乏有效的应用于IPTV的视频质量测试工具问题。监测模型可以从视频源端到目的端之间任一段网络中接入,监测指定的视频数据流,可以计算网络延时参数。通过监测曲线的变化来判断引起视频质量问题的原因,及时发现网络故障,提高故障处理效率,为进一步优化和部署IPTV的网络提供客观依据。