VirtualDub: zlepšete kvalitu videa filtry zdarma

Nahráváte rádi z televize přes analogový tuner? Toužíte po vylepšení starých záznamů z videokamery? Dostalo se vám do rukou avičko plné šumu? Chcete ukládat video se stejným datovým tokem ve vyšší kvalitě? Filtrujte!

Nepřítelem číslo jedna je v případě digitalizace analogových nahrávek šum. Při ukládání do komprimovaného formátu je u obrazu s velkou hladinou šumu na jeho prokreslení věnováno nezdravé množství kapacity, kterou by šlo jinak využít pro lepší vykreslení detailů v obraze. Pojďme se podívat, jakým způsobem se dá špatný záznam vylepšit s pomocí volně dostupných filtrů pro oblíbený freeware pro práci s videem, program VirtualDub. Filtry se nahrávají do adresáře plugins, který je v adresáři s VirtualDubem.

Jako zdrojový záznam v našem případě poslouží záznam z analogového tuneru s vysokou hladinou šumu.

Jestliže plánujete filtrované video používat především na počítači, je vhodné v případě, že je záznam prokládaný, provést tzv. deinterlacing. V základních filtrech ve VirtualDubu najdete jednodušší metody odstranění prokládání. Rozhodně ale nepatří k těm nejkvalitnějším. Také některé metody používané v televizních tunerech nepodávají nejlepší výsledek. Je tedy lepší spolehnout se na zásuvné moduly pro VirtualDub.

Asi nejlepším volně dostupným filtrem pro deinterlacing je Smart Deinterlacer Filter ve verzi 2.8 beta 1. Ten umožňuje tzv. edge-directed interpolation, který má snížit výskyt zubatých hran u přepočítaného obrazu.

Jestliže provedeme deinterlacing s následujícím nastavením:

dostaneme tento výsledek:

Ukázku nejkvalitnější metody deinterlacingu, na kterou jsem zatím narazil, najdete na stránkách Moscow State University. Bohužel, tento filtr není veřejně k dispozici, neboť jsou součástí komerčního projektu a ve spárech jej má společnost Samsung. Není mi ani známo, že by se tento filtr dal někde koupit. Na stránkách MSU se ale najde i dostatečné množství jiných zajímavých, a hlavně volně dostupných, filtrů. O dvou z nich bude řeč dále.

Pokud znáte pro VirtualDub pro deinterlace lepší filtr, nežli použitý Smart Deinterlacer, neváhejte se zmínit v diskuzi pod článkem.

S pomocí prvního filtru jsme se tedy zbavili na oko asi nejvíce rušivého elementu v obraze. Dále si v našem případě můžete u záznamu všimnout modrých a žlutých barevných pruhů. Těch se jednoduše zbavit nedá. Můžete zkusit experimentovat s filtrem Chroma Noise Reduction, nebo DotCrawl, ale nimi výrazného zlepšení bez nežádoucích vedlejších efektů nedosáhnete.

Tyto dva filtry se rozhlížejí po okolních snímcích, čímž, zejména v případě šumů, dosahují lepších výsledků oproti filtrům fungujícím na jediném snímku.

Nevýhodou je, že když to s filtrováním přeženete, zmizí sice barevné pruhy, ale při prudším pohybu na obraze zůstanou stopy po okolních snímcích. Všimněte si šedivého obličeje svobodníka Helgy při rychlé otočce.

Opět platí výzva, pokud znáte nějaký lepší filtr, který dokáže „duhové“ efekty odstranit, pochlubte se v diskuzi.

Kontrast snímku můžete výrazně zlepšit za pomocí filtru levels, který je standardní součástí VirtualDubu. Jestli vám neříká nic výraz histogram, doporučuji pročíst článek Histogram – mocný nástroj digitální fotografie z DigiArena.cz, ve kterém je vše hezky vysvětleno na digitální fotografii. V případě videozáznamu je však zapotřebí počítat s tím, že se skládá z více různých scén. Pokud byste se řídili jen podle jediného snímku, mohlo by se stát, že jiné scény zůstanou přeexponované nebo podexponované. Aby k tomu nedošlo, je třeba nechat proskenovat celý záznam. V nastavení filtru stačí zobrazit preview a zvolit Sample input video. Zde zvolíte, zda se má uložit vzorek z jednoho snímku za vteřinu, ze všech klíčových snímků či ze všech snímků ve videu. Co si vyberete záleží jen na vaší trpělivosti a délce záznamu. U delších obvykle stačí sejmout jeden snímek za vteřinu.

Jakmile získáte histogram, řiďte se při nastavování úrovní dle výše uvedeného článku o digitální fotografii. Nezapomeňte úpravu zkontrolovat na více místech záznamu.

