掌桥专利:专业的专利平台
掌桥专利
首页

卡顿检测方法、装置、设备及存储介质

文献发布时间:2024-04-18 19:59:31


卡顿检测方法、装置、设备及存储介质

技术领域

本发明涉及视频播放及游戏性能测试领域,尤其涉及一种卡顿检测方法、装置、设备及存储介质。

背景技术

卡顿检测是一种针对视频播放或者游戏过程中,由于传输延迟、运算延迟等产生的卡顿问题进行检测的过程,尤其是在游戏中激烈的战斗,突然无法顺利放出技能、角色动作缓慢然后瞬移,从而引起的明显打断感,造成了不良体验。

目前,主要是使用的perfdog工具来实现卡顿检测,具体是通过检测当前帧的消耗时长与不同卡顿设置的时间阈值进行比较,如:普通卡顿,则判断当前帧耗时>前三帧平均耗时2倍且当前帧耗时>两帧电影帧耗时;严重卡顿,则判断当前帧耗时>前三帧平均耗时2倍且当前帧耗时>三帧电影帧耗时。这种方式基本可以检测出所有的卡顿,但是其仅是基于单帧耗时的角度来判断,而识别到单帧卡顿后,无法评估卡顿影响时长,无法与人体验卡顿一一对应,导致卡顿识别并不准确。

发明内容

本发明的主要目的在于解决现有的卡顿检测方案,对卡顿帧的检测准确率和效率均较低的问题。

本发明第一方面提供了一种卡顿检测方法,包括:

获取待检测的画面帧序列,其中,所述画面帧序列包括若干个按照时间先后顺序排序的画面帧;

对所述画面帧序列中的各画面帧分别进行单帧卡顿检测和连续帧卡顿检测,并基于检测的结果进行去重合并,得到卡顿检测结果。

本发明第二方面提供了一种卡顿检测装置,包括:

获取模块,用于获取待检测的画面帧序列,其中,所述画面帧序列包括若干个按照时间先后顺序排序的画面帧;

检测模块,用于对所述画面帧序列中的各画面帧分别进行单帧卡顿检测和连续帧卡顿检测,并基于检测的结果进行去重合并,得到卡顿检测结果。

本发明第三方面提供了一种电子设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述电子设备执行上述的卡顿检测方法的各个步骤。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的卡顿检测方法的各个步骤。

综上,该方法通过对待检测的画面帧序列中的各画面帧分别进行单帧卡顿检测和连续帧卡顿检测,然后基于两个检测的结果进行去重合并,得到最终的卡顿检测结果,这样的方式不仅可以检测帧的卡顿,还解决了现有的卡顿检测方案存在遗漏检测和检测不准确的问题。

进一步的,利用连续帧卡顿检测的结果,还可以实现对整个画面帧序列的流畅度识别,以提高卡顿检测的准确度,且与用户的感官体验更为匹配。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

图1为本发明实施例中存在卡顿帧的画面时间示意图;

图2为本发明实施例中卡顿检测方法的第一个实施例示意图;

图3为本发明实施例中卡顿检测方法的第二个实施例示意图;

图4为本发明实施例中连续卡顿的第一种帧结构示意图;

图5为本发明实施例中连续卡顿的第二种帧结构示意图;

图6为本发明实施例中连续卡顿的第三种帧结构示意图;

图7为本发明实施例中卡顿检测装置的一个实施例示意图;

图8为本发明实施例中电子设备的一个实施例示意图。

具体实施方式

本发明实施例提供一种卡顿检测方法、装置、设备及存储介质,该方法将卡顿分为单帧卡顿和连续帧卡顿,也即是采用两种卡顿的检测逻辑对同一个画面帧序列进行卡顿检测,这两种方式可以覆盖所有卡顿情况,其中,单帧卡顿是由一个卡顿帧组成,连续卡顿是由多个相对连续的卡顿帧组成。这样的方式能够检测到已有方案能检测到的卡顿基础上,发现更多被遗漏的卡顿,大大提高了卡顿帧检测的准确率,减少漏检情况。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

