14.2. Jak naložit s telecine a prokladem v NTSC DVD

14.2.1. Představení

Co je to telecine?  Pokud moc nerozumíte tomu, co je napsáno v tomto dokumentu, přečtěte si článek na Wikipedii. Je to srozumitelný a rozumně vyčerpávající popis co je to telecine.

Poznámka k číslům.  Mnoho dokumentů, včetně výše odkazované příručky, udává hodnotu půlsnímků za sekundu NTSC videa jako 59.94 a odpovídající snímky za sekundu jako 29.97 (pro telecinované a prokládané video) a 23.976 (pro neprokládané). Pro jednoduchost některé dokumenty zaokrouhlují tyto hodnoty na 60, 30 a 24.

Přesně řečeno jsou všechna tato čísla přibližná. Černobílé NTSC video mělo přesně 60 půlsnímků za sekundu, ale později byla zvolena hodnota 60000/1001, aby bylo možné přidat barevná data a zůstat kompatibilní se starými černobílými televizemi. Digitální NTSC (např. na DVD) má rovněž rychlost 60000/1001 půlsnímků za sekundu. Z toho vyplývá, že prokládané a telecinované video má 30000/1001 snímků za sekundu; neprokládané video má 24000/1001 snímků za sekundu.

Starší verze dokumentace MEncoderu a mnoho zpráv v archivu konference hovoří o 59.94, 29.97 a 23.976. Všechna dokumentace MEncoderu byla aktualizována a používá zlomkových hodnot. Vy byste je měli používat také.

-ofps 23.976 je nesprávně. Místo toho byste měli použít -ofps 24000/1001.

Jak je používáno telecine.  Veškeré video určené k zobrazení na NTSC televizi musí mít 60000/1001 půlsnímků za sekundu. Filmy vyráběné pro televizi jsou často natáčeny přímo ve 60000/1001 půlsnímcích za sekundu, ale většina filmů do kin je natáčena při 24 nebo 24000/1001 snímcích za sekundu. Když je film přepisován na DVD, je video upraveno pro televizi v procesu zvaném telecine.

Na DVD není video ve skutečnosti nikdy uloženo v 60000/1001 půlsnímcích za sekundu. Video jež bylo původně 60000/1001, bude mít každý pár půlsnímků zkombinován do podoby snímku s rychlostí 30000/1001 snímků za sekundu. Hardwarové DVD přehrávače pak čtou příznak, zabudovaný ve video proudu, který udává jestli první půlsnímek tvoří liché nebo sudé řádky.

Obsah ve 24000/1001 snímcích za sekundu obvykle zůstává tak jak byl v době přepisu na DVD a DVD přehrávač musí provést telecine za letu. Někdy je však video telecinováno před uložením na DVD; dokonce i když mělo původně 24000/1001 snímků za sekundu, bude mít 60000/1001 půlsnímků za sekundu. Pokud je uložen na DVD, páry půlsnímků jsou zkombinovány do formy 30000/1001 snímků za sekundu.

Když se podíváme na jednotlivé snímky vzniklé z videa o 60000/1001 půlsnímcích za sekundu, telecinovaného nebo ne, je zřetelně vidět toto prokládání jakmile je zde nějaký pohyb, jelikož jeden půlsnímek (řekněme liché řádky) reprezentuje časový okamžik o 1/(60000/1001) sekundy pozdější než ten druhý. Přehrávání prokládaného videa na počítači vypadá škaredě jak proto, že monitor má vyšší rozlišení, ale i proto, že video je zobrazováno snímek po snímku místo půlsnímek po půlsnímku.

Poznámky:

  • Tento odstavec platí pouze pro NTSC DVD, nikoli PAL.

  • Řádky s příklady spuštění MEncoderu v dokumentu nejsou určeny pro opravdové použití. Obsahují pouze nutné minimum vyžadované pro enkódování příslušné ke kategorii videa. Jak dělat dobré DVD ripy nebo doladit libavcodec pro maximální kvalitu není v záběru tohoto dokumentu.

  • Poznámky pod čarou příslušné pro tuto příručku jsou linkovány takto: [1]

14.2.2. Jak zjistit o jaký typ videa se jedná

14.2.2.1. Progresivní (neprokládané)

