Read English version of this Guide.
Return to translated articles index

Translated by : Diederik

DivX Codec 4.x

 

0. Inleiding

Over mij zelf: ik ben een student informatica aan het RUCA en zit in 2de KAN (2001-2002).

Waarom dit artikel ? Simpelweg omdat ik in mijn zoektocht naar informatie over DivX Codec 4.x weinig heb gevonden dat mij aanstond : iedere vorm van informatie was nogal oppervlakkig, op 1 artikel na. Dit éne artikel heb ik daarom vertaald en bijgewerkt, in de hoop anderen hiermee een hele stap vooruit te kunnen helpen.

Enjoy it ! ;-)

 

 

1. DivX Codec 4.x ;-)

Open de DivX Video Codec Configuration

 

 

(A) Variabele bitrate mode’

Er zijn 3 basisopties:

1-Pass: Te vergelijken met de “oude” DivX low motion codec. Bij default settings betekend dit een “normale variabele bitrate”. Alleen hebben we nu meer controle over de kwaliteit dan bij de oude 3.x codec. (Zie verder)

 

1-Pass Quality-Based: Elke frame krijgt dezelfde bitrate, maw een constante bitrate (CBR). Ipv een bitrate in te voeren , maakt deze gebruik van een percentage schuifbalk (D).

 

2-Pass, first pass & 2-Pass, second pass: Deze 2 opties zijn beide onderdelen van 1 geheel. Ze laten ons toe aan “2 stappen variabele bitrate encoding te doen. De eerste stap (first pass) zal de film onderzoeken en een log-file maken met hierin details over hoeveel delen “high motion scenes” zijn en hoeveel delen “low motion scenes”. Aan de hand van deze informatie kan het programma de beste manier bepalenn om de film te encoderen met de desbetreffende lengte die je wilt. Eens de log-file gemaakt, kan je de “second pass” optie kiezen waardoor de film geëncodeerrd zal worden ahv deze informatie. Het analyseren van de film en het maken van de log-file duren wel even lang als het encoderen van de hele film zelf! Daartegenover staat wel de beste kwaliteit!

 

(B) 'Performance/quality'

      Met deze setting geef je aan hoeveel tijd er gespendeerd wordt aan het bepalen van de beste manier om elk frame te encoderen. Hierbij geldt: hoe trager, hoer beter de kwaliteit! De “fastest” optie is enkel bedoeld voor realtime video. De “slowest” optie heeft de beste anti-noise filter, de “slow” optie heeft ongeveer een evengoede anti-noise filter, terwijl de “medium” optie eruit ziet als een DivX zonder anti-noise filter. Alles onder “medium” ziet er slecht en blokkerig uit! Het verschil tussen “slow” en “slowest” is miniem, dus wanneer kwaliteit belangrijk is kan je eventueel ook “slow” kiezen.

 

(C) 'Output video bitstream'

      Hier voeren we de bitrate in van de film die we wensen te encoderen, net zoals ook bij andere DivX codecs. Tezamen met de quantizer setting zal deze optie het meeste effect hebben op de uiteindelijke file-size en kwaliteit van de film! Gebruik een Bitrate-calculator om de beste bitrate te vinden, hoorende bij de lengte van je film. Ga niet onder 650 als je een DivX van wat kwaliteit wil! Typisch voor 1 CD is een birate van tussen de 650 en 1000 kbps (kilo bits per second) en tussen de 1300 en 2000 kbps voor 2 CD’s. Over de 2000 kbps gaan heeft weinig of zelfs geen zin!

 

(D) 'Quality Based Encoding Parameters'

      Deze optie dient enkel wanneer we hebben gekozen voor '1-Pass Quality-Based'. Het is tevens de énige setting die we dan kunnen veranderen! Elke frame zal van dezelfde kwaliteit zijn. De default-setting van 85% komt ongeveer overeen met een bitrate van ongeveer 780 kbps CBR (constant bitrate). Hou er rekening mee dat slechts een kleine verschuiving naar links of rechts een grote verandering in file-size en kwaliteit teweeg kan brengen! Een keuze van 95% zal meestal een mooi geëncodeerde film opleveren, met een file-size van meestal onder de 2GB.

 

