花屏事件检测方法及其检测系统与流程

文档序号:16098647发布日期:2018-11-27 23:52阅读:378来源:国知局

本发明涉及流媒体领域,具体涉及一种花屏事件检测方法及其检测系统。



背景技术:

IPTV(Interactive Personality TV,交互式网络电视)作为一种交互式视频业务承载模式,改变了传统的电视观看方式,以网络为传输通道、机顶盒为终端,向用户提供包括点播、直播、时移等多种交互式视频节目及增值业务。由于IPTV的业务特点,观看视频过程中的视频质量则尤为重要。观看体验质量主要取决于观看过程中出现的画质劣化的情况,影响因素包括花屏、卡顿等。因此,花屏事件作为影响视频质量的重要因素之一具有较高的研究价值。

传统的方法检测花屏事件需要对前后图像进行充分的比较分析,通过信噪比,均方误差等方式进行评价,计算方法复杂,计算量很大,资源开销较大,还需要专门的图像检测设备,成本高。并且,在现网工程使用过程中,难以实时的提供参考图像进行比较。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种计算量小,且资源开销较少的花屏事件检测方法。

为达到以上目的,本发明采取的技术方案是:

一种花屏事件检测方法,该方法包括以下步骤:

客户端接收服务器端下发的数据,数据中的帧包括I帧、B帧和P帧,并将数据解包成TS分包;

对TS分包进行解析并进行I帧检测,当检测到I帧时,记录接收到的当前I帧的字节数;

继续进行I帧检测,直到检测到下一个I帧,计算检测到当前I帧与检测到下一个I帧时的时间间隔,并记录在该时间间隔内所接收到的字节数;以及

根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数,计算I帧丢包率,判断I帧丢包率是否大于设定的第一阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

在上述技术方案的基础上,该方法还包括以下步骤:当I帧丢包率小于设定的第一阈值时,根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数,计算B帧和P帧的丢包率,判断B帧和P帧的丢包率是否大于设定的第二阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

在上述技术方案的基础上,所述第一阈值小于第二阈值。

在上述技术方案的基础上,所述计算I帧丢包率的具体过程为:

当检测到I帧时,则记录当前时间为起始时间TimeStart,并记录接收到的当前I帧的字节数A;

直到检测到下一个I帧,记录结束时间TimeEnd,以及TimeEnd与TimeStart间所接收到的字节数B;

计算检测到当前I帧与检测到下一个I帧时的时间间隔T=TimeEnd–TimeStart;

获取当前I帧的时间T1=A/B*T,然后计算I帧丢包率MLR1=1-A/(码率*T1);

所述码率的计算方法如下:

对TS分包进行解析,在TimeStart后记录第一个带有节目时钟参考PCR的TS分包中的PCR时间值clock1;

继续解析TS分包,直到解析到下一个带有PCR的TS分包,并记录其PCR时间值clock2;

记录clock1和clock2之间收到的字节数R和丢失的字节数L;

计算码率:码率=(R+L)/(clock2-clock1)。

在上述技术方案的基础上,所述计算B帧和P帧的丢包率的具体过程为:

根据接收到的当前I帧的字节数A和TimeEnd与TimeStart间所接收到的字节数B,计算接收到B帧和P帧字节数为B-A;

根据T以及T1计算获取B帧和P帧的时间T2=T-T1;

计算B帧和P帧的丢包率MLR2=1-(B-A)/(码率*T2);

所述码率的计算方法如下:

对TS分包进行解析,在TimeStart后记录第一个带有PCR的TS分包中的PCR时间值clock1;

继续解析TS分包,直到解析到下一个带有PCR的TS分包,并记录其PCR时间值clock2;

记录clock1和clock2之间收到的字节数R和丢失的字节数L;

计算码率:码率=(R+L)/(clock2-clock1)。

本发明的另一个目的在于提供一种计算量小,且资源开销较少的花屏事件检测系统。

为达到以上目的,本发明采取的技术方案是:

一种花屏事件检测系统,包括:

数据接收模块,其用于接收服务器端下发的数据,并将数据解包成TS分包;

检测模块,其用于:对所述TS分包进行解析并进行I帧检测,当检测到I帧时,记录接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数;

计算判断模块,其用于:根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数,计算I帧丢包率;并判断I帧丢包率是否大于设定的第一阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

在上述技术方案的基础上,所述计算判断模块还用于:当I帧丢包率小于设定的第一阈值时,根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数,计算B帧和P帧的丢包率,判断B帧和P帧的丢包率是否大于设定的第二阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

在上述技术方案的基础上,所述第一阈值小于第二阈值。

在上述技术方案的基础上,所述计算判断模块计算I帧丢包率的具体过程为:

当检测到I帧时,则记录当前时间为起始时间TimeStart,并记录接收到的当前I帧的字节数A;

直到检测到下一个I帧,记录结束时间TimeEnd,以及TimeEnd与TimeStart间所接收到的字节数B;

计算检测到当前I帧与检测到下一个I帧时的时间间隔T=TimeEnd–TimeStart;

获取当前I帧的时间T1=A/B*T,然后计算I帧丢包率MLR1=1-A/(码率*T1);

所述码率的计算方法如下:

对TS分包进行解析,在TimeStart后记录第一个带有节目时钟参考PCR的TS分包中的PCR时间值clock1;

继续解析TS分包,直到解析到下一个带有PCR的TS分包,并记录其PCR时间值clock2;

记录clock1和clock2之间收到的字节数R和丢失的字节数L;

计算码率:码率=(R+L)/(clock2-clock1)。

在上述技术方案的基础上,所述计算判断模块计算B帧和P帧的丢包率的具体过程为:

根据接收到的当前I帧的字节数A和TimeEnd与TimeStart间所接收到的字节数B,计算接收到B帧和P帧字节数为B-A;

根据T以及T1计算获取B帧和P帧的时间T2=T-T1;

计算B帧和P帧的丢包率MLR2=1-(B-A)/(码率*T2);

所述码率的计算方法如下:

对TS分包进行解析,在TimeStart后记录第一个带有PCR的TS分包中的PCR时间值clock1;

继续解析TS分包,直到解析到下一个带有PCR的TS分包,并记录其PCR时间值clock2;

记录clock1和clock2之间收到的字节数R和丢失的字节数L;

计算码率:码率=(R+L)/(clock2-clock1)。

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

(1)本发明仅需要统计I帧的丢包率,就可以判断是否出现花屏事件。相比传统的需要提供参考图像的检测方法,本发明无需提供参考图像,避免使用专门的图像检测设备,能够降低成本;本发明需要计算的参数只有I帧丢包率,计算量和系统资源消耗均比较小,计算方法简单。本发明以较低的计算量,较少的资源开销,达到检测花屏的目的。

(2)由于丢包率作为网络性能基本参数之一,在现有的监控系统中已经进行统计,因此,该方法只需在现有系统上做少量改造就能进行使用,以对现有系统较小的影响就可以达到现网使用的目的。

附图说明

图1为本发明实施例中花屏事件检测方法的流程图;

图2为本发明实施例中花屏事件检测系统的结构框图。

具体实施方式

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

实施例1:

参见图1所示,本实施例提供一种花屏事件检测方法,该方法包括以下步骤:

S1.客户端接收服务器端下发的数据,数据中的帧包括I帧、B帧和P帧,并将数据解包成TS分包。

