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

一种白屏检测方法、装置、计算机设备及计算机可读存储介质

文献发布时间:2023-06-19 19:28:50


一种白屏检测方法、装置、计算机设备及计算机可读存储介质

技术领域

本发明涉及计算机应用技术领域,尤其涉及一种白屏检测方法、装置、计算机设备及计算机可读存储介质。

背景技术

webview指的是客户端的web页面容器。当出现一些异常,比如内核崩溃、执行异常、或404错误时整个web页面就会显示一片空白。白屏检测指的是在合适的加载时机对当前webview可视区域截图,根据是否为空白来判断web页面加载是否正常。现有的白屏检测方法中,基于像素点遍历的检测方法实现简单,技术成熟但计算效率低;基于矩阵运算的检测方法时间复杂度高,在智能手机等移动设备上计算速度慢;基于检测模型识别的检测方法需要进行模型训练和匹配模型,成本高且计算复杂难以在计算能力有限的移动设备上落地。因此需要一种同时满足计算简单、快速、且效率高的白屏检测方法。

发明内容

本发明的目的在于提供一种白屏检测方法、装置、计算机设备及计算机可读存储介质,旨在解决现有技术中白屏检测方法无法同时满足计算简单、快速、且效率高的问题。

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

S101、截取待检测设备的屏幕生成图片数据,设置白点计数初始值为零,遍历计数初始值为零;

S102、读取所述图片数据的起始连续N个像素点数据,所述遍历计数加1;

S103、调用SIMD指令集的向量运算指令对所述N个像素点数据进行点乘运算,判断所述N个像素点是否全部为白点,当所述N个像素点全部为白点时,白点计数加1;

S104、判断所述图片数据是否全部读取完毕,当没有全部读取完毕时,读取所述图片数据的下一组连续N个像素点数据,并执行步骤S103,当所述图片数据全部读取完毕后,判断白点计数与遍历计数的比值是否大于阈值,当所述白点计数与遍历计数的比值大于阈值时判断为白屏,否则不是白屏。

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

数据生成模块,用于截取待检测设备的屏幕生成图片数据,设置白点计数初始值为零,遍历计数初始值为零;

数据读取模块,用于读取所述图片数据的起始连续N个像素点数据,所述遍历计数加1;

运算模块,用于调用SIMD指令集的向量运算指令对所述N个像素点数据进行点乘运算,判断所述N个像素点是否全部为白点,当所述N个像素点全部为白点时,白点计数加1;

判断模块,用于判断所述图片数据是否全部读取完毕,当没有全部读取完毕时,读取所述图片数据的下一组连续N个像素点数据,并执行步骤S103,当所述图片数据全部读取完毕后,判断白点计数与遍历计数的比值是否大于阈值,当所述白点计数与遍历计数的比值大于阈值时判断为白屏,否则不是白屏。

第三方面,本发明提供了一种计算机设备,包括:

一个或多个处理器;

存储器;以及

一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如上所述的白屏检测方法的步骤。

第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的白屏检测方法的步骤。

本发明通过截取屏幕生成图片数据,之后一次读取图片数据的N个连续像素点并调用SIMD的向量运算指令判断N个像素点是否全部为白点,然后遍历整个图片数据,通过判断白点计数与遍历计数的比值是否大于阈值来判断是否为白屏。由于一次读取N个像素点和采用SIMD向量运算,本发明的白屏检测方法可以充分利用设备处理器的硬件特性,比传统的逐个像素点遍历方法大幅提升了计算速度,实现简单而且可以高效率检测白屏。

附图说明

图1是本发明实施例一提供的白屏检测方法的流程图;

图2是本发明实施例二提供的白屏检测装置的功能模块框图;

图3是本发明实施例三提供的计算机设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一:

如图1所示,本发明实施例一提供了一种白屏检测方法100,用于检测web页面白屏情况,包括以下步骤:

S101、截取待检测设备的屏幕生成图片数据,设置白点计数初始值为零,遍历计数初始值为零。

