一种屏幕刷新方法及系统与流程

文档序号:15614950发布日期:2018-10-09 21:08阅读:263来源:国知局

本发明涉及图像显示领域,尤其涉及一种屏幕刷新方法及系统。



背景技术:

随着科技的发展,具有显示屏幕的各种终端越来越多的应用在人们的生活中。用户可以在终端的显示屏幕上进行通话,游戏,视频观看,网页浏览等多种操作,以满足生活的各种需要。用户在对显示屏幕进行操作的过程中,为了保证显示屏幕对图像显示的流畅性,需要对显示屏幕进行不断的刷新。

发明人经过研究发现,在对显示屏幕进行不断刷新的过程中,会大量的占用系统内存,消耗终端电量,导致终端的功耗增加。



技术实现要素:

有鉴于此,本发明提供了一种屏幕刷新方法,用以解决现有技术中不断刷新屏幕占用大量的系统内存和电量资源,增加了终端的功耗的问题。具体方案如下:

一种屏幕刷新方法,包括:

依据预设的确定规则,确定针对当前刷新周期,所绘制的需要刷新的图像;

将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像进行像素的差异比对,获得差异值;

当所述差异值在预设的阈值范围内时,拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号,以禁止屏幕依据所述vsync信号在当前刷新周期内对需要刷新的图像进行刷新。

上述的方法,优选的,还包括:

当所述差异值不在预设的阈值范围内时,依据所述vsync信号,触发所述屏幕对需要刷新的图像进行刷新。

上述的方法,优选的,所述绘制针对当前刷新周期,需要刷新的图像包括:

确定当前用户对终端的操作行为;

依据所述操作行为,调整所述终端的绘制帧率;

按所述经过调整的绘制帧率,对当前刷新周期,需要刷新的图像进行绘制。

上述的方法,优选的,所述确定当前用户对终端的操作行为包括:

接收用户对应用程序的启动指令;

获取所述启动指令所对应的应用程序的进程号;

依据所述进程号获取所述应用程序的maps文件;

遍历所述maps文件,获得所述应用程序的动态库文件;

将所述动态库文件与预设的游戏引擎动态库文件进行匹配,若匹配,确定当前用户对终端的操作行为为启动游戏类应用程序。

上述的方法,优选的,所述将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像进行像素的差异比对,获得差异值包括:

将第一图像中每一个像素点与其对应的第二图像中的像素点进行像素匹配;

确定所述第一图像中满足匹配条件的像素点的数量;

将所述第一图像中满足匹配条件的像素点的数量与所述第一图像中总的像素点的数量的比值,作为所述差异值;

所述第一图像为针对当前刷新周期所确定的图像;

所述第二图像为针对上一刷新周期所确定的图像;

所述第一图像为针对当前刷新周期所确定的图像;

所述第二图像为针对上一刷新周期所确定的图像。

上述的方法,优选的,所述拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号包括:

调用预设的拦截函数;

应用所述拦截函数,拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号。

一种屏幕刷新系统,包括:

确定单元,用于依据预设的确定规则,确定针对当前刷新周期,所绘制的需要刷新的图像;

对比单元,用于将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像进行像素的差异比对,获得差异值;

拦截单元,用于当所述差异值在预设的阈值范围内时,拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号,以禁止屏幕依据所述vsync信号在当前刷新周期内对需要刷新的图像进行刷新。

上述的系统,优选的,还包括:

触发单元,用于当所述差异值不在预设的阈值范围内时,依据所述vsync信号,触发所述屏幕对需要刷新的图像进行刷新。

上述的系统,优选的,所述对比单元包括:

匹配子单元,用于将第一图像中每一个像素点与其对应的第二图像中的像素点进行像素匹配;

确定子单元,用于确定所述第一图像中满足匹配条件的像素点的数量;

比较子单元,用于将所述第一图像中满足匹配条件的像素点的数量与所述第一图像中总的像素点的数量的比值,作为所述差异值;

所述第一图像为针对当前刷新周期所确定的图像;

所述第二图像为针对上一刷新周期所确定的图像。

上述的系统,优选的,所述拦截单元包括:

调用子单元,用于调用预设的拦截函数;

拦截子单元,用于应用所述拦截函数,拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号。

