licence: GPL
TComb je časový kombinovaný filtr (snižuje cross-luminance - poruchy jasu (duhu) a cross-chrominance - poruchy barevnosti (dot crawl - lezoucí body) pro artefakty ve statických oblastech obrazu). Bude pracovat JEN s NTSC materiálem, a NEBUDE pracovat s materiálem zpracovaným telecine, kde duhy/lezoucí body byly přítomny před procesem telecine! Aby byl funkční, musí být použit před ivtc nebo odstraněním prokládání. Podle toho co dělá je podobný filtrům guavacomb/dedot.
TComb podporuje vyhledávání (seekování)... to je, přeskakování na náhodný snímek vytvoří stejný výsledek jako by jste lineárně došly k tomuto snímku. Pro odstranění dot crawl (lezoucích bodů) tcomb vyžaduje nejméně 3 statická pole stejné parity a pro odstranění duhy vyžaduje tcomb nejméně 5 statických polí stejné parity.
TComb
(clip, "mode", int "fthreshL",
int "fthreshC", int "othreshL", int "othreshC",
bool "map", double "scthresh", bool "debug",
int "opt")
mode - (omezení zpracování jen na jas-luma nebo barevnost-chroma)
Ovládá jestli jsou zpracovány obě komponenty - jas/barevnost nebo jen jedna z nich. Možná nastavení:
1 - zpracuje jen jas (luma)
2 - zpracuje jen barevnost (chroma)
0 - zpracuje obojí
výchozí: 2 (int)
fthreshL/fthreshC - (filtrované korelační prahové hodnoty)
Jedna z věcí, které TComb kontroluje je korelace mezi filtrovanými hodnotami po délce filtračního okna. Pokud se všechny hodnoty liší o méně než fthreshL (pro jas) nebo fthreshC (pro barevnost) tak filtrované hodnoty jsou považované za korelované. Větší hodnoty umožní více filtrování (bude efektivnější při odstraňování duhy/lezoucích bodů - rainbowing/dot crawl), ale vytvoří také více artefaktů. Menší hodnoty vytváří méně artefaktů, ale budou méně efektivní při odstraňování duhy/lezoucích bodů. Dobrý rozsah hodnot je mezi 4 a 7.
výchozí: fthreshL -> 7 (int)
fthreshC -> 7
othreshL/othreshC - (prahové hodnoty vysoké frekvence)
Jednou z věcí, které TComb kontroluje je korelace mezi původními hodnotami pixelu z každého jiného pole stejné parity. Kvůli oscilační periodě by tyto hodnoty měly být shodné nebo velmi podobné ve statických oblastech obsahujících lezoucí body nebo duhu. Pokud se hodnoty pixelu liší o méně než othreshL (pro jas) nebo othreshC (pro barevnost), tak jsou pixely považovány za korelované. Větší hodnoty umožní více filtrování (bude efektivnější při odstraňování duhy/lezoucích bodů - rainbowing/dot crawl), ale vytvoří také více artefaktů. Menší hodnoty vytváří méně artefaktů, ale budou méně efektivní při odstraňování duhy/lezoucích bodů. Dobrý rozsah hodnot je mezi 4 a 8.
výchozí: othreshL -> 5 (int)
otThreshC -> 4
map -
Identifikuje pixely, které jsou nahrazovány filtrovanými hodnotami. Každý pixel ve výstupním snímku bude mít jednu z následujících hodnot indikujících jak je filtrován:
0 - nefiltrováno
1 - 85 - [1 2 1] průměr z (n,n+1,n+2)
170 - [1 2 1] průměr z (n-2,n-1,n)
255 - [1 2 1] průměr z (n-1,n,n+1)
** n = aktuální snímek
výchozí: false (bool)
scthresh - (prahová hodnota změny scény)
Nastavuje prahovou hodnotu detekce změny scény jako procento maximální změny v jasové ploše. Použijte ladění (debug) výstupu aby jste viděly, které snímky jsou detekovány jako změna scény a statistiky změny scén.
výchozí: 12.0 (float)
debug -
Zapne ladící (debug) výstup. Jediná věc, kterou zobrazuje jsou statistiky změn scény. Informace je vysílána přes OutputDebugString(). Pro zobrazení výstupu můžete použít utilitu "DebugView" ze sysinternals. Čísla snímků v debug výstupu odpovídají vstupnímu klipu po výzvě separatefields(). TComb vnitřně vyzývá separatefields() před sebou samým a weave() po sobě.
výchozí: false (bool)
opt -
Řídí, které cpu optimalizace jsou použity. Možná nastavení:
0 - použít c rutiny
1 - použít mmx rutiny
2 - použít isse rutiny
3 - použít sse2 rutiny
4 - autodetekce
Výchozí: 4 (int)
Nastavení TComb je docela jednoduché. Jediné hodnoty, které by byly někdy skutečně potřeba nastavit jsou fthreshL/fthreshC, othreshL/othreshC, a mode.
Nastavte mode na 0 pokud chcete odstranit jen lezoucí body (dot crawl), nastavte ho na 1 pokud chcete odstranit jen duhu, nebo ho nastavte na 2 pro odstranění obou.
tcomb(mode=0,fthreshL=255,othreshL=255)
Nyní držte othreshL na 255 , ale snižte fthreshL na 1. Zvyšujte fthreshL po krocích 1 až 2 dokud nenajdete místo, ve kterém jsou odstraněny všechny lezoucí body. Zapamatujte si tu hodnotu. Dále nastavte fthreshL zpět na 255, a nastavte othreshL na 1. Nyní zvyšujte othreshL po krocích 1 nebo 2 dokud nenajdete místo ve kterém jsou lezoucí body odstraněny. Teď jste dostali hodnoty pro fthreshL/othreshL.
tcomb(mode=1,fthreshC=255,othreshC=255)
Nyní držte othreshC na 255, ale snižte fthreshC na 1. Zvyšujte fthreshC po krocích 1 až 2 dokud nenajdete místo, ve kterém je odstraněna veškerá duha (nebo její většina). Zapamatujte si tuto hodnotu. Dále nastavte fthreshC zpět na 255, a nastavte othreshC na 1. Nyní zvyšujte othreshC po krocích 1 nebo 2 dokud nenajdete místo ve kterém je odstraněna veškerá duha (nebo její většina). Teď jste dostali hodnoty pro fthreshC/othreshC.
Jakmile jsou nastaveny parametry mode, fthreshL/fthreshC, a othreshL/othreshC, přidejte nezbytný řádek tcomb() do vašeho skriptu a přehrajte jeho část. Jestliže uvidíte jakékoliv artefakty, zkuste snížit hodnoty fthresh/othresh.
05/16/2006 v2.0 Beta 2
+ Přísnější kontrola othreshL/othreshC při hledání oscilace
+ Pro detekci lezoucích bodů vyžadován aspoň jeden vertikální soused (y-1/y+1, x-1/x/x+1)
- Opraveno možné selhání s yuy2 vstupem (sse2 planar<->packed převody)
03/31/2006 v2.0 Beta 1
- kompletně přepsáno
06/24/2005 v0.9.0
- Původní vydání
- odstranit buffering snímků/informací, které nejsou ve skutečnosti využívány (bylo pro vývojové/testovací účely). Mělo by ušetřit hodně využití RAM.
- vydání v2.0 final
$English Date: 2005/07/10 16:11:01 $
Český překlad:31.3.2009