写点什么

直面游戏三大难题,OPPO 首次全方位解析高性能应用加速引擎架构

  • 2019-08-30
  • 本文字数:4306 字

    阅读完需:约 14 分钟

直面游戏三大难题,OPPO首次全方位解析高性能应用加速引擎架构

随着 5G 大门的开启,视频技术也即将迎来 8K 超高清时代。软件升级,用户需求也在升级,唯独不能频繁升级的是硬件系统,那么如何通过软硬件结合充分将设备的性能最大化呢?OPPO 对此颇有心得。


8 月 24 日下午,由 OPPO 开放平台主办的《OPPO 技术开放日》第四期在深圳举行。本次活动以“高性能应用加速引擎架构解析”为主题,携手开发者与合作伙伴,共同探索游戏与应用开发的未来走向,寻求创造用户新体验及行业发展新机遇。

Hyper Boost 能力架构解析

随着硬件性能的不断提升,移动设备对软件服务的适配要求也越来越高。这种情况下,兼容、贯通多个底层硬件资源,实现系统级资源调度的全面优化,将会大幅提升手机应用、游戏、网络等方面的性能。在这一领域,OPPO 水滴实验室技术总监程杰拥有丰富的实践经验。

Hyper Boost 加速引擎三大模块

OPPO 自研的加速引擎 Hyper Boost 主要包含 System Boost 系统引擎、Game Boost 游戏引擎和 APP Boost 应用引擎三大模块,三大模块分别对应系统运行速度、游戏流畅度、应用运行速度等智能手机的用户核心使用底层场景。


系统引擎可以调动系统中一切可以控制的资源,包括 CPU、GPU、内存、磁盘、网络等。通过合理的资源调度,让用户的使用场景达到最佳状态,让系统性能、功耗和散热达到最优化平衡,为用户带来最佳手机设备使用体验。



游戏引擎针对游戏进行 1 对 1 的使用场景和游戏性能优化。根据用户在游戏中的常见使用场景,进行定制化的游戏加速,提升游戏性能,实现系统硬件资源对游戏应用的深化辅助,让系统硬件资源可以针对游戏中的关键行为和场景,调度资源使用,进行针对性的优化。


应用引擎是 OPPO 为应用厂商深度定制的系统级专项优化。举例来看,OPPO 将微信的 11 个高频用户使用场景进行针对性优化,提升了微信用户综合使用体验。此外,如手机 QQ、淘宝等平台级应用,也进行了深度定制的专项优化。


然而,游戏引擎和应用引擎仅仅通过定制化服务是无法满足大多数企业需求的。因此, OPPO 推出 Hyper Boost 来优化接入,让所有应用开发者和游戏开发者都可以享受 Hyper Boost 引擎技术服务。

Hyper Boost 的迭代优化

此前 OPPO 推出的 Hyper Boost 版本,虽然场景化自定义功能丰富且能和厂商进行针对性的优化,但是由于调试速度较慢,需要投入大量的人力,接入效果也不理想,覆盖面等问题也相应出现。为此,OPPO 迭代推出了 Hyper Boost ,其具备场景通用化、协议规范化、维护自动化三大特点,解决了原有版本存在的问题。


场景通用化的实现主要是通过对固定场景和用户常用场景进行抽象化,形成通用化场景,让更多的应用和游戏厂商轻松接入。协议规范化则是让应用按照现有的流程协议进行适配,对各种场景提供规范化说明。维护自动化则是避开通过 OTA 等方式推送,采用预下载的方式,应用直接上线所需效果。同时平台还提供相应的优化自动测试和异常检测等功能,大大节省了人工运维的工作量。



如上图所示,开放平台的工作原理可以分为三层。第三方应用接入平台的 SDK 后,将相应的信息传输给位于应用层的服务系统,服务系统进行数据的筛选和分发,并根据用户以及数据类型的不同,将数据发给系统引擎的内核层执行单元,最后,执行单元就会调动系统资源,处理相应的事件。

Game Color Plus 技术实践

针对游戏画质,OPPO 与高通共同合作研发了游戏画质增强技术 Game Color Plus。OPPO 高级系统工程师尹林拿详细介绍了这一技术是如何提高游戏画质的真实度和绚丽度,并实践落地。


