artykuły

PlayStation 4 Pro z telewizorem 4K – test

Pierwsza konsola gotowa na 4K

253
25 listopada 2016, 14:35 Mateusz Brzostek

PS4 Pro – 4K czy nie, czyli co z tą rozdzielczością?

Najbardziej kontrowersyjną cechą PlayStation 4 Pro (i nadchodzącego Xboksa „Scorpio”) jest możliwość grania w rozdzielczości 4K. Sprzętowi zapaleńcy, porównujący moc obliczeniową, pojemność i przepustowość pamięci układów graficznych używanych w pecetach do tych z konsol, zauważyli, że konsole teoretycznie nie są na tyle wydajne, by wyświetlać grafikę 3D w takiej rozdzielczości. Układ graficzny w PS4 Pro ma moc obliczeniową nieco ponad dwa razy większą niż w PS4, a obraz 4K ma cztery razy więcej pikseli niż obraz 1080p – a nawet w tej rozdzielczości PS4 miewa kłopoty z płynnością. Oczywiście, teoretyczna moc obliczeniowa rzadko odzwierciedla praktyczne możliwości systemu graficznego. Twórcy PlayStation 4 Pro oraz gier szybko odpowiedzieli, że szereg technik dostępnych wyłącznie na konsolach pozwala przezwyciężyć te braki.

Jedni i drudzy mają rację; wyświetlanie 4K na PS4 Pro jest możliwe dzięki zwiększonej mocy obliczeniowej GPU, ale jedynie w połączeniu z kilkoma technikami programistycznymi. Na czele tych technik stoją różne warianty rekonstrukcji temporalnej.

Rekonstrukcja temporalna

To cała grupa technik, w których do wygenerowania nowego obrazu używa się informacji pochodzących z poprzedniego. Będziemy je w skrócie nazywać RT. Podobnie jak funkcja temporalnego wygładzania krawędzi próbkuje piksele w różnych miejscach w następujących po sobie klatkach, tak rekonstrukcja temporalna prowadzi do generowania różnych pikseli w kolejnych klatkach. Można w dużym uproszczeniu powiedzieć, że zamiast generować wszystkie piksele w czasie renderowania jednej klatki, generuje się tylko część; w następnej klatce – też tylko część, ale inną. Ze złożenia tych dwóch części powstaje cały obraz.

Powrót przeplotu?

Jedną z pierwszych gier wykorzystujących pewien rodzaj rekonstrukcji temporalnej był niesławny Quantum Break. W grach na PS4 Pro zauważyliśmy do tej pory inny rodzaj RT, z którym mogliście się już zetknąć pod angielskim terminem checkerboarding (od  słowa checkerboard – szachownica). Checkerboarding polega na generowaniu co drugiego piksela w każdej klatce (nie co czwartego!), oczywiście przy naprzemiennej zmianie wzoru szachownicy. Możemy sobie wyobrazić, że w parzystych klatkach są generowane białe pola, a w nieparzystych – czarne.

Jaką rozdzielczość ma przedstawiony powyżej obraz? Można powiedzieć, że 8 × 9, co dobrze opisze liczbę pikseliWyobraźcie sobie, że każdy piksel z drugiej kolumny przesuwamy w lewo, na puste miejsce w pierwszej kolumnie, po czym przysuwamy całą resztę obrazu o jedną kolumnę w lewo. Postąpiwszy tak samo z kolejnymi kolumnami, otrzymamy osiem kolumn wypełnionych pikselami bez utraty żadnej informacji., ale nie można tego porównać z obrazem o rozdzielczości 8 × 9 pikseli bez przeplotu. Możemy tej miary użyć, żeby wyobrazić sobie obciążenie procesora graficznego, ale nie do opisania ilości widocznych szczegółów, czyli zdolności rozdzielczej w takim znaczeniu, w jakim określenie to stosuje się do instrumentów optycznych.

Może Wam się to kojarzyć z techniką przeplotu (interlacing), znaną z analogowej telewizji, i słusznie. Tam wyświetla się tylko co drugą poziomą linię obrazu przy każdym odświeżeniu ekranu. Gdybyśmy śledzili tylko jedną linię obrazu, to zauważylibyśmy, że zmienia się ona tylko co drugie odświeżenie ekranu. Obraz powstający na ekranie składa się w połowie ze starej informacji, a w połowie z nowej, ale zmienia się przy każdym odświeżeniu ekranu. Na ekranie kineskopowym obraz świeci tylko przez chwilę, a nie przez cały okres między kolejnymi odświeżeniami. W połączeniu z bezwładnością wzroku sprawia to wrażenie jednocześnie płynnego ruchu i pełnej rozdzielczości, choć wcale nie ma tyle samo pełnych obrazów co odświeżeń ekranu.

