Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Filmy a seriály, streamovací služby
Televize  |  Projektory
Audio a domácí kina
Multimediální centra  |  Ostatní
Svět hardware  |  Digimanie
Svět mobilně

Odstranění šumu z videa

3.3.2005, Radek Jahoda, návod
Šum má značný vliv na komprimovatelnost videa. Jde ve většině případů o náhodnou informaci, kterou komprimační algoritmus nerozezná od té užitečné. Je tak žádoucí, aby šumu bylo co nejméně. Podívejme se na druhy šumu a rušení a možnosti eliminace hned u zrodu.
První v řetězci je kamera, takže se podívejme na ni. Pokud vezmeme v úvahu digitální kamery, hlavní zdroj šumu vzniká na CCD snímači. Za dobrých světelných podmínek se nejvíce projevuje samotný šum čipu a kvantizace. Lze říci, že tento šum je většinou na úrovni jednoho bitu převodníku (většinou osmibitový převodník, tedy 1/256 signálu). Při horších světelných podmínkách již dopadající světlo nedokáže vybudit snímač v plném rozsahu a nastupuje zesílení. Při zesílení ale dochází k zesilování i šumu snímače, při dvojnásobném zesílení tak naroste šum dvakrát atd. Při hodně malém světle se již může stát, že obraz je úplně ponořen do šumu. Pokud tedy natáčíte kamerou, vždy mějte na paměti, zajistit dostatek světla. K tomuto účelu existují doplňková světla ke kamerám a rozhodně byste se neměli bránit jejich používání. Nešetřete ani na výkonu světla, čím více tím lépe. V interiéru je nejlepší použít osvit odrazem od stropu. Tím dojde k rozptýlení světla a eliminaci kužele světla. Vyžaduje to ale světlo vysokých výkonů a ne vždy je možné ho použít.

Další degradace obrazu nás čeká při ukládání videa na pásku. O digitálních kamerách se zmíníme později, teď se zaměřme na problémy při ukládání na VHS nebo Video8, ať už v kameře nebo na stolním rekordéru. Zde vstupuje do cesty několik faktorů. V první řadě je to omezená šířka pásma těchto zařízení. Jednoduše řečeno to znamená, že přicházíme o rozlišení v horizontálním směru - klesá schopnost zobrazit určitý počet bodů na tento řádek. Značné vylepšení přinesly systémy S-VHS a Hi8, které zvýšily počet zobrazitelných bodů na přibližně 400, což je dvojnásobek oproti VHS resp. Video8, ale stále to nedosahuje hodnot digitálních formátů. Po digitalizaci dostaneme kvalitu, která stále odpovídá kvalitě zdroje. Vylepšení rozlišovací schopnosti dosáhnout prakticky nelze, jak se říká, kde nic není ani čert nebere. Zapomeňte na oblíbené filmařské triky, kdy z jednoho bodu v záznamu lze interpolovat perfektní obraz čehosi, v jednom nejmenovaném filmu dokonce obraz převedli na 3D a viděli tu samou scénu z druhé strany. To vše je naprostá utopie a jediná možnost vylepšení existuje ve zvýšení ostrosti. Tímto krokem se zaostří přechody, opět to ale funguje jak na užitečný signál, tak na šum. Dojde tedy v každém případě ke zvýraznění šumu, takže toto lze provádět pouze na velmi kvalitním obraze bez šumu. Mějte na paměti, že tímto nepřidáte do obrazu žádnou informaci navíc, tedy nezvyšujete optické rozlišení a nezískáte tím žádné detaily v obraze navíc, dojde pouze ke zvýraznění hran objektů.

