KernelDeint

Přehled

autor: Donald A. Graft
verze: 1.4.1
stáhnout: http://neuron2.net/mine.html, http://www.avisynth.org/warpenterprises/
kategorie: Odstranění prokládání & pulldown
požadavky: YV12 & YUY2 & RGB Barevné prostředí
licence: GPL

Úvod

Tento filtr odstraňuje prokládání (deinterlace) použitím jádrového (kernel) přístupu. Dává značné zlepšení vertikálního rozlišení v deinterlovaných oblastech ve srovnání s jednoduchým zahozením pole.

Jestliže nastavíte prahovou hodnotu (threshold) na 0, můžete obdržet výsledky zcela bez artefaktů (díky nedostatku mezí), ale s mnohem menší ztrátou vertikálního rozlišení než jednoduché zahození pole. Pro optimální rozlišení však nastavte pohybovou prahovou hodnotu, která umožní, aby statické oblasti obrazu nebyly dotčeny. V takovém režimu, na jádře založené odstranění prokládání pohyblivých oblastí zachová jejich vertikální rozlišení ve srovnání s jednoduchou interpolací.

Filtr přijímá RGB, YUY2, nebo YV12 vstup.

Pro použití tohoto filtru jako post-processoru pro Telecide(), použijte následující skript:

Telecide(..., post=1, hints=true)
KernelDeint(...)

 


Syntaxe funkce

KernelDeint() bere následující jmenné parametry:

order (0-1, výchozí není!) Tento parametr definuje pořadí polí v klipu. Je velmi důležité nastavit ho správně. Použijte order=0 pro spodní pole první (bottom field first - bff). Použijte order=1 pro horní pole první (top field first - tff). Musíte zadat pořadí; KernelDeint hodí výjimku, když vynecháte tento parametr.

Pro správné rendrování je zásadní nastavit správně pořadí polí. Protože správné nastavení je tak důležité, důrazně se vám doporučuje nedělat jen doměnky o pořadí polí v klipu, ale raději ověřit pořadí polí použitím následující procedury.

Pro určení pořadí polí, vytvořte skript Avisynthu, který předá syrový klip bez jakéhokoliv zpracování. Pokud to bylo AVI, tak by bylo použito prostě AviSource(). Pro vaše příklady, použijeme AviSource(). Přidejte do skriptu řádek k oddělení polí s použitím horního pole jako prvního, následovně:

AviSource("your_clip.avi")
AssumeTFF().SeparateFields()

Nyní předejte skript VirtualDubu a najděte nějakou oblast s pohybem. Jednoduše krokujte vpřed podle pohybu. Všímejte si jestli pohyb postupuje stále vpřed jak by měl, nebo jestli skáče zpět a vpřed. Například, jestliže je pořadí polí špatné, objekt pohybující se stále zleva doprava by se pohnul doprava, pak by skočil trochu zpět doleva, pak znovu doprava, atd. Jestliže je pořadí polí správné, pohybuje se neustále doprava.

Jestliže je pohyb správný při AssumeTFF().SeparateFields(), pak vaše pořadí polí má horní pole první a vy musíte nastavit order=1. Pokud je pohyb nesprávný, pak vaše pořadí polí má spodní pole první a vy musíte nastavit order=0. Jestliže chcete dvojitou kontrolu, můžete použít AssumeBFF.SeparateFields() pro kontrolu správné operace pro spodní pole první.

threshold (0-255, výchozí 10) Tento parametr definuje prahovou hodnotu "pohybu" . Pohyblivé oblasti jsou jádrově deinterlovány zatímco nepohyblivé oblasti jsou nedotčeny. Použijte parametr map k upravení parametru threshold tak, že právě jen prokládané oblasti snímku jsou deinterlovány.

sharp (true/false, výchozí false) Když je tento parametr nastaven na true, vybere jádro, které poskytne lepší vertikální rozlišení a provede určité zostření videa. Pro mírnější zostření, ale také menší vertikální rozlišení nastavte tento parametr na false.

twoway (true/false, výchozí false) Když je tento parametr nastaven na true, vybere jádro, které zahrnuje jak předchozí tak následující pole pro odstranění prokládání. Když je nastaven na false, jádro zahrnuje jen předchozí pole. Posledně zmíněné one-way (jednoprůchodové) jádro je rychlejší, jiskrnější, a dává méně smíchání (tato poslední výhoda dělá výkon filtru lepší na animovaném materiálu). Parametr twoway je zahrnut v případě, kdy chce uživatel dosáhnout chování dřívějších verzí.

map (true/false, výchozí false) Když je tento parametr nastaven na true, zobrazí se oblasti, které jsou "pohybové" určené pomocí parametu threshold a které budou jádrově-deinterlovány. Použijte tento parametr pro asistenci při nastavování parametru threshold .

debug (true/false, výchozí false) Když je tento parametr nastaven na true, zapíná ladící (debug) výstup přes DebugView utilitu. V současnosti ukazuje číslo verze filtru a jestliže jsou z Telecide() přítomné údaje hint, jestli jsou snímky označené jako progresivní nebo prokládané. Pokud hints chybí, ladící výstup zobrazí všechny snímky jako prokládané.

 


Copyright © 2003, Donald A. Graft, All Rights Reserved.

Pro aktualizace a další filtry/nástroje, navštivte mou webovou stránku:
http://neuron2.net/

$English Date: 2005/10/01 23:09:51 $

Český překlad:25.2.2009