(E) 'Maximum key frame interval'

      Een scene in een film komt overeen met een verandering van camera. Zo’n verandering zorgt er (bijna) altijd voor dat het beeld drastisch verandert! MPEG compressie bestaat er nu echter in om ipv 2 beeldjes volledig te encoderen, enkel de verschillende “blokjes” op te slaan. Je hebt dus op een bepaald moment een keyframe (een volledig geëncodeerd beeld), en tijdens de daaropvolgende beelden worden enkel de verschillende blokjes opgeslagen, totdat we weer een nieuw keyframe tegenkomen. In codec 3.x konden we kiezen om de hoeveel tijd we een keyframe inlasten. Wanneer we nu echter een scene-verandering hebben, en het beeld bijgevolg drastisch veranderd is, zou het veel handiger zijn om met een nieuwe keyframe te beginnen (dit zou beter zijn voor de kwaliteit). Voor de meeste scenes zou dit betekenen ergens tussen de 2 à 8 sec. De DivX 4.x codec zal automatisch trachten op te sporen wanneer er een nieuwe keyframe nodig is. Het “Maximum keyframe interval” is nu een soort ingebouwde veiligheid: deze zorgt ervoor dat wanneer er gedurende een bepaald interval geen nieuwe keyframe wordt gevonden, er automatisch toch één wordt ingelast. Default staat dit op 300 wat inhoud dat er om de 300 frames een keyframe wordt ingelast. Dit komt ongeveer overeen met om de 12 sec. Je mag dit gerust op default laten staan.

 

(F) 'Default decoder postprocessing level'

      Deze optie beïnvloed de encoding kwaliteit niet; deze optie heeft enkel te maken met de “default playback setting” gebruikt in Media Player en The Playa. Ze kan manueel veranderd worden door met je rechter muisknop in Media Player te drukken. De rede waarom Media Player het toelaat de CPU/Postprocessing opties te veranderen is omdat hoe sneller je computer, hoe beter je film wordt: bij een snelle computer kan je meer foutcorrectie toepassen tijdens het afspelen dan bij een tragere computer. Deze foutcorrectie maakt gebruik van volgende filters: de-blocking en de-ringing filters. Indien je een snelle computer hebt kan je de default decoder postprocessing level hoger zetten waardoor beide filters meer effect hebben. Denk eraan dat wanneer de setting te hoog is (bij bevoorbeeld relatief trage computers), dit resulteert in niet-vloeiend beeld! Je moet zelf zien welke setting je hardware toelaat…

 

(G) 'Max CPU usage'

      Ook dit heeft niets te maken met de kwaliteit van de film. Je kan hiermee manueel instellen hoeveel % van je CPU-kracht gebruikt wordt voor het encoderen. Hou ermee wel rekening dat wanneer je deze optie aanschakelt en te hoog zet, je problemen kan krijgen wanneer andere programma’s tegelijk actief zijn.

 

‘Deinterlace’

Zet deze optie altijd uit! Indien je denkt dat je film ge-deinterlaced moet worden gebruik dan 1 van de VirtualDub filters. De filter meegegeven door Mayo is ronduit slecht. Een interlace probleem heb je wanneer je originele DVD er als volgt uit ziet (afbeelding rechts):

De linkse afbeelding is het resultaat van de standaard deinterlacing van Mayo. Zoals je ziet winnen we hier weinig of niets mee (integendeel?…).

 

(H) 'Maximum quantizer & Minimum quantizer'

Deze optie geeft ons de meeste controle over de uiteindelijke file-size en kwaliteit van de film. Met de verkeerde settings hier kan je een “oversized” of undersized file bekomen, zelfs al staat je bitrate op 1kbps of 6000 kbps! De quantizer waarden slaan terug op de mate van compressie bij low-motion scenes en fast-motion scenes. Er is hier slechts één regel: Hoe lager de quantizer waarden, hoe minder compressie en hoe groter de uiteindelijke file!

De default waarden van Mayo zijn vrij goed, maar wanneer je betere kwaliteit wil neem je best het volgende in acht:

 

