CN116091292B - 数据处理方法和相关装置 - Google Patents

数据处理方法和相关装置 Download PDF

Info

Publication number
CN116091292B
CN116091292B CN202210989393.8A CN202210989393A CN116091292B CN 116091292 B CN116091292 B CN 116091292B CN 202210989393 A CN202210989393 A CN 202210989393A CN 116091292 B CN116091292 B CN 116091292B
Authority
CN
China
Prior art keywords
scene
game
frame
terminal device
rendering
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
Application number
CN202210989393.8A
Other languages
English (en)
Other versions
CN116091292A (zh
Inventor
陈聪儿
龙云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210989393.8A priority Critical patent/CN116091292B/zh
Publication of CN116091292A publication Critical patent/CN116091292A/zh
Application granted granted Critical
Publication of CN116091292B publication Critical patent/CN116091292B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请实施例提供数据处理方法和相关装置。该方法包括:截取渲染指令流得到渲染数据;基于渲染数据识别游戏场景;若游戏场景为第一场景采用插帧算法渲染画面,第一场景为相邻帧图像的相似度大于或等于第一阈值的场景;若游戏场景为第二场景采用可变速率着色算法渲染画面;第二场景为对象的移动量大于或等于第二阈值,或对象与摄像机之间的距离大于或等于第三阈值的场景;若游戏场景为第三场景采用图像下采样算法和画质增强算法渲染画面,第三场景与游戏场景的绘制次数或分辨率相关。这样,对感知到的不同游戏场景使用不同的优化算法,减少终端设备的渲染计算,节约资源,降低游戏负载,提升游戏性能的同时减少发热,提升用户体验。

Description

数据处理方法和相关装置
技术领域
本申请涉及终端技术领域,尤其涉及数据处理方法和相关装置。
背景技术
随着技术的发展,手机等终端设备的屏幕分辨率越来越大。为满足用户日益增长的游戏体验需要,手机等终端设备中的游戏应用的游戏渲染场景越来越丰富且渲染质量越来越高。
但是,这样会导致手机等终端设备中的内存占用高、功耗高,进而造成发热、卡顿等现象,用户体验差。
发明内容
本申请实施例提供一种数据处理方法和相关装置,应用于终端技术领域。通过对感知到的不同游戏场景使用不同的优化算法,减少终端设备的渲染计算,节约资源,降低游戏负载,提升游戏性能的同时减少发热,提升用户体验。
第一方面,本申请实施例提出一种数据处理方法。该方法包括:终端设备截取渲染指令流,得到渲染数据;终端设备基于渲染数据识别游戏场景;当游戏场景为第一场景时,终端设备采用插帧算法渲染游戏应用的画面,第一场景为相邻帧图像的相似度大于或等于第一阈值的场景;当游戏场景为第二场景时,终端设备采用可变速率着色算法渲染游戏应用的画面;第二场景为对象的移动量大于或等于第二阈值的场景,或者为对象与摄像机之间的距离大于或等于第三阈值的场景;当游戏场景为第三场景时,终端设备采用图像下采样算法和画质增强算法渲染游戏应用的画面,第三场景与游戏场景的绘制次数相关,或者与游戏场景的分辨率相关。
本申请实施例中,第一场景可以对应于微小变化场景,第二场景可以对应于运动场景、远景场景,第三场景可以对应于主场景。
终端设备通过渲染指令流中的渲染数据识别到的不同游戏场景,基于不同的场景匹配不同的优化算法,减少终端设备的渲染计算,节约资源,降低游戏负载,减少发热卡顿等情况,提升用户体验。此外,本申请实施例提供的方法不局限于重载场景,在轻载场景也可通过相应算法进行负载的优化。
可选的,终端设备基于渲染数据识别游戏场景,包括:终端设备基于渲染数据得到第一帧图像与第二帧图像之间的相似度,第一帧图像与第二帧图像为游戏场景中的相邻帧图像;当相似度大于或等于第一阈值时,终端设备识别游戏场景为第一场景。
这样,终端设备可以对微小变化场景等画面无突变的场景,采样插帧算法复用部分像素数据,从而缓解渲染资源消耗,优化效率以及降低功耗。
可选的,终端设备基于渲染数据得到第一帧图像与第二帧图像之间的相似度,包括:终端设备基于渲染数据得到第一帧图像与第二帧图像之间的运动参数,运动参数是以目标对象为参照得到的变化量,运动参数包括目标对象的视角变化值,和/或,目标对象的移动量;当视角变化值小于或等于第四阈值,和/或,移动量小于或等于第五阈值时,终端设备基于渲染数据得到第一帧图像与第二帧图像之间的相似度。
这样,可以在进行相邻两帧图像的相似度比较前,先排除掉运动参数变化较快的相邻两帧图像。不是对每两帧都直接计算相似度,而是在比较视角变化值和/或移动量的基础上再去计算相似度,可以降低场景识别的计算成本。这样,可以在不太影响相似度计算准确率的情况下,减少帧图像相似度比较的算量,从而可以优化游戏负载,改善终端设备的发热情况。
可选的,目标对象为游戏中的伴随玩家运动的物体,渲染数据包括:第一帧图像对应的第一观察矩阵V矩阵,以及第二帧图像的第二V矩阵,和/或,第一帧图像中目标对象在世界空间的第一坐标值,以及第二帧图像中目标对象在世界空间的第二坐标值;视角变化值满足: 为第一帧图像对应的V矩阵中的观察方向向量;/>为第二帧图像对应的V矩阵中的观察方向向量;目标对象的移动量满足:其中,(xn,yn,zn)为第一坐标值,(xn+1,yn+1,zn+1)为第二坐标值。
这样,可以基于V矩阵进行运动参数的计算。
可选的,终端设备基于渲染数据识别游戏场景,包括:终端设备基于渲染数据得到目标对象的移动量;当目标对象的移动量大于或等于第二阈值时,终端设备识别游戏场景为第二场景。
这样,终端设备可以对运动场景等模糊感知不强的场景中将单个像素的着色渲染应用到多个像素,进而降低渲染负载。
可选的,目标对象为游戏中的伴随玩家运动的物体,渲染数据包括:第一帧图像中目标对象在世界空间的第一坐标值,以及第二帧图像中目标对象在世界空间的第二坐标值;目标对象的移动量满足:其中,(xn,yn,zn)为第一坐标值,(xn+1,yn+1,zn+1)为第二坐标值。
这样,可以基于世界空间的坐标值进行移动量的计算,进而识别运动场景。
可选的,终端设备存储有第一对应关系,第一对应关系为位移区间与着色速率之间的对应关系;终端设备采用可变速率着色算法渲染游戏应用的画面,包括:终端设备基于第一对应关系和目标对象的移动量确定第一着色速率;终端设备基于第一着色速率渲染目标对象。
这样,方便终端设备确定着色速率,采用合适的着色速率进行着色,在降低渲染计算的同时满足显示的需求。
可选的,终端设备基于渲染数据识别游戏场景,包括:终端设备基于渲染数据得到第一距离,第一距离为世界空间中摄像机与第一对象之间的距离;当第一距离大于或等于第三阈值时,终端设备识别游戏场景为第二场景。
这样,终端设备可以对远景场景等模糊感知不强的场景中将单个像素的着色渲染应用到多个像素,进而降低渲染负载。
可选的,渲染数据包括:第一帧图像中第一对象的顶点数据和第一帧图像对应的MVP矩阵,第一对象为游戏应用的画面中的任意对象;终端设备基于渲染数据得到第一距离,包括:终端设备基于第一对象的顶点数据与MVP矩阵得到第一距离。
这样,可以基于顶点数据和MVP矩阵进行距离的计算,进而识别远景场景。
可选的,终端设备存储有第二对应关系,第二对应关系为距离区间与着色速率之间的对应关系;终端设备采用可变速率着色算法渲染游戏应用的画面,包括:终端设备基于第一距离和第二对应关系确定第二着色速率;终端设备基于第二着色速率渲染第一对象。
这样,方便终端设备确定着色速率,采用合适的着色速率进行着色,在降低渲染计算的同时满足显示的需求。
可选的,终端设备基于渲染数据识别游戏场景,包括:终端设备基于渲染数据得到一个或多个帧缓冲对应的绘制次数,或者得到一个或多个帧缓冲对应的分辨率;终端设备识别第一帧缓冲对应的场景为第三场景;第一帧缓冲为一个或多个帧缓冲中绘制次数最多的帧缓冲;终端设备采用图像下采样算法和画质增强算法渲染游戏应用的画面,包括:终端设备采用图像下采样算法和画质增强算法渲染第一帧缓冲对应的场景;第一帧缓冲为一个或多个帧缓冲中绘制次数最多的帧缓冲,或者为一个或多个帧缓冲中绘制次数超过第一预设阈值的帧缓冲,或者为一个或多个帧缓冲中分辨率最高的帧缓冲,或者为一个或多个帧缓冲中分辨率超过第二预设阈值的帧缓冲。
这样,可以在用户对画面质量感知不强的主场景中使用图像下采样算法降低分辨率以减少渲染计算量。此外,同时使用画质增强算法,可以减少画面损失,甚至超越原始画质。提升视觉效果。
可选的,终端设备存储有第三对应关系,第三对应关系为分辨率与采样比例之间的对应关系;终端设备采用图像下采样算法和画质增强算法渲染第一帧缓冲对应的场景,包括:终端设备基于第三对应关系和第一帧缓冲的分辨率确定第一采样比例;终端设备基于第一采样比例渲染第一帧缓冲对应的场景,以及采用画质增强算法渲染第一帧缓冲对应的场景。
这样,方便终端设备确定采样比例,采用合适的采样比例进行采样,平衡计算量与画质,在降低计算的同时满足画质显示的需求。
可选的,方法还包括:当游戏场景为第四场景时,终端设备将应用对应的帧率从第一帧率调整至第二帧率,第二帧率小于或等于第一帧率,第四场景为预设标签字段对应的场景。
第四场景可以对应于对局外场景(设置场景、大厅场景等)。
这样,可以降低游戏负载,减少游戏界面卡顿,实现降低终端设备功耗的目的。
可选的,终端设备存储有预设标签字段,渲染数据包括:标签字段;当渲染数据中的标签字段与预设标签字段一致时,终端设备识别游戏场景为第四场景。
这样,根据场景标签确定处于游戏应用中的场景。这样,可以在算力较小的情况下快速的识别场景。
可选的,方法还包括:终端设备获取游戏应用的配置数据;终端设备基于配置数据确认下述一个或多个参数,参数包括第一阈值、第二阈值、第三阈值、第四阈值、第五阈值、第一对应关系、第二对应关系、第三对应关系和预设标签字段。
这样,终端设备可以基于不同的配置数据进行适应调整,可以减少场景的误识别现象,增加场景识别的准确率,提升用户体验。
可选的,配置数据包括版本号,终端设备基于配置数据确认下述一个或多个参数,包括:终端设备基于版本号确认一个或多个参数。
这样,基于版本号确认参数,方便调整,简单易于实现。
第二方面,本申请实施例提供一种数据处理装置,该数据处理装置可以是终端设备,也可以是终端设备内的芯片或者芯片系统。该数据处理装置可以包括处理单元。处理单元用于实现第一方面或第一方面的任意一种可能的实现方式中与处理相关的任意方法。当数据处理装置是终端设备时,该处理单元可以是处理器。该数据处理还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。当该数据处理是终端设备内的芯片或者芯片系统时,该处理单元可以是处理器。该处理单元执行存储单元所存储的指令,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该终端设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
示例性的,处理单元,用于截取渲染指令流得到渲染数据;处理单元还用于基于渲染数据识别游戏场景;当游戏场景为第一场景时,处理单元具体用于采用插帧算法渲染游戏应用的画面,第一场景为相邻帧图像的相似度大于或等于第一阈值的场景;当游戏场景为第二场景时,处理单元具体用于采用可变速率着色算法渲染游戏应用的画面;第二场景为对象的移动量大于或等于第二阈值的场景,或者为对象与摄像机之间的距离大于或等于第三阈值的场景;当游戏场景为第三场景时,处理单元具体用于采用图像下采样算法和画质增强算法渲染游戏应用的画面,第三场景与游戏场景的绘制次数相关,或者与游戏场景的分辨率相关。
可选的,处理单元具体用于基于渲染数据得到第一帧图像与第二帧图像之间的相似度,第一帧图像与第二帧图像为游戏场景中的相邻帧图像;当相似度大于或等于第一阈值时,处理单元具体用于识别游戏场景为第一场景。
可选的,处理单元具体用于基于渲染数据得到第一帧图像与第二帧图像之间的运动参数,运动参数是以目标对象为参照得到的变化量,运动参数包括目标对象的视角变化值,和/或,目标对象的移动量;当视角变化值小于或等于第四阈值,和/或,移动量小于或等于第五阈值时,处理单元具体用于基于渲染数据得到第一帧图像与第二帧图像之间的相似度。
可选的,目标对象为游戏中的伴随玩家运动的物体,渲染数据包括:第一帧图像对应的第一观察矩阵V矩阵,以及第二帧图像的第二V矩阵,和/或,第一帧图像中目标对象在世界空间的第一坐标值,以及第二帧图像中目标对象在世界空间的第二坐标值;视角变化值满足: 为第一帧图像对应的V矩阵中的观察方向向量;/>为第二帧图像对应的V矩阵中的观察方向向量;目标对象的移动量满足:其中,(xn,yn,zn)为第一坐标值,(xn+1,yn+1,zn+1)为第二坐标值。
可选的,处理单元具体用于基于渲染数据得到目标对象的移动量;当目标对象的移动量大于或等于第二阈值时,处理单元具体用于识别游戏场景为第二场景。
可选的,目标对象为游戏中的伴随玩家运动的物体,渲染数据包括:第一帧图像中目标对象在世界空间的第一坐标值,以及第二帧图像中目标对象在世界空间的第二坐标值;目标对象的移动量满足:其中,(xn,yn,zn)为第一坐标值,(xn+1,yn+1,zn+1)为第二坐标值。
可选的,终端设备还包括存储单元,存储单元用于存储有第一对应关系,第一对应关系为位移区间与着色速率之间的对应关系;处理单元具体用于基于第一对应关系和目标对象的移动量确定第一着色速率;处理单元具体用于基于第一着色速率渲染目标对象。
可选的,处理单元具体用于基于渲染数据得到第一距离,第一距离为世界空间中摄像机与第一对象之间的距离;当第一距离大于或等于第三阈值时,终端设备识别游戏场景为第二场景。
可选的,渲染数据包括:第一帧图像中第一对象的顶点数据和第一帧图像对应的MVP矩阵,第一对象为游戏应用的画面中的任意对象;处理单元具体用于基于第一对象的顶点数据与MVP矩阵得到第一距离。
可选的,存储单元还用于存储第二对应关系,第二对应关系为距离区间与着色速率之间的对应关系;处理单元具体用于基于第一距离和第二对应关系确定第二着色速率;终端设备基于第二着色速率渲染第一对象。
可选的,处理单元具体用于基于渲染数据得到一个或多个帧缓冲对应的绘制次数,或者得到一个或多个帧缓冲对应的分辨率;处理单元具体用于识别第一帧缓冲对应的场景为第三场景;第一帧缓冲为一个或多个帧缓冲中绘制次数最多的帧缓冲;处理单元具体用于采用图像下采样算法和画质增强算法渲染第一帧缓冲对应的场景;第一帧缓冲为一个或多个帧缓冲中绘制次数最多的帧缓冲,或者为一个或多个帧缓冲中绘制次数超过第一预设阈值的帧缓冲,或者为一个或多个帧缓冲中分辨率最高的帧缓冲,或者为一个或多个帧缓冲中分辨率超过第二预设阈值的帧缓冲。
可选的,存储单元还用于存储第三对应关系,第三对应关系为分辨率与采样比例之间的对应关系;处理单元具体用于基于第三对应关系和第一帧缓冲的分辨率确定第一采样比例;终端设备基于第一采样比例渲染第一帧缓冲对应的场景,以及采用画质增强算法渲染第一帧缓冲对应的场景。
可选的,当游戏场景为第四场景时,处理单元还用于将应用对应的帧率从第一帧率调整至第二帧率,第二帧率小于或等于第一帧率,第四场景为预设标签字段对应的场景。
可选的,存储单元还用于存储预设标签字段,渲染数据包括:标签字段;当渲染数据中的标签字段与预设标签字段一致时,处理单元具体用于识别游戏场景为第四场景。
可选的,处理单元还用于获取游戏应用的配置数据;处理单元具体用于基于配置数据确认下述一个或多个参数,参数包括第一阈值、第二阈值、第三阈值、第四阈值、第五阈值、第一对应关系、第二对应关系、第三对应关系和预设标签字段。
可选的,配置数据包括版本号,处理单元具体用于基于版本号确认一个或多个参数。
第三方面,本申请实施例提供一种终端设备,终端设备也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobile phone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
该终端设备包括:包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得终端设备执行如第一方面的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序。计算机程序被处理器执行时实现如第一方面的方法。
第五方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面的方法。
第六方面,本申请实施例提供了一种芯片,芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行如第一方面的方法。
应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的一种坐标空间示意图;
图2为本申请实施例提供的一种应用场景示意图;
图3为本申请实施例提供的一种终端设备的硬件结构示意图
图4为本申请实施例提供的一种终端设备的软件结构示意图;
图5为本申请实施例提供的一种数据处理方法的流程示意图;
图6为本申请实施例提供的一种摄像机和场景的世界空间示意图;
图7为本申请实施例提供的一种数据处理方法的流程示意图;
图8为本申请实施例提供的一种数据处理方法的流程示意图;
图9为本申请实施例提供的一种数据处理装置的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。
需要说明的是,本申请实施例中的“在……时”,可以为在某种情况发生的瞬时,也可以为在某种情况发生后的一段时间内,本申请实施例对此不作具体限定。此外,本申请实施例提供的显示界面仅作为示例,显示界面还可以包括更多或更少的内容。
为方便理解,下面对本申请实施例中涉及的一些名词进行说明。
1、渲染:用软件从模型生成图像的过程。模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。将三维场景中的模型,按照设定好的环境、灯光、材质及渲染参数,二维投影成数字图像的过程。
2、游戏场景:表示游戏应用中的运行阶段,例如大厅场景、运动场景、微小变化场景、远景场景等。
3、局部空间(local space):对象基于局部坐标系的分布空间。
示例性的,图1为本申请实施例提供的一种坐标空间示意图。图1示出了坐标由局部空间向世界空间向观察空间向裁剪空间的矩阵变换的逻辑过程。如图1所示,应用程序下发的渲染命令中,可以包括对物体1的渲染。局部空间中,坐标系可以是基于物体1的。比如,局部空间中的坐标系原点可以是设置在物体1的中心(图1中的a所示),或者一个顶点所在的位置等。应用程序可以在下发对物体1的渲染命令中,携带该局部空间的坐标系下,物体1的各个顶点的坐标,即局部坐标。
4、世界空间(word space):相对于局部空间更大的区域。终端设备可以通过应用程序下发的模型矩阵(model matrix,M矩阵),将局部空间中的坐标转换为世界空间中的坐标。
示例性的,如图1所示,以应用程序下发的渲染命令用于进行游戏图像的渲染为例。局部空间可以对应能够覆盖某一个对象(如物体1)的较小区域。而世界空间可以对应游戏中,包括物体1以及其他物体(如物体2)的一张地图的区域(图1中的b所示)。
终端设备可以将局部空间中的局部坐标,结合M矩阵进行M矩阵变换,从而获取物体1在世界空间中的坐标。类似的,在应用程序下发了在该帧图像中的对物体2的渲染命令的情况下,通过上述M矩阵变换,终端设备还可以获取物体2在世界空间中的坐标。
5、观察空间(view space):与摄像机(观察者)位置对应的坐标空间。终端设备可以根据应用程序下发的观察矩阵(view matrix,V矩阵),将世界空间中的坐标,转换为观察空间中的坐标。
可以理解的是,世界空间中的坐标可以是三维空间中的坐标。而终端设备在向用户展示帧图像时,各个对象(例如,山、树木、人物模型等)则是在二维的显示屏上进行显示的。在使用不同的观察角度观察世界空间中的对象时,则会看到不同的二维画面。该观察角度可以是与在世界空间中设置的摄像机(或者观察者)的位置以及观察方向相关的。观察角度也可以称为摄像机角度。需要说明的是,摄像机(或观察者)是一个抽象概念,不会出现在画面中。
如图1所示,以摄像机设置在世界空间中的y轴正方向为例。那么基于V矩阵的变换,就可以获取在该摄像机位置对应的观察空间中,各个对象的顶点的坐标。示例性的,当摄像机位于y轴正方向,向下进行拍摄时,对应在观察空间中的物体1和物体2可以呈现为俯视效果(如图1中的c所示)。
6、裁剪空间(clip space):观察空间中的各个对象投影对应的坐标空间。终端设备可以根据应用程序下发的投影矩阵(projection matrix,P矩阵),对观察空间中的各个坐标进行P矩阵变换,从而获取各个坐标对应的在裁剪空间中的裁剪坐标。
可以理解的是,在进行V矩阵变换过程中,可以是对世界空间中的较大区域的变换,因此获取的图像范围可能是比较大的。而由于终端设备显示屏的尺寸有限,因此可能无法将该观察空间中的所有对象同时进行显示。
在投影到裁剪空间中后,能够显示在显示屏上的对象的坐标可以在-1到1的范围内(如图1中的d所示)。而对于无法显示在显示屏上的部分对象的坐标,则可以在-1到1的范围之外。这样,终端设备就可以根据坐标在-1.0到1.0范围内的顶点坐标进行对应的显示。
7、屏幕空间(screen space):显示屏显示对应的空间。
可以理解的是,通过上述MVP矩阵的变换(即M矩阵变换,V矩阵变换,以及P矩阵变换),终端设备就能够获取在显示屏上显示的各个对象的顶点的坐标(即裁剪坐标)。终端设备还可以将裁剪坐标变换为屏幕坐标,比如,使用视口变换(viewport transform)将位于-1到1范围的坐标变换到由glViewport函数所定义的坐标范围内。最后变换出来的坐标将会送到光栅器,将其转化为片段,进而获取与各个像素对应的显示数据。基于这些显示数据,终端设备就可以控制显示屏进行对应的显示。
8、插帧算法:利用前两帧的图像信息和两帧之间的运动数据预测下一帧的图像信息。可以理解的是,相邻帧之间的很多图像数据可以复用,这样,可以减少这些可复用像素数据的消耗,进而缓解渲染(Render)资源消耗,优化效率以及降低功耗。
9、可变速率着色算法:可以根据图像画面中不同区域的重要性而使用不同的着色率。示例性的,通过修改区域的着色速率,片段着色器一次可以对一个或多个像素进行着色(一个片段可以代表一个像素或一组像素)。
这样,将单个像素的着色渲染应用到多个像素,降低渲染负载,减轻图形处理器渲染帧的工作,从而节省功耗提高性能。并且,不会导致视觉质量下降。
10、下采样算法:是指一个位于原始图像上的s×s的“窗口”变成一个像素。当原图为x×y时,下采样之后原图的尺寸为(x÷s)×(y÷s)。
示例性的,在OpenCV中,下采样使用的函数为pyrDown(),它会进行两步操作来完成对图像的下采样:对图像进行高斯滤波,以及删除所有的偶数行和列。
高斯滤波对图像进行加权平均(即与高斯内核卷积),每个像素点由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波并不会使图像大小发生变化,接下来删除图像中的偶数行和偶数列,第二步执行后,长和宽均变为原来的1/2,即生成的下采样图变为原图的四分之一。
下采样也可以称为缩小图像、降采样等。
11、画质增强算法:通过超分辨率技术等提升画面质量。
可以理解的是,画质增强算法通常与图像下采样算法结合使用,通过下采样算法减少渲染计算量,再使用画质增强算法减少画面损失,甚至超越原始画质。
本申请实施例提供的数据处理方法可以应用于具有显示功能的电子设备中。电子设备包括终端设备。终端设备也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobile phone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
随着科学技术的发展,终端设备(例如,手机、电脑等)已经成为人们日常生活中常用的电子产品之一。为满足用户日益增长的游戏体验需要,手机等终端设备中的游戏应用的游戏渲染场景越来越丰富且渲染质量越来越高。
但是,由于受到硬件及软件的限制,导致游戏应用在运行时性能不理想,内存占用高、功耗高,进而可能会出现发热、卡顿等现象,用户体验差。
可能的设计中,在终端设备识别到重载场景时,通过提高CPU、GPU、DDR频点,以及识别关键线程来绑核等操作提升游戏帧率。
但是,会导致终端设备的功耗增加、出现发热现象。
基于此,本申请实施例提供一种数据处理方法。通过对感知到的不同游戏场景,使用不同的优化算法,减少终端设备的渲染计算,节约资源,降低游戏负载,提升游戏性能的同时减少发热,提升用户体验。
图2示出了本申请实施例的数据处理方法适用的场景示意图。如图2所示,终端设备201可以为带有显示功能的终端设备。终端设备201可以为手机(mobile phone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medicalsurgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
本申请实施例中,终端设备也可以称为终端(terminal)、用户设备(userequipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。
在终端设备201中,安装有一个或多个游戏应用。当终端设备运行游戏应用的应用程序时,终端设备201基于本申请实施例的数据处理方法处理并显示相应的游戏界面。
示例性的,当终端设备接收到用户针对游戏应用202的点击操作时,终端设备开始运行游戏应用,基于本申请实施例的数据处理方法处理并显示相应的游戏界面。
为方便理解,下面结合图3和图4对终端设备的硬件架构和软件架构进行说明。
示例性的,图3示出了终端设备的结构示意图。
终端设备可以包括处理器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)接口等。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备可以包括1个或N个摄像头193,N为大于1的正整数。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备的结构限定。在本申请另一些实施例中,终端设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
终端设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的安卓(android)系统为例,示例性说明终端设备的软件结构。
示例性的,图4是本申请实施例提供的一种终端设备的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图4所示,应用程序包可以包括相机,日历,电话,地图,电话,音乐,设置,邮箱,视频,游戏等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,资源管理器,视图系统,场景识别模块,配置文件,算法库等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,触摸屏幕,拖拽屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
场景识别模块用于识别游戏的具体场景,并基于识别的游戏场景确定合适的优化方式、策略等。游戏的具体场景包括但不限于:用户对帧率感知较弱的对局外场景(例如,大厅场景、设置场景)、运动场景、远景场景、主场景等。
示例性的,场景识别模块可以截获三维图形处理库(例如,OpenGL等)、二维图形引擎(例如,SGL)或其它图形渲染库中的指令流,以基于指令流中的渲染数据实现场景的识别。
配置文件中保存有游戏应用的配置数据。配置数据包括但不限于:版本号、应用帧率、画质要求等相关的配置信息。
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绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合终端设备界面切换的场景,示例性说明终端设备软件以及硬件的工作流程。
当终端设备中的触摸传感器接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸力度,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为游戏应用图标的控件为例,游戏应用调用应用框架层的接口,启动游戏应用,进而通过调用内核层启动显示驱动,显示游戏应用的功能界面。
下面结合图5-图8对本申请实施例提供的数据处理方法进行说明。
示例性的,图5为本申请实施例提供的一种数据处理方法流程示意图。如图5所示,方法包括:
S501、终端设备截取渲染指令流,得到渲染数据。
本申请实施例中的渲染指令流可以为三维图形处理库(例如,OpenGL和Vulkan等)、二维图形引擎(例如,SGL)或其它图形渲染库中的指令流。
示例性的,渲染指令流中包括:glbindframebuffer、gluseprogram、gluniform、gllableobjectEXT、glbindtexture、gldrawelements和eglswapbuffer,等渲染指令。
分析该渲染指令流中可以得到渲染数据。渲染数据包括但不限于:纹理信息、模板信息、深度信息、标签信息、模型矩阵(model matrix,M矩阵)、观察矩阵(view matrix,V矩阵)或投影矩阵(projection matrix,P矩阵)等。模型矩阵、观察矩阵和投影矩阵可以合称为MVP矩阵。
可能的实现方式中,终端设备通过分析渲染指令流可以得到下述一种或多种渲染数据:特定标签字段、模型顶点数据、MVP矩阵、摄像机的世界空间坐标、纹理信息等。
S502、终端设备根据渲染数据识别游戏场景。
本申请实施例中,游戏场景包括但不限于:微小变化场景、运动场景、远景场景或主场景等。
终端设备通过分析渲染指令流可以得到下述一种或多种渲染数据:特定标签字段、模型顶点数据、MVP矩阵、摄像机的世界空间坐标、纹理信息等。
可能的实现方式一中,终端设备基于渲染数据识别游戏场景为微小变化场景。
一些实施例中,终端设备基于渲染数据确定相邻帧(相邻帧图像)的相似度。当相似度大于或等于第一阈值时,终端设备识别游戏场景为微小变化场景。
第一阈值可以为0.8,也可以为0.9或其他任意数值,本申请实施例对于第一阈值的取值不做限定。需要说明的是,不同游戏对应的第一阈值可以一样,也可以不一样。第一阈值可以根据实际情况或者经验进行设置,对于第一阈值的具体值,本申请实施例在此不做限制。
示例性的,终端设备可以计算第N帧与第N+1帧之间的相似度,当相似度大于或等于第一阈值时,终端设备识别游戏场景为微小变化场景。
可以理解的是,终端设备可以基于余弦相似度算法、哈希相似度算法、结构相似度算法等计算相邻帧的相似度,本申请实施例对此不作限定。
另一些实施例中,终端设备基于渲染指令流确定摄像机的转动角度R。当转动角度R小于或等于第四阈值时,终端设备基于渲染数据确定相邻帧的相似度。当相邻帧的相似度大于第一阈值时,终端设备识别游戏场景为微小变化场景。
可以理解的是,第四阈值可以为0.1,也可以为0.2或其他任意数值,本申请实施例对于第四阈值取值不做限定。
可以理解的是,转动角度小于或等于第四阈值时,可以理解为,第一帧图像与第二帧图像的视角变化较小,进而可以预判第N帧图像与第N+1帧图像相似度相对高的概率较大,则可以进一步进行第N帧图像与第N+1帧图像之间的相似度比较。类似的,可以在转动角度大于第四阈值时,不进行第N帧图像与第N+1帧图像之间的相似度比较,从而可以节约算力,降低功耗。
这样,不是对每两帧都直接计算相似度,而是在比较R的基础上再去计算相似度,可以降低微小变化场景识别的计算成本。
需要说明的是,终端设备可以从渲染指令流中得到动态物体的MVP矩阵,进而通过MVP矩阵计算得到摄像机的转动角度R。本申请实施例中,转动角度R也可以称为视角变化值。
下面对摄像机的转动角度R的计算进行说明。
具体的,终端设备可以基于两帧中V矩阵中的观察方向向量,得到摄像机转动角度R。示例性的,渲染指令流中的渲染数据中的View-translated world vb0,可以对应于V矩阵。
示例性的,如图6所示,第N帧对应的V矩阵中的观察方向向量为第一方向向量第N+1帧对应的V矩阵中的方向向量为第二方向向量/>第一方向向量和第二方向向量之间的夹角为第N+1帧对应的摄像机的转动角度R。摄像机的转动角度R可以通过点积运算公式计算得到,即/>
另一些实施例中,终端设备基于渲染指令流确定动态物体的移动量。当移动量小于或等于第五阈值时,终端设备基于渲染指令流确定相邻帧的相似度。当相邻帧的相似度大于第一阈值时,终端设备识别游戏场景为微小变化场景。
可以理解的是,第五阈值可以为1,也可以为2或其他任意数值,本申请实施例对于第五阈值的取值不做限定。
可以理解的是,移动量小于或等于第五阈值时,可以理解为,第一帧图像与第二帧图像的位置变化较小,进而可以预判第N帧图像与第N+1帧图像相似度相对高的概率较大,则可以进一步进行第N帧图像与第N+1帧图像之间的相似度比较。类似的,可以在移动量大于第五阈值时,不进行第N帧图像与第N+1帧图像之间的相似度比较,从而可以节约算力,降低功耗。
这样,不是对每两帧都直接计算相似度,而是在比较V的基础上再去计算相似度,可以降低微小变化场景识别的计算成本。
可以理解的是,游戏场景中,伴随用户操控的对象运动的物体为动态物体。示例性的,若用户操控的对象走路,动态物体为用户操控的对象;若用户操控的对象开车,动态物体为车;若用户操控的对象乘飞机,动态物体为飞机。
此外,摄像机也是伴随用户操控的对象移动的,因此,可以用摄像机在世界空间的坐标来计算动态物体的位置变化。摄像机的视角变化也可以表示动态物体的视角变化。
下面对动态物体的移动量D进行说明。
具体的,终端设备可以通过不同图像画面中摄像机在世界空间中的坐标变化计算得到动态物体的移动量。示例性的,渲染数据中的View-world camera origin vb0可以对应于摄像机在世界空间中的坐标。
可以理解的是,摄像机是跟随动态物体移动。因此,动态物体的移动量可以通过计算摄像机在世界空间中绝对位置的变化得到。
示例性的,第N帧对应的摄像机的世界坐标为第一坐标(xn,yn,zn),第N+1帧对应的摄像机的世界坐标为第二坐标(xn+1,yn+1,zn+1),动态物体的移动量为
本申请实施例中移动量也可以称为移动速度(单位:变化值/帧)。
另一些实施例中,终端设备基于渲染指令流确定摄像机的转动角度R和动态物体的移动量。当转动角度R小于或等于第四阈值且移动量小于或等于第五阈值时,终端设备基于渲染指令流确定相邻帧的相似度。当相邻帧的相似度大于第一阈值时,终端设备识别游戏场景为微小变化场景。
这样,不是对每两帧都直接计算相似度,而是在比较R与D的基础上再去计算相似度,可以降低微小变化场景识别的计算成本。
又一些实施例中,终端设备基于渲染数据确定摄像机的转动角度R和动态物体的移动量。当转动角度R小于或等于第四阈值,且动态物体的移动量小于或等于第五阈值时,终端设备识别游戏场景为微小变化场景。
这样,当视角变化值小于或等于第一预设值,并且移动量小于或等于第二预设值时,可以理解为,第一帧图像与第二帧图像的视角变化小、位置变化小,进而判断第N帧图像与第N+1帧图像的差异小,为微小变化场景。
需要说明的是,不同游戏对应的第四阈值可以一样,也可以不一样。示例性的,可以通过抓取同一游戏下不同场景的渲染指令,统计分析得到第四阈值。第四阈值可以根据实际情况或者经验进行设置,对于第四阈值的具体值,本申请实施例在此不做限制。同理,本申请实施例对于第五阈值的具体值不做限制。
可能的实现方式二中,终端设备基于渲染数据识别游戏场景为运动场景。
终端设备基于渲染数据确定动态物体的移动量。当动态物体的移动量大于或等于第二阈值时,终端设备识别游戏场景为运动场景。
第二阈值可以为10,也可以为20或其他任意数值,本申请实施例对于第二阈值的取值不做限定。需要说明的是,不同游戏对应的第二阈值可以一样,也可以不一样。示例性的,可以通过抓取同一游戏下不同场景的渲染指令,统计分析得到第二阈值。第二阈值可以根据实际情况或者经验进行设置,对于第二阈值的具体值,本申请实施例在此不做限制。
动态物体的移动量可以参照上述可能的实现方式一中的移动量计算,此处不再赘述。
可能的实现方式三中,终端设备基于渲染数据识别游戏场景为远景场景。
终端设备基于渲染数据确定摄像机(观察者)与图像中的对象之间的距离。当摄像机(观察者)与画面中的对象之间的距离大于或等于第三阈值时,终端设备识别游戏场景中处于远景的对象。
终端设备可以基于渲染数据中的MVP矩阵得到摄像机与画面中的对象之间的距离。具体的,终端设备可以基于顶点数据与MVP矩阵计算深度值,进而得到摄像机与图像中的对象之间的距离。
示例性的,如图6所示,摄像机与画面中的对象之间的距离可以对应于线段M。
可以理解的是,当对象的体积或面积较小时,可以通过对象的中心位置,计算摄像机与中心位置的距离为图像中的对象之间的距离。当对象的体积或面积较大时,可以计算对象的多个不同位置与摄像机之间的距离,进而通过平均值确定摄像机与图像中的对象之间的距离。像机与图像中的对象之间的距离还可以通过其他方式确定,本申请实施例对于摄像机与画面中的对象之间的距离的具体计算方式等不做限定。
需要说明的是,不同游戏对应的第三阈值可以一样,也可以不一样。示例性的,可以通过抓取同一游戏下不同场景的渲染指令,统计分析得到第三阈值。第三阈值可以根据实际情况或者经验进行设置,对于第三阈值的具体值,本申请实施例在此不做限制。
可以理解的是,游戏画面中的远景,游戏的一帧画面里有很多对象,例如,近处的房子、公路、远处的山、树、石头等;终端设备可以识别画面中的远景,即远处的山、树、石头等对象,并使能可变着色速率算法进行优化,进而节约远景的渲染资源、降低功耗。
可能的实现方式四中,终端设备基于渲染数据识别游戏场景为主场景。可以理解的是,主场景可以为当前帧图像在渲染过程中,终端设备执行对应渲染负载最高的场景。示例性的,一些实施例中,主场景可以对应绘制命令(drawcall)数量最多的渲染管线(renderpass)。在对一帧图像的渲染过程中,可以包括多个renderpass。每个renderpass的渲染结果都可以存储在帧缓冲中。每个renderpass的渲染都可以包括多个drawcall。执行drawcall数量越多,则对应的renderpass执行完成后获取的贴图的内容就越丰富。
可能的实现方式中,主场景为绘制命令数量最大的帧缓冲对应的场景。
可以理解的是,绘制一帧游戏画面通常包括多个帧缓冲,主场景一般就是包含渲染操作数量最多、负载最重的场景,即绘制命令最多的帧缓冲对应的场景。需要说明的是,游戏的每一帧画面都包含一个主场景。
另一些实施例中,主场景还可以是绘制命令大于第一预设阈值的场景。可能的实现方式中,主场景为绘制命令数量超过第一预设阈值的帧缓冲对应的场景。
又一些实施例中,主场景还可以是分辨率最高的场景,或者分辨率大于第二预设阈值的场景。可能的实现方式中,主场景为分辨率超过预设阈值的帧缓冲对应的场景。或者,主场景为分辨率高于第二预设阈值的帧缓冲对应的场景。
S503、终端设备基于游戏场景确定相应的优化算法渲染游戏应用的画面。优化算法包括但不限于:插帧算法、可变速率着色算法、图像下采样算法或画质增强算法。
可能的实现方式一中,当终端设备识别到微小变化场景时,采用插帧算法渲染游戏应用的画面。
这样,通过插帧算法复用一些图像数据,可以减少像素数据的消耗,从而达到缓解渲染(rendering)资源消耗,缩短渲染时间、提高渲染效率、降低功耗等。
可能的实现方式二中,当终端设备识别到运动场景时,采用可变速率着色算法渲染游戏应用的画面。
这样,在运动场景中将单个像素的着色渲染应用到多个像素,进而降低渲染负载。此外,还可以减少眼睛跟踪运动导致模糊感,提升视觉质量。
一些实施例中,终端设备还可以基于动态物体的移动位移量确定可变速率着色算法对应的着色速率。
可以理解的是,终端设备预先存储有位移区间与着色速率之间的对应关系。示例性的,当移动量在第一位移位移区间时,着色速率为第一速率;当移动量在第二位移区间时,着色速率为第二速率;当移动量在第N位移区间时,着色速率为第N速率。
本申请实施例中,位移区间也可以称为速度区间。
可能的实现方式中,终端设备通过表格的方式存储位移区间与着色速率之间的对应关系。
表1位移区间与着色速率的对应关系
位移区间 着色速率
10<D≤15 1×1
15<D≤20 1×2或者2×1
20<D≤50 2×2
50<D 3×3
示例性的,表1为位移区间与着色速率的对应关系表。如表1所示,当第N帧对应的移动量在10-15之间时,以1像素×1像素为单位对第N帧进行着色。当第N帧对应的移动量在15-20之间时,以1像素×2像素或者2像素×1像素为单位对第N帧进行着色。当第N帧对应的移动量在20-50之间时,以2像素×2像素为单位对第N帧进行着色。当第N帧对应的移动量大于50时,以3像素×3像素为单位对第N帧进行着色。
这样,可以不同移动量对应不同的着色速率,进一步细化运动场景,更好的提升视觉效果,提升用户体验。
一些实施例中,着色速率还与是否处于重载场景相关。
可以理解的是,当游戏处于重载场景时,提升着色速率,以增加显示的流畅性,减少卡顿。
示例性的,当第N帧对应的移动量在10-15之间且游戏处于重载场景时,1像素×2像素或者2像素×1像素为单位对第N帧进行着色。当第N帧对应的移动量在15-20之间且游戏处于重载场景时,以2像素×2像素为单位对第N帧进行着色。当第N帧对应的移动量在20-50之间且游戏处于重载场景时,以3像素×3像素为单位对第N帧进行着色。当第N帧对应的移动量大于50且游戏处于重载场景时,以3像素×3像素为单位对第N帧进行着色。
可能的实现方式三中,当终端设备识别到远景场景时,采用可变速率着色算法渲染游戏应用的画面。
这样,用户对处于远景的对象模糊感知不强,将单个像素的着色渲染应用到多个像素,进而降低渲染负载。
一些实施例中,终端设备还可以基于摄像机与处于远景的对象之间的距离确定可变速率着色算法对应的着色速率。
可以理解的是,终端设备预先存储有距离区间与着色速率之间的对应关系。示例性的,当场景与摄像机之间的距离在第一距离区间时,着色速率为第一速率;当场景与摄像机之间的距离在第二距离区间时,着色速率为第二速率;当场景与摄像机之间的距离在第N距离区间时,着色速率为第N速率。
可能的实现方式中,终端设备通过表格的方式存储距离区间与着色速率之间的对应关系。示例性的,表2为距离区间与着色速率的对应关系表。如表2所示,当第N帧对应的摄像机与处于远景的对象之间的距离在10-15之间时,以1像素×1像素为单位对第N帧进行着色。当第N帧对应的摄像机与处于远景的对象之间的距离在15-20之间时,以1像素×2像素或者2像素×1像素为单位对第N帧进行着色。当第N帧对应的摄像机与处于远景的对象之间的距离在20-50之间时,以2像素×2像素为单位对第N帧进行着色。当第N帧对应的摄像机与处于远景的对象之间的距离大于50时,以3像素×3像素为单位对第N帧进行着色。
表2距离区间与着色速率的对应关系
距离区间 着色速率
10<L≤15 1×1
15<L≤20 1×2或者2×1
20<L≤50 2×2
50<L 3×3
一些实施例中,着色速率还与是否处于重载场景相关。
可以理解的是,当游戏处于重载场景时,提升着色速率,以增加显示的流畅性,减少卡顿。
示例性的,当第N帧对应的摄像机与处于远景的对象之间的距离在10-15之间且游戏处于重载场景时,1像素×2像素或者2像素×1像素为单位对第N帧进行着色。当第N帧对应的摄像机与处于远景的对象之间的距离在15-20之间且游戏处于重载场景时,以2像素×2像素为单位对第N帧进行着色。当第N帧对应的摄像机与处于远景的对象之间的距离在20-50之间且游戏处于重载场景时,以3像素×3像素为单位对第N帧进行着色。当第N帧对应的摄像机与处于远景的对象之间的大于50且游戏处于重载场景时,以3像素×3像素为单位对第N帧进行着色。
下面对重载场景的识别进行说明。
可能的实现方式一中,终端设备通过分析渲染指令流,得到缓冲交换(Swapbuffer)的时间,基于相邻帧之间的时间间隔识别重载场景。
一些实施例中,当第N帧的缓冲交换(swapbuffer)的时间与第N+1帧的缓冲交换(swapbuffer)的时间之差大于帧率对应的时间间隔时,终端设备识别游戏场景为重载场景。
另一些实施例中,当连续多帧的缓冲交换(swapbuffer)的平均时间间隔大于帧率对应的时间间隔时,终端设备识别游戏场景为重载场景。
这样,连续多帧,增加重载场景识别的准确性。
可能的实现方式二中,终端设备基于渲染数据识别游戏场景中的人物数量;当人物数量大于数量阈值时,终端设备识别到重载场景。
下面对游戏场景中人物的识别进行说明。
以游戏中人物对应有血条和玩家昵称为例,通过截取游戏渲染指令,连续获取画面中任务血条、玩家昵称对应的标签,当连续获取的标签和预设的标签相匹配时,则记录画面中的人物数量加一。
一些实施例中,当第N帧的缓冲交换(Swapbuffer)的时间与第N+1帧的缓冲交换(Swapbuffer)的时间之差大于帧率对应的时间间隔,且基于第N+1帧的渲染指令流识别到的人物数量大于第八阈值时,识别到重载场景。
这样,可以增加重载场景识别的准确率。
上述两种可能的实现仅作为示例,还可以通过其他方式识别重载场景,本申请实施例对此不作限定。可以理解的是,不同的应用对应的重载场景的识别方式可以相同,也可以不同,此处不做限定。
可能的实现方式四中,当终端设备识别到主场景时,采用图像下采样算法和画质增强算法渲染游戏应用的画面。
一些实施例中,终端设备可以基于主场景对应的帧缓冲采用图像下采样算法和画质增强算法进行优化。
一些实施例中,终端设备还可以基于游戏分辨率确定图像下采样算法对应的采样比例。
一些实施例中,采样比例与分辨率相关。当分辨率越高时,采样比例越低。
可以理解的是,终端设备预先存储有游戏分辨率与采样比例之间的对应关系。示例性的,当游戏分辨率为1600*900时,采样比例为0.6;当游戏分辨率为1440*900时,采样比例为0.8;当游戏分辨率为1080*900时,采样比例为0.9。
一些实施例中,采样比例还与终端设备是否处于重载场景相关。
可以理解的是,当游戏处于重载场景时,降低采样比例,以增加显示的流畅性,减少卡顿。示例性的,当游戏分辨率为1600*900时,采样比例为0.5;当游戏分辨率为1440*900时,采样比例为0.7;当游戏分辨率为1080*900时,采样比例为0.8。
一些实施例中,终端设备基于其他参数确定图像下采样算法对应的采样比例。此处不做限定。
这样,可以在用户对画面质量感知不强的主场景等场景中使用图像下采样算法降低分辨率以减少渲染计算量。此外,同时使用画质增强算法,可以减少画面损失,甚至超越原始画质。提升视觉效果。
综上,终端设备通过渲染指令流中的渲染数据识别到的不同游戏场景,基于不同的场景匹配不同的优化算法,减少终端设备的渲染计算,节约资源,降低游戏负载,减少发热卡顿等情况,提升用户体验。此外,本申请实施例提供的方法不局限于重载场景,在轻载场景也可通过相应算法进行负载的优化。
在上述实施例的基础上,游戏场景还包括对局外场景和对局内场景。
图5所示的方法还包括:终端设备基于渲染数据识别游戏场景为对局外场景。适应性的,终端设备调整应用帧率至对局外场景对应的帧率。
这样,在识别到对局外场景时,适当降低应用帧率,减少功耗。
可能的实现方式一中,终端设备存储有预设标签字段。当终端设备获取的渲染指令流中出现对局外场景对应的预设标签字段时,终端设备识别游戏场景为对局外场景。当终端设备获取的渲染指令流中出现对局内场景对应的预设标签字段时,终端设备识别游戏场景为对局内场景。
示例性的,以预设标签字段为Waiting_Hall为例,若截取到的渲染指令流中的一条渲染指令gllableobjectEXT分析到Waiting_Hall字段时,终端设备识别游戏场景为对局外场景。
预设标签字段还可以为Battle_Atlas、Font Texture等,本申请实施例对此不作具体限定。
下面对可能的实现方式一中应用帧率的调节过程进行说明。
可以理解的是,终端设备安装有一个或多个游戏应用,每个游戏应用可以对应于一个或多个预设标签字段。终端设备可以基于对应关系确认对局外场景对应的帧率。
一些实施例中,终端设备可以基于游戏应用与帧率的对应关系,确认对局外场景对应帧率。
示例性的,以终端设备安装有3个应用为例,应用1、应用2和应用3中对局外场景对应的帧率分别为30、60、90,对局内场景对应的帧率分别为60、90、120为例。
当终端设备在应用1运行时,分析渲染指令流得到应用1对应的预设标签字段时,调整帧率至30Hz。当终端设备在应用1运行时,分析渲染指令流未得到应用1对应的预设标签字段时,调整帧率至60Hz。
当终端设备在应用2运行时,分析渲染指令流得到应用2对应的预设标签字段时,调整帧率至60Hz。当终端设备在应用2运行时,分析渲染指令流未得到应用2对应的预设标签字段时,调整帧率至90Hz。
当终端设备在应用3运行时,分析渲染指令流得到应用3对应的预设标签字段时,调整帧率至90Hz。当终端设备在应用3运行时,分析渲染指令流未得到应用3对应的预设标签字段时,调整帧率至120Hz。
这样,基于应用调整帧率,可以适配于不同的帧率要求,提升游戏体验。
另一些实施例中,终端设备可以基于预设标签字段与帧率的对应关系,确认对局外场景对应的帧率。
示例性的,以终端设备存储有3个预设标签字段为例,预设标签字段1、预设标签字段2和预设标签字段3分别与30、60、90相对应,对局内场景对应的帧率为120,为例。
当终端设备分析渲染指令流得到预设标签字段1时,调整帧率至30Hz。当终端设备分析渲染指令流得到预设标签字段2时,调整帧率至60Hz。当终端设备分析渲染指令流得到预设标签字段3时,调整帧率至90Hz。当终端设备分析渲染指令流未得到预设标签字段1、预设标签字段2和预设标签字段3中的任一个时,调整帧率至120Hz。
这样,终端设备还可以基于预设标签字段将对局外场景进一步细分为大厅场景、设置场景等,提升游戏体验。
又一些实施例中,终端设备可以基于游戏应用、预设标签字段以及帧率的对应关系,确认调整后的帧率。
示例性的,当终端设备识别到应用1和预设标签字段1时,调整帧率至30Hz;当终端设备识别到应用2和预设标签字段1时,调整帧率至60Hz。
这样,终端设备还可以进一步细化对局外场景,提升游戏体验。
一些实施例中,终端设备还存储有对局内场景对应的标签字段,当终端设备分析到相应标签字段时,识别游戏场景为对局内场景。帧率调节与对局外场景中帧率调节类似,此处不做详细赘述。
可能的实现方式二中,终端设备还可以通过顶点数量、调用绘制指令次数和/或渲染通道数量等识别对局外场景。
具体的,终端设备分析渲染指令流,得到顶点数量、调用绘制指令次数和/或渲染通道数量等。当对局外场景对应的顶点数量和调用绘制指令次数较少时,终端设备识别游戏场景为对局外场景。
示例性的,当顶点数量小于第六阈值和/或调用绘制指令次数小于第七阈值时,终端设备识别游戏场景为对局外场景。
需要说明的是,在对游戏中的场景进行图形渲染时,以游戏场景里面的物体对应的模型的顶点位置为基础来进行渲染,游戏场景越复杂,对应的顶点数量就越多。调用绘制指令可以用于CPU调用图形编程接口,以命令GPU进行渲染的操作。调用绘制指令可以理解为实际绘制指令,调用绘制指令次数的多少,则表示实际绘制了多少次,例如,调用绘制指令次数为27,则表示实际进行了27次的绘制。
可以理解的是,在对游戏场景进行图形渲染的过程中,不同的游戏场景对应不同的顶点数量和调用绘制指令次数。因此,在获取到渲染指令流后,可以根据渲染指令流中的顶点数量和/或调用绘制指令次数,来确定渲染指令流对应的游戏场景,进而可以根据游戏场景对终端设备的帧率进行调节,使得用户在不同的游戏场景下均可以获得较好的游戏体验。
一些实施例中,终端设备存储有各游戏场景和对应的顶点数量、调用绘制指令次数和/或渲染通道数量等的对应关系。终端设备通过顶点数量、调用绘制指令次数和/或渲染通道数量等来查询是否为对局外场景。
示例性的,终端设备存储有场景查询表。场景查询表中可以包括各游戏场景与各游戏场景中的顶点数量范围和/或调用绘制指令次数范围等的对应关系。该场景查询表可以存储在终端设备的系统配置文件中,也可以存储在其他位置,本申请实施例对此不作限定。
如表3所示,场景查询表中可以包括各游戏场景与各游戏场景中的顶点数量范围和/或调用绘制指令次数范围等的对应关系。对局外场景包括大厅场景和设置场景。
表3一种场景查询表。
/>
一些实施例中,终端设备根据N帧中各帧的顶点数量和/或调用绘制指令次数,确定顶点数量的平均值和/或调用绘制指令次数的平均值,根据顶点数量的平均值和/或调用绘制指令次数的平均值,在场景查询表中进行查询得到渲染指令流对应的游戏场景。
需要说明的是,终端设备可以基于游戏应用、对局外场景,以及帧率之间的对应关系,确认调整后的帧率。
可以理解的是,不同的游戏应用对应的帧率可以相同,也可以不同。不同的对局外场景对应的帧率可以相同,也可以不同。示例性的,游戏A中的大厅场景可以对应于60Hz,游戏A中的设置场景可以对应于90Hz。游戏B中的大厅场景可以对应于30Hz,游戏B中的设置场景可以对应于60Hz。
本申请实施例中,终端设备可以基于渲染指令流识别到上述一种或多种场景。本申请实施例对此不作限定。
在上述实施例的基础上,终端设备在执行501之前,还执行有S504。
S504、终端设备获取游戏应用的配置数据。
具体的,场景识别模块从配置文件中获取游戏应用的配置数据。配置数据包括但不限于:版本号、应用帧率、画质要求等。
终端设备在游戏应用开始运行时,获取游戏应用的配置数据。也可以在游戏应用运行时实时获取游戏应用的配置数据。终端设备在游戏应用更新后,获取游戏应用的配置数据。
示例性的,版本号可以为3.71.1.8。应用帧率可以为30Hz,也可以为60Hz、90Hz、120Hz等。画质要求可以为高清,也可以为极限、抗锯齿、HDR等。本申请实施例对于应用帧率、画质要求等均不作具体限定。
可以理解的是,不同版本的游戏应用对应的帧率、画质等要求可能不同,进而对局外场景对应的预设标签字段、各个场景识别时的阈值(第一阈值、第二阈值、第三阈值、第四阈值、第五阈值等),以及相应的对应关系(例如,速度区间与着色速率之间的关系、距离区间与着色速率之间的关系,分辨率与采样比例之间的关系等),等可能也会不同。
适应性的,终端设备基于配置数据确定对局外场景对应的预设标签字段、各个场景识别时的阈值(第一阈值、第二阈值、第三阈值、第四阈值、第五阈值等),以及相应的对应关系(例如,速度区间与着色速率之间的关系、距离区间与着色速率之间的关系,分辨率与采样比例之间的关系等)。
这样,可以减少场景的误识别现象,增加场景识别的准确率,提升用户体验。
下面结合图7对运动场景的识别及优化进行说明。
示例性的,图7为本申请实施例提供的一种具体的数据处理方法的流程示意图。如图7所示,该方法包括:
S701、获取游戏相关的配置信息(版本、帧率设置等)。
具体的,场景识别模块在游戏应用开启时,获取游戏相关的配置信息。
场景识别模块可以在游戏应用开启时,获取游戏相关的配置信息;场景识别模块也可以在接收到用于指示游戏应用更新的消息时,获取游戏相关的配置信息。或者,游戏应用在更新后,向场景识别模块发送游戏相关的配置信息。
S702、终端设备开始渲染第N帧。
S703、终端设备截取渲染指令流获取第N帧中动态物体的世界空间坐标并保存。
S704、终端设备开始渲染第N+1帧。
S705、终端设备截取渲染指令流获取第N+1帧的中动态物体的世界空间坐标并保存。
S706、基于两帧的中动态物体的世界空间坐标即计算位置变化。
可以理解的是,计算游戏场景中玩家移动速度。
S707、终端设备基于移动速度是否满足预设条件,以使能可变速率着色算法优化。
预设条件包括:移动速度大于或等于第二阈值。移动速度、第二阈值可以参照上述相关说明,此处不再赘述。
当移动速度满足预设条件时,终端设备执行S708和S709。当移动速度不满足预设条件时,终端设备执行S710。
S708、当移动速度满足预设条件时,基于速度区间与着色速率之间的对应关系确认修改后的着色速率。
S709、基于修改后的着色速率渲染第N+1帧的渲染。
S710、当不满足预设条件时,基于默认着色速率渲染第N+1帧。
这样,终端设备可以对游戏应用的运动场景进行识别,进而基于修改后的着色速率进行渲染,将单个像素的着色渲染应用到多个像素,进而降低渲染负载,提升游戏性能的同时减少发热,给用户带来更优的游戏体验。
示例性的,图8为本申请实施例提供的一种数据处理方法的流程示意图,如图8所示,方法包括:终端设备从配置文件中获取配置数据;以及渲染指令流中获取渲染数据。终端设备基于配置数据和渲染数据进行场景识别。当识别到游戏处于某场景时,则使能相应的优化算法并配置相关的参数,进而降低游戏功耗。
示例性的,当识别到游戏处于场景1(例如,对局外场景)时,确定调整后的帧率,使能帧率调整算法开关(例如,使能图8中的opt1=1),并配置相应的帧率;当识别到游戏处于场景2(例如,微小变化场景)时,使能插帧算法开关(例如,使能图8中的opt2=1),复用部分渲染数据,减少渲染计算;当识别到游戏处于场景3(例如,运动场景、远景场景)时,使能可变速率着色算法开关(例如,使能图8中的opt3=1),并配置相应的着色速率档位1x1,1x2,2x1,2x2等,降低渲染负载;当识别到游戏处于场景4(例如,主场景)时,使能图像下采样算法开关(例如,使能图8中的opt4=1)和画质增强算法开关(例如,使能图8中的opt5=1),并配置相应的采样比例(例如,0.6,0.8,0.9)等,降低渲染负载。
综上,通过对游戏的场景进行精确感知,根据各个场景的特点并结合游戏配置信息,综合运用限帧算法、插帧算法、图像下采样算法、画质增强算法、可变速率着色算法等优化算法降低游戏负载;或者可以理解为,游戏负载优化方法随着场景的变化而动态变化,最大程度上对游戏负载进行了优化,最终在使得游戏在保障性能与画质的同时,降低功耗,减少发热,提升用户体验。
上面已对本申请实施例的设备数据处理方法进行了说明,下面对本申请实施例提供的执行上述数据处理方法的装置进行描述。本领域技术人员可以理解,方法和装置可以相互结合和引用,本申请实施例提供的相关装置可以执行上述数据处理方法中的步骤。
如图9所示,图9为本申请实施例提供的一种数据处理装置的结构示意图,该数据处理装置可以是本申请实施例中的终端设备,也可以是终端设备内的芯片或芯片系统。
如图9所示,数据处理装置2100可以用于通信设备、电路、硬件组件或者芯片中,该数据处理装置包括:显示单元2101、以及处理单元2102。其中,显示单元2101用于支持数据处理装置2100执行的显示的步骤;处理单元2102用于支持数据处理装置2100执行信息处理的步骤。
可能的实现方式中,该数据处理装置2100中也可以包括通信单元2103。具体的,通信单元用于支持数据处理装置2100执行数据的发送以及数据的接收的步骤。其中,该通信单元2103可以是输入或者输出接口、管脚或者电路等。
可能的实施例中,数据处理装置还可以包括:存储单元2104。处理单元2102、存储单元2104通过线路相连。存储单元2104可以包括一个或者多个存储器,存储器可以是一个或者多个设备、电路中用于存储程序或者数据的器件。存储单元2104可以独立存在,通过通信线路与数据处理装置具有的处理单元2102相连。存储单元2104也可以和处理单元2102集成在一起。
存储单元2104可以存储终端设备中的方法的计算机执行指令,以使处理单元2102执行上述实施例中的方法。存储单元2104可以是寄存器、缓存或者RAM等,存储单元2104可以和处理单元2102集成在一起。存储单元2104可以是只读存储器(read-only memory,ROM)或者可存储静态信息和指令的其他类型的静态存储设备,存储单元2104可以与处理单元2102相独立。
本申请实施例提供的数据处理方法,可以应用在具备通信功能的电子设备中。电子设备包括终端设备,终端设备的具体设备形态等可以参照上述相关说明,此处不再赘述。
本申请实施例提供一种终端设备,该终端设备包括:包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得终端设备执行上述方法。
本申请实施例提供一种芯片。芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质。计算机可读存储介质存储有计算机程序。计算机程序被处理器执行时实现上述方法。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或者在计算机可读介质上传输。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
一种可能的实现方式中,计算机可读介质可以包括RAM,ROM,只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储器,磁盘存储器或其它磁存储设备,或目标于承载的任何其它介质或以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(Digital Subscriber Line,DSL)或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘,激光盘,光盘,数字通用光盘(Digital Versatile Disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行上述方法。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (17)

1.一种数据处理方法,其特征在于,包括:
终端设备截取渲染指令流,得到渲染数据;
所述终端设备基于所述渲染数据识别游戏场景;
当所述游戏场景为第一场景时,所述终端设备采用插帧算法渲染游戏应用的画面,所述第一场景为相邻帧图像的相似度大于或等于第一阈值的场景;
当所述游戏场景为第二场景时,所述终端设备采用可变速率着色算法渲染所述游戏应用的画面;所述第二场景为对象的移动量大于或等于第二阈值的场景,或者为对象与摄像机之间的距离大于或等于第三阈值的场景;
当所述游戏场景为第三场景时,所述终端设备采用图像下采样算法和画质增强算法渲染所述游戏应用的画面,所述第三场景与所述游戏场景的绘制次数相关,或者与所述游戏场景的分辨率相关。
2.根据权利要求1所述的方法,其特征在于,所述终端设备基于所述渲染数据识别游戏场景,包括:所述终端设备基于所述渲染数据得到第一帧图像与第二帧图像之间的相似度,所述第一帧图像与所述第二帧图像为所述游戏场景中的相邻帧图像;
当所述相似度大于或等于第一阈值时,所述终端设备识别所述游戏场景为所述第一场景。
3.根据权利要求2所述的方法,其特征在于,所述终端设备基于所述渲染数据得到第一帧图像与第二帧图像之间的相似度,包括:
所述终端设备基于所述渲染数据得到所述第一帧图像与所述第二帧图像之间的运动参数,所述运动参数是以目标对象为参照得到的变化量,所述运动参数包括所述目标对象的视角变化值,和/或,所述目标对象的移动量;
当所述视角变化值小于或等于第四阈值,和/或,所述移动量小于或等于第五阈值时,所述终端设备基于所述渲染数据得到第一帧图像与第二帧图像之间的相似度。
4.根据权利要求3所述的方法,其特征在于,所述目标对象为游戏中的伴随玩家运动的物体,所述渲染数据包括:所述第一帧图像对应的第一观察矩阵V矩阵,以及所述第二帧图像的第二V矩阵,和/或,所述第一帧图像中所述目标对象在世界空间的第一坐标值,以及所述第二帧图像中所述目标对象在所述世界空间的第二坐标值;
所述视角变化值满足:所述/>为所述第一帧图像对应的V矩阵中的观察方向向量;所述/>为所述第二帧图像对应的V矩阵中的观察方向向量;
所述目标对象的移动量满足:其中,(xn,yn,zn)为所述第一坐标值,(xn+1,yn+1,zn+1)为所述第二坐标值。
5.根据权利要求1所述的方法,其特征在于,所述终端设备基于所述渲染数据识别游戏场景,包括:所述终端设备基于所述渲染数据得到目标对象的移动量;
当所述目标对象的移动量大于或等于第二阈值时,所述终端设备识别所述游戏场景为所述第二场景。
6.根据权利要求5所述的方法,其特征在于,所述终端设备存储有第一对应关系,所述第一对应关系为位移区间与着色速率之间的对应关系;
所述终端设备采用可变速率着色算法渲染所述游戏应用的画面,包括:所述终端设备基于所述第一对应关系和所述目标对象的移动量确定第一着色速率;
所述终端设备基于所述第一着色速率渲染所述目标对象。
7.根据权利要求6所述的方法,其特征在于,所述终端设备基于所述渲染数据识别所述游戏场景,包括:所述终端设备基于所述渲染数据得到第一距离,所述第一距离为世界空间中摄像机与第一对象之间的距离;
当所述第一距离大于或等于第三阈值时,所述终端设备识别所述游戏场景为所述第二场景。
8.根据权利要求7所述的方法,其特征在于,所述渲染数据包括:第一帧图像中第一对象的顶点数据和所述第一帧图像对应的MVP矩阵,所述第一对象为所述游戏应用的画面中的任意对象;
所述终端设备基于所述渲染数据得到第一距离,包括:所述终端设备基于所述第一对象的顶点数据与所述MVP矩阵得到所述第一距离。
9.根据权利要求8所述的方法,其特征在于,所述终端设备存储有第二对应关系,所述第二对应关系为距离区间与着色速率之间的对应关系;
所述终端设备采用可变速率着色算法渲染所述游戏应用的画面,包括:所述终端设备基于所述第一距离和所述第二对应关系确定第二着色速率;
所述终端设备基于所述第二着色速率渲染所述第一对象。
10.根据权利要求9所述的方法,其特征在于,所述终端设备基于所述渲染数据识别游戏场景,包括:所述终端设备基于所述渲染数据得到一个或多个帧缓冲对应的绘制次数,或者得到所述一个或多个帧缓冲对应的分辨率;
所述终端设备识别第一帧缓冲对应的场景为所述第三场景;所述第一帧缓冲为所述一个或多个帧缓冲中绘制次数最多的帧缓冲,或者为所述一个或多个帧缓冲中绘制次数超过第一预设阈值的帧缓冲,或者为所述一个或多个帧缓冲中分辨率最高的帧缓冲,或者为所述一个或多个帧缓冲中分辨率超过第二预设阈值的帧缓冲;
所述终端设备采用图像下采样算法和画质增强算法渲染所述游戏应用的画面,包括:所述终端设备采用图像下采样算法和画质增强算法渲染所述第一帧缓冲对应的场景。
11.根据权利要求10所述的方法,其特征在于,所述终端设备存储有第三对应关系,所述第三对应关系为分辨率与采样比例之间的对应关系;
当所述第一帧缓冲为所述一个或多个帧缓冲中分辨率最高的帧缓冲,或者为所述一个或多个帧缓冲中分辨率超过第二预设阈值的帧缓冲时,所述终端设备采用图像下采样算法和画质增强算法渲染所述第一帧缓冲对应的场景,包括:
所述终端设备基于所述第三对应关系和所述第一帧缓冲的分辨率确定第一采样比例;
所述终端设备基于第一采样比例渲染所述第一帧缓冲对应的场景,以及采用画质增强算法渲染所述第一帧缓冲对应的场景。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
当所述游戏场景为第四场景时,所述终端设备将所述应用对应的帧率从第一帧率调整至第二帧率,所述第二帧率小于或等于所述第一帧率,所述第四场景为预设标签字段对应的场景。
13.根据权利要求12所述的方法,其特征在于,所述终端设备存储有所述预设标签字段,所述渲染数据包括:标签字段;
当所述渲染数据中的标签字段与所述预设标签字段一致时,所述终端设备识别所述游戏场景为所述第四场景。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
所述终端设备获取所述游戏应用的配置数据;
所述终端设备基于所述配置数据确认下述一个或多个参数,所述参数包括所述第一阈值、所述第二阈值、所述第三阈值、第四阈值、第五阈值、第一对应关系、第二对应关系、第三对应关系和预设标签字段。
15.根据权利要求14所述的方法,其特征在于,所述配置数据包括版本号;
所述终端设备基于所述配置数据确认下述一个或多个参数,包括:所述终端设备基于所述版本号确认所述一个或多个参数。
16.一种终端设备,其特征在于,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述终端设备执行如权利要求1-15中任一项所述的方法。
17.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-15任一项所述的方法。
CN202210989393.8A 2022-08-17 2022-08-17 数据处理方法和相关装置 Active CN116091292B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210989393.8A CN116091292B (zh) 2022-08-17 2022-08-17 数据处理方法和相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210989393.8A CN116091292B (zh) 2022-08-17 2022-08-17 数据处理方法和相关装置

Publications (2)

Publication Number Publication Date
CN116091292A CN116091292A (zh) 2023-05-09
CN116091292B true CN116091292B (zh) 2023-11-21

Family

ID=86197947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210989393.8A Active CN116091292B (zh) 2022-08-17 2022-08-17 数据处理方法和相关装置

Country Status (1)

Country Link
CN (1) CN116091292B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117557788B (zh) * 2024-01-12 2024-03-26 国研软件股份有限公司 一种基于运动预测的海上目标检测方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778656A (zh) * 2014-02-12 2014-05-07 腾讯科技(深圳)有限公司 一种图像渲染方法、装置及电子设备
CN109685726A (zh) * 2018-11-27 2019-04-26 Oppo广东移动通信有限公司 游戏场景处理方法、装置、电子设备以及存储介质
CN112866612A (zh) * 2021-03-10 2021-05-28 北京小米移动软件有限公司 插帧方法、装置、终端及计算机可读存储介质
CN114740965A (zh) * 2022-05-05 2022-07-12 Oppo广东移动通信有限公司 降低终端功耗的处理方法及其装置、终端和可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778656A (zh) * 2014-02-12 2014-05-07 腾讯科技(深圳)有限公司 一种图像渲染方法、装置及电子设备
CN109685726A (zh) * 2018-11-27 2019-04-26 Oppo广东移动通信有限公司 游戏场景处理方法、装置、电子设备以及存储介质
CN112866612A (zh) * 2021-03-10 2021-05-28 北京小米移动软件有限公司 插帧方法、装置、终端及计算机可读存储介质
CN114740965A (zh) * 2022-05-05 2022-07-12 Oppo广东移动通信有限公司 降低终端功耗的处理方法及其装置、终端和可读存储介质

Also Published As

Publication number Publication date
CN116091292A (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
US11676342B2 (en) Providing 3D data for messages in a messaging system
US11748957B2 (en) Generating 3D data in a messaging system
CN110766777B (zh) 虚拟形象的生成方法、装置、电子设备及存储介质
KR102624635B1 (ko) 메시징 시스템에서의 3d 데이터 생성
US20170155885A1 (en) Methods for reduced-bandwidth wireless 3d video transmission
US11825065B2 (en) Effects for 3D data in a messaging system
US20200167999A1 (en) Image generation based on brain activity monitoring
CN112287852B (zh) 人脸图像的处理方法、显示方法、装置及设备
CN116048244B (zh) 一种注视点估计方法及相关设备
US20160252730A1 (en) Image generating system, image generating method, and information storage medium
US12039632B2 (en) Synthesized camera arrays for rendering novel viewpoints
CN116091292B (zh) 数据处理方法和相关装置
KR20210138484A (ko) 깊이 맵 복구를 위한 시스템 및 방법
CN115018692B (zh) 一种图像渲染方法及电子设备
CN116095221B (zh) 一种游戏中的帧率调整方法及相关装置
CN118159341A (zh) 一种图像帧的渲染方法及相关装置
CN116688495A (zh) 帧率调整方法及相关装置
CN116091572B (zh) 获取图像深度信息的方法、电子设备及存储介质
CN116708931B (zh) 图像处理方法及电子设备
US12002132B1 (en) Rendering using analytic signed distance fields
US11282171B1 (en) Generating a computer graphic for a video frame
US20230215108A1 (en) System and method for adaptive volume-based scene reconstruction for xr platform applications
WO2024045701A9 (zh) 数据处理方法、装置、设备及存储介质
KR102697772B1 (ko) 메시징 시스템 내의 3d 데이터를 포함하는 증강 현실 콘텐츠 생성기들
US20230412724A1 (en) Controlling an Augmented Call Based on User Gaze

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