Audio Hemat Energi (LE) Bluetooth (BT) memperkenalkan mekanisme transpor logis yang Berorientasi pada Koneksi Asinkron (LE-ACL) dan Isokron (LE-ISO) untuk data pelacakan kepala (HT).
Android 15 menyediakan dukungan untuk penyesuaian mode latensi untuk HT berdasarkan apakah mekanisme transpor LE-ACL atau LE-ISO digunakan.
Halaman ini menjelaskan cara framework audio, HAL audio, dan stack Bluetooth berinteraksi untuk menemukan dan memilih mekanisme transpor LE-ACL atau LE-ISO yang didukung oleh host dan headset.
Dukungan untuk LE-ACL dan LE-ISO
Android 15 menyertakan dukungan untuk mekanisme transpor LE-ACL dan LE-ISO menggunakan properti sistem yang ditentukan vendor, mode latensi audio HAL, dan mode koneksi spasial.
Properti sistem
Implementasi vendor ponsel mencantumkan mekanisme transpor yang didukung di
properti sistem bluetooth.core.le.dsa_transport_preference
. Nilainya adalah daftar string yang dipisahkan koma,
yang mencantumkan transpor yang didukung dalam urutan preferensi:
le-acl
: Transpor LE-ACL, saat data unit pengukuran inersia (IMU) dilaporkan melalui stack sensor.iso-hw
: Transpor ISO dengan kemampuan untuk melakukan tunnel data HT langsung dari pengontrol Bluetooth ke spatializer di DSP audio.iso-sw
: Transpor ISO tanpa kemampuan tunneling, saat data IMU dilaporkan melalui stack sensor.
Mode latensi
Dalam kasus audio BT LE, mekanisme untuk stack BT guna 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 saat ini dipilih.
Implementasi A2DP hanya mendukung mode FREE
dan LOW_LATENCY
.
Sebaliknya, untuk audio BT LE, mode latensi berikut ditentukan dalam HAL audio untuk mendukung penambahan mekanisme transpor 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 disampaikan 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 jika salah satu kondisi berikut terpenuhi:- Jika latensi rendah didukung, HID akan disampaikan 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 menyediakan data HID ke mesin efek spatializer (ditunjukkan oleh framework).
Dalam mode ini, library komputasi HT dalam 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 jika salah satu kondisi berikut terpenuhi:- Jika latensi rendah didukung, HID akan disampaikan 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 belum 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 transpor
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 sensor yang diaktifkan. Implementasi software yang tidak menggunakan prapemrosesan data IMUlibheadtracking
AOSP atau implementasi spatializer DSP yang di-offload 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 sensor yang diaktifkan. 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 pengaktifan HT saat ini, dukungan spatializer saat ini, dan properti sistem yang ditentukan vendor yang menetapkan urutan prioritas di antara mekanisme transpor.
Framework ini menggunakan proses berikut di selectHeadtrackingConnectionMode_l
untuk memilih mode latensi:
- Framework memuat preferensi transpor dari
properti sistem
bluetooth.core.le.dsa_transport_preference
. - Mode latensi yang didukung dan 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 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 (yang adalahDYNAMIC_SPATIAL_AUDIO_SOFTWARE
atauLOW
).Jika mode pilihan berikutnya tidak ditentukan, sistem akan melaporkan error konfigurasi produk.