Progresivní video je původně natočeno při 24000/1001 snímcích za sekundu a uloženo na DVD beze změn.

Když přehrajete progresivní DVD v MPlayeru, MPlayer vypíše následující řádek jakmile začne přehrávat:

demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.

Od tohoto okamžiku by demux_mpg neměl nikdy říct že našel "30000/1001 fps NTSC obsah"

Když sledujete progresivní video, neměli byste nikdy vidět žádný proklad. Dejte si ale pozor, jelikož je občas trošku telecine namixováno tam, kde byste to vůbec nečekali. Setkal jsem se s TV show na DVD, které měly sekundu telecine při každé změně scény nebo na zcela náhodných místech. Jednou jsem se díval na DVD, které bylo do půlky progresivní a od půlky telecinováno. Pokud chcete být opravdu důkladní, můžete oskenovat celý film:

mplayer dvd://1 -nosound -vo null -benchmark

Použití volby -benchmark nechá MPlayer přehrát film tak rychle, jak je to jen možné; stejně to ale, podle výkonu hardware, chvíli potrvá. Vždy, když demux_mpg ohlásí změnu snímkové rychlosti, řádek těsně nad hlášením ukáže čas ve kterém ke změně došlo.

Občas je progresivní video na DVD označeno jako "soft-telecine" protože je zamýšleno, aby telecine provedl DVD přehrávač.

14.2.2.2. Telecinováno (přepsáno pro NTSC televizi)

Telecinované video bylo původně natočeno při 24000/1001, ale bylo telecinováno před zápisem na DVD.

MPlayer (nikdy) nehlásí žádnou změnu snímkové rychlosti, když přehrává telecinované video.

Při sledování telecinovaného videa uvidíte prokladové artefakty, které jako by "blikaly": opakovaně mizí a objevují se. Blíže se na to můžete podívat:

  1. mplayer dvd://1
  2. Převiňte na část s pohybem.

  3. Použijte klávesu . pro krokování po jednom snímku.

  4. Sledujte vzor prokládaně vypadajících a progresivně vypadajících snímků. Pokud je vzor, který sledujete PPPII,PPPII,PPPII,..., pak je video telecinováno. Pokud vidíte jiný vzor, pak mohlo být video telecinováno použitím nějaké nestandardní metody; MEncoder neumí bezztrátově převést nestandardní telecine do progresivního. Pokud nevidíte žádný vzor, pak je video nejspíš prokládané.

Někdy je telecinované video na DVD označeno jako "hard-telecine". Jelikož hard-telecine již je ve 60000/1001 půlsnímcích za sekundu, DVD přehrávač přehraje video bez jakýchkoli manipulací.

Dalším způsobem jak zjistíte, že je váš zdroj telecinován, je přehrát jej s volbami -vf pullup a -v a uvidíte, jak pullup nachází vzor. Pokud je zdroj telecinován, mělibyste vidět na konzoli vzor 3:2 s opakujícím se 0+.1.+2 a 0++1. Tato technika má tu výhodu, že nemusíte sledovat zdroj, abyste jej identifikovali, což se může hodit, pokud chcete automatizovat enkódovací proceduru, nebo ji provést vzdáleně přes pomalou linku.

14.2.2.3. Prokládané

Prokládané video bylo od samého začátku filmováno při 60000/1001 půlsnímcích za sekundu a uloženo na DVD ve 30000/1001 snímcích za sekundu. Efekt prokládání (často označovaný jako "roztřepení") je výsledkem skládání půlsnímků do snímků. Vzdálenost mezi půlsnímky má být 1/(60000/1001) sekundy a proto když jsou zobrazeny současně, je rozdíl jasně patrný.

Stejně jako u telecinovaného videa by MPlayer neměl hlásit jakékoli změny snímkové rychlosti při přehrávání prokládaného obsahu.

Když si prohlédnete video blíže pomocí krokování snímků pomocí klávesy ., uvidíte, že každý jednotlivý snímek je prokládaný.

14.2.2.4. Smíšené progresivní a telecinované

Veškerý obsah "smíšeného progresivního a telecinovaného" videa měl původně 24000/1001 snímků za sekundu, ale některé části prošly telecine.

