MPEG视频传输质量的监控方法及系统与流程

文档序号:16278125发布日期:2018-12-14 22:43阅读:261来源:国知局
MPEG视频传输质量的监控方法及系统与流程

本发明涉及视频传输质量监控领域,具体涉及一种mpeg(movingpictureexpertsgroup,动态图像专家组)视频传输质量的监控方法及系统。

背景技术

随着iptv(交互式网络电视)业务和新兴网络视频业务的广泛开展,各大运营商对网络承载视频的视频质量和用户体验越来越重视。与此同时,随着视频业务的普及和用户对视频服务更高的要求,运营商迫切希望能及时响应用户故障投诉,进而实现快速定位和解决影响视频服务质量的因素。

一般承载网对视频数据的影响通过以下几个视频质量指标体现:

(1)延迟:表现为视频观看时间的延迟,不影响节目的观看,对实时性要求较高的业务数据会有较大影响;延迟通过df(delayfactor,延迟因子)质量指标去量化。

(2)抖动:即网络出现拥塞,网络设备性能变化都会导致视频流的抖动,监控视频流的抖动可以帮助运维人员提前发现视频传输质量恶化的趋势。

(3)丢包:即直接影响视频的播放质量,无论丢失哪种类型的包均会对视频质量有不同程度的降低。

目前,业界主流的视频质量监控标准为:采用rfc4445定义的ip层传输视频流的视频质量指标,该指标可直接应用于mpeg视频;该指标通过持续监视网络抖动和丢包来表明设备的网络传输质量,进而快速识别出造成抖动和丢包的设备或区域;该指标定义了两个评估参数:df和mlr(medialossrate,媒体丢失速率)。

df用于表明视频流的延迟和抖动状况,单位是毫秒,视频解码设备通过建立视频缓冲区的方法,来屏蔽网络延迟和抖动对播放质量的影响;df的值就是用来指导视频解码设备缓冲区开辟的大小。当解码设备的缓冲区容纳的视频内容时间不小于被测视频流的df读数时,将不会出现视频播放质量的下降。

mlr用于表明视频流的传输丢包速率,由于视频信息的封装包丢失将直接影响视频播放质量,因此理想的ip视频流传输要求mlr数值为零。mlr用特定采样周期内媒体封装包的丢失数来反应,媒体封装包实际为有效的mpeg-ts封装包(mpeg-transportstream,mpeg格式的传输流,有效的定义为不含有填充包)。如果一个ip数据包中含有7个有效的mpeg-ts封装包,则丢失一个ip数据包时,记为丢失7个媒体封装包。mlr主流的测试标准有三个:(1)每秒钟丢包率,(2)每15分钟丢包率,(3)每24小时丢包率;丢包率的计算公式为计算时间内丢失媒体封装包的数量,除以计算时间内应接收媒体封装包。

但是,目前业界没有明确标准化的解决方案,来实现质量指标df和mlr的计算,因此,业界急需一种效率和精度较高的计算df和mlr的方法,进而通过该方法去监控视频质量。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:如何计算视频流的df和mlr,并通过df和mlr来监控mpeg视频的传输质量。

为达到以上目的,本发明提供的mpeg视频传输质量的监控方法,包括df计算流程、mlr计算流程和视频质量分析流程;

df计算流程包括:

s1:监控节点将mpeg格式的ip数据包的视频编码数据净荷进行分段后,写入预先创建的mr文件,转到s2;

s2:监控节点通过遍历mr文件的方式,获取pid序列号相同的2个文件分段,根据2个文件分段的pcr和遍历偏移量,计算mr,转到s3;

s3:监控节点计算ip数据包接收前的虚拟缓存vbpre、以及ip数据包接收后的虚拟缓存vbpost后,根据指定时间内计算的所有vbpre和vbpost,计算df;

mlr计算流程包括:

s4:监控节点确定ip数据包的应用层的封装格式:若mpegts流封装在基于udp的rtp负载中,则根据rtp首部的seq字段来计算mlr;若mpegts流直接封装在udp的负载中,则根据mpeg首部的cc字段来计算mlr;