Minimum quantizer: Wanneer je een low-motion scene hebt geëncodeerd en je bekomt een blokkig effect, kan je de Minimum quantizer waarde proberen te verlagen, en zo minder compressie te hebben. Bemerk wel dat dit meer opslagruimte vraagt! De default waarde (2) levert goede kwaliteit maar wanneer je een 1-CD film wenst wil je de waarde misschien verhogen tot 4-5, omdat de uiteindelijke file anders misschien te groot wordt.

 

Maximum quantizer: Wanneer je vindt dat de fast-motion scenes (actie scenes) te blokkig zijn, kan je proberen de maximum quantizer waarde te verlagen. Bemerk weeral dat dit meer opslagruimte vraagt! De default waarde van 12 is goed, maar indien je scherpe actie-scenes wenst kan je de waarde best verlagen naar 6-8. Het komt erop aan de juiste verhouding te vinden tussen deze waarden, de kwaliteit en de uiteindelijke file-size.

 

Je kan beide waarde ook gelijk zetten, waardoor de uiteindelijke filesize voorspelbaarder wordt, maar dit geeft daarom niet de beste kwaliteit!

 

Om de juiste settings te vinden kan je als volgt te werk gaan: zet de quantizer waarden tamelijk hoog en encodeer een fast-motion scene van 30 à 60 sec. Bekijk nu dit fragment en verlaag de maximum-quantizer waarde totdat het blokeffect niet of weinig te herkennen is. 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.

 

Tot slot nog dit:  de maximum-quantizer en minimum quantizer waarden beïnvloeden de 2-pass encoding kwaliteit en file-size, maar niet zo drastisch als bij 1-pass encoding.

 

 (I) 'Rate control averaging period, frames'

Deze functie controleert hoeveel frames er gebruikt worden bij het bepalen hoe de bitrate verdeelt moet worden. De default setting van 2000 werkt (meestal) goed. Mayo beweert dat het verhogen van dit nummer ook een kwaliteitsverhoging met zich meebrengt, dus experimenteer een beetje.

 

(J) 'Rate control reaction period, frames'

      Deze functie regelt de balance tussen low-motion en high-motion kwaliteit. De default waarde van 10 is normaal goed. Wanneer je de waarde verhoogt zullen high-motion scenes er iets beter uitzien, maar low-motion scenes zullen er slechter uitzien.

 

(K) 'Rate control down/up reaction '

      Deze optie controleert de gevoeligheid waarmee bepaald wordt met welke motion (bewegingsgraad) we te maken hebben: fast-motion of low-motion? Hoe hoger het nummer, hoe gevoeliger de codec wordt voor beweging. Wanneer we een hoog nummer invoeren, zal de codec denken dat (bijna) elke scene een aktie-scene is en zal de bitrate verhoogd worden om hoge kwaliteit te bekomen. Dit kan echter de totale file-size beïnvloeden! De default waarde 20 ziet er goed uit.

 

(L) 'Log file'

      Dit is de file waar we de informatie opslagen wanneer we 2-pass encoding kiezen.

 

(M) 'Frame Dropping'

      Dit zou “crispiness” genoemd zijn geworden, maar dit deed niet hetzelfde als de crispiness / smoothness settings in oudere versies. Vandaar deze andere naam, om niet te verwarren. Deze Frame Dropping werkt allen bij 2-pass variable bitrate encoding en bepaalt hoeveel frames er weggelaten worden tijdens de film. Bij een setting van 0 worden geen frames weggelaten. Hoe hoger deze setting, hoe meer frames er weggelaten worden. Dit bespaart ons welliswaar geheugen, maar bij een te hoge Frame Dropping kan de film schokkerig worden. Frame Dropping werkt alleen bij 2-pass variable bitrate encoding omdat de Mayo DivX codec gebruik maakt van de log-file om te bepalen waar er best frames weggelaten kunnen worden.

 

 

Diederik

Bboy_be@hotmail.com

 

 

Veel dank aan Nicky en DivX-Digest, die het mij mogelijk maakten dit artikel te schrijven en te puliceren!

Als je wenst het volledige (originele) artikel (Engels) te lezen, ga dan naar

nickyguides.digital-digest.com//DivxBeta.htm

 

 

Many thanks to Nicky and to DivX-Digest, who made it possible to publish this article!

If u wanna read the whole (original) article (in English), go to

nickyguides.digital-digest.com//DivxBeta.htm