# TComb

## Přehled

autor: tritical
verze:v2.0 Beta
stáhnout: http://bengal.missouri.edu/~kes25c/, http://avisynth.org/warpenterprises/
kategorie: Pluginy pro vysílané video
požadavky:

- YV12 & YUY2 Barevné prostředí
- NTSC

licence: GPL

## Popis

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.

### Syntaxe

`TComb` (clip, "mode", int "fthreshL", int "fthreshC", int "othreshL", int "othreshC", bool "map", double "scthresh", bool "debug", int "opt")

### PARAMETRY

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)

### ZÁKLADNÍ NASTAVENÍ/POUŽITÍ:

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.

Nastavení odstranění lezoucích bodů (Dot Crawl) (fthreshL/othreshL):

Pro nalezení dobrých hodnot pro fthreshL/othreshL, začněte následujícím řádkem:

    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.

Nastavení odstranění duhy (fthreshC/othreshC):

Pro nalezení dobrých hodnot pro fthreshC/othreshC, začněte následujícím řádkem:

    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.

## Seznam změn

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í

## Na dopracová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`