Pro analogový záznam na pásky, především pak pro VHS platí, že zde hrají velkou roli mechanické poměry při práci s páskou. Každá řádka v obraze odpovídá jedné šikmé stopě na pásku (o principu více zde). Otáčející se hlava je upevněná na osičce, která má určitou vůli, páska není vedena úplně přesně ve stopě bez výkyvů, navíc se při čtení reguluje náklon hlavy tak, aby co nejvíce odpovídal šikmosti stopy atd. Všechny tyto faktory mají vliv na to, že každá řádka obrazu nezačíná přesně tam, kde má. Prakticky se to projevuje tak, že jednotlivé řádky jsou vůči sobě více či méně posunuty a pokud bude v obraze svislá čára, tak tato čára nebude rovná, ale klikatá. Navíc klikatá vždy úplně jinak, dá se říci nedeterministicky. Je to typické chování, které je v lepších přehrávačích nebo různých převodnících korigováno filtry, které se snaží posunutí jednotlivých řádek detekovat a následně ho odstranit. Toto lze provádět pouze na analogovém videu, ne až po digitalizaci, protože se posunutí detekuje přímo na video signálu, nelze to provádět až následně po digitalizaci (i když i něco podobného se provádí). Těmto zařízením se říká Time Base Corrector (TBC) a rozhodně by tato zařízení měly používat všechny firmy, které provádějí převod videa na zakázku. Pokud byste chtěli mít něco podobného doma, umí to například DV převodník ADVC300 od Canopusu, který stojí asi 15.000,- Kč. Některé nové S-VHS přístroje ho mají také.

Dalším druhem chyb obrazu jsou chyby v barvách. Jejich příčinou jsou dva důvody. První je to, že pro přenos barvy se používá poloviční šířka pásma než pro přenos jasu (tedy černobílého obrazu). Barva je tedy zjednodušeně řečeno společná pro dva sousední body a díky tomu vzniká v obraze známé moaré, někdy se toto nazývá color cross. Toto ale není ještě to nejhorší. U VHS nahrávek je šířka pásma daleko více omezena a může docházet ke značnému posunutí (rozuměj rozpliznutí) barvy v horizontálním směru, což se označuje jako chroma shift nebo color bleeding. Tyto vady se nechají částečně eliminovat digitálními filtry, které porovnávají změny v jasové a barevné složce a v závislosti na nich odstraňují barevné vady.

Pojďme se tedy podívat na různé metody zlepšení obrazu, nejprve odstraňování šumu. Šum, jak již bylo řečeno, je náhodná složka a z toho se také odvozuje metoda jeho odstranění - průměrování vždy náhodnou složku eliminuje. Průměrovat je možné buď v časové ose (temporal noise reduction nebo též dynamic noise reduction) nebo prostorově v jednom snímku (spatial noise reduction). Samozřejmě je možná kombinace obou, většinou se pak nazývá 3D noise reduction. Jakékoliv průměrování samozřejmě ničí vysokofrekvenční část signálu. Pokud průměrujeme v čase, tedy snímky jdoucí po sobě, přicházíme částečně o informaci pohybu, pokud průměrujeme v prostoru, přicházíme o detaily.

Pojďme si popsat prakticky některé metody. Nejjednodušší je průměrování okolních bodů náležejících k příslušnému uvažovanému bodu. Průměrují se body do určité vzdálenosti, většinou jako čtverec, tedy například 3x3, 5x5, 7x7 bodů, popř. může být i obdélník. Tato metoda je naprosto nevhodná, protože nejvíce rozmazává obraz a ničí veškeré hrany objektů. O něco lepší je váhové průměrování, kdy náš bod má největší váhu a okolní body mají nižší váhu, tím nižší, čímž je bod dále od našeho bodu. Tato metoda ale také není ideální a je v podstatě identická s filtry Smooth nebo Blur a nelze ji považovat za pravé odstraňování šumu. Podobně k problematice přistupuje také Gaussian blur, která bere váhové koeficienty jako gausovské rozložení. Téměř každý program, který umožňuje filtraci obrazu je těmito filtry vybaven. Tuto metodu lze doporučit pouze v případě, že plánujete následné zmenšení obrazu před kompresí, např. pro internet. Pro malou představu funkce jednotlivých filtrů je zde pár obrázků silně zarušeného PAL videa, kde je vidět jednak značné množství šumu, tak fázové chyby projevující se barevnými chybami.




