De kunst van het encoderen

teaser-80-beter-encoderen

De kunst van het encoderen

Als u gedownloade filmpjes geschikt maakt voor uw iPod of mediacenter of als u uw montage wilt exporteren naar dvd, Blu-ray disk of internet dan krijgt u te maken met het encodeerproces. Een belangrijk proces, want de uiteindelijke kwaliteit van de video wordt hierdoor bepaald.

Belangrijkste voorwaarde voor kwaliteit is een goede encoder. Maar zelfs een kwalitatief goede encoder kan uw video verpesten als de instellingen niet goed staan. Natuurlijk beschikt bijna ieder moderne encoder over voorkeurstemplates voor verschillende videoformaten, snelheden en media, maar lang niet altijd garanderen die de beste kwaliteit. U kunt de output kwaliteit vaak verbeteren door zelf de parameters aan te passen. Daarnaast weet u dan ook zeker dat de video op ieder gewenst apparaat vlekkeloos wordt afgespeeld.

Omdat lang niet iedereen bekend is met de functies van de verschillende instellingen van een video-encoder, zullen we u aan de hand van de Mainconcept encoder de belangrijkste encodeerinstellingen uitleggen. We kiezen voor de Mainconcept encoder omdat deze goed is en omdat deze encoder in veel videomontagepakketten zit verweven. Hebt u een andere encoder dan is dat geen enkel probleem, omdat de meeste parameters in iedere encoder zijn terug te vinden.

beter-encoderen-encoder-mainconcept

De meest gebruikte videocodecs op dit moment zijn zonder enige twijfel mpeg-2 (dvd, digitale televisie) en mpeg-4/avc (mediacenters, internet, hdtv en Blu-ray). We zullen dan ook de parameters  van deze videocodecs onder de lopen nemen.

 

De werking van mpeg

Veel parameters van de mpeg- videocodecs zijn makkelijker te begrijpen als u bekend bent met de werking van mpeg. Het totale encodeerproces vindt grofweg in drie stappen plaats. In de eerste stap wordt door de converter de originele RGB-video data omgezet naar YUV-data om op die manier de helderheidswaarde (Y) te kunnen scheiden van de kleurwaarden (UV). Omdat het menselijk ook gevoeliger is voor helderheid dan voor kleuren kan voor iedere pixel in de video de UV-waarde worden verminderd, waardoor een enorme reductie in bestandsomvang wordt bewerktstelligd.

beter-encoderen-encoder-elecard-settingsbeter-encoderen-converter-handbrake

In de tweede stap wordt ieder videoframe opgedeeld in macroblokken van 16 x 16 pixels. Elk macroblok wordt vervolgens weer opgedeeld in kleinere blokken. Bij mpeg-2 zijn deze kleinere blokken altijd 8 x 8 pixels terwijl mpeg-4/avc blokken van zowel 8 x8 als 4 x 4 pixels kent, waardoor het beeld nauwkeuriger kan worden weergegeven. Per blok wordt de gemiddelde helderheid en kleurwaarden via een wiskundige berekening opgeslagen in een matrix, waarbij er onderscheidt wordt gemaakt tussen belangrijke en minder belangrijke data van het macroblok. Minder belangrijke data worden weggelaten, waardoor de bestandsomvang weer kleiner wordt. Om de videogrootte nog verder te reduceren worden de gegevens in de matrix gekwantificeerd.

Op deze eerste twee stappen in het encodeerproces kunt u doorgaans weinig invloed uitoefenen en moet u volledig vertrouwen op de kwaliteit van de encoder. Anders is dat met de laatste stap van de mpeg-compressie, waarin de videogrootte nog verder wordt gereduceerd door middel van bewegingsvoorspellingen.

beter-encoderen-mpeg-compressie

Om die voorspellingen te kunnen maken wordt de video opgedeeld in drie verschillende frames, te weten I, P en B frames. Een I-frame (intra frame of key frame) wordt geëncodeerd zonder naar andere frames te kijken. Met andere woorden het bevat de volledige videodata om het frame goed te kunnen weergeven en is daardoor wat betreft omvang ook de minst efficiëntste. Bij het afspelen wordt de video altijd gestart vanaf een I-frame.

Een P-frame (predictive frame) wordt opgebouwd uit een voorwaartse voorspelling. De videodata van een P-frame wordt verkregen uit een eerdere I-frame of P-frame. De data van een P-frame bestaat uit vectoren die beschrijven welke macroblokken uit eerdere I- of P frames moeten worden hergebruikt, aangevuld met nieuwe data voor veranderingen in het beeld en data om fouten te corrigeren. De omvang van een P-frame is ongeveer de helft van een I-frame omdat alleen de verschillen worden opgeslagen.