与现有技术相比,本发明包括以下优点:

本发明提供一种屏幕刷新方法,包括:依据预设的确定规则,确定针对当前刷新周期,所绘制的需要刷新的图像;将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像进行像素的差异比对,获得差异值;当所述差异值在预设的阈值范围内时,拦截硬件层发送的vsync信号,以禁止屏幕依据该vsync信号在当前刷新周期内对需要刷新的图像进行刷新。本发明提供的方法,对于当前刷新周期需要刷新的图像,将该图像与上一刷新周期需要刷新的图像进行像素的差异比对,当比对获得的差异值在预设的阈值范围内时,拦截触发屏幕刷新的vsync信号,以禁止屏幕对当前刷新周期内需要刷新的图像进行刷新,从而减少了屏幕的刷新次数,节约了终端的功耗。

本发明通过实时调整绘制帧率,减少了图形处理器的绘制,通过拦截所述vsync信号,减少了屏幕的刷新次数,现有技术中需要反复设置硬件层发送的vsync信号的频率,来达到降低功耗的目的,当设置所述vsync信号的频率时,需要与硬件发生交互,存在一定的延时,本发明实施例不但解决了降低功耗的问题,还避免了延时的问题。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种屏幕刷新方法流程图;

图2为本申请实施例公开的一种屏幕刷新方法又一方法流程图;

图3为本申请实施例公开的一种屏幕刷新方法又一方法流程图;

图4为本申请实施例公开的一种屏幕刷新方法又一方法流程图;

图5为本申请实施例公开的一种屏幕刷新方法又一方法流程图;

图6为本申请实施例公开的一种屏幕刷新方法又一方法流程图;

图7为本申请实施例公开的一种屏幕刷新系统结构框图;

图8为本申请实施例公开的一种屏幕刷新系统又一结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

本发明提供了一种屏幕刷新方法,所述方法的执行主体可以为终端中的处理器,所述方法的流程图如图1所示,包括步骤:

s101、依据预设的确定规则,确定针对当前刷新周期,所绘制的需要刷新的图像;

本发明实施例中,在进入当前刷新周期时,依据预设的确定的规则,获取通过图形处理器gpu绘制的需要刷新的图像。所述需要刷新的图像依据用户的行为产生。

s102、将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像进行像素的差异比对,获得差异值;

本发明实施例中,将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像中的各个对应点进行像素的差异比对,获得差异值。所述上一刷新周期是与本刷新周期相邻的上一个刷新周期。

s103、当所述差异值在预设的阈值范围内时,拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号,以禁止屏幕依据所述vsync信号在当前刷新周期内对需要刷新的图像进行刷新。

本发明实施例中,当所述差异值在预设的阈值范围内时,拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号,以禁止屏幕依据所述vsync信号在当前刷新周期内对需要刷新的图像进行刷新。所述拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号有以下三种形式:先计算差异值,依据差异值与预设的阈值的比较结果确定是否需要拦截;不判断比较结果,对所有的vsync信号均进行拦截;即便所述vsync信号成功发送,禁止触发屏幕刷新操作。所述vsync信号实现对屏幕刷新操作的触发。所述预设的阈值范围是依据终端的配置要求或者用户的视觉体验进行设定或者调整的。

本发明提供一种屏幕刷新方法,包括:依据预设的确定规则,确定针对当前刷新周期,所绘制的需要刷新的图像;将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像进行像素的差异比对,获得差异值;当所述差异值在预设的阈值范围内时,拦截硬件层发送的vsync信号,以禁止屏幕依据该vsync信号在当前刷新周期内对需要刷新的图像进行刷新。本发明提供的方法,对于当前刷新周期需要刷新的图像,将该图像与上一刷新周期需要刷新的图像进行像素的差异比对,当比对获得的差异值在预设的阈值范围内时,拦截触发屏幕刷新的vsync信号,以禁止屏幕对当前刷新周期内需要刷新的图像进行刷新,从而减少了屏幕的刷新次数,节约了终端的功耗。

本发明实施例中,所述屏幕刷新中的屏幕,不仅仅局限于移动终端,所有配备有屏幕的终端都适用于本屏幕刷新方法。

