autorem je Wotan, poradcem Hejty

Příběh restaurátora

aneb jak jsem se snažil vtáhnout Daicon IV do století ovocného netopýra

Úvod

Tento článek popisuje proceduru restaurování animovaného hudebního klipu Daicon IV pomocí programů Avisynth, VirtualDub, GoldWave a Avidemux.

Text je sice primárně popisem úprav uvedeného videa, ale obsahuje i informace, které se mohou hodit každému, kdo se zajímá o střih a obecně práci s videem.

Daicon IV

Pokud nevíte, co je Daicon IV, je na čase doplnit si své znalosti historie japonských animovaných hudebních klipů a podívat se například na přepis Hejtyho a mojí přednášky z Akiconu 2007, kde jsme tomuto videu věnovali pár slov.

Když jsme s Hejtym připravovali výše uvedenou přednášku, měli jsme celkem brzy jasno, že budeme chtít Daicon IV promítat, ale nalezení dobré kopie se ukázalo být naprosto nemožným úkolem. Nakonec se nám sešly dva úlovky. Jeden o rozlišení 512 x 384 pixelů, nekvalitní hudební i video stopou a rovnou dvěma logy pochybných televizních společností v obraze. Druhý v rozlišení 576 x 432 pixelů, zašumělým obrazem, bez jakýchkoliv log v obraze, ale s kazem v hudební stopě. V tu chvíli nám bylo jasné, že abychom mohli Daicon IV promítat na velkém plátně, musíme s ním něco udělat. Rozhodli jsme se, že vezmeme druhou verzi a pokusíme se ji upravit tak, abychom se za její promítání nemuseli stydět.

A tak jsem se, za mohutného Hejtyho povzbuzování, dal do restaurování.

Obraz

Hejty: Absolute Destiny je bůh!
Wotan: Hm.
Hejty: Četl jsi jeho článek o zpracování videa?
Wotan: Ne.
Hejty: Tak si ho přečti.
Wotan: Když jinak nedáš.
...
Hejty: Tak co?
Wotan: Absolute Destiny je bůh!

Hned na začátku je třeba upozornit, že veškeré znalosti použité pro restaurování video stopy jsem čerpal zde, a pokud umíte anglicky, doporučuji vám přečíst si spíše tento zdroj, protože je v něm uvedena spousta informací, které vám zamlčím, a zbytek opíšu.

Všechny úpravy videa byly dělány pomocí programu Avisynth, jehož zásluhou, jak se ukáže, nakonec byla celá procedura až trapně jednoduchá.

Vyhlazování (Smoothing)

Největším problémem původní verze Daiconu IV bylo velké zašumění obrazu, vzniklé pravděpodobně na videokazetě, z které bylo následně zkopírováno do počítače. Šum jsou bodové artefakty náhodně, často velmi hustě, rozmístěné po obraze. Zašumělý obraz je „špinavý“, jednolité barevné plochy ztrácejí svou výraznost, neboť jejich barevnost je rozbita, a celkově obraz vypadá, jako by byl zaprášený.

Pro eliminaci šumu se používají algoritmy zvané vyhlazovací filtry:

  • plošné – pracují v rámci jednoho snímku
  • časové – pro vyhlazení jednoho snímku používají informace ze snímku předešlého a následujícího

A jak to funguje? Velmi zjednodušeně řečeno, vyhlazovací filtry berou každý bod obrazu a podle pohledu do jeho okolí se snaží odhadnout, jakou že by vlastně měl mít barvu. Pokud to nechápete, třeba pomůže tohle. Pořád nic? A co tohle?

Vyhlazovacích filtrů pro Avisynth (a obecně) existuje celá řada, ale my se budeme věnovat jen jednomu jménem deen. Jedná se vlastně o soubor filtrů:

  • c2d – základní plošné vyhlazování
  • c3d – základní časové vyhlazování
  • a2d – plošné vyhlazování optimalizované pro jednolité barevné plochy typické pro anime
  • a3d – časové vyhlazování optimalizované pro jednolité barevné plochy typické pro anime
  • w2d – plošné vyhlazování vážené podle vzdálenosti pro zachování gradientů
  • w3d – časové vyhlazování vážené podle vzdálenosti pro zachování gradientů

