Teorie digitálního videa

Určitě jste se už setkali s videem na PC. A je taky dost možné, že jste s ním už měli i své problémy. Ať už při střihu, konverzi nebo při přehrávání. Pro ty, co této problematice zase tak nerozumí, by snad mohl posloužit tento článek. Pokusím se začít úplně od začátku. Možná budu i o něčem nejdřív lhát, aby to bylo jednoduší na pochopení, ale časem snad vše objasním. Ještě než začnu, tak bych chtěl upozornit, že se budeme pohybovat pouze na operačním systém Windows. S jinými systémy bohužel nemám moc zkušeností a mohlo by to tam být trochu jinak.

Soubory na PC, přehrávání z internetu

Nejčastěji se s videem na počítači můžete setkat ve formě souborů na svém disku nebo CD nebo DVD. Další možnost je, že se na video díváme rovnou z internetu. V tomto případě se dá video spustit ještě před tím, než je celé v našem počítači načteno. Nejdřív se stáhne kousek a na ten se pak začneme dívat. Během tohoto dívání se stahuje zbytek. Někdy se ale může stát, že nemáme dost rychlé připojení. Nebo spíš, rychlost našeho připojení na internet je menší než datový tok videa. V tomto případě se musí do našeho počítače uložit více dat ještě před tím, než se začneme dívat.

Kontejnery

Pokud se budeme bavit o souborech, tak video soubor v podstatě obsahuje obraz, zvuk a někdy i titulky a další dodatečné věci, jako je třeba menu nebo informace o tom, kdy začíná která kapitola. Těmto jednotlivým druhům dat v souboru se říká streamy. Není podmínkou, aby bylo jedno video v jednom souboru. Můžeme ho mít rozdělené do více. Soubor je v podstatě kontejner pro jednotlivé složky (streamy) celého videa. Ne vždy ale můžeme mít v jednom souboru všechny zmíněné věci. Záleží na typu kontejneru. Nejpoužívanější je AVI. Také se používá MPEG, VOB, MOV, MKV, MP4 a další. Rozdíly mezi kontejnery ale nejsou jenom v tom, co všechno můžou obsahovat, ale jakého to může být typu.

Framerate

Než se ale pustím do záležitosti, kterou jsem nakousnul, zmínil bych něco málo o videu. Video je v podstatě mnoho obrázku, které jsou promítány po sobě. Každý je vidět jen zlomek sekundy. Někdy se používá 25 snímků za sekundu, někdy 30. Tomu, kolik snímků se za sekundu zobrazí, se říká snímková frekvence neboli framerate. Udává se v fps (frames per second - snímků za sekundu). Toto rychlé promítání nehybných obrázků tedy vytváří iluzi pohybu. Pokud máme framerate malý, je video "trhané". Pokud je příliš vysoký, je to zbytečné a roste tím i velikost celého videa a také nároky na hardware počítače. V Evropě (norma PAL) se nejčastěji používá 25 fps. V USA a Japonsku (norma NTSC) 29.97 fps.

Rozlišení

Pojďme se na to podívat ještě podrobněji. Video se tedy skládá z jednotlivých snímků, ale i snímky se skládají z něčeho. Každý snímek je tvořen mnoha body. Každý tento bod má určitou barvu. Pokud se na těchto spoustu bodů podíváme z dálky, body nám splynou a vznikne smysluplný obraz na kterém rozeznáváme objekty. Nevidíme jen nějaké barevné body, jako je tomu při pohledu z blízka. U videa se často používá (hlavně u DVD videa) 720 bodů na šířku a 576 bodů na výšku, ale bývá to i jinak. Těmto rozměrům se říká rozlišení. Máme tedy rozměr 720x576 bodů. Někdy se říká pixelů.

Aspect ratio