视频质量分析流程包括:当df计算流程完成后,根据df确定视频质量;当mlr计算流程完成后,根据mlr确定视频质量。

在上述技术方案的基础上,s1的流程包括:

s101:监控节点接收到ip数据包时,当ip数据包满足预先设置的ip数据包的配置信息时,转到s102;

s102:当前ip数据包为mpegts封装包时,获取当前ip数据包中的视频编码数据净荷,转到s103;

s103:将视频编码数据净荷以标准188字节为偏移量进行文件分段后,写入预先创建的mr文件,转到s104;

s104:判断mr文件中的分段数量是否达到指定数量,若是,转到s201,否则丢弃当前ip数据包,收到下一个ip数据包时,重新执行s101。

在上述技术方案的基础上,s2的流程包括:

s201:通过文件读取指针遍历mr文件中的文件分段,遍历到含有pcr的文件分段时,将该文件分段记为文件分段1,将文件分段1中的pcr记为pcr1,将此时的文件读取指针位置偏移量记为offset1,获取pcr1对应的pid序列号,记为pid1,转到s202;

s202:继续遍历mr文件中的文件分段,判断整个mr文件中,是否存在与pid1相同的其他文件分段,若是,转到s204,否则转到s203;

s203:将文件读取指针复位至初始值,采用默认mr,转到s301;

s204:确定第一个遍历到的其他文件分段,将该文件分段记为文件分段2,获取文件分段2的pcr,记为pcr2,将此时的文件读取指针位置偏移量记为offset2,转到s205;

s205:根据s201中的offset1和pcr1,以及s204中的offset2和pcr2,计算mr,计算公式为:mr=188·7·27·1000000·(offset2–offset1)/(pcr2–pcr1),转到s301。

在上述技术方案的基础上,s3的流程包括:

s301:将s101中接收的ip数据包放入df计算消息对列,转到s302;

s302:从df计算消息对列中取出最后1个ip数据包,记为第j个ip数据包;计算第j个ip数据包的间隔时间差delta,计算公式为delta=tj–t0,其中tj为第j个ip数据包的收包时间戳,t0为初始收包时间戳,转到s303;

s303:判断delta是否超过1ms,若是,转到s305,否则转到s304;

s304:计算第j个ip数据包接收前的虚拟缓存vbpre、以及第j个ip数据包接收后的虚拟缓存vbpost,计算公式为:vbpre=h-mr/1000,其中h为df计算消息对列中前j-1个ip数据包的视频编码数据净荷的长度之和;vbpost=vbpre+hj,其中hj为第j个数据包的视频编码数据净荷长度,结束;

s305:将t0至tj时间内计算出的所有vbpre和vbpost,形成df计算数组,转到s306;

s306:根据df计算数组中的最小值vbmin和最大值vbmax,计算df,计算公式为:df=(vbmax–vbmin)/mr;将第j-1个ip数据包的收包时间戳作为t0并保存,结束。

在上述技术方案的基础上,s4的流程包括:

s401:监控节点接收到ip数据包时,确定ip数据包的应用层的封装格式:若mpegts流封装在基于udp的rtp负载中,则转到s402,若mpegts流直接封装在udp的负载中,则转到s403;

s402:定位并保存携带rtp报文头的seq字段,判断当前seq字段的取值与上次保存的seq字段的取值是否连续,若是,结束,否则转到s404;

s403:获取当前ip数据包中的mpegts视频编码数据净荷,将视频编码数据净荷以标准188字节为偏移量进行文件分段后,获取每一段文件分段的cc字段的取值;判断相邻文件分段的cc字段的取值是否连续,若是,结束;否则转到s404;

s404:将mlr值+1,本次流程结束。

本发明提供的mpeg视频传输质量的监控系统,包括设置于监控节点上的df计算模块、mlr计算性能指标计算模块和视频质量分析模块;

df计算模块包括mr码率文件生成子模块、mr解码计算子模块和df性能指标计算子模块;

mr码率文件生成子模块用于:将mpeg格式的ip数据包的视频编码数据净荷进行分段后,写入预先创建的mr文件,向mr解码计算子模块发送mr解码计算信号;

