La latence est une métrique importante des performances système. Bien que de nombreux types de métriques de latence audio existent, la latence aller-retour est une métrique utile et bien comprise. Elle correspond au temps nécessaire pour qu'un signal audio entre dans l'entrée d'un appareil mobile, soit traité par une application exécutée sur le processeur d'application et quitte la sortie.

Figure 1 : Latence audio aller-retour sur l'appareil: Tsortie - Tentrée
Cette page fournit des mesures de la latence audio aller-retour pour certains appareils Nexus/Pixel et versions de la plate-forme Android.
Pourquoi mesurons-nous la latence ?
Google mesure et signale la latence afin que les développeurs d'applications Android disposent des données dont ils ont besoin pour prendre des décisions éclairées sur la latence disponible sur les appareils réels. En partageant les chiffres de latence pour certains appareils Nexus et Pixel, nous espérons encourager l'ensemble de la communauté Android à mesurer, publier et réduire la latence sur tous les appareils Android. Rejoignez-nous dans notre engagement visant à réduire la latence audio.
Impact des applications sur la latence
Le traitement du signal peut ajouter les types de retards suivants à la latence:
- Algorithmique Ce délai est inhérent et ne varie pas avec le processeur. Par exemple, le délai ajouté par un filtre répondant à l'impulsion finie (FIR) est un exemple.
- Computational (computationnel) Ce délai est lié au nombre de cycles de processeur requis. Par exemple, l'atténuation d'un signal est généralement effectuée par une opération de multiplication qui nécessite un nombre variable de cycles en fonction du processeur.
Comment nous mesurons
Nous avons effectué les mesures listées sur cette page à l'aide du dongle audio en boucle du Dr Rick O'Rang et d'un test de retour audio (effet Larsen). Les mesures supposent que le traitement du signal de l'application n'ajoute aucun délai algorithmique et un délai de calcul quasi nul.
Nous mesurons la latence aller-retour via le connecteur du casque pour plusieurs raisons:

Figure 2. Latence aller-retour via le connecteur du casque: Tsortie - Tentrée
- Les applications musicales importantes (telles que le traitement de la guitare et de la voix) utilisent le connecteur du casque.
- Mesurer la latence aller-retour du micro et du haut-parleur sur l'appareil peut s'avérer complexe, car il est difficile d'empêcher une boucle de rétroaction en plein air d'entrer dans une oscillation incontrôlée.
- Les transducteurs sur l'appareil sont petits et sacrifient la réponse en fréquence pour obtenir cette petite taille. Pour compenser, le traitement du signal numérique est appliqué, mais il augmente le délai algorithmique pour le chemin sur l'appareil.
Il peut arriver que les latences du micro et des haut-parleurs sur l'appareil importent, mais elles concernent généralement un seul sens, et non un aller-retour. Les techniques de mesure de la latence unidirectionnelle sont décrites dans Mesurer la latence de sortie et Mesurer la latence d'entrée.
Exemples de mesures
Les mesures listées ci-dessous sont spécifiques à un numéro de build. Les appareils sont listés dans l'ordre approximatif de la version initiale et par version de plate-forme. Vous pouvez également afficher les latences dans un graphique. L'application de test utilise l'API audio native Android basée sur OpenSL ES.
Modèle | Version de la plate-forme |
Numéro de version |
Taux d'échantillonnage (Hz) |
Taille de la mémoire tampon (cadres) |
Taille de la mémoire tampon (ms) |
Latence aller-retour (ms) ± une mémoire tampon |
---|---|---|---|---|---|---|
Nexus One | 2.3.6 | GRK39F | 44100 | 768 | 17,4 | 345 |
Nexus S | 2.3.6 | GRK39F | 44100 | 1024 | 23.2 | 260 |
Nexus S | 4.0.4 | IMM76D | 44100 | 1024 | 23.2 | 260 |
Nexus S | 4.1.2 | JZO54K | 44100 | 880 | 20 | 210 |
Galaxy Nexus | 4.0.1 | ITL41D | 44100 | 976 | 22.1 | 270 |
Galaxy Nexus | 4.3 | JWR66Y | 44100 | 144 | 3.3 | 130 |
Nexus 4 | 4.2.2 | JDQ39E | 48000 | 240 | 5 | 195 |
Nexus 4 | 5.1 | LMY47O | 48000 | 240 | 5 | 58 |
Nexus 10 | 5.0.2 | LRX22G | 44100 | 256 | 5,8 | 36 |
Nexus 10 | 5.1 | LMY47D | 44100 | 256 | 5,8 | 35 |
Nexus 7 2013 |
4.3 | JSR78D | 48000 | 240 | 5 | 149 |
Nexus 7 2013 |
4.4 | KRT16S | 48000 | 240 | 5 | 85 |
Nexus 7 2013 |
5.0.2 | LRX22G | 48000 | 240 | 5 | 64 |
Nexus 7 2013 |
5.1 | LMY47O | 48000 | 240 | 5 | 55 |
Nexus 7 2013 |
6.0 | MRA58K | 48000 | 240 | 5 | 55 |
Nexus 5 | 4.4.4 | KTU84P | 48000 | 240 | 5 | 95 |
Nexus 5 | 5.0.0 | LRX21O | 48000 | 240 | 5 | 47 |
Nexus 5 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |
Nexus 5 | 6.0 | MRA58K | 48000 | 192 | 4 | 38 |
Nexus 9 | 5.0.0 | LRX21L | 48000 | 256 | 5.3 | 35 |
Nexus 9 | 5.0.1 | LRX22C | 48000 | 256 | 5.3 | 38 |
Nexus 9 | 5.1.1 | LMY47X | 48000 | 256 | 5.3 | 32 |
Nexus 9 | 6.0 | MRA58K | 48000 | 128 | 2.6 | 15 |
Nexus 6 | 5.0.1 | LRX22C | 48000 | 240 | 5 | 65 |
Nexus 6 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |
Nexus 6 | 6.0 | MRA58K | 48000 | 192 | 4 | 33 |
Nexus 5X | 6.0 | MDA89E | 48000 | 192 | 4 | 18 |
Nexus 5X | 8.0.0 | OPR4.170623.020 | 48000 | 192 | 4 | 18 |
Nexus 5X | 8.1.0 | OPM2.171019.029.C1 | 48000 | 192 | 4 | 18 |
Nexus 6P | 6.0 | MDA89D | 48000 | 192 | 4 | 18 |
Nexus 6P | 8.0.0 | OPR5.170623.014 | 48000 | 192 | 4 | 18 |
Nexus 6P | 8.1.0 | OPM5.171019.019 | 48000 | 192 | 4 | 18 |
Pixel | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Pixel | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
Pixel | 8.1.0 | OPM1.171019.021 | 48000 | 192 | 4 | 18 |
Pixel XL | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Pixel XL | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
Figure 3. Latence aller-retour