Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

MPEG 1/2 – jak to funguje

27.3.2001, Emil Pavelka, zpráva
MPEG 1/2 – jak to funguje
Kodeky pro převod do formátu MPEG 1/2 mívají možnost různých nastavení. Abychom se v tom trochu zorientovali, podíváme se, jak v zásadě fungují.
Kodeky pro převod do formátu MPEG 1/2 mívají možnost různých nastavení. Abychom se v tom trochu zorientovali, podíváme se, jak v zásadě fungují.

U MPEGu jde v podstatě o jakousi lepší adaptaci principů používaných JPEGem, počítající s tím, že po sobě jdoucí snímky, nesou spoustu informací společných se svými předchůdci i následovníky.



Nekomprimuje se zde a neukládá tedy každý snímek zvlášť, ale pracuje se se skupinami snímků. Tyto skupiny jsou tvořeny třemi druhy snímků. Jde o snímky I (intra) a PB (non intra). Jimi tvořené skupiny nesou označení GOP (group of pictures). Strukturu takového GOPu si můžete prohlédnout na obrázku vlevo.

I (intra pictures) jsou komprimovány podobně jako JPEG, s možností komprimovat různé části obrazu, různým stupněm komprese. Jsou to kompletní obrázky. Snímek se rozdělí do makrobloků o počtu 16x16 jasových bodů (8x8 barvonosných bodů). Tyto makrobloky slouží k zachycení a kódování změn mezi snímky.



Makrobloky se dále dělí na čtyři bloky o počtu 8x8 jasových bodů. Ty se zpracovávají pomocí DCT (diskrétní kosinovou transformací) s využitím kvantizačních tabulek, které jsou zvlášť určené pro I snímky a zvlášť pro P a B snímky. Jak takové tabulky vypadají můžete vidět na obrázku (tabulky bývají navrženy pro kvalitu cca 75% a přepočítávají se podle požadovaného stupně komprese).

P (predicted pictures) jsou kódovány s ohledem na předcházející I nebo P snímek. Používají pohybovou kompenzaci (motion compensation) k odstranění časové redundance mezi snímky. Pracují na úrovni makrobloků.

B (bidirectional pictures) se od P snímků liší tím, že jsou kódovány s ohledem na dva nejbližší I nebo P snímky. Abychom zrekonstruovali B snímek, musíme tedy nejdříve znát nejbližší předcházející a následující I nebo P snímky. Z tohoto důvodu se pořadí snímků v datovém toku liší od zobrazovaného pořadí. Z našeho příkladu na obrázku, tak z:
IBBPBBPBBPBBPBBPBBI dostaneme:
IPBBPBBPBBPBBPBBIBB posloupnost.

Z toho jsou patrné značné nároky na paměť, do níž v našem příkladu musíme umísti současně čtyři snímky (IBBP).

Poměr velikosti jednotlivých snímků je v pořadí IPB přibližně 15:5:2. Bezkonkurenčně nejmenší jsou B snímky. Střih je ovšem možný jen v místech I snímků (pokud nechcete video přepočítávat).

GOP může být tvořen i jen samotnými I snímky (to může být vhodné pro další zpracovávání), nebo kombinací I a P snímků.

Při kódování máte někdy možnost nastavit kromě pevného datového toku -CBR (constant bitrate) také VBR (variable bit rate) nebo CQ (constant quality), které přizpůsobují velikost datového toku aktuálnímu dění na scéně videa.

Známými softwarovými kodeky MPEG videa jsou například LSX od Ligosu, XING, nebo velmi dobrý, volně šiřitelný TMPGEnc (Tsunami MPEG Encoder). Z hardwarových kodeků můžeme zmínit například produkty společnosti C-Cube (dvě z testovaných karet - Matrox RT2000 a Fast DVnowAV, obsahují dva jejich různé exempláře a budeme se jim u těchto karet věnovat).