Ovládněte čas!
27. 9. 2011
Čtrnáct let je v oblasti tvorby filmových speciálních efektů opravdu dlouhá doba a přesně tolik let je v současné chvíli britské společnosti The Foundry, která se postupně vypracovala do pozice jednoho z lídrů v oblasti vývoje speciálního softwaru a plug-inů pro nejrůznější úpravy obrazu. Kupříkladu kompoziční systém Nuke je v branži samozřejmým pomocníkem při skládání nejrůznějších vrstev záběrů do sebe, texturovací systém Mari pak pomáhá řadě grafiků při tvorbě komplexních textur aplikovatelných na složité 3D modely, k plug-inu Keylight řada uživatelů After Effects přistupuje bez vědomí faktu, že jde o produkt The Foundry. Vynechat nesmíme ani plug-in Ocula pomáhající při současné produkci atraktivních 3D filmů. V dnešním článku se zaměříme na plug-in KRONOS v nejnovější verzi 5.0, jež slouží k mnohem sofistikovanějšímu zpomalení obrazu, než naleznete klasicky přímo v AE.
Instalace a první použití
Nejnovější verze plug-inu KRONOS přichází především s úpravou jádra plug-inu, v první řadě existuje samozřejmě pouze v 64bitové verzi (vzhledem k tomu, že AE CS5 už nemá svého 32bitového bratříčka). Druhou a mnohem podstatnější změnou je přepracování kódu plug-inu pomocí technologie, kterou The Foundry nazývají Blink. Jedná se prakticky o přepsání základního kódu tak, aby bylo možné daný program či plug-in teď i v budoucnu s příchodem nových technologií spouštět na GPU, přičemž je vcelku jedno, zda program „pojede“ na NVIDIA GPU CUDA, NVIDIA GPU OpenCL či ATI GPU OpenCL. Kód programu či plug-inu je vývojáři napsán pouze jednou, Blink ale umožní jeho použití na CPU či na GPU - čistě dle volby uživatele. S použitím GPU samozřejmě souvisí masivní zrychlení, kdy procesor počítače disponuje kupříkladu několika málo jádry (od dvou až například do šestnácti), zatímco procesor na grafické kartě disponuje jádry sice jednoduššími, ale v počtu několika stovek. Právě zde se využije technologie Blink k masivní paralelizaci zpracování obrazu. KRONOS 5.0 je certifikován pro použití s kartami GeForce GTX 285, Quadro FX 3800, Quadro FX 4800 a Quadro FX 5800. Náš test bude proveden na nové řadě GeForce GTX 460, přičemž samotný počítač je osazen procesorem Intel Quad Q9300 2,5 GHz s 4 GB RAM. V následujících odstavcích tedy uvidíme, nakolik je zrychlení citelné.
Instalace plug-inu je poměrně složitá - kupříkladu už jen pro stažení zkušební verze jste nuceni nejprve nainstalovat certifikační software, vygenerovat si kód licence, který je několik řádků dlouhý a teprve pak máte možnost plug-in vůbec nainstalovat. Na druhou stranu v dnešní pirátské době se The Foundry zas tak nedivím. Po instalaci se KRONOS objeví klasicky mezi dalšími efekty, přičemž aplikace na požadovanou vrstvu je otázkou vteřiny.
Nastavení plug-inu už příliš složité není - první věcí, kterou musíte určit, je barevný prostor videa (Original Colour Space) pro lepší výpočet zpomalení (nebo zrychlení), přičemž Cineon je pro filmový zdroj, sRGB pro video a volba Linear nebere v potaz informaci o barevném prostoru, která je obsažena ve videu, ale snaží se zvolit správnou možnost pro co nejlepší vektorový výpočet.
Další podstatnou volbou je parametr „Timing“, kde si určíte buď rychlost, nebo „Frame“ - v prvním případě pak zadáváte přímo hodnotu v procentech, do jaké míry se má video zrychlit či zpomalit, v případě „Frame“ pak již musíte použít klíčové snímky. Například jste na pozici 10 snímků, zadáte klíčový snímek s touto hodnotou, přejdete na pozici 70 snímků, ale zde zadáte klíčový snímek s hodnotou 40 snímků. Tím docílíte zpomalení videa o polovinu - na daném časovém prostoru totiž proběhne pouze třicet snímků namísto původních šedesáti, těch třicet neexistujících se tedy musí pomocí plug-inu dopočítat.
Další parametry
Pokud se nechcete zabývat dalšími nastaveními, v podstatě můžete skončit jen u rychlosti či zadání klíčových snímků. To by ale vaše video muselo být takřka dokonalé, bez šumu a interferencí, což asi jen tak nenastane. Pokud klasicky zpomalujete video v Premiere či After Effects, dochází k „vypadávání“ snímků, kvůli čemuž jsou pohyby ve videu trhané. KRONOS pak funguje tak, že analyzuje předcházející a následující snímek a na základě jejich porovnání vygeneruje snímek úplně nový. Jednoduše řečeno - pokud například máváte rukou a na prvním snímku ji máte napravo, na druhém nalevo, pak by na generovaném snímku byla ruka uprostřed. Kéž by to tak fungovalo!
Pokud s daným výsledkem nejste spokojeni, můžete jej ještě zpřesnit nastavením dalších parametrů v záložce „Tuning“. „Vector Detail“ v rozsahu od 0 do 100 % udává hustotu vekotorového pole, s nímž si musí plug-in poradit, přičemž samozřejmě platí, že čím vyšší hodnota, tím bude výpočet delší. „Smoothness“ pak určuje, jak bude výsledný obraz plynulý, bez „zubatosti“, na druhou stranu vyšší hodnota zase ubírá na detailnosti obrazu. Dále pak můžete zapnout volbu „Flicker Compensation“, která se pokouší kompenzovat obraz s nežádoucími odlesky a blikáním tak, aby jej bylo možné zpomalit.
Poslední možností jak ovlivnit výsledek zpomalení je pak záložka „Weights“, kde můžete nastavit způsob, jakým bude KRONOS pracovat s jednotlivými barevnými složkami obrazu - tedy s RGB. Pro každou barvu můžete určit důležitost od nuly do sta procent, kdy se například rozhodnete, že namodralé objekty jsou nejdůležitější a nastavíte tedy nejvyšší hodnotu u Blue a naopak.
KRONOS dále umožňuje konkrétní nastavení rozmazání pohybu u pohybujících se objektů v obraze - tuto volbu můžete zapnout i vypnout, přičemž nastavujete „Shutter Samples“, tedy počet obrazů, jež jsou generovány mezi snímky v průběhu specifického „Shutter Angle“. Ten určuje otevření závěrky - při hodnotě 0 je zavřená, při hodnotě 180 otevřená napůl a při hodnotě 360 pak zcela otevřená. Při poslední hodnotě by pak byl veškerý pohyb rozmazaný.
V případě, že pracujete se složitějším záběrem, kde je obtížné automaticky detekovat pohybující se objekt v pozadí, můžete KRONOSu trochu pomoci využitím masky, kdy v daném časovém úseku vymaskujete pohybující se objekt, zadáte Precompose a v plug-inu zvolíte danou vrstvu jako „Matte Source“. Díky tomu se plug-in zaměří především na vymaskovaný objekt a lépe tak vytvoří iluzi zpomaleného pohybu.
A jaká je realita?
Přestože KRONOS samozřejmě zvládá i zrychlení videa, nejdůležitější bylo otestovat dokonalost zpomalení - tedy do jaké míry a jak uvěřitelně dokáže plug-in vygenerovat nové snímky pro plynulost zpomaleného pohybu. Musím bohužel říci, že výsledky rozhodně nejsou tak přesvědčivé, jak se snaží předvést ukázky na stránkách výrobce. Ještě je třeba podotknout, že při každém testu jsem se pokoušel vyhledat „ideální“ nastavení, tj. variovat zejména parametry v záložce „Tuning“, přesto se objevovala řada artefaktů a chyb snižujících realističnost obrazu.
Všimněte si chyb v zábradlí nalevo.
Postava byla původně rozmazaná a není možné ji pomocí Kronosu zpomalit.
Artefakty kolem tváře a artefakty kolem ruky napravo a nohou úplně nalevo.
Zapnuté zobrazení pohybových vektorů.
V první řadě je třeba zdůraznit, že algoritmus plug-inu KRONOS zdatně funguje a opravdu dokáže analyzovat po sobě jdoucí snímky a následně vygenerovat nový mezisnímek. Nese to však s sebou poměrně velké ALE! Zdrojové video by mělo být pokud možno zcela bez šumu, pohybující se objekty by se měly přesouvat před nepříliš složitým pozadím a zároveň jsem vypozoroval, že je mnohem lepší, když je i samotná kamera v pohybu, než pokud jde o klasický statický záběr. Významný problém také nastává v případě, kdy se v záběru vyskytují velmi rychlé objekty, které jsou už vzhledem ke svému nativnímu pohybu rozmazány. V tom případě se KRONOS takřka vůbec nechytá, sice dokáže vypočítat mezisnímek, ale ten se prakticky nedá použít.
Jaké artefakty se nejčastěji vyskytují? Přestože KRONOS dokáže navodit dojem realisticky zpomaleného objektu, řekněme postavy, má bohužel problém s okolím. Postava se pohybuje krásně zpomaleně, ale často to vypadá, jako by její okolí bylo podivně „tekuté“, jako by „ohýbala“ pozadí - výsledkem je záběr, který má blíže k morphingu než ke zpomalenému videu. Textový popis toho, co se s videem děje, nemůže přece jen vypovědět vše - částečně to spatříte na obrázcích okolo, pro opravdové zájemce jsem připravil několik srovnávacích videí, která si mohou stáhnout zde: video1, video2, video3, video4, video5.
Výsledek zpomalení je velmi individuální - někdy se stane, že budete zírat na úžasný pomalý pohyb, jindy však bude zcela zničen výše zmíněnými artefakty. Sice je pravda, že KRONOS může použít vymaskování objektu, aby byl pohyb realističtější, stojí to ale za tu námahu?
V úvodu jsem zmiňoval i možnost renderingu přímo na GPU, přičemž podle mých testů je změna naprosto zásadní. Třívteřinový náhled ve Full HD AVCHD v základním nastavení KRONOSu a při zpomalení na 30 % se přes GPU generoval 26,4 vteřiny, zatímco na CPU celé 2 minuty 5,5 vteřiny. Stejné tři vteřiny se pak při zvýšení „Smoothness“ na 80 % a „Vector Detail“ na 100 % na GPU generovaly 30,7 vteřiny, zatímco na CPU celé 2 minuty 59 vteřin. To je rozdíl natolik markantní, že využití GPU je naprosto namístě!
Závěr
KRONOS není drahý plug-in - za 100 USD získáte možnost nouzově zpomalit daný záběr s různými výsledky. Byl jsem jím ale hodně zklamán, některé záběry se ani po mnoha změnách nastavení prostě nedaly použít. Je rozhodně lepší při natáčení počítat se zpomalenými záběry, jejich výroba v postprodukci skrze KRONOS není příliš efektivní.
Petr Hamšík