探索高通骁龙游戏超分辨率技术:移动游戏的未来

news2025/2/19 18:44:43

高通技术公司于2024年推出了骁龙游戏超分辨率2(Snapdragon Game Super Resolution 2,简称GSR2),这是一项全新的骁龙Elite Gaming功能,旨在最大化移动游戏的性能和电池寿命。

什么是骁龙游戏超分辨率2(GSR2)?

骁龙GSR2是一种时间抗锯齿和超分辨率(TAAU)的实现。其核心算法使用两个通道(passes):转换通道(pass)和超分通道(pass),并可选集成一个锐化通道(pass)以提高视觉质量。

  • 转换通道:准备必要的缓冲区,如运动缓冲区和深度剪裁缓冲区,这些信息将作为下一步的输入,用来指导超分通道(pass)将如何融合历史帧像素和当前帧像素。
  • 超分通道(pass):在这个通道(pass)中,首先使用一个优化的Lanczos对当前帧进行上采样,然后将上采样像素与GSR2的历史像素进行混合,从而完成时间上的上采样和混合。

与大多数TAAU算法类似,骁龙游戏超分辨率需要以下输入:

  • 低分辨率深度数据
  • 低分辨率颜色数据
  • 低分辨率运动矢量

骁龙游戏超分辨率的主要特点和改进

骁龙游戏超分辨率2相比其前身有多项显著改进:

  • 增强的视觉质量:GSR2可以将1080p游戏转换为惊艳的4K视觉效果,突出每一个细节。作为一种时域图像放大解决方案,通过聚合历史样本,可以增加采样点并使视觉效果更接近原生分辨率。
  • 改进的运行性能:以前运行在30FPS的游戏现在可以达到60+FPS,提供丝滑顺畅的游戏体验。如果游戏已经达到了目标帧率,这将为开发者提供额外的帧预算,以增强渲染管线或添加更高分辨率的纹理、更多几何体、细节层次等内容。
  • 更长的电池寿命:通过优化性能,GSR2有助于延长电池寿命,使玩家在移动设备中可以更长时间的运行游戏,同时将热量降至最低。

骁龙游戏超分辨率的性能优势

在移动平台上,可行的时域上采样解决方案的关键挑战是性能。算法必须足够快才能在高度优化的移动游戏中相比用原生全分辨率渲染仍有性能提升。游戏开发者的反馈表明,当分辨率放大至1260x2800时,算法应在骁龙8 Gen 3的最大GPU频率下运行时间不超过2毫秒。2毫秒的运行时间意味着在最低GPU频率下,GPU的运行时间可达8毫秒。

为了找到最佳解决方案,我们实现了多种版本,允许开发者根据其渲染管线和预算选择合适的解决方案。经过多次针对Adreno的优化,我们的2通道(passes)片段着色器版本达到了极致的1毫秒成本。

2.0x (630x1400 to 1260x2800)

1.7x (740x1648 to 1260x2800)

1.5x (840x1866 to 1260x2800)

GSR2 版本

时间(ms)

GSR2 版本

时间(ms)

GSR2 版本

时间(ms)

2 pass-CS

1.801

2 pass-CS

1.910

2 pass-CS

1.998

2 pass-FS

0.905

2 pass-FS

1.024

2 pass-FS

1.107

3 pass-CS

2.015

3 pass-CS

2.199

3 pass-CS

2.397

表一 GSR2各个版本在8Gen3的GPU耗时

表二 GSR2各个版本在8Gen3的帧率对比

骁龙游戏超分辨率2的视觉质量

GSR2在每帧渲染时对采样点进行微小的随机偏移,并累积历史样本,通过这种时域累积的上采样方式可以生成比GSR1更高质量的高分辨率图像,因为后者只能从当前帧缓冲区采样。

图一 GSR1(左) 与 GSR2(右)的视觉质量对比

图二 视觉质量对比(左一:双线性插值,左二:GSR2,左三:原生高分辨率)

下一步

我们满怀兴奋地推广骁龙GSR2,并期待它能帮助游戏开发者提升游戏画质和性能。该方案是完全开源的,您可以根据实际情况在以下多个版本中进行选择。

我们的Snapdragon Studios GitHub库中提供了3个版本的GSR2的shader。

Unreal Engine插件实现了多个引擎版本下的GSR2插件。

Vulkan Sample和OpenGL ES Sample分别提供了GSR2的Vulkan 示例和OpenGL示例。

作者:

沈骞,高通工程师

符婷,高通工程师

姜祥威,高通工程师

Rodrigo Holztrattner Reis,高通工程师

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2299132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW 用户界面设计基础原则

在设计LabVIEW VI的用户界面时,前面板的外观和布局至关重要。良好的设计不仅提升用户体验,还能提升界面的易用性和可操作性。以下是设计用户界面时的一些关键要点: 1. 前面板设计原则 交互性:组合相关的输入控件和显示控件&#x…

[C++]多态详解

目录 一、多态的概念 二、静态的多态 三、动态的多态 3.1多态的定义 3.2虚函数 四、虚函数的重写(覆盖) 4.1虚函数 4.2三同 4.3两种特殊情况 (1)协变 (2)析构函数的重写 五、C11中的final和over…

KubeSphere 和 K8s 高可用集群离线部署全攻略