对于卡顿帧应当理解为是用户视觉能看到的画面停止现象,如图1所示中展示画面有ABC三个画面,其中A和C存在了四帧时间。这里的一个画面显示的总时间,下文都会被称为画面帧时长。是否流畅,实质上,是判断视觉看到的画面是否存在卡顿现象。当画面帧时长较长时,就会被察觉到卡顿。其中,画面帧时长是与应用的运算时间相关,但不绝对,同样如图1所示,CPU和GPU的耗时相加并不等于画面帧时长,因为画面需要遵守屏幕的刷新频率,所以画面帧时长与屏幕的刷新频率绝对相关,是屏幕刷新画面间隔的倍数关系。当倍数较大,画面帧时长达到了眼睛能察觉到的卡顿,这种画面帧,被称为卡顿帧。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图2,本发明实施例中卡顿检测方法的第一个实施例包括:

201、获取待检测的画面帧序列。

本实施例中,该画面帧序列包括若干个按照时间先后顺序排序的画面帧,该画面帧序列具体可以通过视频处理软件,获取目标应用中已产生的画面,例如游戏画面、视频画面等等,然后提取其中的画面帧,然后通过时间计算识别每个画面帧的播放时长,从而得到各画面帧的帧时长,最后将各画面帧按照时间先后顺序拼接,并设置对应比例的长度的时间窗,得到画面帧序列。

在实际应用中,为了便于后续对每个画面帧的帧时长的识别,在构建画面帧序列的同时,还可以对每个画面帧的帧时长进行标记,如显示各画面帧的具体帧时长,当然也可以是在每个画面帧的起始位置标记时间点,以便于后续帧时长的计算。

202、对画面帧序列中的各画面帧分别进行单帧卡顿检测和连续帧卡顿检测,并基于检测的结果进行去重合并,得到卡顿检测结果。

本实施例中,分别采用预设的单帧卡顿检测策略和连续帧卡顿检测策略对画面帧序列中的各画面帧进行卡顿检测,分别得到单帧卡顿检测的结果和连续帧卡顿检测的结果,最后将两个结果进行合并、去重,从而得到一个完整的检测结果。

在另一实施例中,在对画面帧序列进行单帧卡顿检测和连续帧卡顿检测时,可以是以连续帧卡顿检测为主,单帧卡顿检测在连续帧卡顿检测的一个小循环结束后,利用单帧卡顿检测对连续帧卡顿检测的部分画面帧进行单帧检测。

在实际应用中,在连续帧卡顿检测过程中,在检测到画面帧序列中的第一个满足连续帧卡顿的初始条件的画面帧后,继续向后检测连续多个帧,多连续多个帧中不存在满足连续帧卡顿的初始条件的画面帧,则利用单帧卡顿检测对满足连续帧卡顿的初始条件的画面帧进行单帧卡顿的检测,基于检测结果得到单帧卡顿集合,同时在满足连续帧卡顿的初始条件的画面帧之后的画面帧重新执行连续帧卡顿的检测,依此循环,直到对画面帧序列中的所有画面帧卡顿检测结束,跳转至对检测结果的合并去重处理,得到最终的卡顿检测结果。

通过对上述实施例提供的方法的实施,由于设置了两个卡顿检测逻辑,即是单帧卡顿检测和连续卡顿检测,单帧卡顿检测可以对画面帧序列中各画面帧是否卡顿的检测,连续帧卡顿检测对画面帧序列中帧与帧之间的卡顿影响进行检测,分别得到单帧的检测结果和区间检测结果,最后将两者合并去重,这样的检测方案从根本上解决了现有技术遗漏检测的问题,提高卡顿检测的准确率。

参照图3,为本发明提供的卡顿检测方法的第二个实施例,该方法具体包括以下步骤:

301、获取待检测的画面帧序列,该画面帧序列包括若干个按照时间先后顺序排序的画面帧。

302、判断画面帧序列中的各画面帧的帧时长是否大于第一预设值,并提取大于第一预设值的画面帧生成单帧卡顿集合。

该第一预设值为基于用户视觉观感卡顿的帧时间长度值,即是单帧卡顿阈值:如单帧耗时>83.3ms,其中该阈值可以根据不同游戏类型,不同帧率,阈值可变。

将画面帧序列中各画面帧的帧时长与该帧时间长度值进行比对,基于对比的结果对画面帧序列进行标记,具体的可以通过复制画面帧序列,然后基于每个画面帧的对比结果对对应的画面帧进行标记,优选的对帧时长大于第一预设值的画面帧做卡顿的标记,如标记颜色或者是特殊的标记符号等,从而得到单帧卡顿集合,该单帧卡顿集合可以理解为是带有单帧卡顿标记的画面帧序列。

303、从画面帧序列中提取出满足连续帧卡顿检测条件的卡顿帧区间,得到连续帧卡顿集合。

