雨果·巴拉:行业北极星Vision Pro过度设计不适合产品市场

音频对VR为何重要,AMD又是如何去解决这一难题

文章相关引用及参考:gpuopen

本文来自AMD的Fellow设计工程师Carl Wakeland

映维网 2017年12月24日)对于虚拟现实中的音频处理,我们需要一种新的思考方法。在游戏和视频的多年发展历史中,音频渲染的逼真度标准相对较低,特别是与同时期的图形和电影视频渲染相比时更是如此。尽管听觉固有地具有立体感,但是平面屏幕游戏和电影/视频的音频通常是最小化使用3D和其他先进的音频渲染技术,因为所有的图形和视频都呈现在你的面前。当你对着一个2D屏幕时,如果你听到背后传来声音并转过头来,你所看到的只是一个扬声器或者公寓的墙壁。除了部分FPS游戏外,平板电脑或电影的音频如果过于逼真,其有时会令玩家分神,尤其是如果它不符合视觉体验。例如,电影院环绕声几乎普遍使用后置和侧面扬声器来实现环境填充效果,但几乎从不使用重要的听觉提示,因为这样做会分散观众的注意力。

但现在头显改变了一切。用户可以转向任何方向,并看到一个连续的视觉场景。另外,随着技术的进步,用户已经可以在虚拟世界中独立行走。先进的虚拟现实系统有望为用户提供一个接近共识现实的临场感。研究显示,逼真的音频是在虚拟现实中建立临场感的重要先决条件。

1. 逼真音频的基础

实现逼真音频的“秘方”到底是什么?通常来说,通过头部相关传输函数(HRTF)实现的精确空间和位置音频渲染足以产生逼真的音频。如果用户固定在一个位置或者是置放于“魔毯之旅”上的场景,同时音频设计师在每个预置声音中都包含混响、遮挡、反射、衍射、吸收和扩散等所有环境效果,这可能是正确的说法,因为HRTF负责定位每个声音。但一旦用户开始在场景中自由移动(即使是有效的区域内),这一过程将变得不够充分。当用户在运动或改变头部的中心位置时,每个声音的反射路径和环境效果都在不断变化。预先烘烤场景中每种声音的环境效果已经不再实际可行。所采用的典型快捷近似估算方式是将所有这些效果合并到一个混响插件中,然后在特定情况下为整个场景使用一个混响设置,或者将多个设置分配到场景中的不同房间。行业自20世纪90年代以来便一直在使用提供这种渲染功能的技术。

对虚拟世界中的听者而言,即使声音的位置非常准确,这种近似估算也不能创建临场感。举一个例子,一名VR用户沿着走廊前进,走廊左前方有一个大门敞开的房间,用户能听到房间中传来声音,用户走过门口后,声音也仍在。但在现实世界中,用户在声音环境效果中则会听到持续的变化:

  • 房间墙壁的遮挡;
  • 在门口的衍射;
  • 墙壁,地板和天花板的表面反射;
  • 构成建筑物内墙/地板/天花板表面的材料及其物体或家具的扩散和吸收。

在录音棚中提取房间混响的传统音频设计和渲染方法,通过对声源增加简单衰减和低通滤波,并使用HRTF进行定位,可以产生可靠的声音呈现,但无法创建临场感。即使音频设计师努力使用逼真的曲线实现距离衰减和声源滤波,并且随着听者耳朵或声源改变位置而不断更新HRTF位置,结果也同样如此。

传统方法不足以创建临场感的原因是,现实世界的声学要比这种近似估算的范围更加复杂,而且通过大量的接触和适应,人类大脑已经训练有素,能够识别真实世界的声学并精确区分它们。人类听觉是一个关键的生存进化,因为声音往往是危险出现的第一个信号,而且从嘈杂的环境中判断声音方向和距离的能力是一个关键的生存技能。对于这种能力,一个例子就是所谓的“鸡尾酒会效应”,亦即人类的一种听觉选择能力。当人类把注意力集中在某一个人的谈话时,其可以忽略背景中其他的对话或噪音。

2. 用物理建模音频环境

如果环境声音渲染要更接近真实世界的声学,我们需要对传播声音的物理学模型进行建模,这被称为可听化(auralization)。行业已经提出并实施了多种用于声传播建模的方法,而它们在复杂性和准确性之间做出了各种平衡。当前VR系统的实时计算能力仍无法满足完美的建模(为每个声音传播事件求解声波方程),但借助AMD TrueAudio Next所带来的实时GPU计算功能,我们可以大幅度提升单凭CPU难以实现的可听化能力。一种可以在关键频段内为音频遮挡和音频反射显著提升逼真可听化的方法是:几何声学。

