检测mpeg2-tsvbr码流质量问题的方法

文档序号:8322658阅读:620来源:国知局
检测mpeg2-ts vbr码流质量问题的方法
【技术领域】
[0001]本发明属于多媒体通信测试技术领域,涉及一种检测方法,尤其涉及一种检测MPEG2-TS VBR码流质量问题的方法。
[0002]
【背景技术】
[0003]传统的数字电视业务(如DVB、IPTV) 一般采用恒定比特率(CBR)编码技术来压缩和传输视频流。采用CBR编码的优点是比较容易实现可靠的视频服务质量保障,CBR码流对视频服务器的性能管理、电视终端的缓冲区管理以及IP承载网的流控管理的实现复杂度要求都相对较低。CBR编码的主要缺点是视频压缩效率较低,尤其是高清CBR视频流往往需要占用大量的传输带宽资源。
[0004]近年来,随着高分辨率液晶电视的普及,人们对观看高清视频节目的需求也越来越旺盛。另一方面,新的视频编码技术和标准(如H.264、H.265)也不断涌现,这些新技术更多地采用了可变比特率(VBR)编码技术来提高视频的压缩和传输效率。采用VBR编码技术,对于相对静态的节目内容(如新闻联播)可用较低的码率来实现高压缩比的编码,而对于背景画面切换频繁的节目(如体育赛事)则需用较高的码率来实现编码才能保证画面的清晰度。由于VBR视频流的码率变化幅度较大,这对视频服务器、IP承载网、电视终端的实现复杂度和性能管理提出了更高的要求。
[0005]传统的MDI标准已不能完全适用于VBR码流。对于传统的IPTV所采用的MPEG2-TS(Transport Stream “传输流”;又称TS、TP、MPEG-TS或M2T) CBR码流的视频质量测试,IETF标准化组织已发布了 RFC 4445 MDI规范。在MDI标准中主要定义了两个参数:即媒体丢失率(MLR)和延迟系数(DF)。
[0006]MDI=MLR媒体丢失率可以简单定义为每秒钟丢失(或非正常)的媒体数据包的数量。当MLR为非O时,则意味这MPEG2-TS码流中的部分音视频内容丢失或受损,一般会导致画面失真(如马赛克、花屏)现象。根据其测试原理,MLR测试指标对于CBR和VBR码流都是同样适用的。
[0007]MD1:DF延迟系数是一个时间值,表示机顶盒的缓冲区必须容纳多少毫秒的数据才能消除媒体流抖动。该参数实际上是反映了视频流码率的波动情况,码率越恒定,则MD1:DF值越小;反之则越大。如果MD1:DF值过大,超过了机顶盒缓冲区的容忍限度,就会导致缓冲区上溢或下溢。缓冲区上溢会导致媒体数据包的丢失,造成画面失真;缓冲区下溢会导致无码流数据可供解码,造成画面卡顿。对于正常的CBR视频流,MD1: DF值一般保持在较小的范围以内波动;当视频服务器或IP网络出现性能问题时,MDI = DF值往往会明显变大,因此IPTV测试设备可根据MD1: DF值来有效地评价CBR视频流质量(即码率稳定性),并对异常的码率波动情况进行告警。
[0008]由于VBR编码特性决定了其码流比特率本身就存在很大波动,因此继续沿用MD1: DF标准来评价VBR视频的码流质量显然是不合适的,这样会产生大量的MD1: DF值超标引起的误告警。然而用VBR码流来传输IP视频节目时,由于机顶盒缓冲区大小有限,如果视频服务器的码流输出时序存在问题或IP网络时延抖动过大,仍然会导致机顶盒缓冲区上溢或下溢的问题,造成画面马赛克或卡顿现象,因此业界迫切需要一种新的测试方法来评价VBR视频流的质量,并对其视频质量问题进行告警。
[0009]在MPEG2-TS码流的编码过程中,编码器中有一个频率为27MHz的系统时钟(STC),此时钟用来产生指示音视频的正确显示和解码的时间戳。在MPEG2-TS码流中包含了一个被称为节目参考时钟标签(PCR)的字段,该字段用来指示系统时钟本身的瞬时值,它被放在TS包头的自适应区中被定期(每隔40ms)传送。通过PCR值不但可以获得正确的解码时间,还可以用来计算TS码流速率等与时间有关的信息。
[0010]对于CBR编码的MPEG2-TS码流,由于码流的速率是恒定的,因此可根据接收的码流字节数除以标称码流速率来估算视频可播放时长。但对于VBR编码的视频流,由于码流速率是不断在变化的,因此以上计算方法就不再适用了。
[0011]有鉴于此,如今迫切需要设计一种新的方法来检测MPEG2-TS VBR码流质量问题,以便克服现有方法的上述缺陷。

【发明内容】