mr解码计算子模块用于:收到mr解码计算信号后,通过遍历mr文件的方式,获取pid序列号相同的2个文件分段,根据2个文件分段的pcr和遍历偏移量,计算mr,向df性能指标计算子模块发送df性能指标计算信号;

df性能指标计算子模块用于:收到df性能指标计算信号后,计算ip数据包接收前的虚拟缓存vbpre、以及ip数据包接收后的虚拟缓存vbpost后,根据指定时间内计算的所有vbpre和vbpost,计算df;

mlr计算性能指标计算模块用于:确定ip数据包的应用层的封装格式:若mpegts流封装在基于udp的rtp负载中,则根据rtp首部的seq字段来计算mlr;若mpegts流直接封装在udp的负载中,则根据mpeg首部的cc字段来计算mlr;

视频质量分析模块用于:当df性能指标计算子模块计算df完成后,根据df确定视频质量;当mlr计算性能指标计算模块计算mlr完成后,根据mlr确定视频质量。

在上述技术方案的基础上,所述mr码率文件生成子模块的工作流程包括:接收到ip数据包时,当ip数据包满足预先设置的ip数据包的配置信息、且当前ip数据包为mpegts封装包时,获取当前ip数据包中的视频编码数据净荷;将视频编码数据净荷以标准188字节为偏移量进行文件分段后,写入预先创建的mr文件;判断mr文件中的分段数量是否达到指定数量,若是,向mr解码计算子模块发送mr解码计算信号,否则丢弃当前ip数据包。

在上述技术方案的基础上,所述mr解码计算子模块的工作流程包括:收到mr解码计算信号后,通过文件读取指针遍历mr文件中的文件分段,遍历到含有pcr的文件分段时,将该文件分段记为文件分段1,将文件分段1中的pcr记为pcr1,将此时的文件读取指针位置偏移量记为offset1,获取pcr1对应的pid序列号,记为pid1;继续遍历mr文件中的文件分段,判断整个mr文件中,是否存在与pid1相同的其他文件分段:

若是,确定第一个遍历到的其他文件分段,将该文件分段记为文件分段2,获取文件分段2的pcr,记为pcr2,将此时的文件读取指针位置偏移量记为offset2;根据mr解码计算子模块01中的offset1和pcr1,以及mr解码计算子模块04中的offset2和pcr2,计算mr,计算公式为:mr=188·7·27·1000000·(offset2–offset1)/(pcr2–pcr1),向df性能指标计算子模块发送df性能指标计算信号;

否则将文件读取指针复位至初始值,采用默认mr,向df性能指标计算子模块发送df性能指标计算信号。

在上述技术方案的基础上,所述df性能指标计算子模块的工作流程包括:收到df性能指标计算信号后,将mr码率文件生成子模块中的ip数据包放入df计算消息对列;从df计算消息对列中取出最后1个ip数据包,记为第j个ip数据包;计算第j个ip数据包的间隔时间差delta,计算公式为delta=tj–t0,其中tj为第j个ip数据包的收包时间戳,t0为初始收包时间戳;

判断delta是否超过1ms:

若是,将t0至tj时间内计算出的所有vbpre和vbpost,形成df计算数组;根据df计算数组中的最小值vbmin和最大值vbmax,计算df,计算公式为:df=(vbmax–vbmin)/mr;将第j-1个ip数据包的收包时间戳作为t0并保存;

否则计算第j个ip数据包接收前的虚拟缓存vbpre、以及第j个ip数据包接收后的虚拟缓存vbpost,计算公式为:vbpre=h-mr/1000,其中h为df计算消息对列中前j-1个ip数据包的视频编码数据净荷的长度之和;vbpost=vbpre+hj,其中hj为第j个数据包的视频编码数据净荷长度。

在上述技术方案的基础上,所述mlr计算性能指标计算模块的工作流程包括:

监控节点接收到ip数据包时,确定ip数据包的应用层的封装格式:

若mpegts流封装在基于udp的rtp负载中,定位并保存携带rtp报文头的seq字段,判断当前seq字段的取值与上次保存的seq字段的取值是否连续,若是,确认无丢包,否则确认有丢包,将mlr值+1;