Odměnou vám bude lépe prokreslená scéna a kontrastnější video.

Po základních úpravách následuje filtrování šumu. Jako první na záznam obvykle pouštím Denoising filter od MSU. V závislosti na množství šumu se nastavuje různá intenzita filtrování. Temporal denoising znamená odstranění šumu na základě informací získaných z okolních snímků, spatial denosing pak odstraňuje šum na základě detekovaných hran tak, aby zůstalo zachováno co nejvíce detailů. Vhodné hodnoty je třeba opět zjistit experimentováním, kvalita každého záznamu se liší. Vzhledem k tomu, že se tento filtr také rozhlíží po svém okolí, je opět zapotřebí volit hodnoty s rozumem, jinak za každým pohybujícím se předmětem zůstane barevná stopa.

Další filtr pro odstranění šumu je vylepšenou variantou filtru od Donalda Grafta. Nastavování tohoto filtru věnujte zvýšenou pozornost, změny, které v záznamu v našem případě dělá, jsou nejrazantnější. Vzhledem ke složitým výpočtům je z těch, které dnes použijeme, časově nejnáročnější. Nešikovným nastavením lze celkovou dobu filtrování mnohonásobně prodloužit. Proto se u něj nachvilku zastavíme.

Co a jak se bude filtrovat uvidíte nejlépe, pokud si dáte zobrazit preview a zaškrtnete volbu visualize blur. Díky tomu získáte přehled, jak intenzivní bude vyhlazení jednotlivých částí snímku. Nejvíce vyhlazované  části obrazu budou vybarveny světlou barvou, hrany, které zůstanou zachovány jsou znázorněny černou barvou.

Klíčovým faktorem, který má vliv na to, jak se bude filtrovat, je parametr Diameter. Podle něj se filtr rozhoduje, jak velké okolí právě filtrovaného bodu prozkoumá. Čím větší, tím přesněji detekuje hrany a detaily. Prozkoumání většího okolí je však časově velmi náročné. Má význam uvažovat o hodnotách 5-11.

Položka Treshold definuje, jaký je třeba rozdíl v barvách mezi sousedními body k tomu, aby byly sousední pixely „rozmáznuty“. Amount vyjadřuje celkovou intenzitu rozmáznutí obrazu, položka Maintain DiffWeight pak ovlivňuje, co se bude dít v nejbližším okolí identifikovaných hran.

Podrobný anglický popis filtru najdete na této adrese. Pokud se vám do čtení nechce, můžete opět experimentovat.

Jakmile budete spokojeni s výsledkem, nezapomeňte funkci Vizualize Blur zase vypnout.

V našem případě dopadla změna takto:

V obrazu došlo k citelnému poklesu šumu, ale odnesly to i některé detaily. V případě, že ukládáte do ztrátových formátů s průměrným bitratem (např. DivX při rozlišení 640×480 a 2 mbit/s), nemusíte se tím trápit. Zřejmě by stejně padly za oběť enkodéru.

Pokud hodláte u výsledného videa použít větší datový tok a nějaký šum nevadí, klidně zvolte nižší intenzitu filtrování.

Předposledním krokem je lehké zvýšení intenzity barev. Toho dosáhneme s pomocí filtru Hue/saturation/intensity. Změnou položky Saturation o 6 % dostaneme zejména u pleti herců zdravější barvu. Nastavení barev je otázkou vlastního vkusu a především barevnosti zdrojového videa.

Pokud hodláte záznam přehrávat pouze na počítači a zdroj je ve formátu PAL, je vhodné před posledním krokem obraz ořezat (filtr null transform + nastavit cropping v dialogu s filtry) a převzorkovat obraz na klasický formát 4:3 s pomocí integrovaného filtru resize s algoritmem Lanczos3.

Poslední je další filtr od MSU – Smart Sharpen. Ten slouží k doostření hran po všech vyhlazovacích operacích. Doostření videa je vhodné také v případě, že jste měnili rozměry původního záznamu. Každá změna rozměrů totiž znamená rozostření snímku. Náprava s pomocí Smart Sharpen by tedy měla být poslední operací, kterou s videem uděláte.

Teď už vám nic nebrání uložit video do svého oblíbeného formátu a kochat se výsledkem práce VirtualDubu a filtrů.

Původní záznam:

vypadá po filtrování takto:

Počítejte s tím, že jde o časově velmi náročnou úlohu. Core Duo T2300 na frekvenci 1,67 GHz při tomto nastavení počítá (i když docela nepochopitelně jen jedním jádrem) asi 1,42 snímků za vteřinu. Filtrování videa s tímto nastavením tak zabere asi šestnáctinásobek jeho stopáže.

Diskuze (79) Další článek: Podpora pro export PDF z Office 2007 je hotova

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,