[0012]本发明所要解决的技术问题是:提供一种检测MPEG2-TS VBR码流质量问题的方法,可有效地检测视频出现画面失真或卡顿等质量问题。
[0013]为解决上述技术问题,本发明采用如下技术方案:
一种检测MPEG2-TS VBR码流质量问题的方法,所述方法包括如下步骤:
步骤S1、通过采集设备在视频服务器出口、网络中间点或视频终端对基于可变比特率VBR编码的MPEG2-TS码流进行数据包捕获;将视频终端缓冲器中的可播放时长BT初始化,BT = O ;将视频卡顿时长FT初始化,FT=O ;将首次缓冲标记Flag设置为I ;转至步骤S2 ;步骤S2、对MPEG2-TS码流进行协议解析,检测出包含节目参考时钟PCR的MPEG2-TS数据包,以下简称PCR TS包,计算两个相邻PCR TS包的时间差Ta,并计算这两个相邻PCR值的时间差Tb ;
假设第η个TS包的数据包捕获时间标签为Timestamp (η),其PCR值为PCR(η),则Ta=Timestamp (n+1) - Timestamp (η), Tb = PCR (η+1) - PCR (η), Ta 和 Tb 均以毫秒为单位;转至步骤S3 ;
步骤S3、若首次缓冲标记Flag = I,则计算终端缓冲区中的可播放视频时长:BT = BT+ Tb ;转至步骤S4 ;若首次缓冲标记Flag = O,计算终端缓冲区中的可播放视频时长:BT =BT + Tb - Ta ;转至步骤S5 ;
步骤S4、检查BT是否达到终端的首次缓冲时长BI,若BT < BI,则跳转到步骤S2 ;否则将Flag设置为0,表示终端已结束首次缓冲阶段,可开始播放视频,即消耗缓冲区内容,并跳转到步骤S2 ;
步骤S5、判断BT是否小于0,若BT < 0,则系统提示“视频可能出现卡顿”,视频卡顿时长FT = FT +绝对值BT,并将BT重置为0,然后跳转到步骤S7 ;否则转至步骤S6 ;
步骤S6、判断BT是否大于B2,若BT > B2,其中B2为终端缓冲区可容纳的最大可播放视频时长,则系统提示“缓冲区上溢告警,可能出现画面失真”,设置BT = B2;转至步骤 S7 ;
步骤S7、检查视频流是否结束,若未结束,则跳转到步骤S2,否则结束算法。
[0014]一种检测MPEG2-TS VBR码流质量问题的方法,通过监测MPEG2-TS码流的PCR字段来计算接收到的VBR视频流的可播放时长,并模拟终端视频缓冲区增长和消耗过程,然后根据缓冲区上溢或下溢事件来检测视频出现画面失真或卡顿的质量问题。
[0015]作为本发明的一种实施方式,所述方法包括如下步骤:
步骤S1、通过采集设备在视频服务器出口、网络中间点或视频终端对基于可变比特率VBR编码的MPEG2-TS码流进行数据包捕获;将视频终端缓冲器中的可播放时长BT初始化;将视频卡顿时长FT初始化;将首次缓冲标记Flag设置为a ;转至步骤S2 ;
步骤S2、对MPEG2-TS码流进行协议解析,检测出包含节目参考时钟PCR的MPEG2-TS数据包,以下简称PCR TS包,计算两个相邻PCR TS包的时间差Ta,并计算这两个相邻PCR值的时间差Tb ;转至步骤S3 ;
步骤S3、若首次缓冲标记Flag = a,则计算终端缓冲区中的可播放视频时长:BT = BT+ Tb ;转至步骤S4 ;
若首次缓冲标记Flag = O,计算终端缓冲区中的可播放视频时长:BT = BT + Tb -Ta ;转至步骤S5 ;
步骤S4、检查BT是否达到终端的首次缓冲时长BI,若BT < BI,则跳转到步骤S2;否则将Flag设置为b,表示终端已结束首次缓冲阶段,可开始播放视频,即消耗缓冲区内容,并跳转到步骤S2 ;
步骤S5、判断BT是否小于0,若BT < 0,则系统做卡顿提示,视频卡顿时长FT = FT +绝对值BT,并将BT重置为0,然后跳转到步骤S7 ;否则转至步骤S6 ;
步骤S6、判断BT是否大于B2,若BT > B2,其中B2为终端缓冲区可容纳的最大可播放视频时长,则系统做告警提示,设置BT = B2;转至步骤S7;
步骤S7、检查视频流是否结束,若未结束,则跳转到步骤S2,否则结束算法。
[0016]作为本发明的一种实施方式,步骤S2中,假设第η个TS包的数据包捕获时间标签为 Timestamp (η),其 PCR 值为 PCR (η),则 Ta = Timestamp (n+1) - Timestamp (η), Tb =PCR (η+1) - PCR (η) ?
[0017]作为本发明的一种实施方式,将视频终端缓冲器中的可播放时长BT初始化,BT =O ;将视频卡顿时长FT初始化,FT=O。
[0018]本发明的有益效果在于:本发明提出的检测MPEG2-TS VBR码流质量问题的方法通过监测MPEG2-TS码流的PCR字段来计算接收到的VBR视频流的可播放时长,并模拟终端视频缓冲区增长和消耗过程,然后根据缓冲区上溢或下溢事件来检测
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1