一种运动状态识别方法、装置、存储介质及电子设备与流程

专利2023-11-11  108



1.本技术涉及计算机技术领域,尤其涉及一种运动状态识别方法、装置、存储介质及电子设备。


背景技术:

2.随着计算机技术的发展,各类游戏应用被开发出来丰富着人们的娱乐生活。而伴随着各类游戏应用的不断迭代升级以及大型游戏应用的推广,许多流行的游戏应用运行时所需的硬件配置也越来越高。在硬件配置不够的情况下,游戏应用的运行效果就会较差,用户体验较差。
3.目前,在硬件配置条件有限的情况下,提升游戏应用的运行效果、提高用户的游戏体验成为相关企业的又一研究方向。


技术实现要素:

4.本技术实施例提供的一种运动状态识别方法、装置、存储介质及电子设备,可以。所述技术方案如下:
5.第一方面,本技术实施例提供的一种运动状态识别方法,所述方法包括:
6.获取针对目标应用的目标图形绘制指令,获取所述目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵;
7.获取所记录的第二帧画面中应用元素的第二相机位置矩阵,所述第二帧画面为基于所述目标应用在所述第一帧画面之前所获取的,且与所述第一帧画面相隔的帧数小于或等于预设帧数的帧画面;
8.基于所述第一相机位置矩阵和所述第二相机位置矩阵确定所述应用元素的运动状态。
9.第二方面,本技术实施例提供的一种运动状态识别装置,所述装置包括:
10.第一矩阵获取模块,用于获取针对目标应用的目标图形绘制指令,获取所述目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵;
11.第二矩阵获取模块,用于获取所记录的第二帧画面中应用元素的第二相机位置矩阵,所述第二帧画面为基于所述目标应用在所述第一帧画面之前所获取的,且与所述第一帧画面相隔的帧数小于或等于预设帧数的帧画面;
12.运动状态确定模块,用于基于所述第一相机位置矩阵和所述第二相机位置矩阵确定所述应用元素的运动状态。
13.第三方面,本技术实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
14.第四方面,本技术实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
15.在本技术一个或多个实施例中,通过获取针对目标应用的目标图形绘制指令,获取目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵,然后获取所记录的第二帧画面中应用元素的第二相机位置矩阵,第二帧画面为基于目标应用在第一帧画面之前所获取的,且与第一帧画面相隔的帧数小于或等于预设帧数的帧画面,最后基于第一相机位置矩阵和第二相机位置矩阵确定应用元素的运动状态,实现了在目标应用客户端不发送任何应用元素的动作和时间等信息的情况下,通过目标应用运行过程中不同帧之间的相机位置矩阵即可判断目标应用中应用元素的运动状态。
附图说明
16.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1为本技术实施例提供的一种运动状态识别方法的流程示意图;
18.图2为本技术实施例提供的一种运动状态识别方法的流程示意图;
19.图3为本技术实施例提供的一种运动状态识别方法的流程示意图;
20.图4为本技术实施例提供的一种运动状态识别装置的结构示意图;
21.图5为本技术实施例提供的一种运动状态识别装置的结构示意图;
22.图6为本技术实施例提供的一种运动状态确定模块的结构示意图;
23.图7为本技术实施例提供的一种画质调整模块的结构示意图;
24.图8为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
25.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
26.在本技术的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本技术的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本技术中的具体含义。此外,在本技术的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
27.现有技术中,在游戏应用运行过程中,用户终端可以根据游戏客户端下发的游戏画面中元素的动作和时间等信息,以获知游戏应用游戏画面的运动状态,根据游戏画面当
前的运动状态对游戏应用的运行参数进行实时优化,以提升游戏应用的运行效果。
28.然而,部分游戏应用在研发阶段未被赋予在运行过程中由游戏客户端向用户终端发送动作和时间等信息的功能,即在游戏运行过程中用户终端无法获知游戏应用游戏画面的运动状态,也就无法根据游戏画面当前的运动状态对游戏应用的运行参数进行实时优化。
29.基于此,本技术提出了一种运动状态识别方法,在目标应用运行过程中,通过获取针对目标应用的目标图形绘制指令,获取目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵,然后获取所记录的第二帧画面中应用元素的第二相机位置矩阵,第二帧画面为基于目标应用在第一帧画面之前所获取的,且与第一帧画面相隔的帧数小于或等于预设帧数的帧画面,最后基于第一相机位置矩阵和第二相机位置矩阵确定应用元素的运动状态,实现了在目标应用客户端不发送任何应用元素的动作和时间等信息的情况下,通过检测目标应用运行过程中不同帧之间的相机位置矩阵即可判断目标应用中应用元素的运动状态。
30.下面结合具体的实施例进行详细说明。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。附图中所示的流程图仅是示例性说明,不是必须按照所示步骤执行。例如,有的步骤是并列的,在逻辑上并没有严格的先后关系,因此实际执行顺序是可变的。
31.请参见图1,为本技术实施例提供的一种运动状态识别方法的流程示意图。在具体的实施例中,所述运动状态识别方法应用于运动状态识别装置或配置有运动状态识别装置的电子设备。下面将针对图2所示的流程进行详细的阐述,所述运动状态识别方法具体可以包括以下步骤:
32.s101,获取针对目标应用的目标图形绘制指令,获取目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵;
33.可以理解,在目标应用的运行过程中,由电子设备中的中央处理器向图像处理器发送针对目标应用的图形绘制指令,以实现目标应用的每一帧应用画面的更新。
34.具体的,在目标应用的运行过程中,获取电子设备中的中央处理器向图像处理器发送针对目标应用的目标图形绘制指令,并获取目标图形绘制指令中针对目标应用的应用画面中应用元素的第一相机位置矩阵。
35.需要说明的是,在目标应用的运行过程中,在需要显示目标应用的应用画面时,中央处理器就会调用图形api向图形处理器发送图形绘制指令,对每一帧应用画面的数据进行渲染处理,由此获取渲染之后的应用画面并在显示屏上进行显示。针对每一帧应用画面,中央处理器都会向图形处理器发送多个图形绘制指令,有图形处理器依次获取中央处理器发送的图形绘制指令并进行渲染操作,在图形处理器将一帧应用画面对应的图形绘制指令完全执行完成时,即得到渲染完成的应用画面,进而可以在显示屏幕上进行显示该帧应用画面。
36.在中央处理器向图形处理器发送图形绘制指令时,考虑到速度不匹配的问题,中央处理器会将图形绘制指令存储在图形处理器的缓冲区中,由图形处理器在缓冲区中依次获取各图形绘制指令。
37.图形绘制指令即图形api指令,用于调用图形处理器对目标应用的显示画面进行渲染绘制。图形绘制指令可以为opengl,opengl es,directx等应用程序接口(applicationprogramming interface,api)的指令。
38.应用元素为目标应用的应用画面各元素中的其中一个应用元素,例如,可以为一个人、一辆车、一个动物、一个角色。
39.第一相机位置矩阵为图形处理器中的着色器在渲染第一帧画面中的应用元素时,所使用的模型视图投影矩阵中的其中一个或多个矩阵,可以表示应用元素在应用画面中的运动状态。
40.模型视图投影矩阵又叫mvp矩阵,是经模型矩阵、视图矩阵和投影矩阵变换后得到的矩阵,可以用于着色器以使着色器根据模型视图投影矩阵渲染并显示视角变换后的应用画面。组成模型视图投影矩阵的各矩阵分别存储在各图形绘制指令所传递的数据中,其中,第一相机位置矩阵即存储在目标图形绘制指令所传递的数据中。
41.一个实施例中,当目标应用为首次运行时,目标图形绘制指令可通过以下方式确定:
42.在获取中央处理器向图形处理器发送的针对目标应用的目标图形绘制指令之前,截取目标应用中应用元素处于不同运动状态时的多个帧画面,比较应用元素处于不同运动状态对应的模型视图投影矩阵之间的差异,根据不同运动状态对应的模型视图投影矩阵之间的差异在组成模型视图投影矩阵的多个矩阵中确定相机位置矩阵。然后在图形处理器的各缓冲区中确定相机位置矩阵所在的第一缓冲区,并确定第一缓冲区的第一缓冲区标识,将以第一缓冲区标识命名的缓冲区作为目标缓冲区,并将存储于目标缓冲区的图形绘制指令作为目标图形绘制指令。
43.在目标应用运行过程中,实时监测由中央处理器向图形处理器发送的针对目标应用的图形绘制指令,判断图形绘制指令所存储的缓存区是否为以第一缓冲区标识命名的目标缓冲区。若确定图形绘制指令所存储的缓存区为以第一缓冲区标识命名的目标缓冲区,则确定图形绘制指令为目标图形绘制指令,获取目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵。
44.一个实施例中,当目标应用为非首次运行时,目标图形绘制指令可通过以下方式确定:
45.在图形处理器的各缓冲区中确定与第一缓冲区大小相同的第二缓冲区,并确定第二缓冲区的第二缓冲区标识,将以第二缓冲区标识命名的缓冲区作为目标缓冲区,并将存储于目标缓冲区的图形绘制指令作为目标图形绘制指令。
46.在目标应用运行过程中,实时监测由中央处理器向图形处理器发送的图形绘制指令,判断图形绘制指令所存储的缓存区是否为以第二缓冲区标识命名的目标缓冲区。若确定图形绘制指令所存储的缓存区为以第二缓冲区标识命名的目标缓冲区,则确定图形绘制指令为目标图形绘制指令,获取目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵。
47.s102,获取所记录的第二帧画面中应用元素的第二相机位置矩阵,第二帧画面为基于目标应用在第一帧画面之前所获取的,且与第一帧画面相隔的帧数小于或等于预设帧数的帧画面;
48.具体的,获取所记录的第二帧画面中应用元素的第二相机位置矩阵,第二帧画面为在目标应用运行过程中在第一帧画面之前的帧画面,且第二帧画面与第一帧画面相隔的帧数小于或等于预设帧数,第二相机位置矩阵为在获取第一帧画面的第一相机位置矩阵之前获取的第二帧画面中应用元素对应的相机位置矩阵。
49.s103,基于第一相机位置矩阵和第二相机位置矩阵确定应用元素的运动状态。
50.具体的,计算第一帧画面中应用元素对应的第一相机位置矩阵和第二帧画面中应用元素对应的第二相机位置矩阵之间的差值。若第一相机位置矩阵和第二相机位置矩阵的差值为零,即表明从第二帧画面到第一帧画面,应用元素未发生位置的移动,则确定应用元素的运动状态为静止状态,若第一相机位置矩阵和第二相机位置矩阵的差值不为零,即表明从第二帧画面到第一帧画面,应用元素发生了位置的移动,则确定应用元素的运动状态为移动状态。
51.一个实施例中,在确定应用元素的运动状态之后,可以基于应用元素的运动状态对目标应用的画面显示质量进行调整。
52.可选的,若确定应用元素的运动状态为移动状态,则基于降负载技术降低当前画面的画面显示质量,若确定应用元素的运动状态为静止状态,则保持当前画面的画面显示质量不变。
53.可以理解的是,当应用元素的运动状态为静止状态时,此时目标应用显示的各帧画面的变化较小或不变化,在渲染并显示各帧画面时,中央处理器和图形处理器的计算压力较小,不会出现硬件性能不足导致的卡顿现象,因此无需降低目标应用的画面显示质量,可以保持较好的显示效果以满足用户需要。而当应用元素的运动状态为移动状态时,伴随着应用元素的移动目标应用中显示的各帧画面快速变化,此时目标应用显示的各帧画面的变化较大,中央处理器和图形处理器在渲染并显示各帧画面时面临的计算压力较大,容易出现硬件性能不足导致的卡顿现象,因此可以基于降负载技术降低目标应用的画面显示质量,以缓解中央处理器和图形处理器的计算压力,保持目标应用流畅运行,且在应用元素快速移动时,由于目标应用中显示的各帧画面快速变化,用户也不会过于关注画面显示质量,画面显示质量的降低不会对用户体验造成较大影响。
54.在本技术一个或多个实施例中,在目标应用运行过程中,通过获取由中央处理器向图形处理器发送的针对目标应用的目标图形绘制指令,获取目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵,然后获取所记录的第二帧画面中应用元素的第二相机位置矩阵,第二帧画面为基于目标应用在第一帧画面之前所获取的,且与第一帧画面相隔的帧数小于或等于预设帧数的帧画面,最后基于第一相机位置矩阵和第二相机位置矩阵确定应用元素的运动状态,实现了在目标应用客户端不发送任何应用元素的动作和时间等信息的情况下,通过检测目标应用运行过程中不同帧之间的相机位置矩阵即可判断目标应用中应用元素的运动状态。
55.一个实施例中,在获取目标图形绘制指令之前还需要确定目标图形绘制指令所存储的目标缓冲区。在目标应用首次运行时,请参见图2,为本技术实施例提供的一种运动状态识别方法的流程示意图。如图2所示,所述运动状态识别方法可以包括以下步骤:
56.s201,截取目标应用中应用元素处于不同运动状态时的多个帧画面,获取多个帧画面中各帧画面的模型视图投影矩阵之间的差异数据;
57.具体的,在目标应用首次运行时,截取目标应用中应用元素处于不同运动状态时的多个帧画面,比较各帧画面中应用元素对应的模型视图投影矩阵之间的差异,得到各模型视图投影矩阵之间的差异数据。
58.例如,截取目标应用中应用元素处于静止状态的帧画面以及截取目标应用中应用元素处于奔跑状态的帧画面,比较两个帧画面中应用元素分别对应的模型视图投影矩阵,得到两模型视图投影矩阵之间的差异数据。
59.s202,基于差异数据,在组成模型视图投影矩阵的多个矩阵中确定相机位置矩阵;
60.可以理解的是,当应用元素处于不同运动状态时,着色器在渲染显示目标元素所采用的模型视图投影矩阵是不同的,通过比较应用元素处于不同运动状态的各模型视图投影矩阵之间的差异,得到各模型视图投影矩阵之间的差异数据,根据差异数据即可在组成模型视图投影矩阵的多个矩阵中确定出用于表示应用元素运动状态的相机位置矩阵。
61.s203,在缓冲区集合中确定相机位置矩阵所在的第一缓冲区,所述缓冲区集合中的各缓冲区用于存储针对目标应用的图形绘制指令;
62.s204,将第一缓冲区作为目标缓冲区,并将存储于目标缓冲区的图形绘制指令作为目标图形绘制指令;
63.所述缓冲区集合中的各缓冲区即为图形处理器中的各缓冲区,用于存储中央处理器向图形处理器发送的针对目标应用的图形绘制指令。
64.步骤s203~步骤s204具体的,在组成模型视图投影矩阵的多个矩阵中确定出用于表示应用元素运动状态的相机位置矩阵之后,在图形处理器的各缓冲区中确定相机位置矩阵所在的第一缓冲区,将第一缓冲区作为目标缓冲区,并将存储于目标缓冲区的图形绘制指令作为目标图形绘制指令。目标图形绘制指令即为携带有相机位置矩阵的图形绘制指令。
65.应当理解的是,在首次运行时,用于表示应用元素运动状态的相机位置矩阵不是显而易见的,即运行目标应用的电子设备在初始阶段并不知道哪个矩阵可以表示应用元素的运动状态,相机位置矩阵是通过比较应用元素处于不同运动状态的各模型视图投影矩阵之间的差异得到的。针对同一目标应用中的目标元素,用于表示应用元素运动状态的相机位置矩阵不会再发生改变,因此,仅需要在目标应用首次运行时,执行依次确定相机位置矩阵的步骤即可。
66.相机位置矩阵是由中央处理器向图形处理器发送的图形绘制指令中传递的数据,在确定相机位置矩阵之后,需要定位相机位置矩阵所存储的第一缓冲区,并将第一缓冲区作为目标缓冲区,并将存储于目标缓冲区的图形绘制指令作为目标图形绘制指令,以便于在目标应用运行过程中监测存储至该缓冲区中的目标图形绘制指令。
67.需要说明的是,从目标应用的开启运行到目标应用的结束运行,在一次完整的运行过程中,携带相机位置矩阵的目标图形绘制指令所存储的缓冲区不会发生变化。即,在确定目标缓冲区之后,目标缓冲区中所存储的图形绘制指令即为携带相机位置矩阵的目标图形绘制指令。
68.s205,实时监测针对目标应用的图形绘制指令,判断图形绘制指令所存储的缓存区是否为目标缓冲区;
69.s206,若确定图形绘制指令所存储的缓存区为目标缓冲区,则确定图形绘制指令
为目标图形绘制指令;
70.步骤s205~步骤s206具体的,实时监测由中央处理器向图形处理器发送的图形绘制指令,判断图形绘制指令所存储的缓存区的缓冲区标识和目标缓冲区的目标缓冲区标识是否相同,若相同,则确定图形绘制指令所存储的缓存区为目标缓冲区,确定该图形绘制指令为携带相机位置矩阵的目标图形绘制指令。
71.缓冲区标识可以为缓冲区的名称标识或缓冲区的大小标识。
72.可选的,若确定图形绘制指令所存储的缓存区不为目标缓冲区,则确定图形绘制指令不为目标图形绘制指令。
73.s207,获取目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵;
74.具体的,在确定目标图形绘制指令之后,基于hook函数在目标图形绘制指令所传递的数据中获取针对第一帧画面中应用元素的第一相机位置矩阵。
75.第一帧画面即为图形处理器基于目标图形绘制指令渲染并显示的目标应用的应用画面。
76.s208,获取所记录的第二帧画面中应用元素的第二相机位置矩阵,第二帧画面为基于目标应用在第一帧画面之前所获取的,且与第一帧画面相隔的帧数小于或等于预设帧数的帧画面;
77.具体的,步骤s208请参见另一实施例中对步骤s102的详细描述,在此不一一赘述。
78.s209,计算第一相机位置矩阵和第二相机位置矩阵之间的差值;
79.s210,若差值为零,则确定应用元素的运动状态为静止状态;
80.s211,若差值不为零,则确定应用元素的运动状态为移动状态;
81.可选的,移动状态可以包括行走状态、疾跑状态和开车状态。一个实施例中,还可以基于第一帧画面和第二帧画面之间的时间间隔以及第一相机位置矩阵和第二相机位置矩阵之间的差值计算应用元素的移动速度。若应用元素的移动速度大于零且小于第一速度阈值,确定应用元素的运动状态为行走状态;若应用元素的移动速度大于第一速度阈值且小于第二速度阈值,确定应用元素的运动状态为疾跑状态;若应用元素的移动速度大于第二速度阈值,确定应用元素的运动状态为开车状态。
82.s212,若确定应用元素的运动状态为移动状态,则基于降负载技术降低当前画面的画面显示质量;
83.可以理解的是,当应用元素的运动状态为移动状态时,伴随着应用元素的移动目标应用中显示的各帧画面快速变化,此时目标应用显示的各帧画面的变化较大,中央处理器和图形处理器在渲染并显示各帧画面时面临的计算压力较大,容易出现硬件性能不足导致的卡顿现象,因此可以基于降负载技术降低目标应用的画面显示质量,以缓解中央处理器和图形处理器的计算压力,保持目标应用流畅运行,且在应用元素快速移动时,由于目标应用中显示的各帧画面快速变化,用户也不会过于关注画面显示质量,画面显示质量的降低不会对用户体验造成较大影响。
84.所述降负载技术可以为gpu降负载技术、可变分辨率渲染技术。
85.可选的,移动状态可以包括行走状态、疾跑状态和开车状态。一个实施例中,若确定应用元素的运动状态为行走状态,则基于降负载技术降低游戏画质至第一分辨率,若确
定应用元素的运动状态为疾跑状态,则基于降负载技术降低游戏画质至第二分辨率,若确定应用元素的运动状态为开车状态,则基于降负载技术降低游戏画质至第三分辨率,第一分辨率大于第二分辨率,第二分辨率大于第三分辨率。
86.s213,若确定应用元素的运动状态为静止状态,则保持当前画面的画面显示质量不变。
87.可以理解的是,当应用元素的运动状态为静止状态时,此时目标应用显示的各帧画面的变化较小或不变化,在渲染并显示各帧画面时,中央处理器和图形处理器的计算压力较小,不会出现硬件性能不足导致的卡顿现象,因此无需降低目标应用的画面显示质量,可以保持较好的显示效果以满足用户需要。
88.在本技术实施例中,在目标应用首次运行时,首先截取目标应用中应用元素处于不同运动状态时的多个帧画面,基于多个帧画面中各帧画面的模型视图投影矩阵之间的差异数据确定相机位置矩阵,并确定相机位置矩阵对应的目标缓冲区,目标缓冲区中存储的图形绘制指令即为携带有相机位置矩阵的目标图形绘制指令。然后实时监测存储在目标缓冲区的目标图形绘制指令,并基于hook函数在目标图形绘制指令中获取用于标识应用元素运动状态的相机位置矩阵,通过计算第一帧画面中应用元素的第一相机位置矩阵以及第二帧画面中应用元素的第二相机位置矩阵的差值来确定应用元素的运动状态,实现了在目标应用客户端不发送任何应用元素的动作和时间等信息的情况下,通过检测目标应用运行过程中不同帧之间的相机位置矩阵即可判断目标应用中应用元素的运动状态,并可以根据应用元素的运动状态对目标应用的画面显示质量进行调整,避免在应用元素快速移动过程中引起的卡顿问题,保证目标应用的流畅运行。
89.一个实施例中,当目标应用非首次运行时,用于表示应用元素运动状态的相机位置矩阵所存储的目标缓冲区位置可能会发生变化,但是目标缓冲区的大小不会发生变化。因此,在目标应用非首次运行时需要基于首次运行时确定第一缓冲区的大小重新确定相机位置矩阵所存储的目标缓冲区。请参见图3,为本技术实施例提供的一种运动状态识别方法的流程示意图。下面将针对图3所示的流程进行详细的阐述,所述运动状态识别方法可以包括以下步骤:
90.s301,在缓冲区集合中确定与第一缓冲区大小相同的第二缓冲区;
91.具体的,当目标应用非首次运行时,基于目标应用首次运行时确定第一缓冲区的大小在图形处理器的各缓冲区中确定与第一缓冲区大小相同的第二缓冲区。
92.s302,将第二缓冲区作为目标缓冲区,并将存储于目标缓冲区的图形绘制指令作为目标图形绘制指令;
93.具体的,步骤s302请参见另一实施例中对步骤s204的详细描述,在此不一一赘述。
94.s303,实时监测针对目标应用的图形绘制指令,判断图形绘制指令所存储的缓存区是否为目标缓冲区;
95.s304,若确定图形绘制指令所存储的缓存区为目标缓冲区,则确定图形绘制指令为目标图形绘制指令;
96.具体的,步骤s303和步骤s304请参见另一实施例中对步骤s205~步骤s206的详细描述,在此不一一赘述。
97.s305,获取目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩
阵;
98.具体的,在确定目标图形绘制指令之后,基于hook函数在目标图形绘制指令所传递的数据中获取针对第一帧画面中应用元素的第一相机位置矩阵。
99.第一帧画面即为图形处理器基于目标图形绘制指令渲染并显示的目标应用的应用画面。
100.s306,获取所记录的第二帧画面中应用元素的第二相机位置矩阵,第二帧画面为基于目标应用在第一帧画面之前所获取的,且与第一帧画面相隔的帧数小于或等于预设帧数的帧画面;
101.具体的,步骤s306请参见另一实施例中对步骤s102的详细描述,在此不一一赘述。
102.s307,计算第一相机位置矩阵和第二相机位置矩阵之间的差值;
103.s308,若差值为零,则确定应用元素的运动状态为静止状态;
104.s309,若差值不为零,则确定应用元素的运动状态为移动状态;
105.可选的,移动状态可以包括行走状态、疾跑状态和开车状态。一个实施例中,还可以基于第一帧画面和第二帧画面之间的时间间隔以及第一相机位置矩阵和第二相机位置矩阵之间的差值计算应用元素的移动速度。若应用元素的移动速度大于零且小于第一速度阈值,确定应用元素的运动状态为行走状态;若应用元素的移动速度大于第一速度阈值且小于第二速度阈值,确定应用元素的运动状态为疾跑状态;若应用元素的移动速度大于第二速度阈值,确定应用元素的运动状态为开车状态。
106.s310,若确定应用元素的运动状态为移动状态,则基于降负载技术降低当前画面的画面显示质量;
107.可以理解的是,当应用元素的运动状态为移动状态时,伴随着应用元素的移动目标应用中显示的各帧画面快速变化,此时目标应用显示的各帧画面的变化较大,中央处理器和图形处理器在渲染并显示各帧画面时面临的计算压力较大,容易出现硬件性能不足导致的卡顿现象,因此可以基于降负载技术降低目标应用的画面显示质量,以缓解中央处理器和图形处理器的计算压力,保持目标应用流畅运行,且在应用元素快速移动时,由于目标应用中显示的各帧画面快速变化,用户也不会过于关注画面显示质量,画面显示质量的降低不会对用户体验造成较大影响。
108.可选的,移动状态可以包括行走状态、疾跑状态和开车状态。一个实施例中,若确定应用元素的运动状态为行走状态,则基于降负载技术降低游戏画质至第一分辨率,若确定应用元素的运动状态为疾跑状态,则基于降负载技术降低游戏画质至第二分辨率,若确定应用元素的运动状态为开车状态,则基于降负载技术降低游戏画质至第三分辨率,第一分辨率大于第二分辨率,第二分辨率大于第三分辨率。
109.s311,若确定应用元素的运动状态为静止状态,则保持当前画面的画面显示质量不变。
110.可以理解的是,当应用元素的运动状态为静止状态时,此时目标应用显示的各帧画面的变化较小或不变化,在渲染并显示各帧画面时,中央处理器和图形处理器的计算压力较小,不会出现硬件性能不足导致的卡顿现象,因此无需降低目标应用的画面显示质量,可以保持较好的显示效果以满足用户需要。
111.在本技术实施例中,在目标应用非首次运行时,基于目标应用首次运行时确定第
一缓冲区的大小在图形处理器的各缓冲区中确定与所述第一缓冲区大小相同的第二缓冲区,并确定第二缓冲区为相机位置矩阵对应的目标缓冲区,目标缓冲区中存储的图形绘制指令即为携带有相机位置矩阵的目标图形绘制指令。然后实时监测存储在目标缓冲区的目标图形绘制指令,基于hook函数在目标图形绘制指令中获取用于标识应用元素运动状态的相机位置矩阵,通过计算第一帧画面中应用元素的第一相机位置矩阵以及第二帧画面中应用元素的第二相机位置矩阵的差值来确定应用元素的运动状态,实现了在目标应用客户端不发送任何应用元素的动作和时间等信息的情况下,通过检测目标应用运行过程中不同帧之间的相机位置矩阵即可判断目标应用中应用元素的运动状态,并可以根据应用元素的运动状态对目标应用的画面显示质量进行调整,避免在应用元素快速移动过程中引起的卡顿问题,保证目标应用的流畅运行。
112.下面将结合附图4,对本技术实施例提供的运动状态识别装置进行详细介绍。需要说明的是,附图4的运动状态识别装置,用于执行本技术图1、图2、图3所示实施例的方法,为了便于说明,仅示出了与本技术实施例相关的部分,具体技术细节未揭示的,请参照本技术图1、图2、图3所示的实施例。
113.请参见图4,为本技术实施例提供的一种运动状态识别装置的结构示意图。如图4所示,该运动状态识别装置1可以通过软件、硬件或者两者的结合实现成为电子设备的全部或一部分。根据一些实施例,该运动状态识别装置1包括,第一矩阵获取模块11、第二矩阵获取模块12、运动状态确定模块13,具体包括:
114.第一矩阵获取模块11,用于获取针对目标应用的目标图形绘制指令,获取所述目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵;
115.第二矩阵获取模块12,用于获取所记录的第二帧画面中应用元素的第二相机位置矩阵,所述第二帧画面为基于所述目标应用在所述第一帧画面之前所获取的,且与所述第一帧画面相隔的帧数小于或等于预设帧数的帧画面;
116.运动状态确定模块13,用于基于所述第一相机位置矩阵和所述第二相机位置矩阵确定所述应用元素的运动状态。
117.可选的,请参见图5,为本技术实施例提供的一种运动状态识别装置的结构示意图。如图5所示,所述装置还包括第一指令确定模块14,所述第一指令确定模块14,具体用于:
118.截取目标应用中应用元素处于不同运动状态时的多个帧画面,获取所述多个帧画面中各帧画面的模型视图投影矩阵之间的差异数据;
119.基于所述差异数据,在组成所述模型视图投影矩阵的多个矩阵中确定相机位置矩阵;
120.在缓冲区集合中确定所述相机位置矩阵所在的第一缓冲区,所述缓冲区集合中的各缓冲区用于存储针对目标应用的图形绘制指令;
121.将第一缓冲区作为目标缓冲区,并将存储于所述目标缓冲区的图形绘制指令作为目标图形绘制指令。
122.可选的,请参见图5,为本技术实施例提供的一种运动状态识别装置的结构示意图。如图5所示,所述装置还包括第二指令确定模块15,所述第二指令确定模块15,具体用于:
123.在缓冲区集合中确定与所述第一缓冲区大小相同的第二缓冲区;
124.将第二缓冲区作为目标缓冲区,并将存储于所述目标缓冲区的图形绘制指令作为目标图形绘制指令。
125.可选的,所述第一矩阵获取模块11,具体用于:
126.实时监测针对目标应用的图形绘制指令,判断所述图形绘制指令所存储的缓存区是否为目标缓冲区;
127.若确定所述图形绘制指令所存储的缓存区为目标缓冲区,则确定所述图形绘制指令为目标图形绘制指令;
128.获取所述目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵。
129.可选的,请参见图6,为本技术实施例提供的一种运动状态确定模块的结构示意图。如图6所示,所述运动状态确定模块13,包括:
130.差值计算单元131,用于计算所述第一相机位置矩阵和所述第二相机位置矩阵之间的差值;
131.第一判断单元132,用于若所述差值为零,则确定所述应用元素的运动状态为静止状态;
132.第二判断单元132,用于若所述差值不为零,则确定所述应用元素的运动状态为移动状态。
133.可选的,所述移动状态包括行走状态、疾跑状态和开车状态,所述第一判断单元132,包括:
134.基于所述第一帧画面和所述第二帧画面之间的时间间隔以及所述差值计算所述应用元素的移动速度;
135.若所述应用元素的移动速度大于零且小于第一速度阈值,确定所述应用元素的运动状态为行走状态;
136.若所述应用元素的移动速度大于第一速度阈值且小于第二速度阈值,确定所述应用元素的运动状态为疾跑状态;
137.若所述应用元素的移动速度大于第二速度阈值,确定所述应用元素的运动状态为开车状态。
138.可选的,请参见图5,为本技术实施例提供的一种运动状态识别装置的结构示意图。如图5所示,所述装置还包括画质调整模块16,所述画质调整模块16,具体用于:
139.基于所述应用元素的运动状态对所述目标应用的画面显示质量进行调整。
140.可选的,请参见图7,为本技术实施例提供的一种画质调整模块的结构示意图。如图7所示,所述画质调整模块16,包括:
141.画质降低单元161,用于若确定所述应用元素的运动状态为移动状态,则基于降负载技术降低当前画面的画面显示质量;
142.画质保持单元162,用于若确定所述应用元素的运动状态为静止状态,则保持当前画面的画面显示质量不变。
143.可选的,所述画质降低单元161,具体用于:
144.若确定所述应用元素的运动状态为行走状态,则基于降负载技术降低游戏画质至第一分辨率;
array,pla)中的至少一种硬件形式来实现。处理器110可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户页面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
156.存储器120可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory,rom)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等,该操作系统可以是安卓(android)系统,包括基于android系统深度开发的系统、苹果公司开发的ios系统,包括基于ios系统深度开发的系统或其它系统。
157.存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对gpu性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。
158.为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。
159.其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏。
160.所述触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本技术实施例对此不加以限定。
161.除此之外,本领域技术人员可以理解,上述附图所示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,电子设备中还包括射频电路、输入单元、传感器、音频电路、无线保真(wireless fidelity,wifi)模块、电源、蓝牙模块等部件,在此不再赘述。
162.在图8所示的电子设备中,处理器110可以用于调用存储器120中存储的运动状态识别程序,并执行以实现如本技术各个方法实施例所述的运动状态识别方法。
163.在本技术实施例中,通过获取由中央处理器向图形处理器发送的针对目标应用的目标图形绘制指令,获取目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵,然后获取所记录的第二帧画面中应用元素的第二相机位置矩阵,第二帧画面为基于
目标应用在第一帧画面之前所获取的,且与第一帧画面相隔的帧数小于或等于预设帧数的帧画面,最后基于第一相机位置矩阵和第二相机位置矩阵确定应用元素的运动状态,实现了在目标应用客户端不发送任何应用元素的动作和时间等信息的情况下,通过目标应用运行过程中不同帧之间的相机位置矩阵即可判断目标应用中应用元素的运动状态,并可以根据应用元素的运动状态对目标应用的画面显示质量进行调整,避免在应用元素快速移动过程中引起的卡顿问题,保证目标应用的流畅运行。
164.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
165.以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。

