Mediciones de latencia de audio

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

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

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