La latencia es una métrica de rendimiento del sistema importante. Si bien existen muchos tipos de métricas de latencia de audio , una métrica útil y bien entendida es la latencia de ida y vuelta , definida como el tiempo que tarda una señal de audio en ingresar a la entrada de un dispositivo móvil y ser procesada por una aplicación que se ejecuta en la aplicación. procesador y salga de la salida.
![Latencia de audio de ida y vuelta en el dispositivo](https://source.android.com/static/devices/audio/images/round_trip_on_device.png?authuser=9&hl=es)
Figura 1. Latencia de audio de ida y vuelta en el dispositivo: salida T - entrada T
Esta página proporciona mediciones de latencia de audio de ida y vuelta para dispositivos Nexus/Pixel seleccionados y versiones de la plataforma Android.
Por qué medimos la latencia
Google mide e informa la latencia para que los desarrolladores de aplicaciones de Android tengan los datos que necesitan para tomar decisiones informadas sobre la latencia disponible en los dispositivos reales. Al compartir los números de latencia para dispositivos Nexus y Pixel seleccionados, esperamos alentar a toda la comunidad de Android a medir, publicar y reducir la latencia en todos los dispositivos Android. ¡Únase a nosotros en nuestro compromiso de reducir la latencia de audio!
Impacto de la aplicación en la latencia
El procesamiento de señales puede agregar los siguientes tipos de retraso a la latencia:
- algorítmico . Este retraso es inherente y no varía con la CPU. Un ejemplo es el retraso agregado por un filtro de respuesta de impulso finito (FIR).
- Computacional . Este retraso está relacionado con el número de ciclos de CPU requeridos. Por ejemplo, la atenuación de una señal generalmente se realiza mediante una operación de multiplicación que requiere un número variable de ciclos según la CPU.
como medimos
Hicimos las mediciones enumeradas en esta página utilizando el dongle de bucle invertido de audio Dr. Rick O'Rang y una prueba de retroalimentación de audio (efecto Larsen) . Las mediciones asumen que el procesamiento de la señal de la aplicación agrega un retraso algorítmico cero y un retraso computacional cercano a cero.
Medimos la latencia de ida y vuelta a través del conector de los auriculares por varias razones:
![Latencia de ida y vuelta a través del conector de auriculares](https://source.android.com/static/devices/audio/images/round_trip_via_headset_connector.png?authuser=9&hl=es)
Figura 2. Latencia de ida y vuelta a través del conector de auriculares: salida T - entrada T
- Las aplicaciones de música importantes (como la guitarra y el procesamiento de voz) utilizan el conector de auriculares.
- Medir la latencia de ida y vuelta del micrófono y el altavoz del dispositivo puede ser engorroso, ya que es difícil evitar que un circuito de retroalimentación al aire libre entre en una oscilación incontrolada.
- Los transductores en el dispositivo son pequeños y sacrifican la respuesta de frecuencia para lograr su pequeño tamaño. Para compensar, se aplica procesamiento de señal digital pero aumenta el retraso algorítmico para la ruta en el dispositivo.
Hay casos en los que las latencias del altavoz y del micrófono en el dispositivo son importantes, pero por lo general son para una dirección, no de ida y vuelta. Las técnicas para medir la latencia unidireccional se describen en Medición de la latencia de salida y Medición de la latencia de entrada .
Medidas de ejemplo
Las medidas enumeradas a continuación son específicas de un número de compilación . Los dispositivos se enumeran en orden aproximado de lanzamiento inicial y por versión de plataforma; también puede ver las latencias en un gráfico . La aplicación de prueba utiliza la API de audio nativa de Android basada en OpenSL ES.
Modelo | Plataforma versión | Construir número | Frecuencia de muestreo (Hz) | Tamaño del búfer (fotogramas) | Tamaño del búfer (milisegundo) | Viaje ida y vuelta latencia (ms) ± un búfer |
---|---|---|---|---|---|---|
nexo uno | 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 |
nexo 4 | 4.2.2 | JDQ39E | 48000 | 240 | 5 | 195 |
nexo 4 | 5.1 | LMY47O | 48000 | 240 | 5 | 58 |
nexo 10 | 5.0.2 | LRX22G | 44100 | 256 | 5.8 | 36 |
nexo 10 | 5.1 | LMY47D | 44100 | 256 | 5.8 | 35 |
nexo 7 2013 | 4.3 | JSR78D | 48000 | 240 | 5 | 149 |
nexo 7 2013 | 4.4 | KRT16S | 48000 | 240 | 5 | 85 |
nexo 7 2013 | 5.0.2 | LRX22G | 48000 | 240 | 5 | 64 |
nexo 7 2013 | 5.1 | LMY47O | 48000 | 240 | 5 | 55 |
nexo 7 2013 | 6.0 | MRA58K | 48000 | 240 | 5 | 55 |
nexo 5 | 4.4.4 | KTU84P | 48000 | 240 | 5 | 95 |
nexo 5 | 5.0.0 | LRX21O | 48000 | 240 | 5 | 47 |
nexo 5 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |
nexo 5 | 6.0 | MRA58K | 48000 | 192 | 4 | 38 |
nexo 9 | 5.0.0 | LRX21L | 48000 | 256 | 5.3 | 35 |
nexo 9 | 5.0.1 | LRX22C | 48000 | 256 | 5.3 | 38 |
nexo 9 | 5.1.1 | LMY47X | 48000 | 256 | 5.3 | 32 |
nexo 9 | 6.0 | MRA58K | 48000 | 128 | 2.6 | 15 |
nexo 6 | 5.0.1 | LRX22C | 48000 | 240 | 5 | sesenta y cinco |
nexo 6 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |
nexo 6 | 6.0 | MRA58K | 48000 | 192 | 4 | 33 |
nexo 5X | 6.0 | MDA89E | 48000 | 192 | 4 | 18 |
nexo 5X | 8.0.0 | OPR4.170623.020 | 48000 | 192 | 4 | 18 |
nexo 5X | 8.1.0 | OPM2.171019.029.C1 | 48000 | 192 | 4 | 18 |
Nexo 6P | 6.0 | MDA89D | 48000 | 192 | 4 | 18 |
Nexo 6P | 8.0.0 | OPR5.170623.014 | 48000 | 192 | 4 | 18 |
Nexo 6P | 8.1.0 | OPM5.171019.019 | 48000 | 192 | 4 | 18 |
píxel | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
píxel | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
píxel | 8.1.0 | OPM1.171019.021 | 48000 | 192 | 4 | 18 |
Píxel XL | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Píxel XL | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
Figura 3. Latencias de ida y vuelta