Pomiary opóźnienia dźwięku

Opóźnienie jest ważnym wskaźnikiem wydajności systemu. Chociaż istnieje wiele rodzajów wskaźników opóźnienia dźwięku , jednym z przydatnych i dobrze rozumianych wskaźników jest opóźnienie w obie strony , definiowane jako czas potrzebny, aby sygnał audio dostał się na wejście urządzenia mobilnego i został przetworzony przez aplikację działającą w aplikacji procesor i wyjdź z wyjścia.

Opóźnienie dźwięku w obie strony na urządzeniu

Rysunek 1. Opóźnienie dźwięku w obie strony na urządzeniu: wyjście T – wejście T

Na tej stronie znajdują się pomiary opóźnienia dźwięku w obie strony dla wybranych urządzeń Nexus/Pixel i wersji platformy Android.

Dlaczego mierzymy opóźnienia

Google mierzy i raportuje opóźnienia, dzięki czemu programiści aplikacji na Androida mają dane potrzebne do podejmowania świadomych decyzji dotyczących dostępnych opóźnień na rzeczywistych urządzeniach. Mamy nadzieję, że udostępniając dane dotyczące opóźnień dla wybranych urządzeń Nexus i Pixel, zachęcimy całą społeczność Androida do mierzenia, publikowania i zmniejszania opóźnień na wszystkich urządzeniach z Androidem. Dołącz do nas w naszym zaangażowaniu w redukcję opóźnień dźwięku!

Wpływ aplikacji na opóźnienia

Przetwarzanie sygnału może dodać następujące typy opóźnienia do opóźnienia:

  • Algorytmiczny . Opóźnienie to jest nieodłączne i nie zależy od procesora. Przykładem jest opóźnienie dodane przez filtr o skończonej odpowiedzi impulsowej (FIR).
  • Obliczeniowe . Opóźnienie to jest związane z liczbą wymaganych cykli procesora. Na przykład tłumienie sygnału zwykle odbywa się poprzez operację mnożenia, która zajmuje różną liczbę cykli w zależności od procesora.

Jak mierzymy

Pomiary wymienione na tej stronie wykonaliśmy przy użyciu klucza sprzętowego pętli zwrotnej audio Dr. Ricka O'Ranga i testu sprzężenia zwrotnego audio (efektu Larsena) . Pomiary zakładają, że przetwarzanie sygnału aplikacji dodaje zerowe opóźnienie algorytmiczne i prawie zerowe opóźnienie obliczeniowe.

Mierzymy opóźnienia w obie strony za pośrednictwem złącza zestawu słuchawkowego z kilku powodów:

Opóźnienie w obie strony przez złącze zestawu słuchawkowego

Rysunek 2. Opóźnienie w obie strony przez złącze zestawu słuchawkowego: wyjście T - wejście T

  • Ważne aplikacje muzyczne (takie jak przetwarzanie głosu i gitary) korzystają ze złącza zestawu słuchawkowego.
  • Pomiar opóźnienia mikrofonu i głośnika w urządzeniu może być uciążliwy, ponieważ trudno jest zapobiec niekontrolowanym oscylacjom w pętli sprzężenia zwrotnego na otwartej przestrzeni.
  • Przetworniki wbudowane w urządzenie są małe i poświęcają pasmo przenoszenia, aby osiągnąć swój mały rozmiar. Aby to zrekompensować, stosowane jest cyfrowe przetwarzanie sygnału, ale zwiększa się opóźnienie algorytmiczne ścieżki w urządzeniu.

W niektórych przypadkach opóźnienia mikrofonu i głośnika na urządzeniu mają znaczenie, ale zwykle dotyczą one jednego kierunku, a nie ruchu w obie strony. Techniki pomiaru opóźnienia jednokierunkowego opisano w rozdziałach Pomiar opóźnienia wyjściowego i Pomiar opóźnienia wejściowego .

Przykładowe pomiary

Pomiary wymienione poniżej dotyczą konkretnego numeru kompilacji . Urządzenia są wymienione w przybliżonej kolejności według wersji początkowej i wersji platformy; możesz także zobaczyć opóźnienia na wykresie . Aplikacja testowa korzysta z natywnego API audio Androida opartego na OpenSL ES.

Model Platforma
wersja
Zbudować
numer
Próbna stawka
(Hz)
Rozmiar bufora
(ramki)
Rozmiar bufora
(SM)
Podróż w obie strony
opóźnienie (ms)
± jeden bufor
Nexus Jeden 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
Galaktyczny Nexus 4.0.1 ITL41D 44100 976 22.1 270
Galaktyczny 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
Nexusa 10 5.0.2 LRX22G 44100 256 5.8 36
Nexusa 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
Nexusa 9 5.0.0 LRX21L 48000 256 5.3 35
Nexusa 9 5.0.1 LRX22C 48000 256 5.3 38
Nexusa 9 5.1.1 LMY47X 48000 256 5.3 32
Nexusa 9 6,0 MRA58K 48000 128 2.6 15
Nexusa 6 5.0.1 LRX22C 48000 240 5 65
Nexusa 6 5.1 LMY47I 48000 240 5 42
Nexusa 6 6,0 MRA58K 48000 192 4 33
Nexusa 5X 6,0 MDA89E 48000 192 4 18
Nexusa 5X 8.0.0 OPR4.170623.020 48000 192 4 18
Nexusa 5X 8.1.0 OPM2.171019.029.C1 48000 192 4 18
Nexusa 6P 6,0 MDA89D 48000 192 4 18
Nexusa 6P 8.0.0 OPR5.170623.014 48000 192 4 18
Nexusa 6P 8.1.0 OPM5.171019.019 48000 192 4 18
Piksel 7.1.2 NHG47L 48000 192 4 18
Piksel 8.0.0 OPR3.170623.013 48000 192 4 18
Piksel 8.1.0 OPM1.171019.021 48000 192 4 18
Piksel XL 7.1.2 NHG47L 48000 192 4 18
Piksel XL 8.0.0 OPR3.170623.013 48000 192 4 18

Rysunek 3. Opóźnienia w obie strony