Streaming i 4K er den nye normen, men med informasjon for mer enn 8,2 millioner piksler som overføres hvert 16. millisekund – lagring og overføring av 4K-video på internett er ingen enkel oppgave.
En to timer lang film ville ha over 1,7 terabyte lagringsplass når den ikke er komprimert. Så hvordan klarer strømmegiganter som YouTube og Netflix å lagre og streame videoer som tar så mye plass?
Vel, de gjør det ikke fordi de bruker videokodeker for å redusere størrelsen på filmer, men hva er en videokodek, og hvilken er den beste?
Hva er en videokodek?
Før du dykker dypt inn i kompleksiteten til videokodeker, er det viktig å forstå hvordan en video lages. Enkelt sagt er video ikke annet enn et sett med stillbilder som raskt erstatter hverandre.
På grunn av denne høye endringshastigheten, tror den menneskelige hjernen at bildene beveger seg, noe som skaper en illusjon av å se en video. Derfor, når du ser på en video i 4K, ser du bare på et sett med bilder med en oppløsning på 2160x3840. Denne høye oppløsningen av bilder gjør at videoopptak i 4K gir en flott videoopplevelse. Når det er sagt, øker denne høye bildeoppløsningen størrelsen på videoen, noe som gjør det umulig å streame over kanaler med begrenset båndbredde, for eksempel internett.
For å løse dette problemet har vi videokodeker. Forkortelse for koder/dekoder eller komprimering/dekomprimering, en videokodek komprimerer strømmen av bilder til databiter. Denne komprimeringen kan enten redusere kvaliteten på videoen eller ikke ha noen effekt på den basert på komprimeringsalgoritmene som brukes.
Som navnet antyder, reduserer komprimeringsbiten i en kodek størrelsen på hvert bilde. For å gjøre det samme, utnytter komprimeringsalgoritmen nyansene i det menneskelige øyet – og hindrer folk i å vite at videoene de ser på er komprimerte.
Dekompresjonen, tvert imot, fungerer motsatt og gjengir videoen ved hjelp av den komprimerte informasjonen.
Selv om kodeker gjør en god jobb når det gjelder å komprimere informasjon, kan det være belastende for CPU-en å utføre det samme. På grunn av dette er det normalt å se svingninger i systemytelsen når du kjører videokomprimeringsalgoritmer på systemet.
For å løse dette problemet kommer CPUer og GPUer med spesiell maskinvare som kan kjøre disse komprimeringsalgoritmene. Gjør det mulig for CPUen å utføre oppgavene mens den dedikerte maskinvaren behandler videokodekene, noe som forbedrer effektiviteten.
Hvordan fungerer en videokodek?
Nå som vi har en grunnleggende forståelse av hva en videokodek gjør, kan vi se på hvordan en kodek fungerer.
Chroma subsampling
Som forklart tidligere, består videoer av bilder, og chroma subsampling reduserer informasjonen i hvert bilde. For å gjøre dette reduserer den fargeinformasjonen i hvert bilde, men hvordan blir denne reduksjonen i fargeinformasjon oppdaget av det menneskelige øyet?
Vel, du skjønner, menneskelige øyne er gode til å oppdage endringer i lysstyrke, men det samme kan ikke sies om farger. Dette er fordi det menneskelige øyet har flere staver (fotoreseptorceller som er ansvarlige for å oppdage endringer i lysstyrke) sammenlignet med kjegler (fotoreseptorceller som er ansvarlige for å differensiere farger). Forskjellen i stenger og kjegler hindrer øynene i å oppdage fargeendringer når de sammenligner komprimerte og ukomprimerte bilder.
For å utføre chroma subsampling, konverterer videokomprimeringsalgoritmen pikselinformasjonen i RGB til lysstyrke og fargedata. Etter det reduserer algoritmen mengden farge i bildet basert på komprimeringsnivåer.
Fjerner redundant rammeinformasjon
Videoer består av flere bilder med bilder, og i de fleste tilfeller inneholder alle disse rammene den samme informasjonen. Tenk deg for eksempel en video med en person som snakker mot en fast bakgrunn. I et slikt tilfelle har alle rammene i videoen en lignende komposisjon. Derfor er ikke alle bildene nødvendige for å gjengi videoen. Alt vi trenger er et basisbilde som inneholder all informasjon og data knyttet til endringer når du flytter fra en ramme til en annen.
Derfor, for å redusere videostørrelsen, deler komprimeringsalgoritmen videorammene inn i I- og P-rammer (forutsagte rammer). Her er I-rammer grunnsannheten og brukes til å lage P-rammer. P-rammene blir deretter gjengitt ved å bruke informasjonen i I-rammene og endringsinformasjonen for den bestemte rammen. Ved å bruke denne metoden blir en video brutt ned i et sett med I-rammer sammenflettet i P-rammer og komprimerer videoen ytterligere.
Bevegelseskomprimering
Nå som vi har delt opp videoen i I- og P-rammer, må vi se på bevegelseskomprimering. En del av videokomprimeringsalgoritmen som hjelper til med å lage P-rammer ved hjelp av I-rammer. For å gjøre dette deler komprimeringsalgoritmen I-rammen i blokker kjent som makroblokker. Disse blokkene får deretter bevegelsesvektorer som definerer retningen som disse blokkene beveger seg i når de går fra en ramme til en annen.
Denne bevegelsesinformasjonen for hver blokk hjelper videokomprimeringsalgoritmen med å forutsi hver blokks plassering i et kommende bilde.
Fjerning av høyfrekvente bildedata
Akkurat som endringer i fargedata, kan ikke det menneskelige øyet oppdage subtile endringer i høyfrekvente elementer i et bilde, men hva er høyfrekvente elementer? Vel, du skjønner, bildet som gjengis på skjermen din består av flere piksler, og verdiene til disse pikslene endres basert på bildet som vises.
I noen områder av bildet endres pikselverdiene gradvis, og slike områder sies å ha lav frekvens. På den annen side, hvis det er en rask endring i pikseldataene, kategoriseres området som å ha høyfrekvente data. Videokomprimeringsalgoritmer bruker Discrete Cosine Transform for å redusere høyfrekvente komponenten.
Her er hvordan det fungerer. Først kjører DCT-algoritmen på hver makroblokk og oppdager deretter områdene der endringen i pikselintensitet er veldig rask. Deretter fjerner den disse datapunktene fra bildet – noe som reduserer størrelsen på videoen.
Koding
Nå som all overflødig informasjon i videoen er fjernet, kan vi lagre de gjenværende databitene. For å gjøre dette bruker videokomprimeringsalgoritmen et kodingsskjema som Huffman-koding, som kobler alle databiter i en ramme til antall ganger de forekommer i videoen og kobler dem deretter på en trelignende måte. Disse kodede dataene lagres på et system, slik at det enkelt kan gjengi en video.
Ulike videokodeker bruker forskjellige teknikker for å komprimere videoer, men på et veldig grunnleggende nivå bruker de de fem grunnleggende metodene definert ovenfor for å redusere størrelsen på videoer.
AV1 vs. HEVC vs. VP9: Hvilken kodek er best?
Nå som vi forstår hvordan kodeker fungerer, kan vi finne ut hva som er best av AV1, HEVC og VP9.
Komprimerbarhet og kvalitet
Hvis du har en 4K-video som tar opp mye plass på systemet ditt og ikke kan laste den opp til ditt favorittstrømmeplattform, er du kanskje på utkikk etter en videokodek som tilbyr den beste komprimeringen forhold. Du må imidlertid også vurdere at kvaliteten den leverer reduseres etter hvert som du fortsetter å komprimere videoen. Derfor, mens du velger en komprimeringsalgoritme, er det viktig å se på kvaliteten den leverer ved en bestemt bithastighet, men hva er bithastigheten til en video?
Enkelt sagt er bithastigheten til en video definert som antall biter videoen trenger for å spille i et sekund. For eksempel har en 24-bits ukomprimert 4K-video som kjører på 60 bilder en bitrate på 11,9 Gb/s. Derfor, hvis du strømmer en ukomprimert 4K-video på internett, må Wi-Fi-en din levere 11,9 gigabit med data hvert sekund – og bruke den månedlige datakvoten din på få minutter.
Bruk av en komprimeringsalgoritme reduserer tvert imot bithastigheten ned til en svært liten mengde basert på bithastigheten du velger uten å forringe kvaliteten.
Når det gjelder tall for komprimerbarhet/kvalitet, er AV1 fremste i flokken og tilbyr 28,1 prosent bedre kompresjon sammenlignet med H.265 og 27,3 prosent besparelse sammenlignet med VP9 mens den leverer tilsvarende kvalitet.
Derfor, hvis du leter etter den beste kompresjonen uten forringelse av kvalitet, er AV1 kompresjonsforholdet for deg. På grunn av det store komprimerings-til-kvalitetsforholdet til AV1-kodeken, brukes den av Google i sin videokonferanseapplikasjon Google Duo og av Netflix mens du overfører video på en datatilkobling med lav båndbredde.
Kompatibilitet
Som forklart tidligere, koder en videokomprimeringsalgoritme en video når den er komprimert. Nå for å spille av denne videoen, må enheten din dekode den samme. Derfor, hvis enheten din ikke har maskinvare-/programvarestøtte for å dekomprimere en video, vil den ikke kunne kjøre den.
Derfor er det viktig å forstå kompatibilitetsaspektet ved en komprimeringsalgoritme, for hva er vitsen med å lage og komprimere innhold som ikke kan kjøres på mange enheter?
Så hvis kompatibilitet er noe du ser etter, bør VP9 være kodeken for deg som den støttes på over to milliarder endepunkter og kan kjøres på alle nettlesere, smarttelefoner og smarttelefoner TV.
Det samme kan ikke sies om AV1 ettersom den bruker nyere, mer komplekse algoritmer for å redusere filstørrelsen på en video og ikke kan spilles av på eldre enheter. Når det gjelder nettleserstøtte, kan ikke Safari spille AV1, men nettlesere som Firefox og Chrome kan spille AV1-videoer uten problemer.
Når det gjelder maskinvarestøtte, nye SoC-er og GPU-er som Snapdragon 8 Gen 2, Samsung Exynos 2200, MediaTek Dimensity 1000 5G, Google Tensor G2, Nvidias RTX 4000-serie og Intel Xe og Arc GPUer støtter akselerert maskinvaredekoding for AV1-kodeken. Derfor, hvis du eier enheter som drives av disse brikkesettene, kan du glede deg over strømmeinnhold komprimert ved hjelp av AV1-kodekene uten å tømme CPU-ene/GPU-ene.
Når det gjelder H.265-kodeken, kan de fleste populære nettlesere som Safari, Firefox og Google Chrome kjøre videoer kodet ved hjelp av komprimeringsalgoritmen uten problemer. Når det er sagt, sammenlignet med AV1 og VP9, er ikke H.265 åpen kildekode, og lisenser må anskaffes for å bruke H.265-kodeken. Av denne grunn kan ikke apper som Microsofts film- og TV-videospiller, som følger med operativsystemet, kjøre videoer som er kodet med H.265 som standard. I stedet må brukere installere flere tillegg fra Windows-butikken for å kjøre slike videoer.
Kodingshastighet
Videokodeker reduserer størrelsen på en video betydelig, men for å redusere størrelsen på en video, må den ukomprimerte videoen behandles ved hjelp av programvare, noe som tar tid. Derfor, hvis du vil redusere størrelsen på en video, må du se på tiden det tar å komprimere videoen ved hjelp av en komprimeringsalgoritme.
Når det gjelder kodingseffektivitet, er VP9 førende i flokken, og kodingstiden for komprimering av videoer er mye lavere enn H.265 og AV1. AV1, på den annen side, er den tregeste i kodingstid og kan ta over tre ganger så lang tid å kode en video sammenlignet med H.265.
Hvilken kodek bør du velge?
Når det gjelder videokodeker, er det veldig subjektivt å finne den perfekte kodeken, siden hver kodek tilbyr forskjellige funksjoner.
Hvis du er ute etter den beste videokvaliteten, gå for AV1. På den annen side, hvis du leter etter den mest kompatible videokodeken, vil VP9 passe best for deg.
Til slutt, H.265-kodeken passer utmerket hvis du trenger god kvalitet og komprimering uten kodingskostnader.