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

Većini korisnika motiv za kupovinu 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 razolucije, više frejmova, veće dubine boje, finijeg poduzorkovanja boje… Korisnici uređaja (kompjutera) nemaju luksuz zamjene grafičke kartice, ali prilikom kupovine novog uređaja možda bi trebali obratiti posebnu pažnju 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 uređaji 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 trenutno 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.

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 komjuteru, 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

Kako utvrditi usko grlo?

Kako nemamo pristup spornoj 8K datoteci, a ni vašem uređaju, pa da tač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 uređaju s procesorom Intel Core i5 4200M, koji ima integrisan grafički adapter Intel HD Graphics 4600 (uređaj ima i Nvidia GeForce GT 740M, no on se po defaultu ne koristi za reprodukciju ili dekodiranje videa). Videozapisi kojima smo isprobali računar 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 uređaju – obratite pažnju na PotPlayer (žuta ikona). Gore je prikaz kad se reprodukuje 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 uređaju 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 reprodukovati 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 reprodukujete 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čno 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 integrisanog 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 destop kompjuteru, 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 rezoluciji te da koristite softver koji to zna iskoristiti. U suprotnom ih vjerojatno nećete gledati, jer će biti vrlo trzavi.

Šta 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 rezoluciji? Postoji programčić DXVA Checker, koji će vam izlistati poznate kodeke te označiti pri kojoj ih rezoluciji videodekoder vašeg grafičkog adaptera može dekodirati (ako imate integrisani i diskretni grafički adapter, možete dobiti te informacije za oba). U našem slučaju, za uređaj stoji da Intelov HD Graphhics 4600 podržava hardversko dekodiranje kodeka HEVC/H.265 do rezolucije 4K, a da Nvidia GT 740M taj kodek podržava samo do FullHD rezolucije.

A ovako to izgleda na stolnom računalu, s GTX 1660. Uočite da taj GPU podržava dekodiranje i 10-bitnog HEVC-a do rezolucije 8K. Ujedno uočite da je podržano dekodiranje kodeka VP9 u rezoluciji 8K, no dekodiranje kodeka H.264/AVC podržano je samo do rezoluciije 4K
Ovako situaciju s našim prijenosnikom vidi DXVA Checker – GPU može dekodirati kodek HEVC samo do razlučivosti 4K, što znači da dekodiranje 8K videa ostaje na CPU-u, koji je daleko preslab za taj zadatak

Na destop kompjuteru GTX 1660 podržava rezoluciju 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 kompjuteru. 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 uglu odaberete najvišu rezoluciju.

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 destop kompjuteru gušili pokušavajući reprodukovati 8K video pri 60 sličica u sekundi s YouTubea, no PotPlayer je bez zastajkivanja reprodukuju isti taj video, direktno sa 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 sistem za kodiranje i dekodiranje videa. Ako imate Intelov procesor i znate kakve je arhitekture, u ovoj tablici saznat ćete koje sve kodeke podržava.

Izvor: bug.hr