I帧(I frame)通常是每个GOP(MPEG所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图像。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。

S2.对TS分包进行解析并进行I帧检测,当检测到I帧时,记录接收到的当前I帧的字节数。

S3.继续进行I帧检测,直到检测到下一个I帧,计算检测到当前I帧与检测到下一个I帧时的时间间隔,并记录在该时间间隔内所接收到的字节数。

S4.根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数,计算I帧丢包率,判断I帧丢包率是否大于设定的第一阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

本发明实施例仅需要统计I帧的丢包率,就可以判断是否出现花屏事件。相比传统的需要提供参考图像的检测方法,本发明实施例无需提供参考图像,需要计算的参数只有I帧丢包率,计算量和系统资源消耗均比较小。由于丢包率作为网络性能基本参数之一,在现有的监控系统中已经进行统计,因此,该方法只需在现有系统上做少量改造就能进行使用,以对现有系统较小的影响就可以达到现网使用的目的。

实施例2:

参见图1所示,本实施例提供一种花屏事件检测方法,该方法包括以下步骤:

S1.客户端接收服务器端下发的数据,并将数据解包成TS分包。

S2.对TS分包进行解析并进行I帧检测,当检测到I帧时,记录接收到的当前I帧的字节数。

S3.继续进行I帧检测,直到检测到下一个I帧,计算检测到当前I帧与检测到下一个I帧时的时间间隔,并记录在该时间间隔内所接收到的字节数。

S4.根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数,计算I帧丢包率,判断I帧丢包率是否大于设定的第一阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

进一步地,当I帧丢包率小于设定的第一阈值时,根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数,计算B帧和P帧的丢包率(即该时间段的非I帧丢包率),判断B帧和P帧的丢包率是否大于设定的第二阈值,若是,则判断出现花屏,若否,则判断未出现花屏。进一步地,所述第一阈值小于第二阈值。

进一步地,所述第一阈值为1%,所述第二阈值为3%。

由于视频编/解码技术的特性,不同类型的帧发生丢包对视频图像的影响也不同。当I帧发生丢包时,除该I帧本身解析会受影响外,其还会影响直到下一个I帧之前的所有B帧和P帧的解析。而当B帧或P帧发生丢包时,则可能只影响当前帧的呈现;因此,I帧丢包对视频的影响远远大于其他帧。本实施例中进一步计算B帧和P帧的丢包率,可以使得检测结果更为准确。

由于I帧的重要性高于B帧和P帧,因此,相关阈值关系为第一阈值小于第二阈值,在满足以上条件前提的情况下,根据实际情况阈值可有所浮动。

实施例3:

参见图1所示,本实施例提供一种花屏事件检测方法,该方法包括以下步骤:

S1.客户端接收服务器端下发的数据,并将数据解包成TS分包。

S2.对TS分包进行解析并进行I帧检测,当检测到I帧时,记录接收到的当前I帧的字节数。

S3.继续进行I帧检测,直到检测到下一个I帧,计算检测到当前I帧与检测到下一个I帧时的时间间隔,并记录在该时间间隔内所接收到的字节数。

S4.根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数,计算I帧丢包率,判断I帧丢包率是否大于设定的第一阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

具体的,计算I帧丢包率,具体包括以下步骤:

当检测到I帧时,则记录当前时间为起始时间TimeStart,并记录接收到的当前I帧的字节数A;

直到检测到下一个I帧,记录结束时间TimeEnd,以及TimeEnd与TimeStart间所接收到的字节数B;

计算检测到当前I帧与检测到下一个I帧时的时间间隔T=TimeEnd–TimeStart;

获取当前I帧的时间T1=A/B*T,然后计算I帧丢包率MLR1=1-A/(码率*T1)。

在本实施例中,码率的计算方法如下:

对TS分包进行解析,在TimeStart后记录第一个带有PCR(program clock reference,节目时钟参考)的TS分包中的PCR时间值clock1;

继续解析TS分包,直到解析到下一个带有PCR的TS分包,并记录其PCR时间值clock2;

记录clock1和clock2之间收到的字节数R和丢失的字节数L;

丢失的字节数L的计算方法为:根据TS分包中的continuity_counter(连续性计数器)字段判断是否存在丢包,正常情况下continuity_counter应该是连续的,当出现不连续的情况则认为出现丢包记录丢包数N,丢包数是根据CC(continuity_counter)进行计算,如果CC不连续则认为出现丢包,计算步骤为:收到TS分包后解析出其continuity_counter值CC0,则下一个TS分包的期望值expt为CC0+1,

当收到下一TS分包后解析出其实际continuity_counter值CC1,将CC1与expt值比较,如CC1与expt值不相等,则认为出现丢包,丢包数N=CC1-expt。由于TS分包为固定长度的,通常为188字节,则丢失的字节数L=N*188。

计算码率:码率=(R+L)/(clock2-clock1)。

报文接收速率受网络环境等因素影响不断变化,本实施例中以相邻两个I帧的时间间隔为采样周期,在每个采样周期内可视为数据的接收速率为均匀的。即在每个采样周期的接收速率为在所选取的clock1、clock2区间内计算得到的码率。

实施例4:

参见图1所示,本实施例提供一种花屏事件检测方法,该方法包括以下步骤:

S1.客户端接收服务器端下发的数据,并将数据解包成TS分包。

S2.对TS分包进行解析并进行I帧检测,当检测到I帧时,记录接收到的当前I帧的字节数。

S3.继续进行I帧检测,直到检测到下一个I帧,计算检测到当前I帧与检测到下一个I帧时的时间间隔,并记录在该时间间隔内所接收到的字节数。

S4.根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数,计算I帧丢包率,判断I帧丢包率是否大于设定的第一阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

具体的,计算B帧和P帧的丢包率,具体包括以下步骤:

当检测到I帧时,则记录当前时间为起始时间TimeStart,并记录接收到的当前I帧的字节数A;

直到检测到下一个I帧,记录结束时间TimeEnd,以及TimeEnd与TimeStart间所接收到的字节数B;

计算检测到当前I帧与检测到下一个I帧时的时间间隔T=TimeEnd–TimeStart;

获取当前I帧的时间T1=A/B*T;

根据接收到的当前I帧的字节数A和TimeEnd与TimeStart间所接收到的字节数B,计算接收到B帧和P帧字节数为B-A;

根据T以及T1计算获取B帧和P帧的时间T2=T-T1;

计算B帧和P帧的丢包率MLR2=1-(B-A)/(码率*T2)。

在本实施例中,码率的计算方法如下:

对TS分包进行解析,在TimeStart后记录第一个带有PCR的TS分包中的PCR时间值clock1;

继续解析TS分包,直到解析到下一个带有PCR的TS分包,并记录其PCR时间值clock2;

记录clock1和clock2之间收到的字节数R和丢失的字节数L;

计算码率:码率=(R+L)/(clock2-clock1)。

报文接收速率受网络环境等因素影响不断变化,本实施例中以相邻两个I帧的时间间隔为采样周期,在每个采样周期内可视为数据的接收速率为均匀的。即在每个采样周期的接收速率为在所选取的clock1、clock2区间内计算得到的码率。

实施例5:

参见图2所示,本实施例提供一种花屏事件检测系统,其包括数据接收模块、检测模块、计算模块和判断模块。

其中,数据接收模块用于接收服务器端下发的数据,并将数据解包成TS分包。

检测模块用于对所述TS分包进行解析并进行I帧检测,当检测到I帧时,所述检测模块还用于记录接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数。

计算判断模块,其根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔、在该时间间隔内所接收到的字节数计算I帧丢包率;并判断I帧丢包率是否大于设定的第一阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

实施例6:

参见图2所示,本实施例提供一种花屏事件检测系统,其包括数据接收模块、检测模块、计算模块和判断模块。

其中,数据接收模块用于接收服务器端下发的数据,并将数据解包成TS分包。

检测模块用于对所述TS分包进行解析并进行I帧检测,当检测到I帧时,所述检测模块还用于记录接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数。

计算判断模块,其根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔、在该时间间隔内所接收到的字节数计算I帧丢包率;并判断I帧丢包率是否大于设定的第一阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

进一步地,计算判断模块还根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数,计算B帧和P帧的丢包率,且当I帧丢包率小于设定的第一阈值时,计算判断模块还用于判断B帧和P帧的丢包率是否大于设定的第二阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

进一步地,第一阈值小于第二阈值。

进一步地,第一阈值为1%,所述第二阈值为3%。

实施例7:

参见图2所示,本实施例提供一种花屏事件检测系统,其包括数据接收模块、检测模块、计算模块和判断模块。

其中,数据接收模块用于接收服务器端下发的数据,并将数据解包成TS分包。

检测模块用于对所述TS分包进行解析并进行I帧检测,当检测到I帧时,所述检测模块还用于记录接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数。

计算判断模块,其根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔、在该时间间隔内所接收到的字节数计算I帧丢包率;并判断I帧丢包率是否大于设定的第一阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

具体的,计算判断模块计算I帧丢包率的具体过程为:

当检测到I帧时,则记录当前时间为起始时间TimeStart,并记录接收到的当前I帧的字节数A;

直到检测到下一个I帧,记录结束时间TimeEnd,以及TimeEnd与TimeStart间所接收到的字节数B;

计算检测到当前I帧与检测到下一个I帧时的时间间隔T=TimeEnd–TimeStart;

获取当前I帧的时间T1=A/B*T,然后计算I帧丢包率MLR1=1-A/(码率*T1)。

在本实施例中,码率的计算方法如下:

对TS分包进行解析,在TimeStart后记录第一个带有PCR的TS分包中的PCR时间值clock1;

继续解析TS分包,直到解析到下一个带有PCR的TS分包,并记录其PCR时间值clock2;

记录clock1和clock2之间收到的字节数R和丢失的字节数L;

计算码率:码率=(R+L)/(clock2-clock1)。

报文接收速率受网络环境等因素影响不断变化,本实施例中以相邻两个I帧的时间间隔为采样周期,在每个采样周期内可视为数据的接收速率为均匀的。即在每个采样周期的接收速率为在所选取的clock1、clock2区间内计算得到的码率。

实施例8:

参见图2所示,本实施例提供一种花屏事件检测系统,其包括数据接收模块、检测模块、计算模块和判断模块。

其中,数据接收模块用于接收服务器端下发的数据,并将数据解包成TS分包。

检测模块用于对所述TS分包进行解析并进行I帧检测,当检测到I帧时,所述检测模块还用于记录接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔以及在该时间间隔内所接收到的字节数。

计算判断模块,其根据接收到的当前I帧的字节数、检测到当前I帧与检测到下一个I帧时的时间间隔、在该时间间隔内所接收到的字节数计算I帧丢包率;并判断I帧丢包率是否大于设定的第一阈值,若是,则判断出现花屏,若否,则判断未出现花屏。

具体的,计算判断模块计算B帧和P帧的丢包率的具体过程为:

当检测到I帧时,则记录当前时间为起始时间TimeStart,并记录接收到的当前I帧的字节数A;

直到检测到下一个I帧,记录结束时间TimeEnd,以及TimeEnd与TimeStart间所接收到的字节数B;

计算检测到当前I帧与检测到下一个I帧时的时间间隔T=TimeEnd–TimeStart;

获取当前I帧的时间T1=A/B*T;

根据接收到的当前I帧的字节数A和TimeEnd与TimeStart间所接收到的字节数B,计算接收到B帧和P帧字节数为B-A;

根据T以及T1计算获取B帧和P帧的时间T2=T-T1;

计算B帧和P帧的丢包率MLR2=1-(B-A)/(码率*T2),

在本实施例中,码率的计算方法如下:

对TS分包进行解析,在TimeStart后记录第一个带有PCR的TS分包中的PCR时间值clock1;

继续解析TS分包,直到解析到下一个带有PCR的TS分包,并记录其PCR时间值clock2;

记录clock1和clock2之间收到的字节数R和丢失的字节数L;

计算码率:码率=(R+L)/(clock2-clock1)。

报文接收速率受网络环境等因素影响不断变化,本实施例中以相邻两个I帧的时间间隔为采样周期,在每个采样周期内可视为数据的接收速率为均匀的。即在每个采样周期的接收速率为在所选取的clock1、clock2区间内计算得到的码率。

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

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