Poté, co jsme nakousli tématiku digitálního videa povídáním o rozhraní FireWire, se dostáváme až k pojmům komprimované video, MPEG apod. Dnes si podrobněji povíme o standardu MPEG-1.
MPEG-1
Vývoj první verze formátu trval dlouho zejména proto, že šlo o průkopnickou práci. Bylo nutno vytvořit metodologii, která převede video signál resp. pohyblivý obraz do datové podoby a to tak, aby výsledný datový tok odpovídal přenosové rychlosti běžné CD-ROM mechaniky. Reálný datový tok těchto mechanik v době návrhu formátu nepřesahoval 200kB/s resp. 1,5Mb/s. Bylo jasné, že formát musí používat silnou kompresi signálu, protože daný tok odpovídá kompresnímu poměru 150:1 (v soustavě PAL). Pro pochopení vlastností formátu MPEG-1 (zejména degradace vstupního obrazu) probereme podrobněji jednotlivé kroky komprese.
Výchozím materiálem se stala doporučení pro digitalizaci video signálu (ITU-R 601), která vycházejí z běžných vysílacích standardů PAL (popř. NTSC v Americe). Již samotné barevné vzorkování (digitalizace) video signálu umožňuje kompresi signálu. Dle doporučení je barevný obraz reprezentován pomocí barevného modelu YCbCr, který odděluje jasový (Y) a barvonosný signál (CbCr). Tento model je praktický nejen vzhledem k černobílým televizím a displejům, ale též vzhledem k citlivosti lidského oka na změny (a tím i chyby) v jasové složce a menší citlivosti v barvonosných složkách barev. Proto si můžeme dovolit vzorkovat barvonosný signál méně přesně než jasový signál. Vstupní signál je obvykle vzorkován poměrem 4:2:2, tj. na dva po sobě jdoucí jasové vzorky v každém řádku, připadá jeden vzorek barvonosný (CbCr). V případě standardů JPEG a MPEG se používá vzorkování 4:2:0. Tento formát přiřazuje každému bloku jasových vzorků 2 x 2 jeden vzorek barvonosný (CbCr), viz obrázek.
Dalším materiálem, ze kterého MPEG vznikl je (paralelně vznikající) formát JPEG, který je vyvíjen jinou standardizační skupinou ISO - JPEG (Joint Photographics Expert Group). JPEG využívá pro ukládání statických obrazů ztrátovou kompresi, která se provádí v následujících krocích:
- Vstupní obraz se převede na model YCbCr dle formátu vzorkování 4:2:0.
- Obraz se rozdělí na čtvercové bloky 8 x 8 pixelů, ve kterých se provádí komprese nezávisle blok po bloku.
- Každý blok je komprimován pomocí diskrétní kosinové transformace (DCT), jejíž koeficienty jsou kvantizovány (tzn.definovaným způsobem je jim přiřazeno celé číslo). Koeficienty jsou pak uspořádány pomocí tzv. zig - zag schématu do posloupnosti čísel charakterizující jeden blok. Kvantizace poté určuje kvalitu ztrátové komprese, kterou může volit uživatel.
- Získané posloupnosti koeficientů se uspořádají dle zvoleného způsobu (standard definuje celkem 3) a provede se komprese standardním kodérem (Huffman encoding v kombinaci s Run Length).
Uvedené kroky jsou přejaté i do formátu MPEG, ale navíc se přidávají další kroky, které využívají zejména předem známého rozlišení obrazu. Formát je určen pro uložení video signálu, z čehož plyne i výchozí rozlišení: vzorkováním jasového signálu v soustavě PAL získáme matici 720 x 576 vzorků. Formát MPEG převede vstupní rozlišení na signál SIF (Source of Input Signal), který sníží počet vzorků v každém řádku a sloupci na polovinu. Poloviční rozlišení je tedy 360 x 288, tím se sníží datový tok na čtvrtinu. Vzhledem k vzorkování barev 4:2:0 je obraz rozdělen na makro - bloky 16 x 16 odpovídajícím čtyřem sousedním blokům 8 x 8. Obrazové rozlišení SIF se tedy musí zarovnat tak, aby bylo v řádcích i sloupcích dělitelné 16. Výsledné rozlišení MPEG-1 SIF je tedy 352 x 288.
Nejkomplikovanější částí MPEG komprese je využití redundance obrazového signálu v časové ose, kterou lze ušetřit mnoho dat. Například při pohledu na TV zpravodajství zůstává pozadí často beze změny a mění se jen části obrazu odpovídající poloze moderátora. Právě tohoto jevu využívá tzv. rozdílová komprese, která kóduje pouze změny v po sobě jdoucích obrazech. Změny se zaznamenávají jako pozice změněných makro - bloků, tj. zaznamená se současný makro - blok a jeho pozice v následujícím snímku. Obraz zakódovaný rozdílem od předchozích obrazů se označuje jako obraz P (prediction) a odpovídá vlastně předpovědi nové podoby snímku.
Obraz, který se stal referenčním pro zakódování se označuje I (intra frame). Obraz I je vlastně obdobný jednomu snímku zakódovanému pomocí komprese JPEG. Kombinací snímků I a P lze průměrně komprimovat signál na polovinu. Většího efektu lze dosáhnout tzv. obousměrným kódováním, tj. kódováním pomocí průměru předchozího a budoucího obrazu. Tento obraz se označuje jako B (bi-directional). Kombinací snímků P, I a B lze dosáhnout vysokého kompresního poměru. Snímky se řadí do opakujících se skupin obrazů v pořadí I, P, B. Počet snímků I určuje minimální rychlost náhodného přístupu k danému obrazu. Volba počtu bloků obrazů P a B ovlivňuje kvalitu MPEG komprese.
Výsledkem uvedených kroků je proud dat, který obsahuje jednotlivé zakódované makro - bloky, ze kterých se skládají obrazy I, P a B. Zvuk je v MPEG-1 komprimován se vzorkovací frekvencí 48kHz (max. 384kb/s) v maximálně dvou kanálech.
Vlastnosti MPEG-1
Z uvedených kroků MPEG komprese plyne i značná část vlastností formátu MPEG-1. Často kritizovanou vlastností MPEG-1 komprese jsou viditelné "čtverečky", které odpovídají makro - blokům. Bloky jsou viditelné zejména díky nízkému rozlišení obrazu a také díky tomu, že lidské oko je velmi citlivé na ostré hrany vznikající na rozhraní sousedících bloků. Problematická je též vazba formátu MPEG-1 na rychlost datového toku. Pokud se při kódování rozdílovým kódováním nedosáhne požadovaného datového toku, pak je obraz značně nekvalitní až do příchodu prvního obrazu typu I.
Hledání makro - bloků pro rozdílovou kompresi je mimořádně náročný úkol. Nalézt odpovídající si části v obraze totiž není jednoznačný úkol, a proto kvalita nalezení I, P, B bloků závisí na softwarové implementaci. Dobrý kodér se například vyznačuje tím, že místa střihu kóduje jen pomocí obrazů I a místa s prolínáním obrazy B. Pokud se při kódování nedosahuje požadovaných výsledků, tak je možné ještě před samotné kódování zařadit průměrování obrazů (viz obrazy typu B).
Standard MPEG-1 neobsahuje instrukce pro řízení datového toku, což vytváří problémy zejména při přenosu dat. Rozlišení není omezeno pouze na PAL či NTSC, ale jeho teoretické možnosti jsou od 16 x 16 do 4095 x 4095pixelů s až 30 snímky za sekundu. MPEG není principielně určen k dalšímu zpracování videa, tj. k jeho dalšímu přetváření. Jeho určení je spíše směrováno jako výsledný produkt, který se "jen" prohlédne.
Po tomto širokém a poměrně obsáhlém úvodu do MPEG komprimace se příště podíváme na téma zajímavější. Budou to standardy MPEG-2 a MPEG-4.