2021-02-22

Příště to musím udělat napoprvé jako Pája!

Pokusy s dopočítáváním snímků u starých filmů pomocí DAIN APP mě přivedly k myšlence zkusit to na něčem hodně trhaném, kde by byl rozdíl patrnější, a napadl mě loutkový seriál Jája a Pája.

Samozřejmě to nešlo tak jednoduše, jak jsem si si v první chvíli představoval. Především se mi nepodařilo najít žádnou dostatečně kvalitní kopii, takže jsem se musel spokojit s rozlišením 720x576. Večerníček je točený na film, jsou na něm škrábance a třese se, takže jsem to alespoň trochu očistil, a pak narazil na hlavní technický problém, což je použitý způsob snímání animace.

Loutkové filmy snímané na film se kvůli úspoře práce tradičně šidí a místo 24 snímků za vteřinu, což je standard při promítání běžného 35mm filmu, mají pouze poloviční počet animačních fází čili 12 a každá animační fáze se ve stejné podobě opakuje na dvou filmových políčkách (2 * 12 = 24). Televize ovšem používá 25 nebo 50 snímků, čím samozřejmě vzniká problém s tím, jak z 24 snímků za vteřinu udělat 25 a přiznám se, že nevím jistě, jak to je řešeno konkrétně u seriálu Jája a Pája. (V úvahu připadá zrychlení "promítání", vkládání jedné kopie každého 24. políčka navíc nebo prolínačka.)

V každém případě bylo jasné, že není možné pouze vzít snímky z TV záznamu (25 FPS) a dopočítat k nim stejný počet mezifází, protože kvůli opakování stejných snímků po dvojicích by výsledkem byla sekvence, kde by se vždy třikrát opakoval stejný snímek a teprve čtvrtý snímek v řadě by obsahoval nějakou vypočítanou interpolaci a výsledná animace by tedy nebyla dostatečně plynulá. Je tedy nutné zdvojená políčka vynechat. Teoreticky by tedy mělo stačit použít pouze původní liché snímky a sudé snímky nahradit jedním (-> 25 FPS) nebo třemi novými (-> 50 FPS), jenomže praxe je samozřejmě trochu jiná. Za prvé se stává, že se pravidelné střídání poruší při střihu záběrů nebo vlivem provedené konverze 24->25, a za druhé v "akčních scénách" ;) s rychlejším pohybem se frekvence snímání večerníčku měnila na plnou rychlost, kdy se snímky neopakují. Vynecháním všech sudých snímků tedy nevyhnutelně přijdu o některá unikátní políčka a kvalita animace tím trochu utrpí.

Sekvence interpolovaná na 50 FPS z 12,5 FPS
Sekvence interpolovaná na 50 FPS z 25 FPS

V ideálním případě je potřeba vyhodit pouze nadbytečné kopie snímků a nahradit je dopočítanými interpolacemi, ale problém je, že DAIN ignoruje čísla políček a očekává, že frekvence snímků bude konstantní, takže není možné vynechat pouze něco. Korektní řešení tedy bylo nechat DAIN spočítat nejprve interpolace na dvojnásobnou frekvenci se všemi políčky, pak interpolace poloviny políček na čtyřnásobnou interpolaci a do výsledné sekvence zařadit některá políčka z metody A (v rychlých pasážích) a zbytek z metody B. Moc se mi do toho nechtělo, protože každý přepočet trvá několik hodin a nebyl jsem si jistý, jestli bude možné pomocí nějakého kritéria rozlišit unikátní a opakující se snímky ("prakticky stejný snímek" totiž samozřejmě není na bit stejný), ale nakonec jsem si nechal spočítat tabulku koeficientů rozdílů pomocí utility ImageMagick a nějak to podle ní zkombinoval. Kritérium samozřejmě nebylo úplně neprůstřelné (jako rychlejší se zbytečně detekovaly i sekvence, kde se nějak měnil nebo kolísal celkový jas, a naopak některé menší pohyby prošly bez povšimnutí), takže nakonec mě stejně neminuly i ruční opravy a přehazování některých snímků mezi pracovními adresáře.

Po zhlédnutí výsledku celého procesu si bohužel stále nejsem jistý, jestli to stojí za to. V některých pasážích odvedl DAIN perfektní práci (především tam, kde se jedná o pomalejší pohyby), ale jiné dopočítané snímky dopadly tragicky (především příliš rychlý pohyb, otáčení postav a samozřejmě místa, kdy někdo nebo něco mizí ze záběru). K dokonalosti by bylo třeba taková políčka opravit ručně a to se nebezpečně blíží natáčení celého seriálu znovu. =}

Možná si to můžeme znovu zkusit někdy za pět let a porovnat, o kolik se za tu dobu technologie vylepšily. Sám jsem zvědav, jak to bude vypadat.