本发明是实施例中,通过实时调整绘制帧率,减少了图形处理器的绘制,通过拦截所述vsync信号,减少了屏幕的刷新次数,现有技术中需要反复设置硬件层发送的vsync信号的频率,来达到降低功耗的目的,当设置所述vsync信号的频率时,需要与硬件发生交互,存在一定的延时,本发明实施例不但解决了降低功耗的问题,还避免了延时的问题。

本发明实施例中,将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像进行像素的差异比对,获得差异值的过程中,由于两幅图像均是由相同数量的像素点构成的像素数组,因此最终获得差异值并不是一个值,而是与所述像素数组维度相同的差异值数组。

本发明实施例中,当所述差异值在预设的阈值范围内时,拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号,以禁止屏幕依据所述vsync信号在当前刷新周期内对需要刷新的图像进行刷新的过程包含以下三种情况,当先通过s101和s102所述步骤计算出差异值后,判断所述差异值是否在预设的阈值范围,当所述差异值在预设的阈值范围内时,才拦截与所述当前刷新周期相对应的垂直同步vsync信号,以禁止屏幕依据所述vsync信号在当前刷新周期内对需要刷新的图像进行刷新;还存在一种情况,不进行所述差异值的计算,先对与所述当前刷新周期相对应的垂直同步vsync信号进行拦截,并将其存入一个指定的数据库中,若通过s101和s102计算的到差异值在预设的阈值范围内时,查找所述指定的数据库,找到与所述当前刷新周期相对应的垂直同步vsync信号,利用所述vsync信号禁止屏幕对需要刷新图像进行刷新操作;还包括另外一种情况,并不截取硬件层发送的所述vsync信号,成功发送所述vsync信号,但是禁止所述vsync信号触发屏幕刷新操作。上述三种实现方式均包含在本发明所述的屏幕刷新方法中。

本发明实施例中,所述与刷新周期相对应具体指两种周期,一种为屏幕的刷新周期,另一种所述vsync信号的触发周期,两种周期均可以实现上述屏幕刷新方法,但需要保证s101、s102和s103中所有的刷新周期的为同一个,否则会导致屏幕刷新过程的混乱。

本发明实施例中,上述屏幕刷新方法,具体流程图如图2所示,还包括步骤:

s204、当所述差异值不在预设的阈值范围内时,依据所述vsync信号,触发所述屏幕对需要刷新的图像进行刷新。

本发明实施例中,当所述差异值不在预设的阈值范围内时,获取与所述刷新周期相对应的vsync信号,利用所述vsync信号触发所述屏幕对需要刷新的图像进行刷新。

本发明实施例中,所述绘制针对当前刷新周期,需要刷新的图像,如图2所示,包括步骤:

s301、确定当前用户对终端的操作行为;

本发明实施例中,所述用户的操作行为可以为,上下滑动屏幕、左右滑动屏幕或者启动应用程序三种。

s302、依据所述操作行为,调整所述终端的绘制帧率;

本发明实施例中,若所述用户操作为上下滑动屏幕时,当将检测到所述用户操作为上下滑动屏幕时,所述上下滑动的具体操作可以为浏览网页等,通过终端自带的速度传感器,实时获取用户上下滑动的速度,依次将所获取的滑动速度值存入速度数组中,通过分析所述速度数组中上下滑动速度的变化趋势,调整所述绘制帧率,所述调整方时可以为调高或者调低终端的绘制帧率,但通常情况下,由于上下滑动屏幕通常要求较快的屏幕刷新次数,因此通常采取调高所述绘制帧率的措施,来满足需要频繁刷新屏幕的操作。

本发明实施例中,若所述用户操作为左右滑动屏幕,当检测到所述用户操作为左右滑动屏幕时,所述左右滑动操作通常为浏览图片、电子书等,相对不需要很频繁的屏幕刷新次数,通常选择降低终端的绘制帧率。