Když MPlayer přehrává tuto kategorii, bude (častoi opakovaně) přepínat mezi "30000/1001 snímky/s NTSC" a "24000/1001 snímky/s progresivním NTSC". Sledujte spodek MPlayerova výstupu, abyste zachytili tyto zprávy.

Měli byste prověřit části se "30000/1001 snímky/s NTSC", abyste měli jistotu, že jsou skutečně telecinovány a ne jen prokládané.

14.2.2.5. Smíšené progresivní a prokládané

Ve "smíšeném progresivním a prokládaném" obsahu bylo progresivní a prokládané video splácáno dohromady.

Tato kategorie vypadá jako "smíšené progresivní a telecine", dokud si neprohlédnete části se 30000/1001 snímky/s a neuvidíte, že nemají telecine vzor.

14.2.3. Jak enkódovat jednotlivé kategorie

Jak jsem se zmínil na začátku, příklady příkazových řádků MEncoderu níže nejsou určeny pro praktické použití; pouze demonstrují, minimum voleb nutných k tomu, abyste správně enkódovali každou kategorii.

14.2.3.1. Progresivní

Progresivní video nevyžaduje žádné speciální filtrování pro enkódování. Jediná volba, která by určitě neměla chybět je -ofps 24000/1001. Jinak se MEncoder pokusí enkódovat při 30000/1001 snímcích/s a bude opakovat snímky.

mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001

Často se stává, že video, které vypadá progresivně, má v sobě zamíchány kratičké telecinované části. Pokud si nejste jisti, je nejbezpečnější považovat video za smíšené progresivní a telecinované. Ztráta výkonu je jen malá [3].

14.2.3.2. Telecinované

Telecine lze obrátit a dostat tak původní 24000/1001 obsah, za použití metody zvané inverzní telecine. MPlayer má několik filtrů právě pro tuto činnost; nejlepší z těchto filtrů, pullup, je popsán v části smíšené progresivní a telecinované.

14.2.3.3. Prokládané

V praxi není většinou možné dostat kompletní progresivní video z prokládaného obsahu. Jediný způsob jak to udělat bez ztráty poloviny svislého rozlišení je zdvojením snímkové rychlosti a zkusit "odhadnout" co mám provést s odpovídajícími linkami každého z půlsnímků (má to ovšem i nevýhody – viz metoda 3).

  1. Enkódujte video v prokládané formě. Obvykle prokládání způsobí těžkou újmu schopnosti enkodéru dobře komprimovat, ale libavcodec má dvě volby určené právě pro lepší ukládání prokládaného videa: ildct a ilme. Rovněž velmi doporučujeme použití volby mbd=2 [2] protože bude enkódovat makrobloky jako neprokládané tam, kde není žádný pohyb. Volba -ofps zde není nutná.

    mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2

  2. Použijte filtr odstraňující proklad před enkódováním. Je jich zde několik, můžete si vybrat. Každý z nich má svá pro i proti. Prohlédněte si výstup mplayer -pphelp a mplayer -vf help abyste zjistili, které jsou k dispozici (grep pro "deint"), přečtěte si Deinterlacing filters comparison od Michaela Niedermayera a vyhledejte e-mailové konference MPlayeru, kde naleznete mnoho diskusí o různých filtrech. Snímková rychlost se ani zde nemění, takže žádné -ofps. Odstranění proklady by rovněž mělo být provedeno po ořezání [1], ale před škálováním.

    mencoder dvd://1 -oac copy -vf yadif -ovc lavc

  3. Naneštěstí je tato volba vadná v MEncoderu; měla by dobře pracovat v MEncoder G2, ale ten tu zatím není. Stejně je určením -vf tfields vytvoření kompletního snímku z každého půlsnímku, což zvýší snímkovou rychlost na 60000/1001. Výhoda tohoto přístupu je v tom, že nepřijdete o žádná data; Protože však každý snímek pochází jen z jediného půlsnímku, musí být chybějící linky nějak dopočítány. Neexistuje mnoho dobrých metod, generujících chybějící data, takže výsledek bude trochu podobný tomu, když se použije některý filtr odstraňující proklad. Generováním chybějících linek vznikají další problémy tím, že se zdvojnásobí množství dat. Takže jsou potřeba vyšší datové toky pro enkódování, aby byla zachována kvalita a spotřebuje se více výkonu CPU jak pro enkódování, tak pro dekódování. tfields má několik různých voleb pro volbu způsobu generování chybějících linek. Pokud použijete tuto možnost, prostudujte si manuál a zvolte si volbu, která s vaším materiálem vypadá nejlépe. Poznamenejme, že při použití tfields musíte nastavit -fps a -ofps na dvojnásobek snímkové rychlosti originálu.

    mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc \
        -fps 60000/1001 -ofps 60000/1001

  4. Pokud plánujete výrazné zmenšování, můžete extrahovat a enkódovat jen jeden z půlsnímků. Samozřejmě přijdete o polovinu svislého rozlišení, ale pokud plánujete zmenšení ideálně na 1/2 originální velikosti, nebude na této ztrátě vůbec záležet. Výsledek bude progresivní soubor s 30000/1001 snímky za sekundu. Celý postup spočívá v použití -vf field a následném ořezu [1] a příslušném škálování. Pamatujte, že musíte nastavit scale tak, aby kompenzoval zmenšení svislého rozměru na polovinu.

    mencoder dvd://1 -oac copy -vf field=0 -ovc lavc

