「映维VR」ARM分享:如何优化汽车驾驶AR应用


查看引用/信息源请点击:arm
Streamline工具简化了性能剖析和分析
(映维网 2020年03月14日)与传统应用程序相比 , 增强现实需要更优的系统性能 。 由于长久的适应 , 人眼可以轻松感知到物理世界断断续续且缓慢发展的表现 。 但对于AR应用 , 即便渲染或帧率出现微小的错误 , 这都可能产生糟糕的用户体验 。
清晰一致的应用性能对汽车领域尤其重要 。 汽车厂商正越来越多地将增强现实纳入至核心用户体验 , 如通过直接在驾驶员的视场中渲染导航信息 。 在这种情况下 , 分散注意力的延迟或不清晰的可视化效果都会造成灾难性的事故 。
【「映维VR」ARM分享:如何优化汽车驾驶AR应用】日前 , Arm通过博文介绍了其AR技术的用例和开发方法 , 尤其着重于如何优化性能以提供最佳用户体验 。
「映维VR」ARM分享:如何优化汽车驾驶AR应用
本文插图
1. 当前的状态
无论编码好坏 , 软件最终都取决于它所运行的硬件 。 当前 , AR应用没有专用于增强现实的ECU(电子控制单元) , 所以它们通常借助车辆中现有的ECU 。 这限制了性能 , 所以AR应用必须与在相同硬件运行的其他应用程序隔开 。 为避免用户出现晕动症及显示清晰度 , 应以稳定的帧频显示AR应用的内容 。 增强对象外观的延迟应保持在一定范围内 , 这对于优化AR应用功能至关重要 。 由于传感器或软件性能的原因 , 即使是行驶车辆的显示延迟很小 , 这都可能导致较大的失配 。 在以100km/h的速度行驶时 , 200ms的延迟将导致增强对象位置与现实世界最多错位5米 。 对于安全性至关重要的汽车而言 , 这种程度的误差不可接受 。
当前使用的ECU是Samsung Exynos V9 Auto汽车芯片 。 它必须运行Apostera AR应用程序和其他各种软件模块 , 并支持广泛的性能和I/O功能 。
AR应用需要实时运行才能发挥作用并提供无缝的用户体验 。 但大多数Linux变体不是实时 。 Exynos V9 Auto汽车芯片所运行的OS是制造商提供的BSD Linux版本 , 并且不支持实时例程 。 为了支持算法能够正确计算增强对象的位置 , AR应用必须实现实时架构和方法 。 这可以通过向用户提供信息时补偿测量延迟来进行满足 。
对于严格的要求 , 至关重要的是:
持续监控效果
分析AR应用程序以发现瓶颈
确保所有操作均按时完成 , 并且输出中没有丢帧或数据放置错误 。
全面且易于使用的性能分析器工具是提供高质量解决方案的关键 。
「映维VR」ARM分享:如何优化汽车驾驶AR应用
本文插图
2. 用例
德国慕尼黑软件公司Apostera为汽车制造商开发了一种混合现实导航制导系统 , 并旨在为提高自动驾驶的未来铺平道路 。 当前的应用程序可以将汽车挡风玻璃转换成混合现实屏幕 , 并在其中显示重要信息 , 从而实现安全有效的导航 。
3. 代码优化
3.1 传统的方法
对于Apostera , 分析AR应用程序的性能通常意味着实现特殊的分析和性能指标库 。 所述库的输出是通过一个特殊的日志系统进行记录 , 并同时包含性能指标 。 接下来 , 系统将于运行时或运行后在脱机数据检索设置中从目标平台提取所述数据 。 对于复杂的调试和优化案例 , 内核轨迹可用于更深入的分析和瓶颈识别 。
使用所述数据来确定优化路线非常繁琐且效率低下 。 无法在运行时分析数据 , 并且无法长时间记录众多事件 。 全面理解系统性能并查看性能瓶颈是一项挑战 。
3.2 新颖的方法
在将AR应用移植到新硬件时 , Apostera决定使用Arm Streamline Performance Analyzer(Arm Development Studio的一个组件)来优化性能 。 Streamline是完整的软件系统分析器 。 它会轮询系统的硬件计数器 , 从而确定在代码执行过程中耗时最大的地方 , 并显示在易于理解的GUI中 。 所述工具可快速识别Arm CPU和GPU中的代码“热点” , 例如在执行过程中占用最多硬件资源时间的软件 。 这可以帮助开发者专注于优化问题代码 。