几何声学一开始的切入点是每个声源与听者耳朵位置之间的光线追踪路径(通常是采样子集),并将一组算法应用于追踪路径的数据集和路径反弹中遇到的材料属性,以生成每个声音,每个耳朵的独特脉冲响应。除了路径反射、扩散和遮挡之外,衍射效果(如有限边缘衍射)和HRTF滤波器也可以在这个框架内建模,并叠加到每个时变脉冲响应。在渲染过程中,随着声源和听者改变位置而不断更新的脉冲响应将与相应的音频源信号卷积。然后,这些信号将根据每个耳朵分别混合,以生成可听见的输出音频波形。这种方法具有可扩展性,并已通过AMD TrueAudio Next在CPU上实现。TrueAudio Next能够显著增强可被支持的物理建模声源的数量。应用程序可以通过“借用”小量的GPU计算单元子集(大约10%-15%)来扩展环境音源,而不是局限于一小部分的主要声音提示。当部署多个GPU或者APU和GPU的组合时,质量可以在更大的维度上进行扩展。

3. 通过TrueAudio Next和FireRays加速音频物理

几何声学渲染所需的两个主要算法是时变卷积(位于音频处理组件)和射线追踪(位于传播组件)。对于AMD的Radeon GPU,AMD的开源FireRays库可以加速光线追踪;而AMD的TrueAudio Next库可以加速时变实时卷积。

AMD TrueAudio Next库是一种高性能的,基于OpenCL的实时数学音频加速库,其特别注重于GPU计算加速。除了低延迟,时变卷积外,TrueAudio Next库同时还支持高效的FFT和Fast Hartley Transforms(FHT)。

TrueAudio Next支持x86 CPU和AMD Radeon GPU。

4. 综合所有

上文已经说明TrueAudio Next库是一个关键的解决方案,但我们仍需回答两个重要的问题:

  1. GPU计算着色器上是否可以支持这种技术,同时不会导致干扰图形渲染并导致抖动和/或关键帧速率丢失呢?

  2. 在VR游戏或高级电影渲染场景中,高性能GPU音频是否真的能够实现无杂讯,低延迟渲染呢?

虽然传统的观点告诉我们说,GPU上的音频渲染会导致不可接受的延迟,并干扰图形性能,但上述两个问题的答案是肯定的,而这指向了AMD TrueAudio Next的另一根重要支柱:基于异步计算的预留计算单元(Compute Unit Reservation)。

作为LiquidVR Time Warp和Direct-to-GPU渲染功能的关键组件,AMD的异步计算技术在VR渲染空间中已经是众所周知。在一个有效硬件调度程序的控制下,异步计算具备可变的执行优先级,允许多个队列的函数同时使用不同的CU集合,而不是说所有的图形着色函数都在单个队列中等待,以便在CU的整个数组中执行。

AMD的预留计算单元(Compute Unit Reservation)功能则进一步深化了这一思想:只要启用的应用程序需要,就可以划分和保留一组有限的CU,并且通过预留的实时队列访问。例如,在具有32个CU的GPU中,可以保留4个或8个CU为TrueAudio Next专用,其余的24个到28个CU则可用于图形。预留CU可完全在启用TrueAudio Next的应用程序,插件或引擎中执行(不是在启动时),当应用程序主动释放它们(CU)或退出时,CU将重获自由。另外,对于稍低优先级的内核,可以为预留的CU分配额外的“中等优先级”队列。在时变卷积的情况下,对于必须是低延迟,绝对无杂讯的音频数据通道,其可以使用实时队列;而稍不那么关键的脉冲响应更新则使用中等优先级队列。

预留计算单元(Compute Unit Reservation)提供了一系列支持音频与图形共存的关键优势:

  1. 在插件的指导和音频引擎供应商的建议下,预留CU的数量完全由游戏开发者自行决定。音频引擎在使用优秀分析工具来扩展可用CPU资源上具备丰富的经验。AMD TrueAudio Next只是增加了一个更高的维度:一个大型、可靠、可配置的私有沙箱。

  2. 避免措手不及。可以在游戏开发的早期阶段分配CU预留值。音设计频和图形设计可以独立进行,无需担心音频可能在无意中“偷走”任何图形计算资源。与运行通用OS的多核CPU相比,预留计算单元实际上提供了更紧密(但更大)的沙箱。

  3. 图形独立于音频,音频独立于图形。只有内存带宽为共享资源,而对于这一点,音频占用的比例远小于图形;DMA传输延迟则不足以形成影响。可以通过超过2秒的脉冲响应实现低至1.33毫秒(48kHz 64采样)的无杂讯卷积滤波器延迟,而典型的音频游戏引擎则需要5到21毫秒的总缓冲延迟。

预留计算单元是一个提供给NDA合作伙伴的驱动程序功能。另外,有无预留计算单元都可使用TrueAudio Next库。

AMD TrueAudio Next开源库和由驱动程序控制的预留计算单元将能为虚拟现实带来更高水平的音频渲染真实感。我们十分期待开发者利用它们所创造的作品。

注:最高的技术级别一般称为Fellow,级别上Fellow一般与VP平级。

本文链接https://news.nweon.com/39768
转载须知:转载摘编需注明来源映维网并保留本文链接
素材版权:除额外说明,文章所用图片、视频均来自文章关联个人、企业实体等提供
QQ交流群苹果Vision  |  Meta Quest  |  微软HoloLens  |  AR/VR开发者  |  映维粉丝读者
资讯