一种游戏画面卡顿检测方法与流程

文档序号:32006489发布日期:2022-11-02 13:27阅读:206来源:国知局
一种游戏画面卡顿检测方法与流程

1.本发明涉及图像处理技术领域,具体涉及一种游戏画面卡顿检测方法。


背景技术:

2.卡顿检测是对传输延迟、运算延迟等产生的卡顿问题进行检测的过程,由于卡顿问题通常会使得用户产生视觉上的不连贯感,导致在视频播放或者在游戏过程中的视觉体验较差。随着手机游戏类型越来越丰富,手机性能上的指标也越来越多,为了给用户更好的游戏体验,是否游戏画面卡顿逐渐成为了评估手机游戏性能指标的一个重要方面。
3.目前,现有的对游戏卡顿进行检测的方法多为根据每秒传输帧数进行卡顿的判断,当每秒传输帧数小于一定阈值时认为其发生了卡顿。由于云端服务器在游戏运行过程中的运算量较大,易产生卡顿情况,导致云端服务器生成的视频流本身即为存在卡顿情况的视频流,但是终端播放视频流的过程中并不存在终端导致的卡顿,故仅通过每秒传输帧数不能对游戏运行过程中的卡顿情况进行准确的检测。


技术实现要素:

4.为了解决上述技术问题,本发明的目的在于提供一种游戏画面卡顿检测方法,所采用的技术方案具体如下:
5.获取连续帧游戏图像,预处理所述游戏图像得到游戏灰度图;
6.对于单帧游戏灰度图,获取所述单帧游戏灰度图的灰度游程矩阵和对应的灰度游走长度;获取所述游戏灰度图中的马赛克区域,根据所述马赛克区域的面积的占比和所述灰度游走长度计算第一卡顿概率;
7.计算相邻帧游戏灰度图之间相对应位置处的像素点的灰度差异,根据所述灰度差异和所述第一卡顿概率计算第二卡顿概率;获取所述第二卡顿概率大于预设卡顿阈值的单帧游戏灰度图作为卡顿图像;
8.获取多张所述卡顿图像对应的时间标记序列,根据所述时间标记序列中连续时间标记的连续程度和断开次数得到所述卡顿图像的连续时间长度和卡顿次数;根据所述连续时间长度、所述第二卡顿概率、所述卡顿次数计算整体卡顿程度。
9.优选的,所述获取马赛克区域,包括:
10.对于各个灰度级的灰度游走长度,每个灰度游走长度对应多组不同的像素点集合,获取各所述像素点集合的中间像素点,将所述中间像素点映射至直角坐标系,得到中间像素点的坐标;
11.由相同灰度级的相同最大灰度游走长度的中间像素点构成中间像素点序列;获取中间像素点序列中横坐标相同,纵坐标之间的差值等于预设纵坐标差值的中间像素点划分为一组,对应的将中间像素点对应的像素点集合划分为一组,得到多个组别;每个组别对应为一个马赛克区域。
12.优选的,所述根据所述马赛克区域的面积的占比和所述灰度游走长度计算第一卡
顿概率,包括:
13.所述第一卡顿概率的计算公式为:
[0014][0015]
其中,pa为第a帧游戏灰度图的第一卡顿概率;n
ij
为马赛克区域的数量;ρk(i,j)为第k个马赛克区域内的像素点数量;m为所述游戏灰度图的长;n为所述游戏灰度图的宽;s为所述游戏灰度图的灰度级数量;t为相同灰度级的最大灰度游走长度;jρk(i,j)为所述马赛克区域的面积;ρ(i,j)为在游戏灰度图像的0
°
方向上有连续j个灰度级为i的像素点出现的次数;i为灰度级i;j为灰度级对应的灰度游走长度。
[0016]
优选的,所述根据所述灰度差异和所述第一卡顿概率计算第二卡顿概率,包括:
[0017]
所述第二卡顿概率的计算公式为:
[0018][0019]
其中,pa′
为第a帧游戏灰度图的第二卡顿概率;pa为第a帧游戏灰度图的所述第一卡顿概率;exp()以自然常数为底的指数函数;m为所述游戏灰度图的长;n为所述游戏灰度图的宽;δhb为相邻帧游戏灰度图之间的第b个相对应位置处的像素点的灰度差异;p
a-1
为第a-1帧游戏灰度图的所述第一卡顿概率。
[0020]
优选的,所述获取多张所述卡顿图像对应的时间标记序列,根据所述时间标记序列中连续时间标记的连续程度和断开次数得到所述卡顿图像的连续时间长度和卡顿次数,包括:
[0021]
获取每张所述单帧游戏灰度图对应的时间标记,根据每张所述卡顿图像对应的时间标记构建时间标记序列;
[0022]
将所述时间标记序列中连续时间标记的连续长度作为卡顿图像的连续时间长度;
[0023]
获取所述时间标记序列中连续时间标记的连续次数和非连续时间标记的非连续次数;所述连续次数和所述非连续次数的和作为所述卡顿次数。
[0024]
优选的,所述根据所述连续时间长度、所述第二卡顿概率、所述卡顿次数计算整体卡顿程度,包括:
[0025]
所述整体卡顿程度的计算公式为:
[0026][0027]
其中,q为所述整体卡顿程度;lc为第c段连续时间标记的连续时间长度;l
c-1
为第c-1段连续时间标记的连续时间长度;l
c+1
为第c+1段连续时间标记的连续时间长度;pd′
为第d帧游戏灰度图的第二卡顿概率;nc为连续时间标记的数量。
[0028]
优选的,所述预处理所述游戏图像得到游戏灰度图,包括:对所述游戏图像进行灰度化,得到所述游戏灰度图。
[0029]
本发明实施例至少具有如下有益效果:
[0030]
本发明实施例利用图像处理技术,首先获取连续帧游戏图像和对应的游戏灰度
图;对于单帧游戏灰度图,获取单帧游戏灰度图的灰度游程矩阵和对应的灰度游走长度;获取游戏灰度图中的马赛克区域,根据马赛克区域的面积的占比和灰度游走长度计算第一卡顿概率,首先根据当前竞技类游戏中游戏场景较为真实的特点,计算游戏画面中的纹理复杂度,为避免游戏画面本身纹理较为简单造成误检,结合相同游程之间的结构特征所得到各个游程产生的马赛克程度,判断当前图像中发生局部卡顿的概率,避免仅根据灰度变化判断卡顿的局限性。计算相邻帧游戏灰度图之间相对应位置处的像素点的灰度差异,根据灰度差异和第一卡顿概率计算第二卡顿概率,在单帧图像本身卡顿概率较低时,在上一帧的自身卡顿概率较低的情况下,根据当前图像与上一帧图像之间的灰度差异判断当前图像是否发生了单帧图像的整体卡顿,避免了因上一帧图像自身卡顿而将当前图像误检为卡顿现象的出现,提高系统检测的准确性。获取第二卡顿概率大于预设卡顿阈值的单帧游戏灰度图作为卡顿图像;获取多张卡顿图像对应的时间标记序列,根据时间标记序列中连续时间标记的连续程度和断开次数得到卡顿图像的连续时间长度和卡顿次数;根据连续时间长度、第二卡顿概率、卡顿次数计算整体卡顿程度。本发明通过对采集到的游戏图像的马赛克区域、卡顿图像的连续时间长度和卡顿次数进行分析,得到游戏画面的整体卡顿程度,实现对游戏画面的卡顿情况的实时检测。
附图说明
[0031]
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0032]
图1为本发明一个实施例所提供的一种游戏画面卡顿检测方法的方法流程图。
具体实施方式
[0033]
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种游戏画面卡顿检测方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
[0034]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
[0035]
本发明实施例提供了一种游戏画面卡顿检测方法的具体实施方法,该方法适用于游戏画面卡顿检测。该场景下对游戏画面进行屏幕录制,以得到连续帧游戏图像。为了解决仅通过每秒传输帧数不能对游戏运行过程中的卡顿情况进行准确的检测的问题,本发明实施例结合游戏画面的马赛克区域和游程长度,判断当前图像中发生局部卡顿的概率,通过对采集到的游戏图像的马赛克区域、卡顿图像的连续时间长度和卡顿次数进行分析,得到游戏画面的整体卡顿程度,实现对游戏画面的卡顿情况的实时检测,同时也提高了卡顿检测的准确性。
[0036]
下面结合附图具体的说明本发明所提供的一种游戏画面卡顿检测方法的具体方
案。
[0037]
请参阅图1,其示出了本发明一个实施例提供的一种游戏画面卡顿检测方法的步骤流程图,该方法包括以下步骤:
[0038]
步骤s100,获取连续帧游戏图像,预处理游戏图像得到游戏灰度图。
[0039]
对游戏在终端上的运行过程进行屏幕录制,得到游戏运行过程中的视频数据,由此得到游戏运行过程中的连续帧图像序列,也即得到连续帧游戏图像。对游戏图像进行灰度化处理,得到游戏灰度图。
[0040]
常规的图像卡顿检测是根据相邻帧图像之间的相似度来判断是否卡顿,当两帧游戏图像的相似度非常高时,认为发生了卡顿。但是由于游戏本身环境比较复杂,不排除部分区域相似度较高,例如在对游戏人物进行操作且游戏环境并不发生变化时,游戏人物的局部区域存在灰度变化,例如游戏人物披风的抖动,这种情况下相邻帧游戏图像之间的相似度较高,容易被误检成卡顿现象。除此之外,当游戏图像中发生局部卡顿时,如游戏画面出现马赛克时,当前游戏图像与上一帧游戏图像之间相似度较低,仅使用相似度来进行判断的方法会将其判断为正常现象,即非卡顿现象;但实际上当前时刻游戏图像已经发生了卡顿,故仅使用相似度来进行判断卡顿的方法对卡顿现象的检测方法存在一定的局限性。
[0041]
故在判断游戏画面是否出现了卡顿现象时,应首先判断游戏图像本身是否存在卡顿现象,也即是否存在有马赛克区域,当存在卡顿现象时,再结合相邻图像之间是否发生了灰度的变化,并根据卡顿持续时间以及卡顿出现频率确定游戏运行过程中的卡顿程度。
[0042]
步骤s200,对于单帧游戏灰度图,获取单帧游戏灰度图的灰度游程矩阵和对应的灰度游走长度;获取游戏灰度图中的马赛克区域,根据马赛克区域的面积的占比和灰度游走长度计算第一卡顿概率。
[0043]
对于一些竞技类游戏,如王者荣耀,其游戏画面往往更加精致,这也就意味着游戏画面中存在更多的细节信息,但是由硬件导致的游戏画面的局部卡顿,会导致产生游戏画面中存在马赛克的现象,使得游戏画面中的部分细节信息损失,因此可以根据当前游戏图像的细节复杂度判断当前游戏画面是否发生了卡顿。
[0044]
考虑到游戏场景较为丰富,但不排除游戏画面本身纹理较为简单,仅根据游戏图像的纹理复杂度判断当前游戏画面中是否发生卡顿准确性较低;游戏本身纹理简单与出现马赛克造成的纹理简单的区别在于:马赛克现象往往会导致多个大小不一的内部颜色相同的矩形色块,而在游戏场景设计过程中,为了使游戏场景更加真实,给人以身临其境的感觉,每一帧游戏画面通常需要模拟光照,以达到更加真实的游戏体验效果,而这些内部颜色相同的矩形色块较为突兀,严重影响画面体验感,所以游戏场景中一般不会出现如马赛克现象造成的多个大小不一的内部颜色相同的矩形色块。故还需要在纹理复杂度的基础上进一步考虑马赛克现象导致的异常程度,对当前游戏灰度图对应的卡顿概率进行进一步修正。
[0045]
对于任意单帧游戏灰度图,获取单帧游戏灰度图的灰度游程矩阵和对应的灰度游走长度。由于马赛克区域为一个连续分布的内部具有相同颜色的矩形区域,因此本发明在获取单帧游戏灰度图中θ=0
°
方向上的灰度游程矩阵过程中,除了需要获取各个灰度级的灰度游走长度,还需要记录同一灰度级,同一灰度游走长度对应的多组不同的像素点集合,记录各组像素点集合的中间像素点,将中间像素点映射至直角坐标系,得到中间像素点的
坐标。记得到的灰度游程矩阵为ds×
t
,其中s为单帧游戏灰度图中的灰度级数量,也即灰度游程矩阵的行数;t为相同灰度级所游走的最大灰度游走长度。第i个灰度级在最大灰度游走长度为j时所对应的中间像素点序列为l
ij
,则该中间像素点序列中所包含的中间像素点的数量为ρ(i,j),ρ(i,j)也即为在游戏灰度图像的0
°
方向上有连续j个灰度级为i的像素点出现的次数。
[0046]
当图像因为卡顿出现马赛克现象时,会导致图像中的细节信息减少,变化成了大块的马赛克区域,而马赛克区域是连续分布的,因此本发明对马赛克区域进行划分。获取马赛克区域的步骤,具体的:对于各个灰度级的灰度游走长度,每个灰度游走长度对应多组不同的像素点集合,获取各像素点集合的中间像素点,将中间像素点映射至直角坐标系,得到中间像素点的坐标;由相同灰度级的相同最大灰度游走长度的中间像素点构成中间像素点序列;获取中间像素点序列中横坐标相同,纵坐标之间的差值等于预设纵坐标差值的中间像素点划分为一组,对应的将中间像素点对应的像素点集合划分为一组,得到多个组别;每个组别对应为一个马赛克区域。在本发明实施例中预设纵坐标差值的取值为1,在其他实施例中实施者可根据实际情况调整该取值。其中,第k个组别的像素点数量为ρk(i,j),则该组别对应的马赛克区域的面积为jρk(i,j),j为灰度级对应的灰度游走长度。
[0047]
当图像因为卡顿出现马赛克现象时,会导致游戏灰度图中的细节信息减少,变化成了大块的马赛克区域,即产生了同灰度连续分布的范围变广,即图像的长游程优势较大。根据马赛克区域的面积的占比和灰度游走长度计算第一卡顿概率。
[0048]
该第a帧游戏灰度图的第一卡顿概率pa的计算公式为:
[0049][0050]
其中,n
ij
为马赛克区域的数量;ρk(i,j)为第k个马赛克区域内的像素点数量;m为游戏灰度图的长;n为游戏灰度图的宽;s为游戏灰度图的灰度级数量;t为相同灰度级的最大灰度游走长度;jρk(i,j)为马赛克区域的面积;ρ(i,j)为在游戏灰度图像的0
°
方向上有连续j个灰度级为i的像素点出现的次数;i为灰度级i;j为灰度级对应的灰度游走长度。
[0051]
其中,表示当前游戏灰度图的长游程优势,用以评估游戏灰度图中的纹理复杂度。表示第i个灰度级在游程长度为j时所产生的马赛克区域占整张图像面积的比例,用以评估图像中由第i个灰度级在游程长度为j产生的马赛克区域的马赛克程度;由于jρk(i,j)表示的是马赛克的面积占比,而单个像素点本身就一种颜色,此时并不能将其认为是马赛克现象,因此本发明中的马赛克区域需要满足面积大于1的条件。
[0052]
当游戏灰度图出现卡顿时,会出现大块的同灰度连续分布的区域,长游程优势虽然可以在一定程度上评估图像的纹理复杂度,但游戏场景越来越精致,包含的细节越来越多,游戏场景也具有一定的复杂度,故并不能直接将游戏灰度图的长游程优势作为游戏灰度图是否卡顿的判断标准;且长游程优势只能对单一方向上的纹理复杂度评估,丢失了行与行之间的结构信息,因此本发明以该长游程优势作为卡顿权重,当马赛克区域面积占比越大,图像的卡顿情况越严重,结合第i个灰度级在游程长度为j时产生的长游程优势进行修正,由此得到当前图像的第一卡顿概率。
[0053]
除了单张图像本身发生卡顿,还有画面在整体播放中的不连贯,此类卡顿的特点在于其显示的图像本身是正常的,但是某一帧图像在显示屏上显示的时间过长,也就是说通过对马赛克区域的识别并不能对此类卡顿进行检测,因此还需要对整体图像序列是否流畅进行进一步分析。
[0054]
根据相邻帧图像中是否存在灰度变化判断是否存在单帧图像显示时间过长的现象,获取相邻帧游戏灰度图中相对应位置处的像素点的灰度差异,作为各个像素点的灰度变化程度。根据灰度差异和第一卡顿概率计算第二卡顿概率。
[0055]
该第a帧游戏灰度图的第二卡顿概率pa′
的计算公式为:
[0056][0057]
其中,pa为第a帧游戏灰度图的第一卡顿概率;exp()以自然常数为底的指数函数;m为游戏灰度图的长;n为游戏灰度图的宽;δhb为相邻帧游戏灰度图之间的第b个相对应位置处的像素点的灰度差异;p
a-1
为第a-1帧游戏灰度图的第一卡顿概率。
[0058]
当图像本身卡顿概率较小时,结合相邻帧图像中同一位置像素点的灰度差异,灰度差异越大,表示图像中存在卡顿的概率越小。但是当上一帧图像存在本身卡顿,表明根据与上一帧图像灰度差异情况判断是否卡顿容易造成误检,即当当前帧正常时,由于其自身卡顿概率较小,而上一帧存在自身局部卡顿现象,此时再根据与上一帧图像之间的灰度差异进行判断会将当前帧图像错误的判断为卡顿图像,因此在这种情况下需要以其自身的卡顿程度为准。
[0059]
即当图像本身卡顿较为严重,对应的第一卡顿概率较大时,以本身第一卡顿概率为主;当图像本身不存在卡顿,对应第一卡顿概率较小时,需要结合相邻帧图像之间是否存在灰度变化,以区分其是否存在整体卡顿程度。
[0060]
基于每帧游戏灰度图对应得到的第二卡顿概率。获取第二卡顿概率大于预设卡顿阈值的单帧游戏灰度图作为卡顿图像。在本发明实施例中预设卡顿阈值的取值为0.5,在其他实施例中实施者可根据实际情况调整该取值。
[0061]
步骤s300,获取多张卡顿图像对应的时间标记序列,根据时间标记序列中连续时间标记的连续程度和断开次数得到卡顿图像的连续时间长度和卡顿次数;根据连续时间长度、第二卡顿概率、卡顿次数计算整体卡顿程度。
[0062]
每次卡顿持续时间越长,卡顿程度越大;卡顿发生的频率越高,卡顿的程度越大。获取每张单帧游戏灰度图对应的时间标记,按照时间顺序进行排列。
[0063]
获取多张卡顿图像对应的时间标记序列。根据得到的存在卡顿的卡顿图像的时间标记构建所对应的时间标记序列。该时间标记序列按照卡顿图像对应的时间的先后顺序进行排列。如5张单帧游戏灰度图的时间标记分别为:第一张单帧游戏灰度图的时间标记为1,第二张单帧游戏灰度图的时间标记为2,第三张单帧游戏灰度图的时间标记为3,第四张单帧游戏灰度图的时间标记为4,第五张单帧游戏灰度图的时间标记为5;其中,第二张单帧游戏灰度图、第四张单帧游戏灰度图和第五张单帧游戏灰度图为卡顿图像,则对应的这三张卡顿图像对应的时间标记序列为{2,4,5}。
[0064]
根据时间标记序列中连续时间标记的连续程度和断开次数得到卡顿图像的连续时间长度和卡顿次数。具体的:将时间标记序列中连续时间标记的连续长度作为卡顿图像
的连续时间长度;获取时间标记序列中的连时间标记的连续次数和非连续时间标记的非连续次数,该连续次数和非连续系数的和作为时间标记序列中的断开次数,也即卡顿次数。如时间标记序列{2,4,5,6,8,10,12,13},则对应的连续的时间标记的连续时间长度为由{4,5,6}得到的3和由{12,13}得到的2;则对应的连续次数为{4,5,6}和{12,13}两个连续的时间标记得到的2,对应的非连续次数为2,8,10三个非连续的时间标记得到的3,则对应的卡顿次数为5。
[0065]
根据连续时间长度、第二卡顿概率、卡顿次数得到整体卡顿程度。
[0066]
该整体卡顿程度q的计算公式为:
[0067][0068]
其中,lc为第c段连续时间标记的连续时间长度;l
c-1
为第c-1段连续时间标记的连续时间长度;l
c+1
为第c+1段连续时间标记的连续时间长度;pd′
为第d帧游戏灰度图的第二卡顿概率;nc为连续时间标记的数量。
[0069]
当连续时间长度越长,卡顿发生的概率越高,其对应的卡顿程度越高,由于不同图像的卡顿概率是通过对游戏灰度图中存在的马赛克区域进行评估的,因此图像的卡顿概率也可以从一定程度上反映图像的整体卡顿程度,故对游戏整体的卡顿程度评估需要结合单张图像的卡顿程度以及卡顿发生的频率进行综合评判。得到的整体卡顿程度即可反映出游戏画面的卡顿情况,整体卡顿程度越大,则对应的游戏画面的卡顿情况越严重;反之,整体卡顿程度越小,则对应的游戏画面的卡顿情况越轻。
[0070]
综上所述,本发明实施例利用图像处理技术,首先获取连续帧游戏图像,预处理游戏图像得到游戏灰度图;对于单帧游戏灰度图,获取单帧游戏灰度图的灰度游程矩阵和对应的灰度游走长度;获取游戏灰度图中的马赛克区域,根据马赛克区域的面积的占比和灰度游走长度计算第一卡顿概率;计算相邻帧游戏灰度图之间相对应位置处的像素点的灰度差异,根据灰度差异和第一卡顿概率计算第二卡顿概率;获取第二卡顿概率大于预设卡顿阈值的单帧游戏灰度图作为卡顿图像;获取多张卡顿图像对应的时间标记序列,根据时间标记序列中连续时间标记的连续程度和断开次数得到卡顿图像的连续时间长度和卡顿次数;根据连续时间长度、第二卡顿概率、卡顿次数计算整体卡顿程度。本发明通过对采集到的游戏图像的马赛克区域、卡顿图像的连续时间长度和卡顿次数进行分析,得到游戏画面的整体卡顿程度,实现对游戏画面的卡顿情况的实时检测。
[0071]
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0072]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0073]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1