Videokodning i dybden

Videokodning i dybden

Share

Næstegenerations-kodere giver bedre kvalitet og mindre filer; nu skal der fart på

En ny generation af videokodere er ankommet. Nogle lyder bekendt, for eksempel H.265, nogle lyder eksotiske og nye, for eksempel VP9 og AV1, men uanset navnene taler sandsynligheden for, at du falder over en af dem inden længe. Og du kan roligt regne med, at du vil skælde ud over, at din cpu-belastning truer med at nå himlen.

Hvorfor har vi brug for et væld af nye kodere? Hvorfor er din hardware-acceleration holdt op med at virke? Kan du afspille en 4K-fil på dit 4K-UHD-tv? Hvad med HDR på pc’en? Hvordan kan du kode din egen video, og kan du til al overflod få glæde af noget GPGPU-acceleration? Kan vi simplificere det hele til glæde for din overbebyrdede hjerne?

Vi agter at foretage et dyk ned i videkodernes inderste væsen for at se, hvordan flere gigabyte data lader sig komprimere 100 gange, uden at det menneskelige øje kan se forskel.

Hvis du vil kontrollere dine kodere bedre, hjælper det virkelig at have en forståelse for, hvad der foregår i en koder. Ingen af disse standarder definerer koderen. De angiver kun det, der er krævet til koderen. Som vi skal se, sætter det brugeren i stand til at bruge alle mulige former for teknikker og brugerindstillinger til at forbedre koderne. Prisen er som regel længere kodningstider og mere processorbelastning; gevinsten er enten en mindre fil eller forbedret kvalitet.

Animerede GIF’er, og de var hårrejsende. Du kan formentlig se problemet: Folk vil lagre levende billeder på deres computere, og en fikseret paletstandard med 256 farver var ikke fremtiden. Det var i 1987.

Siden da har vi været vidner til 30 års stadige forbedringer i kodning fra en velorganiseret komité for internationale standarder. Eller rettere: indtil det seneste årti. Det vender vi tilbage til.

Vi har ikke tænkt os at dvæle ved det historiske, men det er værd at bemærke et par ting, der har fastlagt rammerne for konventioner og systemer. Før vi fik levende billeder, havde vi stillbilleder. Den første fungerende jpeg-kode blev lanceret i slutningen af 1991, og standarden kom i 1992 – takket være Joint Photographic Experts Group, der begyndte at arbejde på jpeg i 1986.

Se også:  Om 11 år bliver din hjerne simuleret

Tilsvarende dannede International Telecommunications Union (ITU) Video Coding Expert Group (VCEG) tilbage i 1984 med det formål at udvikle en international digital videostandard til telekonferencer. Den standard var den første H.261, der blev færdiggjort i 1990, og som var beregnet til at sende levende billeder ved en opløsning på hele 176 x 144 over ISDN-links på 64 kB/sek. Herfra så H.262, H.263, H.264 og H.265 alle dagens lys, og efter H.261 blev den næste videostandard kendt under navnet mpeg-1.

Det er altså tydeligt, hvor disse standarder kom fra. Vi har nævnt jpeg af to årsager: For det første blev mpeg (Moving Picture Experts Group) dannet efter jpeg’s succes. Den brugte også nogle af de samme teknikker til at reducere størrelsen på de kodede filer, og det var et enormt fremskridt i forhold til det eksisterende tabsløse digitale lager, at man brugte lossy-teknikker.

En af de vigtigste ting, man skal forstå, når det drejer sig om moderne lossy kompression, er den måde, hvorpå billedet bliver behandlet og komprimeret. Vi begynder fra grunden med at se på, hvordan jpeg-kompression [Billede A] fungerer, for her er vi ved det centrale i hele denne branche. Derefter udvider vi denne viden og går til film og mpeg. Når vi er nået så langt, skal vi se, hvordan disse områder blev forbedret og udvidet til de standarder, vi har i dag: H.264 og H.265.

Billede A: Man kan se, at jpeg-kompression døjer med at opretholde detaljerne ved lave kvalitetsindstillinger.

Farverummet ændrer sig

Vi begynder med at få begreb om ændringer i farverummet. Du er sandsynligvis vant til at tænke på alt det, der er lagret på en pc, i 16-, 24- eller 32-bit-farve, fordelt over de røde, grønne og blå kanaler. Det lægger lige stor vægt på alle informationer om farve, nuance og lysstyrke. Sagen er imidlertid, at menneskets øje er langt mere følsomt over for lysstyrke, også kaldet luminans, end noget andet. Derefter kommer nuance og til sidst farvemætning.

Farverummet bliver ændret fra RGB til YCbCr, det vil sige luminans og to krominanskanaler (her rød og blå), og dette er relateret til YUV. Formålet er at muliggøre chroma-subsampling af billedet. Det vil sige, at vi vil reducere opløsningen i kanalerne Cb og Cr for at spare plads uden noget mærkbart fald i kvalitet.

Billede B: Sådan bliver farvekanalerne underopdelt til forskellige
farverum.

Dette bliver udtrykt som en ratio af luminansen til chroma-kanalerne. Den højeste kvalitet – fuld RGB – ville være 4:4:4 med hver pixel forsynet med Y-, Cb- og Cr-data. Den bliver kun brugt i videoudstyr af meget høj kvalitet. Den meget anvendte 4:2:2-kvalitet har Y for hver pixel, men halverer den vandrette opløsning for chroma-data; det er den, der bliver brugt på de fleste former for videohardware. 4:2:0 holder den vandrette opløsning halveret, men springer over hver anden lodrette linje [Billede B]. Det er den kodning, der bliver brugt i mpeg og i enhver H.26x-standard, dvd/Blu-ray og andet. Årsagen? Den halverer kravet til båndbredde.

Kan du høre mig?

I denne artikel glimrer omtale af audio ved sit fravær. Vi er her på gyngende grund, og vi vil hævde, at der ikke længere er nogen, der går op i standalone-audiokodning. Vi tror gerne, at der blandt læserne er en eller flere, der har en samling på mængder af gigabyte, men de er som vinylelskere: De er snarere undtagelsen end reglen. Det føles, som om folk markant har ændret den måde, hvorpå deres audioforbrug finder sted – fra det gamle ejer/samler-system til en nye streamer/abonnent-model.

Se også:  Simkortet er på vej i graven

Selv hvis vi tager det i betragtning, vil du – hvis du vil lagre din egen audio og tage den alvorligt – komme til at gøre det med en tabsløs codec. Eftersom lagerplads er billig, og FLAC er dit valg af codec, er der ikke meget for os at skrive om. Og hvis du er ligeglad, vil du sandsynligvis være fornøjet med at holde dig til mp3-kodning – skønt du burde bruge Ogg Vorbis. Begge disse standarder (FLAC og Ogg Vorbis) er åbne (mp3 er faktisk også åben, fordi patenterne er udløbet).

Teknisk set kan alle og enhver derfor understøtte dem. FLAC har bred bracheopbakning, herunder Windows, MacOS, iOS, Android og Linux. Lige så vigtigt er det, at FLACs enhedssupport er fremragende, herunder Sonos, et væld af bil-audiosystemer, Denon, Synology og Plex for blot at nævne nogle få. Ogg har mere begrænset support, men den kan understøttes af Windows, MacOS og iOS. Nogle vil måske hævde, at et nyere format, Opus, tilbyder endnu bedre kvalitet med dit tabsløse format, men dets lave alder betyder, at hardwaresupport er mere begrænset end hos Ogg.

Del denne