游戏中的后期处理需要对场景的整体像素进行大量运算处理,但实际上移动设备上 GPU 算力却十分有限。移动设备的渲染架构 TBR,在渲染过程中要频繁地进行计算,从而导致算力消耗巨大,适用性很差。


高通为视频后期处理打造的 HQV 技术,采用两类处理算法。一是自适应的图像增强算法,包括 CAD、本地色调影射、色调适应等;另一类是噪点消除算法,包括边缘尾像素移除等。HQV 在视频播放中带来的画质效果提升也能和游戏画质结合起来,结合高通通用的 DSP,可以实现节省电量,提升游戏帧率的目的。


高通通用 DSP 分为两部分,HVX 和 HCP。HVX 向量处理器作为一个低功耗的数字信号处理中心,具有高效、低功耗、可编程的特点,适用于图像增强、计算机视觉和机器学习等目标数据庞大、算法复杂的环境;HCP 则能把跟 Game Color Plus 的图像处理算法用硬件编码的方式集成到硬件上,速度快、功耗低且帧率稳定。


未来,OPPO 还将把 Game Color Plus 的 API 开放给第三方游戏公司,让他们可以自主调整 Game Color Plus 的效果,适配游戏。OPPO 提供的 API 中还包含了图像处理算法的参数及说明,第三方厂家可以根据参数说明进行游戏优化。由于后期处理占到游戏渲染时间和功耗的 25%,把高摊销的后期处理剔除后, Game Color Plus 也有了更高的效率提升,再加上平台提供的通用 DSP 图像算法,游戏画质可以实现进一步的增强。

游戏响应与帧率优化的技术关键

现如今,游戏对高帧率、高清、特效的要求越来越多,但设备的性能、功耗和散热都是其中的桎梏,那么 Hyper Boost 在游戏响应与帧率优化方面又是如何做的呢?OPPO 高级系统工程师王猛猛对这一问题涉及的关键技术进行了介绍。


针对游戏优化,在 Hyper Boost 三大模块中的 Game Boost 有多种多样的技术能够提供帮助,这其中有两个技术非常关键,分别为解决手机触控问题的 Touch Boost 和解决手机卡顿问题的 Frame Boost 。

手机触控响应的优化加速


手机触控是一个复杂的流程。从用户按下一个触摸屏的动作开始,到游戏的画面发生变化,期间会经历了约 14 个流程,而这些流程又可分为触控响应和渲染响应两部分。触控响应部分主要处理触控事件的分发和解析等操作,渲染响应部分则是把触控事件转化为图像变化。那么这些环节应当如何处理呢?CPU 调度优化和游戏专用触控模式就可以很好的解决游戏体验问题。


现代 CPU 的拓扑结构非常复杂,功耗也很大,芯片厂商为了尽可能地省电,引入了多个层级的低功耗策略,不同等级的低功耗策略有不同的 OverHead,可能带来数 10ms 的调度延迟。对此,OPPO 的优化策略为:当检测到触摸事件之后,会临时关闭 LPM,降低调度延迟,提升 CPU 频率,加快触摸事件处理;线程调度策略也进行了调整,保证触摸关键线程优先执⾏;最后引入触控游戏模式,根据游戏内部场景特调触摸屏的灵敏度,使得反应更加灵敏。


此外,OPPO 对触控响应逻辑也进行了调整。一般来讲,手机为了降低误触事件,在触控固件中一般设计有防误触模式,这一模式会让一些细微操作有一定的阻滞感。通过 Touch Boost 技术,应用程序可以将游戏开始信号通知系统,系统可以将触摸屏设置为游戏专用模式,从而提升灵敏度。


渲染流程方面在经过优化后也有了比较大的提升。OPPO 通过对关于触控显示函数的 Android 源码进行了逐项分析后,重写了渲染合成等关键函数 ,在逻辑上进行大量精简工作后,避免重复调用等问题。当渲染画面合成中出现空挡时,系统会得到一个虚拟信号,从而提前进行画面合成,缩短画面合成的周期,节约绘制时间。

