Prev: Nandub a VBR
Index
Next: FAQ
V době psaní tohoto návodu je verze 1.0rc stará jen několik málo dní. Protože i tato verze přináší několik novinek s nimiž jsem neměl zatím možnost se blíže seznámit ba ani zjistit doporučená nastavení, nemohu v tomto ohledu sloužit. Musím Vás tedy odkázat na soubor README.DOC v adresáři Nandubu,Doom9ovy, Koepiho a Marasovy stránky.
Jak si každý, kdo si Nandub pustí, ihned všimne, je původní VirtualDub menu
Video-Compression nahrazeno submenu Video - SBC Options - SBC settings. V každé záložce se nastavuje
jiná část kompresního algoritmu (komu to nestačí ať si stáhne zdrojak a
pustí se do vlastních). Čistě teoreticky není třeba měnit defaultní nastavení žádné záložky (kromě
datového toku samozřejmě !! a též Options- Preferences). Nicméně
já i těm největším lenochům doporučují přečíst si následující detailní vysvětlení a doplňky, protože
až Vám vyjde nějaký rip, příliš velký/malý/ošklivý, pak alespoň budete tušit, co změnit.
A pro jistotu ještě dodávám (a ne naposledy), až se do opravdu Nandubu pustíte a něco Vám
nevyjde, přečtěte si prosím tento návod, doom9ův guide a Koepiho Nandub Options Explained a
zkuste se zamyslet v čem by mohla být chyba. To znamená uvažovat stylem - kterým z
mnohých nastavení Nandubu mohu ovlivnit to, co se mi na tom ripu nalíbí,
vypreparovat onu kritickou část (u nejnovější verze přes dvě tlačítka na pravé straně
dolního panelu či přes Video = Select Range..., u starších verzí třeba přes DVD2AVI) a zkusit
udělat pár "encodings" a s různými nastaveními onoho parametru. Nandub není FLASK a to nemyslím v
hanlivém slova smyslu... Nandub je flexibilnější zato složitější nebo naopak, jak to kdo bere :-)
Následující vysvetleni je odvozeno z KOEPIho shrnutí různých nastavení
Nandubu
V současné době si můžete vybrat mezi ilegálním "hackem" MS kodeku MPEG4v3 (aka DivX;-) ) a
jeho legálním předchůdcem MPEG4v2. Nandub v současné době podporuje DivX;-) 3.11 alpha a MPEG4v2
build 4.0.0.3688 a 4.1.0.3920.
MPEG4v2 je starší, a proto je jeho kvalita slabší než verze 3 (tj. DivX), nicméně ho přehrajete
na libovolných Windows. Jedinou výhodu pro použití tohoto kodeku si dokážu představit v situaci,
když chcete, aby si Vaše video přehráli i ti největší tupci (protože kodek se automaticky stáhne z
MS webu pokud ho WMP nenajde).
Zde se zadá cílový datový tok. Protože má Nandub občas tendenci vytvořit příliš velké AVI doporučuje se raději cca 5-10 MB ubrat.
Nejdelší možný časový interval bez klíčového snímku. Doporučuje se kolem 10 sekund, viděl jsem i 30s (jak často potřebujete hledat uvnitř AVIčka?) ale 1s je rozhodně moc, protože klíčové snímky zabírají víc místa a Nandub je proto buď zakóduje s horší kvalitou anebo za cenu zvětšení místa (pokud pro klíčové snímky kompenzujete pomoci KF Boost). Pokud dojde k vložení klíčového snímku kvůli Detektoru změny scény (SCD), tak se samozřejmě počítá zase od nuly. Porovnej s Space KFs.
Toto nastavení odpovídá minimálnímu datovovému toku ukládaného videa, kromě jediného případu a to když bylo během "First passu" dosaženo menší hodnoty. Doporučené hodnoty cca 300 a výš. Srovnej s "High pass".
Tato volba je opakem "Keyframe intervalu" (Porovnej). De facto zamezuje přílišnému použití klíčových snímků, ke kterému by mohlo dojít v dynamických scénách (např. Internal SCD by neustále detekovala příliš mnoho keyblocků a neustále by tam vnucovala klíčcové snímky). Implicitní hodnota 24 snímků (= přibližně 1 vteřina pro PAL a IVTC NTSC) je rozumné nastavení, někdo může preferovat hodnoty větší (např až 72). Dle mé zkušenosti nefunguje vždy dokonale (jinými slovy, někdy Nandub toto nastavení ignoruje, protože si tak diktují ostatní nastavení (např. Anti-Shit)).
Na výběř jsou tři možnosti, jak bude Nandub kontrolovat kvalitu probíhajícího "passu".
Anitshit =) zabraňuje přílišnému zečtverečkovatění (situace, kdy už kodek (nucen Nandubem) neví jak dál a komprimuje velmi ztrátově). Co to dělá - po zakódování každého snímku dojde pomocí PSNR algoritmu ke spočtení hodnoty v rozsahu 0 až 95 dB (aktuální informace o hodnotách PSNR možno ziskat spuštěním DBGVIEW.EXE při "Second Passu") a k jejímu porovnání s nastavenou hodnotou Anti-Shitu . Pokud je PSNR hodnota menší než Anti-Shit, pokusí se kodek zakódovat daný (delta) snímek s postupně menší a menší kompresí dokud hodnota PSNR nevyroste nad Anti-Shit mez. V případě, že se nepodaří daný snímek zakódovat jako "delta", bude znovu zakódován jako klíčový snímek. Doporučená hodnota cca 16 dB. Nastavením na 0 Anti-Shit vypne.
Od doby co Anti-shit =) zkouší zakódovat snímek nejprve jako delta snímek mi Min quality přijde
zbytečná, nebot pracuje se stejnými PSNR hodnotami. Nicméně Nando má jistě důvod k jejímu zachování
(zřejmě může nastat situace, u které nedojde k aktivaci Anti-Shitu a přesto by šlo kvalitu vylepšit
díky Min Quality). Nicméně pro úplnost: Doporučená hodnota cca 25 dB.Vypnout lze nastavením na 0.
př. pokud je Min Quality nastaveno na 25 a
daný snímek má pro kompresi (např.) 6x hodnotu PSNR menší než 25, Nandub se jej pokusí znovu
zakódovat s kompresí (DRF) 5x
Moduluje hodnoty pro Anti-Shit a Min quality podle pohybu ("motion"). Tato hodnota je procento a funguje následovně (např. pro AntiShit = 16
a Min Quality = 30):
pro modulation = 50%
motion = 0 : AntiShit=16, Min Quality=30
motion =150 : AntiShit=12, Min Quality=22
motion = 300 : AntiShit=8, Min Quality=15
podobně pro modulation = 25% platí
motion = 0 : to samé (AntiShit=16, Min Quality=30)
motion =150 : AntiShit=14, Min Quality=26
motion = 300 : AntiShit=12, Min Quality=22
Zde je nutno zadat jméno .stats souboru do něhož se budou ukládat informace o probíhajícím "passu" (nutno použít během "First passu", pokud zadáte nějaký soubor i během "Second passu" (samozřejmě jiný !!! jinak si ten původní přepíšete) mohou se Vám vygenerované informace hodit pro analýzu..) (Např. zjistím jaký byl bitrate a ten pak úměrně "natvrdo" zvětším při "Third passu" za pomocí .ecf souboru). Tlačítko "..." usnadní hledání.
Zde je nutno zadat jméno stats souboru z něhož se budou načítat informace o předešlém "passu"
(typicky to co bylo vytvořeno při předcházejícím "passu" (typicky během "First pass")(tzn. pro
"First Pass" je nutno nechat prázdné.) Tlačítko "..." usnadní hledání.
Pozn. pokud děláte oba "passy" najednou ("Two passes"), tak se soubor z Collect in pro "First
pass" automaticky přesune do Encode using pro "Second pass".
Tato volba pochází od vývojářského týmu Maras/Koepi/Rock Hardy. Více viz Koepiho a Marasovy stránky. Autoři se domnívají, že zapnutím této volby lze dosáhnout lepších výsledků než s klasickou Bits Reservoir modulací (BR modulation). Jedná o modulaci datového toku podle hodnot pohybu ("motion"). Doporučené hodnoty kolem 30%. Toto nastavení nepoužívejte pokud máte Bits Reservoir modulaci zapnutou, nebot se obě fce snaží o podobný jev.
Tohle je jeden ze zásadních parametrů ovlivňujících kvalitu ripu, a jeho fungování je třeba důkladně porozumět.
SymmetricZjednodušeně řečeno by kodek mohl pracovat takto: Když mi např. při "First Passu" vyjde výsledná velikost 1300 MB a já se snažím o 1 CD (700MB) rip, stačilo by pro každý snímek vzít bitrate uložený ve stats souboru a vynásobit ho poměrem 700/1300 a zakódovat snímek s tímto novým bitratem a HEUREKA! byl by rip s velikosti 700 MB na světě. Bohužel by nebyl moc kvalitní, protože kodek není lineární a tak by to asi nejvíc odnesly snímky s původně nízkým bitrate..
Např 400 -> cca 200Místo A*x +B (není nakresleno) je to A'*x+B (červeně) kde A' < A.
Jinými slovy měníme i sklon i průsečík s osou y. Mě osobně současné nastavování onoho A a B
nepřipadá matematicky čisté, ale budiž. Nejlogičtější by samozřejmě bylo nastavit B a spočíst o
kolik se má A zmenšit ale v současné době se nastavuje nikoliv B, ale parametr s ním přímo svázány.
V měnu Options - Preferences - Options - SBC lze nastavit hodnotu průsečíku
původní křivky A*x (modrá) a nové křivky A*x +B jako "Crosspoint" (na obrázku jako C). Doporučují
CrossPoint snížit z defaultnich 460 na cca 280 až 300 protože jinak budete poskytovat zbytečný
datový tok scénám pro x < C (červená křivka je nad modrou).
"Compression" popisuje procetuální změnu sklonu původní
přeškálované křivky (y = A * x), tj procentuální zmenšení parametru A na novou hodnotu A'.
Tlačítko "Calc" spočte kompresi ze .stats souboru podle toho jak máte nastavený "Crosspoint" a to
tak, aby se (teoreticky) nezměnila velikost souboru. Příliš vysoká hodnota, ale zbytečně ošidí akční
scény. Já doporučuji "Calc" používat, ale vždy mírně korigovat směrem k "rozumné" hodnotě okolo 25%.
Symetrickou kompresi je možno automaticky spustit v "Second Passu" odkomentováním řádky
//VirtualDub.video.CalcCurveCompression();
v souboru default.+st.pass.vcf
Tato volba opět pochází od vývojářského týmu Maras/Koepi/Rock Hardy. Jedná se o nastavení rozdílných hodnot komprese pro velké a malé hodnoty datového toku, tj. místo prostého otočení křívky, ji raději otočíme a zároveň ohneme. Rozumné hodnoty jsou např. low = 15%, high = 25%
Toto je vychytávka zaměřená na kvalitní zakódování velkých oblastí
stejného kontrastu (např bílá zeď na pozadí) což je tradičně slabina DivX kodeku.
Během "First Passu" je spočtena hodnota nazvaná "Luma noise", kterou bych nejlépe
přeložil jako míra kontrastu, protože nabývá malých hodnot pro málo kontrastní
scény a velkých hodnot pro kontrastní scény. "Threshold" určuje nejnižší hodnotu
luma noise při které se nebude nic dělat, "Gain Max" určuje o kolik více bitů dostanou snímky s
hodnotami luminance rovné nule.
Např. pro standartní nastavení "Threshold" = 10 a "Gain Max" = 30% bude datový tok pro snímek s
hodnotou "Luma noise" = 5 zvýšen o 15%.
Tohle je to nejjednodušší.Nastavení "End Credits" udává na kolikátém snímku začínají titulky a jakým datovým tokem se mají zakódovat. (Číslo snímku lze snadno zjistit posunutím "slideru" na spodní části okna programu na dané místo v klipu. Nandub ukáže číslo snímku.) Doporučený datový tok - klidně i 300 kbps a míň. (Pozn. v starších verzích Nandubu udávalo číslo "End Credits" počet snímků od konce !)
Filtry filtrují "bitrate curve" (tj. informaci o tom s jakou velikostí se zakódoval který snímek při "First Passu" uloženou ve stats souboru) před tím než bude škálována a komprimována. High-pass je vysokofrekvenční filtr - to znamená že určuje nejmenší možný bitrate, který bude použít. Podobně Low-pass naopak určuje největší možný přípustný bitrate. Doporučené hodnoty jsou (nezapomeňte, že příliš vysoký low-pass vygeneruje filmy, které na slabších sestavách nepřehrajete, protože prostě nezvládnou tak vysoký bitrate):
High-pass: 270
Low-pass: 1CD 2000-2500
Low-pass: 2CD 2500-3000
Při filtraci provádí Nandub zároveň korekci zásobárny bitů (tzn. když je velikost snímku spočtena bitrate modulaci (tj. prenasobenim bitratu poměrem cílové a 1st pass velikosti) menší než high pass, nandub nastaví bitrate pro tento snímek rovný high-passu a zapamatuje si kolik bitů navíc musel investovat.Ty pak použije při kompresi dalších snímku. Pro low-pass to platí naopak.)
Pozn: Vztah mezi High pass a Min bitrate je následující: Nandub načte data ze stats souboru (tj. datový tok, motion, a luminanci). Hodnoty pro datový tok přeškáluje (tj. přenásobí poměru průměrný bitrate z "First passu" ku průměrnému cílovému bitrate), dále pak zkomprimuje (viz Compression), poté aplikuje luma korekci, dále pak zjistí jestli má použít low nebo high motion kodek, poté aplikuje high/low pass, redistribuuje a vyhladí až má nakonec nějaký bitrate. Pokud je tento bitrate menší než hodnota min kbps, tak zakomprimuje snímek s DRF odpovídající této hodnotě. Jinými slovy pokud by v konečné fázi měl být datový tok (bitrate) menší než tato hodnota, bude bitrate umělé zvýšen právě na min kbps.
"Bias" přidává/ubírá všem snímkům stejně, zatímco "Proportional" přidává/ubírá malým snímkům méně a velkým více. Doporučuji nebát se a zvolit "Proportional".
Jedna se o lokální vyrovnávání výstřelek datového toku. Laicky řečeno toto nastavení vyhlazuje
"bitrate křivku" tak, aby příliš neskákala. Doporučené hodnoty jsou 3%-5%.
Například pokud je "Smoother" nastaven na 5% tak posloupnost 3 snímku s datovými toky 95 kbps, 100
kbps a 105 kbps bude zakódována s tokem 100kbps.
To ovšem neznamená, že Vám nebudou DRF skákat jako např. 4x 3x 5x 4x 3x 5x - v tomto případě se
kodek snaží o průměrné DRF menší než 4x, ovšem větší než 3x. Po 4x snímku dojde k chvilkovému
zlepšení kvality na 3x a poté následuje návrat na předchozí úrověn (cca 4x) ovšem díky kvalitnímu
(3x) snímku to málo detailů co je třeba dodat lze klidně zkomprimovat více (5x).
Zde se nastavuje, jak má kodek detekovat zda je ve scénách hodně pohybu a jak se má v takových případech chovat. (Například AntiShit =) lze modulovat pomocí hodnot "motion".) Zde lze se konkrétně zvolit, zda se má použít Low či High Motion kodek. Řeknete si asi:"ale vždyť o pár řádek výš říkáš, že jsou ty kodeky až na min DRF úrovně vlastně stejné.." Ano to jsou. Tato dvě posouvadla (slidery) jsou de facto přežitek, protože si Nandub s automatickou alokaci bitů pořadí.. Jedná se spíše o pozůstatek z předchozích verzi (jmenovitě VirtualDub.VKI.MM4 verze). Lze to též chápat jako manuální ovlivňování kodeku a mělo by se tedy používat jen v některých případech (více viz níž)
Snažíme se nějak charakterizovat množství pohybu v daně scéně a na to samozřejmě jeden snímek nestačí. Proto je třeba brát v potaz pohyb v předcházejících a nasledujicich scénách a udělat jakýsi vážený průměr.. Například pro Spán = 3 budou koeficienty následující:
Předcházející 3 snímky: 1, 2, 3
Aktuální snímek: 7
Následující 3 snímky: 6, 5, 4
(možná je to obráceně, ale myslím že představu si uděláte..). Implicitní nastavení 8 je celkem rozumné, zvětšovat bych příliš nedoporučoval protože pak by došlo k zprůměrování krátkodobých pohybů a jejich následnému zakódování s příliš nízkým datovým tokem. (a taky by to samotné kódování trvalo příliš dlouho, což by se asi nikomu nelíbilo) (I když na druhou stranu, pokud děláte rip proto, aby se na něj ještě někdo někdy díval, tak se rohodne nevyplatí šetřit časem.)
"Sensitivity" je zkrátka a dobře citlivost. Čím vyšší "Sensitivity", tím vyšší "motion" (index pohybu) se bude detekovat. Doporučují nechat na 10.
Pokud někoho zajímá přesnější definice, tak hodnota "Sensitivity" udává kolika "keyblockum" (klíčových blokům) v delta snímku bude přiřazen maximální "motion" - index pohubu (tj.300). Např. pokud je Sensitivity 10 (tzn. 10 "keyblocku" -> "motion" = 300) tak bude delta snímek s pěti "keyblocky" mít "motion" = 150. "Sensitivity" 10 je též horním limitem, tzn. "Sensitivity" 100 se chová jako "Sensitivity" 10.
Já osobně doporučuji obojí nastavit na 300 a zapnout BR modulaci. Tím se de facto přepínání kodeku (tj. přehazování min DRF) vypne a je tím dána maximální volnost SBC algoritmu. První posouvadlo nastaví při jaké úrovni pohybu ("motion") se má přepnout z Low na High Motion a to druhé zase naopak.
(Další problém vyplývající z přepínání kodeků mohou být tzv. Gross Codec Errors (všelijaké obludy typu velkých čtverců apod.) či ztracené snímky ("dropped frames"). Pokud už na tom trváte, tak je lepší ovlivňovat kodek přes Compression Levels manuálním nastavením DRF pro různé indexy pohybu.
Modulace ostrosti je poměrně vtipně vymyšlené řešení, jak dynamicky nastavovat jediný zbývající parametr DivX kodeku (když bitrate a klíčové snímky už máme pod kontrolou..) a to onu tzv. "Crispness" (ostrost). Jestli si dobře vzpomínám, tak je to parametr MicroSoftem zavedený převážně pro "streamující data". Pokud nějaká scéna přesáhne maximální datový tok, bude na daný snímek aplikován "unsharp" filtr, který obrázek rozmaže a tím zlepší jeho komprimovatelnost (na místo různých bloků, které by vznikly při trvání na kompresi původního snímku danou kompresí).
Dané nastavení ovlivňuje, jak moc je ostrost snížena z maximální hodnoty (100%) pro scény s maximálním množstvím pohybu. Pokud je tedy "Crispness modulation" nastavena na 30% budou scény s pohybem ("motion") 300 zakódovány s ostrostí 100 - 30 = 70%. Naopak scény s minimem pohybu budou mít "Crispess" rovnu 100 - 0 = 100%, tj. maximální.
Toto nastavení umožňuje modulaci zásobárny bitů ("bitrate reservoiru"). Tzn Nandub bude ve na onu zásobárnu v na pohyb náročnějších scénách méně přísný, než ve scénách kde se nic neděje. Obecně se doporučuje používat "Bits Reservoir Modulation" pro 1 CD ripy a určitě ne pro 2 CD ripy. Toto nastavení nepoužívejte pokud máte Motion based curve modulation zapnuto, nebot se obě fce snaží o podobný jev.
Jedna se okno (v sekundách), v jehož rámci se Nandub rozhlíží, zda náhodou nepřidal některým snímkům příliš mnoho bitů ze zásobárny v rámci "Gauge Min" a naopak neubral pro "Gauge Max". Maximální hodnota 120s je dobrá pro filmy s delšími dynamickými scénami, protože dává Nandubu prostor, aby pro ně kompenzoval, ale standartní nastavení 45s pro většinu filmů stačí..
Novinka, o které namám zatím žádné informace.
Doporučuji zatím nechat na implicitní hodnotě "nezaškrtnuto".
Poměrně zásadní nastavení Nandubu. Volně cituji Doom9a:
Zásobárna bitů ("bitrate reservoir") je definována jako 5 sekund databitů (takže
při průměrném cílovém datovém toku 900 je to 900 x 5 = 4500 bitů) pro klíčové a
delta snímky. Pro měření aktuálního bitrate používá kodek jakousi měrku (gauge).
Měrka se aktualizuje po každém snímku podle vzorce:
nová_měrka = stará_měrka + počet_bitů_na_snímek - velikost_snímku
Jinými slovy dojde k zvětšení/zmenšení měrky o rozdíl mezi průměrnou a skutečnou
velikostí snímku.
Měrka zásadně ovlivňuje jakou míru komprese (DRF) kodek použije. Když měrka klesá, budou snímky zakódovány s větsí a větší kompresí a když měrka klesne příliš (cca 5%) může dojít k úplnému zahození snímku ("dropped frames"), protože je prostě s tak málo bity zakódovat nelze. "Gauge Min a Max" ovlivňují krajní přípustně hodnoty měrky - nejmenší proti ztrátě snímků "dropped frames" a největší naopak proti přílišnému plýtvání bity.
Doporučené hodnoty:
1 CD: min 30% max 80%
2 CD: min 40% max 100%
Pokud dojde k výrazné odchylce od cílové velikosti (výsledné AVI je větší než by mělo), tak se doporučuje tyto hodnoty snižovat s krokem 10%. Gauge start nastavuje s jak velkou měrkou se má začít (např. pokud Váš rip má už v prvních snímcích hodně pohybu, tak nastavte něco většího.)
Udává kolik procent se přidá k "bitrate reservoiru" před
zakódováním klíčového snímku. Smysl této korekce je vylepšit vzhled klíčových
snímku, které jsou samy o sobě mnohem náročnější na data než delta snímky a
proto by vypadaly hůř pokud by se na ne použila stejná metrika jak na delta
snímky. Čím větší hodnota, tím spíš bude výsledná velikost moc velká.
Doporučují používat maximální hodnotu 5%, přestože většina lidí si vystačí s
nulou.
Tato hodnota se v novějších verzích Nandubu jeví jako zastaralá
Nemenit! (pouziva se interne pri 1st passu)
DRF je zkratka pro "Detail Removal Factor" a proto čim větší DRF, tím větší komprese.
Doporučuji neměnit, maximalně snížit "Max" v první řádce na 8x ci 6x (pro 2CD
ripy).
Obecně kodek postupuje odzdola nahoru a jakmile narazí na "motion", která je
větší než minimum specifikované v některém řádku, vynutí si DRF v daném rozsahu.
Umožňuje nastavit jaká hodnota DRF se používá pro klíčové snímky. Pokud je Max vypnuto (tj. nastavením na 31x) budou DRF hodnoty pro klíčov (KF) snímky v rozsahu Min - (normální DRF minus 1), tj. podle aktuálního rozsahu pro delta snímky podle motion. Min KF DRF doporučuji nechat na standartních 4x, možná snížít na 3x pro 2 CD ripy. Více informací o Max KF DRF lze nalézt v README souboru.
ECF soubor je soubor, který podobně jako stats soubor obsahuje informace o datovém toku, ovšem na
misto jejich zpracování (modulace, komprese) Nandubem, jsou hodnoty z ECF brány jako
příkazy, což umožnuje např. zopakovat "Second pass" vynucením zvýšení datového toku u
problematických scén, tj. "natvrdo".
V současné době Nandub podporuje tyto příkazy
K vynucení klíčového snímku
D (pokus) o vynucení delta snímku
R=nnnn nastav datový tok na "nnnn"
CL=cc nastav hodnotu komprese (DRF) na hodnotu cc
M=mmm nastav hodnotu "motion" na mmm
G=gg nastav hodnotu "gauge" na gg (v procentech)
Více informací je obsaženo v souboru example.ecf v direktoráři Nandubu
Tohle může být malinko matoucí. Celkem má Nandub 3 Scene Detection mechanismy..
Takže si to shrňme:
Nepoužívejte původní SCD, ale "alternate". Hodnota 35 je dobrá pro většinu filmů.
Internal SCD buď úplně vypnout(100%), anebo nastavit na 98% či 99%
pokud jsou rozdíly v hodnotách luminance velmi malé a máte nastavenou "Sensitivity" 10 a výš.
Crosspoint je blíže vysvětlen v sekci SBC-Settings - Motion
Prev : Nandub a VBR
Index
Next: FAQ