Een B-frame (bidirectional frame) wordt opgebouwd door naar eerdere of later I-frames en P-frames te kijken. De data in een B-frame bestaat uit vectoren die beschrijven welke macroblokken uit eerdere of latere I- en P-frames er moet worden gebruikt, aangevuld met correctie data. Het is niet noodzakelijk dat een B-frame gebruikt maakt van zowel een voorwaartse als achterwaartse bewegingsvoorspelling.

In tegenstelling tot in mpeg-2 kunnen in mpeg-4/avc B-frames nu ook dienen als referentieframes voor andere B-frames. Door gebruik te maken van deze zogenaamde B-frame piramide kunt u de kwaliteit van uw video flink verbeteren.

beter-encoderen-b-frames-vs-geen-b-frames

Tevens kunt u bij mpeg-4/avc gebruik maken van Variable Block Size Motion Compensation (VBSMC). Bewegingen in mpeg-2 van het ene frame naar het andere werden berekend aan de hand van de 16 x 16 macroblokken. Een kleine verandering in het beeld betekende gelijk het opnieuw encoderen van het hele blok. Door VBSMC  kunnen bij het encoderen blokken worden gekozen van 16 x 16 tot 4 x 4 om bewegingen in het beeld zo precies mogelijk te segmenteren. Daarnaast kunnen nu in tegenstelling tot bij MPEG-2 ook de B-frames op deze manier worden geëncodeerd.

 

Group of Pictures (GOP)

Een I-frame vormt samen met de bijbehoren de P en B frames een Group of Pictures (GOP). De lengte van de GOP kunt u zelf bepalen, maar de gebruikelijke lengte is 12 tot 15 frames om problemen tijdens het streamen of uitzenden via de kabel of satelliet te voorkomen.

beter-encoderen-mpeg-GOP

Een GOP kan gesloten of open zijn.  Een Closed GOP staat op zichzelf en maakt geen gebruik van informatie uit eerdere of latere GOPS. Doorgaans start een Closed Gop met een I-frame en eindigt het met een P-frame. Het is wel mogelijk om als laatste frame in een Closed GOP een B-frame te gebruiken, maar deze mag dan alleen zijn opgebouwd door te kijken naar een eerdere I-frame of P-frame.

Bij een Open GOP maakt dit niet uit. Een B-frame kan dan worden opgebouwd door te kijken naar een eerder P-frame uit dezelfde GOP en een I-frame uit de volgende GOP.  Het gebruik van Open GOP’s is wat betreft encodering efficiënter, maar kan fouten in het beeld opleveren bij scènewisselingen.

 

Keuze voor mpeg videocodec

De keuze tussen mpeg-1 of -2, mpeg-4 part-2, en mpeg-4 part 10 (beter bekend als H.264 of mpeg-4/avc) kunt u het beste maken door te kijken naar het medium waarvoor u de video geschikt wilt maken.  Mpeg-1 wordt zelden meer gebruikt, maar kan nog steeds handig van pas komen als u video-cd’s wilt maken. Mpeg-2 wordt op dit moment het meest gebruikt. Niet alleen maken alle dvd’s gebruik van dit videoformaat, maar ook standaard televisie-uitzendingen worden uitgezonden in mpeg-2. Mpeg-4 part-2 is geschikt om video te streamen over het internet of voor het afspelen op mobiele apparaten terwijl u mpeg-4/avc kunt kiezen als u werkt met hd-video, maar ook als u uw standaard videomateriaal wilt afspelen op een mediacenter.

De keuze tussen de ene of de andere videocodec lijkt soms arbitrair omdat de meeste apparaten, inclusief uw pc, alles lijken te kunnen afspelen. Toch doet u er goed aan eerst te controleren welke formaat precies door uw apparatuur wordt ondersteund om teleurstellingen achteraf te voorkomen. Houd er daarnaast rekening mee dat als u later alsnog uw bestanden wilt her-encoderen en u niet meer beschikt over het origineel, dit altijd gepaard gaat met kwaliteitverlies.

