CN116095221B - 一种游戏中的帧率调整方法及相关装置 - Google Patents
一种游戏中的帧率调整方法及相关装置 Download PDFInfo
- Publication number
- CN116095221B CN116095221B CN202210956515.3A CN202210956515A CN116095221B CN 116095221 B CN116095221 B CN 116095221B CN 202210956515 A CN202210956515 A CN 202210956515A CN 116095221 B CN116095221 B CN 116095221B
- Authority
- CN
- China
- Prior art keywords
- frame image
- frame
- matrix
- game
- similarity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000033001 locomotion Effects 0.000 claims abstract description 98
- 230000008859 change Effects 0.000 claims abstract description 35
- 230000000007 visual effect Effects 0.000 claims abstract description 10
- 239000011159 matrix material Substances 0.000 claims description 81
- 238000009877 rendering Methods 0.000 claims description 68
- 239000013598 vector Substances 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 abstract description 27
- 238000010438 heat treatment Methods 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 38
- 238000012545 processing Methods 0.000 description 37
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000007726 management method Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72427—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting games or graphical animations
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/7243—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
- H04M1/72439—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for image or video messaging
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供一种游戏中的帧率调整方法及相关装置,涉及终端技术领域。方法包括:确定处于游戏应用中的目标场景;获取第一帧图像与第二帧图像之间的运动参数;第一帧图像与第二帧图像为目标场景中的相邻帧图像,运动参数是以目标对象为参照得到的变化量,运动参数包括目标对象的视角变化值,和/或,目标对象的移动量;当视角变化值小于或等于第一预设值,和/或,移动量小于或等于第二预设值时,比较第一帧图像与第二帧图像之间的相似度;根据相似度执行帧率调整。这样可以在不太影响相似度计算准确率的情况下,减少帧图像相似度比较的计算量,从而可以优化游戏负载,降低功耗,改善终端设备的发热情况,提升用户体验。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种游戏中的帧率调整方法及相关装置。
背景技术
随着终端技术的发展,越来越多的终端设备支持游戏应用,为满足用户日益增长的游戏体验需要,游戏厂商在移动终端平台上的游戏渲染的场景丰富度、渲染质量和帧率也越来越高。场景丰富的游戏在移动平台上进行高帧率渲染时也因高功耗等问题造成严重发热,移动终端平台随之迎来了高内存占用与高功耗的巨大挑战。
一些实现中,终端设备可以分别计算当前帧与历史帧的区别,当区别较小时,将当前帧进行丢弃或降帧处理,以减少功耗和改善发热现象。
但是上述实现中,仍然存在发热较严重和功耗较大的问题,影响用户体验。
发明内容
本申请实施例提供一种游戏中的帧率调整方法及相关装置,可以在不太影响相似度计算准确率的情况下,减少帧图像相似度比较的算量,从而可以优化游戏负载,降低功耗,改善终端设备的发热情况。
第一方面,本申请实施例提供一种游戏中的帧率调整方法,方法包括:
确定处于游戏应用中的目标场景;获取第一帧图像与第二帧图像之间的运动参数;第一帧图像与第二帧图像为目标场景中的相邻帧图像,运动参数是以目标对象为参照得到的变化量,运动参数包括目标对象的视角变化值,和/或,目标对象的移动量;当视角变化值小于或等于第一预设值,和/或,移动量小于或等于第二预设值时,比较第一帧图像与第二帧图像之间的相似度;根据相似度执行帧率调整。这样,可以在不太影响相似度计算准确率的情况下,减少帧图像相似度比较的算量,从而可以优化游戏负载,改善终端设备的发热情况。
一种可能的实现方式中,读取游戏应用的渲染指令流中的场景标签;根据场景标签确定处于游戏应用中的目标场景。这样,可以在算力较小的情况下更为快速的识别目标场景,排除对帧率要求不高的非目标场景。
一种可能的实现方式中,获取第一帧图像与第二帧图像之间的运动参数之前,还包括:获取游戏应用对应的渲染指令流;获取第一帧图像对应的第一V矩阵,以及第二帧图像的第二V矩阵,包括:在渲染指令流中基于预设V矩阵字段得到第一帧图像对应的第一V矩阵,以及第二帧图像对应的第二V矩阵。这样,可以基于V矩阵进行运动参数的计算。
一种可能的实现方式中,获取第一帧图像与第二帧图像之间的运动参数,包括:根据第一V矩阵和第二V矩阵计算得到视角变化值。这样,可以在不太影响相似度计算准确率的情况下,减少帧图像相似度比较的算量。
一种可能的实现方式中,获取第一帧图像与第二帧图像之间的运动参数,包括:在游戏应用对应的渲染指令流中获取第一帧图像中目标对象在世界空间的第一坐标值,以及第二帧图像中目标对象在世界空间的第二坐标值;根据第一坐标值和第二坐标值,计算得到移动量。这样,可以在进行相邻两帧图像的相似度比较前,先排除掉运动参数变化较快的相邻两帧图像。
一种可能的实现方式中,当视角变化值小于或等于第一预设值,和/或,移动量小于或等于第二预设值时,比较第一帧图像与第二帧图像之间的相似度。这样,可以预判第一帧图像与第二帧图像的相似度概率,当第一帧图像与第二帧图像的相似度概率较大时,再进行相邻两帧图像的相似度比较,可以更为准确的识别出相似帧图像,减少不必要的相似度计算,提高运行效率。
一种可能的实现方式中,当相似度大于或等于相似度阈值时,进行降帧率调整,降帧率调整包括丢帧,和/或,执行等待指令来降低送限频率,和/或,调低屏幕刷新率。这样,可以降低游戏负载,减少游戏界面卡顿,实现降低终端设备功耗的目的。
第二方面,本申请实施例提供一种游戏中的帧率调整的装置,该帧率调整的装置可以是终端设备,也可以是终端设备内的芯片或者芯片***。该帧率调整的装置可以包括处理单元。处理单元用于实现第一方面或第一方面的任意一种可能的实现方式中与处理相关的任意方法。当该帧率调整的装置是终端设备时,该处理单元可以是处理器。该帧率调整的装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。当该帧率调整的装置是终端设备内的芯片或者芯片***时,该处理单元可以是处理器。该处理单元执行存储单元所存储的指令,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该终端设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
示例性的,处理单元,用于确定处于游戏应用中的目标场景;获取第一帧图像与第二帧图像之间的运动参数;运动参数包括目标对象的视角变化值,和/或,目标对象的移动量;当视角变化值小于或等于第一预设值,和/或,移动量小于或等于第二预设值时,比较第一帧图像与第二帧图像之间的相似度;根据相似度执行帧率调整。
一种可能的实现方式中,处理单元,用于读取游戏应用的渲染指令流中的场景标签;根据场景标签确定处于游戏应用中的目标场景。
一种可能的实现方式中,处理单元,还用于获取游戏应用对应的渲染指令流;处理单元,具体还用于在渲染指令流中基于预设V矩阵字段得到第一帧图像对应的第一V矩阵,以及第二帧图像对应的第二V矩阵。
一种可能的实现方式中,处理单元,具体用于根据第一V矩阵和第二V矩阵计算得到视角变化值。
一种可能的实现方式中,处理单元,具体还用于在游戏应用对应的渲染指令流中获取第一帧图像中目标对象在世界空间的第一坐标值,以及第二帧图像中目标对象在世界空间的第二坐标值;根据第一坐标值和第二坐标值,计算得到移动量。
一种可能的实现方式中,处理单元,还用于当视角变化值小于或等于第一预设值,和/或,移动量小于或等于第二预设值时,比较第一帧图像与第二帧图像之间的相似度。
一种可能的实现方式中,处理单元,还用于当相似度大于或等于相似度阈值时,进行降帧率调整,降帧率调整包括丢帧,和/或,执行等待指令来降低送限频率,和/或,调低屏幕刷新率。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储器,存储器用于存储代码指令,处理器用于运行代码指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的游戏中的帧率调整方法。
第五方面,本申请实施例提供一种包括计算机程序的计算机程序产品,当计算机程序在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的游戏中的帧率调整方法。
第六方面,本申请提供一种芯片或者芯片***,该芯片或者芯片***包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的游戏中的帧率调整方法。其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,本申请中上述描述的芯片或者芯片***还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的坐标***的示意图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3为本申请实施例提供的一种电子设备的软件框架示意图;
图4为本申请实施例提供的一种游戏中的帧率调整方法的流程示意图;
图5为本申请实施例提供的观察坐标系示意图;
图6为本申请实施例提供的观察坐标系中摄像机视角变换示意图;
图7为本申请实施例提供的摄像机在世界空间坐标系中的位置示意图;
图8为本申请实施例提供的另一种游戏中的帧率调整方法的流程示意图;
图9为本申请实施例提供的一种游戏中的帧率调整装置的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语和技术进行简单介绍:
1、帧率:每秒显示的帧数,其单位是每秒传输帧数(frames per second,FPS)。帧是影像动画中最小单位的单幅影像画面,一帧就是一幅静止的画面,连续的帧就形成了动画。高的帧率可以得到更流畅和更逼真的动画。每秒钟帧数越多,所显示的动作就会越流畅。
帧率包括输出帧率和显示帧率。输出帧率是指界面或应用程序通过显卡输出给显示屏的帧率。显示帧率是指显示帧率是指界面或应用程序在显示屏上实际显示的帧率。
2、帧渲染:指使用软件从模型生成图像的过程。模型可以是用严格定义的语言或者数据结构对三维物体的描述,可以包括几何、视点、纹理以及照明信息。帧渲染可以将三维场景中的模型,按照设定好的环境、灯光、材质及渲染参数二维投影成数字图像,帧渲染还可以包括图像绘制过程。
3、MVP矩阵:分别是模型(model),观察(view),投影(projection)三个矩阵。如图1所示,顶点坐标起始于局部空间(local space),之后变为世界坐标(world coordinate),观察坐标(view coordinate),裁剪坐标(clip coordinate),并最后以屏幕坐标(screencoordinate)的形式结束。其中,局部坐标是对象相对于局部原点的坐标,也是对象开始的坐标。
4、M矩阵:局部空间到世界空间的转换矩阵。将局部坐标转换为世界坐标,世界坐标是作为一个更大空间范围的坐标***,这些坐标是相对于世界的原点的。
5、V矩阵:也称为view观察矩阵,为世界空间到摄像机空间的转换矩阵。将世界坐标转换为观察坐标,观察坐标是指以摄像机或观察者的角度观察的坐标。当定义一个摄像机时,需要摄像机在世界空间中的位置、观察的方向、一个指向它右侧的向量以及一个指向它上方的向量。实际上创建了一个三个单位轴相互垂直的、以摄像机的位置为原点的坐标系。
6、P矩阵:摄像机空间到裁剪空间的转换矩阵。在将坐标处理到观察空间之后,需要将其投影到裁剪坐标。裁剪坐标是处理-1.0到1.0范围内并判断哪些顶点将会出现在屏幕上。判断顶点是否在可见范围内,若在可见范围内即渲染出来,若不在范围内则将该顶点剔除掉。然后需要将裁剪坐标转换为屏幕坐标,这一过程称为视口变换(viewporttransform)。视口变换将位于-1.0到1.0范围的坐标转换到由视口变换函数所定义的坐标范围内,视口变换函数可以为glViewport函数。最后转换的坐标将会送到光栅器,由光栅器将其转化为片段。
7、其他术语
在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a--c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
8、终端设备
本申请实施例的终端设备也可以为任意形式的电子设备,例如,电子设备可以包括具有图像处理功能的手持式设备、车载设备等。例如,一些电子设备为:手机(mobilephone)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(session initiation protocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,PLMN)中的终端设备等,本申请实施例对此并不限定。
作为示例而非限定,在本申请实施例中,该电子设备还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
此外,在本申请实施例中,电子设备还可以是物联网(internet of things,IoT)***中的终端设备,IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。
本申请实施例中的电子设备也可以称为:终端设备、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。
在本申请实施例中,电子设备或各个网络设备包括硬件层、运行在硬件层之上的操作***层,以及运行在操作***层上的应用层。该硬件层包括中央处理器(centralprocessing unit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作***可以是任意一种或多种通过进程(process)实现业务处理的计算机操作***,例如,Linux操作***、Unix操作***、Android操作***、iOS操作***或windows操作***等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
示例性的,图2示出了电子设备的结构示意图。
电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从上述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备的各种功能应用以及数据处理。例如,可以执行本申请实施例的游戏中的帧率调整方法。
图3是本申请实施例的终端设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括相机、日历、电话、地图、游戏等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器、资源管理器、通知管理器、图形绘制和图形渲染等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏、锁定屏幕、触摸屏幕、拖拽屏幕、截取屏幕等。
资源管理器为应用程序提供各种资源,例如本地化字符串、图标、图片、布局文件、视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息、发出提示音、终端设备振动、指示灯闪烁等。
图形绘制用于对图形进行绘制,例如游戏应用的对局场景中帧图像的绘制。
图形渲染用于对绘制后的图形进行渲染,例如,在图形绘制对游戏应用的对局场景完成绘制后,图形渲染对该对局场景进行渲染。
Android runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager)、媒体库(Media Libraries)、三维图形处理库(例如:OpenGL ES)、2D图形引擎(例如:SGL)、图形合成等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图、图像渲染、合成和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
图形合成用于将一个或多个渲染后的视图合成为显示界面,例如将游戏应用中的游戏背景画面和游戏玩家运动画面在渲染后进行合成处理。
内核层是硬件和软件之间的层。内核层可以包括显示驱动、摄像头驱动、音频驱动、中央处理器驱动等。
下面结合应用程序启动或应用程序中发生界面切换的场景,示例性说明终端设备100软件以及硬件的工作流程。
当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸力度,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为游戏应用图标的控件为例,游戏应用调用应用框架层的接口,启动游戏应用,进而通过调用内核层启动显示驱动,显示游戏应用的功能界面。
随着终端技术的发展,越来越多的终端设备支持游戏应用,为满足用户日益增长的游戏体验需要,游戏厂商在移动终端平台上的游戏渲染的场景丰富度、渲染质量和帧率也越来越高。场景丰富的游戏在移动平台上进行高帧率渲染时也因高内存占用和高功耗等问题造成严重发热。
一种实现中,终端设备可以在游戏应用运行过程中,无差别的比较相邻两帧图像的相似度,在相邻两帧图像的相似度较高时,执行丢弃当前帧图像或降低帧率,以通过丢弃帧或降低帧率达到降低功耗、减缓发热的目的。但是计算图像相似度对CPU的算力有一定要求,也会带来功耗,因此无差别的对任意相邻两帧图像均计算相似度的方式计算量较大,导致内存占用和功耗较多,使得这种方式中降低功耗和减缓发热的效果不佳。
有鉴于此,本申请实施例提供的一种游戏中帧率调整方法,在进行相邻两帧图像的相似度比较前,先排除掉运动参数变化较快的相邻两帧图像。因为运动参数变化较快的两帧图像的相似度通常较低,也较低概率会出现相似度较高的情况。这样可以在不太影响相似度计算准确率的情况下,减少帧图像相似度比较的算量,从而可以优化游戏负载,降低功耗,改善终端设备的发热情况,提升用户体验。
下面通过具体的实施例对本申请实施例的游戏中帧率调整方法进行详细说明。下面的实施例可以相互结合或独立实施,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图4示出了本申请实施例一种游戏中的帧率调整方法。方法包括:
S401、确定处于游戏应用中的目标场景。
本申请实施例中,目标场景可以为能够通过调整帧率降低功耗负载的场景,包括对帧率要求较高的场景,或游戏中负载较大的场景,或其他任意容易导致游戏界面卡顿的游戏场景。例如,目标场景可以包括游戏应用中的对局场景、人机练习场景、新手引导场景或游戏回放场景等,本申请实施例对具体目标场景不做限制。其中,对局场景可以是游戏玩家处于对局中的游戏环境,对局场景的帧图像中可以包括游戏中空间、环境、建筑和道具等,用来配合游戏剧情发展,以及人机互动的需要。
可以理解的是,游戏中还可以包括游戏大厅场景、设置界面场景以及其他非游戏对局中的场景,针对这些对帧率要求不高的场景,可以通过调低帧率来降低负载。
一种可能的实现方式中,确定处于游戏应用中的目标场景,可以通过获取游戏应用的状态标识来确定目标场景。状态标识可以包括游戏场景标签、游戏玩家状态、检测游戏标题、图片识别等,本申请实施例对目标场景的判断方式不做限制。
示例性的,目标场景的识别可以通过程序中的函数或接口获取相关数据来确定游戏玩家状态;或者可以通过获取目标场景中绘制某些物体的特定标签对应的字符串,并与预先分析出的字符串进行检索匹配,如果指定字符串匹配成功,则可以确定为目标场景。
S402、获取第一帧图像与第二帧图像之间的运动参数。
本申请实施例中,第一帧图像与第二帧图像为目标场景中的相邻帧图像,运动参数可以用来表示目标对象在目标场景中的变化快慢。可以理解的是,目标对象可以为目标场景中伴随玩家运动的物体,例如目标对象可以是玩家自己;或者如果玩家驾车,则目标对象可以是运动的车;或者如果玩家乘坐飞机,则目标对象可以是运动的飞机;本申请实施例对目标对象不做限制。
运动参数可以包括视角变化量或移动量。其中,视角变化量可以是目标场景中目标对象的视角变化量,例如,视角变化量可以是观察坐标系中的视角变化量,本申请实施例对视角变化量的获得方式不做限制。
移动量可以包括移动距离、移动速度或其他表示目标对象移动量的参数,本申请实施例对表示移动量的参数不做限制。移动量可以是目标场景中目标对象的移动量,例如,移动量可以是世界空间中目标对象的移动量,也可以是观察坐标系中目标对象的移动量,还可以是其他方式得到的目标对象的移动量,本申请实施例对移动量的获得方式不做限制。
S403、当视角变化值小于或等于第一预设值,和/或,移动量小于或等于第二预设值时,比较第一帧图像与第二帧图像之间的相似度。
本申请实施例中,第一预设值可以是终端设备中预先设置的视角变化值,第二预设值可以是终端设备中预先设置的移动量。其中,第一预设值在不同的游戏应用中可以相同,也可以不同。第二预设值在不同的游戏应用中可以相同,也可以不同。一种可能的实现中,第一预设值和第二预设值可以根据分析数据得到的经验预设值进行设置。对于第一预设值和第二预设值的具体值,本申请实施例在此不做限制。
本申请实施例的一种可能的实现中,当视角变化值小于或等于第一预设值时,可以理解为,第一帧图像与第二帧图像的视角变化较小。这样,可以预判第一帧图像与第二帧图像相似度相对高的概率较大,则可以进一步进行第一帧图像与第二帧图像之间的相似度比较,以在第一帧图像与第二帧图像之间的相似度较高时,进行降帧等降低功耗的步骤。可以理解的是,如果视角变化值大于第一预设值,那么可以预判第一帧图像与第二帧图像相似度低的概率较大。这样后续即使再计算第一帧图像与第二帧图像的相似度,通常也无法得出第一帧图像与第二帧图像的相似度较高的结果,也无法实现在第一帧图像与第二帧图像的相似度较高时执行的降帧率操作。因此,可以在视角变化值大于第一预设值时,不进行第一帧图像与第二帧图像之间的相似度比较,从而可以节约算力,降低功耗。
另一种可能的实现中,当移动量小于或等于第二预设值时,可以理解为,第一帧图像与第二帧图像的位置变化较小,这样,可以预判第一帧图像与第二帧图像相似度相对高的概率较大,则可以进一步进行第一帧图像与第二帧图像之间的相似度比较。类似的,可以在移动量大于第二预设值时,不进行第一帧图像与第二帧图像之间的相似度比较,从而可以节约算力,降低功耗。
再一种可能的实现中,当视角变化值小于或等于第一预设值,并且移动量小于或等于第二预设值时,可以理解为,第一帧图像与第二帧图像变化较小。这样,可以预判第一帧图像与第二帧图像相似度相对高的概率较大,则可以进一步进行第一帧图像与第二帧图像之间的相似度比较。类似的,可以在视角变化值大于第一预设值且移动量大于第二预设值时,不进行第一帧图像与第二帧图像之间的相似度比较,从而可以节约算力,降低功耗。
需要说明的是,上述视角变化值的判断和移动量的判断可以没有先后顺序的区分。
本申请实施例中,比较第一帧图像与第二帧图像之间的相似度可以包括比较第一帧图像与第二帧图像之间像素等的相似度,本申请实施例对比较第一帧图像与第二帧图像之间的相似度的具体实现不作限定。
示例性的,第一帧图像与第二帧图像的相似度比较的实现可以包括:基于向量相似度来对图像相似度进行度量,通过分别计算两帧图像的直方图,将直方图进行归一化,按照某种距离度量的标准进行相似度的测量;或者可以进行图像模板匹配,通过图像中滑动窗口寻找各个位置与模板图像的相似度;或者可以通过感知哈希算法,对每张图像生成一个指纹字符串,比较不同图像的指纹,结果越接近,就说明图像越相似。
S404、根据相似度执行帧率调整。
本申请实施例中,可以在第一帧图像与第二帧图像之间的相似度较高时,执行丢帧或降帧率等,实现降低终端设备功耗的目的。
示例性的,帧率调整可以包括丢帧和/或调低屏幕刷新率。丢帧或调低屏幕刷新率可以使游戏中的帧率下降,达到降低功耗的目的。其中,调低屏幕刷新率时,可以通过将原屏幕刷新率乘以小于1的系数,或将原屏幕刷新率减少固定值实现,后续可以根据调低后的帧率绘制帧图像,以降低功耗。
综上,本申请实施例提供的游戏中帧率调整方法,在图像相似度比较前,通过计算相邻两帧图像的运动参数,可以快速排除相似度较低的图片,减少了相似度比较的计算量,优化游戏负载,降低功耗,提升用户体验。
可选的,在图4对应的实施例的基础上,S401的确定处于游戏应用中的目标场景,可以包括:读取游戏应用的渲染指令流中的场景标签;根据场景标签确定处于游戏应用中的目标场景。
渲染指令流是指示图形处理器在游戏中渲染游戏场景的指令集合,渲染指令流中的渲染数据可以包括场景标签,场景标签可以是识别不同图像场景的区别标识,也就是说,不同图像场景对应不同的场景标签。
一种可能的实现中,场景标签可以通过图形分析软件进行离线数据分析和统计得到,并在终端设备中对不同的场景进行预置标签处理,以便渲染指令流进行读取。
另一种可能的实现中,终端设备可以通过获取渲染程序中对应的场景标签字段或场景标签函数读取场景标签。
确定处于游戏应用中的目标场景,可以通过获取游戏应用的渲染指令流,根据渲染指令流中的场景标签确定目标场景。例如,在图像绘制过程中,当一帧图像的渲染任务开始时,通过截取渲染指令流中的场景标签,可以判断当前帧图像的场景标签与预设的目标场景标签是否相匹配,如果匹配,则说明该该帧图像属于目标场景帧图像。
本申请实施例中的场景标签可以通过离线数据进行分析得到,更为准确的确定渲染指令流中的场景标签,提升目标场景的识别准确率。场景标签还可以通过渲染程序中对应的字段或者函数得到,在算力较小的情况下更为快速和智能的识别目标场景。并且,在进行帧图像分析之前,根据场景标签确定目标场景,可以快速排除对帧率要求不高的非目标场景,而无需计算相邻两帧图像的运动参数和相似度比较,从而可以节约算力,降低功耗,提升用户体验。
可选的,在图4对应的实施例的基础上,目标对象为游戏中的伴随玩家运动的物体,获取第一帧图像与第二帧图像之间的运动参数之前,还包括:获取游戏应用对应的渲染指令流;获取第一帧图像对应的第一V矩阵,以及第二帧图像的第二V矩阵,包括:在渲染指令流中基于预设V矩阵字段得到第一帧图像对应的第一V矩阵,以及第二帧图像对应的第二V矩阵。
观察坐标系是为了在不同的距离和角度上观察物体,建立起以摄像机为原点的坐标系。如图5所示,通过渲染指令流可以获取观察坐标系对应的观察矩阵V矩阵,V矩阵把世界坐标变换到观察坐标,该观察坐标是相对于摄像机的位置和方向的。V矩阵包括世界空间中的位置、摄像机的方向向量、一个指向它右侧的向量以及一个指向它上方的向量。V矩阵通过3个相互垂直的轴和以摄像机的位置为原点坐标创建一个矩阵,很高效地把所有世界坐标变换到摄像机空间。
一种可能的实现中,通过渲染指令流中预设V矩阵字段可以得到第一帧图像对应的第一观察矩阵V矩阵,以及第二帧图像的第二V矩阵,第一观察矩阵V矩阵以及第二V矩阵满足下述矩阵公式:
其中,(Rx,Ry,Rz)是右向量,(Ux,Uy,Uz)是上向量,(Dx,Dy,Dz)是摄像机的方向向量,(Px,Py,Pz)是摄像机的位置向量。
示例性的,不同的渲染程序可以对应不同的渲染字段或渲染函数,终端设备可以通过渲染程序获取对应的渲染字段或渲染函数,来确定渲染指令流中的V矩阵字段值。例如:view_field可以表示为渲染程序中的V矩阵渲染字段或者渲染函数,该渲染字段名或者函数名可以通过字母和数字任意组合来命名。
可选的,S402的获取第一帧图像与第二帧图像之间的运动参数,包括:根据第一V矩阵和第二V矩阵计算得到视角变化值。
由于视角变化量可以是观察坐标系中目标对象的视角变化量,也可以看作是摄像机的转角,如图6所示,视角变化值可以通过计算目标对象在世界空间坐标系中角度变化快慢获得。目标对象的视角变化值可以通过V矩阵中的方向向量(Dx,Dy,Dz)得到,其中,V矩阵中的方向向量(Dx,Dy,Dz)满足下述点积运算公式:
dN-1·dN=|dN-1||dN|cosθ
其中,θ为视角变化值,dN-1为第一V矩阵中的方向向量,dN-1=(DN-1x,DN-1y,DN-1z),dN为第二V矩阵中的方向向量,dN=(DNx,DNy,DNz)。
因此,根据第一V矩阵和第二V矩阵计算得到视角变化值满足下述公式:
一种可能的实现中,第一帧图像对应的第一方向向量和第二帧图像对应的第二方向向量可以通过V矩阵中的目标对象的方向向量(Dx,Dy,Dz)得到。
另一种可能的实现中,第一帧图像对应的第一方向向量和第二帧图像对应的第二方向向量可以通过渲染指令流中预设的方向向量字段得到。不同的渲染程序可以对应不同的渲染字段或渲染函数,终端设备可以通过渲染程序获取对应的方向向量字段值。例如:camera_forward可以表示为渲染程序中目标对象的方向向量渲染字段或者渲染函数,该方向向量字段名或者函数名可以通过字母和数字任意组合来命名。
可选的,在图4对应的实施例的基础上,获取第一帧图像与第二帧图像之间的运动参数,包括:在游戏应用对应的渲染指令流中获取第一帧图像中目标对象在世界空间的第一坐标值,以及第二帧图像中目标对象在世界空间的第二坐标值;根据第一坐标值和第二坐标值,计算得到移动量。
一种可能的计算移动量的实现方式中,由于移动量可以是世界空间中目标对象的移动量,因此移动量可以通过目标对象在世界空间中的坐标值得到。移动量包括目标对象在世界空间中的移动距离,根据第一坐标值和第二坐标值,计算得到移动量,满足下述公式:
其中,为移动量,(xN-1,yN-1,zN-1)为世界空间中的第一坐标值,(xN,yN,zN)为世界空间中的第二坐标值。
另一种可能的计算移动量的实现方式中,由于移动量可以是观察坐标系中目标对象的移动量,如图7所示,移动量可以通过计算目标对象在观察坐标系中的位置向量(Px,Py,Pz)获得。移动量包括目标对象在观察坐标系的移动距离。获取第一帧图像与第二帧图像之间的移动距离,包括在游戏应用对应的渲染指令流中获取目标对象在第一帧图像对应的第一位置向量,以及目标对象在第二帧图像对应的第二位置向量。根据第一位置向量和第二位置向量,计算得到移动量,满足下述公式:
/>
其中,为移动距离,PN-1为第一V矩阵中的位置向量,PN为第二V矩阵中的位置向量。
一种可能的实现中,第一帧图像对应的第一位置向量和第二帧图像对应的第二位置向量可以通过V矩阵中的目标对象的位置向量(Px,Py,Pz)得到。
另一种可能的实现中,第一帧图像对应的第一位置向量和第二帧图像对应的第二位置向量可以通过渲染指令流中预设的位置向量字段得到。不同的渲染程序可以对应不同的渲染字段或渲染函数,终端设备可以通过渲染程序获取对应的位置向量字段值。例如:camera_origin可以表示为不同渲染程序中目标对象的位置向量渲染字段或者渲染函数,该位置向量字段名或者函数名可以通过字母和数字任意组合来命名。
再一种可能的计算移动量的实现方式中,移动量可以包括移动速度,根据移动距离计算得到移动量,满足下述公式:
其中,v为移动速度,t为第一帧图像和第二帧图像之间的时间间隔。
本申请实施例提供的游戏中帧率调整方法,在进行相邻两帧图像的相似度比较前,先排除掉运动参数变化较快的相邻两帧图像,因为运动参数变化较快的两帧图像的相似度通常较低,也较低概率会出现相似度较高的情况,这样可以在不太影响相似度计算准确的的情况下,减少帧图像相似度比较的算量,从而可以优化游戏负载,降低功耗,改善终端设备的发热情况,提升用户体验。
可选的,在图4对应的实施例的基础上,S403的当视角变化值小于或等于第一预设值,和/或,移动量小于或等于第二预设值时,比较第一帧图像与第二帧图像之间的相似度。
一种可能的实现中,当视角变化值小于或等于第一预设值时,可以理解为,第一帧图像与第二帧图像的视角变化较小,这样,可以预判第一帧图像与第二帧图像相似度相对高的概率较大,则可以进一步进行第一帧图像与第二帧图像之间的相似度比较。
另一种可能的实现中,当移动量小于或等于第二预设值时,可以理解为,第一帧图像与第二帧图像的位置变化较小,这样,可以预判第一帧图像与第二帧图像相似度相对高的概率较大,则可以进一步进行第一帧图像与第二帧图像之间的相似度比较。
再一种可能的实现中,当视角变化值小于或等于第一预设值,并且移动量小于或等于第二预设值时,可以理解为,第一帧图像与第二帧图像变化较小,这样,可以预判第一帧图像与第二帧图像相似度相对高的概率较大,则可以进一步进行第一帧图像与第二帧图像之间的相似度比较。
需要说明的是,上述视角变化值的判断和移动量的判断可以没有先后顺序的区分。
本申请实施例中,通过将视角变化值与第一预设值比较,以及将移动量与第二预设值比较,可以预判第一帧图像与第二帧图像的相似度概率。当第一帧图像与第二帧图像的相似度概率较大时,再进行相邻两帧图像的相似度比较,以及进行降帧率操作,可以更为准确的识别出相似帧图像,减少不必要的相似度计算,提高运行效率。
可选的,在图4对应的实施例的基础上,S404的根据相似度执行帧率调整,包括:当相似度大于或等于相似度阈值时,进行降帧率调整,降帧率调整包括丢帧,和/或,在执行等待指令降低送限频率,和/或,调低屏幕刷新率。
可选的,进行降帧率调整,包括:保持屏幕刷新率不变,以及在应用程序框架层中通过执行等待指令降低送显频率;或者,调用内核层降低屏幕刷新率的接口,并基于内核层降低屏幕刷新率;或者,在应用程序框架层执行降低屏幕刷新率的步骤。
一种可能的实现中,在图像绘制过程中,将需要降帧图像对应的绘图函数跳过,即丢弃该帧对应的图像,则该张图像不会参与到图像绘制中。该处理方式可以在保证屏幕刷新率不变的同时,通过在应用程序框架层中执行等待指令达到降帧调整。
另一种可能的实现中,可以通过调用内核层降低屏幕刷新率的接口,并基于内核层降低屏幕刷新率,或者可以通过在应用程序框架层执行降低屏幕刷新率的步骤达到降低屏幕刷新率的目的。例如,当前图像绘制频率为60Hz,所对应的帧的数量为每秒60帧,当需要降低屏幕刷新率时,可以向内核层输出将图像绘制频率从60Hz降低到30Hz的指令,从而实现将帧数从每秒60帧丢弃至每秒30帧。
本申请实施例提供的游戏中帧率调整方法,在不影响游戏画面连续性的前提下,可以通过在应用程序中写入空值降低送显频率或执行降低屏幕刷新率的步骤,也可以基于内核层降低屏幕刷新率,从而降低游戏负载,减少游戏界面卡顿,实现降低终端设备功耗的目的。
具体的,图8为本申请实施例所提供的另一种游戏应用中的帧率调整方法的流程示意图。应理解的是,图中的Frame N-1可以为第一帧图像,表示获取的第N帧图像的上一帧图像,N大于或等于2。类似的,Frame N可以为第二帧图像,表示获取的第N帧图像,Frame N+1可以为第N帧图像的下一帧图像。如图8所示,具体的步骤可以为:
S801、获取第二帧图像Frame N。
S802、确定Frame N是否处于游戏应用中的目标场景。其中,目标场景的确定过程可参见上述实施例中S401,本申请实施例在此不再赘述。
若Frame N处于目标场景,目标场景可以是游戏中的对局场景,则执行S803;
若Frame N不处于目标场景,不处于目标场景可以是非游戏对局场景,则执行S808。
S803、获取第一帧图像Frame N-1对应的第一V矩阵,以及第二帧图像Frame N对应的第二V矩阵。
一种可能的实现中,通过渲染指令流中预设V矩阵字段可以得到Frame N-1对应的第一观察矩阵V矩阵,以及Frame N对应的第二V矩阵。
S804、通过第一V矩阵和第二V矩阵获取Frame N-1和Frame N之间的运动参数。其中,运动参数包括视角变化量或者移动量中的至少一种。
一种可能的实现方式中,Frame N-1和Frame N之间的运动参数的计算可参见上述实施例中S402,本申请实施例在此不再赘述。
S805、判断第一帧图像Frame N-1和第二帧图像Frame N的视角变化量和第一阈值的关系,以及移动量和第二阈值的关系。
若Frame N-1和Frame N的视角变化量小于或等于第一阈值,和/或,移动量小于或等于第二阈值时,则执行S806。若视角变化量大于第一阈值,且移动量大于第二阈值时,则执行S809。其中,视角变化量与第一阈值的判断以及移动量与第二阈值的判断可参见上述实施例中S403,本申请实施例在此不再赘述。
S806、比较第一帧图像Frame N-1和第二帧图像Frame N的相似度。其中,相似度比较可参见上述实施例中S403,本申请实施例在此不再赘述。
S807、判断Frame N-1和Frame N是否为相似帧图像。若两帧图像相似度较高,则执行S808;若两帧图像相似度较低,则执行S809。
S808、执行帧率调整。其中,帧率调整可参见上述实施例中S404,本申请实施例在此不再赘述。
S809、获取下一帧图像Frame N+1。在执行新一轮的帧率调整方式时,下一帧图像Frame N+1可以作为新一轮执行流程中的第二帧图像Frame N,重新执行图8所示的流程方法判断,依次类推,不再赘述。
本申请实施例提供的一种游戏中帧率调整方法,在进行相邻两帧图像的相似度比较前,先排除掉运动参数变化较快的相邻两帧图像,因为运动参数变化较快的两帧图像的相似度通常较低,也较低概率会出现相似度较高的情况,这样可以在不太影响相似度计算准确的的情况下,减少帧图像相似度比较的算量,从而可以优化游戏负载,降低功耗,改善终端设备的发热情况,提升用户体验。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对实现游戏中帧率调整的方法的装置进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图9示为本申请实施例提供的一种芯片的结构示意图。芯片900包括一个或两个以上(包括两个)处理器901、通信线路902、通信接口903和存储器904。
在一些实施方式中,存储器904存储了如下的元素:可执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
上述本申请实施例描述的方法可以应用于处理器901中,或者由处理器901实现。处理器901可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器901中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器901可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器901可以实现或者执行本申请实施例中的公开的各处理相关的方法、步骤及逻辑框图。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。其中,软件模块可以位于随机存储器、只读存储器、可编程只读存储器或带电可擦写可编程存储器(electricallyerasable programmable read only memory,EEPROM)等本领域成熟的存储介质中。该存储介质位于存储器904,处理器901读取存储器904中的信息,结合其硬件完成上述方法的步骤。
处理器901、存储器904以及通信接口903之间可以通过通信线路902进行通信。
在上述实施例中,存储器存储的供处理器执行的指令可以以计算机程序产品的形式实现。其中,计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。
本申请实施例还提供一种计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本申请实施例还提供一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compactdisc read-only memory,CD-ROM)、RAM、ROM、EEPROM或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,DSL或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(CD),激光盘,光盘,数字通用光盘(digital versatile disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。
本申请实施例是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
Claims (11)
1.一种游戏中的帧率调整方法,应用于电子设备,其特征在于,
确定处于游戏应用中的目标场景或非目标场景,在所述目标场景下对帧率或负载的需求大于在所述非目标场景下对帧率或负载的需求;
当处于所述目标场景时,获取第一帧图像与第二帧图像之间的运动参数;所述第一帧图像与所述第二帧图像为所述目标场景中的相邻帧图像,所述运动参数是以目标对象为参照得到的变化量,所述运动参数包括所述目标对象的视角变化值和所述目标对象的移动量;
当所述视角变化值小于或等于第一预设值和所述移动量小于或等于第二预设值时,比较所述第一帧图像与所述第二帧图像之间的相似度;
当所述相似度大于或等于相似度阈值时,进行降帧率调整。
2.根据权利要求1所述的方法,其特征在于,所述目标对象为游戏中的伴随玩家运动的物体,所述获取第一帧图像与第二帧图像之间的运动参数,包括:
获取所述第一帧图像对应的第一观察矩阵V矩阵,以及所述第二帧图像的第二V矩阵;
根据所述第一V矩阵和所述第二V矩阵计算得到所述视角变化值。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一V矩阵和所述第二V矩阵计算得到所述视角变化值满足下述公式:
其中,θ为所述视角变化值,dN-1为所述第一V矩阵中所述目标对象的观察方向向量,dN为所述第二V矩阵中所述目标对象的观察方向向量。
4.根据权利要求2或3所述的方法,其特征在于,所述获取所述第一帧图像对应的第一观察矩阵V矩阵,以及所述第二帧图像的第二V矩阵之前,还包括:
获取所述游戏应用对应的渲染指令流;
所述获取所述第一帧图像对应的第一V矩阵,以及所述第二帧图像的第二V矩阵,包括:在所述渲染指令流中基于预设字段得到所述第一帧图像对应的第一V矩阵,以及所述第二帧图像的第二V矩阵。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述获取第一帧图像与第二帧图像之间的运动参数,包括:
在所述游戏应用对应的渲染指令流中获取所述第一帧图像中所述目标对象在世界空间的第一坐标值,以及所述第二帧图像中所述目标对象在所述世界空间的第二坐标值;
根据所述第一坐标值和所述第二坐标值,计算得到所述移动量。
6.根据权利要求5所述的方法,其特征在于,所述移动量包括移动距离,所述根据所述第一坐标值和所述第二坐标值,计算得到所述移动量,满足下述公式:
其中,为所述移动距离,(xN-1,yN-1,zN-1)为所述第一坐标值,(xN,yN,zN)为所述第二坐标值。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述降帧率调整包括:丢帧,和/或,执行等待指令来降低送限频率,和/或,调低屏幕刷新率。
8.根据权利要求7所述的方法,其特征在于,所述进行降帧率调整,包括:
保持屏幕刷新率不变,以及在应用程序框架层中通过执行等待指令来降低送显频率;
或者,调用内核层降低屏幕刷新率的接口,并基于所述内核层降低屏幕刷新率;
或者,在所述应用程序框架层执行降低屏幕刷新率的步骤。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述目标场景包括所述游戏应用中的对局场景,所述确定处于游戏应用中的目标场景,包括:
读取所述游戏应用的渲染指令流中的场景标签;
根据所述场景标签确定处于所述游戏应用中的目标场景。
10.一种终端设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,以执行如权利要求1-9任一项所述的游戏中帧率调整方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如权利要求1-9任一项所述的游戏中帧率调整方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210956515.3A CN116095221B (zh) | 2022-08-10 | 2022-08-10 | 一种游戏中的帧率调整方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210956515.3A CN116095221B (zh) | 2022-08-10 | 2022-08-10 | 一种游戏中的帧率调整方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116095221A CN116095221A (zh) | 2023-05-09 |
CN116095221B true CN116095221B (zh) | 2023-11-21 |
Family
ID=86185540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210956515.3A Active CN116095221B (zh) | 2022-08-10 | 2022-08-10 | 一种游戏中的帧率调整方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116095221B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116664630B (zh) * | 2023-08-01 | 2023-11-14 | 荣耀终端有限公司 | 一种图像处理方法和电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103400386A (zh) * | 2013-07-30 | 2013-11-20 | 清华大学深圳研究生院 | 一种用于视频中的交互式图像处理方法 |
CN105045367A (zh) * | 2015-01-16 | 2015-11-11 | 中国矿业大学 | 基于游戏负载预测的android***设备功耗优化方法 |
JP2019144827A (ja) * | 2018-02-20 | 2019-08-29 | キヤノン株式会社 | 画像処理装置およびその制御方法ならびにプログラム |
CN112507799A (zh) * | 2020-11-13 | 2021-03-16 | 幻蝎科技(武汉)有限公司 | 基于眼动注视点引导的图像识别方法、mr眼镜及介质 |
WO2022068326A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为技术有限公司 | 一种图像帧预测的方法及电子设备 |
CN114452645A (zh) * | 2021-07-09 | 2022-05-10 | 荣耀终端有限公司 | 生成场景图像的方法、设备和存储介质 |
CN114724055A (zh) * | 2021-01-05 | 2022-07-08 | 华为技术有限公司 | 视频切换方法、装置、存储介质及设备 |
CN114740965A (zh) * | 2022-05-05 | 2022-07-12 | Oppo广东移动通信有限公司 | 降低终端功耗的处理方法及其装置、终端和可读存储介质 |
-
2022
- 2022-08-10 CN CN202210956515.3A patent/CN116095221B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103400386A (zh) * | 2013-07-30 | 2013-11-20 | 清华大学深圳研究生院 | 一种用于视频中的交互式图像处理方法 |
CN105045367A (zh) * | 2015-01-16 | 2015-11-11 | 中国矿业大学 | 基于游戏负载预测的android***设备功耗优化方法 |
JP2019144827A (ja) * | 2018-02-20 | 2019-08-29 | キヤノン株式会社 | 画像処理装置およびその制御方法ならびにプログラム |
WO2022068326A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为技术有限公司 | 一种图像帧预测的方法及电子设备 |
CN112507799A (zh) * | 2020-11-13 | 2021-03-16 | 幻蝎科技(武汉)有限公司 | 基于眼动注视点引导的图像识别方法、mr眼镜及介质 |
CN114724055A (zh) * | 2021-01-05 | 2022-07-08 | 华为技术有限公司 | 视频切换方法、装置、存储介质及设备 |
CN114452645A (zh) * | 2021-07-09 | 2022-05-10 | 荣耀终端有限公司 | 生成场景图像的方法、设备和存储介质 |
CN114740965A (zh) * | 2022-05-05 | 2022-07-12 | Oppo广东移动通信有限公司 | 降低终端功耗的处理方法及其装置、终端和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116095221A (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3104243C (en) | Real-time animation generation using machine learning | |
US11951390B2 (en) | Method and system for incremental topological update within a data flow graph in gaming | |
US11986729B2 (en) | Method and system for retargeting a human component of a camera motion | |
CN116095221B (zh) | 一种游戏中的帧率调整方法及相关装置 | |
CN113936089A (zh) | 界面渲染方法及装置、存储介质及电子设备 | |
US20240248531A1 (en) | Reducing startup time of augmented reality experience | |
US11615506B2 (en) | Dynamic over-rendering in late-warping | |
WO2021254113A1 (zh) | 一种三维界面的控制方法和终端 | |
US20240029197A1 (en) | Dynamic over-rendering in late-warping | |
CN116688495B (zh) | 帧率调整方法及相关装置 | |
CN116091292B (zh) | 数据处理方法和相关装置 | |
US20220414984A1 (en) | Volumetric data processing using a flat file format | |
US20230154445A1 (en) | Spatial music creation interface | |
CN116737104B (zh) | 音量调节方法和相关装置 | |
WO2024045701A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
CN115623318B (zh) | 对焦方法及相关装置 | |
US20230306671A1 (en) | Method and system for distributed rendering for simulation | |
US12067693B2 (en) | Late warping to minimize latency of moving objects | |
CN117596406A (zh) | 利用光流进行帧速率上转换 | |
KR20240008370A (ko) | 움직이는 객체들의 레이턴시를 최소화하기 위한 늦은 워핑 | |
CN117742849A (zh) | 基于应用分身的界面显示方法及相关装置 | |
CN117714836A (zh) | 图像处理方法及相关装置 | |
CN116680431A (zh) | 一种视觉定位方法、电子设备、介质及产品 | |
CN117425869A (zh) | 后期扭曲中的动态过度渲染 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |