LE Audio üzerinden kafa hareketi izleme

Bluetooth (BT) Düşük Enerji (LE) ses özelliği, baş takibi (HT) verileri için Eşzamansız Bağlantı Odaklı Mantıksal (LE-ACL) ve Isochronous (LE-ISO) mantıksal aktarım mekanizmalarını sunar.

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, ses çerçevesi, ses HAL'i ve Bluetooth yığınının, ana makine ve kulaklık tarafından desteklenen LE-ACL veya LE-ISO aktarım mekanizmalarını keşfetmek ve seçmek için 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ğini, ses HAL gecikme modlarını ve uzamsallaştırıcı bağlantı modlarını kullanarak LE-ACL ve LE-ISO ulaşım mekanizmalarını destekler.

Sistem özelliği

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

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

Gecikme modları

BT LE Audio'da, BT yığınının ses HAL ve ses çerçevesine desteklenen gecikme modlarını belirten mekanizması, BT Classic (A2DP) için tanımlananla aynıdır. Ses HAL'i, desteklenen gecikme modlarını geçerli olarak 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 amacıyla 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 gösterilir) 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 gecikmeyi (ör. 100 ms'den az) gösterir. Bu mod, düşük gecikmenin desteklendiği ve HID'in ACL protokolü üzerinden aktarıldığı (HAL ile gösterilir) ya da HT etkin olduğu ve başka düşük gecikmeli mod olmadığı (çerçeve ile gösterilir) durumlarda 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, mekansallaştırıcı efekt motoruna (HAL ile gösterilir) tünellenemez.
    • HT etkinken ve ses çerçevesi, HID verilerini uzamsallaştırıcı efekt motoruna (çerçeveyle gösterilir) sağlarken ISO protokolü kullanılır.

    Bu modda, çerçevedeki HT bilgi işlem kitaplığı, IMU verilerindeki tüm ön işleme işlemlerini ve telefon sensörleri tarafından belirtilen telefon hareketleriyle uyumlulaştırma işlemlerini 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 aktarılır ve HID, mekansalleştirici efekt motoruna (HAL ile belirtilir) tünelle geçirilebilir.
    • HT etkinken ve HID verileri, mekansallaştırıcı efekt motoruna (çerçeveyle gösterilir) tünellenirken 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. Mekansallaştırıcı efekt uygulaması, IMU verilerindeki tüm ön işleme işlemlerini ve telefon sensörleri tarafından belirtilen telefon hareketleriyle uyumlulaştırma işlemini gerçekleştirir.

Gecikme modu sıralamaları, Spatializer.cpp bölgesindeki bluetooth.core.le.dsa_transport_preference sistem özelliğiyle eşlenir.

Mekansallaştırıcı desteği

Ses politikası hizmetindeki uzayıcı denetleyicisi, LE Audio üzerinden HT aktarım protokolünün seçimini kontrol eder. Mekansallaştırıcı efekt motoru uygulaması, HeadTracking.ConnectionMode özelliğiyle HT veri tünelleme desteğini gösterir.

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

  • FRAMEWORK_PROCESSED: Ses çerçevesi, HAL'e baştan sona vektör biçiminde önceden işlenmiş IMU verileri sağlar. Bu varsayılan mod, BT classic'teki mevcut moda karşılık gelir.
  • DIRECT_TO_SENSOR_SW: Mekansallaştırma efekti motoru, sensör yazılımı paketi 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şlemesini veya DSP dışarıda yüklenen mekansalleştirici uygulamalarını kullanmayan yazılım uygulamaları da DIRECT_TO_SENSOR_SW modunu kullanabilir.
  • DIRECT_TO_SENSOR_TUNNEL: Mekansallaştırıcı efekt motoru, donanım tünelleme aracılığıyla doğrudan sensöre bağlanır. Ses çerçevesi yalnızca sensörün etkin durumunu kontrol eder. DSP'den aktarılan 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, geçerli HT etkinleştirme durumuna, geçerli uzamsallaştırıcı desteğine ve tedarikçi firma tarafından belirtilen sistem özelliğine göre ayarlanır. Bu özellik, aktarım mekanizmaları arasında öncelik sırası belirler.

Çerçeve, gecikme modunu seçmek için selectHeadtrackingConnectionMode_l içinde aşağıdaki işlemi kullanır:

  1. Çerçeve, aktarım tercihini bluetooth.core.le.dsa_transport_preference sistem mülkünden yükler.
  2. Ses HAL'i 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 konumlandırıcı uygulaması doğrudan sensör bağlantısını desteklemiyorsa (DIRECT_TO_SENSOR_SW veya DIRECT_TO_SENSOR_TUNNEL konum belirleyicide ayarlanmadıysa) bir sonraki tercih edilen mod (iso-sw veya le-acl) gecikme modunu belirler (DYNAMIC_SPATIAL_AUDIO_SOFTWARE veya LOW).

    Tercih edilen bir sonraki mod belirtilmezse sistem bir ürün yapılandırma hatası bildirir.