Отслеживание головы через звук LE

Технология Bluetooth (BT) с низким энергопотреблением (LE) представляет асинхронные логические механизмы передачи данных с ориентацией на соединение (LE-ACL) и изохронные (LE-ISO) логические механизмы передачи данных для отслеживания положения головы (HT).

Android 15 обеспечивает поддержку корректировки режима задержки для HT в зависимости от того, используется ли транспортный механизм LE-ACL или LE-ISO.

На этой странице описывается, как взаимодействуют звуковая структура, звуковой HAL и стек Bluetooth для обнаружения и выбора транспортных механизмов LE-ACL или LE-ISO, поддерживаемых хостом и гарнитурой.

Поддержка LE-ACL и LE-ISO

Android 15 включает поддержку транспортных механизмов LE-ACL и LE-ISO с использованием системного свойства , определяемого поставщиком, режимов задержки звука HAL и режимов подключения пространственных преобразователей .

Системное свойство

Реализация поставщика телефона перечисляет поддерживаемые транспортные механизмы в системном свойстве bluetooth.core.le.dsa_transport_preference . Значение представляет собой список строк, разделенных запятыми, в котором поддерживаемые транспорты перечислены в порядке предпочтения:

  • le-acl : транспорт LE-ACL, когда данные инерциального измерительного блока (IMU) передаются через стек датчиков.
  • iso-hw : транспорт ISO с возможностью туннелирования данных HT напрямую от контроллера Bluetooth к пространственному преобразователю в аудио DSP.
  • iso-sw : транспорт ISO без возможности туннелирования, когда данные IMU передаются через стек датчиков.

Режимы задержки

В случае аудио BT LE механизм для стека BT, указывающий поддерживаемые режимы задержки для аудио HAL и аудио фреймворка, такой же, как и определенный для BT Classic (A2DP). Аудио HAL сообщает поддерживаемые режимы задержки в соответствии с выбранным в данный момент аудиоустройством.

Реализации A2DP поддерживают только режимы FREE и LOW_LATENCY .

Напротив, для звука BT LE в аудио HAL определены следующие режимы задержки для поддержки добавления транспортных механизмов LE-ACL и LE-ISO:

  • FREE : Это значение указывает на отсутствие определенных ограничений на задержку. Этот режим используется, когда низкая задержка не поддерживается (указывается HAL) или когда HT не активен (указывается фреймворком).

  • LOW : Это значение указывает на относительно низкую задержку (например, менее 100 мс), совместимую с работой HT. Этот режим используется, когда поддерживается низкая задержка и HID передается по протоколу ACL (указывается HAL), или когда HT активен и другие режимы с низкой задержкой недоступны (указывается фреймворком).

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE : этот режим используется при выполнении одного из следующих условий:

    • Если поддерживается низкая задержка, HID передается по протоколу ISO, и HID не может быть туннелирован к движку эффекта пространственного преобразователя (обозначен как HAL).
    • Когда HT активен и используется протокол ISO, аудиофреймворк предоставляет данные HID движку эффектов пространственного преобразователя (указывается фреймворком).

    В этом режиме вычислительная библиотека HT в фреймворке выполняет всю предварительную обработку данных IMU и сверку с движениями телефона, зафиксированными его датчиками.

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE : этот режим используется при выполнении одного из следующих условий:

    • Если поддерживается низкая задержка, HID передается по протоколу ISO, и HID может быть туннелирован к движку эффекта пространственного преобразователя (обозначен как HAL).
    • При активном HT и использовании протокола ISO данные HID туннелируются в механизм эффекта пространственного преобразователя (указанный фреймворком).

    В этом режиме механизм эффекта пространственного локатора получает необработанные данные IMU напрямую из стека BT или контроллера BT. Реализация эффекта пространственного локатора выполняет всю предварительную обработку данных IMU и согласование с движениями телефона, указанными датчиками телефона.

Перечисления режимов задержки сопоставляются с системным свойством bluetooth.core.le.dsa_transport_preference в Spatializer.cpp .

Поддержка Spatializer

Контроллер spacelizer в службе политики звука управляет выбором транспортного протокола HT по аудио LE. Реализация механизма эффектов spacelizer указывает на поддержку туннелирования данных HT с возможностью HeadTracking.ConnectionMode .

Поддерживаются следующие режимы HT-подключения:

  • FRAMEWORK_PROCESSED : Аудиофреймворк предоставляет предварительно обработанные данные IMU в векторном формате head-to-stage для HAL. Этот режим по умолчанию соответствует текущему режиму с BT classic.
  • DIRECT_TO_SENSOR_SW : Эффектный движок пространственного преобразователя напрямую подключается к датчику через программный стек датчика. Аудиофреймворк управляет только включенным состоянием датчика. Реализации программного обеспечения, которые не используют предварительную обработку данных IMU AOSP libheadtracking или реализации пространственного преобразователя с разгрузкой 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. Поддерживаемые режимы задержки, сообщаемые аудио HAL, фильтруются и упорядочиваются по списку, загруженному на шаге 1.
  3. Если режим с наивысшим приоритетом и низкой задержкой — iso-hw , а реализация спейсилайзера поддерживает прямое подключение датчика (то есть в спейсилайзере заданы DIRECT_TO_SENSOR_SW или DIRECT_TO_SENSOR_TUNNEL ), режим задержки устанавливается на DYNAMIC_SPATIAL_AUDIO_HARDWARE .
  4. Если режим с наивысшим приоритетом и низкой задержкой — iso-hw , а реализация спейситализатора не поддерживает прямое подключение датчика (в спейситализаторе не установлены DIRECT_TO_SENSOR_SW или DIRECT_TO_SENSOR_TUNNEL ), следующий предпочтительный режим ( iso-sw или le-acl ) определяет режим задержки ( DYNAMIC_SPATIAL_AUDIO_SOFTWARE или LOW ).

    Если следующий предпочтительный режим не указан, система сообщает об ошибке конфигурации продукта.