V tomto článku sa pokúsim trošku podrobnejšie vysvetliť zmysel jednotlivých funkcií stratového kodeku XviD, ktorý určite prevažná väčšina z vás pozná veľmi dobre. Neznalosť jednotlivých funkcií u tohoto kodeku často spôsobuje, že uživateľ dosahuje nespokojné výsledky pri jeho stratovej kompresií. A preto som sa rozhodol napísať tento článok.
Quantization Type
MPEG4 umožňuje kompresiu obrazu dvoma metodami. Prvá je odvodená od h263 a druhá vychádza z kvantizačnej matice MPEG2. Pokiaľ používate vlastnú maticu, musíte použiť mpeg.
Hodnoty
* h263
* mpeg
Pre použitie MPEG zachováte viacej detailov ( obraz je ostrejší ), ale pri nízkom dátovom toku sa objavujú kostičky, čiže artefakty. Metóta h264 ( alebo H.264 ) obraz mierne rozmaže, ale nepotrebuje tak veľký datový tok. h263 sa väčšinou doporučuje, pokiaľ komprimujete na jedno CD, MPEG pre dve a viac. Skrátene, keď MPEG tak s poriadným datovým tokom.
Motion
( Motion search precision / Presnosť vyhodnocovania pohybu )
Táto voľba ovláda podsystém vyhodnocovania pohybu. Čím vyššia hodnota, tým presnejšie bude vyhodnotenie. Čím lepšie je vyhodnocovanie, tým viac bitov sa ušetrí. Presnosť vyhodnocovania je vyvážená nárokmi na výkon procesora, takže pokiaľ potrebujete kódovať v reálnom čase, znížte túto hodnotu.
Hodnoty
* 0 - None (Nič)
* 1 - Very low (Veľmi nízka)
* 2 - Low (Nízka)
* 3 - Medium (Stredná)
* 4 - High (Vysoká)
* 5 - Very High (Veľmi vysoká)
* 6 - Ultra High (Extrémne vysoká)
Pokiaľ preferujete kvalitu, použite 5 alebo 6. Hodnota 6 - Ultra High je tiež všeobecne doporučovaná a nižšie sú použiteľné len pre kódovania v reálnom čase.
VHQ
Algoritmus pre vyhodnocovanie pohybu je založený na vyhladávaní v bežnej farebnej oblasti, kde sa snaží nájsť vektor pohybu, ktorý minimalizuje rozdiel medzi referenčným a kódovaným snímkom. Pokiaľ je aktivovaná možnosť VHQ, bude xvid pre vyhladávanie pohybového vektoru používať tiež frekvenčnú oblasť (DCT), čo minimalizuje nielen priestorový rozdiel, ale tiež zakódovanú velkosť bloku. Čím vyššia hodnota, tým vyššia záťaž procesoru.
Hodnoty
* 0 - Disabled (Zakazaný/nefunkčný)
* 1 - Mode Selection (Výberový režim)
* 2 - Limited Search (Obmedzené vyhladávanie)
* 3 - Medium Search (Stredná hodnota vyhladávania)
* 4 - Wide Search (Roziahle vyhladávanie)
Vyššia hodnota VHQ umožňuje znížiť kvantizér a tým zvýšiť kvalitu. Obecne sa má za to, že zvýšenie kvality nieje tak podstatné aby sa vyrovnalo spomaleniu kódovania. Podstatne sa ale zvýši kompresia. Hodnota 4 je odporučovaná pre filmy na jedno CD a dlhé filmy, aby sa nemuseli použiť 3 CD. Pre vysoké dátové toky (bitrate) by sa mala používať nízka hodnota 1, pre nízke toky zasa vyššia 2 - 4.
Niekoľko krát sa stalo, že výsledný film bol nečakane menší, ako bola predom udávaná vypočítaná veľkosť súboru.
Chroma ME
(Chroma Motion Estimation)
Algoritmus pre vyhladávanie pohybu k hladaniu najlepšieho pohybového vektora bežne používa len informáciu o jase (Luminance). U niektorých video nahrávkach však môže k vyhladaniu lepších vektorov pomôcť použitie farebných (chromatic) úrovní. Táto voľba zapína, alebo vypína použitie týchto farebných úrovní pre odhad pohybu.
Chroma ME zahŕňa do výpočtov pohybových vektorov tiež údaje o farbe. Tým sa ešte viac zvýši presnosť vyhodnotenia pohybu, takže je ešte lepšií ako "Motion Ultra Hugh". Používať túto voľbu je dobrý nápad, keď sa chcete zbaviť kostičiek.
HighQ AC
Aktivuje vysoko kvalitný AC koeficientové predvídanie (predikcia) zo susedných blokov.
Trellis Quantizer
Mriežková (trellis) kvantizácia je jedna z adaptívnych kvantizačných metod, ktorá šetrí bity zmenai kvantizovaných koeficientov, aby sa dali viac skomprimovať pomocou entropického enkondéra. Má dobrý vplyv na kvalitu pokiaľ sa vam zdá, že VHQ spotrebuje príliš veľa procesorového výkonu, je to dobrá alternativa, pomocou ktorej ušetríte nejaké bity (a získate na kvalite pri pevnej vzorkovacej frekvencií) pri minimálnej záťaži CPU.
Cartoon Mode
(Kreslený film)
Aktivujte túto voľbu, pokiaľ kódujete animovaný film. Menia sa tým niektoré vnútorné hodnoty, takže XviD lepšie rozhoduje o typoch snímkoch a pohybových vektoroch v plochých animovaných filmoch.
Greyscale
(Čierno-biely film)
XviD zruší bity popisujúce farebnosť, takže skódované video bude len v odstienoch šedej. Zoberte na vedomie, že to vôbec neurýchli kódovací proces, len sa zabráni zápisu údajov o farbe v poslednej fázy kódovania. Táto voľba povolí Chroma color discarding.
Interlaced
(Prekladanie)
Používa sa na prekladané video záznamy. Zoberte na vedomie, že táto voľba nezruší prekladanie, ale prekóduje ho pomocou metóty "field-based".
Prekladané video býva určené pre televíziu. Pri filmoch sa s tým nestretneme. (Jedine, že by bol ripnutý práve z televízie). Skôr pri koncertoch alebo rôznych iných bonusových materiáloch na DVD. Táto voľba nezruší prekladanie (nespraví deinterlacing), mala by len zlepšiť výkon kódovacieho procesu. Deinterlacing musíte previesť pomocou niektorého filtra.
Turbo mode
Vyhodnocovanie pohybu zahŕňa veľa krokov, ktoré vylepšujú a spresňujú výsledok. Pomocou týchto krokov sa väčšinou dosahuje lepšia kvalita, ale pri vylepšení nieje zasa tak významné a vyžaduje poriadnu porciu systemového výkonu. Pokiaľ chcete vyhodnocovanie pohybu zrýchliť vynechaním niektorých spresňovacích krokov a použiť zjednodušené vyhodnocovacie funkcie, môžete aktivovať turbo režim.
Zrýchliť by sa malo hlavne dvojprechodové spracovanie pri druhom prechode.
Features - Advanced Simple Profile Specific Settings
(Nastavenie pre pokročilí jednoduchý profil MPEG)
Max B-Frames
B-snímky sú tretím typom snímkov obsiahnutých v MPEG4. Sú predvídané s ohladom na 2 referenčné snímky a väčšinou pomôžu v dvoch prípadoch:
* Ušetrenie dátového toku bez straty kvality
* Zvýšenie kvality pri rovnakom dátovom toku
Toto nastavenie určuje koľko B-snímkov za sebou môže XviD použiť. Musíte si uvedomiť, že vyššie maximálne povolené množstvo B-snímkov znamená väčšiu vzdialenosť medzi referenčnými snímkami. Predvídanie referenčných snímkov tak bude náročnejšie a výsledná kvalita bude nižšia. Keď sú referenčné snímky nekvalitné, musia byť nekvalitné aj B-snímky. Prakticky za to, toto nastavenie musí byť vyladené podľa vašich konkrétnych potrieb. Obecne sa dá povedať, že hodnoty medzi 0 a 2 sa hodia pre "prírodné" filmy a o niečo vyššie hodnoty pre animované filmy s veľkým množstvom rovnako-farebných plôch.
DivX údajne nevie vyššiu hodnotu ako 1. Neodporučuje sa isť cez 3.
B-Quant Ratio
Jak už bolo vysvetlené, B-snímky majú veľmi úzky vzťah ku svojím referenčným snímkom a ich kvantizér sa vypočítava vzhľadom k referenčnému kvantizéru. Tieto dve nastavenia umožňujú vyladenie vzorca
(Týmito dvoma nastaveniami sa pravdepodobne B-Quand Ratio a B-Quant Offset)
B-frames Quantizer ratio je pomer dodatočnej kompresie B-snímkov v porovnaní s P-snímkami.
B-Quant Offset
Quantizer offset vyjadruje kompenzáciu pridanú ku každej kvantizacií. Pokiaľ okolné P-snímky majú kvantizér rovín 2 a obydva koeficienty, radio aj offset sa rovnajú 1, bude mať výsledný B-snímok hodnotu kvantizéru 3.
B-Frame Threshold
V niektorých prípadoch B-snímky nevypadajú dobre a obsahujú artefakty (štvorčeky), pokiaľ je väčšian snímkov statická a niektoré malé oblasti sa veľa pohybujú (statciká scéna s hovoriacim človekom, jeho ústa budu pravdepdobne vypadať dosť blbo, pokiaľ všetok čo je okolo človeka a jeho úsť je úplne statické) Toto nastavenie dovoľuje uprednosťňovať alebo neuprednostnovať použitie B-snímkov. Čim vyššia hodnot, tým väčšía je pravdepodobnosť použitia B-snímkov.
Packet
V závislosti na kontajnéry a vonkajšiom aplikačnom rozhraní je niekedy dobré prikázať XviDu zlúčiť prvý B-snímok zo skupny s jeho dopredným referenčným snímkom, čo zabráni nesynchronnému zvuku (rozbehnutý obraz a zvuk). Toto nastavenie sa hodí, pokiaľ sa používajú VFW enkodéry (Windows), pretože ich API nedovoluje audio contention (priraďovanie zvuku ku obrazu), keď na výstupe niesu žiadne video snímky. Transcode ale týmito problémami netrpí a modul xvid4 mu hlási, pokiaľ treba snímky podržať. S transcode teda táto hodnota nieje vačšinou potrebná.
Túto voľbu by ste mali aktivovať pokiaľ vám vadía konzolové hlásšky "vop not coded". Pokiaľ som to ale správne pochopil tak by vá mvadiť nemuseli, pretože sú to len hlášky a nemajú vplyv na funkciu.
Closed Gop
GOP znamená Group Of Pictures = skupina obrázkovv. GOP je obmedzený dvoma kľučovými (intra) snímkami. Táto voľba umožňuje nastaviť, pokiaľ XviD musí uzavrieť skupinu, čo znamená, že jedna skupina snímkov je nezávislá na ďaľšej skupine. to ma za následok len to, že posledný snímok v skupine je buď P-snímok alebo S-snímok. (switch frame), ale nikdy B-snímok. Zaškrknúť túto možnosť je väčšinou dobrý nápad.
Quartelpel
(Quarter Pixel alebo tiež len Qpel)
MPEG4 štandartne používa pre vyhladávanie pohybu polpixelovú presnosť aj keď štandart počíta s režimom, kedy je enkondérom dovolené použiť štvrťpixelovú presnosť. Táto možnosť väčšinou produkuje ostrejši obraz, ale má značný dopad na dátový tok. Pokiaľ je dátový tok pevný, nemusí to znamenať zvýšenie kvality. Lepšie je skúsiť kódovať s použitím quarterpel aj bez neho a až potom si vybrať.
Quarter Pixel by mal ďalej zlepšovať odhad pohybových vektorov a má opäť značný dopad na zníženie rýchlosti procesu kódovania (údajne až 25% spomalenie). Je vhodný skôr pre filmy s nízkym rozlišením a výsledkom je ostrejší obraz bez kostičiek aj keď v niektorých prípadoch má za následok viac šumu. Podmienkov jeho použitia je dostatočný dátový tok v hodnotách vyšších ako 900kb/s, niektoré zdroje uvádzajú radšej 1200kb/s. Pokiaľ si toľko nemôžete dovoliť, pretože proste potrebujete strčiť film na jedno CD, radšej ho nepoužívajte, pretože by ste kvalitu skôr znížili.
GMC
(Global Motion Compensation)
Príjme XviD, aby generoval "sprite" (trpazličie) snímky, ktoré popisujú najlepšíe nastavenie panorama/zväčšenie/otočenie obrázku. Rozhodnutie o použití tejto voľby jednoznačne závisí na druhu video materiálu.
GMC pomáha, pokiaľ sa objekty na zázname približujú, vzdiaľujú alebo inak pohybujú bez toho, že by sa nejako menily. Príkladom takéhoto videa sú napríklad tie "Real Life" filmy točené z ruky jako je Blair Witch aleboamatérske videozáznamy, keď kameraman chaoticky trasie a nepretržite zoomuje, čo to dá..... Pokiaľ sa používa GMC, doporučuje sa nastaviť VHQ na hodnotu 4. Za GMC opäť zaplatíte nejakým procesorovým časom naviac.
Features - Other Setting
(Ďalšie nastavenia)
Frame Drop Tolerance
(Vypúštanie, vynechávanie snímkov)
XviD si udržuje prehľad o type kódovania bloku (vynechané, predvídané, kľučové). Vypúštanie blokov môže byť použité, pokiaľ snímok je tak podobný svojej referncií, že môže byť úplne vynechaný. Táto voľba umožňuje zvoliť prahovú hodnotu (0-100) pre vynechanie snímkov.
Pravdepodobne to isté ako "Frame drop ratio". Väčšinou chceme, aby sa spracovali všetky snímky, takže nulová hodnota je jasná voľba. Je ale možne, že vyhadzovaním snímkov, ktoré sú vlastne zbytočné, by sa dalo dosiahnúť nejakej tej dátovej úspory.
Debuk - Output average PSNR
(Ladenie, vyhladívanie chýb)
Pre účely testovania alebo merania kvality môže XviD poskytovať štatistiku o prekódovaných snímkoch. Táto voľba aktivuje PSNR meranie. Priemer PSNR sa zobrazí na konci kódovacieho procesu. Táto voľba je z tých, ktoré Frantovi užívateľovy môžu byť ukradnuté a tiež aj spomaľuje proces kódovania.
Quantizers
(Kvantizéry)
Na tejto karte sa objavujú rozsahy kvantizérov pre I,P a B snímky a môžete definovať vlastnú kvantizačnú maticu (matrix). Za tým účelom môžete použiť Matrix Editor, pokiaľ samozrejme viete čo robíte.
Minimálna kvantizácia sa odporučuje nechať na východzej hodnote. Pokiaľ by ste nastavili hodnotu 1, značne by sa zväčšila veľkosť výsledného súboru.
Na internete som pohľadal zopár článkov o použití vlatného MPEG custom matrix, a našiel som toho celkom slušné množstvo. Quantize matrix upresňuje nastavenie kódovanie quantize matrix (kvantizačnej matice). Tabuľky intra matrix a inter matrix predstavujú elementy obrazových blokov. V podstate ide o vzorec pre transformáciu pomocou DCT (Discrete Cosine Transformation). Každý prvok kvantizačnej matice sa odkazuje na koeficient DCT.
V ľavej tabuľke (inter matrix) sú uvedené koeficienty pre I snímky, a v pravej pre snímky B a P. Výsledkom DCT transofmácie je opäť blok zložený z 8x8 čísiel, ale pokiaľ v scéne nedochádza ku žiadnej zmene, sú niektoré obrazové informácie nahradené nulami. Pomocou kvantizácie a prekódovaniu Huffmanovým algoritmom je časť nadbytočných informacií zredukovaná. Počas tohoto procesu dochádza pomocou vektorového skenovania k porovnaniu susedných blokov a makroblokov, čím sa ďalej znižuje výsledný objem dát. Prevod do MPEG 2 je pomerne zložitý.
Single Pass
(Jeden priechod)
Reaction Delay Factor
(Činiteľ reakčného oneskorenia)
Tento parameter nastavuje oneskorenie snímkov pred tým, ako radič CBR pomeru zareaguje na zmenu dátového toku a pokusí sa zmenu vyrovnať získaním stáleho bytového toku prostredníctvom priemerného rozsahu snmku (viac nižšie). Hodnota musí byť väčšia alebo rovná nule, východzia je 16. Nula ma význam, keď XviD použije svoje vlastné východzie hodnoty.
Averaging Period
(Priemerná/vyrovnávacia perioda)
Dosiahnutie skutočného CBR (Constant Bitrate = stály/pevný dátový tok) je ťažká záležitosť. V závislosti na video materiály môže byť dátový tok premenlivý a ťažko sa predvída. To je dôvod, prečo XviD používa vyrovnávacie periody, pre ktoré je (s malými odchylkami) zaručené dané množstvo bitov. Táto voľba vyjadruje "počet snímkov", pre ktoré XviD priemeruje dátový tok a snaží sa dosiahnuť CBR. Hodnota musí byť väčšia alebo rovná nule, východzia je 100. Nua má zvláštný význam, kedy XviD použije svoje vlastné východzie hodnoty.
Buffer
(Vyrovnávacia pamäť)
Two Pass
(Dva Priechody)
Keyframe Boost
(alebo I-frame boost - Zvýhodňovanie kľúčových snímkov)
Toto nastavenie udáva predpokladané dodatočné množstvo bitov, ktoré majú dostať kľúčové snímky. (Tento zvýšení [boosting] pridelovanie bitov je vyrovnaný odobratím rovnakého množstva bitov iným typom skupin snímkov) Hodnota môže byť od 0 do 100.
Overflow Control Strength
Udáva percento rozdelenia nadštandartného dátového toku na snímok v rozsahu ohraničenom hodnotami Max Overflow Improvement a Max Overflow Degration. Alebo aj ako veľa dátového toku môže byť pridané alebo odobraté na jeden snímok.
Curve Compression High
Táto voľba určuje mieru priblíženia hornej časti krivky priemernej hodnote dátového tok. Horná časť krivky je súbor hodnôť, ktoré sú vyššie ako krivkový priemer. Je vyjadrená v percentách. O tejto voľbe je možné uvažovať ako o faktore zmenšenia hornej časti krivky.
Curve Compression Low
Táto voľba určuje mieru priblíženia dolnej časti krivky priemernej hodnote dátového toku. Dolná čast krivky je súbor hodnôť, ktoré sú nižšie ako krivkový priemer. Je vyjadrená v percentách. O tejto voľbe je možné uvažovať ako o faktore zväčšenia alebo rastu dolnej krivky.
Max Overflow Improvement
(Povolené percento nadmerného prídelu dátového toku)
Mechanizmus pretekania môže behom bitovej alokácie zvýšiť veľkosť snímkov. Tento paramater určuje mieru, akou môže byť kontrolný mechanizmus pretekania zväčšiť snímok v percentách v porovnaní s ideálnou krivkou alokácie.
"Pretekaním" sa myslí navýšenie objemu dát v závislosti na druhu scény (časť videa). Pokiaľ je scéna statická (obsahuje len málo pohybu), enkondér jej odobere dátový tok a dynamickým scénam ho pridá. Práve rozdiel medzi ideálnym vypočítaným dátovým tokom a skutočne použitým vylepšeným, je to pretečenie (overflow)
Max Overflow Degration
(Povolené percento odobrania dátového toku)
Mechanizmus pretekania môže behom bitovej alokácie žnížiť veľkosť snímku. Tento parameter určuje mieru, akou môže kontrolný mechanizmus pretekania znížiť veľkosť snímku v percentách v porovnaní s ideálnou krivkovou alokáciou.
Key Frame Reduction
Tento recukčný faktor je maximálne povolené znevýhodnenie použité na kľúčový snímok v sekvecí. Čím viac je snímkov v nasledujúcej sekvencí kľúčových (ivop) snímkov vzdialený od posledného kľúčového snímku, tým väčšie znevýhodnenie je použité. Zaručuje to maximálny prídel dátového toku poslednému kľúčovému snímku, takže uprednostňuje dobrý referenčný snímok pre ďalšie P/S/B snímky.
Key Frame Threshold
Vzdialenosť medzi dvoma kľúčovými snímkami, pri ktorých ešte nieje znížený prídeľ bitov pomocou mechanizmu redukcie kľúčových snímkov.
Container Overhead per Frame
(Datová spotreba kontajneru pre snímok)
Uživatelia väčšinou zadávajú požadovaný dátový tok bez toho, aby sa starali o spotrebu kontajneru [*]. Táto malá, ale stála spotreba môže spôsobiť, že cieľová veľkosť súboru nieje dodržaná (súbor je príliš veľký). Rozhodli sme sa dovoliť užívateľom nastaviť vyššie spotreby, ktorú kontajnér generuje pre každý snímok (zadajte len priemer na snímok). Hodnota musí byť väčšia alebo rovná nule, východzia je 24 (priemerná snímková réžia AVi v bytoch). Nula má zvláštny význam, keď XviD použije svoje vlastné východzie hodnoty.
[*] Poznámka : AVI, Ogg, MOV, ASF, MATROSKA,... sú kontajnéry. Kontajnér je obálka, ktorá môže obsahovať niekoľko dátových stôp, kódovaných rôznymi algoritmami (kodeky). Väčšinou sa jedná o jednu video stopu a jednu alebo viac audio stôp. |