本实施例中,该卡顿帧区间包括至少两个画面帧,连续帧卡顿检测条件包括单帧卡顿的帧时长和连续多帧的总卡顿时长,如单帧耗时>64ms且连续卡顿帧总耗时>200ms。

在另一实施方式中,对于连续帧卡顿的检测具体是按照时间顺序,在检测到所述画面帧序列中存在帧时长大于第二预设值的画面帧时,将大于所述第二预设值的画面帧作为连续卡顿起点,并继续检测所述连续卡顿起点后帧时长大于所述第二预设值的目标画面帧,直到检测不到所述目标画面帧;其中,所述目标画面帧与所述连续卡顿起点之间间隔N个画面帧,所述第二预设值小于所述第一预设值,N大于等于1;将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间,得到连续帧卡顿集合。

具体是,基于连续帧卡顿检测条件中的单帧卡顿的帧时长从画面帧序列中依序检测,在检测到有大于单帧卡顿的帧时长(即是第二预设值)时,启动连续多帧的总卡顿时长的检测,其中,连续多帧可以是至少三帧。

在检测到同时满足上述的两个条件时,则确定该段画面帧为连续帧卡顿区间。

在另一实施例中,所述将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间,得到连续帧卡顿集合,包括:

将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间;

计算所述连续卡顿帧集合中各卡顿帧区间的卡顿帧总时长,其中,所述卡顿帧总时长为对应卡顿帧区间内所有大于第二预设值的画面帧的帧时长总和;

判断各所述卡顿帧区间的卡顿帧总时长是否大于第三预设值,得到判断结果,其中,所述第二预设值大于所述第一预设值;

选择所述判断结果中大于所述第三预设值的卡顿帧区间构建连续卡顿帧集合。

在本实施例中,对于连续帧卡顿的定义有以下两种情况:

第一种,连续多个画面帧的帧时长均大于第二预设值且大于预设的连续多帧的总卡顿时长,其中,包括连续多个画面帧的帧时长相等和不相同两种情况,如图4和5所示;第二种,每间隔一个画面帧存在一个画面帧的帧时长大于第二预设值且大于预设的连续多帧的总卡顿时长,如图6所示。

在另一种实施例中,所述按照时间顺序,在检测到所述画面帧序列中存在帧时长大于第二预设值的画面帧时,将大于所述第二预设值的画面帧作为连续卡顿起点,并继续检测所述连续卡顿起点后帧时长大于所述第二预设值的目标画面帧,直到检测不到所述目标画面帧,包括:

按照时间顺序,判断所述画面帧序列中各画面帧的帧时长是否大于第二预设值,并基于判断的结果提取第一个帧时长大于第二预设值的画面帧作为卡顿帧区间的连续卡顿起点;

判断所述连续卡顿起点之后的M个连续画面帧中是否存在大于所述第二预设值的目标画面帧;

若存在,则判断所述目标画面帧之后的M个连续画面帧中是否存在下一个目标画面帧,直到判断不存在为止;

若不存在,则丢弃所述连续卡顿起点,并判断所述连续卡顿起点之后的画面帧的帧时长是否大于第二预设值。

例如,设置连续帧卡顿检测的判断条件:第二预设值为64ms(阈值1),连续三个画面帧的连续卡顿帧总耗时为200ms(阈值2),基于上述阈值1和阈值2对画面帧序列(该画面帧序列包括ABCD四个画面帧)进行连续帧卡顿检测的步骤包括:

步骤1、基于阈值1对画面帧序列的画面帧依序检测,在检测到大于64ms(阈值1)的帧时长帧A后,A将作为连续卡顿区间的起点,纪录卡顿帧时长;

步骤2、以帧A为起点,检测帧A后的三个帧的帧时长,当然这里不一定是三个帧,可以根据实际情况进行调整;

步骤3、若检测三个帧的帧时长中没有符合卡顿帧时长阈值(阈值1)的帧,则帧A被舍弃,重新开始查找连续卡顿起点;其中是在三个帧之后的画面帧中检测新的连续卡顿起点;

步骤4、若检测三个帧的帧时长中有符合卡顿帧时长阈值(阈值1)的帧,假设3帧(BCD)中,BC均不满足帧时长,D满足(间隔帧最长的连续卡顿情况,阈值1),则纪录D为第二个卡顿帧,纪录帧时长;

步骤5、获得当前连续卡顿帧两个时长:从A开始到找到的最新卡顿帧为卡顿影响时长(A+B+C+D);从A到D,找到卡顿帧总时长(A+D)。然后继续向后查找符合卡顿(阈值1)的帧;

