Page 4 of 4: DivX 5.0.x Setup - Dutch Version
Hier is hij dan eindelijk: de DivX 5.0 Pro handleiding!
Het vervolg op DivX 4.X!
Ik hoop dat je er veel aan hebt. Er is in ieder geval veel tijd in gekropen.
Met eventuele vragen en/of opmerkingen
kan u altijd hier terecht.
Gelieve eventuele spellingsfouten te melden ;-)
1. DivX Decoder
Post Processing:
2 soorten filters: horizontale en verticale de-blocking en de-ringing filters.
Post-processing is zeer CPU intensief! Er zijn 7 verschillende niveaus:
minimum (level 0: geen post-processing) tot en met maximum (level 6).
Gebruik het maximum enkel indien je een Pentium III of nieuwere processor
hebt!
|
2. DivX Encoder
a. DivX Codec Hoofdmenu
- Bitrate Modes:
- 1-pass (variable bitrate mode): De encoder zal trachten aan de film een gemiddelde bitrate toe te kennen ongeveer gelijk aan de opgegeven waarde. Low-motion scènes zullen minder data krijgen dan high-motion scènes.
- 1-pass quality based: De encoder zal elk frame coderen tegen dezelfde absolute hoeveelheid, zonder rekening te houden met de hoeveelheid "motion" (beweging).
- 2-pass (variable bitrate mode): Alvorens werkelijk te coderen, zal de video geanalyseerd worden op zijn complexiteit, om zo complexere scènes meer data te geven dan minder complexe scènes. Dit gebeurt nauwkeuriger dan bij 1-pass encoding. Deze operatie heeft wel 2 stappen nodig (2-pass): Analyse fase (first pass) en Codeer fase (second pass).
- MPEG4-Tools:
- Bi-directional encoding: Er bestaan 3 soorten frames in een DivX video stream: I-frames (Intra), P-frames (Predicted) en B-frames (Bi-directional). In vorige versies van DivX waren er enkel I-frames en P-frames.
- Global Motion Compensation (GMC): GMC helpt complexe scènes, waar "zooming" en "panning" gebruikt worden, te verbeteren: aangezien opeenvolgende frames sterk verwant zijn (wegens "zooming" en "panning") kan men de benodigde data reduceren.
- Quarter Pixel: De hoeveelheid data wordt gereduceerd door aan te geven naar waar en bepaald blok verplaatst is, zoals vermeld hierboven. met andere woorden 2 blokken worden met elkaar vergeleken en men ziet wat het "verschil" is tussen beiden. Dit gebeurd normaal aan de hand van een macroblok-bij-macroblok basis (16x16 pixels) of een blok-bij-blok basis (8x8 pixels). Om de nauwkeurigheid van de verplaatsing (verschil) te vergroten maakt DivX gebruik van een Half Pixel. Dit wil zeggen dat je de verplaatsing kan uitdrukken met 0.5 pixel in plaats van enkel integer waarden (verplaatsing met 1 pixel) te gebruiken.
- MP4 File Creator:
- Quick Config CLI:
Tijdens de analyse worden de resultaten in een log file weggeschreven om nadien tijdens de second pass te gebruiken. De "Protect Log/My File" optie voorkomt het overschrijven van een bestaande log file. Dezelfde settings moeten tijdens beide fases gebruikt worden!
I-frames worden gecodeerd aan de hand van informatie binnenin zijn eigen frame. Er wordt geen informatie gebruikt uit andere frames! Vergelijk het met een enkele frame waar je gebruik maakt van JPEG-compressie
P-frames worden gecodeerd aan de hand van hun voorgaande frame. Dikwijls veranderen er maar enkele pixels gedurende een bepaalde opeenvolging van video frames. In plaats van elke frame afzonderlijk te coderen zoals een JPEG afbeelding, wordt er gebruik gemaakt van de "overtollige informatie": Een P-frame is een toekomstige frame die detecteert waar een blok in het vorige frame naar toe verplaatst is in de huidige P-frame. Men geeft dus aan naar waar een bepaald blok verplaatst is.
DivX 5.0 codec introduceert de mogelijkheid om ook B-frames te gebruiken. Een B-frame gebruikt niet enkel de vorige frame om te "voorspellen", maar ook de volgende frame! Hierdoor is minder data nodig om een frame te coderen, en de kwaliteit wordt verhoogd!
Om nog nauwkeuriger te werken kan je de berekeningen uitvoeren aan de hand van Quarter Pixels: 0.25 pixel!
Deze optie laat je toe een file te maken in het ".divx" formaat of een MPEG-4 compatibele file. Enkele nieuwe features werken enkel met het nieuwe ".divx" formaat.
Command Line Interface: de geselecteerde opties kan je ook via de command line ingeven. Tevens krijg je hier te zien wat de command line parameters zijn voor de gekozen opties, waardoor je makkelijk instellingen kunt uitwisselen met andere gebruikers (door de command line te kopiëren).
Meer uitleg vind je in de Appendix over de CLI parameters.
b. General Parameters Menu
- Enable Crop:
- Enable Resize:
- Bilinear (Very Soft):
- Bicubic (Soft)
- Bicubic (Normal)
- Bicubic (Sharp)
- Psychovisual Enhancements:
- Pre-Processing:
- Spatial Filter: er wordt gekeken naar de omliggende pixels binnen hetzelfde frame en op basis hiervan wordt een "smoothing"-functie (gelijkmaken) toegepast.
- Temporal Filter: pixels op dezelfde positie over een aantal opeenvolgende frames worden gelijkgemaakt.
- Keyframe De DivX encoder zal, telkens wanneer er een scène verandering wordt gedetecteerd, automatisch een keyframe invoeren. Wanneer er echter gedurende een relatief lange tijd geen scène overgang gedetecteerd wordt zal de encoder automatisch keyframes toevoegen met een frequentie gespecificeerd door de gebruiker. Aangezien keyframes het "grootst" zijn van alle frames zal de frequentie een drastisch effect hebben op de uiteindelijke gecodeerde file grootte!
- Intelligent De-Interlace/Inverse Telecine (Source Interlace): Interlacing is uitgevonden in de jaren '40: in plaats van elke seconde 60 frames te zenden worden er afwisselend even en oneven "lijnen" verzonden (film is opgebouwd uit lijnen). Een interlaced scherm zal deze lijnen vervolgens "interlacen" (ineenvoegen) op een correcte manier.
- All frames are progressive: default optie: de-interlacing en IVTC worden niet gebruikt!
- All frames are interlaced: de codec zal alvorens te resizen en coderen een de-interlace algoritme uitvoeren.
- Intelligent IVTC/de-interlace: de codec zal automatisch uitzoeken wanneer IVTC en de-interlacing gebruikt moet worden.
Aan de hand van "cropping" kan je niet gewenste randen verwijderen. Zo voorkom je dat er nodeloos data aan de niet gewenste randen gespendeerd wordt.
Specificeer het aantal pixels die aan elke rand moeten weggeknipt worden.
Resize laat toe de video stream te coderen naar een welbepaalde resolutie.
Er zijn 4 opties beschikbaar:
"From a mathematical viewpoint, it could be argued that the bicubic resize algorithm is best for enlarging the image while bilinear is more suited to size reduction. From our own experience, the opposite appears to be true."
Ik zelf hou het bij het "wiskundig standpunt", dus gebruik het bilineaire resize algoritme wanneer je wil verkleinen en het bicubic resize algoritme wanneer je wil vergroten. Bovendien is het bilineaire algoritme behoorlijk minder CPU intensief!
Meer uitleg over bilineair vs bicubic vindt u op Nicky's Pages Digital Solutions.
Letterlijk vertaald: psychovisuele verbeteringen.
Door de kennis in verband met de "Human Visual System" (HVS) uit te buiten is de efficiëntie van video data opslag verbeterd met als doel de waarneming van kwaliteit in de video te vergroten! HVS is de manier waarop wij als mens beelden bekijken en interpreteren.
Met andere woorden: aan de hand van psychovisuele modelleer technieken wordt er minder data toegekend daar waar ons "Human Visual System" minder gevoelig is, en meer data daar waar ons HVS veel gevoeliger is. Belangrijk hierbij is dat er geen rekening wordt gehouden met één enkel frame, maar wel met een sequentie van frames! Dit is de sleutel tot data-reductie: we moeten data toekennen op een manier zoals ons HVS doet bij een video sequentie aan een welbepaalde frame rate (bv 25 frames per seconde), en NIET door elk frame afzonderlijk te behandelen!
DivX Pro 5.0 is de eerste wijd verspreidde codec die van deze innoverende techniek gebruik maakt! Aanvankelijk werd psychovisueel modelleren bijna uitsluitend gebruikt in academische onderzoekscentra. Dit is een onderzoeksdomein met nog vele mogelijkheden!
Noise (ruis) kan een groot probleem vormen tijdens de video compressie, omdat de noise relatief veel beschikbare bits (voor de video stream) in beslag kan nemen. De pre-processing filter maakt gebruik van digitale signaal verwerkingstechnieken om noise te verwijderen uit het bronmateriaal, alvorens daadwerkelijk te coderen. Er wordt gebruik gemaakt van 2 filters. Veronderstel één enkele pixel ergens in het beeld:
Er zijn 4 opties mogelijk: Light, Normal, Strong en Extreme.
Normal pre-processing zou geen merkbare achteruitgang mogen veroorzaken van de source file, maar voor een echt gevoelige source file is er de Light optie. Strong en extreme zullen een deel van de data verwijderen en kan best gebruikt worden wanneer file size belangrijker is dan kwaliteit of bij video materiaal met erg veel ruis.
Aangeraden wordt minstens elke 10 seconden een keyframe in te voegen, dus wanneer je een frame rate hebt van 25 fps betekent dit om de 250 frames!
Een camera zal bv 1/60 van een seconde een oneven lijn opnemen, en de volgende 1/60 seconde een even lijn. Dit kan bij snel bewegende objecten gekartelde randen geven tijdens het afspelen. Het is mogelijk deze gekartelde (scherpe) randen weg te krijgen aan de hand van de-interlacing. De DivX codec kan, alvorens te coderen, de source file de-interlacen. Belangrijk hierbij is wel dat de video niet geresized wordt door een extern programma!
Een film wordt meestal gemaakt aan 24 fps, terwijl de NTSC standaard 30 fps bedraagt. De film wordt daarom geconverteerd naar 30 fps door sommige video velden te dupliceren (telecine genaamd). Hierdoor bekomt men de gewenste 30 fps. Inverse-Telecine (IVTC) is het omgekeerde van wat hier boven staat: de gedupliceerde velden worden terug verwijderd! De DivX codec heeft 3 opties voor de-interlacing en IVTC:
Er is ook nog een optie beschikbaar voor gebruikers wiens hoofdzorg de codeer snelheid is: "Basic Video Deinterlace". Deze optie mag niet gebruikt worden wanneer er ook aan "resizing" wordt gedaan! Verder moet de Source Interlace optie op "All frames are progressive" staan.
c. Advanced Parameters Menu
- Data Rate Control Parameters (RC):
- Maximum and Minimum Quantizers: De quantizer is één van de belangrijkste parameters tijdens het coderen! De quantizer bepaalt hoe mooi de encoder de video sequentie codeert. De algemene regel is:
- RC Averaging Period, frames: Controleert hoeveel frames er gebruikt moeten worden bij het bepalen hoe de bitrate verdeeld moet worden. De default waarde zou normaal goed moeten werken!
- RC Reaction Period, frames: Regelt de balans tussen low-motion en high-motion scenes. Hogere waarden resulteren meestal in betere high-motion scenes en slechtere low-motion scenes. De default waarde zou normaal goed moeten werken.
- Rate Control Down/Up Reaction: Deze optie controleert de gevoeligheid waarmee bepaald wordt met welke motion (bewegingsgraad) we te maken hebben: high-motion of low-motion. Hoe hoger het nummer, hoe gevoeliger de codec wordt voor beweging. Hogere waarden zorgen meestal voor betere high-motion scènes, maar ook voor extra benodigde bits! De default waarde zou normaal goed moeten werken.
- Data Partitioning:
- Performance/Quality:
- DivX MP4 Creator:
Met een aantal opties kan je experimenteren, maar hou er rekening mee dat kleine veranderingen merkbare effecten tot gevolg kunnen hebben! Daarom zijn deze features bedoeld voor ervaren gebruikers: zelfs de ontwikkelaars begrijpen niet 100% hoe elke parameter juist werkt!
lage quantizer waarde = beter kwaliteit + grotere file!
De default waarden zouden min of meer een optimaal resultaat moeten geven.
Als je toch wil experimenteren, hou dan rekening met het volgende:
Wanneer je een low-motion scène hebt gecodeerd en je bent niet helemaal tevreden over het resultaat probeer dan de Minimum Quantizer waarde te verlagen. Merk wel op dat je uiteindelijke file grootte hierdoor zal toenemen.
Wanneer je een high-motion scène hebt gecodeerd en je bent niet helemaal tevreden over het resultaat probeer dan de Maximum Quantizer waarde te verlagen. Merk ook hier op dat je uiteindelijke file grootte hierdoor zal toenemen.
Om de juiste settings te vinden kan je als volgt te werk gaan: zet de quantizer waarden tamelijk hoog en codeer een high-motion scene van 30 Ã 60 sec. Bekijk nu dit fragment en verlaag de maximum-quantizer waarde totdat het blokeffect niet of weinig meer voorkomt. Doe nu hetzelfde met een low-motion scene (bv waar mensen enkel aan het spreken zijn met elkaar). Bekijk het resultaat en verlaag de minimum-quantizer waarde totdat het blokeffect (zo goed als) verdwenen is.
Al deze parameters staan in relatie met elkaar! Het effect van een bepaalde optie hangt vaak af van de andere parameters!
Data Partitioning kan nuttig zijn wanneer transmissie errors kunnen voorkomen zoals in broadcast omgevingen. Data Partitioning zal de data in de stream op een andere manier organizeren zodanig dat men aan "error recovery" en "packet re-synchronization" kan doen.
De kern van de zaak is:
wanneer een betere kwaliteit verlangd wordt, heb je meer CPU tijd nodig!
Je zal zelden of nooit de Quality optie op iets anders dan "slowest" moeten zetten, aangezien dit de BESTE kwaliteit geeft! Laat deze optie op "slowest" staan tenzij noodzakelijk van niet!
Hiermee kan je een DivX avi file (of DivX file) converteren naar een DivX MP4 file.
That 's it!
Ik hoop dat ik je heb kunnen helpen!
Greetz,
Diederik