若mpegts流直接封装在udp的负载中,则获取当前ip数据包中的mpegts视频编码数据净荷,将视频编码数据净荷以标准188字节为偏移量进行文件分段后,获取每一段文件分段的cc字段的取值;判断相邻文件分段的cc字段的取值是否连续,若是,确认无丢包,否则确认有丢包,将mlr值+1。

与现有技术相比,本发明的优点在于:

(1)参见本发明方法的s1至s5可知,本发明通过自主研发的计算方法,成功的计算了df值和mlr值,据验证得到,通过本发明计算的df值和mlr值的精度较高,进而能够准确的监控mpeg视频的传输质量。

(2)参见本发明方法的s1至s3可知,本发明采用将ip数据包进行分段的方式,来计算df,进而使得df计算的采样样本数量较少,提高了工作效率;与此同时计算df时的时间戳为硬件获取,时间戳的精度可达ns级,该精度比软件系统时间的精度更高,同时省去了软件频繁的获取系统的tick值(相对时间单位)的调用过程,节省了cpu时间,进而满足了用户在不感知监控对象的前提下流畅观看iptv视频的需求。

(3)参见本发明方法的s4可知,本发明采用ip数据包内的cc字段是否连续的方式,计算mlr时;与传统的利用报文携带rtp(real-timetransportprotocol,实时传输协议)头部信息中最大序列号和最小序列号,获得理论接收的报文个数,再和实际收包个数作减法比较得出媒体包丢包率相比,本发明只需连续获取ip数据包内的cc字段,无需寻找最大序列号和最小序列号,进而提高了工作效率和准确度。

附图说明

图1为本发明实施例中的视频监控系统的组网图;

图2为本发明实施例中s1的流程图;

图3为本发明实施例中s2的流程图;

图4为本发明实施例中s3的流程图;

图5为本发明实施例中s4的流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

首先对监控mpeg视频时传输的网络数据进行介绍。

参见图1所示,网络数据分为2大类:视频数据流和信令数据流:视频数据流即由视频传输的ip数据包组成(即需要监控的视频流)。信令数据流主要是网管(网络管理服务器)和olt局端系统设备的网管代理接口之间流通的信息流,信令数据流在功能上分为2类:

(1)下发监控节点的对象配置,包括使能监控开关、监控对象位置、被监控视频的ip数据包的配置信息,第(1)类的所有信息会绑定在一个唯一的监控实例号id上,用于设备内部存储和查询;

(2)回读监控结果信息,olt设备将开启了监控功能的不同监控节点测算的df和mlr指标参数上报至网管。

在此基础上,本发明实施例中的mpeg视频传输质量的监控方法,包括df计算流程、mlr计算流程和视频质量分析流程。

df计算流程包括:

s1:监控节点将mpeg格式的ip数据包的视频编码数据净荷进行分段后,写入预先创建的mr文件(码率文件),转到s2。

s2:监控节点通过遍历mr文件的方式,获取pid序列号(pid为文件分段的传输流标识)相同的2个文件分段,根据2个文件分段的pcr(时间片段特征码,即视频源发出媒体封装包是的时钟频率)和遍历偏移量,计算mr,转到s3。

s3:监控节点计算ip数据包接收前的虚拟缓存vbpre、以及ip数据包接收后的虚拟缓存vbpost后,根据指定时间内计算的所有vbpre和vbpost,计算df。

mlr计算流程包括:

s4:监控节点确定ip数据包的应用层的封装格式:若mpegts流封装在基于udp的rtp负载中,则根据rtp首部的seq(序列号)字段来计算mlr;若mpegts流直接封装在udp的负载中,则根据mpeg首部的cc字段(continuitycounter,cc为连续计数器的简称)来计算mlr。

视频质量分析流程包括:

s5:当df计算流程完成后,根据df确定视频质量;当mlr计算流程完成后,根据mlr确定视频质量;具体为:当df计算流程完成后,将df与指定阈值比较,若df大于指定阈值时,确定视频质量下降,下降原因为延时过大,转到s6;当mlr计算流程完成后,将mlr与指定阈值比较,若mlr大于指定阈值时,确定视频质量下降,下降原因为丢包数量过多,转到s6。

