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

embedded/2025/2/15 13:32:21/

高通技术公司于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.ppmy.cn/embedded/162416.html

相关文章

linux软件编程

IO(文件) 文件: 一组相关数据的有序集合 文件名: 这组相关数据的一个名称 linux里面对文件的处理: 思想: 一切皆文件 ,文件用来存储数据(数据、指令) linux文件类型(7中) b -- block -- 块设备文件 --- 硬盘…

机器学习实战之基于随机森林的气温预测

基于随机森林的气温预测 在气象学领域,准确地预测天气对于许多行业来说都是至关重要的。随着机器学习技术的发展,我们现在能够利用历史数据来提高天气预报的准确性。本文将介绍如何使用随机森林算法来进行气温预测,并分享具体的Python实现代码…

青少年编程与数学 02-009 Django 5 Web 编程 06课题、模型定义

青少年编程与数学 02-009 Django 5 Web 编程 06课题、模型定义 一、模型二、定义模型1. 导入模型类2. 定义模型类3. 定义字段4. 添加元数据(可选)5. 定义模型方法(可选)6. 迁移模型 三、模型字段字符字段数字字段日期和时间字段布…

C++基础知识(三)之结构体、共同体、枚举、引用、函数重载

九、结构体、共同体和枚举 1、结构体的基本概念 结构体是用户自定义的类型,可以将多种数据的表示合并到一起,描述一个完整的对象。 使用结构体有两个步骤:1)定义结构体描述(类型);2&#xff…

《只狼》运行时提示“mfc140u.dll文件缺失”是什么原因?要怎么解决?

《只狼》运行时提示“mfc140u.dll文件缺失”是什么原因?要怎么解决? 宝子们,是不是在玩《只狼》的时候,突然弹出一个提示:“找不到mfc140u.dll文件”?这可真是让人着急上火!别慌,今…

逆境、情绪低落时可用的锦囊、咒语

《浮生一梦》(一) 大多数人都经历过逆境低谷、失败、挫折、看似无端情绪低落、抑郁… 人逢情绪低落时,几乎任何话都听不进去,再正的能量也塞不进脑子,笑话笑不出来,食不知味… 复原力不强者很难走出来&am…

云原生时代的后端开发:架构、工具与最佳实践

随着云计算的迅猛发展,云原生(Cloud Native)逐渐成为后端开发的主流趋势。云原生后端不仅能够提高应用的灵活性和可扩展性,还能显著优化开发和运维流程。本文将围绕云原生后端的关键概念、当前热门技术及最佳实践,帮助…

通过命令行运行py文件与通过ide运行py文件,对文件中模块的引用方式的影响

通过命令行运行 Python 文件和通过 IDE 运行 Python 文件时,模块的引用方式 会受到一些影响,主要体现在 工作目录 和 模块导入路径(sys.path)的设置上。下面详细介绍这两种方式的区别和它们如何影响模块引用。 1. 通过命令行运行…