Отслеживание головы через звук 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 .

Поддержка пространственного преобразователя

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

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

  • FRAMEWORK_PROCESSED : звуковая платформа предоставляет предварительно обработанные данные IMU в векторном формате от головы до сцены в 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 ).

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