Savjeti

Reprodukcija 8K videozapisa - Dekodiranje GPU-om ili CPU-om?

Mario Baksa petak, 30. listopada 2020. u 06:00

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

GPU-Z vrlo je koristan alat za prikaz, ne samo karakteristika grafičke kartice u računalu, nego i senzorskih informacija. Vezano uz tu tematiku, tu nas najviše zanima podatak Video Engine Load u kartici Sensors, koji prikazuje trenutačno opterećenje videodekodera, ali vidite i grafikon koji prikazuje kako se opterećenje kretalo tijekom vremena. Ako je opterećenje videodekodera 0%, to znači da se ne koristi hardverski dekoder GPU-a, nego video dekodira CPU, uz eventualno određenu pomoć GPU-a
GPU-Z vrlo je koristan alat za prikaz, ne samo karakteristika grafičke kartice u računalu, nego i senzorskih informacija. Vezano uz tu tematiku, tu nas najviše zanima podatak Video Engine Load u kartici Sensors, koji prikazuje trenutačno opterećenje videodekodera, ali vidite i grafikon koji prikazuje kako se opterećenje kretalo tijekom vremena. Ako je opterećenje videodekodera 0%, to znači da se ne koristi hardverski dekoder GPU-a, nego video dekodira CPU, uz eventualno određenu pomoć GPU-a

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.

Ovdje vidite situaciju na našem prijenosniku – obratite pozornost na PotPlayer (žuta ikona). Gore je prikaz kad se reproducira 4K H.264 videozapis, koji dekodira grafički adapter (Intel HD Graphics 4600) – reprodukcija je glatka. U sredini je softversko dekodiranje 4K H.264 videozapisa – glavni procesor prilično je opterećen, ubrzala se vrtnja ventilatora, ali reprodukcija i dalje ide glatko. Pri dnu je pokušaj reprodukcije 8K H.265 videa uz softversko dekodiranje (hardversko dekodiranje tog formata na našem prijenosniku nije podržano), koji neslavno završava – procesor je “zakucan” na 100%, a dobivamo oko 2 sličice u sekundi, videozapisa koji bi se trebao reproducirati pri 25 sličica u sekundi – neupotrebljivo. Kako ćete znati koristi li se hardverski video dekoder? U stupcu GPU engine pisat će tekst poput “GPU 0 – Video decoder”
Ovdje vidite situaciju na našem prijenosniku – obratite pozornost na PotPlayer (žuta ikona). Gore je prikaz kad se reproducira 4K H.264 videozapis, koji dekodira grafički adapter (Intel HD Graphics 4600) – reprodukcija je glatka. U sredini je softversko dekodiranje 4K H.264 videozapisa – glavni procesor prilično je opterećen, ubrzala se vrtnja ventilatora, ali reprodukcija i dalje ide glatko. Pri dnu je pokušaj reprodukcije 8K H.265 videa uz softversko dekodiranje (hardversko dekodiranje tog formata na našem prijenosniku nije podržano), koji neslavno završava – procesor je “zakucan” na 100%, a dobivamo oko 2 sličice u sekundi, videozapisa koji bi se trebao reproducirati pri 25 sličica u sekundi – neupotrebljivo. Kako ćete znati koristi li se hardverski video dekoder? U stupcu GPU engine pisat će tekst poput “GPU 0 – Video decoder”

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.

Reprodukcija 8K H.265 videozapisa na stolnom računalu, uz korištenje hardverskog dekodera GeForcea GTX 1660 teče glatko, uz malo opterećenje glavnog procesora te osrednje opterećenje videodekodera grafičke kartice
Reprodukcija 8K H.265 videozapisa na stolnom računalu, uz korištenje hardverskog dekodera GeForcea GTX 1660 teče glatko, uz malo opterećenje glavnog procesora te osrednje opterećenje videodekodera grafičke kartice

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.

Kad već Chrome ili Firefox neće, PotPlayer hoće – popularni web-preglednici na našem su se stolnom računalu gušili pokušavajući reproducirati 8K video pri 60 sličica u sekundi s YouTubea, no PotPlayer je bez zastajkivanja reproducirao isti taj video, izravno s YouTubea, zahvaljujući iskorištavanju hardverskog dekodera naše grafičke kartice GTX 1660 za kodek VP9, koji je videodekoder opteretio s oko 75%
Kad već Chrome ili Firefox neće, PotPlayer hoće – popularni web-preglednici na našem su se stolnom računalu gušili pokušavajući reproducirati 8K video pri 60 sličica u sekundi s YouTubea, no PotPlayer je bez zastajkivanja reproducirao isti taj video, izravno s YouTubea, zahvaljujući iskorištavanju hardverskog dekodera naše grafičke kartice GTX 1660 za kodek VP9, koji je videodekoder opteretio s oko 75%

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.