Skoro już jesteśmy przy kodekach, warto się pochylić nad zagadnieniem akceleracji sprzętowej. Wspomniany H.264/AVC jest na rynku tak długo i jest stosowany tak często, że sprzętowe dekodowanie filmów z jego wykorzystaniem można uznać niemal za standard. Radzą sobie z tym od dobrych kilku lat zarówno karty graficzne, jak i układy w smartfonach. Kodek VP9 jest następcą VP8 i rozwiązanie to dopiero zdobywa popularność. Google stara się je intensywnie promować m.in. przez kodowanie za jego pomocą materiałów w witrynie YouTube, a niedawne porzucenie Flasha na rzecz HTML5 to ważny krok w tym planie. Jednak wciąż jest za wcześnie, aby akceleracja sprzętowa dla VP9 była tak popularna jak dla H.264/AVC. Karty graficzne AMD i Nvidii wciąż sobie z nim nie radzą i chociaż Intel w styczniu 2015 roku udostępnił sterowniki, które umieją wykorzystywać do tego celu zintegrowane GPU w jego procesorach, u nas to rozwiązanie pomimo usilnych prób nie chciało działać.
Temat filmów w jakości 4K na YouTube jest o tyle ciekawy, że w zależności od zastosowanego kodeka i przeglądarki wyniki mogą się skrajnie różnić. Na przykład najsłabszy wykorzystany przez nas procesor, dwurdzeniowy Pentium G3220 taktowany z częstotliwością 3 GHz, poradził sobie z dekodowaniem filmu H.264/AVC w Internet Explorerze i Firefoxie, ale VP9 w Chrome był już za dużym wyzwaniem...
Czyli wiemy, że do oglądania filmów na YouTube w 4K i 60 kl./s jest niezbędny Chrome i nie ma co liczyć na obsługę jakiejkolwiek akceleracji sprzętowej, więc całość obliczeń spada na procesor. Jak mocnej jednostki potrzeba, aby podołać temu zadaniu? Dość powiedzieć, że zbyt wolny okazał się Core i5-4670K podkręcony do 4,5 GHz!
Krótki test procesorów
Założeniem testu było sprawdzenie, jak wydajny musi być procesor, by poradził sobie z odtwarzaniem filmów z YouTube w rozdzielczości 4K. Jak wspominaliśmy na poprzedniej stronie, tylko Chrome odtwarza materiały o tej rozdzielczości w 60 kl./s, dlatego Internet Explorera i Firefoxa testowaliśmy tylko w 30 kl./s.
Oto użyty przez nas film 4K w 30 kl./s. Po włączeniu należy wybrać jakość 2160p 4K (kodek VP9 w Chrome, H.264/AVC w Internet Explorerze i Firefoxie).
A to film 4K w 60 kl./s. Po włączeniu należy wybrać jakość 2160p60 4K (kodek VP9 w Chrome, reszta przeglądarek sobie nie radzi).
Po wybraniu odpowiedniej rozdzielczości pomocne okazały się „statystki dla nerdów” (ang. stats for nerds), dostępne po kliknięciu prawym przyciskiem myszy na filmie. Można z nich odczytać m.in. aktualną rozdzielczość filmu i liczbę klatek na sekundę, szybkość buforowania (kb./s), nazwę zastosowanego kodeka i liczbę utraconych klatek (ang. dropped frames), co będzie istotne już za moment.
Testy filmu 4K w 30 kl./s okazały się stosunkowo mało wymagające, dlatego wyniki podajemy binarnie: albo procesor sobie poradził, albo nie. Poległ w nich, w przeglądarce Chrome, jedynie Pentium G3220 taktowany z częstotliwością 3 GHz.
Trzy najsłabsze procesory zostały wybrane ze względu na obecność w zestawach komputerowych, które złożyliśmy jako opcje alternatywne do konsol. Dokładne dane techniczne tych pecetów można znaleźć w artykule porównującym konsole z komputerami.
Wyniki testów z użyciem filmu 4K w 60 kl./s okazały się druzgoczące dla procesorów działających w fabrycznej konfiguracji. Żaden sobie nie poradził!
Skoro nawet najszybsze procesory nie podołały temu zadaniu, darowaliśmy sobie podkręcanie słabszych jednostek, byłoby to bezcelowe. Wybraliśmy trzy najmocniejsze: Core i5-4670K, Core i7-4770K oraz AMD FX-9590.
Pierwszy z wykresów przedstawia procentowy współczynnik, a drugi – liczbę utraconych klatek podczas odtwarzania pierwszych 6 s filmu. Dlaczego tak krótko? Dość szybko okazało się, że problematycznym miejscem jest okolica 3. sekundy i że przy szybkim taktowaniu ma ona największe znaczenie, choć w przypadku wolniej taktowanego Core i5-4670K czy AMD FX-9590 film potrafił zacinać również w innych miejscach.
Dla przypomnienia: odtwarzaliśmy materiał w 60 kl./s, czyli przez 6 s mogło zostać wyświetlonych maksymalnie 360 klatek. Im więcej klatek zostało utraconych, tym gorzej, a jedynym procesorem, który zapewnił idealną płynność, jest Core i7-4770K podkręcony do 4,5 GHz. Szybsze wielordzeniowe jednostki, takie jak Core i7-4960X (6 rdzeni, 12 wątków, częstotliwość taktowania powyżej 3600 MHz), są w pełni wykorzystywane i zapewniają odpowiednią płynność. Nieco tańsze Intele o przynajmniej sześciu rdzeniach również zapewnią wystarczającą wydajność, nawet nieprzetaktowane. Mamy tutaj na myśli Core i7-5820K oraz Core i7-5930K.
Jeszcze raz podkreślamy: na wykresach przedstawiliśmy współczynnik procentowy oraz liczbę utraconych klatek w wybranym krótkim wycinku filmu, więc na przykład 50% utraconych klatek nie oznacza automatycznie, że połowa klatek w dowolnym materiale 4K w 60 kl./s zostanie utracona, a jedynie to, że taki wynik osiągnęliśmy w swojej procedurze testowej.
„Procesor do internetu? Tylko Core i7!”
Jeszcze do niedawna ten żart funkcjonował w kręgu geeków #PCMR i nie miał, oczywiście, żadnego związku z rzeczywistością, ponieważ nie znamy nikogo, kto potrzebowałby ośmiu wątków do przeglądania zasobów globalnej sieci i umiałby dostrzec różnicę w podwójnej ślepej próbie (no chyba że ktoś używa na co dzień pięciu przeglądarek i w każdej ma otwartych 10–15 kart, i to jeszcze w trybie incognito...).
Jednak po teście odtwarzania filmów 4K w 60 kl./s z YouTube żart przestał być tylko żartem, ponieważ jedynie Core i7-4770K podkręcony do 4,5 GHz zdołał w pełni odtworzyć taki materiał. Półtora tysiąca za procesor „do YouTube” – to brzmi chyba wystarczająco abstrakcyjnie, by dalej tego nie komentować.
Niestety, podczas testów sterowniki Intela ze stycznia 2015 roku, które miały umożliwić dekodowanie VP9 z użyciem zintegrowanego GPU, nie chciały działać poprawnie, więc gdy pisaliśmy te słowa, wszystkie obliczenia związane z tym procesem musiały być wykonywane przez główny procesor komputera i przy 60 kl./s tylko najszybsza wielowątkowa jednostka temu podołała.
Jakie widzimy rozwiązania tego problemu? Użycie innego kodeka niż VP9 (do 60 kl./s) wydaje się mało prawdopodobne, ponieważ jest to rozwiązanie Google i nawet jeśli powstałaby (czy też istnieje) lepsza opcja, gigant niekoniecznie musi mieć interes w tym, aby promować „obce” kodery. Nadzieje pokładamy w zapewnieniu sprzętowego dekodowania obrazu przez producentów kart graficznych, dzięki czemu procesor miałby znacząco mniej pracy. Czy jest to realne? Skoro Intelowi się „udało”, to może AMD i Nvidii również ta sztuka się powiedzie...