Jak je asi patrno, pro nás jsou nejzajímavější filtry a2d a a3d. Zkoušel jsem obě dvě varianty a nakonec jsem dospěl k tomuto:

deen("a3d", 4, 25, 20)


Použil jsem tedy časové vyhlazování, kde hodnota 4 uvádí, z jak velkého okolí má algoritmus odhadovat barvu bodu (4 je nejvyšší možné číslo), a 25, 20 jsou hodnoty určující, jak moc se má vyhlazovat světelná (luma) a barevná (chroma) složka obrazu. Pokud se někdy rozhodnete deen filtr použít, připravte se, že strávíte nemalý čas upravováním těchto hodnot, než dospějete k rozumnému výsledku. Je třeba sledovat změnu na více snímcích, protože to, co vám přijde na jednom snímku dobré, může na jiném být nesnesitelné. K mnou uvedeným hodnotám jsem dospěl asi po 50 minutách experimentů.

Vnímavý čtenář si možná nyní uvědomí, že celá věc s vyhlazováním má jeden háček, nic není zadarmo, a tak za odstranění šumu zaplatíme ztrátou detailů a rozostřením.

Zaostření (Sharpening)

Nyní máme sice čisté, ale rozostřené video. K tomu, abychom obraz zvýraznili použijeme zaostřovací filtry, kterých je, stejně jako vyhlazovacích, celá řada. Zaostřovací filtry většinou fungují tak, že hledají v obraze ostré barevné přechody a ještě více je zvýrazňují. Někdy stačí použít jeden a výsledek je dostačující, většinou se však používá kombinace několika. Na Daicon IV jsem nakonec použil 4 různé zaostřovací filtry:

  • mftoon - geniální filtr určený přímo pro zaostřování animovaných videí; jeho jedinou nevýhodou je jeho pomalost, ale za váš čas se vám odmění neuvěřitelným výsledkem
  • LimitedSharpen – zaostřovací filtr používající fintu jménem supersampling (video je před zpracováním zvětšeno)
  • FastLineDarken – filtr, který není klasickým zaostřovačem, vyhledává tmavé linky a ještě více je ztmavuje
  • awarpsharp – filtr snažící se napravit přílišné zvýraznění tmavých linek

Všechny výše uvedené filtry mají tu výhodu, že odvedou vynikající práci bez změny defaultních parametrů, což znamená, že odpadá experimentování s nastavením hodnot. Jedinou změnu, kterou jsem provedl, bylo nastavení LimitedSharpen takto:

LimitedSharpen(ss_x=4.0, ss_y=4.0)


To znamená, že před zpracováním zvětší obraz 4-krát horizontálně i vertikálně, defaultně je obraz zvětšen pouze 2-krát.

V tuto chvíli již Daicon IV vypadal k světu, ale stále to nebylo ono. Chvíli jsme přemýšleli, čím to může být, až nám došlo, že to dělají vybledlé barvy.

Úprava barev

Dříve než se pustím do vysvětlování, chtěl bych upozornit, že hraní si s barvami je velmi nevděčná záležitost. Je třeba si uvědomit, že je skoro nemožné videu vrátit jeho původní barvy bez toho, abyste procházeli snímek po snímku a dobarvovali je jednotlivě.

S Hejtym jsme strávili několik hodin všelijakými pokusy se zvýrazňováním některých barev a potlačováním barev jiných, ale nakonec jsme se museli vzdát. Uvědomili jsme si, že vlastně nevíme, jak Daicon IV vypadal v den svého zrození, a netroufli jsme si to odhadovat. Nakonec jsme přeci jenom barvy trochu zvýraznili, ale vystačili jsme si s jednoduchým zvýšením saturace (sytosti) o 70%:

Tweak(sat=1.7)