步骤6、继续检测,循环步骤2~5,直到在3个帧中找不到符合连续卡顿阈值1的卡顿帧,则统计暂停,统计一阶段结束;

在实际应用中,在进行3个帧的连续卡顿检测的同时,还可以通过设置时间来控制检测,例如若间隔超过48ms后,仍未找到下一个大于连续卡顿单帧阈值的卡顿帧,标记最后一个被纪录的卡顿帧In为结束帧。

步骤7、连续卡顿帧总时长(非影响时长)达到持续时长阈值(阈值2),则被认定为一个连续卡顿区,否则,该区间均被舍弃。

步骤8、循环1~7,找到所有连续卡顿区,得到连续帧卡顿集合。

在本实施例中,在判断所述起点之后的M个连续画面帧中不存在大于所述第二预设值的目标画面帧之后,还包括:

判断所述连续卡顿起点的帧时长是否大于所述第一预设值;

若是,则将所述连续卡顿起点更新至所述单帧卡顿集合中。

即是在舍弃帧A后,还可以进一步利用单帧卡顿检测对帧A进行检测,判断帧A的帧时长是否大于第一预设值,如上述的83.3ms,若大于,则识别单帧卡顿集合中是否存在帧A,若不存在则将帧A更新至单帧卡顿集合中。

在本实施例中,在对画面帧序列完成连续帧卡顿检测后,还包括:

检测所述连续卡顿帧集合中相邻两个卡顿帧区间的结尾与起始之间间隔的画面帧的数量是否小于第四预设值;其中该第四预设值为用户在视觉上无法察觉存在两个卡顿帧区间的最大间隔帧数;

若小于,则将相邻两个卡顿帧区间合并,得到新的卡顿帧区间;

若不小于,则继续对其他相邻两个卡顿帧区间进行检测。

在本实施例中,在所述将相邻两个卡顿帧区间合并,得到新的卡顿帧区间之后,还包括:

判断相邻两个卡顿帧区间的结尾与起始之间间隔的画面帧中是否存在大于所述第一预设值的画面帧;

若不存在,则基于相邻两个卡顿帧区间的卡顿帧总时长,计算所述新的卡顿帧区间的卡顿帧总时长;

若存在,则基于相邻两个卡顿帧区间的卡顿帧总时长和大于所述第一预设值的画面帧的帧时长,计算所述新的卡顿帧区间的卡顿帧总时长。

304、将单帧卡顿集合和连续帧卡顿集合进行重合并,得到卡顿检测结果。

具体的,通过识别所述单帧卡顿集合的各画面帧是否存在所述连续帧卡顿集合的卡顿帧区间中;若存在,则将对应的画面帧从所述单帧卡顿集合中删除,并将删除后的单帧卡顿集合与所述连续帧卡顿集合合并,得到卡顿检测结果。

305、计算连续卡顿帧集合中各卡顿帧区间的卡顿影响时长,该卡顿影响时长为卡顿帧区间的起始到结尾的总时长。

306、基于各卡顿帧区间的卡顿帧总时长和卡顿影响时长,计算画面帧序列的流畅度。

本实施例中,检测单帧卡顿集合中的画面帧若在连续卡顿集合中的时间或卡顿区间内,则将该画面帧从单帧卡顿集合中剔除。

以及,若相邻卡顿区的结尾与起始间隔小于30帧(第四预设值),则累加合并为一个卡顿区,并更新数据,其中,更新的数据包括卡顿影响时长:最新卡顿区间起始到结尾总时长;卡顿帧总时长:若间隔30帧内,均为正常帧,两个区间的卡顿帧总时长直接累加即可,若间隔30帧内存在单帧卡顿帧,则为两个区间卡顿帧总时长之和+单帧卡顿帧时长,并从单帧卡顿集合中剔除该单帧卡顿帧。

在本实施例中,在对卡顿帧区间进行合并的过程中,还包括将卡顿帧区间转换为单帧卡顿。具体的,在统计A到D之间卡顿帧时长总和,若超过连续卡顿总时长阈值,判断卡顿帧数量为1,则为单帧卡顿,超过1,则记为一个连续卡顿;不超过连续卡顿总时长阈值,判断是否存在超过单帧卡顿阈值的卡顿帧,存在则保留为对应单帧卡顿,其他数据全部舍弃。

