Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Medición de la latencia de audio

Esta página describe métodos comunes para medir la latencia de entrada y salida.

Medición de la latencia de salida

Hay varias técnicas disponibles para medir la latencia de salida, con diversos grados de precisión y facilidad de ejecución, que se describen a continuación. Consulte también el circuito de prueba para ver un ejemplo de entorno de prueba.

Prueba de LED y osciloscopio

Esta prueba mide la latencia en relación con el indicador LED del dispositivo. Si su dispositivo de producción no tiene un LED, puede instalar el LED en un dispositivo de factor de forma prototipo. Para una precisión aún mayor en dispositivos prototipo con circuito expuesto, conecte una sonda de osciloscopio al LED directamente para evitar la latencia del sensor de luz.

Si no puede instalar un LED en su dispositivo de producción o prototipo, pruebe las siguientes soluciones:

  • Utilice un pin de entrada / salida de propósito general (GPIO) para el mismo propósito.
  • Utilice JTAG u otro puerto de depuración.
  • Utilice la luz de fondo de la pantalla. Esto puede ser arriesgado ya que la luz de fondo puede tener una latencia no despreciable y puede contribuir a una lectura de latencia inexacta.

Para realizar esta prueba:

  1. Ejecute una aplicación que pulsa periódicamente el LED al mismo tiempo que emite audio.

    Nota: Para obtener resultados útiles, es fundamental utilizar las API correctas en la aplicación de prueba para que esté ejercitando la ruta de salida de audio rápida. Consulte Diseño para latencia reducida para conocer los antecedentes.

  2. Coloque un sensor de luz al lado del LED.
  3. Conecte las sondas de un osciloscopio de dos canales a la toma de auriculares con cable (salida de línea) y al sensor de luz.
  4. Utilice el osciloscopio para medir la diferencia de tiempo entre la observación de la señal de salida de línea y la señal del sensor de luz.

La diferencia en el tiempo es la latencia de salida de audio aproximada, asumiendo que la latencia del LED y la latencia del sensor de luz son cero. Normalmente, el LED y el sensor de luz tienen cada uno una latencia relativamente baja del orden de un milisegundo o menos, que es lo suficientemente baja como para ignorarla.

Medición de la latencia de ida y vuelta

La latencia de ida y vuelta es la suma de la latencia de salida y la latencia de entrada.

Prueba de Larsen

Una de las pruebas de latencia más fáciles es una prueba de retroalimentación de audio (efecto Larsen). Esto proporciona una medida burda de la latencia combinada de entrada y salida al medir el tiempo de un bucle de respuesta de impulso. Esta prueba no es muy útil para un análisis detallado por sí misma debido a la naturaleza de la prueba, pero puede ser útil para calibrar otras pruebas y para establecer un límite superior.

Este método no desglosa los tiempos de los componentes, lo cual es importante cuando la latencia de salida y la latencia de entrada son independientes. Por lo tanto, este método no se recomienda para medir la latencia de salida precisa o los valores de latencia de entrada de forma aislada, pero podría ser útil para establecer estimaciones aproximadas.

La latencia de salida al altavoz del dispositivo puede ser significativamente mayor que la latencia de salida al conector de auriculares. Esto se debe a la corrección y protección de los altavoces.

Para realizar esta prueba:

  1. Ejecute una aplicación que capture audio del micrófono e inmediatamente reproduzca los datos capturados por el altavoz.
  2. Cree un sonido externamente, como tocar un lápiz junto al micrófono. Este ruido genera un bucle de retroalimentación. Alternativamente, se puede inyectar un impulso en el bucle mediante software.
  3. Mida el tiempo entre pulsos de retroalimentación para obtener la suma de la latencia de salida, la latencia de entrada y la sobrecarga de la aplicación.

A continuación, se muestran algunos recursos para obtener una aplicación para la prueba de Larsen:

Dongle de bucle de audio