Nyní jsem měl jasno, jaké filtry použít, a stačilo jimi prohnat celé video. Zpočátku byl můj počítač (AMD Athlon 64 3700+, 2GB RAM, Nvidia GeForce 7900 GTX) smělý a odhadl dobu zpracování na 2 hodiny, následně svůj odhad několikrát opravil a nakonec mu celý proces trval skoro přesně 6 hodin. To znamená, že průměrně strávil zpracováním jednoho snímku asi 1.25 minuty.

Závěrem bych chtěl podotknout, že výsledný obraz v žádném případě není dokonalý, zkušené oko velmi rychle postřehne, že se jedná o video, které se snažil někdo zrestaurovat, ale rozhodně je výsledek lepší než verze, kterou jsme měli v rukou původně.

Pro zájemce uvádím podobu Avisynth skriptu, který celou restauraci provedl:

#nacteni a konverze do YUV barevneho prostoru
in = KillAudio(AVISource("Daicon IV.avi"))
in = ConvertToYV12(in)
#restaurovani
smooth = deen(in, "a3d", 4, 25, 20)
sharp1 = mftoon(smooth)
sharp2 = LimitedSharpen(sharp1, ss_x=4.0, ss_y=4.0, Smode=2)
sharp3 = FastLineDarken(sharp2)
sharp4 = awarpsharp(sharp3)
tweak = Tweak(sharp4, cont=1.0, sat=1.7)
return tweak


Obraz tedy máme v použitelném stavu, takže hurá na zvuk.

Zvuk

Wotan: Člověče, on ten zvuk je snad zrychlený.
Hejty: Není možná.
Wotan: No fakt.
Hejty: Blbost, to by bylo poznat.
Wotan: Hmm, na tom něco je.
Hejty: Pusť na to Fouriera.
Wotan: Jdi mi někam s Fourierem.
Hejty: Tak co s tím teda?
Wotan: Asi to bude stopa z nějakého oficiálního klipu.
Hejty: A není to přeci jenom zrychlené?
Wotan: Ne, to bude určitě nějaká jiná verze té skladby, než mám.
Hejty: Zrovna jsem na AMV.org četl, že je to asi zrychlené.
Wotan: Ne ne, už mám tři verze, ale žádná nesedí, však já to najdu.
Hejty: Neblbni, to bude opravdu zrychlené.
Wotan: Člověče, on ten zvuk je fakt zrychlený.

Jak už jsem zmínil v úvodu, kopie Daicon IV, kterou jsme se rozhodli zrestaurovat, měla vadu ve zvukové stopě. Vada spočívala v tom, že v jednu chvíli na třetinu vteřiny kompletně vypadl zvuk. Možná si řeknete, že třetina vteřiny není moc, ale zkuste si uvědomit, co by se stalo, kdyby vypadl na třetinu vteřiny obraz. Naše video zobrazuje 30 snímků za vteřinu, čili byste přišli o celých 10 snímků, a to není málo.

Rozhodl jsem se tedy sehnat si kvalitní kopii skladeb Prolog a Twilight od skupiny Electric Light Orchestra a nahradit jimi audio stopu v naší verzi Daiconu IV. Banální úkol, stačí jen načasovat začátek a vše bude fungovat jak má.

Ještě bych podotkl, že ke všem úpravám zvuku jsem použil program GoldWave, a hned vám popíšu, jak strašlivě jsem se mýlil.

Poté, co jsem si sehnal kvalitní verzi skladeb použitých v Daiconu IV, začal jsem s časováním, což vyžadovalo následující kroky:

  • spojit dvě skladby do jedné
  • zjistit ve VirtualDubu co nejpřesněji, kdy v Daiconu IV začíná mluvení
  • odstřihnout ze začátku nové audio stopy tolik času, aby mluvení začínalo ve stejnou dobu jako v původní stopě
  • ve VirtualDubu přidat k nové verzi Daiconu IV novou audio stopu
  • zkontrolovat časování

Jak vidíte, nejedná se o žádnou složitou záležitost. Práce na čtvrt hodiny. Jaké však bylo moje rozčarování, když jsem zjistil, že prvních asi 20 vteřin se video jakž takž drží audio stopy, ale po minutě už je naprosto mimo. To mohlo mít dva důvody:

  • použil jsem špatnou verzi skladeb
  • autoři Daiconu IV si pohráli s rychlostí skladeb

