Android na przestrzeni lat doczekał się naprawdę wielu usprawnień. Najczęściej jednak zwracamy uwagę na te, które są widoczne na pierwszy rzut oka – wygląd, obsługę i nowe funkcje. Zazwyczaj największe zmiany zachodzą „pod maską” i często odgrywają ważną rolę. Jedną z takich zmian jest poprawianie opóźnienia dźwięku, które w ciągu ostatnich czterech lat zostało bardzo mocno zredukowane.
Opóźnienie jest ważne
Pokrótce powiedzmy sobie czym jest opóźnienie dźwięku. Jest to czas – zwykle mierzony w milisekundach – między wejściem/nadaniem sygnału audio a jego wyjściem/odtworzeniem. Wpływ na to ma wiele czynników, jak przykładowo konwersja cyfrowo-analogowa, buforowanie czy cyfrowe przetworzenie sygnału.
Wydawać by się mogło, że skoro są to wartości tak małe, że mierzone są w milisekundach, to nie powinniśmy na nie zwracać uwagi. Nic bardziej mylnego. Każdy z nas ma inną tolerancję, ale nawet małe opóźnienia mogą być krytyczne w pewnych scenariuszach. Przede wszystkim mowa o systemach nagłośnieniowych czy też transmisji na żywo w radiu i telewizji. Nadmierne opóźnienie audio może obniżyć jakość odbieranego materiału, tym samym obniżając interaktywność, dlatego też jest niezwykle ważne, aby pozostawało ono na jak najniższym poziomie.
Google zredukowało opóźnienia audio na Androidzie
Na swoim blogu Google chwali się efektem swoich prac. W ciągu ostatnich 4 lat podjęty został szereg działań, które poprawiały opisywany problem. Poczynania te były ściśle skoordynowane z producentami sprzętu, doprowadzając do znacznych ulepszeń w ekosystemie urządzeń. Średnie opóźnienie najpopularniejszych smartfonów z Androidem spadło poniżej 40 ms, co jest wartością spełniająca wymagania aplikacji czasu rzeczywistego.
Spadek z poziomu 109 ms do 39 ms musi robić wrażenie. Ktoś mógłby powiedzieć, że to naturalne i wynika z postępu, jaki co roku się dokonuje, jednak problem ten jest nieco bardziej złożony. Kluczowe jest zaglądnięcie w nieco bardziej szczegółowe dane, aby zrozumieć, jak wiele ciężkiej pracy musiało zostać wykonanej.
Spoglądając na dane z 2017 roku widzimy dwie ciekawe rzeczy. Rozrzut, jaki jest pomiędzy najlepszym a najgorszym urządzeniem, jest bardzo duży. Ciekawe jest też to, że w tamtym okresie najpopularniejsze urządzenia produkował Samsung. Mówimy więc o jednym producencie, któremu powinno być łatwo omawianą kwestię skoordynować i ustabilizować na podobnym poziomie na wielu swoich smartfonach. Tak jednak nie było i rozrzut opóźnienia wynosił aż 222 ms.
Porównując to z tegorocznymi danymi widzimy, że udało się rozrzut ten zmniejszyć aż 8-krotnie – do poziomu zaledwie 28 ms. Tym bardziej wygląda to imponująco, kiedy spojrzymy na urządzenia znajdujące się w zestawieniu. Mamy tutaj przedstawicieli nie tylko Samsunga, ale też Huawei, Oppo, Vivo i Xiaomi. Stawka ta jest zatem bardziej zróżnicowana, co pokazuje, jak istotna była współpraca Google z producentami.
To, o czym czytacie powyżej, dotyczy klasycznego opóźnienia dźwięku obejmującego wejście audio, przetworzenie dźwięku i jego wyjście. W dobie inteligentnych urządzeń coraz częściej mamy jednak do czynienia z generowaniem dźwięku na podstawie zdarzeń dotknięcia ekranu. To właśnie ono staje się w tym przypadku sygnałem wejściowym.
W związku z tym pojawiają się kolejne problemy, gdyż opóźnienia wprowadzane po dotknięciu ekranu wynoszą około 20 ms (typowe wartości dla nowoczesnych urządzeń z Androidem). Jest to 4-krotnie więcej niż wynosi ono zwykle dla klasycznego wejścia audio. Aby oszacować zatem opóźnienie od dotknięcia ekranu do usłyszenia dźwięku musimy do wartości z wykresu dodać 15 ms.
Biorąc pod uwagę powyższe liczby, oznacza to, że tego typu średnia wartość w najpopularniejszych smartfonach z Zielonym Robotem jest nadal niższa, niż wymagana w przypadku większości aplikacji audio czasu rzeczywistego.
Co dalej?
Pomimo znacznego zmniejszenia opóźnień dźwięku w ekosystemie Androida, Google nie zaprzestaje prac. Szacuje się, że w przypadku profesjonalnych aplikacji audio na Androida wymagane jest opóźnienie wynoszące nie więcej niż 20 ms. Celem długoterminowym pozostaje natomiast 10 ms. Być może kolejne zmiany znajdą się w nadchodzącym Androidzie 12. Niezmiernie cieszy mnie, że Amerykanie nie ustają w próbach dostarczania nam jak najlepszych wrażeń końcowych.
Opisywany problem jest również istotny z jeszcze jednego punktu. Niezwykle popularne jest teraz przesyłanie muzyki bezprzewodowo, a to oczywiście generuje kolejne opóźnienia. Być może ciągła praca Google, jak również inicjatywy typu Snapdragon Sound sprawią, że niedługo bezprzewodowe przesyłanie dźwięku jeszcze w mniejszym stopniu odbiegało będzie od tego przewodowego.