Nahoře původní obraz, dole blur

Pokud budeme uvažovat, že amplituda šumu je pouze malá vzhledem ke změnám v obraze, což je nejčastější případ, je možné z průměrování okolních bodů vyloučit ty body, jejichž rozdíl oproti našemu je větší než určitá hodnota. Většinou se používá osmibitová kvantizace obrazu, kde hodnota bodu (resp. složka bodu RGB) může nabývat rozsahu 0-255. Šum pak většinou bývá přičten k užitečnému signálu a nabývá hodnot ne větších než 10-20. Vyloučíme-li okolní body, jejichž matematický rozdíl (lze počítat buď jas, nebo rozdíl barvy nebo rozdíl jednotlivých složek RGB) je větší než náš limit, zabráníme tím ztrátě hran objektů. Tato velmi jednoduchá metoda je asi nejpoužívanější a objevuje se (i s různými modifikacemi) v mnoha filtrech, nejznámější je asi Smart Smoother pro VirtualDub a Vegas, Masked Smooth pro AviSynth. Abychom pouze nechválili, tato metoda má jako všechny ostatní své stinné stránky. Selhává v částech obrazu, kde jsou detaily pouze s malou změnou, například reliéfy na stěnách, tráva v pozadí apod. Všechny tyto části jsou rovněž rozmazány. Záleží samozřejmě na nastavení limitu pro průměrování. Čím menší, tím bude docházet k menšímu rozmazávání objektů, ale na druhou stranu se můžeme dostat pod hranici šumu a pak ztrácí tento filtr efekt. Limit musí být vždy větší, než největší špičky šumu. Je dobré si vyzkoušet, zda při nastavení limitu, který odstraní dostatečně šum, nedojde ke znatelné degradaci obrazu. Je to silně individuální záležitost, samozřejmě čím méně šumu, tím lépe. Nejvhodnější použití tohoto filtru je pro kreslené filmy, které obsahují hodně jednolitých ploch, které jsou vhodné k průměrování, na druhou stranu objekty jsou většinou ostře ohraničeny, takže limit lze nastavit poměrně vysoko. Jak to dopadne, pokud to přeženeme u normálního videa, je vidět na obrázku. Hrany objektů jsou zvýrazněny a zbytek se stává plastický.




Nahoře Smart smoother, dole Dynamic Noise Reduction

U temporálních filtrů je situace podobná. Průměruje se jeden bod v obraze se stejným bodem v předchozích snímcích. Nevýhodou tohoto řešení je, že při průměrování v dalších snímcích zůstává částečně informace z předchozích. Ve výsledku to vypadá, jako by za sebou pohybující se objekty táhly stín, resp. ohon. Je to podobné zapnutí stopy myši na obrazovce. K tomuto problému se přistupuje stejně jako u spatiální komprese - nastaví se limit, do kterého dochází k průměrování a při překročení se použije nová hodnota a průměrování začne od začátku. Často se nepoužívá průměrování několika snímků, ale pouze plovoucí průměrování dvou snímků, která je výpočetně jednoduší a nepotřebuje držet v paměti data z tolik minulých snímků, je to váhový průměr minulého výsledku a nové hodnoty v určitém poměru, např. 10:1 (tedy nová hodnota je ). Pokud budete uvažovat nehybný obraz (např. z průmyslové kamery), tak je odstraňování šumu tímto způsobem ideální. U videa, kde je hodně pohybu je to horší, viditelné artefakty vznikají hlavně na pohyblivých částech s malými změnami jasu pod limitem. Přesto je tato metoda velmi oblíbená a používá se snad na všech komerčních DVD discích. Typickými představiteli jsou například filtry Dynamic Noise Reduction (DNR) pro VirtualDub a Vegas nebo TemporalCleaner pro AviSynth. Rozdíl mezi spatiální (smart smoother) a temporální (DNR) kompresí je vidět na obrázcích.