Řekněme, že máme dvě videa. Jedno má rozlišení 640x480 pixelů a druhé 800x600. Co mají tato videa společné? Je to aspect ratio neboli poměr stran. Obě mají poměr 4:3. Jedná se o typický poměr stran používaný u neširokoúhlého obrazu. Další, hodně využívaný, je 16:9. Ten už je širokoúhlejší. Už jsem zmínil, že u DVD se často používá rozlišení 720x576 bodů při poměru 4:3. Když si tyto rozměry přepočteme, zjistíme, že poměr není 4:3, ale 4:3,2. Přesto se zobrazuje jinak. Je to dáno tím, že jeden pixel nemusí být vždy čtvercový, i když tomu tak často je. Hovoříme zde o pojmu pixel aspect ratio.

Barevná hloubka

Když se podíváme ještě podrobněji, až k barvě jednotlivých bodů, zjistíme, že počet těchto barev je také limitován. Většinou se používá přibližně 16,7 miliónů různých barev. Ve dvojkové soustavě potřebujeme 24 jedniček nebo nul na to, abychom toto číslo zapsali. Proto se říká, že je obraz ve 24 bitových barvách. 8 bitů pro červenou (Red), 8 pro zelenou (Green) a 8 pro modrou (Blue) barvu se používá u RGB zápisu. Potřeba jsou tedy 3 bajty (1 bajt je 8 bitů).

Bitrate

Pojďme si započítat dál. Když máme 720x576 (414 720) bodů a každý má 3 bajty, je to už asi 1,2 MB na jeden snímek. Tedy asi 30 MB na sekundu záznamu videa (bez zvuku). Tomu, kolik má video dat na jednu sekundu se říká datový tok (bitrate). Udává se v bitech (nikoli bajtech) za sekudnu. Nejčastěji kb za sekundu, tedy kbps (kilo bits per second). V našem případě by to bylo 243 000 kbps. Počítáme-li dál, zjistíme, že 2 hodiny videa by měly asi 208,5 GB. Není to trochu moc? Určitě je. DVD má skoro 4,4 GB a to nepočítám CD se 700 MB. Jak tedy video zmenšit?

Komprimace

Na řadu přichází komprimace. Ta může být buď bezztrátová (po následné dekomprimaci dostaneme přesně to, co jsme měli před komprimací) a nebo ztrátová. Používanější je v tomto případě víc ta ztrátová, protože se s ní dosáhne o mnoho menších souborů, které jsou někdy lidskému oku k nerozeznání od originálu. A velikost už není 208,5 GB, ale třeba jenom těch 4,4 nebo i méně.

Jak taková komprimace funguje? Jedná se často o dost složitou operaci. Uvedu zde jen základy. První věc je komprimace snímků samostatně. Jeden ze základních mechanismů, který se používá nejen u videa, ale i u statických obrázků (např. JPEG), je chroma subsampling. Zde se nepoužívá barevný prostor RGB (červená-zelená-modrá), ale jiný, kde jedna složka videa reprezentuje jas, na který je lidský zrak nejcitlivější, a další dvě složky videa reprezentují barvy. Tyto barevné složky jsou poté ukládány s menším rozlišením, než jasová. Na podobném principu fungují i pokročilejší komprimační mechanismy. Dochází zde k určitým ztrátám (zaokrouhlením) v těch místech obrazu a u těch barev, kde to lidský zrak nejméně pozná.

Pokud se podíváme i na ostatní snímky, zjistíme, že některé jsou velmi podobné. Zejména u statických scén. Neukládáme tedy celé snímky, ale pouze jeden (klíčový) a potom jen změny oproti němu. Dále, když se nějaký objekt pohybuje po obraze, tak se zaznamenává místo kam se přesunul, k čemuž je třeba mnohem méně dat než kdybychom ukládali celý nový snímek, kde je stejný objekt na jiném místě.

Formáty videa

Jistě záleží i na dalších věcech, díky nimž se velikost videa zmenší. Používají se různé metody k různým účelům a s různými výsledky kvality. Tímto se dostávám k tomu, co jsem výš už načal. Tedy typy videa. Pojďme si některé z nich přiblížit.

