La latencia es una métrica importante de rendimiento del sistema. 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.
Esta página proporciona mediciones de latencia de audio de ida y vuelta para determinados dispositivos Nexus/Pixel y versiones de 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 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 la cantidad 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
Realizamos las mediciones enumeradas en esta página utilizando el dongle de bucle invertido de audio del Dr. Rick O'Rang y una prueba de retroalimentación de audio (efecto Larsen) . Las mediciones suponen que el procesamiento de la señal de la aplicación agrega un retraso algorítmico cero y un retraso computacional casi nulo.
Medimos la latencia de ida y vuelta a través del conector de auriculares por varios motivos:
- Las aplicaciones musicales 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 resultar engorroso, ya que es difícil evitar que un bucle de retroalimentación al aire libre entre en una oscilación incontrolada.
- Los transductores integrados 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ñales digitales, pero aumenta el retraso algorítmico para la ruta en el dispositivo.
Hay casos en los que las latencias del micrófono y del altavoz del dispositivo sí importan, pero normalmente son en 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 que se enumeran 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 puedes 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 (marcos) | Tamaño del búfer (EM) | Ida y vuelta latencia (ms) ± un búfer |
---|---|---|---|---|---|---|
Nexo uno | 2.3.6 | GRK39F | 44100 | 768 | 17.4 | 345 |
Nexo S | 2.3.6 | GRK39F | 44100 | 1024 | 23.2 | 260 |
Nexo S | 4.0.4 | IMM76D | 44100 | 1024 | 23.2 | 260 |
Nexo 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 |