Als laatste moet u goed beseffen dat de keuze voor een bepaalde codec ook direct gevolgen heeft voor de kwaliteit, afspeelbaarheid en bandbreedte gebruik van uw video. In zijn algemeenheid kunt u van het volgende uitgaan.

  1. De kwaliteit zal bij eenzelfde bitrate toenemen in de volgende volgorde: mpeg-1, mpeg-2, mpeg-4 part 2 en mpeg-4/avc.
  2. Des te complexer de video codec, hoe meer processorkracht er nodig is om de video te kunnen afspelen. Voor mpeg-1 is de minste processor kracht nodig. Daarna volgen mpeg-2, mpeg-4 part 2 en mpeg-4/avc.
  3. Zeker als u filmpjes om uw eigen website zet en u kosten moet betalen voor bandbreedte verbruik is een juiste keuze voor een codec van groot belang. Het bandbreedte gebruik bij gelijk blijvende kwaliteit neemt af van in de volgende volgorde; mpeg-1, mpeg-2, mpeg-4 part 2 en mpeg-4/avc.

 

Encodeertemplates

Als u gaat encoderen kiest u altijd het kwalitatief beste bestand uit. In het geval van dv gebruikt u de originele opnames  of avi-bestanden en niet de bestanden die al eerder zijn geëncodeerd naar bijvoorbeeld mpeg, wmv of flash. Daarnaast zorgt u ervoor dat de harde schijven in uw computer over genoeg ruimte beschikken en dat ze zijn gedefragmenteerd. Het beste is om een tweede harde schijf te gebruiken, waarop niet het besturingssysteem draait.

Afhankelijk van de encoder moet u eerst een template kiezen, voordat u de instellingen kunt aanpassen. In sommige gevallen kunt u direct aan de slag als u bij de templates kunt opgeven dat u er zelf een wilt samenstellen. In het laatste geval hebt u de meeste vrijheid om zelf keuzes te maken.

beter-encoderen-mainconcept-stream-type

Werkt u wel vanuit een preset dan komt u vaak de termen Basic, Main en High Profile tegen achter de mpeg-formaten.  Evenals mpeg-2 maakt mpeg- 4 bij het encoderen gebruik van Profiles en Levels. Ieder Profile heeft zijn eigen eigenschappen die noodzakelijk zijn om de video geschikt te maken voor een bepaalde dienst. Het Baseline Profile (BP) voor videoconferencing en mobiele applicaties, het Main Profile voor gebruik op dvd’s en computer en het High Profile (HiP) voor televisie-uitzendingen en opslag op blu-ray disks. Ieder Profile is vervolgens weer opgebouwd uit levels. De levels bepalen onder meer de maximale bitrate en resolutie. De keuze van het gekozen Profile bepaalt ook welke instellingen u mag aanpassen.

 

De basis encodeerinstellingen

Bij het aanmaken van een nieuwe template kiest u eerst het Stream Type. Voor mpeg hebt u doorgaans vier mogelijkheden. Met een Program Stream wordt de video en audio verpakt in één mpg-bestand. U gebruikt deze optie als u naar mpeg-1 of mpeg-2 wilt encoderen en de bestanden brand op een dvd of afspeelt op een computer of mediacenter. Met een Elementary Stream worden de video en audio stream als gescheiden bestanden opgeslagen. Dit is erg handig als uw apparaten verschillende audio streams vereisen. Als u bestanden wilt streamen over het internet dan kiest u voor een Transport Stream. De Transport Stream verpakt de video en audio in één bestand maar voegt hier extra gegevens aan toe om fouten te kunnen corrigeren. Wilt u uw bestanden kunnen afspelen op een iPod, PSP of op mobiel apparaat dan kiest u als Stream Type mp4.

beter-encoderen-mainconcept-de-basis

Na het kiezen van de Stream Type, selecteert u de gewenste mpeg-videocodec direct gevolgd door het bijbehorende mpeg-profile. Weet u niet zeker welk profile de beste keuze is, controleer dan de handleiding van uw apparaat of bepaal uw keuze aan de hand van de overzichten van Profiles en Levels voor mpeg-2 en mpeg-4/avc op respectievelijk http://en.wikipedia.org/wiki/MPEG-2 en http://en.wikipedia.org/wiki/H.264.

Let op dat het Baseline Profile van mpeg-4/avc speciaal is ontwikkeld voor minder processor krachtige apparaten en dat dit profiel geen gebruik maakt van alle geavanceerde mpeg-4/avc encodeermogelijkheden. En wilt u mpeg-2 gebruiken voor het encoderen van hd-video dan is de enige keuze High Level, omdat dit de maximale hd-resolutie van 1920 x 1080 ondersteund.

De keuze van het mpeg-profiel bepaalt vervolgens welke maximale resoluties, bitrates en geavanceerde instellingen u kunt kiezen of aanpassen. Als u hiervan afwijkt, bestaat de kans dat de video op uw apparatuur niet correct wordt afgespeeld. Het is verstandig de resolutie van de video gelijk te houden met het origineel of te verkleinen. Als u de resolutie toch verhoogd, wordt het beeld opgeblazen en zal de kwaliteit altijd afnemen.