Nejdříve jsem byl nakloněn prvnímu důvodu, ale s Hejtym jsme se shodli na tom, že by to přeci bylo jasně poznat z poslechu stopy z Daiconu IV a mnou stažené verze. Začal jsem tedy shánět různé verze uvedených skladeb od ELO, ale všechny si byly více méně podobné. Nakonec jsem se tedy, po Hejtyho upozornění na komentář k jednomu AMV, přiklonil zpět k myšlence, že autoři Daiconu IV změnili rychlost skladby.

Změna rychlosti

Podle toho, že moje verze audio stopy byla delší než ta původní, usoudil jsem, že musím zrychlovat. Naprosto jsem netušil o kolik, a tak jsem si určil rozmezí 3-7 %, které jsem procházel metodou půlení intervalu. To znamená, že jsem nejdříve zrychlil video o 5%, provedl jsem poslední tři z výše uvedených kroků a zkoumal jsem, zda je to dostačující. Zjistil jsem, že 5% je moc a tak jsem zkusil 4%. Po asi 10 opakováních jsem dospěl k hodnotě 3.1476%.

Jak jsem zjišťoval, zda už je načasování správné? Našel jsem si asi 5 míst ve videu, kde bylo zřejmé, že obraz reaguje na hudbu (střih, úder postavy, východ slunce) a ty jsem sledoval.

Jak jsem zrychloval? Většina audio editačních nástrojů poskytuje fukci pro změnu rychlosti přehrávání, takzvaného playback rate. Playback rate určuje rychlost jakou jsou přehrávána zvuková data a uvádí se v hertzích (Hz). Běžná hodnota je 44100 Hz. Změníme-li playback rate, změníme i rychlost, jakou jsou data přehrávána. V mém případě jsem provedl změnu z 44100 Hz na 45500 Hz.

A jako u vyhlazování obrazu i zde platí, že nic není zadarmo. Zvýšíme-li rychlost přehrávání zvukových dat, změní se i zvuk celé skladby. 3% ještě nejsou tolik znát, ale 10 % už změní skladbu velmi citelně.

Střih

Změnou rychlosti jsem sice dosáhl toho, že video bylo správně načasované, ale audio stopa byla stále asi o 20 vteřin delší. Nasnadě tedy byla myšlenka, že autoři nejen že audio stopu zrychlili, ale také z ní nějakou část vystřihli. Jednoduchým naposloucháním původní a nové stopy jsem určil, které části byly vystřiženy, a zbývalo je tedy z mojí stopy odstranit.

Vždy, když se střihá audio stopa tak, aby to nebylo poznat, dělá se to v místech, která se dobře navazují. To znamená, že je třeba vybrat kus, jehož začátek i konec jsou více méně totožné (například, jeden opakující se refrén, nebo celá sloka mezi dvěma refrény). Pokud vyberete správné místo, je navázání otázkou 2-5 jemných doladění a máte hotovo. V Daiconu IV se naštěstí autoři řídili touto poučkou, takže vystřižení jimi odebraných částí z mojí stopy bylo triviální.

Nyní už jsme měli všechny úpravy za sebou a stačilo jen výsledné video zkomprimovat pomocí nějakého vhodného kodeku.

Kódování

Rozhodli jsme se jít s dobou a vybrali jsme tuto kombinaci:

  • kontejner: OGM
  • video kodek: x264
  • audio kodek: ogg vorbis

Pokud vám to nic neříká, podívejte se sem. Pro úplnost jen dodám, že výsledné kódování jsem provedl v programu Avidemux, který je, podle mého mínění, jedním z nejlepších enkódovacích nástrojů současnosti.

Závěr

Celý proces úprav zabral přibližně 7 večerů. Nebýt slepých uliček v ladění barev a hledání neexistující verze audio stopy, myslím, že se celá věc dala zvládnout za dva večery.

Výsledek našeho snažení jste mohli buď vidět na Akiconu 2007 na velkém plátně (věřte, že pro nás to byl hodně intenzivní zážitek), nebo si ho můžete stáhnou zde.