在本发明步骤S101中,截取待检测设备的屏幕生成图片数据,可以是截取待检测设备的屏幕直接生成图片数据;还可以是截取待检测设备的屏幕生成初始图片数据,设置抽样比为1:n,n为大于1的整数,按照抽样比从初始图片数据中抽取部分数据从而生成图片数据,采用连续抽样取点的方式来减少遍历次数,从而进一步提升计算速度。

S102、读取图片数据的起始连续N个像素点数据,遍历计数加1。其中,N是4的整数倍数值,例如N=4,N=8,N=12,N的取值与待检测设备的处理的处理能力相关,可根据处理器的处理能力设置N的值。

S103、调用SIMD指令集的向量运算指令对N个像素点数据进行点乘运算,判断N个像素点是否全部为白点,当N个像素点全部为白点时,白点计数加1。

SIMD是指Single Instruction Multiple Data即单指令多数据集,调用SIMD指令集的向量运算指令对N个像素点数据进行点乘运算,判断N个像素点是否全部为白点,以N=4时为例具体步骤如下:

S1031、设置向量a=(a1,a2,a3,a4),其中a1、a2、a3、a4为4个连续像素点的颜色值,是包含alpha通道的彩色的ARGB值,应当理解的是,此处以N=4为例,当N为其他值时,向量a=(a1,a2,…,aN);

S1032、设置向量b=(b1,b2,b3,b4),其中,b1=b2=b3=b4=0.25,表示缩小比例,防止计算结果太大溢出,此时N=4,所以将每个像素点都乘以1/4即0.25;应当理解的是,此处以N=4为例,当N为其他值时,向量b=(b1,b2,…,bN),b1,b2,…,bN的值均为1/N;

S1033、调用SIMD指令集的向量乘法指令,对向量a和向量b进行点乘运算生成计算结果;

S1034、当计算结果值为255*65536+255*256+255时,4个像素点全部为白点,否则,4个像素点不是全部为白点。N为其他值时,当计算结果值为255*65536+255*256+255,N个像素点全部为白点,否则,N个像素点不是全部为白点。

S104、判断所述图片数据是否全部读取完毕,当没有全部读取完毕时,读取所述图片数据的下一组连续N个像素点数据,并执行步骤S103,当所述图片数据全部读取完毕后,判断白点计数与遍历计数的比值是否大于阈值,当白点计数与遍历计数的比值大于阈值时判断为白屏,否则不是白屏。

此处阈值是可以设置的,例如设置为0.9或其他值。

实施例二:

本发明实施例二提供了一种白屏检测装置200,包括:

数据生成模块201,用于截取待检测设备的屏幕生成图片数据,设置白点计数初始值为零,遍历计数初始值为零;

数据读取模块202,用于读取图片数据的起始连续N个像素点数据,遍历计数加1;

运算模块203,用于调用SIMD指令集的向量运算指令对N个像素点数据进行点乘运算,判断N个像素点是否全部为白点,当N个像素点全部为白点时,白点计数加1;

判断模块204,用于判断图片数据是否全部读取完毕,当没有全部读取完毕时,读取图片数据的下一组连续N个像素点数据,并执行步骤S103,当图片数据全部读取完毕后,判断白点计数与遍历计数的比值是否大于阈值,当所述白点计数与遍历计数的比值大于阈值时判断为白屏,否则不是白屏。

本发明实施例二提供的白屏检测装置及本发明实施例一提供的白屏检测方法属于同一构思,其具体实现过程详见说明书全文,此处不再赘述。

实施例三:

如图3所示,本发明实施例三提供了一种计算机设备300,包括:

一个或多个处理器301;

存储器302;以及

一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如实施例一提供的白屏检测方法的步骤。

实施例四:

本发明实施例四提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如实施例一提供的白屏检测方法的步骤。

在本发明中,首先截取屏幕生成图片数据,之后一次读取图片数据的N个连续像素点并调用SIMD的向量运算指令判断N个像素点是否全部为白点,然后遍历整个图片数据,通过判断白点计数与遍历计数的比值是否大于阈值来判断是否为白屏。由于一次读取N个像素点和采用SIMD向量运算,本发明的白屏检测方法可以充分利用设备处理器的硬件特性,比传统的逐个像素点遍历方法大幅提升了计算速度,实现简单而且可以高效率检测白屏。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

技术分类

06120115919505