VagueDenoiser

Přehled

autor: Lefungus, Kurosu, Fizick
verze: 0.35.1
stáhnout: http://avisynth.org.ru, http://avisynth.org/warpenterprises/
kategorie:
Prostorové vyhlazovače
požadavky: 

licence: GPL

Úvod

Toto vlnový (Wavelet) odšumovač.
V zásadě převádí každý snímek ze vstupního videa do vlnové oblasti, použitím různých vlnových (wavelet) filtrů. Pak aplikuje nějaké filtrování k získaným koeficientům. Potom provede inverzi vlnového převodu. Kvůli vlnovým vlastnostem, by měl dávat pěkný hladký výsledek, a snížit šum, bez rozmazání rysů obrazu. Tento vlnový převod může být udělán na každé ploše barevného prostředí. Tento filtr používá vlny (wavelets) z Brislawnova tutorialu.

Syntaxe filtru VagueDenoiser

VagueDenoiser (clip, int "threshold", int "method", int "nsteps", float "chromaT", bool "debug", bool "interlaced", int "wavelet", bool "Wiener", float "wratio", integer "percent", clip "auxclip")

Parametry:

threshold: desetinný (float) (výchozí=0)
    Síla filtrování. Čím vyšší, tím více bude klip filtrovaný. Při tvrdém nastavení se může použít vyšší prahová hodnota než při měkkém nastavení dokud klip nevypadá přefiltrovaný.
    Při nastavení < 0 bude vypnuto odstraňování šumu na jasové složce 
    Pokud je nastaveno = 0, tak je prahová hodnota odhadnuta automaticky (adaptivně)

method: -1 až 4 (výchozí=3)
    Filtrační metoda, kterou filtr použije.
    -1 : Bez stanovení prahových hodnot (ladící účely)
    0 : Tvrdé stanovení prahových hodnot. Všechny hodnoty pod prahovou hodnotou budou vynulovány.
    1 : Měkké stanovení prahových hodnot. Všechny hodnoty pod prahovou hodnotou budou vynulovány. Všechny hodnoty nad, budou sníženy o prahovou hodnotu.
    2 : Adaptivní stanovení prahových hodnot (metoda NormalSrink). Násobí vstupní prahovou hodnotu podle lokálních vlnových dat (lokální = úrovně podpásma vlnové úrovně).
    3 : Qianovo (garrotovo) stanovení prahových hodnot. Násobí nebo nuluje koeficienty - střední mezi (více) měkkým a (méně) tvrdým stanovením prahových hodnot.
    4 : Jednotně hladká smršťující funkce.

nsteps: celočíselný (výchozí=4)
    Počet kroků v kolika vlny rozloží obraz. Vysoké hodnoty mohou být pomalejší, ale výsledky budou lepší.
    Navrhované hodnoty jsou 3-6.
    Obraz nelze rozkládat za určitou mez (typicky 8 pro snímek 640x480 - protože 2^9 = 512 > 480)

chromaT: desetinný (float) (výchozí=-1)
    Nastavuje prahovou hodnotu filtrování barevnosti (chroma). Je to pomalejší, ale dává lepší výsledky.
    Pokud je nastaven < 0, tak bude odšumění barevnosti vypnuto (výchozí režim)
    Pokud je nastaveno = 0, tak je prahová hodnota odhadnuta automaticky (adaptivně)

debug: true nebo false
    Deaktivuje inverzní převod pro přímé zobrazení (ale nenormalizuje nyní koeficienty).
    Také zapíná výstup pro utilitu Debugview

interlaced: true nebo false (výchozí=false)
    Snaží se zpracovat pole klipu jednotlivě.

wavelet: celočíselný 1, 2 a nebo 3 (výchozí=1)
    Vybírá typ vln (wavelet):
    1 - Cohen-Daubechies-Feauveau 9/7 - populární, pravděpodobně nejlepší
    2 - Brislawn 10/10 (ostrý, používal se jako jediný ve všech předchozích verzích od 0.23 do 0.29)
    3 - Villasenor-Belzer-Liao 6/10 

Wiener: true nebo false (výchozí=false)
    Aktivuje WienerChop dvouprůchodový režim odšumění pro silné odšumění s vysokou prahovou hodnotou (pomalý).
    V prvním průchodu se dělá odhad šumu převodem s první vlnou (jiná než vybraná vlna) s vybranými nataveními,
    druhý průchod je optimální Wienerovo odšumění druhou (vybranou) vlnou.
    Druhá vlna 1 je použita s první (odhadovací) vlnou 3, 
    Druhá vlna 2 je použita s první (odhadovací) vlnou 1, 
    Druhá vlna 3 je použita s první (odhadovací) vlnou 1. 