Oczywiście, tradycyjny przeplot nie nadaje się do zastosowania w grafice komputerowej i nowoczesnych telewizorach. Po pierwsze, LCD wyświetlają obraz cały czas – zastępują poprzedni następnym bez wygaszania matrycy – więc bezwładność wzroku nie ukrywa artefaktów tak łatwo. Po drugie, w grach obraz na ekranie reaguje na działania użytkownika, który łatwiej zauważy wszelkie artefakty czy opóźnienie (input lag). Po trzecie, skoro obraz nie powstaje sekwencyjnie, po jednej linii od góry do dołu, to nie ma potrzeby dzielenia go na linie – można wygenerować nowe piksele na dowolnej pozycji.

Śledzenie geometrii i propagacja koloru

Rekonstrukcja temporalna w tej szachownicowej odmianie byłaby łatwo zauważalna, szczególnie przy szybkich ruchach: połowa pikseli na ekranie pokazywałaby stary obraz. Nie można po prostu zignorować połowy pikseli; nawet te, które nie zostały wygenerowane w obecnej klatce, muszą zostać jakoś zaktualizowane. W praktyce stosuje się więc sztuczki, które właśnie to umożliwiają i minimalizują artefakty w ruchu.

Jedną z nich jest śledzenie geometrii sceny dzięki użyciu tzw. bufora id. Bufor id zawiera identyfikatory wielokątów, które najbardziej wpływają na kolor poszczególnych pikseli. Identyfikatory wielokątów pozostają takie same w kolejnych klatkach. Bufor id musi być generowany w pełnej rozdzielczości, czyli zawierać informacje o każdym pikselu, nie tylko co drugim.

Bufor id można wykorzystać w dwóch technikach skalowania. W jednej generuje się obraz w dowolnej rozdzielczości niższej od maksymalnej (zwykle jest to 1/4, czyli 1920 × 1080), a następnie wypełnia nieznane piksele kolorem sąsiadujących. Bufor id pozwala sprawdzić, który sąsiadujący piksel należy do tego samego wielokąta: z niego najlepiej wziąć kolor. Ta technika powoduje, że krawędzie obiektów są tak ostre jak podczas wyświetlania obrazu w pełnej rozdzielczości – każdy piksel jest bezbłędnie przypisany do odpowiedniego wielokąta. Jednak gęstość detali na powierzchni obiektów jest podobna jak w dwa razy niższej rozdzielczości – nie liczymy przecież koloru dla każdego piksela osobno, a tylko dla co czwartego.

Druga technika ma komponent temporalny: wymaga wzięcia pod uwagę danych o kolorze oraz bufora id z poprzedniej klatki. Najpierw określa się, do którego wielokąta należy każdy piksel, co już zapewnia dobrą jakość krawędzi obiektów. Następnie wypełnia się nieznane piksele kolorem – ale nie skopiowanym po prostu z sąsiadującego piksela, lecz pobranym w przybliżeniu z tego samego miejsca w poprzedniej klatce. Jeśli obiekt na ekranie się przesunął, bierze się kolor z jego poprzedniej pozycji, a nie z innego obiektu zajmującego teraz ten piksel. W przykładzie z szachownicą możemy sobie wyobrazić, że w poprzedniej klatce policzono kolor dla czarnych pikseli, a w tej – dla białych. Czarne piksele w obecnej klatce wypełnia się kolorem czarnych z poprzedniej klatki, odpowiednio przesuniętych zgodnie z ruchem obrazu na ekranie.

Pierwsza z technik może być używana w dowolnej kombinacji rozdzielczości wejściowej i wynikowej, ale najczęściej jest stosowana do podwojenia rozdzielczości (czyli zwiększenia liczby pikseli czterokrotnie). Szachownicowy przeplot zawsze podwaja liczbę pikseli.

Skalowanie ukryte za... innym skalowaniem

Oczywiście, wspomniane techniki można połączyć z innymi, znanymi od dawna z konsolowych gier. Niektóre gry mogą generować obraz na przykład w rozdzielczości 1600 × 1800, zwiększać rozdzielczość do 3200 × 1800 przy użyciu szachownicowego przeplotu, a wynikowy obraz rozciągać do 3840 × 2160 (4K). Innym przykładem może być generowanie obrazu 1920 × 1080 i podwojenie rozdzielczości do 4K ze śledzeniem geometrii. Niektóre gry wykorzystują też mechanizmy dynamicznej zmiany rozdzielczości zależnie od obciążenia GPU. Do tego na różnych etapach generowania obrazu mogą używać wygładzania krawędzi: tradycyjnego, postprodukcyjnego albo temporalnego. Nie wszystkie etapy muszą wykorzystywać tę samą rozdzielczość; na przykład proste efekty postprodukcyjne, takie jak aberracja chromatyczna albo filmowe ziarno, można małym kosztem dodać na końcu, w pełnej rozdzielczości.

