h├ęt platform voor online multimediatrainingen

Videocodecs voor beginnende video-editors

Videocodecs voor beginnende video-editors

Door: Rob Swart
Beginnende video-editors krabben zich vaak achter de oren bij het zien van de term codec. Wat zijn videocodecs en hoe belangrijk is het om ze te begrijpen? In dit artikel leggen we de basisbegrippen van videocodecs uit.

Wat is een codec?
Codec staat voor COmpressie en DECompressie. Een codec is een complexe rekenformule waarmee videobestanden (maar ook audio en foto’s) veel kleiner kunnen worden gemaakt. Met behulp van videocodecs nemen videobestanden minder ruimte in op een harde schijf, maar kunnen ze ook sneller en makkelijker via internet worden getransporteerd. De ideale codec zorgt voor een zeer klein bestand met een beeldkwaliteit dat niet te onderscheiden is van het origineel. Dit is echter niet altijd het geval. Afhankelijk van de mate van compressie levert het wel degelijk kwaliteitsverlies op.

Hoe werkt een codec?
Wat compressie is en hoe dat verlies van kwaliteit oplevert, kan met een eenvoudige analogie worden uitgelegd. Wanneer je op vakantie gaat neem je uiteraard kleding mee. Dit hangt normaal gesproken in de kast aan kledinghangers. Deze kun je nou eenmaal niet aan je arm hangen om zo het vliegtuig in te stappen. De logische stap is dat je kleding dus zo klein en compact mogelijk opvouwt en in een koffer stopt. Zolang het in de koffer zit is het heel makkelijk te transporteren. Bij aankomst op je vakantiebestemming dien je de kleding eerst uit te pakken voordat je het weer aan kunt trekken. Wanneer je zo veel mogelijk kleding in een zo klein mogelijke koffer propt, is het zeer makkelijk te transporteren. je ervaart dan echter wel verlies in kwaliteit. Je kleding raakt namelijk gekreukeld.
volgepropte koffer
Videocompressie
Compressie voor video werkt in principe op eenzelfde manier. Bij transport en opslag wordt video zo klein mogelijk gemaakt, door slim gegevens in kleur of beeld weg te gooien. Het veel kleinere bestand is nu veel makkelijker en sneller te transporteren. Voordat je de video weer kunt bekijken moet het materiaal gedecomprimeerd en weer opgebouwd worden. Ook bij het comprimeren van video treedt kwaliteitsverlies op. Dit is echter permanent. Afhankelijk van de mate van compressie, kan het ook duidelijk zichtbaar zijn. Daar waar je bij je vakantiekleding met een reisstrijkijzer nog het een en ander glad kunt strijken, is het bij video permanent en niet te repareren. Je begrijpt dat ik ook altijd een strijkijzer bij me heb op vakantie ­čśë

Voor het kleiner maken van videobestanden bestaan diverse compressietechnieken. Zo kunnen er bijvoorbeeld alleen subtiele kleurverschillen binnen ├ę├ęn frame worden weggegooid. Of kunnen we op een meer drastische wijze ook de verschillen in pixels tussen een groep van frames weggooien (een zogenaamde Group of Pictures of GOP). Deze worden dan weer opgebouwd aan de hand van keyframes (intraframes). Deze keyframes dienen als referentie en bevatten alle pixels die belangrijk zijn om de overige frames binnen de groep weer op te kunnen bouwen.

Spatial videocodecs (Intraframe compressie)
Voor video zijn er twee belangrijke type videocodecs te onderscheiden. Spatial en Temporal. In een Spatial codec worden alle frames volledig bewaard. Er vindt compressie plaats binnen elke frame door de kleuren te verminderen. Dit wordt ook wel intraframe compressie genoemd. Elke frame is een zogenaamde I-frame. Dit type compressie is zeer geschikt voor montage omdat elke frame in zijn geheel aanwezig is. Het nadeel is echter dat er veel minder grote winst geboekt wordt op de bestandsgrootte. Videobestanden met een spatial codec zijn dus relatief grote bestanden. Je moet hier rekening mee houden en zorgen voor genoeg opslagruimte. Ideaal is een toegewijde externe en snelle harde schijf of een solid state drive (ssd). Voorbeelden van Spatial videocodecs zijn Avid DNxHD, Apple Prores en Motion JPEG.
De werking van een spatial codec | everlearn