MPEG-1 - Jedná se o hodně starý formát. V současnosti se používá zejména k přenosu krátkých nekvalitních videí po internetu. Používal se také u "Video CD". Kvalita je špatná. Doporučuji tento formát nepoužívat vůbec. Jsou tu lepší.

MPEG-2 - Formát používaný hlavně pro videa ukládaná na DVD. Je kvalitní, ale až při vyšším datovém toku (cca 5 000 - 10 000 kbps).

MPEG-4 - Jeden z nejúčinnějších formátů. Princip tohoto formátů využívá hodně známých algoritmů (kodeků) pro komprimaci a dekomprimaci videa. Jedná se např. o DivX, XviD, 3ivX nebo Nero Digital. Pravděpodobně nejlepším je ale H.264, který se teprve pomalu rozšiřuje. Kvalitního videa dosáhneme třeba i s 800 kbps. A s tímto se už dostaneme s celým filmem na jedno CD.

WMV - Formát od firmy Microsoft. Založený je na podobné principu jako MPEG-4, jenže s ním není kompatibilní. Také nedosahuje takové kvality při stejném datovém toku.

MJPEG - Jedná se o formát, kde jsou zkomprimovány jednotlivé snímky samostatně pomocí metody JPEG. Mezi snímky není žádný vztah tak jako tomu bylo u předešlých formátů. Je tedy velmi vhodný pro stříhání a kvalita může být velmi vysoká. Problém je ale v datovém toku. Ten je okolo 20 - 30 Mbps. Formát je méně náročný i na výkon procesoru při kompresi a dekompresi než jak je tomu u předešlých.

DV - Velmi podobný jako MJPEG. Využívá se hojně u digitálních kamer. Důvod je zmíněn výš. Vysoká kvalita a bezproblémový střih. Člověk něco natočí, v dobré kvalitě sestříhá a pak až určí, na co výsledek převede - kvalitní video pro DVD nebo třeba méně kvalitní pro internet. Pokud by se video mělo u digitálních kamer hned komprimovat třeba do formátu MPEG-4, bylo by to náročnější na zpracování a kamera by byla i dražší.

HuffYUV - Tento formát je bezztrátový. Jistý druh komprimace ovšem využívá. Bezztrátových formátů existuje i více (CorePNG, FFV1). Většinou nabízejí poloviční nebo čtvrtinový datový tok než video bez komprimace. I to je sice mnoho, ale pokud je zapotřebí kvalita, nedá se nic dělat.

Druhy kontejnerů

Nyní, když jsme si shrnuli několik formátů videa, můžeme se vrátit zpět ke kontejnerům. Podrobněji se budu zabývat pouze třemi z nich - AVI, MKV a VOB.

AVI - AVI je nejpoužívanější. Existuje již nějakou dobu a prošel hodně změnami. Bohužel, každý si udělal změny jak se mu zachtělo a proto je někdy využívání rozšířených funkcí problematické. Běžně obsahuje video ve formátu MPEG-4. Nejčastěji se setkáme s kódováním podle algoritmu DivX a XviD. U ostatních formátů bývají problémy, některé nelze použít vůbec. Co se týče zvukového streamu, tak jich AVI může obsahovat několik, i když i s tím někdy bývají problémy. Proto se nejčastěji vyskytuje pouze s jedním. Mohou být ve formátu MP3, AC3 i jiných. Titulky se do AVI nedávají. Tento problém se řeší zvláštním souborem.

MKV - Kontejner MKV (Matroška) zmiňuji pro jeho univerzálnost. Může obsahovat prakticky jakýkoliv typ videa a zvuku. Součástí mohou být i titulky nebo kapitoly. Bohužel není zatím moc známý, což je škoda.