El dongle de bucle de retorno de audio Dr. Rick O'Rang es útil para medir la latencia de ida y vuelta a través del conector de los auriculares. La siguiente imagen muestra el resultado de inyectar un impulso en el bucle una vez y luego permitir que el bucle de retroalimentación oscile. El período de las oscilaciones es la latencia de ida y vuelta. El dispositivo específico, la versión de software y las condiciones de prueba no se especifican aquí. Los resultados mostrados no deben extrapolarse.

medición de ida y vuelta

Figura 1. Medición de ida y vuelta

Es posible que deba quitar el cable USB para reducir el ruido y ajustar el nivel de volumen para obtener una oscilación estable.

Medición de la latencia de entrada

La latencia de entrada es más difícil de medir que la latencia de salida. Las siguientes pruebas pueden ayudar.

Un enfoque es determinar primero la latencia de salida usando el método de LED y osciloscopio y luego usar la prueba de retroalimentación de audio (Larsen) para determinar la suma de la latencia de salida y la latencia de entrada. La diferencia entre estas dos medidas es la latencia de entrada.

Otra técnica consiste en utilizar un pin GPIO en un dispositivo prototipo. Externamente, pulse una entrada GPIO al mismo tiempo que presenta una señal de audio al dispositivo. Ejecute una aplicación que compare la diferencia en los tiempos de llegada de la señal GPIO y los datos de audio.

Reducir la latencia

Para lograr una baja latencia de audio, preste especial atención en todo el sistema a la programación, el manejo de interrupciones, la administración de energía y el diseño del controlador del dispositivo. Su objetivo es evitar que cualquier parte de la plataforma bloquee un hilo de audio SCHED_FIFO durante más de un par de milisegundos. Al adoptar un enfoque tan sistemático, puede reducir la latencia de audio y obtener el beneficio adicional de un rendimiento más predecible en general.

Las subestimaciones de audio, cuando ocurren, a menudo son detectables solo bajo ciertas condiciones o solo en las transiciones. Intente estresar el sistema iniciando nuevas aplicaciones y desplazándose rápidamente por varias pantallas. Pero tenga en cuenta que algunas condiciones de prueba son tan estresantes que van más allá de los objetivos del diseño. Por ejemplo, realizar un informe de error supone una carga tan enorme para el sistema que, en ese caso, puede ser aceptable tener una falta de rendimiento.

Al realizar pruebas de insuficiencia de datos:

  • Configure cualquier DSP después del procesador de la aplicación para que agregue una latencia mínima.
  • Ejecute pruebas en diferentes condiciones, como tener la pantalla encendida o apagada, USB enchufado o desenchufado, WiFi encendido o apagado, Bluetooth encendido o apagado y telefonía y radios de datos encendidos o apagados.
  • Seleccione música relativamente tranquila con la que esté muy familiarizado y en la que sea fácil escuchar subestimaciones.
  • Use auriculares con cable para mayor sensibilidad.
  • Dese descansos para no experimentar "fatiga auditiva".

Una vez que encuentre las causas subyacentes de la insuficiencia de datos, reduzca la cantidad y el tamaño del búfer para aprovechar esto. El enfoque entusiasta de reducir la cantidad y el tamaño de las memorias intermedias antes de analizar las fallas y corregir las causas de las fallas solo resulta en frustración.

Herramientas

systrace es una excelente herramienta de uso general para diagnosticar fallas de rendimiento a nivel del sistema.

La salida de dumpsys media.audio_flinger también contiene una sección útil llamada "estadísticas de movimiento simple". Esto tiene un resumen de la variabilidad de los tiempos transcurridos para cada mezcla de audio y ciclo de E / S. Idealmente, todas las mediciones de tiempo deberían ser aproximadamente iguales al tiempo de ciclo medio o nominal. Si ve un mínimo muy bajo o un máximo alto, esto es una indicación de un problema, probablemente una latencia de programación alta o un tiempo de desactivación de interrupciones. La parte de la cola de la salida es especialmente útil, ya que destaca la variabilidad más allá de +/- 3 desviaciones estándar.