pomiary opóźnienia dźwięku,

Opóźnienie to ważny wskaźnik wydajności systemu. Istnieje wiele rodzajów opóźnień dźwięku, ale jednym z przydatnych i dobrze zrozumiałych wskaźników jest opóźnienie dwukierunkowe, czyli czas potrzebny sygnałowi audio na wejście do urządzenia mobilnego, przetworzenie przez aplikację działającą na procesorze aplikacji i wyjście 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: Toutput – Tinput

Na tej stronie znajdziesz pomiary opóźnienia dźwięku w obie strony na wybranych urządzeniach Nexus/Pixel i wersjach platformy Android.

Dlaczego mierzymy opóźnienie

Google mierzy i zgłasza opóźnienia, aby deweloperzy aplikacji na Androida mieli dane potrzebne do podejmowania świadomych decyzji dotyczących opóźnień na rzeczywistych urządzeniach. Udostępniając dane o opóźnieniach na wybranych urządzeniach Nexus i Pixel, chcemy zachęcić całą społeczność Androida do pomiaru, publikowania i zmniejszania opóźnień na wszystkich urządzeniach z Androidem. Dołącz do nas w poświęceniu na rzecz zmniejszenia opóźnienia dźwięku.

Wpływ aplikacji na opóźnienia

Przetwarzanie sygnału może powodować następujące rodzaje opóźnień:

  • Algorytmiczny. To opóźnienie jest nieuniknione i nie zależy od procesora. Przykładem jest opóźnienie dodane przez filtr o ograniczonej odpowiedzi impulsowej (FIR).
  • Komputerowy. To opóźnienie jest związane z liczbą wymaganych cykli procesora. Na przykład tłumienie sygnału jest zwykle realizowane przez operację mnożenia, która wymaga zmiennej liczby cykli w zależności od procesora.

Jak mierzymy

Pomiary wymienione na tej stronie zostały wykonane za pomocą przewodnika audio Dr. Ricka O'Rangatestu sprzężenia dźwiękowego (efekt Larsena). Pomiary zakładają, że przetwarzanie sygnału przez aplikację nie powoduje opóźnienia algorytmicznego i prawie żadnego opóźnienia obliczeniowego.

Pomiar opóźnienia w obie strony przeprowadzamy za pomocą złącza słuchawek 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 słuchawek: Toutput – Tinput

  • Ważne aplikacje muzyczne (takie jak gitara i przetwarzanie głosu) korzystają z złącza słuchawek.
  • Pomiar opóźnienia w obie strony mikrofonu i głośnika w urządzeniu może być uciążliwy, ponieważ trudno jest zapobiec niekontrolowanemu oscylacji w otwartej przestrzeni.
  • Przetworniki na urządzeniu są małe i w celu osiągnięcia niewielkich rozmiarów rezygnują z częstotliwości. Aby to zrekompensować, stosujemy przetwarzanie cyfrowe, które zwiększa opóźnienie algorytmiczne na ścieżce na urządzeniu.

Czasy oczekiwania na sygnał z mikrofonu i głośnika mogą mieć znaczenie, ale zwykle dotyczy to tylko jednego kierunku, a nie obu. Techniki pomiaru opóźnienia jednokierunkowego opisano w artykułach Mierzenie opóźnienia wyjściaMierzenie opóźnienia wejścia.

Przykładowe pomiary

Podane niżej pomiary dotyczą numeru kompilacji. Urządzenia są wyświetlane w przybliżonym porządku daty premiery i wersji platformy. Możesz też wyświetlić opóźnienia na wykresie. Aplikacja testowa korzysta z natywnego interfejsu API do obsługi dźwięku na Androidzie opartego na OpenSL ES.

Model Wersja platformy
Numer kompilacji
Częstotliwość próbkowania
(Hz)
Rozmiar bufora
(klatki)
Rozmiar bufora
(ms)
Czas błądzenia
(ms)
± jeden bufor
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

Rysunek 3. Czasy oczekiwania w obie strony