Temporal videocodecs (Interframe compressie)
Bij Temporal videocodecs worden eenvoudig gezegd over een bepaalde tijdsduur de veranderingen tussen de frames opgeslagen. De pixels die gelijk blijven tussen frames worden onthouden in zogenaamde keyframes ook wel intraframes genoemd (I-frames). Dit is een frame waarin het volledige beeld wordt bewaard. Tussen deze volledige I-frames worden frames bewaard waarin alleen de wijzigingen in de pixels worden opgeslagen. De pixels die dus veranderen tussen de frames worden opgeslagen in zogenaamde P- en B-frames (Predicted en Bi-directional frames). De P-frames bewaren alleen de pixels die ten opzichte van eerdere frames zijn veranderd. De B-frames doen hetzelfde maar kijken ook naar veranderingen in pixels in latere frames. Vandaar de naam bi-directioneel.

Eenvoudig gezegd worden bij het afspelen de complete beelden uit de keyframes en de in de P- en B-frames opgeslagen veranderingen, gezamenlijk gebruikt om alle frames weer tot complete beelden op te bouwen. Wanneer er weinig actie in het beeld zit, blijven veel pixels gelijk tussen de frames. Er kunnen hierdoor veel pixels worden weggegooid. Er bevinden zich dan maar weinig pixels in de P- en B-frames waardoor je uiteindelijk een veel kleiner videobestand krijgt. Een groot nadeel bij het afspelen van een video met een Temporal codec, is dat het opbouwen van de complete frames uit de I-, P- en B-frames veel processorkracht kost. Een reeks frames van de ene I-frame naar de andere I-frame inclusief de tussenliggende P- en B-frames, wordt een long Group Of Pictures genoemd oftewel een long-GOP. Het veelgebruikte H264 codec en nu ook HEVC (H265), staan daarom ook wel bekend als long-GOP codecs.

De mate van compressie kan in een Temporal Codec over tijd zelfs gevarieerd worden. Dit kan door de frames in de video eerst te analyseren. Zo krijg je hoge compressie bij weinig actie en lagere compressie bij veel actie. Omdat er bij veel actie in beeld ook veel pixels veranderen, moet je in die scenes meer pixels opslaan en heb je ook een hogere datarate nodig. Als er weinig actie is veranderen er minder pixels tussen de frames en hoef je minder data op te slaan. Zo krijg je gemiddeld genomen hele kleine bestanden en behoud je relatief hoge kwaliteit. Een codec dat gebruik maakt van een temporal codec en dus werkt met I-, P- en B-frames, wordt ook wel interframe compressie genoemd. Voorbeelden hiervan zijn H264, H265 en MPEG-2.
De werking van een temporal videocodec | everlearn

De reden dat ik dit ietwat technisch verhaal afsteek, is om je een beter inzicht te geven in welke codec je wanneer gebruikt. Vooral bij het importeren, monteren en exporteren is het goed om de verschillende type codecs te kennen.

Zo zijn Temporal codecs minder geschikt voor montage omdat deze meer processorkracht vereisen. Bij het afspelen moeten de tussen de keyframes liggende beelden eerst weer samengesteld worden. Dit kost processorkracht. Ook wanneer je een knip maakt tussen keyframes, dient de computer op de plek van de knip nieuwe keyframes samen te stellen aan de hand van de bestaande keyframes. Ook dit kost extra rekenkracht. Maak je dan ook nog een compositie met meerdere videolagen en maak je gebruik van video-effecten zoals kleurcorrectie? Dan zal de computer al snel behoorlijk moeten rekenen. Ook hoe groter de afmeting van de video met een temporal codec, hoe zwaarder de computer het heeft.
Temporal codecs zijn door hun kleine bestandsgrootte daarentegen ideaal voor het streamen van video op internet. Alle video’s op Youtube of de films en series die je bekijkt bij Netflix, zijn allemaal opgeslagen met een Temporal codec. De meeste camera’s maken standaard gebruik van een Temporal codec. Dit om maar zoveel mogelijk uren aan video-opnames op een SD-kaart te kunnen bewaren. Duurdere en meer professionele camera’s bieden ook de mogelijkheid om met een Spatial of Intraframe codec te filmen.

Bij Spatial codecs is elke frame in zijn geheel aanwezig en kun je veel makkelijker monteren zonder zware belasting van de processor. Wanneer je bij het importeren van video in Final Cut Pro X het vinkje Create optimized media aanzet, zal deze de Temporal codec van de camera omzetten in een spatial codec voor montage. Meestal is dit H264 vanuit de camera dat wordt omgezet naar Prores. Hopelijk heb je met deze uitleg meer inzicht in wat videocodecs zijn en hoe ze werken.

Welke codecs gebruik jij voor je montage en loop je wel eens tegen problemen aan?


1 Comment