VOB - Co se týče druhů streamů, tak je na tom kontejner VOB docela dobře. Video, několik audio stop, titulky, kapitoly i menu. Tento kontejner je možná známější pod názvem DVD video. Má ale také jistá omezení. Formát videa se používá výhradně MPEG-2 a u audia také není moc na výběr. Nejčastější je AC3. Ten může být i 6-ti kanálový. Co se týče rozlišení obrazu, tak se VOB řídí standardy PAL a NTSC. Velká nevýhoda je u titulků. Mohou být totiž pouze bitmapové. Je to pro to, aby se zjednodušila výroba stolních DVD přehrávačů. Zvláštností tohoto kontejneru je to, že jedno video nemusí být v jednom souboru ale v několika. Nepracuje se tedy jen s jedním souborem, ale s celým obsahem DVD jako celkem.

Zvuk

Nyní je čas říct také něco o zvuku. Podíváme se nejdříve na jeho parametry. Stejně jako u videa tu máme datový tok. Dalším známým parametrem je počet kanálů. 2 - stereo, 1 - mono, ale třeba i 6 pod označením 5.1 (5 středovýškových a 1 basový). Když jsem u videa zmínil barevnou hloubku, musím zmínit něco podobného i zde. Zvuk je v podstatě frekvence. Lze teda zapsat pomocí "čáry", která je různě "klikatá". Ukládá se její vertikální pozice na časové ose. Jde v podstatě o mnoho čísel jdoucích za sebou. Podobně jako u barev bodů. Každý tento bod zvuku může mít určitý rozsah. Jedná se o tzv. bit depth. Nejběžněji má 16 bitů. Další podobnost je se snímkovou frekvencí. Tady jde ale spíš o frekvenci zmíněných zvukových "bodů" (správněji vzorků). Je to sampling rate. Udává se v kHz. U audio CD se používá 44,1 kHz. V případě zvukových streamů u videa je to nejčastěji 48 kHz.

Zvukové formáty

Pokud si vezmeme nekomprimovaný stereo zvuk s 44,1 kHz a 16 bity vyjde nám datový tok asi 1350 kbps. Komprimační metody ho dokáží snížit až na desetinásobek s minimálním slyšitelným rozdílem.

MP3 - Nejrozšířenějším formátem je bezesporu MP3. Je hojně využíván jak v PC tak třeba v přenosných přehrávačích i když má několik nevýhod a nepatří k úplně nejlepším. Datový tok se nejčastěji používá v rozmezí 128 - 192 kbps, kde je dosahováno nejlepších výsledků.

WMA - Co je u videa WMV, to je u zvuku WMA. Není nejkvalitnější a jeho přežití je dáno pouze protlačováním společností Microsoft.

Vorbis - Asi nejlepším formátem pro zvuk je Vorbis. Někdy je chybně označován jako OGG. Nabízí velmi dobrou kvalitu u datových toků od 64 až po 320 kbps. Další výhodou je, že není zatěžkán žádnými patenty a jeho používání je zdarma. Bez problémů je podporován i vícekanálový zvuk. Tento formát pochází od nadace Xiph.org. Odtud máme i další slibné formáty. Třeba FLAC. Je bezztrátový, datový tok bývá okolo 600 kbps. Za zmínku stojí i Speex. Je uřčen pro komprimaci řeči při velmi nízkém datovém toku.

Dalším velmi kvalitním formátem je AAC. Formát AC3 není nejhorší, ale pouze při vyšším bitrate. Používá se hodně na DVD.

Titulky

Zmínil jsem už dva hlavní streamy video kontejnerů. Je to video a audio. Často jsou ale třeba titulky. U kontejneru VOB, který se používá pro DVD video, jsou titulky uložený v grafické rastrové podobě. Jindy to bývá ale textová podoba. Hlavně ve spojitosti s kontejnerem AVI. Tady se hodně často používají obyčejné textové soubory, které titulky obsahují. Existuje několik formátů zápisu. Nejčastější je SRT a SUB. Aby se titulky připojovali k videu snadno, je běžné, že se jim dá stejný název jako souboru s videem. Přehrávač se potom postará o to, aby titulky načetl a promítnul je do videa. Někdy se o toto ale nestará přehrávač, ale jiný software. Titulky se v tomto případě mixují rovnou do video obrazu a přehrávač v podstatě dostane obraz už i s titulky.

