作者:Arm 开发者生态系统战略总监 Peter Hodges
近日,Arm 推出了 Arm 精锐超级分辨率技术 (Arm Accuracy Super Resolution, Arm ASR),这是一款面向移动设备进行优化升级的出色开源超级分辨率(下文简称“超分”)解决方案。本文将为你介绍我们所采用的方法,并欢迎你一同加入我们的技术探索旅程。
制作精良的游戏能够带领玩家踏上一段动人的旅程。游戏开发者套件里有许多工具可以为此增添助力,例如引人入胜的音乐、富有想象力的操控模式和图形效果等。就图形技术而言,手游中图像的精细程度令人震撼。游戏被渲染到包含数百万像素的屏幕上,并以惊人的 60Hz 或更高的刷新率显示呈现。
推动游戏开发更上一层楼是行业永无止境的追求。现代手游通过复杂的光照和着色器,不断突破极限,以实现开发者的愿景。然而代价在于,这不仅加重了 GPU 的负载,还会消耗更多电力。即使是在高端 PC 上,我们也认识到超分技术正是我们所追寻的答案。
Arm 精锐超级分辨率技术
通过超分技术,一帧的内容得以在某些阶段先以较低分辨率渲染,然后应用该技术从低分辨率放大到高分辨率。这一技术并非在帧渲染的每个环节都使用,否则可能会在渲染全屏效果或用户界面时产生不美观的瑕疵。然而,在管线的早期阶段,该技术可以发挥显著作用,并作为流程的一环提供抗锯齿效果。
后处理技术示例
在众多可用的解决方案中,AMD 超级分辨率锐画技术 2 (FSR 2) 引起了我们的关注。作为 GPUOpen 的一部分,该开源项目始于 2016 年,采用相对宽松的 MIT 许可证,旨在提供可移植的解决方案,以缓解 PC 和游戏主机之间存在的性能差异。这引发了我们的关注和思考:优秀的移动端解决方案应该具备哪些特性?
超分技术的类型
超分技术主要分为空间类和时域类。最先问世和被开发者采用的是空间类技术。
空间类超分会逐帧生成结果,其工作原理理解起来更加简单,对游戏引擎的要求也相对较低,例如 FSR 1 和骁龙游戏超级分辨率 (GSR) 就是这一类的代表。但该技术的缺点在于,开发者在选择渲染分辨率时不能过于激进,否则最终图像可能会出现模糊。不过,这种技术的算力成本相对较低。
而时域类超分则更为复杂,它通过整合多个帧的信息来生成最终结果。通常来说,它能够从较低分辨率生成更高质量的图像。但这对游戏引擎提出了额外的输入要求。例如,必须提供深度和运动矢量信息,并且最好有反应性遮罩,以便处理如粒子效果等缺乏深度或运动信息的元素。
迈向时域类超分技术
我们决定直接选用时域类超分技术,来应对常见的图形性能挑战,并为手游开发者带来优势。我们以 AMD FSR 2 为基础,它能够提供不错的效果,但实现成本相对较高,仅适用于 PC 和高端游戏主机。我们的解决方案源自 FSR 2,因此开发者能够继续使用熟悉的 API 和配置选项。
在研究过程中,我们采用了大家熟悉的小餐馆场景,并且增加了更多的局部重叠光源和主光源衰减,以此模拟实际的计算挑战,大约需要渲染 280 万个三角形。
针对搭载 Arm Immortalis-G720 GPU 和采用 2800x1260 显示分辨率的商用移动设备,我们对收集的结果进行分析后,发现 GPU 性能得到了显著提升。
同样重要的是,这项技术能够稳定保持在相对较低的温度下,渲染出高质量的结果。而以原生分辨率进行渲染时,不可避免地会出现明显的发热升温,这会有损游戏中的用户体验,并缩短游戏时间。
Arm ASR 的性能表现
Arm ASR 的出色性能得益于一系列高效的着色器代码,不仅减轻了 GPU 的负载,也降低了带宽需求。
性能的提升往往也同样意味着节省能耗,由此可以延长电池续航时间,这对于用户的日常使用是一大利好。在我们与 MediaTek 的协作中,证实了这一推测,在搭载天玑 9300 芯片的手机上进行了测试并得到了以下结果。
Arm 游戏内容团队一直在努力制作一款虚幻引擎 (Unreal Engine) 演示,以挑战未来移动端 GPU 的性能极限。我们也期待将 Arm ASR 应用于此类内容演示中。
这个演示场景中包含了许多精致入微的细节,这正是因为我们在 Arm ASR 中支持了稳健对比度自适应锐化 (RCAS) 技术,AMD FSR 1 和 FSR 2 也采用了这项技术。效果显而易见:
与开源社区共享成果
我们对这项工作成果深感自豪,并希望基于 MIT 开源许可协议与开发者社区进行成果共享,使得每一位开发者都能亲身感受 Arm ASR 的优势,并在自己的项目中尝试应用。如果你希望成为早期采用者,请扫描以下二维码或者点击阅读原文,与我们联系。
作者:Peter Hodges
文章来源:Arm社区
推荐阅读