Reprodukcija 8K videozapisa - Dekodiranje GPU-om ili CPU-om?
Većini korisnika motiv za kupnju nove grafičke kartice je želja za boljim performansama u igrama i 3D programima, no novije grafičke kartice donose i hardverske dekodere za video s podrškom za veći broj videokodeka, sposobne za dekodiranje videa više razlučivosti, višeg frameratea, veće dubine boje, finijeg poduzorkovanja boje… Korisnici prijenosnika nemaju luksuz zamjene grafičke kartice, ali prilikom kupnje novog prijenosnika možda bi trebali obratiti posebnu pozornost na model, odnosno generaciju grafičkog procesora
PROBLEM
Snimke 8K zapisa s mobitela mi ni VLC niti WMP ne žele otvoriti. Zapravo otvore, ali nema kretanja slike, zašteka sve, blokira. Laptop ima SSD 512 GB, 16 GB DDR4 RAM-a, Ryzen 5 je gore, Lenovo, originalni Windows 10, sve updateano, VLC najnoviji. Zar je moguće da laptop nije dovoljno jak da samo otvori i vrti 8K zapis?
ODGOVOR
Teško je dekodiranje 8K videozapisa okarakterizirati kao “samo”. Naime, i dan-danas neki slabiji prijenosnici imaju problema s reprodukcijom 4K videa s YouTubea, a kamoli 8K. A 8K zahtijeva otprilike 4 puta jače performanse koje se tiču dekodiranja videa, jer je jedan 8K videozapis prema broju piksela ekvivalentan četiri 4K videozapisa!
Dodatni problem je kodek H.265/HEVC, koji se najčešće koristi za 8K snimke, a koji je znatno zahtjevniji za dekodiranje od trenutačno još uvijek općenito najčešće korištenog H.264/AVC.
Što se tiče dekodiranja videa, ono može ležati u potpunosti na glavnom procesoru (CPU), što je danas vrlo rijetko, ili može većim dijelom ležati na procesoru (pri čemu će određene operacije preuzeti grafička kartica), ili se dekodiranje može prepustiti hardverskom dekoderu grafičkog procesora (posebnom sklopu unutar GPU-a).
Gdje je problem? U podršci za hardversko dekodiranje. Različiti modeli, različite generacije GPU-ova imaju različite sposobnosti dekodiranja. Neki GPU-ovi će dekodirati 4K AVC video, ali neće 4K HEVC video. Neki noviji, snažniji GPU-ovi dekodirat će čak i 8K HEVC video.
Kako utvrditi usko grlo?
Kako nemamo pristup spornoj 8K datoteci, a ni vašem prijenosniku, pa da točno utvrdimo kako stvari stoje, uputit ćemo vas kako da sami istražite situaciju pomoću našeg primjera. U našem slučaju riječ je o prijenosniku s procesorom Intel Core i5 4200M, koji ima integrirani grafički adapter Intel HD Graphics 4600 (prijenosnik ima i Nvidia GeForce GT 740M, no on se po defaultu ne koristi za reprodukciju ili dekodiranje videa). Videozapisi kojima smo isprobali računalo nastali su na Canonu EOS R5 – 4K i 8K.
Ključni alat je Task Manager, kartica Processes, u kojoj pronađete program kojim reproducirate videodatoteke (PotPlayer u našem slučaju). Važni su vam stupci CPU i GPU, dakle, dovoljno raširite prozor Task Managera da vidite oba stupca.
Reprodukcija 4K datoteke kodirane kodekom H.264 išla je bez zastajkivanja, bez obzira na to jesmo li koristili softversko ili hardversko dekodiranje. Prilikom korištenja softverskog dekodiranja, dakle, kad je praktički sve obavljao CPU, zauzeće CPU-a kretalo se između 60 i 70% (ventilator se brzo počeo dosta brže okretati), a opterećenje GPU-a bilo je 0%, uz povremeno kratkotrajno skakanje na 33%.
Kada smo prebacili na hardversko dekodiranje, zauzeće CPU-a bilo je oko 4%, a GPU-a 45-50%. Ta druga kombinacija je tu bolja – više je opterećen GPU (tj. dekoder grafičkog adaptera integriranog u CPU), no on nije uzrokovao toliko zagrijavanje procesora. Reda radi, prisilili smo PotPlayer da iskoristi hardversko dekodiranje i GeForce GT 740M – na naše iznenađenje, video je bio malo trzav pa smo tu opciju prekrižili.
Zatim smo probali 8K videozapis, kodiran kodekom HEVC. To je bilo negledljivo – samo dvije sličice u sekundi, uz maksimalno opterećenje CPU-a (koje je išlo do oko 80% zbog drugih programa pa je ukupno opterećenje bilo 100%), a opterećenje GPU-a je povremeno kratkotrajno skakalo na oko 12%. Dakle, ovdje je u pitanju bilo softversko dekodiranje, koje ovisi o CPU-u, a sporni GPU ne podržava dekodiranje 8K HEVC videozapisa.
Pretpostavljamo da je slična situacija i kod vas – GPU dekodira 4K videa, a CPU 8K HEVC videa, koji su mu daleko prezahtjevni za dekodiranje.
Kada isti 8K HEVC video pustimo na stolnom računalu, sa šestojezgrenim Intel Core I7 4960X i GeForce GTX 1660, zauzeće CPU-a je samo nekoliko posto, a GPU-a je oko 50%. Dakle, GPU, odnosno videodekoder GTX-a 1660 preuzeo je na sebe zadaću dekodiranja tog videozapisa i stvar fino radi. Kad smo PotPlayer natjerali da ne koristi Nvidijin videodekoder (mislimo na sklop u GPU-u), nego je dekodiranje obavljao softver FFmpeg CUDA Decoder (dakle, dekoder koji koristi i glavni procesor i Nvidijinu tehnologiju CUDA, no ne koristi Nvidijin hardverski videodekoder), videozapis odjednom postaje negledljiv, trzav, sa zauzećem CPU-a od 55-65%, uz opterećenje GPU-a od desetak posto.
Iako 8K videozapis stvoren mobitelom ne mora nužno biti toliko zahtjevan kao videozapis koji smo mi koristili za testiranje, zaključak cijele priče je – ako namjeravate gledati 8K HEVC videozapise, budite sigurni da vam grafička kartica podržava hardversko dekodiranje HEVC kodeka u 8K razlučivosti te da koristite softver koji to zna iskoristiti. U suprotnom ih vjerojatno nećete gledati, jer će biti vrlo trzavi.
Što podržava koji kodek?
OK, a kako možete biti sigurni da vaš grafički adapter podržava ili ne podržava konkretni kodek pri konkretnoj razlučivosti? Postoji programčić DXVA Checker, koji će vam izlistati poznate kodeke te označiti pri kojoj ih razlučivosti videodekoder vašeg grafičkog adaptera može dekodirati (ako imate integrirani i diskretni grafički adapter, možete dobiti te informacije za oba). U našem slučaju, za prijenosnik stoji da Intelov HD Graphhics 4600 podržava hardversko dekodiranje kodeka HEVC/H.265 do razlučivosti 4K, a da Nvidia GT 740M taj kodek podržava samo do FullHD razlučivosti.
Na stolnom računalu GTX 1660 podržava razlučivost 8K kod HEVC-a, ali i kod kodeka VP9. Zašto je bitno da podržava i kodek VP9? Zato što to znači da s tom grafičkom karticom možete lagodno gledati 8K videe s YouTubea, s obzirom na to da taj kodek koristi YouTube. Tj. mogli biste kad bi Chrome, Edge ili Firefox koristili hardverski dekoder! Barem nisu na našem računalu. Lijeka ipak ima (a da ne morate skidati video s YouTubea) – video otvorite u PotPlayeru (Ctrl+U pa zalijepite URL 8K videa s YouTubea) i nakon što započne reprodukcija, u donjem desnom kutu odaberete najvišu razlučivost.
Spomenimo i još jednu stvar – sve grafičke kartice koje podržavaju dekodiranje 8K HEVC videa, ne podržavaju ga nužno u svim mogućim formatima; primjerice, možda ne podržavaju pri 60 FPS, starije grafičke kartice ne podržavaju dekodiranje s poduzorkovanjem boje 4:4:4, kod nekih formata ili kodeka može se dogoditi da GPU podržava dekodiranje 8-bitnog videa, a da ne podržava dekodiranje 10 ili 12-bitnog.
Nvidia inače ima preglednu tablicu podrške za svoje GPU-ove. Za AMD-ove GPU-ove nismo pronašli tako lijepo sređenu tablicu, no jednu tablicu naći ćete na ovoj adresi, pod Format support, te drugu tablicu za noviji AMD-ov sustav za kodiranje i dekodiranje videa. Ako imate Intelov procesor i znate kakve je arhitekture, u ovoj tablici saznat ćete koje sve kodeke podržava.