s6:将视频质量下降原因与监控节点的监控实例号id(监控实例号id用于定位上报节点信息)关联后,上报至网管。

参见图1所示,本实施例在整体系统监控后进行故障定位层面来说,采用分级的架构进行故障定位,在整个网络传输链路层面设置3个监控点(实际应用中监控点的数量可灵活调整),具体为上联盘的物理端口、线卡盘的pon口和onu端口。由此三个监控点划分成三段网络链路,即:上行网络侧、线卡盘到onu侧、以及onu到用户侧usertv(用户的iptv)。若某一级别监控对象打开,则会通过计算出的df和mlr指标,来确定该段链路是否发生视频传输故障、并指出故障类型(延时过大或丢包过大)和故障原因(指标参数超出阀值多少),同时上报至网管。

下面通过六个实施例说明本发明的方法。

实施例一:

参见图2所示,s1的流程包括:

s101:将报文收包函数(该函数用于接收ip数据包)挂接在监控节点交换驱动的cpu入口点,监控节点接收到ip数据包时,若ip数据包满足预先设置的ip数据包的配置信息时,转到s102,若ip数据包不满足配置信息时直接丢弃,本次流程结束,收到下一个ip数据包时,重新执行s101。

s102:根据当前ip数据包信息,判断当前ip数据包是否为mpegts封装包,若是,获取当前ip数据包中的视频编码数据净荷,转到s103,否则表明接收的不是标准的mpeg传输视频数据,此时丢弃当前ip数据包,以释放当前ip数据包和其他系统资源;收到下一个ip数据包时,重新执行s101。

s103:将视频编码数据净荷以标准188字节为偏移量进行文件分段后(不足188字节的偏移量也作为一段),写入预先创建的mr文件,转到s104。

s104:判断mr文件中的分段数量是否达到指定数量(100),若是,转到s201,否则丢弃当前ip数据包,收到下一个ip数据包时,重新执行s101。

实施例二:

在实施例一的基础上,s101中的ip数据包的配置信息为ip数据包的五元组信息:ip数据包的源ip地址、目的ip地址、源端口、目的端口和传输层协议;s101中ip数据包满足配置信息的标准为:ip数据包的五元组信息,与预先配置的五元组信息相同。

s102中获取当前ip数据包中的视频编码数据净荷的流程包括:剥离当前ip数据包的ip层头部信息和udp层头部信息后,得到视频编码数据净荷。

实施例三:

参见图3所示,s2的流程包括:

s201:通过文件读取指针遍历mr文件中的文件分段,遍历到含有pcr的文件分段时,将该文件分段记为文件分段1,将文件分段1中的pcr记为pcr1,将此时的文件读取指针位置偏移量记为offset1,获取pcr1对应的pid序列号,记为pid1,转到s202。

s202:继续遍历mr文件中的文件分段,判断整个mr文件中,是否存在与pid1相同的其他文件分段,若是,转到s204,否则转到s203。

s203:将文件读取指针复位至初始值,采用默认mr(音频标准推荐使用的mr,即27mbps),转到s301进行后续指标计算。

s204:确定第一个遍历到的其他文件分段,将该文件分段记为文件分段2,获取文件分段2的pcr,记为pcr2,将此时的文件读取指针位置偏移量记为offset2,转到s205。

s205:根据s201中的offset1和pcr1,以及s204中的offset2和pcr2,计算mr,计算公式为:mr=188·7·27·1000000·(offset2–offset1)/(pcr2–pcr1),转到s301进行后续指标计算。

mr计算公式中的188是指音视频数据流按mpegts格式编码的字节长度,7是指1个ip数据包中188编码的数据负载数量(1个ip数据包中最多只能包含7个188编码的数据负载),27是指标准视频数据流码率的缺省值(rfc推荐标准,27mbps),1000000的单位为b/s(比特每秒),即1000000为将mbps换算为b/s的值。

实施例四:

参见图4所示,s3的流程包括:

s301:将s101中接收的ip数据包放入df计算消息对列,转到s302。