Existuje spousta filtrů, které se snaží více uvedené principy rozvíjet. Časté je kombinování temporálního a spatiálního algoritmu do jednoho filtru (Convolution3D pro AviSynth, ViXen pro Premiere). Některé filtry se snaží detekovat pohyb v obraze (podobně jako MPEG enkodéry) a podle to přepínat temporální a spatiální filtraci v různých částech obrazu (např. Motion Adaptive Mixer pro AviSynth). Zajímavé je také u temporální komprese neprovádět průměrování, ale "zamrznutí" bodu. Pokud není bod v novém snímku rozdílný více než o limit, ponechá se hodnota původního bodu. Tento princip je výhodný pro kompresory typu MPEG (1, 2 i 4), protože části obrazu bez změny se velice dobře komprimují. Tuto metodu používá Dynamic Noise Reduction filtr od
Podobné principy lze aplikovat i na odstranění barevného šumu, který je typický pro záznamy z VHS kazet. V tomto případě zůstává jasová složka nezměněna nebo se filtruje separátně. Takto funguje například filtr Chroma Noise Reduction (CNR) pro VirtualDub a AviSynth nebo flaXen VHS Filter pro VirtualDub. Oba filtry dokáží také posunout barevnou složku v horizontálním směru. Na obrázku je vidět odstranění barevného moaré v levé části.


Chroma Noise Reduction

Po digitalizaci videa je určitě vhodné obraz vylepšit. Jednak video bez šumu lépe vypadá, jednak je to lepší pro kompresory. Ovšem je nutné poznamenat, že každý se na toto dívá jinak. Pro někoho je jakékoliv filtrování nepřípustné, protože vždy obraz degraduje různými artefakty. Jde ale o to tyto artefakty co nejvíce eliminovat a dosáhnout alespoň částečného vyčištění obrazu od rušení, které tam být nemá. Nejúčinnější je samozřejmě se hned na začátku vyhnout zanášení rušení do obrazu. Ne vždy je to ale možné a tak přichází filtrace určitě vhod. Je nutné ale brát v úvahu zdroj videa a jeho kvalitu. Pokud jde o video z digitální kamery, které není příliš zašuměno, stačí provést jemnou temporální filtraci s limitem maximálně 10 a spatiální filtraci raději neprovádět. U analogového videa je vhodné nejprve vyfiltrovat barevné vady a provést kombinaci temporální a spatiální filtrace, opět raději jemnější. Lze také používat různé druhy filtrace na různé scény, u rychlých scén je vhodnější spatiální komprese, případných artefaktů si lidské oko bez zastavení obrazu nevšimne, u statických scén je samozřejmě lepší filtrace temporální. Nakonec je možné lehce obraz doostřit (pokud možno jen v horizontálním směru), ale pouze u kvalitnějšího videa, aby nedošlo ke zvýraznění šumu. Určitě přijde vhod malé porovnání původního a vyfiltrovaného obrazu, který s nich je lepší? O lepší komprimovatelnosti svědčí i to, že vyfiltrovaný obrázek v JPEG je o 27% menší než originál. Je ale nutné poznament, že jde o statickou scénu, což je výhodné pro DNR filtr.



Porovnání původního obrazu (nahoře) s vyfiltrovaným filtry CNR->DNR->Smart smoother (dole)
(klikněte pro zobrazení celého obrázku)

V každém případě se filtrace nebojte, vždyť výrobci DVD ho provádějí také a je to také jeden z důvodů, proč originální DVD vypadají tak dobře. Druhý důvod je ovšem ten, že zdrojem je kvalitní video jen s velmi malým šumem, takže na to myslete už při natáčení. Abych ale jen nechválil, při bližším zkoumání originálních DVD objevíme v obraze často značné množství artefaktů, které prozrazují, že autoři si často s tvorbou příliš hlavu nelámou. Nastavování filtrů může totiž být zdlouhavá práce, především když na různé části videa používáme různé metody filtrace. Každopádně se to ale vyplatí.