L'audio Bluetooth (BT) Low Energy (LE) introduce i meccanismi di trasporto logico asincroni orientati alla connessione (LE-ACL) e isocrono (LE-ISO) per i dati di monitoraggio della testa (HT).
Android 15 supporta gli aggiustamenti della modalità di latenza per HT in base all'utilizzo del meccanismo di trasporto LE-ACL o LE-ISO.
Questa pagina descrive in che modo il framework audio, l'HAL audio e lo stack Bluetooth interagiscono per rilevare e selezionare i meccanismi di trasporto LE-ACL o LE-ISO supportati dall'host e dall'auricolare.
Supporto per LE-ACL e LE-ISO
Android 15 include il supporto per i meccanismi di trasporto LE-ACL e LE-ISO tramite l'utilizzo di una proprietà di sistema definita dal fornitore, delle modalità di latenza HAL audio e delle modalità di connessione del virtualizzatore dello spazio.
Proprietà di sistema
L'implementazione del fornitore dello smartphone elenca i meccanismi di trasporto supportati nella proprietà di sistema
bluetooth.core.le.dsa_transport_preference
. Il valore è un elenco di stringhe separate da virgole, che elenca i trasporti supportati nell'ordine di preferenza:
le-acl
: trasporto LE-ACL, quando i dati dell'unità di misura inerziale (IMU) vengono registrati tramite la serie di sensori.iso-hw
: trasporto ISO con la possibilità di eseguire il tunneling dei dati HT direttamente dal controller Bluetooth allo spatializer nel DSP audio.iso-sw
: trasporto ISO senza funzionalità di tunneling, quando i dati dell'IMU vengono registrati tramite la pila di sensori.
Modalità di latenza
Nel caso dell'audio BT LE, il meccanismo con cui lo stack BT indica le modalità di latenza supportate all'HAL audio e al framework audio è lo stesso definito per il BT classico (A2DP). L'HAL audio segnala le modalità di latenza supportate in base al dispositivo audio selezionato al momento.
Le implementazioni A2DP supportano solo le modalità FREE
e LOW_LATENCY
.
Al contrario, per l'audio BT LE, le seguenti modalità di latenza sono definite nell'HAL audio per supportare l'aggiunta di meccanismi di trasporto LE-ACL e LE-ISO:
FREE
: questo valore indica che non esiste un vincolo specifico sulla latenza. Questa modalità viene utilizzata quando la latenza bassa non è supportata (indicata dall'HAL) o quando l'HT non è attivo (indicata dal framework).LOW
: questo valore indica una latenza relativamente bassa (ad esempio meno di 100 ms) compatibile con il funzionamento HT. Questa modalità viene utilizzata quando la latenza minima è supportata e HID viene trasmesso tramite il protocollo ACL (indicato dall'HAL) oppure quando l'HT è attivo e non sono disponibili altre modalità a bassa latenza (indicate dal framework).DYNAMIC_SPATIAL_AUDIO_SOFTWARE
: questa modalità viene utilizzata quando è soddisfatta una delle seguenti condizioni:- Quando è supportata la bassa latenza, HID viene trasmesso tramite il protocollo ISO e non può essere sottoposto a tunneling al motore degli effetti di spatializzazione (indicato dall'HAL).
- Quando l'HT è attivo e viene utilizzato il protocollo ISO, il framework audio fornisce i dati HID al motore degli effetti di spazializzazione (indicato dal framework).
In questa modalità, la libreria di calcolo HT nel framework esegue tutta la preelaborazione dei dati IMU e la riconciliazione con i movimenti dello smartphone indicati dai sensori dello smartphone.
DYNAMIC_SPATIAL_AUDIO_HARDWARE
: questa modalità viene utilizzata quando è soddisfatta una delle seguenti condizioni:- Quando è supportata la latenza ridotta, HID viene trasmesso tramite il protocollo ISO e può essere instradato al motore degli effetti di spazializzazione (indicato dall'HAL).
- Quando l'HT è attivo e viene utilizzato il protocollo ISO, i dati HID vengono instradati tramite tunnel al motore degli effetti di spazializzazione (indicato dal framework).
In questa modalità, il motore degli effetti di spazializzazione riceve i dati IMU non elaborati direttamente dallo stack BT o dal controller BT. L'implementazione dell'effetto di spazializzazione esegue tutta la preelaborazione dei dati dell'IMU e la riconciliazione con i movimenti dello smartphone indicati dai sensori dello smartphone.
Gli enum della modalità di latenza sono mappati alla proprietà di sistema bluetooth.core.le.dsa_transport_preference
in Spatializer.cpp
.
Supporto del spatializer
Il controller spatializer nel servizio di criteri audio controlla la selezione del protocollo di trasporto HT sull'audio LE. L'implementazione del motore degli effetti di spazializzazione indica il supporto del tunneling dei dati HT con la funzionalità HeadTracking.ConnectionMode
.
Le modalità di connessione HT supportate sono le seguenti:
FRAMEWORK_PROCESSED
: il framework audio fornisce all'HAL i dati IMU pre-elaborati in un formato vettoriale da testa a stadio. Questa modalità predefinita corrisponde alla modalità corrente con BT classico.DIRECT_TO_SENSOR_SW
: il motore degli effetti di spazializzazione si connette direttamente al sensore tramite lo stack software del sensore. Il framework audio controlla solo lo stato di attivazione del sensore. Le implementazioni software che non utilizzano la preelaborazione dei dati IMUlibheadtracking
AOSP o le implementazioni di spatializer offloadati DSP possono utilizzare la modalitàDIRECT_TO_SENSOR_SW
.DIRECT_TO_SENSOR_TUNNEL
: il motore dell'effetto di spazializzazione si connette direttamente al sensore tramite il tunneling hardware. Il framework audio controlla solo lo stato di attivazione del sensore. Le implementazioni di spatializer offloadate dal DSP possono utilizzare la modalitàDIRECT_TO_SENSOR_TUNNEL
.
Selezione della modalità di latenza
Il framework seleziona una modalità di latenza dall'elenco delle modalità di latenza supportate registrate dall'HAL. La modalità di latenza è impostata in base allo stato di attivazione dell'HT corrente, al supporto dello spazializzatore corrente e alla proprietà di sistema specificata dal fornitore che stabilisce un ordine di priorità tra i meccanismi di trasporto.
Il framework utilizza la seguente procedura in selectHeadtrackingConnectionMode_l
per selezionare la modalità di latenza:
- Il framework carica la preferenza di trasporto dalla
bluetooth.core.le.dsa_transport_preference
proprietà di sistema. - Le modalità di latenza supportate segnalate dall'HAL audio vengono filtrate e ordinate in base all'elenco caricato nel passaggio 1.
- Se la modalità a bassa latenza con la priorità più alta è
iso-hw
e l'implementazione dello spazializzatore supporta la connessione diretta del sensore (ovveroDIRECT_TO_SENSOR_SW
oDIRECT_TO_SENSOR_TUNNEL
sono impostati nello spazializzatore), la modalità di latenza è impostata suDYNAMIC_SPATIAL_AUDIO_HARDWARE
. Se la modalità a bassa latenza con la priorità più alta è
iso-hw
e l'implementazione dello spazializzatore non supporta la connessione diretta del sensore (DIRECT_TO_SENSOR_SW
oDIRECT_TO_SENSOR_TUNNEL
non sono impostati nello spazializzatore), la modalità preferita successiva (iso-sw
ole-acl
) determina la modalità di latenza (DYNAMIC_SPATIAL_AUDIO_SOFTWARE
oLOW
).Se non è specificata la modalità preferita successiva, il sistema segnala un errore di configurazione del prodotto.