s302:从df计算消息对列中取出最后1个ip数据包,记为第j个ip数据包;计算第j个ip数据包的间隔时间差delta,计算公式为delta=tj–t0,其中tj为第j个ip数据包的收包时间戳(收包时间戳通过硬件获取,例如交换芯片),t0为初始收包时间戳,转到s303。

s303:判断delta是否超过1ms,若是,转到s305,否则转到s304。

s304:计算第j个ip数据包接收前的虚拟缓存vbpre、以及第j个ip数据包接收后的虚拟缓存vbpost,计算公式为:vbpre=h-mr/1000,其中h为df计算消息对列中前j-1个ip数据包(即第1~j-1个ip数据包)的视频编码数据净荷的长度之和,mr/1000为常量因子,代表1ms内码率流出的数据大小;vbpost=vbpre+hj,其中hj为第j个数据包的视频编码数据净荷长度,本次流程结束,收到下一个ip数据包时重新执行s301。

s305:将t0至tj时间内(也就是1ms内)计算出的所有vbpre和vbpost,形成df计算数组,转到s306。

s306:根据df计算数组中的最小值vbmin和最大值vbmax,计算df,计算公式为:df=(vbmax–vbmin)/mr;将第j-1个ip数据包的收包时间戳作为t0并保存,本次流程结束,收到下一个ip数据包时重新执行s301。

最小值vbmin和最大值vbmax的获取原理为:从vbpre和vbpost的计算公式可知,对于每一组vbpost和vbpre而言(即根据vbpre计算出的vbpost),vbpost必定大于vbpre(vbpost=vbpre+hj);但是,对于t0至tj时间内的df计算数组中的所有的vbpre和vbpost而言,不是每一个vbpost都大于vbpre。由此可知,df计算数组中vbmin的获取方式为:vbmin为df计算数组中最小的vbpre;df计算数组中vbmax的获取方式为:vbmax为df计算数组中最大的vbpost。

实施例五:

在实施例四的基础上,s302中t0的确定流程为:判断t0是否存在,若是(即非首次使用),则直接使用,否则(即首次使用)将df计算消息对列中的第1个ip数据包的收包时间戳作为t0;计算第一个ip数据包的df时,将t0设置为0。

s305中df计算数组的排列顺序为:所有vbpre和vbpost从小到大的排列顺序。

实施例六:

参见图5所示,s4的流程包括:

s401:监控节点接收到ip数据包时,确定ip数据包的应用层的封装格式:若mpegts流封装在基于udp的rtp负载中,则转到s402,若mpegts流直接封装在udp的负载中,则转到s403。

s402:定位并保存携带rtp报文头的seq字段,判断当前seq字段的取值与上次保存的seq字段的取值是否连续(若首次使用,则没有上次保存的seq字段,此时仍然认为是连续),若是,则确定当前接收的ip数据包为连续数据包,即未产生丢包,本次流程结束,否则确定当前接收的ip数据包,与上次接收的ip数据包之间存在丢包,转到s404。

s403:获取当前ip数据包中的mpegts视频编码数据净荷,将视频编码数据净荷以标准188字节为偏移量进行文件分段后(不足188字节的偏移量也作为一段),获取每一段文件分段的cc字段的取值(cc为连续计数器的简称,cc字段必然存在于本步骤中的ip数据包中,cc字段的取值即为连续计数器的值);判断相邻文件分段的cc字段的取值是否连续,若是,则确定当前接收的ip数据包为连续数据包,即未产生丢包,本次流程结束,否则确定当前接收的ip数据包为非连续数据包,即存在丢包,转到s404。

s404:将mlr值+1,本次流程结束。

本发明实施例中的mpeg视频传输质量的监控系统,包括设置于监控节点上的df计算模块、mlr计算性能指标计算模块和视频质量分析模块。

df计算模块包括mr码率文件生成子模块、mr解码计算子模块和df性能指标计算子模块。