综上,通过对上述提供的方法的实施例,利用单帧卡顿检测和连续帧卡顿检测,然后合并去重,得到检测结果,并基于检测结果计算流畅度,以达到以下效果:

1、从根本上解决了现有技术遗漏检测的问题,提高卡顿检测的准确率。

2、基于准确的卡顿信息,可获得更多维度的指标数据,如卡顿影响时长、卡顿组成帧信息、卡顿时间占比等,分析流畅度有足够的依据性和可信度。

3自动化检测卡顿点的代码,提升准确率的基础上,不会增大现有测试工作量。

4、主观流畅度评价存在巨大偏差;精确测试,严格标注完整测试的工作量巨大,更无法批量测试。本发明只需要基于已检测到的卡顿中标注出误判场景即可。

5、基于本发明的流畅度平台,人工标注卡顿成本也会进一步降低;产品可回溯到卡顿场景,利于分析卡顿情况;与平台配合,卡顿检测准确性可提升至100%。

上面对本发明实施例中卡顿检测方法进行了描述,下面对本发明实施例中卡顿检测装置进行描述,请参阅图7,本发明实施例中卡顿检测装置一个实施例包括:

获取模块710,用于获取待检测的画面帧序列,其中,所述画面帧序列包括若干个按照时间先后顺序排序的画面帧;

检测模块720,用于对所述画面帧序列中的各画面帧分别进行单帧卡顿检测和连续帧卡顿检测,并基于检测的结果进行去重合并,得到卡顿检测结果。

上述检测模块720具体用于:

判断所述画面帧序列中的各画面帧的帧时长是否大于第一预设值,并提取大于所述第一预设值的画面帧生成单帧卡顿集合;

从所述画面帧序列中提取出满足连续帧卡顿检测条件的卡顿帧区间,得到连续帧卡顿集合,其中,所述卡顿帧区间包括至少两个画面帧;

将所述单帧卡顿集合和所述连续帧卡顿集合进行重合并,得到卡顿检测结果。

上述检测模块720具体用于:

识别所述单帧卡顿集合的各画面帧是否存在所述连续帧卡顿集合的卡顿帧区间中;

若存在,则将对应的画面帧从所述单帧卡顿集合中删除,并将删除后的单帧卡顿集合与所述连续帧卡顿集合合并,得到卡顿检测结果。

上述检测模块720具体用于:

按照时间顺序,在检测到所述画面帧序列中存在帧时长大于第二预设值的画面帧时,将大于所述第二预设值的画面帧作为连续卡顿起点,并继续检测所述连续卡顿起点后帧时长大于所述第二预设值的目标画面帧,直到检测不到所述目标画面帧;其中,所述目标画面帧与所述连续卡顿起点之间间隔N个画面帧,所述第二预设值小于所述第一预设值,N大于等于1;

将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间,得到连续帧卡顿集合。

上述检测模块720具体用于:

按照时间顺序,判断所述画面帧序列中各画面帧的帧时长是否大于第二预设值,并基于判断的结果提取第一个帧时长大于第二预设值的画面帧作为卡顿帧区间的连续卡顿起点;

判断所述连续卡顿起点之后的M个连续画面帧中是否存在大于所述第二预设值的目标画面帧;

若存在,则判断所述目标画面帧之后的M个连续画面帧中是否存在下一个目标画面帧,直到判断不存在为止;

若不存在,则丢弃所述连续卡顿起点,并判断所述连续卡顿起点之后的画面帧的帧时长是否大于第二预设值。

上述检测模块720具体还用于:

判断所述连续卡顿起点的帧时长是否大于所述第一预设值;

若是,则将所述连续卡顿起点更新至所述单帧卡顿集合中。

上述检测模块720具体用于:

将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间;

计算所述连续卡顿帧集合中各卡顿帧区间的卡顿帧总时长,其中,所述卡顿帧总时长为对应卡顿帧区间内所有大于第二预设值的画面帧的帧时长总和;

判断各所述卡顿帧区间的卡顿帧总时长是否大于第三预设值,得到判断结果,其中,所述第二预设值大于所述第一预设值;

选择所述判断结果中大于所述第三预设值的卡顿帧区间构建连续卡顿帧集合。

上述检测模块720具体还用于:

检测所述连续卡顿帧集合中相邻两个卡顿帧区间的结尾与起始之间间隔的画面帧的数量是否小于第四预设值;

若小于,则将相邻两个卡顿帧区间合并,得到新的卡顿帧区间。

上述检测模块720具体还用于:

判断相邻两个卡顿帧区间的结尾与起始之间间隔的画面帧中是否存在大于所述第一预设值的画面帧;

若不存在,则基于相邻两个卡顿帧区间的卡顿帧总时长,计算所述新的卡顿帧区间的卡顿帧总时长;

若存在,则基于相邻两个卡顿帧区间的卡顿帧总时长和大于所述第一预设值的画面帧的帧时长,计算所述新的卡顿帧区间的卡顿帧总时长。

上述卡顿检测装置还包括评估模块730,具体用于:

计算所述连续卡顿帧集合中各卡顿帧区间的卡顿影响时长,其中,所述卡顿影响时长为所述卡顿帧区间的起始到结尾的总时长;

基于各卡顿帧区间的所述卡顿帧总时长和所述卡顿影响时长,计算所述画面帧序列的流畅度。

本发明实施例中,所述卡顿检测装置运行上述卡顿检测方法,通过设置单帧卡顿检测和连续卡顿检测,单帧卡顿检测可以对画面帧序列中各画面帧是否卡顿的检测,连续帧卡顿检测对画面帧序列中帧与帧之间的卡顿影响进行检测,分别得到单帧的检测结果和区间检测结果,最后将两者合并去重,这样的检测方案从根本上解决了现有技术遗漏检测的问题,提高卡顿检测的准确率。

本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述卡顿检测方法。该电子设备可以是服务器,也可以是终端设备。

参见图8所示,该电子设备包括处理器800和存储器801,该存储器801存储有能够被处理器800执行的机器可执行指令,该处理器800执行机器可执行指令以实现上述卡顿检测方法。

进一步地,图8所示的电子设备还包括总线802和通信接口803,处理器800、通信接口803和存储器801通过总线802连接。

