Jeśli śledzisz uważnie wielu youtuberów, możesz zauważyć, że jedną z głównych trudności, z jakimi się borykają, jest światło… a raczej jego brak. Dotyczy to również filmów animowanych i seriali telewizyjnych: coś jest nie tak z ciemnymi scenami. Bloki, smugi kolorów, a czasem jedno i drugie… w dobie wysokiej rozdzielczości i ultraszybkiego streamingu te wady reprodukcji nie powinny istnieć, a jednak żyją wśród nas. Dlaczego? Tom Scott wyjaśnia to szczegółowo.
Załóżmy, że zaczynasz oglądać film przez streaming na swoim telewizorze HD i widzisz w szczególnie ciemnej scenie okropne smugi i bloki. Pierwsze podejrzenia padają na niespodziewane obniżenie jakości streamingu lub nadmierną kompresję materiału. Z technicznego punktu widzenia to dwie możliwe przyczyny, ale to niepożądany efekt, który wymaga głębszej analizy.
Trafiamy na kanał Toma Scotta, który pokazał nam najważniejsze problemy podczas tworzenia aplikacji oraz zbadał wyzwanie prowadzenia samochodów w trzeciej osobie za pomocą dronów. Jako youtuber z ponad dwoma milionami subskrybentów Tom doskonale zna te paskudne smugi, a pierwszym powodem ich istnienia jest… brak wystarczającej liczby kolorów:
Ile kolorów ma wideo cyfrowe?
W większości cyfrowych filmów liczba dostępnych kolorów sięga 16,7 miliona. Liczba ta związana jest ze sposobem działania ekranu. Podczas odtwarzania wideo na komputerze, telewizorze czy urządzeniu mobilnym sygnał cyfrowy jest zamieniany na polecenia dla ekranu, który zmienia jasność milionów czerwonych, zielonych i niebieskich świateł, nawet do 60 razy na sekundę.
To brzmi jak bardzo kompletne rozwiązanie i trzeba przyznać, że służy nam dobrze, ale ma ograniczenie: te czerwone, zielone i niebieskie światła nie mogą być ustawione na dowolną jasność. W teorii najbardziej podstawowy sygnał działałby na głębi bitowej jednego bitu, czyli „włączony-1” lub „wyłączony-0” dla każdej kombinacji czerwonego, zielonego i niebieskiego. 2 razy 2 razy 2... osiem kolorów. Jeśli przejdziemy do dwóch bitów na każdy kolor, nowy limit to 64 kolory. Ale na nowoczesnym ekranie potrzebujemy ośmiu bitów na piksel, co daje obecne 16 777 216 kolorów (256 x 256 x 256).
Chociaż istnieją aplikacje, które mogą wykorzystać 10, a nawet 12 bitów na piksel, próg 16,7 miliona jest uważany za „odpowiedni”... dopóki nie przestaje być. Dziś normalne jest odtwarzanie filmów z YouTube o szerokości 1920 pikseli, ale jeśli zdecydujesz się na zielone tło i masz tylko 256 odcieni tego koloru, pasy pojawiające się co siedem lub osiem pikseli są nieuniknione, a jeśli scena robi się ciemniejsza, efekt jest jeszcze gorszy. Nie ma wystarczająco dużo „ciemnych kolorów”.
Tom wyjaśnia również, dlaczego pasy są mniej widoczne w jasnych scenach (nadal są, a bezwzględna zmiana z jednego koloru na drugi pozostaje taka sama, ale względna różnica jest minimalna), jakie są główne „sztuczki” minimalizujące ich wpływ (począwszy od klasycznego „ditheringu”), a także skutki wspomnianej kompresji. Czysty, nieprzetworzony wideo w wysokiej rozdzielczości wymaga około jednego gigabita na sekundę danych przy streamingu. Wyglądałoby świetnie... ale to drogie i nieefektywne. Dlatego wszystkie serwisy wideo stosują kompresję stratną („lossy”), poświęcając drobne szczegóły na rzecz mniejszego rozmiaru i lepszej wydajności podczas streamingu.
To jednak gra o równowagę, a algorytm kompresji priorytetowo traktuje zachowanie jakości w częściach najbardziej interesujących dla widza, ale jeśli to, co zostaje, jest bardzo ciemne, pasy i bloki tam będą.