LE Audio üzerinden baş takibi

Bluetooth (BT) Düşük Enerji (LE) ses, baş takibi (HT) verileri için Asenkron Bağlantı Odaklı Mantıksal (LE-ACL) ve Eşzamanlı (LE-ISO) mantıksal aktarım mekanizmalarını kullanır.

Android 15, LE-ACL veya LE-ISO aktarım mekanizmasının kullanılıp kullanılmadığına bağlı olarak HT için gecikme modu ayarlamalarına destek sağlar.

Bu sayfada, ana makine ve kulaklık tarafından desteklenen LE-ACL veya LE-ISO aktarım mekanizmalarını keşfetmek ve seçmek için ses çerçevesi, ses HAL'si ve Bluetooth yığınının nasıl etkileşimde bulunduğu açıklanmaktadır.

LE-ACL ve LE-ISO desteği

Android 15, satıcı tarafından tanımlanan sistem özelliği, ses HAL gecikme modları ve spatializer bağlantı modları kullanılarak LE-ACL ve LE-ISO aktarım mekanizmalarına destek içerir.

Sistem özelliği

Telefon tedarikçisi uygulaması, desteklenen aktarım mekanizmalarını bluetooth.core.le.dsa_transport_preference sistem özelliğinde listeler. Değer, tercih sırasına göre desteklenen aktarımları listeleyen, virgülle ayrılmış bir dizeler listesidir:

  • le-acl: Atalet ölçüm birimi (IMU) verileri sensör yığını aracılığıyla bildirildiğinde LE-ACL aktarımı.
  • iso-hw: HT verilerini doğrudan Bluetooth denetleyicisinden ses DSP'sindeki uzamsallaştırıcıya tünelleyebilme özelliğine sahip ISO aktarımı.
  • iso-sw: IMU verileri sensör yığını aracılığıyla bildirildiğinde tünel oluşturma özelliği olmadan ISO aktarımı.

Gecikme modları

BT LE sesinde, BT yığınının desteklenen gecikme modlarını ses HAL'ına ve ses çerçevesine belirtme mekanizması, BT Classic (A2DP) için tanımlananla aynıdır. Ses HAL'ı, desteklenen gecikme modlarını şu anda seçili ses cihazına göre bildirir.

A2DP uygulamaları yalnızca FREE ve LOW_LATENCY modlarını destekler.

