Medições de latência de áudio

A latência é uma importante métrica de desempenho do sistema. Embora existam muitos tipos de métricas de latência de áudio , uma métrica útil e bem compreendida é a latência de ida e volta , definida como o tempo que leva para um sinal de áudio entrar na entrada de um dispositivo móvel e ser processado por um aplicativo em execução no aplicativo. processador e saia da saída.

Latência de áudio de ida e volta no dispositivo

Figura 1. Latência de áudio de ida e volta no dispositivo: saída T - entrada T

Esta página fornece medições de latência de áudio de ida e volta para dispositivos Nexus/Pixel selecionados e versões da plataforma Android.

Por que medimos a latência

O Google mede e relata a latência para que os desenvolvedores de aplicativos Android tenham os dados necessários para tomar decisões informadas sobre a latência disponível em dispositivos reais. Ao compartilhar números de latência para dispositivos Nexus e Pixel selecionados, esperamos incentivar toda a comunidade Android a medir, publicar e reduzir a latência em todos os dispositivos Android. Junte-se a nós em nosso compromisso de reduzir a latência de áudio!

Impacto do aplicativo na latência

O processamento de sinal pode adicionar os seguintes tipos de atraso à latência:

  • Algorítmico . Este atraso é inerente e não varia com a CPU. Um exemplo é o atraso adicionado por um filtro de resposta ao impulso finito (FIR).
  • Computacional . Esse atraso está relacionado ao número de ciclos de CPU necessários. Por exemplo, a atenuação de um sinal geralmente é feita por uma operação de multiplicação que leva um número variável de ciclos dependendo da CPU.

Como medimos

Fizemos as medições listadas nesta página usando o dongle de loopback de áudio do Dr. Rick O'Rang e um teste de feedback de áudio (efeito Larsen) . As medições assumem que o processamento do sinal do aplicativo adiciona atraso algorítmico zero e atraso computacional próximo de zero.

Medimos a latência de ida e volta através do conector do fone de ouvido por vários motivos:

Latência de ida e volta via conector de fone de ouvido

Figura 2. Latência de ida e volta via conector de fone de ouvido: saída T - entrada T

  • Aplicativos musicais importantes (como guitarra e processamento de voz) usam o conector de fone de ouvido.
  • Medir a latência de ida e volta do microfone e do alto-falante do dispositivo pode ser complicado, pois é difícil evitar que um loop de feedback ao ar livre entre em oscilação descontrolada.
  • Os transdutores no dispositivo são pequenos e sacrificam a resposta de frequência para atingir seu tamanho pequeno. Para compensar, o processamento de sinal digital é aplicado, mas aumenta o atraso algorítmico para o caminho no dispositivo.

Há casos em que as latências do microfone e do alto-falante no dispositivo são importantes, mas geralmente são para uma direção, não para ida e volta. As técnicas para medir a latência unidirecional são descritas em Medindo a latência de saída e Medindo a latência de entrada .

Medições de exemplo

As medidas listadas abaixo são específicas para um número de compilação . Os dispositivos estão listados em ordem aproximada de lançamento inicial e por versão da plataforma; você também pode visualizar as latências em um gráfico . O aplicativo de teste usa a API de áudio nativa do Android baseada em OpenSL ES.

Modelo Plataforma
versão
Construir
número
Taxa de amostragem
(Hz)
Tamanho do buffer
(quadros)
Tamanho do buffer
(EM)
Ida e volta
latência (ms)
± um buffer
Nexus Um 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
Galáxia Nexus 4.0.1 ITL41D 44100 976 22.1 270
Galáxia Nexus 4.3 JWR66Y 44100 144 3.3 130
Nexus 4 4.2.2 JDQ39E 48.000 240 5 195
Nexus 4 5.1 LMY47O 48.000 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 48.000 240 5 149
Nexus 7
2013
4.4 KRT16S 48.000 240 5 85
Nexus 7
2013
5.0.2 LRX22G 48.000 240 5 64
Nexus 7
2013
5.1 LMY47O 48.000 240 5 55
Nexus 7
2013
6,0 MRA58K 48.000 240 5 55
Nexus 5 4.4.4 KTU84P 48.000 240 5 95
Nexus 5 5.0.0 LRX21O 48.000 240 5 47
Nexus 5 5.1 LMY47I 48.000 240 5 42
Nexus 5 6,0 MRA58K 48.000 192 4 38
Nexus 9 5.0.0 LRX21L 48.000 256 5.3 35
Nexus 9 5.0.1 LRX22C 48.000 256 5.3 38
Nexus 9 5.1.1 LMY47X 48.000 256 5.3 32
Nexus 9 6,0 MRA58K 48.000 128 2.6 15
Nexus 6 5.0.1 LRX22C 48.000 240 5 65
Nexus 6 5.1 LMY47I 48.000 240 5 42
Nexus 6 6,0 MRA58K 48.000 192 4 33
Nexus 5X 6,0 MDA89E 48.000 192 4 18
Nexus 5X 8.0.0 OPR4.170623.020 48.000 192 4 18
Nexus 5X 8.1.0 OPM2.171019.029.C1 48.000 192 4 18
Nexus 6P 6,0 MDA89D 48.000 192 4 18
Nexus 6P 8.0.0 OPR5.170623.014 48.000 192 4 18
Nexus 6P 8.1.0 OPM5.171019.019 48.000 192 4 18
Pixel 7.1.2 NHG47L 48.000 192 4 18
Pixel 8.0.0 OPR3.170623.013 48.000 192 4 18
Pixel 8.1.0 OPM1.171019.021 48.000 192 4 18
PixelXL 7.1.2 NHG47L 48.000 192 4 18
PixelXL 8.0.0 OPR3.170623.013 48.000 192 4 18

Figura 3. Latências de ida e volta