Kiest u voor het PAL-televisieformaat, dat wij in Nederland gebruiken, dan past u de frame rate aan naar 25 fps. Hebt u beelden gedownload in NTSC-formaat dan zet u de frame rate op 29,97 fps. Vervolgens past u de beeldverhouding aan. U kiest 16:9 voor breedbeeld en 4:3 voor standaard televisie. Weet u niet precies wat de eigenschappen van uw video zijn dan kunt u deze altijd terugvinden door de eigenschappen op te vragen in een videomontagepakket of door de videobestanden te openen in Mediainfo  (http://mediainfo.sourceforge.net/nl).

VBR of CBR

Als laatste basisinstelling geeft u de gewenste bitrate op. Voor een dvd is de maximale bitrate 9800 Kbps, voor een Blu-ray-disk 48.000 Kbps en voor bestanden kunt u dat zelf bepalen. Hoe hoger de bitrate, des te beter de kwaliteit. U kunt kiezen tussen voor een constante of variabele bitrate. Een constante bitrate heeft als voordeel dat het encodeerproces sneller verloopt, maar het optimaliseert niet de kwaliteit. Encoderen met een variabele bitrate is een stuk langzamer, maar levert een betere kwaliteit. Overweeg een constante bitrate als u haast hebt, de video wilt streamen of als er weinig beweging in het beeld is. Kies voor een variabele bitrate als de clips langer zijn dan een minuut, er veel beweging in het beeld zit of als u de video als download wilt aanbieden. In het geval van een variabele bitrate moet u altijd een maximum bitrate opgeven. Hanteer hiervoor 1,5 of 2 maal de bitrate die u voor uw medium wilt gebruiken. Als minimum vult u in de helft van de uiteindelijk gewenste bitrate. U kunt de kwaliteit van zowel de constante als variabele bitrate nog verbeteren door de 2-pass modes van de encoder te activeren. Er wordt dan eerst een analyse gemaakt van de video voordat deze wordt geëncodeerd.

 

Frame of field encoding

In tegenstelling tot mpeg-2 kent mpeg-4/avc veel verschillende parameters om de kwaliteit van de video positief te beïnvloeden . U kunt deze parameters vinden onder de geavanceerde instellingen.

De keuze tussen Frame en Field encoding  optimaliseert het encodeerproces voor progressive, interlaced en gecombineerde videoframes (bijvoorbeeld als u foto’s gebruikt in uw montage). Kies voor frame coding als u progressive videobeelden gebruikt. Bij progressive frames is het beeld opgebouwd uit één enkel beeld, waardoor de kwaliteit beter is dan bij interlaced frames waar het beeld wordt samengesteld uit twee halfbeelden. Kies voor Field Coding als uw videobeelden interlaced zijn. Bevat uw video een combinatie van progressive en interlaced frames, kies dan voor Interlaced Adaptive.

beter-encoderen-mainconcept-frame-field-keuze

Interlaced Adaptive wordt ook vaak aangegeven met MacroBlock Adaptive Field Frame (MBAFF). In het geval van MBAFF wordt op basis van een macroblok bepaald of het videoframe als field of frame moet worden geëncodeerd. Sommige encoders bieden ook de optie Picture Adaptive Field Frame (PAFF) voor gebruik op minder processor krachtige apparaten, maar dan wordt de encodeerkeuze alleen bepaalt door te kijken naar het totale frame. MBAFF is efficiënter en garandeert een betere kwaliteit.

 

Stream Structure

Bij Stream Structure kunt u het gebruik van B-frames bepalen. B-frames verhogen de kwaliteit van uw video, maar het encoderen duurt langer. Met Use B-Pictures geeft u aan dat u B-frames wilt gebruiken. De waarde die u invult, 2 of 3, bepaalt hoeveel B-frames er naast elkaar komen te staan. Als u de B-frames als referentieframes gebruikt, activeert u de B-frame piramide en zal de kwaliteit van uw video worden verbeterd. Ieder B-frame kan in stukken, Slices, worden verdeelt om het encoderen te vereenvoudigen.

beter-encoderen-mainconcept-stream-structure

Nadeel is dat de kwaliteit kan verminderen. Laat de waarde hier op één staan tenzij u sneller resultaat wilt hebben. Tenslotte kunt u met het aantal reference frames opgeven hoeveel B-frames er moeten worden gebruikt om te zoeken naar verschillen in het beeld. Vier is voor de meeste videobeelden prima.

 

CABAC of CAVLC

In veel encoders kunt u aangeven of u gebruik wilt maken van Context-adaptive binary arithmetic coding (CABAC). CABAC is een lossless entropy coding techniek waarmee zonder kwaliteitsverlies gedeelten binnen de macroblokken kunnen worden geëncodeerd. Selecteert u deze optie niet, dan worden de beelden automatisch met Context-adaptive variable-length coding (CAVLC) geëncodeerd.

beter-encoderen-Cabac-met-en-zonder

CABAC overtreft CAVLC in kwaliteit, maar bestanden geëncodeerd met CABAC vragen meer processorkracht om te kunnen worden afgespeeld. De instelling CABAC kunt u alleen instellen bij de Main en High profiles van mpeg.

 

Motion Search en Prediction

Met de instellingen voor Motion Search en Prediction bepaalt de encoder hoe nauwkeurig er naar verschillen in het beeld wordt gezocht. Hoe nauwkeuriger de zoektocht naar verschillen, des te beter de kwaliteit. Met Search Shape bepaalt u de omvang van het macroblok dat moet worden bekeken om verschillen te zoeken. Met 8 x 8 zal het zoeken naar verschillen tijdens het encoderen sneller gaan, maar het levert een mindere kwaliteit op dan wanneer u de optie 16 x 16 selecteert.

beter-encoderen-mainconcept-motion-search-prediction

De SubPixel Mode bepaalt in welke mate er wordt gekeken naar bewegingen van pixels. Met de optie Full wordt alleen gekeken naar verschillen in de totale positie van een pixel, terwijl bij de opties Half en Quarter ook de verschillen van halve en kwart pixels worden geregistreerd. De optie Quarter levert het beste resultaat op.

Bij de opties Multi-reference Frame Motion Estimation en Sub-block Motion Estimation kunt u aangeven of er langzaam of snel gezocht moet worden naar verschillen in respectievelijk referentie frames en macroblokken. Geeft u met Complex de opdracht aan de encoder om de tijd te nemen om de verschillen te registreren dan zal de kwaliteit van uw video toenemen. Met de optie Fast gaat het encoderen aanzienlijk sneller, maar zal de beeld kwaliteit minder zijn.

 

Deblocking en Hadamard Transform

De belangrijkste instellingen voor het encoderen zijn u nu bekend. Wel kunt u nog even kijken of uw encoder de opties voor een Deblocking filter en Hadamard Transform aanbiedt. Door het inschakelen van een Deblocking filter kunt u eventuele zichtbare mpeg-blokken in uw beeld verminderen. Nadeel van deze optie is dat het encoderen langer duurt en de video moeilijker te decoderen is. Het is dus afhankelijk van uw apparatuur of u deze optie wilt gebruiken.

beter-encoderen-mainconcept-deblocking-hadamard

Hadamard Transform is een encodeertechniek om de kwaliteit van de compressie te verhogen. Het verbetert zichtbaar de kwaliteit van uw video, maar het encodeerproces duurt daardoor wel iets langer.

 

Audio instellingen

Controleer voor het kiezen van een audiocodec welke worden ondersteund door uw apparatuur. Vaak wordt hierbij ook vermeld wat de maximaal ondersteunde bitrate is. U hebt doorgaans de keuze uit AAC, Dolby Digital en LPCM.

beter-encoderen-mainconcept-lpcm-multikanaals

De mpeg-4 Advanced Audio Coding (AAC) is het geluidsformaat voor mp4-bestanden en is daarmee geschikt voor onder meer iPhones, iPods en mediacenters. AAC levert een betere kwaliteit geluid dan mp3 of het oude mpeg-audio layer 2 bij eenzelfde bitrate. Daarnaast ondersteunt AAC meerkanaals geluid en hanteert het een efficiënte compressiemethode.

De kwaliteit van Dolby Digital is buitengewoon goed, het ondersteunt ook meerkanaals geluid en is een van de voorkeursformaten van dvd en Blu-ray disk. Daarom speelt in tegenstelling tot AAC Dolby Digital wel op iedere dvd- en Blu-ray-speler af. Lang niet iedere encoder biedt de mogelijkheid om naar Dolby Digital te encoderen en als ze het wel aanbieden kunt u meestal alleen exporteren naar stereo of surround. Wilt u toch gebruik maken van multikanaals geluid dan is de LPCM voor dvd’s en Blu-ray disks het beste alternatief. Met LPCM kunt u acht geluidskanalen gebruiken. Omdat LPCM een ongecomprimeerd geluidssignaal is, moet u wel rekening houden met de benodigde schijfruimte.