本文首发:运维有术,作者术哥。 今天,我们将一起探索如何在离线环境中部署 K8s v1.30.6 和 KubeSphere v4.1.2 高可用集群。对于离线环境的镜像仓库管理,官方推荐使用 Harbor 作为镜像仓库管理工具,它为企业级用户提供…

HCIA项目实践--RIP的拓展配置

9.4.7 RIP的拓展配置 (1)RIPV2的手工认证 RIPv2 的手工认证是增强网络安全性的手段。管理员手动配置密钥,路由器在收发 RIPv2 路由更新消息时,会对消息中的认证信息进行检查。发送方添加密钥,接收方用预设密钥验证。若…

性能测试理论、性能测试分类、性能测试指标

性能测试概念 (1)什么是性能? 时间:系统处理用户请求的响应时间。 资源:系统运行过程中,系统资源的消耗情况。 (2)什么是性能测试? 使用自动化工具,模拟不…

【kafka系列】日志存储设计 消息写入、读取

目录 日志存储设计 1. 日志存储的目录结构 2. 日志内容格式设计 3. 日志索引设计 4. 设计优势 消息写入流程 示例 流程图 消息读取流程 示例 关键设计细节 流程图 日志存储设计 Kafka的日志存储是其高吞吐、持久化能力的核心设计,其结构包含目录组织、…

【C】初阶数据结构5 -- 栈

前面学习了两种最基本的数据结构 -- 顺序表和链表,接下来就可以基于这两种数据结构来实现其他数据结构了。其实,其他的数据结构的物理结构要么是数组,要么就是链表,所以学好顺序表和链表是学好其他数据结构的基础。接下里&#xf…

Spring MVC Streaming and SSE Request Processing SSE可以实现chatgpt一次请求分批次响应的效果

1. Introduction This simple tutorial demonstrates the use of several asynchronous and streaming objects in Spring MVC 5.x.x. Specifically, we’ll review three key classes: ResponseBodyEmitterSseEmitterStreamingResponseBody Also, we’ll discuss how to i…

CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测

代码地址:CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测 CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测 一、引言 1、研究背景和意义 光伏发电作为可再生能源的重要组成部分,近…

架构设计系列(三):架构模式

一、概述 关于移动应用开发中常见的架构模式,这些模式是为了克服早期模式的局限性而引入。常见的 架构模式有: MVC, MVP, MVVM, MVVM-C, and VIPER 二、MVC, MVP, MVVM, MVVM-C, and VIPER架构模式 MVC、MVP、MVVM、MVVM-C 和 VIPER 是移动应用开发中…

强化学习-NPG

NPG来源于PG算法,是TRPO算法的前身。 随机梯度策略算法的输入输出问题(不得不考虑的): PG算法用函数表示策略,该表示方法不直接输出动作(有别于“确定性梯度策略”),那么就有两种可以…

数据守护者:备份文件的重要性及自动化备份实践

在信息化社会,数据已成为企业运营和个人生活的重要组成部分。无论是企业的核心业务数据,还是个人的珍贵照片、重要文档,数据的丢失或损坏都可能带来无法估量的损失。因此,备份文件的重要性愈发凸显,它不仅是数据安全的…

初阶c语言(练习题,猜随机数,关机程序)

目录 第一题,使用函数编写一个随机数,然后自己猜,猜随机数 第二道题(关机程序) 实现代码(关机程序) 实现代码(猜数字) 前言: 学习c语言,学习…

TypeScript 与后端开发Node.js

文章目录 一、搭建 TypeScript Node.js 项目 (一)初始化项目并安装相关依赖 1、创建项目目录并初始化2、安装必要的依赖包 (二)配置 TypeScript 编译选项(如模块解析方式适合后端) 二、编写服务器代码 &a…

基于SSM+uniapp的鲜花销售小程序+LW示例参考

1.项目介绍 系统角色:管理员、商户功能模块:用户管理、商户管理、鲜花分类管理、鲜花管理、订单管理、收藏管理、购物车、充值、下单等技术选型:SSM,Vue(后端管理web),uniapp等测试环境&#x…

数据开放共享和平台整合优化取得实质性突破的智慧物流开源了

智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本可通过边缘计算技术…

2025互联网医院系统源码解析:AI陪诊问诊APP的未来发展

2025年,AI陪诊问诊APP将如何在技术上创新,如何推动互联网医院的进一步发展,成为了我们今天探讨的核心内容。在本文中,我们将通过源码解析,深入分析这一前沿技术的未来发展趋势,帮助广大从业者更好地理解这一…

【NLP 22、语言模型 language model】

有时候我也想听听,我在你心里,是什么样子 —— 25.1.12 一、什么是语言模型 语言是灵活的,也是有规律的 了解一门语言的人可以判断一句话是否“合理” 通俗来讲,语言模型用来评价一句话(句子可以看作是字的组合)是否“合理”或…

(萌新入门)如何从起步阶段开始学习STM32 —— 0.碎碎念

目录 前言与导论 碎碎念 所以,我到底需要知道哪些东西呢 从一些基础的概念入手 常见的工具和说法 ST公司 MDK5 (Keil5) CubeMX 如何使用MDK5的一些常用功能 MDK5的一些常见的设置 前言与导论 非常感谢2301_77816627-CSDN博客的提问,他非常好奇…

Eclipse:关闭多余的工具条

Eclipse默认的工具条非常多,可以通过如下方法选择关闭一些不常用的: 1.选择菜单Window -> Perspective -> Customize Perspective 2.根据需要勾选Toolbar Visbility下面的工具条项