其中,存储器801可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口803(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线802可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器800可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器800中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器800可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器800读取存储器801中的信息,结合其硬件完成如下步骤:

获取待检测的画面帧序列,其中,所述画面帧序列包括若干个按照时间先后顺序排序的画面帧;

对所述画面帧序列中的各画面帧分别进行单帧卡顿检测和连续帧卡顿检测,并基于检测的结果进行去重合并,得到卡顿检测结果。

上述所述对所述画面帧序列中的各画面帧分别进行单帧卡顿检测和连续帧卡顿检测,并基于检测的结果进行去重合并,得到卡顿检测结果,包括:

判断所述画面帧序列中的各画面帧的帧时长是否大于第一预设值,并提取大于所述第一预设值的画面帧生成单帧卡顿集合;

从所述画面帧序列中提取出满足连续帧卡顿检测条件的卡顿帧区间,得到连续帧卡顿集合,其中,所述卡顿帧区间包括至少两个画面帧;

将所述单帧卡顿集合和所述连续帧卡顿集合进行重合并,得到卡顿检测结果。

上述所述将所述单帧卡顿集合和所述连续帧卡顿集合进行重合并,得到卡顿检测结果,包括:

识别所述单帧卡顿集合的各画面帧是否存在所述连续帧卡顿集合的卡顿帧区间中;

若存在,则将对应的画面帧从所述单帧卡顿集合中删除,并将删除后的单帧卡顿集合与所述连续帧卡顿集合合并,得到卡顿检测结果。

上述所述从所述画面帧序列中提取出满足连续帧卡顿检测条件的卡顿帧区间,得到连续帧卡顿集合,包括:

按照时间顺序,在检测到所述画面帧序列中存在帧时长大于第二预设值的画面帧时,将大于所述第二预设值的画面帧作为连续卡顿起点,并继续检测所述连续卡顿起点后帧时长大于所述第二预设值的目标画面帧,直到检测不到所述目标画面帧;其中,所述目标画面帧与所述连续卡顿起点之间间隔N个画面帧,所述第二预设值小于所述第一预设值,N大于等于1;

将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间,得到连续帧卡顿集合。

上述所述按照时间顺序,在检测到所述画面帧序列中存在帧时长大于第二预设值的画面帧时,将大于所述第二预设值的画面帧作为连续卡顿起点,并继续检测所述连续卡顿起点后帧时长大于所述第二预设值的目标画面帧,直到检测不到所述目标画面帧,包括:

按照时间顺序,判断所述画面帧序列中各画面帧的帧时长是否大于第二预设值,并基于判断的结果提取第一个帧时长大于第二预设值的画面帧作为卡顿帧区间的连续卡顿起点;

判断所述连续卡顿起点之后的M个连续画面帧中是否存在大于所述第二预设值的目标画面帧;

若存在,则判断所述目标画面帧之后的M个连续画面帧中是否存在下一个目标画面帧,直到判断不存在为止;

若不存在,则丢弃所述连续卡顿起点,并判断所述连续卡顿起点之后的画面帧的帧时长是否大于第二预设值。

上述在判断所述起点之后的M个连续画面帧中不存在大于所述第二预设值的目标画面帧之后,还包括:

判断所述连续卡顿起点的帧时长是否大于所述第一预设值;

若是,则将所述连续卡顿起点更新至所述单帧卡顿集合中。

上述所述将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间,得到连续帧卡顿集合,包括:

将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间;

计算所述连续卡顿帧集合中各卡顿帧区间的卡顿帧总时长,其中,所述卡顿帧总时长为对应卡顿帧区间内所有大于第二预设值的画面帧的帧时长总和;

判断各所述卡顿帧区间的卡顿帧总时长是否大于第三预设值,得到判断结果,其中,所述第二预设值大于所述第一预设值;

选择所述判断结果中大于所述第三预设值的卡顿帧区间构建连续卡顿帧集合。

上述在所述选择所述判断结果中大于所述第三预设值的卡顿帧区间构建连续卡顿帧集合之后,还包括:

检测所述连续卡顿帧集合中相邻两个卡顿帧区间的结尾与起始之间间隔的画面帧的数量是否小于第四预设值;

若小于,则将相邻两个卡顿帧区间合并,得到新的卡顿帧区间。

上述在所述将相邻两个卡顿帧区间合并,得到新的卡顿帧区间之后,还包括:

判断相邻两个卡顿帧区间的结尾与起始之间间隔的画面帧中是否存在大于所述第一预设值的画面帧;

若不存在,则基于相邻两个卡顿帧区间的卡顿帧总时长,计算所述新的卡顿帧区间的卡顿帧总时长;

若存在,则基于相邻两个卡顿帧区间的卡顿帧总时长和大于所述第一预设值的画面帧的帧时长,计算所述新的卡顿帧区间的卡顿帧总时长。

上述在所述将所述单帧卡顿集合和所述连续帧卡顿集合进行重合并,得到卡顿检测结果之后,还包括:

计算所述连续卡顿帧集合中各卡顿帧区间的卡顿影响时长,其中,所述卡顿影响时长为所述卡顿帧区间的起始到结尾的总时长;

基于各卡顿帧区间的所述卡顿帧总时长和所述卡顿影响时长,计算所述画面帧序列的流畅度。

综上,通过对待检测的画面帧序列中的各画面帧分别进行单帧卡顿检测和连续帧卡顿检测,然后基于两个检测的结果进行去重合并,得到最终的卡顿检测结果,这样的方式不仅可以检测帧的卡顿,还解决了现有的卡顿检测方案存在遗漏检测和检测不准确的问题。

本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现如下步骤:

获取待检测的画面帧序列,其中,所述画面帧序列包括若干个按照时间先后顺序排序的画面帧;

对所述画面帧序列中的各画面帧分别进行单帧卡顿检测和连续帧卡顿检测,并基于检测的结果进行去重合并,得到卡顿检测结果。

上述所述对所述画面帧序列中的各画面帧分别进行单帧卡顿检测和连续帧卡顿检测,并基于检测的结果进行去重合并,得到卡顿检测结果,包括:

判断所述画面帧序列中的各画面帧的帧时长是否大于第一预设值,并提取大于所述第一预设值的画面帧生成单帧卡顿集合;

从所述画面帧序列中提取出满足连续帧卡顿检测条件的卡顿帧区间,得到连续帧卡顿集合,其中,所述卡顿帧区间包括至少两个画面帧;

将所述单帧卡顿集合和所述连续帧卡顿集合进行重合并,得到卡顿检测结果。

上述所述将所述单帧卡顿集合和所述连续帧卡顿集合进行重合并,得到卡顿检测结果,包括:

识别所述单帧卡顿集合的各画面帧是否存在所述连续帧卡顿集合的卡顿帧区间中;

若存在,则将对应的画面帧从所述单帧卡顿集合中删除,并将删除后的单帧卡顿集合与所述连续帧卡顿集合合并,得到卡顿检测结果。

上述所述从所述画面帧序列中提取出满足连续帧卡顿检测条件的卡顿帧区间,得到连续帧卡顿集合,包括:

按照时间顺序,在检测到所述画面帧序列中存在帧时长大于第二预设值的画面帧时,将大于所述第二预设值的画面帧作为连续卡顿起点,并继续检测所述连续卡顿起点后帧时长大于所述第二预设值的目标画面帧,直到检测不到所述目标画面帧;其中,所述目标画面帧与所述连续卡顿起点之间间隔N个画面帧,所述第二预设值小于所述第一预设值,N大于等于1;

将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间,得到连续帧卡顿集合。

上述所述按照时间顺序,在检测到所述画面帧序列中存在帧时长大于第二预设值的画面帧时,将大于所述第二预设值的画面帧作为连续卡顿起点,并继续检测所述连续卡顿起点后帧时长大于所述第二预设值的目标画面帧,直到检测不到所述目标画面帧,包括:

按照时间顺序,判断所述画面帧序列中各画面帧的帧时长是否大于第二预设值,并基于判断的结果提取第一个帧时长大于第二预设值的画面帧作为卡顿帧区间的连续卡顿起点;

判断所述连续卡顿起点之后的M个连续画面帧中是否存在大于所述第二预设值的目标画面帧;

若存在,则判断所述目标画面帧之后的M个连续画面帧中是否存在下一个目标画面帧,直到判断不存在为止;

若不存在,则丢弃所述连续卡顿起点,并判断所述连续卡顿起点之后的画面帧的帧时长是否大于第二预设值。

上述在判断所述起点之后的M个连续画面帧中不存在大于所述第二预设值的目标画面帧之后,还包括:

判断所述连续卡顿起点的帧时长是否大于所述第一预设值;

若是,则将所述连续卡顿起点更新至所述单帧卡顿集合中。

上述所述将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间,得到连续帧卡顿集合,包括:

将所述连续卡顿起点、最后一个所述目标画面帧和两者之间的所有画面帧生成卡顿帧区间;

计算所述连续卡顿帧集合中各卡顿帧区间的卡顿帧总时长,其中,所述卡顿帧总时长为对应卡顿帧区间内所有大于第二预设值的画面帧的帧时长总和;

判断各所述卡顿帧区间的卡顿帧总时长是否大于第三预设值,得到判断结果,其中,所述第二预设值大于所述第一预设值;

选择所述判断结果中大于所述第三预设值的卡顿帧区间构建连续卡顿帧集合。

上述在所述选择所述判断结果中大于所述第三预设值的卡顿帧区间构建连续卡顿帧集合之后,还包括:

检测所述连续卡顿帧集合中相邻两个卡顿帧区间的结尾与起始之间间隔的画面帧的数量是否小于第四预设值;

若小于,则将相邻两个卡顿帧区间合并,得到新的卡顿帧区间。

上述在所述将相邻两个卡顿帧区间合并,得到新的卡顿帧区间之后,还包括:

判断相邻两个卡顿帧区间的结尾与起始之间间隔的画面帧中是否存在大于所述第一预设值的画面帧;

若不存在,则基于相邻两个卡顿帧区间的卡顿帧总时长,计算所述新的卡顿帧区间的卡顿帧总时长;

若存在,则基于相邻两个卡顿帧区间的卡顿帧总时长和大于所述第一预设值的画面帧的帧时长,计算所述新的卡顿帧区间的卡顿帧总时长。

上述在所述将所述单帧卡顿集合和所述连续帧卡顿集合进行重合并,得到卡顿检测结果之后,还包括:

计算所述连续卡顿帧集合中各卡顿帧区间的卡顿影响时长,其中,所述卡顿影响时长为所述卡顿帧区间的起始到结尾的总时长;

基于各卡顿帧区间的所述卡顿帧总时长和所述卡顿影响时长,计算所述画面帧序列的流畅度。

综上,通过设置单帧卡顿检测和连续卡顿检测,单帧卡顿检测可以对画面帧序列中各画面帧是否卡顿的检测,连续帧卡顿检测对画面帧序列中帧与帧之间的卡顿影响进行检测,分别得到单帧的检测结果和区间检测结果,最后将两者合并去重,这样的检测方案从根本上解决了现有技术遗漏检测的问题,提高卡顿检测的准确率。

本发明实施例所提供的卡顿检测方法及相关设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种动作捕捉节点的标定方法、标定系统及标定基站
  • 一种倍增夹角测量仪标定量程的标定系统
  • 一种提高夹角测量仪标定精度的标定系统
技术分类

06120116524852