Wstęp
W informacjach o niedawnej aktualizacji sterowników Radeon Software (wersja 18.5.1) znalazł się interesujący mnie zapis:
Microsoft PlayReady 3.0 – Supported on Radeon RX 400 Series and Radeon RX 500 Series desktop graphics products.
Większość użytkowników peceta zapewne nigdy nie słyszała o technice PlayReady, podczas gdy za tą nazwą ukrywa się ważna funkcjonalność. Czekałem na tę funkcję w sterownikach AMD od kilku miesięcy – odkąd jeszcze przed wprowadzeniem procesorów Ryzen G (APU Raven Ridge) zapowiedziano, że będzie gotowa niedługo po nich.
Co można obejrzeć na pececie w 4K z HDR?
Te materiały to (w kolejności od dostępnych najłatwiej i dla największej rzeszy użytkowników):
- filmy 4K na YouTube lub Vimeo – dostępne za darmo (niestety, gama dostępnych treści jest ograniczona głównie do krótkich demonstracyjnych filmów w rodzaju tych, które wyświetla się w showroomach i marketach, żeby zareklamować telewizory);
- nagrany samodzielnie film (wiele nowych smartfonów i kamer sportowych rejestruje wideo w rozdzielczości 4K, choć rzadko w 60 kl./sek.);
- filmy i seriale strumieniowane w usłudze Netflix (żeby móc oglądać wideo 4K i HDR, trzeba opłacać najdroższą wersję usługi, za 52 zł miesięcznie; o innych wymaganiach opowiem dalej);
- film na płycie Blu-ray UHD (niestety, napędy Blu-ray UHD do pecetów są jeszcze słabo dostępne). Wrócę do tej kwestii niebawem, kiedy będę dysponował odpowiednim napędem.
A czego nie można obejrzeć na pececie w 4K? Filmów i seriali strumieniowanych w usługach Amazon Prime Video i HBO GO. Amazon pozwala na oglądanie wideo w rozdzielczości 4K lub z HDR wyłącznie przez aplikacje wbudowane w telewizory i niektóre stacjonarne odtwarzacze (pełna lista), a pecet ogranicza nas do Full HD. HBO GO w ogóle nie oferuje wysokich rozdzielczości. Niestety, prawdopodobnie nie uda się też obejrzeć mundialu w Rosji w 4K na pececie – tylko w telewizji.
Ograniczenia techniczne...
Żeby obejrzeć cokolwiek w 4K i/lub z HDR, trzeba przede wszystkim mieć odpowiedni wyświetlacz. To oczywiste i nie będę dalej analizował gamy dostępnych ekranów 4K. W swoich próbach wykorzystałem udostępniony redakcji PCLab.pl telewizor LG OLED55C7V-Z.
Urządzenie, które miałoby odtwarzać materiały w rozdzielczości 4K i z HDR, musi mieć odpowiednie cechy techniczne. Filmy w wysokiej rozdzielczości są w większości źródeł kodowane za pomocą jednego z dwóch kodeków: H.265 (HEVC) lub VP9. Ten pierwszy jest wykorzystywany na przykład w filmach na płytach blu-ray UltraHD oraz w usługach Netflix i Amazon Prime Video. Ten drugi jest stosowany przez YouTube w filmach o rozdzielczości powyżej 1920 × 1080 i płynności powyżej 30 kl./sek. (niższe rozdzielczości są dostępne w formatach VP9 i H.264, a wyższe – wyłącznie w VP9).
Dekodowanie VP9 lub HEVC z wykorzystaniem procesora ogólnego przeznaczenia jest kosztowne obliczeniowo i energetycznie, dlatego w sprzęcie przystosowanym do wyświetlania 4K zwykle używa się sprzętowych dekoderów. Mają je prawie wszystkie nowoczesne smartfony, telewizory czy karty graficzne najnowszej generacji. W przypadku pecetów ważne jest nie tylko to, czy karta graficzna umie sprzętowo dekodować dany format w odpowiedniej rozdzielczości i przepływności, ale również to, czy oprogramowanie potrafi wykorzystać tę możliwość. Jak za chwilę pokażę, niedostatków programowych jest sporo.
...i ograniczenia nietechniczne
Nawet jeśli mój sprzęt spełnia wszystkie techniczne warunki konieczne do sprawnego odtwarzania filmów w wysokiej rozdzielczości, to nie znaczy, że ktoś zechce mi udostępnić takie filmy. Filmy i seriale w 4K są produkowane przez studia filmowe, a następnie rozprowadzane przez wytwórnie i/lub dystrybutorów. Dystrybutorami są np. Netflix, Warner Home Video i Galapagos (w przypadku mojego jedynego filmu na Blu-ray UHD). Studia filmowe pozwalają na rozprowadzanie udostępnionych przez siebie materiałów pod warunkiem, że będą one odpowiednio zabezpieczone przed kopiowaniem (częściej – przed odtwarzaniem przez uczciwych nabywców…). Nie są to ograniczenia techniczne, bo wynikają wyłącznie z umów pomiędzy wytwórniami a dystrybutorami oraz ograniczeń prawnych.
HDCP 2.2
Jednym z takich ograniczeń jest system zabezpieczeń HDCP 2.2 (High-Bandwidth Digital Copy Protection), stosowany w przytłaczającej większości komercyjnych filmów 4K. HDCP ogranicza dostęp do strumienia danych przepływającego ze źródła (urządzenia, które dekompresuje wideo) do wyświetlacza. Netflix, Amazon Prime Video, filmy na Blu-ray UHD – wszystkie te sposoby dystrybucji treści na pecety wymagają, żeby sterownik karty graficznej i urządzenie wyświetlające były zgodne z HDCP 2.2.
Jak wspomniałem, wymóg HDCP 2.2 wynika tylko z umów między dostawcami materiałów filmowych. Są od tego wyjątki: na przykład filmy z usługi Netflix można strumieniować w 4K z konsoli PlayStation 4 (slim), choć obsługuje ona tylko poprzedni standard zabezpieczeń HDCP, 1.4. Domyślamy się, że pozycja Sony w negocjacjach oraz to, że PS4 jest zamkniętym, zabezpieczonym innymi metodami systemem, przekonały Netfliksa i wszystkich, którzy dostarczają mu filmy, że nie grozi im nieprzeciętna skala piractwa.
System zabezpieczeń HDCP został opracowany przez firmę Digital Content Protection, której założycielem i właścicielem jest Intel. Producenci i sprzedawcy sprzętu zgodnego z HDCP i treści zabezpieczonych przez HDCP muszą kupić od Digital Content Protection odpowiednią licencję. Jednym z powodów, dla których firmy z branży rozrywkowej wspólnie korzystają z takiego zabezpieczenia, jest amerykańska ustawa DMCA. Z jednej strony pozwala ona użytkownikom na dość dowolne dysponowanie zakupionymi dobrami kultury. Z drugiej strony zakazuje rozpowszechniania urządzeń i oprogramowania łamiących zabezpieczenia – wolno to zrobić tylko samodzielnie i w tajemnicy. Nawet opublikowanie w internecie informacji o działaniu systemów zabezpieczeń może być potraktowane jako naruszanie własności intelektualnej twórców zabezpieczenia. Użycie HDCP może więc zapewnić wytwórcom treści bardzo korzystną pozycję w procesach sądowych o łamanie zabezpieczeń przed kopiowaniem.
Microsoft PlayReady 3.0
W pecetach z systemem Windows wykorzystywana jest również technika PlayReady 3.0 (patrz dokumentacja Microsoftu). Ta ogranicza dostęp do wspomnianego strumienia danych, zanim trafi pod kontrolę zabezpieczenia HDCP, a zarazem ma gwarantować, że podsystem HDCP 2.2 nie jest „kontrolowany” przez oprogramowanie mające omijać zabezpieczenia (np. maszynę wirtualną). Można powiedzieć, że PlayReady jest łącznikiem między zabezpieczeniami treści na płycie Blu-ray lub w strumieniu internetowym a zabezpieczeniem HDCP.
Do działania PlayReady potrzebna jest odpowiednia wersja Windows 10, kompatybilny sterownik GPU oraz jakiś sposób zapewnienia zaszyfrowanej, odciętej od reszty systemu enklawy dla oprogramowania odtwarzającego wideo: albo Intel Software Guard Extensions (w przypadku procesorów Intela), albo TrustZone (w przypadku procesorów AMD, zapewne również Qualcomma).
Eksperyment z odtwarzaniem
Sprawdziłem, jak odtwarzane są trzy rodzaje multimediów 4K na pecetach z różnymi układami graficznymi. Dla porównania sprawdziłem to samo na Xboksie One X i w aplikacjach wbudowanych w telewizor LG.
Wykorzystałem świeżą instalację Windows 10, najnowsze wersje sterowników do każdego GPU oraz najnowsze wersje przeglądarek Microsoft Edge i Chromium. Poza wyjątkami, o których napiszę dalej, nie zmieniałem żadnych ustawień w przeglądarkach ani systemie operacyjnym – warunki były takie same, jakie stworzyłby średnio zaawansowany użytkownik po kupieniu nowego komputera.
W eksperymencie uczestniczyły:
- telewizor LG OLED55C7V-Z,
- Core i5-8600K, zarówno ze zintegrowanym GPU (Intel UHD Graphics 630), jak i w kombinacji z osobnymi kartami graficznymi,
- Ryzen 3 2200G, zarówno ze zintegrowanym GPU (Vega 8), jak i w kombinacji z osobnymi kartami graficznymi,
- Ryzen 1400 w kombinacji z osobnymi kartami graficznymi,
- GeForce GTX 1080,
- Radeon RX 480,
- Radeon RX Vega 64,
- konsola Xbox One X.
Netflix 4K + HDR | YouTube 4K + HDR | YouTube 4K 60 kl./s | |
---|---|---|---|
Telewizor LG | Tak | Tak* | Tak* |
Xbox One X | Tak | Nie | Tak* |
Ryzen 5 2200G (Vega 8) | Nie | Tak (Chromium) | Tak |
GeForce GTX 1080 | Tak | Tak (Chromium) | Tak |
Radeon RX 580 | Tak | Tak* (Chromium) | Tak* |
Radeon RX Vega 64 | Nie | Nie | Nie |
Intel UHD Graphics 630 | Nie | Nie | Nie |
* Sporadycznie gubi klatki (więcej informacji poniżej)
Netflix 4K HDR
Materiały z Netfliksa są bez problemu odtwarzane w najlepszej jakości na Xboksie One X i telewizorze. Za to z pecetami nie było tak łatwo. Żeby skorzystać z tej możliwości, trzeba spełnić rząd wymagań podanych na stronie pomocy Netfliksa:
- trzeba używać Windows 10,
- trzeba używać przeglądarki Microsoft Edge lub aplikacji Netflix ze sklepu Microsoftu,
- wszystkie podłączone monitory muszą obsługiwać rozdzielczość 4K przy częstotliwości odświeżania 60 Hz,
- wszystkie podłączone monitory muszą obsługiwać system zabezpieczeń HDCP 2.2,
- trzeba mieć procesor Intel Core siódmej generacji (Kaby Lake) i układ graficzny Intel UHD Graphics, albo kartę GeForce GTX 1050 lub szybszą z 3 GB pamięci lub więcej,
- żeby wyświetlać HDR, trzeba używać systemu Windows 10 w następujących wersjach: w przypadku GPU Intela – 1703 lub nowszej, w przypadku GPU Nvidii – 1709 lub nowszej, i odpowiednio nowych wersji sterowników.
Lista jest długa, a przeciętny klient usługi Netflix zapewne nie zrozumie połowy z tych wymagań. Niektóre z nich dotyczą po prostu ograniczeń technicznych, ale inne mogą być mniej zrozumiałe. Poza tym jest jedno wymaganie, którego nie podano na stronie Netfliksa i o którym nawet pracownica pomocy technicznej nie potrafiła powiedzieć: chodzi o kodek HEVC.
Format HEVC jest obciążony patentami i wymaga pozyskania licencji od konsorcjum JCT-VC, któremu przewodzi Towarzystwo Fraunhofera. Licencja na sprzętowy dekoder HEVC jest opłacana przez producenta sprzętu zawierającego ten dekoder, czyli np. Nvidię, AMD lub Intela. Początkowo odpowiednie oprogramowanie było częścią Windows 10, ale począwszy od zeszłorocznej aktualizacji już nie jest automatycznie instalowane. Trzeba to zrobić ręcznie – i wcale nie jest to takie proste. Wyszukanie „Rozszerzenie HEVC” w sklepie Microsoftu prowadzi do czegoś, co kosztuje 4,50 zł. To niedużo, ale dlaczego mamy płacić za coś (możliwość odtwarzania filmów zakodowanych HEVC), co już kupiliśmy jako część karty graficznej? Poza tym dla takiej sumy nawet nie chciałoby mi się dodawać metody płatności i wpisywać danych karty kredytowej do sklepu Microsoftu.
Co najdziwniejsze, w sklepie Microsoftu jest też drugie rozszerzenie wideo HEVC, którego nie da się znaleźć przez wyszukiwarkę – trzeba znać bezpośredni odnośnik. To drugie jest darmowe i nazywa się „Rozszerzenie wideo HEVC od producenta sprzętu”, co ma zapewne oznaczać, że licencja została już opłacona przez dostawcę karty graficznej. Spośród kilkunastu laptopów, które sprawdziłem w redakcji, tylko jeden (Acer Swift 3 z procesorem i5-7200U i kartą graficzną GeForce MX150) miał fabrycznie zainstalowane rozszerzenie.
Ostatecznie filmy z Netfliksa w rozdzielczości 4K i z HDR udało mi się odtworzyć z pecetów z procesorem Intel Core siódmej i ósmej generacji lub Ryzenem (nie miałem okazji sprawdzić w działaniu APU Bristol Ridge) – mimo że strona pomocy Netfliksa nie wspomina nic o Ryzenach. Potrzebna była osobna karta graficzna, GeForce z serii 1000 lub Radeon Polaris. Co zaskakujące, materiałów Netfliksa w 4K nie da się obejrzeć z użyciem osobnej ani zintegrowanej Vegi – te nie są jeszcze zgodne z PlayReady 3.0. Nie udało się tego zrobić również z wykorzystaniem zintegrowanego GPU Intela, ponieważ większość płyt głównych nie ma złącza HDMI 2.0 (bo wymaga to zastosowania dodatkowego konwertera z sygnałowania DisplayPort na HDMI), nie ma też HDCP 2.2. Co prawda mogliśmy podłączyć monitor 4K przez DisplayPort, ale wtedy aplikacja Netflix wyświetlała błąd U7361-1255-C00D7159 – „nieobsługiwany ekran”. Narzędzie Netfliksa jest tak nieprzyjazne użytkownikowi, że jeśli film czy serial jest dostępny w 4K, nie można go obejrzeć nawet w niżej rozdzielczości. Bez błędu można wyświetlić tylko materiały, które są dostępne maksymalnie w rozdzielczości 1080p.
Xbox One X i telewizor LG nie sprawiały tu żadnych kłopotów.
YouTube 4K 60 kl./sek.
Pamiętacie test procesorów w YouTube? Od tamtej pory nie zmieniło się jedno: bez sprzętowego dekodowania VP9 w zasadzie nie da się oglądać filmów w takiej rozdzielczości i płynności. Oglądałem pierwszych 10 000 klatek (niecałe 3 minuty) filmu przedstawiającego krajobrazy Peru. Sprawdziłem dwie przeglądarki: Microsoft Edge (z włączoną w about:flags obsługą HEVC) oraz najnowszą Chromium. Kryterium oceny było proste: jeśli maszyna zgubiła więcej niż 100 klatek z 10 000 (1%), została zaklasyfikowana jako niezdatna do odtwarzania 4K w 60 kl./sek. Te, które zgubiły pewną liczbę klatek, ale mniejszą niż 100, zostały oznaczone gwiazdką w tabeli powyżej. Tylko dwie konfiguracje nie zgubiły ani jednej klatki: desktopowy GeForce z serii 1000 oraz Ryzen G i wbudowana w niego Vega 8.
Układy graficzne Polaris i Xbox One X stosują hybrydowe dekodowanie formatu VP9: wykorzystuje się procesor i obliczenia GPGPU na procesorze graficznym. Na testowym komputerze z Ryzenem 5 1400 i Radeonem RX 480 użycie CPU oraz GPU nie było bardzo wysokie i przez większość czasu film był odtwarzany płynnie. Tylko na początku i sporadycznie po dłuższym czasie odtwarzania zdarzały się okresy, w których gubionych było kilkanaście–kilkadziesiąt klatek, być może związane z koniecznością kopiowania danych z pamięci systemowej do pamięci GPU przez PCI Express.
W tym eksperymencie znów zdziwiła mnie desktopowa Vega 64: choć sprzętowy dekoder wideo ma te same możliwości jak ten w Ryzenach G, akceleracja dekodowania nie działała ani w Edge, ani w Chromium. Nie wiemy, czy potrzebne są zmiany w sterownikach AMD czy tylko w przeglądarkach.
Największym zaskoczeniem było to, że Microsoft Edge jest pod wieloma względami lepsza w odtwarzaniu wideo niż Chromium. Hybrydowa akceleracja z użyciem GPU Polaris działała w Edge niemal doskonale – zgubionych klatek było bardzo mało. Ponadto Chromium posługuje się czarną listą GPU, w których przypadku nie używa akceleracji sprzętowej, nawet jeśli jest ona dostępna. Musiałem wyłączyć tę czarną listę, żeby wykorzystać możliwość hybrydowego dekodowania z wykorzystaniem Polaris.
YouTube 4K 60 kl./sek. + HDR
Ta najbardziej wymagająca kombinacja działała bez zgubionych klatek tylko w konfiguracjach z desktopowym GeForce'em 1000 i Ryzenem G, wyłącznie w przeglądarce Chromium. W Microsoft Edge nie mogłem nawet wybrać wersji HDR filmu. Niestety, nawet Chromium nie jest perfekcyjnym środowiskiem do odtwarzania takich filmów, bo ta przeglądarka nie jest zgodna z nowym Windowsowym mechanizmem sterowania jasnością w trybie HDR. Począwszy od wiosennej aktualizacji Windows 10 (wersja 1803) można ręcznie zmienić jasność białych elementów wyświetlanych na pulpicie za pomocą suwaka w ustawieniach ekranu. Ta funkcja zapobiega problemowi ciemnego i „wypranego z kolorów” pulpitu po przełączeniu w tryb HDR i pozwala posiadaczom ekranów HDR włączyć ten tryb na stałe. W przeciwieństwie do Edge Chromium nie stosuje się do ustawienia w panelu kontrolnym i tło strony YouTube jest ciemne, tylko sam film odcina się poprawną jasnością.
Na Xboksie One X nie da się odtwarzać filmów z YouTube z HDR, ponieważ aplikacja YouTube nie została jeszcze zaktualizowana i nie pozwala wybrać odpowiedniej jakości.
Na telewizorze LG nie było z tym żadnych problemów, poza sporadycznymi zgubionymi klatkami (poniżej 1%).
Tylko po co odtwarzacz Netflix w konsoli albo pececie?
Monitory komputerowe z HDR są jeszcze drogie, mało popularne i nie zapewniają najlepszych wrażeń ze względu na ograniczoną granulację i jasność podświetlenia. Pewnie każdy, kto będzie chciał odtwarzać filmy z Netfliksa w 4K i z HDR, będzie je wyświetlał na ekranie nowoczesnego telewizora. Niemal każdy nowoczesny „smart TV” ma wbudowaną aplikację Netflix. Po co zatem podłączać dodatkowe urządzenie, np. konsolę lub komputer, skoro można mieć to samo w samym telewizorze? Może taka kombinacja pobiera przynajmniej mniej prądu?
Niestety – nie. Zmierzyłem pobór energii całego zestawu do odtwarzania. Ponieważ zapotrzebowanie telewizora OLED na energię waha się mocno w zależności od jasności wyświetlanego obrazu, mierzyłem je przez minutę za każdym razem w tym samym momencie filmu. Najefektywniejszym energetycznie sposobem oglądania Netfliksa w 4K jest użycie samego telewizora. Być może komputer z Ryzenem G będzie w tym lepszy, kiedy zacznie obsługiwać technikę DRM PlayReady 3.0 – bo w dekodowaniu filmu z YouTube okazał się sprawniejszy od procesora wbudowanego w telewizor!
Przykry stan oprogramowania i zabezpieczeń
Po tych eksperymentach byłem głęboko rozczarowany, głównie stanem oprogramowania i polityką dystrybutorów filmów. Jedynymi przyjaznymi dla użytkownika sposobami odtwarzania multimediów w najlepszej jakości są telewizory smart TV i konsola Xbox.
Za to użytkownikowi peceta na każdym kroku ciskane są kłody pod nogi. Dokumentacja techniczna i pomoc Netfliksa są niemal bezużyteczne – cóż z tego, że live chat odpowiada natychmiast, jeśli konsultanci nie potrafią pomóc w istotnych sprawach? Dokumentacja dekoderów wideo w kartach graficznych jest równie uboga; próżno szukać takich informacji na stronach Intela, AMD czy Nvidii. Ja mogę posłużyć się stronami deweloperskimi lub prezentacjami technicznymi udostępnianymi dziennikarzom, ale przeciętny nabywca karty graficznej nie poradzi sobie z tym. Przeglądarki internetowe mają trudności z wykorzystaniem funkcji, które sprzęt udostępnia od ponad 3 lat (np. hybrydowego dekodera VP9 w układach Skylake/Kaby Lake). Sterowniki GPU, szczególnie AMD i Intela, pozwalają wykorzystać funkcje sprzętu z opóźnieniem i z niezrozumiałą selektywnością dotyczącą GPU w obrębie danej architektury.
Można odnieść wrażenie, że możliwości wykorzystania pecetów jako HTPC, multimedialnego centrum rozrywki, są z premedytacją ograniczane. To prawda, że nowoczesne telewizory, smartfony i inne urządzenia w pewnym stopniu przejęły te funkcje, a HTPC powoli odchodzi w to samo miejsce, w którym zniknęły zestawy głośników 5.1. Jednak jako użytkownik najpotężniejszego i najbardziej uniwersalnego narzędzia, wolałbym zachować te możliwości...
Wiem, że ten raport nie wyczerpuje tematu. Nie interesowały mnie komputery ze starszymi układami graficznymi ani konsola PlayStation 4, bo żadna z tych konfiguracji nie może odtwarzać płyt Blu-ray UHD. Być może wiele ze wspomnianych dziur w oprogramowaniu da się załatać samemu, np. z użyciem jakichś nieudokumentowanych funkcji konfiguracyjnych w przeglądarkach. Nie porzucam jeszcze pomysłu wykorzystania minikomputera, być może z Ryzenem G, jako HTPC – na pewno wrócę do niego, kiedy będę miał do dyspozycji napęd płyt Blu-ray UHD.