Audio Bluetooth (BT) Hemat Energi (LE) memperkenalkan mekanisme transportasi logis Asynchronous Connection-oriented Logical (LE-ACL) dan Isochronous (LE-ISO) untuk data pelacakan kepala (HT).
Android 15 menyediakan dukungan untuk penyesuaian mode latensi untuk HT berdasarkan apakah mekanisme transportasi LE-ACL atau LE-ISO digunakan.
Halaman ini menjelaskan cara framework audio, HAL audio, dan stack Bluetooth berinteraksi untuk menemukan dan memilih mekanisme transportasi LE-ACL atau LE-ISO yang didukung oleh host dan headset.
Dukungan untuk LE-ACL dan LE-ISO
Android 15 menyertakan dukungan untuk mekanisme transportasi LE-ACL dan LE-ISO dengan menggunakan properti sistem yang ditentukan vendor, mode latensi HAL audio, dan mode koneksi spatializer.
Properti sistem
Implementasi vendor ponsel mencantumkan mekanisme transportasi yang didukung dalam properti sistem
bluetooth.core.le.dsa_transport_preference
. Nilainya adalah daftar string yang dipisahkan koma,
yang mencantumkan transport yang didukung dalam urutan preferensi:
le-acl
: Transportasi LE-ACL, saat data unit pengukuran inersia (IMU) dilaporkan melalui stack sensor.iso-hw
: Transportasi ISO dengan kemampuan untuk membuat tunnel data HT langsung dari pengontrol Bluetooth ke spatializer di DSP audio.iso-sw
: Transportasi ISO tanpa kemampuan tunneling, saat data IMU dilaporkan melalui stack sensor.
Mode latensi
Dalam kasus audio BT LE, mekanisme bagi stack BT untuk menunjukkan mode latensi yang didukung ke HAL audio dan framework audio sama dengan yang ditentukan untuk BT Classic (A2DP). HAL audio melaporkan mode latensi yang didukung sesuai dengan perangkat audio yang dipilih saat ini.
Implementasi A2DP hanya mendukung mode FREE
dan LOW_LATENCY
.
Sebaliknya, untuk audio BT LE, mode latensi berikut ditentukan di HAL audio untuk mendukung penambahan mekanisme transport LE-ACL dan LE-ISO:
FREE
: Nilai ini menunjukkan bahwa tidak ada batasan khusus pada latensi. Mode ini digunakan saat latensi rendah tidak didukung (ditunjukkan oleh HAL), atau saat HT tidak aktif (ditunjukkan oleh framework).LOW
: Nilai ini menunjukkan latensi yang relatif rendah (seperti, kurang dari 100 md) yang kompatibel dengan operasi HT. Mode ini digunakan saat latensi rendah didukung dan HID dikirimkan melalui protokol ACL (ditunjukkan oleh HAL), atau saat HT aktif dan tidak ada mode latensi rendah lainnya yang tersedia (ditunjukkan oleh framework).DYNAMIC_SPATIAL_AUDIO_SOFTWARE
: Mode ini digunakan saat salah satu kondisi berikut terpenuhi:- Jika latensi rendah didukung, HID akan dikirimkan melalui protokol ISO, dan HID tidak dapat di-tunnel ke mesin efek spatializer (ditunjukkan oleh HAL).
- Saat HT aktif dan protokol ISO digunakan saat framework audio memberikan data HID ke mesin efek spatializer (ditunjukkan oleh framework).
Dalam mode ini, library komputasi HT di framework melakukan semua pra-pemrosesan pada data IMU dan rekonsiliasi dengan gerakan ponsel yang ditunjukkan oleh sensor ponsel.
DYNAMIC_SPATIAL_AUDIO_HARDWARE
: Mode ini digunakan saat salah satu kondisi berikut terpenuhi:- Jika latensi rendah didukung, HID akan dikirimkan melalui protokol ISO, dan HID dapat di-tunnel ke mesin efek spatializer (ditunjukkan oleh HAL).
- Saat HT aktif dan protokol ISO digunakan saat data HID di-tunnel ke mesin efek spatializer (ditunjukkan oleh framework).
Dalam mode ini, mesin efek spatializer menerima data IMU yang tidak diproses langsung dari stack BT atau pengontrol BT. Implementasi efek spatializer melakukan semua pra-pemrosesan pada data IMU dan rekonsiliasi dengan gerakan ponsel yang ditunjukkan oleh sensor ponsel.
Enum mode latensi dipetakan ke properti sistem bluetooth.core.le.dsa_transport_preference
di Spatializer.cpp
.
Dukungan spatializer
Pengontrol spatializer
di layanan kebijakan audio mengontrol pemilihan protokol transportasi HT
melalui audio LE. Implementasi mesin efek spatializer menunjukkan dukungan untuk tunneling data HT dengan kemampuan HeadTracking.ConnectionMode
.
Mode koneksi HT yang didukung adalah sebagai berikut:
FRAMEWORK_PROCESSED
: Framework audio menyediakan data IMU yang telah diproses sebelumnya dalam format vektor head-to-stage ke HAL. Mode default ini sesuai dengan mode saat ini dengan BT klasik.DIRECT_TO_SENSOR_SW
: Mesin efek spatializer terhubung langsung ke sensor melalui stack software sensor. Framework audio hanya mengontrol status aktif sensor. Implementasi software yang tidak menggunakan praproses data IMUlibheadtracking
AOSP atau implementasi spatializer yang di-offload DSP dapat menggunakan modeDIRECT_TO_SENSOR_SW
.DIRECT_TO_SENSOR_TUNNEL
: Mesin efek spatializer terhubung langsung ke sensor melalui tunneling hardware. Framework audio hanya mengontrol status aktif sensor. Implementasi spatializer yang di-offload DSP dapat menggunakan modeDIRECT_TO_SENSOR_TUNNEL
.
Pemilihan mode latensi
Framework memilih mode latensi dari daftar mode latensi yang didukung yang dilaporkan oleh HAL. Mode latensi ditetapkan berdasarkan status aktif HT saat ini, dukungan spatializer saat ini, dan properti sistem yang ditentukan vendor yang menetapkan urutan prioritas antara mekanisme transportasi.
Framework ini menggunakan proses berikut di selectHeadtrackingConnectionMode_l
untuk memilih mode latensi:
- Framework memuat preferensi transportasi dari
bluetooth.core.le.dsa_transport_preference
properti sistem. - Mode latensi yang didukung yang dilaporkan oleh HAL audio difilter dan diurutkan berdasarkan daftar yang dimuat di langkah 1.
- Jika mode latensi rendah prioritas tertinggi adalah
iso-hw
dan implementasi spatializer mendukung koneksi sensor langsung (yaitu,DIRECT_TO_SENSOR_SW
atauDIRECT_TO_SENSOR_TUNNEL
ditetapkan di spatializer), mode latensi akan ditetapkan keDYNAMIC_SPATIAL_AUDIO_HARDWARE
. Jika mode latensi rendah prioritas tertinggi adalah
iso-hw
dan implementasi spatializer tidak mendukung koneksi sensor langsung (DIRECT_TO_SENSOR_SW
atauDIRECT_TO_SENSOR_TUNNEL
tidak ditetapkan di spatializer), mode pilihan berikutnya (yaituiso-sw
ataule-acl
) akan menentukan mode latensi (yaituDYNAMIC_SPATIAL_AUDIO_SOFTWARE
atauLOW
).Jika mode pilihan berikutnya tidak ditentukan, sistem akan melaporkan error konfigurasi produk.