Tracciamento della testa tramite LE audio

L'audio Bluetooth (BT) Low Energy (LE) introduce i meccanismi di trasporto logico asincroni basati sulle connessioni (LE-ACL) e isocrono (LE-ISO) per i dati di monitoraggio della testa (HT).

Android 15 fornisce il supporto per gli aggiustamenti della modalità di latenza per l'HT in base all'utilizzo o meno del meccanismo di trasporto LE-ACL o LE-ISO.

In questa pagina viene descritto come il framework audio, l'HAL audio e lo stack Bluetooth interagiscono per scoprire e selezionare i meccanismi di trasporto LE-ACL o LE-ISO supportati dall'host e dalle cuffie.

Supporto per LE-ACL e LE-ISO

Android 15 include il supporto per i meccanismi di trasporto LE-ACL e LE-ISO utilizzando una proprietà di sistema definita dal fornitore, le modalità di latenza dell'HAL audio e le modalità di connessione spazializzante.

Proprietà di sistema

L'implementazione del fornitore di servizi di telefonia 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 elencano 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 segnalati attraverso il gruppo di sensori.

Modalità di latenza

Nel caso di BT LE audio, il meccanismo per cui lo stack BT indica le modalità di latenza supportate all'HAL e al framework audio è lo stesso di quello definito per BT Classic (A2DP). L'HAL audio segnala le modalità di latenza supportate in base al dispositivo audio attualmente selezionato.

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 es. inferiore a 100 ms) compatibile con le operazioni HT. Questa modalità viene utilizzata quando è supportata una bassa latenza e l'HID viene trasmesso tramite il protocollo ACL (indicato dall'HAL) o quando HT è attivo e non sono disponibili altre modalità a bassa latenza (indicato 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 spazializzazione (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 bassa latenza, HID viene trasmesso tramite il protocollo ISO e può essere instradato al motore degli effetti di spatializzazione (indicato dall'HAL).
    • Quando l'HT è attivo e il protocollo ISO vengono utilizzati quando i dati HID vengono incanalati nel motore degli effetti spazializzatore (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 spazializzatore esegue tutte le pre-elaborazioni dei dati IMU e la riconciliazione con i movimenti del telefono indicati dai sensori dei telefoni.

Le enumerazioni della modalità di latenza sono mappate 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 spazializzato indica il supporto per il tunneling dei dati HT con la funzionalità HeadTracking.ConnectionMode.

Le modalità di connessione HT supportate sono le seguenti:

  • FRAMEWORK_PROCESSED: il framework audio fornisce dati IMU pre-elaborati in formato vettoriale head-to-stage ad HAL. Questa modalità predefinita corrisponde alla modalità corrente con BT classico.
  • DIRECT_TO_SENSOR_SW: il motore dell'effetto 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 IMU libheadtracking AOSP o le implementazioni dello spazializzatore offloadato del 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:

  1. Il framework carica la preferenza di trasporto dalla bluetooth.core.le.dsa_transport_preference proprietà di sistema.
  2. Le modalità di latenza supportate riportate dall'HAL audio vengono filtrate e ordinate in base all'elenco caricato nel passaggio 1.
  3. Se la modalità a bassa latenza con priorità più alta è iso-hw e l'implementazione dello spazializzatore supporta la connessione diretta dei sensori (ovvero DIRECT_TO_SENSOR_SW o DIRECT_TO_SENSOR_TUNNEL sono impostati nello spazializzatore), la modalità di latenza è impostata su DYNAMIC_SPATIAL_AUDIO_HARDWARE.
  4. Se la modalità a bassa latenza con priorità più alta è iso-hw e l'implementazione dello spazializzatore non supporta la connessione diretta del sensore (DIRECT_TO_SENSOR_SW o DIRECT_TO_SENSOR_TUNNEL non sono impostati nello spazializzatore), la modalità preferita successiva (iso-sw o le-acl) determina la modalità di latenza (DYNAMIC_SPATIAL_AUDIO_SOFTWARE o LOW).

    Se non viene specificata la modalità preferita successiva, il sistema segnala un errore di configurazione del prodotto.