本发明实施例中,针对屏幕左右和上下滑动对应如下具体实例,某终端的当前绘制帧率为60,通常情况下绘制帧率为一个固定值,用来表征屏幕刷新的速率,通常情况下,为了达到最好的用户体验,会将所述绘制帧率设置的相对高,但不能超过显示器显卡的刷新率。当用户对所述移动终端的操作为通过左右滑动屏幕完成图片的浏览时,页面的变化较小,为了达到降低功耗的目的,可以将所述绘制帧率降低到30或者其他满足要求的绘制帧率值,在当前操作过程中,实时监测用户的操作行为,若用户的操作行为有通过左右滑动浏览图片或者为人机交互较少甚至没有人机交互的情况时,调整为通过上下滑动浏览网页,浏览网页的操作,需要不断的刷新屏幕,因此,需要调高当前绘制帧率,例如,可以调高到50或者更高的水平,调节的原则以达到最好的用户体验为准,上述的调整过程,循环往复。所述调整过程,是实时调整的过程。所有针对绘制帧率的调整,均由用户具体的操作行为来决定。

本发明实施例中,若所述用户操作行为启动应用程序,具体的执行方法如题4所示,包括步骤:

s401、接收用户对应用程序的启动指令;

本发明实施例中,不断的扫描应用程序启动指令的发送端,当接收到用户对应用程序的启动指令,停止扫描,当所述应用程序停止运行时,再次启动扫描过程。所述启动指令是通过用户点击或者调用所述应用程序时生成的。

s402、获取所述启动指令所对应的应用程序的进程号;

本发明实施例中,当接收到所述应用程序的启动指令时,获取生成所述启动指令的应用程序的进程号,所述进程号对于所述应用程序来说是一个具体的标识,具有唯一性,一个应用程序对应一个独立的进程号,同样一个应用程序也对应一个唯一的启动指令。

s403、依据所述进程号获取所述应用程序的maps文件;

本发明实施例中,通过所述进程号定位所述应用程序中所有的标识文件的位置信息,在所述标识文件位置中找到maps文件。所述maps文件,是包含所述应用程序特征信息的标识文件。

s404、遍历所述maps文件,获得所述应用程序的动态库文件;

本发明是实施例中,查找所述maps文件,获取包含所述应用程序的特征值或者特征参数等可以代表所述应用程序类型的动态库文件。

s405、将所述动态库文件与预设的游戏引擎动态库文件进行匹配,若匹配,确定当前用户对终端的操作行为为启动游戏类应用程序;

本发明实施例中,将所述动态库与所述预设的游戏引擎动态库对比,若匹配,确定当前用户对终端的操作行为为启动游戏类应用程序。所述预设的游戏引擎动态库文件中,包含所有能代表游戏类别的特征值或者特征参数。

本发明实施例中,若用户对终端的操作为启动游戏类应用程序,为了保证游戏的操作流畅,需要将所述绘制帧率调整到最高值。

本发明实施例中,经调查世面上的主流游戏90%都是基于游戏引擎开发,主要的游戏引擎是cocos2d、unity3d等,在游戏应用的代码结构中会包含这些游戏引擎的动态库,本发明实施例就是通过检测游戏引擎中的动态库来判断是否是启动游戏应用。

本发明实施例中,还包括当所述终端进行视频播放时,为了达到最佳的播放效果,也需要将所述绘制帧率调整到最高值。

s303、按所述经过调整的绘制帧率,对当前刷新周期,需要刷新的图像进行绘制。

本发明实施例中,利用图形处理器gpu依据所述调整的绘制帧率,对当前刷新周期,需要刷新的图像进行绘制。

本发明实施例中,所述将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像进行像素的差异比对,获得差异值,如图5所示,包括步骤:

s501、将第一图像中每一个像素点与其对应的第二图像中的像素点进行像素匹配;

本发明实施例中,将第一图像中每一个像素点与其对应的第二图像中对应的像素点进行像素匹配。通过所述终端处理器中计算像素值的函数,对所述第一图像与所述第二图像中所有点的像素值进行计算,并匹配对应点的像素值,所述匹配指依次对比对应像素点的差异率,若差异率在给定的所述预设的阈值范围内,则认为匹配。所述第一图像为针对当前刷新周期所确定的图像,所述第二图像为针对上一刷新周期所确定的图像。所述预设的阈值范围是指依据所述终端的分辨率和用户体验共同来确定所述预设的阈值范围。

s502、确定所述第一图像中满足匹配条件的像素点的数量;

本发明实施例中,依次记录满足匹配关系的像素点的个数。

