通过 LE 音频进行头部追踪

蓝牙 (BT) 低功耗 (LE) 音频引入了适用于头部追踪 (HT) 数据的异步面向连接的逻辑 (LE-ACL) 和等时 (LE-ISO) 逻辑传输机制。

Android 15 支持根据使用的是 LE-ACL 还是 LE-ISO 传输机制来调整 HT 的延迟模式。

本页面介绍了音频框架、音频 HAL 和蓝牙堆栈如何相互交互,以发现并选择主机和耳机支持的 LE-ACL 或 LE-ISO 传输机制。

支持 LE-ACL 和 LE-ISO

Android 15 通过使用供应商定义的系统属性、音频 HAL 延迟模式空间化程序连接模式,支持 LE-ACL 和 LE-ISO 传输机制。

系统属性

手机供应商实现在 bluetooth.core.le.dsa_transport_preference 系统属性中列出了支持的传输机制。该值是一个逗号分隔的字符串列表,按优先顺序列出了支持的传输方式

  • le-acl:LE-ACL 传输,当通过传感器堆栈报告惯性测量装置 (IMU) 数据时。
  • iso-hw:ISO 传输,能够将 HT 数据直接从蓝牙控制器隧道式传输到音频 DSP 中的空间化程序。
  • iso-sw:不具备隧道功能的 ISO 传输,当通过传感器堆栈报告 IMU 数据时。

延迟模式

对于 BT LE 音频,BT 堆栈向音频 HAL 和音频框架指明支持的延迟模式的机制与为传统 BT (A2DP) 定义的机制相同。音频 HAL 会根据当前选择的音频设备报告支持的延迟模式。

A2DP 实现仅支持 FREELOW_LATENCY 模式。

相比之下,对于 BT LE 音频,音频 HAL 中定义了以下延迟模式,以支持添加 LE-ACL 和 LE-ISO 传输机制:

  • FREE:此值表示对于延迟时间,没有特定的限制。当不支持低延迟时间(由 HAL 指示)或 HT 处于非活动状态(由框架指示)时,使用此模式。

  • LOW:此值表示与 HT 操作兼容的相对较低的延迟时间(例如,小于 100 毫秒)。当支持低延迟时间且 HID 通过 ACL 协议传输(由 HAL 指示)时,或当 HT 处于活动状态且没有其他低延迟模式可用(由框架指示)时,使用此模式。

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE:当满足以下任一条件时,系统会使用此模式:

    • 如果支持低延迟时间,HID 会通过 ISO 协议传输,并且 HID 无法隧道式传输到空间化程序效果引擎(由 HAL 指示)。
    • 当音频框架向空间化程序效果引擎提供 HID 数据时,HT 处于活动状态且使用 ISO 协议(由框架指示)。

    在此模式下,框架中的 HT 计算库会对 IMU 数据执行所有预处理,并与手机传感器指示的手机移动情况进行协调。

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE:当满足以下条件之一时,系统会使用此模式:

    • 如果支持低延迟时间,HID 会通过 ISO 协议传输,并且 HID 可以隧道式传输到空间化程序效果引擎(由 HAL 指示)。
    • 当 HT 处于活动状态且使用 ISO 协议时,HID 数据会被隧道式传输到空间化程序效果引擎(由框架指示)。

    在此模式下,空间化程序效果引擎会直接从 BT 堆栈或 BT 控制器接收未处理的 IMU 数据。空间化程序效果实现会对 IMU 数据执行所有预处理,并与手机传感器指示的手机移动情况进行协调。

延迟模式枚举会映射到 Spatializer.cpp 中的 bluetooth.core.le.dsa_transport_preference 系统属性。

空间化程序支持

音频政策服务中的空间化程序控制器用于控制通过 LE 音频选择 HT 传输协议。空间化程序效果引擎实现表明其支持具有 HeadTracking.ConnectionMode 功能的 HT 数据隧道。

支持的 HT 连接模式如下:

  • FRAMEWORK_PROCESSED:音频框架采用头部到舞台矢量格式,向 HAL 提供经过预处理的 IMU 数据。此默认模式与使用传统蓝牙的当前模式相对应。
  • DIRECT_TO_SENSOR_SW:空间化程序效果引擎通过传感器软件堆栈直接连接到传感器。音频框架仅控制传感器的启用状态。不使用 AOSP libheadtracking IMU 数据预处理或 DSP 分流空间化程序实现的软件实现可以使用 DIRECT_TO_SENSOR_SW 模式。
  • DIRECT_TO_SENSOR_TUNNEL:空间化程序效果引擎通过硬件隧道直接连接到传感器。音频框架仅控制传感器的启用状态。DSP 分流的空间化程序实现可以使用 DIRECT_TO_SENSOR_TUNNEL 模式。

延迟模式选择

该框架从 HAL 报告的所支持的延迟模式列表中选择延迟模式。延迟模式的设置是基于当前的 HT 启用状态、当前的空间化程序支持以及供应商指定的系统属性(用于在传输机制之间建立优先级顺序)。

该框架在 selectHeadtrackingConnectionMode_l 中使用以下流程来选择延迟模式:

  1. 该框架从 bluetooth.core.le.dsa_transport_preference 系统属性加载传输优先级。
  2. 系统根据第 1 步中加载的列表过滤音频 HAL 报告的所支持的延迟模式,并对其进行排序。
  3. 如果最高优先级的低延迟模式为 iso-hw,并且空间化程序实现支持直接传感器连接(即在空间化程序中设置了 DIRECT_TO_SENSOR_SWDIRECT_TO_SENSOR_TUNNEL),则延迟模式设置为 DYNAMIC_SPATIAL_AUDIO_HARDWARE
  4. 如果最高优先级的低延迟模式为 iso-hw,并且空间化程序实现不支持直接传感器连接(未在空间化程序中设置 DIRECT_TO_SENSOR_SWDIRECT_TO_SENSOR_TUNNEL),则下一个首选模式(iso-swle-acl)将决定延迟模式(DYNAMIC_SPATIAL_AUDIO_SOFTWARELOW)。

    如果未指定下一个首选模式,系统会报告产品配置错误。