mr码率文件生成子模块用于:将mpeg格式的ip数据包的视频编码数据净荷进行分段后,写入预先创建的mr文件,向mr解码计算子模块发送mr解码计算信号;具体工作流程包括:接收到ip数据包时,当ip数据包满足预先设置的ip数据包的配置信息、且当前ip数据包为mpegts封装包时,获取当前ip数据包中的视频编码数据净荷;将视频编码数据净荷以标准188字节为偏移量进行文件分段后,写入预先创建的mr文件;判断mr文件中的分段数量是否达到指定数量,若是,向mr解码计算子模块发送mr解码计算信号,否则丢弃当前ip数据包。

mr解码计算子模块用于:收到mr解码计算信号后,通过遍历mr文件的方式,获取pid序列号相同的2个文件分段,根据2个文件分段的pcr和遍历偏移量,计算mr,向df性能指标计算子模块发送df性能指标计算信号;具体工作流程包括:收到mr解码计算信号后,通过文件读取指针遍历mr文件中的文件分段,遍历到含有pcr的文件分段时,将该文件分段记为文件分段1,将文件分段1中的pcr记为pcr1,将此时的文件读取指针位置偏移量记为offset1,获取pcr1对应的pid序列号,记为pid1;继续遍历mr文件中的文件分段,判断整个mr文件中,是否存在与pid1相同的其他文件分段:

若是,确定第一个遍历到的其他文件分段,将该文件分段记为文件分段2,获取文件分段2的pcr,记为pcr2,将此时的文件读取指针位置偏移量记为offset2;根据mr解码计算子模块01中的offset1和pcr1,以及mr解码计算子模块04中的offset2和pcr2,计算mr,计算公式为:mr=188·7·27·1000000·(offset2–offset1)/(pcr2–pcr1),向df性能指标计算子模块发送df性能指标计算信号;

否则将文件读取指针复位至初始值,采用默认mr,向df性能指标计算子模块发送df性能指标计算信号。

df性能指标计算子模块用于:收到df性能指标计算信号后,计算ip数据包接收前的虚拟缓存vbpre、以及ip数据包接收后的虚拟缓存vbpost后,根据指定时间内计算的所有vbpre和vbpost,计算df;具体工作流程包括:收到df性能指标计算信号后,将mr码率文件生成子模块中的ip数据包放入df计算消息对列;从df计算消息对列中取出最后1个ip数据包,记为第j个ip数据包;计算第j个ip数据包的间隔时间差delta,计算公式为delta=tj–t0,其中tj为第j个ip数据包的收包时间戳,t0为初始收包时间戳;

判断delta是否超过1ms:

若是,将t0至tj时间内计算出的所有vbpre和vbpost,形成df计算数组;根据df计算数组中的最小值vbmin和最大值vbmax,计算df,计算公式为:df=(vbmax–vbmin)/mr;将第j-1个ip数据包的收包时间戳作为t0并保存;

否则计算第j个ip数据包接收前的虚拟缓存vbpre、以及第j个ip数据包接收后的虚拟缓存vbpost,计算公式为:vbpre=h-mr/1000,其中h为df计算消息对列中前j-1个ip数据包的视频编码数据净荷的长度之和;vbpost=vbpre+hj,其中hj为第j个数据包的视频编码数据净荷长度。

mlr计算性能指标计算模块用于:确定ip数据包的应用层的封装格式:若mpegts流封装在基于udp的rtp负载中,则根据rtp首部的seq字段来计算mlr;若mpegts流直接封装在udp的负载中,则根据mpeg首部的cc字段来计算mlr;具体工作流程包括:

若mpegts流封装在基于udp的rtp负载中,定位并保存携带rtp报文头的seq字段,判断当前seq字段的取值与上次保存的seq字段的取值是否连续,若是,确认无丢包,否则确认有丢包,将mlr值+1;

若mpegts流直接封装在udp的负载中,则获取当前ip数据包中的mpegts视频编码数据净荷,将视频编码数据净荷以标准188字节为偏移量进行文件分段后,获取每一段文件分段的cc字段的取值;判断相邻文件分段的cc字段的取值是否连续,若是,确认无丢包,否则确认有丢包,将mlr值+1。

视频质量分析模块用于:当df性能指标计算子模块计算df完成后,根据df确定视频质量;当mlr计算性能指标计算模块计算mlr完成后,根据mlr确定视频质量。

进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1