游戏卡顿的难点突破

Frame Boost 的设计初心是为了解决卡顿体验。游戏卡顿的原因有两个,一是性能的瓶颈,二是 CPU 或者 GPU 进入低功耗模式。而出现省电降频,导致卡顿的原因主要是任务突然负载变重,系统提频不及时。但这一现象无关线程和平台,游戏中的逻辑线程、渲染线程以及其他的关键线程都可能均存在类似现象,各个平台也均存在此类问题。


其实卡顿是有预兆的,系统可以提前针对这些预兆进行自动检测,避免卡顿:


  • 卡顿前第三方应用可以把一些信号发送给系统,避免卡顿;

  • 通过对以往的卡顿规律进行系统性的分析,可以发现卡顿产生时的特征,如逻辑线程线性特征等;

  • 安卓系统中会有 Buffer 的情况,可以根据 Buffer 的数量判断是否产生卡顿。


除了根据预兆的自动检测之外,还有可以应用信号与线程特征的机制,比如把团战之前的信号发送给系统,使得系统可以在团战发生之前及时进行拉频避免卡顿。这种方法优势在于见效快、识别准、兼容性高,也有利于开发人员进行详细的深入分析。但识别卡顿时的线程后,进行自动提频的动作,这个做法耗时耗力,但优化后的 OPPO 提频操作可以在一毫秒内完成。频率提升任务结束,硬件资源将迅速降回设备正常状态,这在减少游戏卡顿的同时,也可让设备功耗得到最大限度的优化。

Hyper Boost 游戏表现力

游戏优化,技术固然十分重要,但是只有和产品配合时,用户体验才能更上一层楼。OPPO 高级产品经理陆宛茹就为开发者,深入讲述了 OPPO 的产品以及优化思路。

游戏用户体验的提升方法

针对不同类型的玩家,OPPO 提供了哪些方面的游戏体验优化呢?一是游戏的表现力,二是游戏感官。


在游戏表现力方面,OPPO 打造了游戏空间这款战略性产品。用户可以通过游戏空间对网络模式、系统资源配置、功耗、抗干扰等功能进行调整,还可以自定义封面、使用游戏助手自定义快捷键等。OPPO 还为游戏用户提供了游戏预下载技术,用户可以无需下载等待直接开启游戏,减少跳出率。联动游戏中心、游戏空间和游戏助手,各个应用可能触达到面拓展,提升用户体验。


游戏感官主要是视、听、触三个方面优化。视觉上,最新的 Reno10 增加了 X 轴线性马达。这一 4D 线型马达能够通过深度调优制定 20 多种自己的波形库,通过上层和应用的联调,制定出厂商自己自定义游戏的振动。听觉方面 Reno 系列默认自带杜比全景音效,并可根据用户的音效调节不同的声音。此外,OPPO 跟高通合作开发了 Game Color Plus 的技术,能够对不同游戏、不同内容进行画质、色域等方面实现大幅提升。

产品落地效果案例

那么 OPPO 的技术与客户合作时究竟会有怎样的效果呢?几家合作伙伴也在活动现场给出了答案。


《英魂之刃口袋版》客户端主程韩志灯表示,在接入 OPPO 的 Hyper Boost 之前,游戏面临几个主要的痛点问题,比如高低端机型的适配问题、卡顿和掉帧问题、网络的不稳定性、耗电量较大等。调用 Hyper Boost 接口后,系统为游戏场景加载分配了更大的资源,玩家等待时间由原来的 15 秒缩短到 10 秒左右,提升了 50%,而在帧率和网络方面,FPS 优化提升了 30%,Wi-Fi 网络延时优化提升了 60%。此外,在进入战斗和退出战斗的过程中,开启 Hyper Boost 优化策略,可以让游戏性能更加稳定,游戏耗电量也有着明显减少。