14.2.3.4. Smíšené progresivní a telecinované

Abychom převedli smíšené progresivní a telecinované video zcela na progresivní video, musí být telecinované části inverzně telecinovány. K tomu lze dospět třemi postupy popsanými níže. Poznamenejme, že byste měli vždy provést inverzní telecine před jakýmkoliv škálováním; a v případě, že přesně nevíte co děláte, také před ořezáním [1]. Volba -ofps 24000/1001 je vyžadována, protože výstupní video bude mít 24000/1001 snímků za sekundu.

  • -vf pullup je navržen tak, aby inverzně telecinoval, ale progresivní data nechával jak jsou. Pro správnou funkci musí být pullup následován filtrem softskip, jinak MEncoder zhavaruje. pullup je však nejčistší a nejpřesnější dostupnou metodou pro enkódování jak telecinovaného, tak "smíšeného progresivního a telecinovaného".

    mencoder dvd://1 -oac copy -vf pullup,softskip 
        -ovc lavc -ofps 24000/1001

  • Starší metodou je, spíše než inverzně telecinovat telecinované části, telecinovat progresivní části a poté inverzně telecinovat celé video. Zní to zmateně? softpulldown je filtr, který projde celé video a převede celý soubor na telecinovaný. Pokud budeme následovat softpulldown buď detc nebo ivtc, bude konečný výsledek zcela progresivní. Nutná je volba -ofps 24000/1001.

    mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001
      

  • Osobně jsem nepoužil -vf filmdint, ale toto o něm (přibližně) řekl D Richard Felker III:

    Je to OK, ale IMO to zkouší až příliš často odstraňovat proklad místo provádění inverzního telecine (stejně jako settop DVD přehrávače & progresivní televize) což vede ke škaredému třepotání a dalším artefaktům. Pokud jej chcete používat, měli byste předtím alespoň trochu času věnovat ladění voleb a sledováním výstupu, abyste měli jistotu, že vám to něco nekazí.

14.2.3.5. Smíšené progresivní a prokládané

Máme dvě volby pro práci s touto kategorií, obě jsou však kompromisem. Měli byste se rozhodnout podle trvání/umístění každého typu.

  • Považujte to za progresivní. Prokládané části budou vypadat prokládaně a některé z prokládaných políček bude muset být zahozeno, což povede k nestejnoměrnému poskakování. Můžete proti tomu nasadit postprocesní filtr, pokud chcete, ale tím mírně degradujete progresivní části.

    Této volbě byste se měli rozhodně vyhnout, pokud chcete nakonec zobrazovat video na zobrazovači s prokládaným obrazem (přes TV kartu například). Pokud máte prokládané snímky ve videu s rychlostí 24000/1001 snímků za sekundu, budou telecinovány spolu s progresivními snímky. Polovina prokládaných "snímků" bude zobrazena po dobu trvání třech snímků (3/(60000/1001) sekund), což povede k poskakování. Efekt "cukání zpět" vypadá skutečně zle. Pokud se o to přece pokusíte, musíte použít filtr odstraňující proklad, jako je lb nebo l5.

    Špatnou volbou je to i pro progresivní zobrazovač. Ten zahodí páry po sobě jdoucích snímků, což povede k přerušování, které může být více viditelné, než při druhé metodě, která zobrazuje některé progresivní snímky dvakrát. Prokládané video se 30000/1001 snímky za sekundu je totiž poněkud trhané, protože by ve skutečnosti mělo být promítáno při 60000/1001 půlsnímcích za sekundu, takže zdvojení některých snímků není tak moc vidět.

    V každém případě je nejlepší posoudit obsah a způsob, jakým bude zobrazován. Pokud je vaše video z 90% progresivní a nikdy jej nebudete pouštět na televizi, měli byste volit progresivní přístup. Pokud je progresívní jen z poloviny, pravděpodobně jej bude lepší enkódovat jako by bylo celé prokládané.

  • Pokládat jej za prokládané. Některé snímky v progresivních částech budou muset být duplikovány, což povede k nepravidelnému poskakování. Opět platí, že filtry pro odstranění prokladu mohou poněkud degradovat progresivní části.