Buna karşılık, BT LE ses için LE-ACL ve LE-ISO aktarım mekanizmalarının eklenmesini desteklemek üzere ses HAL'inde aşağıdaki gecikme modları tanımlanır:

  • FREE: Bu değer, gecikmeyle ilgili belirli bir kısıtlama olmadığını gösterir. Bu mod, düşük gecikme desteklenmediğinde (HAL tarafından belirtilir) veya HT etkin olmadığında (çerçeve tarafından belirtilir) kullanılır.

  • LOW: Bu değer, HT işlemiyle uyumlu olan nispeten düşük bir gecikme süresini (ör. 100 ms'den az) gösterir. Bu mod, düşük gecikme desteklendiğinde ve HID, ACL protokolü üzerinden iletildiğinde (HAL tarafından belirtilir) veya HT etkin olduğunda ve başka düşük gecikme modu bulunmadığında (çerçeve tarafından belirtilir) kullanılır.

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE: Bu mod, aşağıdaki koşullardan biri karşılandığında kullanılır:

    • Düşük gecikme desteklendiğinde HID, ISO protokolü üzerinden iletilir ve HID, HAL tarafından belirtildiği gibi, uzamsallaştırıcı efekt motoruna tünellenemez.
    • HT etkin olduğunda ve ses çerçevesi, HID verilerini uzamsallaştırma efekt motoruna sağlarken ISO protokolü kullanıldığında (çerçeve tarafından belirtilir).

    Bu modda, çerçevedeki HT bilgi işlem kitaplığı, IMU verilerinde tüm ön işlemleri ve telefon sensörlerinin belirttiği telefon hareketleriyle mutabakatı yapar.

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE: Bu mod, aşağıdaki koşullardan biri karşılandığında kullanılır:

    • Düşük gecikme desteklendiğinde HID, ISO protokolü üzerinden iletilir ve HID, HAL tarafından belirtilen uzamsallaştırıcı efekt motoruna tünellenebilir.
    • HT etkin olduğunda ve HID verileri, uzamsallaştırıcı efekt motoruna (çerçeve tarafından belirtilir) tünellendiğinde ISO protokolü kullanılır.

    Bu modda, uzamsallaştırıcı efekt motoru işlenmemiş IMU verilerini doğrudan BT yığınından veya BT denetleyicisinden alır. Uzamsallaştırıcı efekt uygulaması, IMU verilerinde tüm ön işlemleri ve telefon sensörleri tarafından belirtilen telefon hareketleriyle mutabakatı gerçekleştirir.

Gecikme modu numaralandırmaları, Spatializer.cpp içindeki bluetooth.core.le.dsa_transport_preference sistem özelliğiyle eşlenir.

Spatializer desteği

Ses politikası hizmetindeki spatializer denetleyicisi, LE ses üzerinden HT aktarım protokolünün seçimini kontrol eder. Uzamsallaştırıcı efekt motoru uygulaması, HeadTracking.ConnectionMode özelliğiyle HT veri tüneli oluşturma desteğini gösterir.

Desteklenen HT bağlantı modları şunlardır:

  • FRAMEWORK_PROCESSED: Ses çerçevesi, HAL'ye önceden işlenmiş IMU verilerini baş-sahne vektörü biçiminde sağlar. Bu varsayılan mod, klasik Bluetooth ile mevcut moda karşılık gelir.
  • DIRECT_TO_SENSOR_SW: Spatializer efekt motoru, sensör yazılım yığını aracılığıyla doğrudan sensöre bağlanır. Ses çerçevesi yalnızca sensörün etkin durumunu kontrol eder. AOSP libheadtracking IMU veri ön işleme veya DSP'nin yükünü boşaltan uzamsallaştırıcı uygulamalarını kullanmayan yazılım uygulamaları DIRECT_TO_SENSOR_SW modunu kullanabilir.
  • DIRECT_TO_SENSOR_TUNNEL: Uzamsallaştırıcı efekt motoru, donanım tüneli aracılığıyla doğrudan sensöre bağlanır. Ses çerçevesi yalnızca sensörün etkin durumunu kontrol eder. DSP'ye yüklenen uzamsallaştırıcı uygulamaları DIRECT_TO_SENSOR_TUNNEL modunu kullanabilir.

Gecikme modu seçimi

Çerçeve, HAL tarafından bildirilen desteklenen gecikme modları listesinden bir gecikme modu seçer. Gecikme modu, mevcut HT etkinleştirme durumuna, mevcut spatializer desteğine ve taşıma mekanizmaları arasında öncelik sırası oluşturan, satıcı tarafından belirtilen sistem özelliğine göre ayarlanır.

Çerçeve, gecikme modunu seçmek için selectHeadtrackingConnectionMode_l'de aşağıdaki süreci kullanır:

  1. Çerçeve, aktarım tercihini bluetooth.core.le.dsa_transport_preference sistem özelliğinden yükler.
  2. Ses HAL'si tarafından bildirilen desteklenen gecikme modları, 1. adımda yüklenen listeye göre filtrelenir ve sıralanır.
  3. En yüksek öncelikli düşük gecikme modu iso-hw ise ve uzamsallaştırıcı uygulaması doğrudan sensör bağlantısını destekliyorsa (yani uzamsallaştırıcıda DIRECT_TO_SENSOR_SW veya DIRECT_TO_SENSOR_TUNNEL ayarlanmışsa) gecikme modu DYNAMIC_SPATIAL_AUDIO_HARDWARE olarak ayarlanır.
  4. En yüksek öncelikli düşük gecikme modu iso-hw ise ve uzamsallaştırıcı uygulaması doğrudan sensör bağlantısını desteklemiyorsa (uzamsallaştırıcıda DIRECT_TO_SENSOR_SW veya DIRECT_TO_SENSOR_TUNNEL ayarlanmamışsa) bir sonraki tercih edilen mod (iso-sw veya le-acl) gecikme modunu (DYNAMIC_SPATIAL_AUDIO_SOFTWARE veya LOW) belirler.

    Sonraki tercih edilen mod belirtilmezse sistem bir ürün yapılandırma hatası bildirir.