s503、将所述第一图像中满足匹配条件的像素点的数量与所述第一图像中总的像素点的数量的比值,作为所述差异值;

本发明实施例中,计算所述第一图像中满足关系的像素点的个数与所述第一图像总像素点的个数的比值,作为像素差异值。

本发明实施例中,所述拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号如图6所示,包括步骤:

s601、调用预设的拦截函数;

本发明实施例中,在需要拦截操作时,直接调用在所述终端处理器中预设的拦截函数。

s602、应用所述拦截函数,拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号

本发明实施例中,应用所述拦截函数,实时扫描所述硬件层发送的所述当前刷新周期相对应的垂直同步vsync信号,若存在,直接拦截所述vsync信号。

与图1所述的一种屏幕刷新方法相对应的,本发明实施例还提供了一种屏幕刷新系统,其结构框图如图7所示,包括:

确定单元701,对比单元702,拦截单元703。

其中:

所述确定单元701,用于依据预设的确定规则,确定针对当前刷新周期,所绘制的需要刷新的图像;

本发明实施例中,所述屏幕刷新系统中的所述确定单元中所述绘制针对当前的刷新周期,需要刷新的图像包括:确定当前用户对终端的操作行为;依据所述操作行为,调整所述终端的绘制帧率;按所述经过调整的绘制帧率,对当前刷新周期,需要刷新的图像进行绘制三个步骤。

本发明实施例中。所述确定当前用户对终端的操作行为包括:接收用户对应用程序的启动指令;获取所述启动指令所对应的应用程序的进程号;依据所述进程号获取所述应用程序的maps文件;遍历所述maps文件,获得所述应用程序的动态库文件;将所述动态库文件与预设的游戏引擎动态库文件进行匹配,若匹配,确定当前用户对终端的操作行为为启动游戏类应用程序。五个步骤。

所述对比单元702,用于将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像进行像素的差异比对,获得差异值;

所述拦截单元703,用于当所述差异值在预设的阈值范围内时,拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号,以禁止屏幕依据所述vsync信号在当前刷新周期内对需要刷新的图像进行刷新。

本发明提供一种屏幕刷新系统,包括:依据预设的确定规则,确定针对当前刷新周期,所绘制的需要刷新的图像;将针对当前刷新周期确定的图像与针对上一刷新周期确定的图像进行像素的差异比对,获得差异值;当所述差异值在预设的阈值范围内时,拦截硬件层发送的vsync信号,以禁止屏幕依据该vsync信号在当前刷新周期内对需要刷新的图像进行刷新。本发明提供的方法,对于当前刷新周期需要刷新的图像,将该图像与上一刷新周期需要刷新的图像进行像素的差异比对,当比对获得的差异值在预设的阈值范围内时,拦截触发屏幕刷新的vsync信号,以禁止屏幕对当前刷新周期内需要刷新的图像进行刷新,从而减少了屏幕的刷新次数,节约了终端的功耗。

需要说明的是,所述屏幕刷新系统,是一个完整的系统,可以单独使用也可以与其它系统配合使用。

在图7的基础上,参考图8,图8示出了本发明实施例提供的系统的又一结构框图,所述屏幕刷新系统,还包括:

触发单元704,用于当所述差异值不在预设的阈值范围内时,依据所述vsync信号,触发所述屏幕对需要刷新的图像进行刷新。

在图7的基础上,参考图8,图8示出了本发明实施例提供的系统的又一结构框图,所述对比单元,包括:

匹配子单元705,确定子单元706,比较子单元707。

其中:

所述匹配子单元705,用于将第一图像中每一个像素点与其对应的第二图像中的像素点进行像素匹配;

所述确定子单元706,用于确定所述第一图像中满足匹配条件的像素点的数量;

所述比较子单元707,用于将所述第一图像中满足匹配条件的像素点的数量与所述第一图像中总的像素点的数量的比值,作为所述差异值。

在图7的基础上,参考图8,图8示出了本发明实施例提供的系统的又一结构框图,所述拦截单元,包括

调用子单元708和拦截子单元709。

其中:

所述调用子单元,用于调用预设的拦截函数;

所述拦截子单元,用于应用所述拦截函数,拦截硬件层发送的与所述当前刷新周期相对应的垂直同步vsync信号。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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