Medições de latência de áudio

A latência é uma métrica importante 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 um sinal de áudio leva para entrar na entrada de um dispositivo móvel, ser processado por um app em execução no processador do aplicativo e sair 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: Tsaída - Tentrada

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

Por que medimos a latência

O Google mede e informa a latência para que os desenvolvedores de aplicativos Android tenham os dados necessários para tomar decisões fundamentadas sobre a latência disponível em dispositivos reais. Ao compartilhar números de latência para alguns dispositivos Nexus e Pixel, esperamos incentivar toda a comunidade do Android a medir, publicar e reduzir a latência em todos os dispositivos Android. Participe do nosso compromisso de reduzir a latência de áudio.

Impacto do app na latência

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

  • Algorítmica. Esse atraso é inerente e não varia com a CPU. Um exemplo é o atraso adicionado por um filtro de resposta de impulso finito (FIR, na sigla em inglês).
  • 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 Dr. Rick O'Rang e um teste de feedback de áudio (efeito Larsen). As medições presumem que o processamento do sinal do aplicativo adiciona zero de atraso algorítmico e quase zero de atraso computacional.

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

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

Figura 2. Latência de ida e volta pelo conector de fone de ouvido: Tsaída - Tentrada

  • Aplicativos de música importantes, como processamento de guitarra e voz, usam o conector de fone de ouvido.
  • Medir a latência de ida e volta do microfone e alto-falante no dispositivo pode ser inconveniente, já que é difícil impedir que um loop de feedback no ar aberto entre em oscilações descontroladas.
  • Os transdutores no dispositivo são pequenos e sacrificam a resposta de frequência para alcançar o tamanho pequeno. Para compensar, o processamento de sinal digital é aplicado, mas aumenta o atraso algorítmico do caminho no dispositivo.

Há casos em que as latências do microfone e do alto-falante no dispositivo importam, mas geralmente elas 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 Como medir a latência de saída e Como medir a latência de entrada.

Exemplos de medições

As medições listadas abaixo são específicas para um número de build. Os dispositivos são listados na ordem aproximada da versão inicial e pela versão da plataforma. Também é possível visualizar as latências em um gráfico. O aplicativo de teste usa a API de áudio nativa do Android baseada no OpenSL ES.

Modelo Versão
da plataforma
Número da versão
Taxa de amostragem
(Hz)
Tamanho do buffer
(frames)
Tamanho do buffer
(ms)
Latência de ida e volta
(ms)
± um buffer
Nexus One 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
Nexus 4 4.2.2 JDQ39E 48000 240 5 195
Nexus 4 5.1 LMY47O 48000 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 48000 240 5 149
Nexus 7
2013
4.4 KRT16S 48000 240 5 85
Nexus 7
2013
5.0.2 LRX22G 48000 240 5 64
Nexus 7
2013
5.1 LMY47O 48000 240 5 55
Nexus 7
2013
6.0 MRA58K 48000 240 5 55
Nexus 5 4.4.4 KTU84P 48000 240 5 95
Nexus 5 5.0.0 LRX21O 48000 240 5 47
Nexus 5 5.1 LMY47I 48000 240 5 42
Nexus 5 6.0 MRA58K 48000 192 4 38
Nexus 9 5.0.0 LRX21L 48000 256 5.3 35
Nexus 9 5.0.1 LRX22C 48000 256 5.3 38
Nexus 9 5.1.1 LMY47X 48000 256 5.3 32
Nexus 9 6.0 MRA58K 48000 128 2.6 15
Nexus 6 5.0.1 LRX22C 48000 240 5 65
Nexus 6 5.1 LMY47I 48000 240 5 42
Nexus 6 6.0 MRA58K 48000 192 4 33
Nexus 5X 6.0 MDA89E 48000 192 4 18
Nexus 5X 8.0.0 OPR4.170623.020 48000 192 4 18
Nexus 5X 8.1.0 OPM2.171019.029.C1 48000 192 4 18
Nexus 6P 6.0 MDA89D 48000 192 4 18
Nexus 6P 8.0.0 OPR5.170623.014 48000 192 4 18
Nexus 6P 8.1.0 OPM5.171019.019 48000 192 4 18
Pixel 7.1.2 NHG47L 48000 192 4 18
Pixel 8.0.0 OPR3.170623.013 48000 192 4 18
Pixel 8.1.0 OPM1.171019.021 48000 192 4 18
Pixel XL 7.1.2 NHG47L 48000 192 4 18
Pixel XL 8.0.0 OPR3.170623.013 48000 192 4 18

Figura 3. Latências de ida e volta