| Title: |
DivX 5.x Codec Setup Guide |
| Description: |
Tells you what the settings for the DivX 5.x codec means, and which one you should enable or disable |
| Author/Publisher: |
Digital Digest |
| Ease of use: |
Not Rated |
| Software Used: |
DivX Codec 5.x |
| Page Viewed: |
57751 times |
|
Printer Friendly Version
User Rating:
No ratings recorded - Vote Now
User Comments: patriothart: DivX Pro Codec 5.1.1...
More / Post Your Comments |
|
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!
| Post processing level |
Horizontal deblocking luminance |
Vertical deblocking luminance |
Horizontal deblocking chrominance |
Vertical deblocking chrominance |
Horizontal deringing |
Vertical deringing |
| 1 |
 |
|
|
|
|
|
| 2 |
 |
 |
|
|
|
|
| 3 |
 |
 |
 |
|
|
|
| 4 |
 |
 |
 |
 |
|
|
| 5 |
 |
 |
 |
 |
 |
 |
| 6 |
 |
 |
 |
 |
 |
 |
|
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).
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!
- 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.
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!
- 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.
Om nog nauwkeuriger te werken kan je de berekeningen
uitvoeren aan de hand van Quarter Pixels: 0.25 pixel!
- MP4 File Creator:
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.
- Quick Config CLI:
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:
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.
- Enable Resize:
Resize laat toe de video stream te coderen naar een welbepaalde
resolutie.
Er zijn 4 opties beschikbaar:
- Bilinear (Very Soft):
- Bicubic (Soft)
- Bicubic (Normal)
- Bicubic (Sharp)
Welke optie het best gebruikt wordt is niet helemaal duidelijk.
In de officiële handleiding staat:
"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.
- Psychovisual Enhancements:
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!
- Pre-Processing:
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:
- 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.
Door deze technieken te gebruiken en zo noise te verminderen
kunnen we in zekere maten de kwaliteit verhogen.
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.
- 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!
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!
- 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.
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:
- 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.
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):
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!
- 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:
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.
- 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.
Al deze parameters staan in relatie met elkaar! Het effect
van een bepaalde optie hangt vaak af van de andere parameters!
- Data Partitioning:
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.
- Performance/Quality:
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!
- DivX MP4 Creator:
Hiermee kan je een DivX avi file (of DivX file) converteren naar
een DivX MP4 file.
DivX 5.0 CLI Parameters
That 's it!
Ik hoop dat ik je heb kunnen helpen!
Greetz,
Diederik
| |
Average Rating: |
Your Rating: |
| Registered Users: |
No ratings recorded |
|
| Non-Registered Users: |
         (12 votes) |
|