Kodeky, filtry

Hodně lidí zaměňuje slova kodek a filtr. Nebo spíše slovo filtr vůbec nepoužívají, všemu říkají kodek a nevidí mezi tím žádné rozdíly. Pokusím se tuto záležitost trochu vysvětlit. Jednoduše řečeno - filtr se používá u přehrávání videa a kodeky se používají u zpracování videa. Podrobněji je to vysvětleno dále.

Přehrávání videa

Máme tedy kontejner, který obsahuje streamy. A my ho chceme přehrát. Je k tomu zapotřebí přehrávač, splitter a filtry (dekodéry) pro jednotlivé streamy. Přehrávač je aplikace, která nabízí grafické rozhraní pro pohodlné přehrávání videa. Splitter zajišťuje rozdělení kontejneru na streamy, které jsou pak předány filtrům a ty je dekódují. Výsledek (obraz, zvuk) je pak předán na patřičný výstup (monitor, reproduktory). Jak se ale pozná, co je použito za formát a který filtr ho má dekódovat. V kontejneru AVI k tomu slouží FourCC kód. Každé video je ním označeno. V systému je potom každý filtr označen stejným kódem. Například u DivXu 5 je to DX50. Někdy se ale stane, že i jiný filtr dokáže tento formát přehrát. Třeba XviD je velmi podobný DivXu a tak se může stát, že mají přiřazený stejný kód. Použije se ten, co má vyšší prioritu. Občas ale nejsou dekodéry zase tak dobře kompatibilní. Může se tedy stát, že i když máme v počítači instalovaný potřebný filtr, naše video nepřehrajeme dobře, protože vyšší prioritu má filtr, který je pro tento případ nevhodný. Stává se to stejně často, jako když nám filtr chybí. Rozdíl se pozná těžko a pak se může stát, že jenom stahujeme další a další filtry a zaplácáváme si s nimi počítač a video pořád nejde přehrát. Pokud chceme zjisti, jaké všechny filtry se při přehrávání videa používají, je to velmi jednoduché a ve většině přehrávačů podobné. V programu MV2Player se to dělá tak, že zapneme video, klikneme na něj pravým tlačítkem myši a vybereme "Filtry". Tady vidíme, čím vším náš soubor prochází (odspoda nahoru). V mém případě je to název souboru, AVI splitter (ten kontejner rozdělí), ffdshow Video Decoder (dekóduje video), MPEG Layer-3 Decoder (dekóduje zvuk), Overlay Mixer, Video Renderer (video výstup), Default DirectSound Device (audio výstup). V programu Media Player Classic se k podobným údajům dostaneme přes nabídku "Play" a potom "Filters". Podobné je to i u ostatních přehrávačů.

Zpracování videa

Jiná situace ale nastává u úpravy videa. Zde se právě využívají kodeky. Kodek je od slov dovat a dekódovat. Program pro zpracování videa si tedy video načte, kodek ho dekóduje a program může pracovat s jednotlivými snímky. Je-li vše hotovo, přichází na řadu opětovné zakódování. O to se opět postará kodek.

Odkazy

Na závěr bych chtěl zmínit výborné stránky zabývající se touto problematikou. Tvůrcem je člověk co si říká Jech. Většinu svých znalostí o videu mám právě z jeho stránek. Díky němu jsem přešel z nekvalitních "CodecPacků" na ffdshow a z Windows Media Playeru na výborný foobar2000, MV2Player a Media Player Classic. Vřele doporučuji nejen stránky (http://jech.webz.cz), ale i tento software.

Další web, který bych rád doporučil je TV Freak - http://www.tvfreak.cz. Naleznete zde spoustu článků z oblasti videa od různých lidí a je zde také užitečné fórum, kde se můžete ptát a třeba i odpovídat.

Napsáno: 21. 6. 2007, Poslední aktualizace: 23. 12. 2011, Autor: Radim