技术特征:
1.一种运动状态识别方法,其特征在于,所述方法包括:获取针对目标应用的目标图形绘制指令,获取所述目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵;获取所记录的第二帧画面中应用元素的第二相机位置矩阵,所述第二帧画面为基于所述目标应用在所述第一帧画面之前所获取的,且与所述第一帧画面相隔的帧数小于或等于预设帧数的帧画面;基于所述第一相机位置矩阵和所述第二相机位置矩阵确定所述应用元素的运动状态。2.根据权利要求1所述的方法,其特征在于,当目标应用首次运行时,所述获取针对目标应用的目标图形绘制指令,获取所述目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵之前,所述方法还包括:截取目标应用中应用元素处于不同运动状态时的多个帧画面,获取所述多个帧画面中各帧画面的模型视图投影矩阵之间的差异数据;基于所述差异数据,在组成所述模型视图投影矩阵的多个矩阵中确定相机位置矩阵;在缓冲区集合中确定所述相机位置矩阵所在的第一缓冲区,所述缓冲区集合中的各缓冲区用于存储针对目标应用的图形绘制指令;将第一缓冲区作为目标缓冲区,并将存储于所述目标缓冲区的图形绘制指令作为目标图形绘制指令。3.根据权利要求2所述的方法,其特征在于,当目标应用非首次运行时,所述获取针对目标应用的目标图形绘制指令,获取所述目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵之前,所述方法还包括:在缓冲区集合中确定与所述第一缓冲区大小相同的第二缓冲区;将第二缓冲区作为目标缓冲区,并将存储于所述目标缓冲区的图形绘制指令作为目标图形绘制指令。4.根据权利要求2~3任意一项所述的方法,其特征在于,所述获取针对目标应用的目标图形绘制指令,获取所述目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵,包括:实时监测针对目标应用的图形绘制指令,判断所述图形绘制指令所存储的缓存区是否为目标缓冲区;若确定所述图形绘制指令所存储的缓存区为目标缓冲区,则确定所述图形绘制指令为目标图形绘制指令;获取所述目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵。5.根据权利要求1所述的方法,其特征在于,所述基于所述第一相机位置矩阵和所述第二相机位置矩阵确定所述应用元素的运动状态,包括:计算所述第一相机位置矩阵和所述第二相机位置矩阵之间的差值;若所述差值为零,则确定所述应用元素的运动状态为静止状态;若所述差值不为零,则确定所述应用元素的运动状态为移动状态。6.根据权利要求5所述的方法,其特征在于,所述移动状态包括行走状态、疾跑状态和开车状态,所述若所述差值不为零,则确定所述应用元素的运动状态为移动状态,包括:基于所述第一帧画面和所述第二帧画面之间的时间间隔以及所述差值计算所述应用
元素的移动速度;若所述应用元素的移动速度大于零且小于第一速度阈值,确定所述应用元素的运动状态为行走状态;若所述应用元素的移动速度大于第一速度阈值且小于第二速度阈值,确定所述应用元素的运动状态为疾跑状态;若所述应用元素的移动速度大于第二速度阈值,确定所述应用元素的运动状态为开车状态。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:基于所述应用元素的运动状态对所述目标应用的画面显示质量进行调整。8.根据权利要求7所述的方法,其特征在于,所述基于所述应用元素的运动状态对所述目标应用的画面显示质量进行调整,包括:若确定所述应用元素的运动状态为移动状态,则基于降负载技术降低当前画面的画面显示质量;若确定所述应用元素的运动状态为静止状态,则保持当前画面的画面显示质量不变。9.根据权利要求8所述的方法,其特征在于,所述若确定所述应用元素的运动状态为移动状态,则基于降负载技术降低当前画面的画面显示质量,包括:若确定所述应用元素的运动状态为行走状态,则基于降负载技术降低游戏画质至第一分辨率;若确定所述应用元素的运动状态为疾跑状态,则基于降负载技术降低游戏画质至第二分辨率;若确定所述应用元素的运动状态为开车状态,则基于降负载技术降低游戏画质至第三分辨率;所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率。10.一种运动状态识别装置,其特征在于,所述装置包括:第一矩阵获取模块,用于获取针对目标应用的目标图形绘制指令,获取所述目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵;第二矩阵获取模块,用于获取所记录的第二帧画面中应用元素的第二相机位置矩阵,所述第二帧画面为基于所述目标应用在所述第一帧画面之前所获取的,且与所述第一帧画面相隔的帧数小于或等于预设帧数的帧画面;运动状态确定模块,用于基于所述第一相机位置矩阵和所述第二相机位置矩阵确定所述应用元素的运动状态。11.一种存储介质,其上存储有多条指令,其特征在于,所述指令被处理器执行时实现权利要求1~9中任意一项所述方法的步骤。12.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~9中任意一项所述方法的步骤。

技术总结
本申请公开了一种运动状态识别方法、装置、存储介质及电子设备,其中,方法包括:获取针对目标应用的目标图形绘制指令,获取目标图形绘制指令中针对第一帧画面中应用元素的第一相机位置矩阵;获取所记录的第二帧画面中应用元素的第二相机位置矩阵,第二帧画面为基于目标应用在第一帧画面之前所获取的,且与第一帧画面相隔的帧数小于或等于预设帧数的帧画面;基于第一相机位置矩阵和第二相机位置矩阵确定应用元素的运动状态,实现了在目标应用客户端不发送任何应用元素的动作和时间等信息的情况下,通过目标应用运行过程中不同帧之间的相机位置矩阵即可判断目标应用中应用元素的运动状态。的运动状态。的运动状态。


技术研发人员:朱秀丽 高光磊 姚士峰 黄文涛
受保护的技术使用者:OPPO广东移动通信有限公司
技术研发日:2022.07.12
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-6322.html

最新回复(0)