14.2.4. Poznámky pod čarou

  1. K ořezu:  Video data na DVD jsou ukládána ve formátu zvaném YUV 4:2:0. V YUV videu jsou, jasová ("černobílá"; angl. luma) a barvonosná (angl. chroma) složka ukládány odděleně. Protože je lidské oko méně citlivé na změnu barvy, než na jas, připadá v YUV 4:2:0 obrázku pouze jeden barvonosný pixel na každé čtyři jasové pixely. V progresivním obrázku má každý čtverec 2x2 jasových pixelů právě jeden barvonosný pixel. Proto musíte ořezávat progresivní YUV 4:2:0 na sudé rozměry a používat sudé odsazení (offsety). Například crop=716:380:2:26 je OK, ale crop=716:380:3:26 není.

    Když máte co do činění s prokládaným YUV 4:2:0, je situace mnohem komplikovanější. Místo každých čtyřech pixelů ve snímku sdílejících barvonosný pixel, každé čtyři jasové pixely v každém půlsnímku sdílejí barvonosný pixel. Když jsou půlsnímky proloženy do snímku, každá linka má výšku jeden pixel. A nyní místo aby dané čtyři pixely tvořily čtverec, jsou první dva vedle sebe a druhé dva jsou vedle sebe o dvě linky níž. Dva pixely těsně pod nimi patří do jiného půlsnímku a proto sdílí jiný barvonosný pixel se dvěma jasovými pixely o dva řádky níž. Všechno tohle nás nutí mít svislé rozměry ořezání a odsazení bezezbytku dělitelné čtyřmi. Vodorovné stačí když budou sudé.

    Pro telecinované video doporučuji, abyste ořezání prováděli až po inverzi telecine. Jakmile je video progresivní, stačí řezat jen na sudé rozměry. Pokud si však přece jen chcete dopřát mírné zrychlení, které může poskytnout časný ořez, musíte svisle dodržet násobky čtyřech, jinak nebude mít filtr pro inverzi telecine správná data.

    Prokládané (nikoli telecinované) video musíte vždy ořezávat svisle násobky čtyř, pokud před ořezáním nepoužijete -vf field.

  2. K volbám pro enkódování a kvalitě:  Jen proto, že doporučuji mbd=2 zde neznamená, že by tato volba nemohla být použita jinde. V kombinaci s trell, je mbd=2 jednou ze dvou voleb libavcodecu, které nejvíce zvyšují kvalitu a vy byste měli vždy použít alespoň tyto dvě, pokud není na škodu zpomalení rychlosti enkódování (např. při enkódování v reálném čase). Mnoho dalších voleb libavcodecu zvyšuje kvalitu enkódování (a snižuje jeho rychlost), ale to je mimo zaměření tohoto textu.

  3. K výkonu filtru pullup:  Použití pullup je bezpečné (spolu se softskip ) na progresivní video a je to obvykle dobrá volba, pokud nebyl zdroj prověřen, že je celý progresivní. Ve většině případů je ztráta výkonu malá. V ojedinělých případech enkódování způsobí pullup, že je MEncoder o 50% pomalejší. Přidání zpracování zvuku a pokročilých lavcopts zastíní tento rozdíl tak, že rozdíl v rychlosti působený použitím pullup se sníží na 2%.