La latence est une mesure importante des performances du système. Bien qu'il existe de nombreux types de mesures de latence audio , une mesure utile et bien comprise est la latence aller-retour , définie comme le temps nécessaire à un signal audio pour entrer dans l'entrée d'un appareil mobile et être traité par une application exécutée sur l'application. processeur et quittez la sortie.
![Latence audio aller-retour sur l'appareil](https://source.android.com/static/docs/core/audio/images/round_trip_on_device.png?authuser=9&hl=fr)
Figure 1. Latence audio aller-retour sur l'appareil : sortie T - entrée T
Cette page fournit des mesures de latence audio aller-retour pour certains appareils Nexus/Pixel et versions de plate-forme Android.
Pourquoi nous mesurons 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 concernant 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 à réduire la latence audio !
Impact de l'application sur la latence
Le traitement du signal peut ajouter les types de retard suivants à la latence :
- Algorithmique . Ce délai est inhérent et ne varie pas selon le CPU. Un exemple est le retard ajouté par un filtre à réponse impulsionnelle finie (FIR).
- Informatique . Ce délai est lié au nombre de cycles CPU requis. Par exemple, l'atténuation d'un signal se fait généralement par une opération de multiplication qui prend un nombre variable de cycles en fonction du processeur.
Comment nous mesurons
Nous avons effectué les mesures répertoriées sur cette page à l'aide du dongle de bouclage audio Dr. Rick O'Rang et d'un test de retour audio (effet Larsen) . Les mesures supposent que le traitement du signal d’application ajoute un retard algorithmique nul et un retard de calcul proche de zéro.
Nous mesurons la latence aller-retour via le connecteur du casque pour plusieurs raisons :
![Latence aller-retour via le connecteur du casque](https://source.android.com/static/docs/core/audio/images/round_trip_via_headset_connector.png?authuser=9&hl=fr)
Figure 2. Latence aller-retour via le connecteur du casque : sortie T - entrée T
- Les applications musicales importantes (telles que la guitare et le traitement vocal) utilisent le connecteur casque.
- Mesurer la latence aller-retour du microphone et du haut-parleur intégrés à l'appareil peut s'avérer fastidieux, 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 intégrés à l'appareil sont petits et sacrifient la réponse en fréquence pour atteindre leur petite taille. Pour compenser, un traitement du signal numérique est appliqué mais augmente le délai algorithmique pour le chemin sur l'appareil.
Il existe des cas où les latences du microphone et du haut-parleur sur l'appareil sont importantes, mais elles concernent généralement une direction et non un aller-retour. Les techniques de mesure de la latence unidirectionnelle sont décrites dans Mesure de la latence de sortie et Mesure de la latence d'entrée .
Exemples de mesures
Les mesures répertoriées ci-dessous sont spécifiques à un numéro de build . Les appareils sont répertoriés par ordre approximatif de version initiale et par version de plate-forme ; vous pouvez également visualiser les latences dans un graphique . L'application de test utilise l'API audio native Android basée sur OpenSL ES.
Modèle | Plate-forme version | Construire nombre | Taux d'échantillonnage (Hz) | Taille du tampon (cadres) | Taille du tampon (MS) | Aller-retour latence (ms) ± un tampon |
---|---|---|---|---|---|---|
Nexus Un | 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 |
Galaxie Nexus | 4.0.1 | ITL41D | 44100 | 976 | 22.1 | 270 |
Galaxie 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 |
Pixels | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Pixels | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
Pixels | 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. Latences aller-retour