TemporalCleaner je portován do avisynthu z původního filtru pro VirtualDub který vytvořil Jim Casaburi.
Do Jimovy práce jsem doplnil jen nějaké ASM.
Pokud je rozdíl mezi předchozím pixelem a aktuálním pixelem pod prahovou hodnotou rozmazání (blur threshold) tak nahradí aktuální pixel průměrem mezi předchozím a aktuálním pixelem, jinak zachová aktuální pixel.
Dalším trikem je doplnění některých zpětných vazeb do tohoto filtru : místo použití nefiltrovaného předchozího snímku ho používá už filtrovaný.
Jednoduché, ne ?
TemporalCleaner
(clip, int "ythresh", int "cthresh")
ythresh (výchozí hodnota = 5) : prahová hodnota rozmazání jasu (nechoďte přes 8 jinak budete mít nějaké duchy).
cthresh (výchozí hodnota = 10) : prahová hodnota rozmazání barevnosti (můžete jít bezpečně trochu přes 8, protože pokud je jas nad prahovou hodnotou -> barevnost je automaticky zachována (nerozmazána)).
- Pracuje s YUY2 nebo YV12, PROVĚŘENO.
- Vyžaduje kompatibilní CPU s Integer SSE (ne PII a K6-II), PROVĚŘENO.
- Vyžaduje šířku dělitelnou 4 u YUV2 (NEPROVĚŘENO).
- Měl by pracovat s jakoukoliv šířkou u YV12.
- Je-li cthresh = 0 pak není barevnost vůbec zpracována (urychlení).
Děkuji těmto
- Jim Casaburi - za původní myšlenku (já jsem jen jeho překladatel ;))
- Zarxrax a Ligh - za beta testování
Vlad59 (babas.lucas at laposte.net)
2003/01/13 beta2 :
2002/11/09 beta1 :
$English Date: 2004/08/17 20:31:19 $
Český překlad:14.2.2009