Wszystko to bardzo zaciemnia w wielu grach naturę rozdzielczości i skalowania. Czasem wystarczy rzut oka na ruchomy obraz, żeby zobaczyć charakterystyczne schodki na skośnych krawędziach, sygnalizujące niską rozdzielczość i nie dość dobre wygładzanie krawędzi. Czasem dopiero po dłuższej rozgrywce zaczynamy zauważać, że niektóre efekty lub obiekty nie wyglądają tak ostro i stabilnie, jak byśmy się spodziewali.

Dlatego proponujemy, by zamiast liczyć piksele, po prostu przyglądać się efektom i oceniać je empirycznie, bo rozdzielczość stała się już tylko jednym z wielu czynników (w dodatku często trudnym do określenia) wpływających na wrażenia wizualne.

Brakuje pikseli, ale czy to źle?

Żadna z wymienionych technik skalowania nie daje tak dobrych efektów jak obraz wyświetlony w tradycyjny sposób w pełnej rozdzielczości 4K, na przykład na pececie. Po prostu informacji jest mniej, niż potrzeba. Zamiast 8,3 mln pikseli mamy połowę albo jedną czwartą, z resztą „dorobioną” albo kosztem detali na powierzchniach obiektów, albo kosztem odwzorowania ruchu (jak przy zastosowaniu przeplotu).

Te wszystkie techniki mają jedną wspólną cechę: dają doskonałe efekty na nieruchomym obrazie. Jeśli zastosowano jedną z technik temporalnych, to nieruchomy obraz jest właściwie nieodróżnialny od „prawdziwego” 4K. 

Niestety, mają też sporą wadę, którą twórcom gier udaje się lepiej lub gorzej ukryć: dają obraz niestabilny w czasie. Chodzi o to, że spośród zmian na ekranie nie wszystkie są wywołane rzeczywistym ruchem w świecie gry – niektóre są artefaktem skalowania. Najczęściej spotykamy:

  • migotanie podświetlonych krawędzi – znajomy efekt występujący na wszystkich platformach sprzętowych, związany z brakami w wygładzaniu krawędzi;
  • powidoki za ruchomymi obiektami – spowodowane rekonstrukcją temporalną;
  • zniekształcony obraz na krawędziach ruchomych obiektów – zjawisko spowodowane rekonstrukcją temporalną ze śledzeniem geometrii, wizualnie podobne do blokowych artefaktów na zbyt mocno skompresowanych filmach;
  • pulsowanie krawędzi i cienkich linii – spowodowane niewłaściwym połączeniem wygładzania krawędzi i rekonstrukcji temporalnej.

Jak bardzo przeszkadzają te artefakty? To zależy w dużym stopniu od rozgrywki. Na przykład w Call of Duty: Infinite Warfare podczas biegania i strzelania żadne niedoskonałości nie rzucają się w oczy, a wrażenie ostrości obrazu związane z wysoką rozdzielczością nas nie opuszcza. Nie można jednak powiedzieć, że artefaktów nie widać – rzućcie tylko okiem na poniższy film, na którym nawet w dwukrotnym pomniejszeniu nie da się ich przegapić:

Uwaga: wybierz 1080p60 z menu ustawień jakości!

W każdej grze jest inaczej; na dalszych stronach omawiamy sprawność skalowania w każdej z nich. W większości przypadków możecie też porównać jakość obrazu na PS4 Pro i na innych platformach – także w grach uruchomionych w 4K na PC, co oczywiście wymaga wielokrotnie droższej maszyny.

BONUS: Dlaczego nie mamy takich technik skalowania na pecetach?

Wykorzystanie bufora id do śledzenia geometrii nie jest nowym pomysłem: było opisywane w 2013 roku przez pracowników IntelaŹródło: „The Visibility Buffer: A Cache-Friendly Approach to Deferred Shading, C. Burns, W. Hunt, Intel Labs 2013”, pokrewna technika została też udostępniona przez AMD w repozytorium GPUOpenPatrz: GeometryFX. Zrealizowanie jej w starszych architekturach GPU i w API innych niż Vulkan lub DirectX 12 jest kosztowne obliczeniowo i często nie daje spodziewanej oszczędności. Przydają się też funkcje sprzętowe dostępne dopiero od niedawna, szczególnie Primitive Discard Accelerator – mechanizm pozwalający szybko odrzucić subpikselowe wielokąty, o którym mówiliśmy w opisie architektury Polaris. Spodziewamy się, że z czasem techniki podobne do konsolowych rozpowszechnią się także w świecie pecetów. Wydaje się to nieuniknione, szczególnie w wyświetlaniu wirtualnej rzeczywistości.

3