ERK'2021, Portorož, 97-100 97 Evalvacija standarda za kodiranje videa Versatile Video Coding (VVC/H.266) Arne Simonič 1 , Urban Burnik 2 1 Univerza v Ljubljani, Fakulteta za računalništvo in informatiko, Fakulteta za elektrotehniko 2 Univerza v Ljubljani, Fakulteta za elektrotehniko, E-pošta: arne.simonic@gmail.com Povzetek. V prispevku predstavljamo delovanje, novosti in izboljšave novega standarda za kodiranje videa VVC ter ga primerjamo s predhodnikom HEVC. V primerjavi najprej predstavimo novosti standarda VVC, sledi pa podrobna primerjava zmogljivosti obeh navedenih standardov. Rezultati potrjujejo prednosti novega standarda VVC. 1 Uvod Prenos video vsebin naj bi predstavljal kar okoli 82% vsega internetnega prometa [1], zato so zmogljivi postopki video kodiranja ključni za učinkovito izkoriščanje razpoložljivih komunikacijskih virov ter vodijo k višji kakovosti storitev. Tako je 6. julija 2020 ekipa Joint Video Experts Team pod okriljem standardizacijskih agencij ITU-T in ISO/IEC JTC 1 izdala nov standard za kodiranje video vsebin VVC/H.266 (Versatile Video Coding), ki prihaja kot naslednik standarda HEVC/H.265 (High Efficiency Video Codec) [2]. Že HEVC je omogočal ločljivosti do 8k (7680×4320 slikovnih točk) in okoli 50% znižanje v bitni hitrosti pri enaki percepcijski kvaliteti videa glede na predhodnika [3]. VVC ponovno obeta okoli 50% znižanje v bitni hitrosti v primerjavi s HEVC in tako omogoča prenos videa enake percepcijske kvalitete z manj podatki. Dodaten cilj novega standarda nakazuje njegovo ime – vsestranski (versatile), kar označuje vsestranskost uporabe na različnih vrstah video posnetkov (360-stopinjski video, deljenje zaslona, pretočne vsebine, ...). V nadaljevanju bomo podrobneje opisali standard VVC in vse njegove novosti. Nato bomo opravili primerjavo s standardom HEVC in nazadnje kvantitativno ovrednotili zmogljivost standarda VVC. 2 Predstavitev standarda VVC 2.1 Novosti standarda Poudarek standarda je na vsestranskosti uporabe, saj vsebine, ki se razlikujejo od tradicionalnih video posnetkov postajajo vedno bolj priljubljene. Standard prinaša izboljšave predvsem na naslednjih področjih [2]: 1. Računalniško generirane vsebine, kot je deljenje zaslona v videokonferenčnih klicih. Vključene so številne tehnike iz razširitve standarda HEVC Screen Content Coding. 2. Pretočne vsebine z nizko stopnjo zakasnitve so zagotovljene z uporabo postopnega osveževanja dekodiranja (angl. gradual decoding refresh). 3. Prilagodljive pretočne vsebine so zagotovljene s pomočjo ponovnega vzorčenja referenčnih slik (angl. reference picture resampling). 4. 360-stopinjski video je učinkovito kodiran s tehnologijo, ki upošteva robove slik in jih interpretira kot zlepljene. 5. Večslojno kodiranje je doseženo s pristopom, ki omogoča časovno, prostorsko in kvalitativno skaliranje slike, kot tudi večpogledno kodiranje. 6. Video vsebine nadstandardne kakovosti so kodirane bolj učinkovito po zaslugi večjih blokovnih struktur pri višjih ločljivostih in filtra za združevanje blokov (angl. deblocking filter), ki je prilagojen karakteristikam HDR videa. 2.2 Delovanje standarda Standard VVC svoje učinkovitosti ne dosega zaradi uvedbe novih revolucionarnih postopkov, temveč zaradi številnih izboljšav obstoječih postopkov, pri čemer vsaka od njih prispeva svoj delež. Bločni diagram novega standarda je zelo podoben diagramu standarda HEVC, vidimo pa ga lahko na Sliki 1. Največje spremembe so pri delitvi videa na bloke, napredni interpredikciji, uteženi kvantizaciji, prilagojenem filtriranju znotraj zanke in izboljšavi filtra za združevanje blokov. VVC uporablja hibridni sistem video kodiranja. Ta predpostavlja postopka intrapredikcije (angl. intra- prediction) za kodiranje ključnih slik, kjer koristimo prostorsko odvečnost, in interpredikcije (angl. inter- prediction) za kodiranje sprememb glede na ključne slike, kjer koristimo časovno odvečnost. Sliko najprej razdelimo na večje in manjše bloke za učinkovitejšo predstavitev posameznih področij. Večjim blokom rečemo enote kodnega drevesa (angl. coding- tree unit), ki so lahko velikosti največ 128x128 slikovnih točk. Večji bloki pripomorejo k večji učinkovitosti kodiranja video vsebin višje resolucije (4k in 8k). Večji bloki se nato delijo na več manjših blokov z namenom predstavitve bolj podrobnih področij na sliki. Tem blokom rečemo kodne enote (angl. coding unit), ki pa se lahko razdelijo na najmanj 4x4 slikovne točke. 98 Nove tehnike interpredikcije so tiste, ki bistveno pripomorejo k zniževanju bitne hitrosti. V okviru interpredikcije se informacije o razlikah med slikami predstavijo s pomočjo gibalnih vektorjev (angl. motion vector), ki jih je mogoče določiti do 1/16 slikovne točke natančno. Po postopkih predikcije se kodira le napaka. Ta se najprej preslika v frekvenčni prostor, kjer se opravi kvantizacija koeficientov transformacije. V standardu VVC kodirnik uporabi dva zamaknjena kvantizatorja, ki zmanjšujeta napako kvantizacije tako, da je stopnja kvantizacije trenutnega koeficienta odvisna od vrednosti prejšnjih kvantiziranih koeficientov. Rezultat kvantizacije se nato z entropijskim kodiranjem CABAC pretvori v končni bitni zapis [4]. 3 Primerjava HEVC in VVC 3.1 Primerjava postopkov Kot omenjeno sta si standarda razmeroma podobna, VVC rezultate dosega predvsem z izboljšavo obstoječih postopkov, ki jih bomo v nadaljevanju primerjali med sabo. Pri razčlenjevanju posameznih slik video posnetka na večje in manjše bloke VVC dopušča večje bloke do velikosti 128x128 slikovnih točk, HEVC pa le do velikosti 64x64 slikovnih točk. Manjši bloki pri VVC so sestavljeni iz najmanj 4x4 slikovnih točk, pri HEVC pa 8x8 slikovnih točk. Iz tega sledi, da VVC omogoča natančnejše kodiranje podrobnosti na slikah, medtem ko področja z manj podrobnostmi kodira še bolj učinkovito. S temi izboljšavami naj bi dosegli okoli osem odstotno zmanjšanje bitne hitrosti, vendar po drugi strani bolj obremenimo postopek kodiranja [5]. Pri procesu interpredikcije je VVC zmožen vektorje gibanja zaokrožiti na 1/16 slikovne točke natančno, kar izboljša tovrstno zmogljivost standarda HEVC, ki vektorje gibanja lahko definira na 1/4 slikovne točke natančno. Večja natančnost vektorjev gibanja posledično vodi v bolj natančno preslikavo blokov [6]. Opisali smo že, kako VVC uporablja pogojeno kvantizacijo, s čimer bistveno izboljšuje HEVC s skalarnimi kvantizatorji. Ti popolnoma neodvisno določajo stopnjo kvantizacije za vsak koeficient posebej, kar se izkaže za zelo neučinkovito. VVC prinaša tudi novost v prilagodljivem filtriranju znotraj zanke (angl. adaptive loop filtering). Po postopku dekodiranja se sprehodi skozi sliko ter na podlagi enot kodnega drevesa aplicira enega izmed predvidenih dvodimenzionalnih filtrov s končnim impulznim odzivom. Na ta način se znebimo morebitnih artefaktov, poleg tega pa tovrstno filtriranje doprinese tudi precejšnje znižanje količine podatkov napram standardu HEVC. Tako VVC kot HEVC delujeta po principu delitve slik na bloke. Slabost tega pristopa je, da se lahko na Slika 1: Bločni diagram standarda VVC 99 robovih teh blokov pojavijo ostri prehodi, kar močno vpliva na percepcijsko kvaliteto videa. Oba standarda ta problem rešujeta s pomočjo filtra za združevanje blokov, kjer VVC implementira nadgradnjo filtra standarda HEVC. Zahvaljujoč še večji maksimalni velikosti blokov (128x128 slikovnih točk) je možna uporaba daljših filtrov, ki v primerjavi s HEVC prinašajo drastične izboljšave percepcijske kvalitete video posnetka. Vse te izboljšave pa seveda povzročajo tudi višjo stopnjo računske kompleksnosti. V primerjavi s HEVC naj bi bilo dekodiranje okoli dvakrat počasnejše [4]. 3.2 Empirična primerjava Z empirično primerjavo smo želeli preveriti, v kolikšni meri novi standard izpolnjuje napovedi glede povišanja svoje učinkovitosti. Tu smo se osredotočili na obljubljeno znižanje bitne hitrosti kodiranega videa, ki naj bi znašalo okoli 50%. Za kvalitetno primerjavo smo potrebovali reprezentativne video posnetke, ki dobro predstavljajo aktualne pretočne vsebine, v zadostni ločljivosti, v surovem, nezgoščenem formatu. Uporabili smo nabor video posnetkov, ki jo v raziskovalne namene ponuja Tampere University [7]. Nabor vsebuje video posnetke ločljivosti 4k (3840x2160 slikovnih točk) s 50 okvirji na sekundo v nezgoščenem zapisu YUV, z barvnim podvzorčenjem 4:4:4 in bitno globino 8 bitov. Iz množice smo izbrali video posnetek SunBath. Posnetek je dolg 6 sekund in vsega skupaj obsega 300 okvirjev, celotna velikost pa znaša 3645MB. S pomočjo programskega orodja FFmpeg smo s podvzorčenjem ustvarili še video posnetke nižjih ločljivosti, kakršne se najpogosteje uporabljajo na internetu. Tako smo ustvarili še posnetke ločljivosti 1440p (2560x1440 slikovnih točk), 1080p (1920x1080 slikovnih točk) in 720p (1280x720 slikovnih točk). Za kodiranje po standardu VVC smo uporabili programsko implementacijo kodirnika, ki ga v uporabo ponuja nemško podjetje Fraunhofer HHI [8], za kodiranje po standardu HEVC pa smo uporabili orodje FFmpeg in GPL knjižnico, ki vsebuje kodirnik x265 [9]. Glavna mera kakovosti, ki smo jo uporabili v primerjavi, je PSNR (angl. peak signal to noise ratio) in predstavlja razmerje med najvišjo možno močjo signala ter nastalo motnjo. PSNR se pogosto uporablja na področju merjenja kvalitete in zmogljivosti oz. učinkovitosti videa. Zavedamo se, da PSNR morda ni najbolj primerno merilo za perceptivno kvaliteto videa, vendar študije kažejo, da pri evalvaciji kvalitete ene same vsebine PSNR in perceptivna kvaliteta dobro korelirata [10], ta pogoj pa je v našem eksperimentu izpolnjen. Slika 2: Primerjava zmogljivosti standardov za kodiranje video posnetkov VVC in HEVC. Modre črte predstavljajo standard VVC, oranžne pa standard HEVC. Horizontalne črte nam ponudijo vpogled v razliko v bitni hitrosti med standardoma pri isti vrednosti PSNR. 100 4 Rezultati V eksperimentu smo po standardih VVC in HEVC kodirali video posnetke štirih ločljivostnih razredov (720p, 1080p, 1440p in 2160p), za namen čim bolj enakovredne primerjave pa smo vnaprej določili željene bitne hitrosti v razponu od 500 kbit/s do 10 Mbit/s v linearnih korakih. Po kodiranju vseh kombinacij video posnetkov smo izračunali vrednosti PSNR med kodiranimi in referenčnim video posnetkom. Izračunane vrednosti PSNR so prikazane na Sliki 2. Vidimo lahko, da je kodiranje VVC boljše od kodiranja HEVC pri vseh bitnih hitrostih. So pa razlike pri nižjih resolucijah precej manj opazne kot pri višjih resolucijah in se nahajajo v razmerju med 1:1,3 in 1:1,5. Prav tako so razlike zelo nizke pri višjih bitnih hitrostih pri vseh resolucijah. Do obljubljenih izboljšav pa zlahka pridemo pri resoluciji 2160p in nižjih bitnih hitrostih, kjer dosežemo tudi razmerje 1:4. 5 Zaključek V okviru opravljenega dela smo predstavili novi standard VVC in ga primerjali z njegovim predhodnikom HEVC. Pridobljeni rezultati nedvomno potrjujejo superiornost novega standarda. Le manjši delež rezultatov nakazuje visoke izboljšave, zato na podlagi naših ugotovitev obljubljene 50% izboljšave ne moremo potrditi. Velja omeniti tudi, da je standard VVC zelo mlad in se še ne uporablja na trgu, saj so implementacije kodirnikov, ki bi zadostovale uporabniškim zahtevam, še v razvoju. Glede na ugotovitev, da do obljubljenih rezultatov pridemo pri nižjih bitnih hitrostih, bi bilo smiselno eksperiment razširiti za še večjo stopnjo granularnosti pri nižjih bitnih hitrostih. V okviru nadaljnjega dela bi lahko eksperiment opravili tudi na več različnih video vsebinah v še več ločljivostih in tako pridobili še bolj pomenljive rezultate. Prav tako bi za evalvacijo kvalitete lahko uporabili tudi alternativne mere, za tovrstne primerjave se pogosto uporablja mera SSIM. Literatura [1] Cisco, „Global_2021_Forecast_Highlights,“ 2016. [Elektronski]. Available: https://www.cisco.com/c/dam/m/en_us/solutions/s ervice-provider/vni-forecast- highlights/pdf/Global_2021_Forecast_Highlights. pdf. [Poskus dostopa 11 april 2021]. [2] B. Bross, C. Jianle, O. S. G. J. Jens-Rainer in Y.- K. Wang, „Developments in International Video Coding Standardization After AVC, With an Overview of Versatile Video Coding (VVC),“ Proceedings of the IEEE, 2021. [3] G. J. Sullivan, J.-R. Ohm, W.-J. Han in T. Wiegand, „Overview of the high efficiency video coding (HEVC) standard,“ IEEE Transactions on circuits and systems for video technology, Izv. 22, pp. 1649--1668, 2012. [4] R. Sjoberg, J. Strom, L. Litwic in K. Andersson, „Versatile video coding explained,“ 14 oktober 2020. [Elektronski]. Available: https://www.ericsson.com/4a92d7/assets/local/rep orts-papers/ericsson-technology- review/docs/2020/versatile-video-coding- explained.pdf. [Poskus dostopa 14 april 2021]. [5] Y. Huang, „A VVC Proposal With Quaternary Tree Plus Binary-Ternary Tree Coding Block Structure and Advanced Coding Techniques,“ IEEE Transactions on Circuits and Systems for Video Technology, Izv. 30, pp. 1311-1325, 2020. [6] H. &. C. X. &. E. S. &. C. J. &. S. E. Gao, „Decoder-Side Motion Vector Refinement in VVC: Algorithm and Hardware Implementation Considerations,“ IEEE Transactions on Circuits and Systems for Video Technology, Izv. PP, 2020. [7] M. V. J. V. A. Mercat, „UVG dataset: 50/120fps 4K sequences for video codec analysis and development,“ Proc. ACM Multimedia Syst. Conf., 2020. [8] „fraunhoferhhi/vvenc: Fraunhofer Versatile Video Encoder (VVenC),“ Github, 7 september 2020. [Elektronski]. Available: https://github.com/fraunhoferhhi/vvenc. [Poskus dostopa 18 april 2021]. [9] „x265, the free H.265/HEVC encoder - VideoLAN,“ [Elektronski]. Available: https://www.videolan.org/developers/x265.html. [Poskus dostopa 18 april 2021]. [10] Q. a. M. G. Huynh-Thu, „Scope of validity of PSNR in image/video quality assessment.,“ Electronics letters, Izv. 44.13, pp. 800-801, 2008. [11] M. K. Mandal, Multimedia signals and systems, London: Kluwer Academic Publishers, 2002. [12] U. Burnik in M. Meža, „Predmet: MM64M27 Obdelava multimedijskih vsebin,“ ULFE, 2020. [Elektronski]. Available: https://e.fe.uni- lj.si/course/view.php?id=350. [Poskus dostopa Februar 2020].