wratio: desetinný (float) (výchozí=0.5)
    Hodnota standardní odchylky šumu pro Wienerovo odšumění jako relativní poměr k hodnotě prahové hodnoty.

percent: celočíselný od 0 do 100 (výchozí=85)
    Částečné nebo plné odšumění (omezené zmenšení koeficientů).

auxclip: pomocný klip pro první průchod Wienerova režimu (výchozí=není, zdroj)
    Předfiltrovaný zdrojový klip, nejlépe s časovým nebo prostorově-časovým filtrem (jako DeGrainMedian) pro nejlepší odšumění a potlačení artefaktů.

Příklady použití filtru VagueDenoiser

(všechny řádky avisynth skriptů zde jsou jen příklady)

Některá oblíbená (kdysi) nastavení Lefunguse

Pro mírné filtrování obyčejného videa. (střední->threshold=1-1.5; silné->threshold=2-3)

VagueDenoiser(threshold=0.8, method=1, nsteps=6, chromaT=0.8)

Pro mírné filtrování animovaného videa. (střední->threshold=2; silné->threshold=4)

VagueDenoiser(threshold=1.5, method=1, nsteps=6, chromaT=2.0)

Quianovo stanovení prahových hodnot je upřednostněnou metodou, protože je podobnější optimálnímu (Bayesian).

Některá silná (ale pomalá) nastavení od Fizick

Pro silné filtrování (s vysokou prahovou hodnotou) zašumělého prokládaného analogového videa. V tomto případě je charakteristické objevování artefaktů "kapek" , obzvláště pro tvrdé stanovení prahových hodnot (Quianův režim je optimální). To je důsledek použití rychlého decimovaného vlnového převodu, a také pulsování "horkých" pixelů. Použijte optimální Wienerův filtr. Nejdříve proveďte odhad výkonu signálu a šumu v jednom vlnovém základu. Pak použijte jiný vlnový základ (téměř nekorelovaný) pro filtrování, t.j. slabé snížení hodnoty (použitím předchozího odhadu). Dodatečně snižte vliv "horkých pixelů" mediánovým časovým předfiltrováním (undot, degrainmedian), a použijte výsledek jako pomocný klip pro odhad šumu. Tento pomocný klip lze silně filtrovat protože ho nepoužíváte jako vstup pro Vaguedenoiser. (Ostatně, teď nezískáte přísně prostorové vyhlazení). Viz příklad (pomalý):

LoadPlugin("vaguedenoiser.dll")
LoadPlugin("degrainmedian.dll")
avisource("input.avi")
aux=DeGrainMedian(mode=0, limity=7, interlaced=true)
VagueDenoiser(threshold=7, auxclip=aux, interlaced=true, wiener=true)

Historie a stažení

Poděkování

* Všem na Doom9.org za jejich rady.
* MarcFD za jeho mpegdec3 html dokumentaci. Tento html soubor je stejný, ale s upraveným obsahem.
* Lefungusovi za jeho VagueDenoiser html dokumentaci. Tento html soubor je stejný, ale s upraveným obsahem. :)
* Kurosu za jeho VagueDenoiser html dokumentaci. Tento html soubor je stejný, ale s upraveným obsahem. :-) (ale nyní částečně přeformátovaný)
* Geoffu Davisovi, autorovi konstrukčního nástroje kodéru vlnového (wavelet) převodu.
* Lefungusovi, tvůrci VagueDenoiser.
* Kurosu, reorganizce a optimalizace kódu.
* Fizick, nějaká deorganizace a deoptimalizace kódu. :-)

Distribuce kódu

Toto je svobodný software šířený za podmínek GNU-GPL v2 .

Kontakt

Můžete napsat e-mail Lefungusovi: lefungus (at) altern (dot) org s většinou návrhů, hlášením chyb, požadavkům na funkce, a další.
Lefungusova webová stránka: http://perso.wanadoo.fr/reservoir/avisynth.html
Otázky optimalizace jsou pro Kurosu.
Ještě by jste měli vědět, že najdete Kurosu zde: kurosu (at) inforezo (dot) org
Fizick není za nic odpovědný, ale obvykle se snaží o dokonalost :)
Fizick je k přístupný na: bag (at) hotmail (dot) ru, a jeho webová stránka s pozdějšími verzemi musí být na: http://avisynth.org.ru nebo jeho zrcadle.

Pro podporu jděte na fórum http://forum.doom9.org/showthread.php?s=&threadid=56871.

$English Date: 2005/10/05 18:12:43 $

Český překlad:22.3.2009