《随手记》产品部经理梁鼎则遇到了另外的困扰,作为一款为个人、专业用户、行业用户提供定制化记账的 APP,慢页面、慢加载、慢函数等情况显然是用户在使用过程中无法接受的。在调用 Hyper Boost 接口后,系统对随手记用户使用的核心场景进行优化,对应用开屏采用冷启动加速,加载和运行速度也得到全面优化,用户记账更快捷。通过提高用户记完账回到首页重新计算流水的效率,流水的加载时间降低了 15.04%,闪屏加载也提升了 12.24%。


2019-08-30 16:514555

评论

发布
暂无评论
发现更多内容

实例带你掌握如何分解条件表达式

华为云开发者联盟

代码 函数 条件表达式 条件分支 条件逻辑

Masa Blazor in Blazor Day

MASA技术团队

C# .net 微软

谈谈Java8-18引入的新特性

CRMEB

Go 1.18 新特性:多模块工作区模式

华为云开发者联盟

Go 指令 go 1.18 多模块工作区 工作区

到底为什么你我都要了解社会工程学

图灵教育

黑客 社会工程 社会科学

安全网关是啥什么东西?有什么优势?与堡垒机的区别是什么?

行云管家

网络安全 堡垒机 运维审计 安全网关 堡垒机防火墙

自助洗车机设备一台多少钱划算

共享电单车厂家

自助洗车机多少钱 自助洗车机设备价格

Google如何申请客户端ID并调试代码?

CRMEB

社交CRM系统解决方案

低代码小观

CRM 企业管理系统 社交软件 CRM系统 客户关系管理系统

郑曌:从 ACM 世界冠军到技术 VP 的制胜之道

第四范式开发者社区

人工智能 数据库 编程 程序员 ACM

【等保】等级保护定级对象只定信息系统吗?还是说定单位?

行云管家

网络安全 等保 等级保护 等保2.0

智能运维时代,如何做好日志全生命周期管理

云智慧AIOps社区

日志 智能运维 日志管理

自动搭建Maven私有仓库,不限容量、免费用

阿里云云效

maven 阿里云 云原生 Maven仓库 制品仓库

如何有效的对云专线进行测速

天翼云开发者社区

网络

10元自助洗车机器多少钱一台?

共享电单车厂家

自助洗车机价格 10元自助洗车机器 自助洗车机器多少钱

三高Mysql - Mysql索引和查询优化(偏实战部分)

懒时小窝

MySQL

使用APICloud AVM框架封装app日历组件

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 多端开发 avm.js

「技术人生」专栏作者来直播间啦!欢迎来提问

阿里巴巴中间件

阿里云 云原生 中间件 技术人生 一号位

天翼云CDN最佳实践

天翼云开发者社区

CDN

如何利用MHA+ProxySQL实现读写分离和负载均衡

华为云开发者联盟

MySQL 读写分离 高可用架构 ProxySQL MHA

快来一起玩转LiteOS组件:Curl

华为云开发者联盟

LiteOS 文件传输 curl LiteOS组件 嵌入式设备

DapuStor大普微电子加入PolarDB开源数据库社区

阿里云数据库开源

数据库 阿里云 开源数据库 polarDB

解析天翼云IPsec VPN和SSL VPN的区别

天翼云开发者社区

vpn

投资自助洗车机要多少钱?看情况

共享电单车厂家

自助洗车加盟 投资自助洗车机 自助洗车机要多少钱

小区自助洗车机赚钱吗?想投几台

共享电单车厂家

自助洗车加盟 投资自助洗车机 自助洗车投资费用 自助洗车是否赚钱

jackson学习之一:基本信息

程序员欣宸

4月月更

巧用天翼云盘备份云主机数据

天翼云开发者社区

云主机 云存储

天翼云云主机快照、云硬盘备份、云主机备份之间的区别

天翼云开发者社区

云主机 云备份

自助洗车机厂家如何选?要注意什么

共享电单车厂家

自助洗车机多少钱 自助洗车加盟 自助洗车机厂家

netty系列之:netty中的核心编码器base64

程序那些事

Java Netty 程序那些事 4月月更

龙蜥社区第七次运营委员会会议顺利召开

OpenAnolis小助手

开源社区 龙蜥社区 理事单位 运营委员会

直面游戏三大难题,OPPO首次全方位解析高性能应用加速引擎架构_架构_阿强_InfoQ精选文章