透過 LE 音訊進行頭部追蹤

藍牙 (BT) 低功耗 (LE) 音訊引進非同步連線導向邏輯 (LE-ACL) 和等時 (LE-ISO) 邏輯傳輸機制,用於頭部追蹤 (HT) 資料。

Android 15 支援 HT 的延遲模式調整,這取決於是否使用 LE-ACL 或 LE-ISO 傳輸機制。

本頁說明音訊架構、音訊 HAL 和藍牙堆疊如何互動,以探索及選取主機和耳機支援的 LE-ACL 或 LE-ISO 傳輸機制。

支援 LE-ACL 和 LE-ISO

Android 15 支援 LE-ACL 和 LE-ISO 傳輸機制,方法是使用供應商定義的系統屬性、音訊 HAL 延遲模式空間化器連線模式

系統屬性

手機供應商實作項目會在 bluetooth.core.le.dsa_transport_preference 系統屬性中列出支援的傳輸機制。這個值是逗號分隔的字串清單,列出支援的傳輸方式,並依偏好順序排列:

  • le-acl:當慣性測量單元 (IMU) 資料透過感應器堆疊回報時,使用 LE-ACL 傳輸。
  • iso-hw:ISO 傳輸功能,可將 HT 資料直接從藍牙控制器傳送到音訊 DSP 中的空間化器。
  • iso-sw:當 IMU 資料透過感應器堆疊回報時,沒有隧道功能的 ISO 傳輸。

延遲模式

在 BT LE 音訊的情況下,BT 堆疊向音訊 HAL 和音訊架構指出支援的延遲模式的機制,與為 BT Classic (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 指出)。
    • 當 HT 處於啟用狀態,且音訊架構在提供 HID 資料給空間化效果引擎時使用 ISO 通訊協定 (由架構指出)。

    在這個模式中,架構中的 HT 運算程式庫會對 IMU 資料執行所有預先處理作業,並與手機感應器指示的手機動作進行調和。

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE:在符合下列任一條件時,系統會使用這個模式:

    • 支援低延遲時,HID 會透過 ISO 通訊協定傳送,且可將 HID 轉送至空間化效果引擎 (由 HAL 指出)。
    • 當 HT 處於活動狀態,且在將 HID 資料傳送至空間化效果引擎時使用 ISO 通訊協定 (由架構指出)。

    在這個模式中,空間化效果引擎會直接從 BT 堆疊或 BT 控制器接收未經處理的 IMU 資料。空間化效果實作會對 IMU 資料進行所有預先處理作業,並與手機感應器所指示的手機動作進行調和。

延遲模式列舉會對應至 Spatializer.cpp 中的 bluetooth.core.le.dsa_transport_preference 系統屬性。

支援空間化器

音訊政策服務中的 spatializer 控制器會控管是否要選用 LE 音訊的 HT 傳輸通訊協定。空間化效果引擎實作功能表示支援使用 HeadTracking.ConnectionMode 功能的 HT 資料通道。

支援的 HT 連線模式如下:

  • FRAMEWORK_PROCESSED:音訊架構會以頭對頭向量格式,將經過預處理的 IMU 資料提供給 HAL。這個預設模式與 BT 傳統模式的目前模式相對應。
  • DIRECT_TO_SENSOR_SW:空間化效果引擎會透過感應器軟體堆疊直接連線至感應器。音訊架構只會控制感應器的啟用狀態。不使用 AOSP libheadtracking IMU 資料預先處理或 DSP 卸載空間化器的軟體實作項目,可以使用 DIRECT_TO_SENSOR_SW 模式。
  • DIRECT_TO_SENSOR_TUNNEL:空間化效果引擎會透過硬體通道直接連線至感應器。音訊架構只會控制感應器的啟用狀態。DSP 卸載的空間化器實作可使用 DIRECT_TO_SENSOR_TUNNEL 模式。

延遲模式選項

該架構會從 HAL 回報的支援延遲模式清單中選取延遲模式。系統會根據目前的 HT 啟用狀態、目前的 spatializer 支援,以及供應商指定的系統屬性 (用於在傳輸機制之間建立優先順序),設定延遲模式

架構會在 selectHeadtrackingConnectionMode_l 中使用下列程序選取延遲模式:

  1. 架構會從 bluetooth.core.le.dsa_transport_preference 系統屬性載入傳輸偏好設定。
  2. 系統會篩選音訊 HAL 回報的支援延遲模式,並根據步驟 1 載入的清單排序。
  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)。

    如果未指定下一個偏好模式,系統會回報產品設定錯誤。