Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Filmy a seriály, streamovací služby
Televize  |  Projektory
Audio a domácí kina
Multimediální centra  |  Ostatní
Svět hardware  |  Digimanie
Svět mobilně

Test MPEG-4 kodeků: úvod do problematiky

16.1.2008, Radek Jahoda, recenze
Na internetu lze najít testů kodeků jako šafránů. I my zde máme v podstatě jen jediný, konkrétně MPEG-2 kodeků, který je již ale více jak čtyři roky starý. Je tedy na čase podívat se na zoubek dnešním kodekům a především těm moderním. Jak je to vlastně s těmi prohlášeními různých společností, že jejich kodek je o X procent lepší než jiný nebo předchozí verze? Kdybychom jim měli věřit, tak je dnes jeden snímek videa zkomprimován do jediného bitu. Ale kde je pravda?
Kapitoly článku:
  1. Test MPEG-4 kodeků: úvod do problematiky
  2. Co se měří
  3. Co a jak budeme měřit
Test kodeků jste u nás již dlouho nenašli a těch důvodů je více. Jedním důvodem je čas, který test zabírá, a ve změti novinek a různých výrobků na to prostě nezbýval. Druhý důvod je prozaičtější. Provést test chce mít správnou metodiku. Drtivá většina testů (řekl bych všechny, ale nerad bych omylem ignoroval nějaké výjimky) je ve formě subjektivních testů. Prostě se zkonvertuje nějaké video více kodeky popřípadě s různým bitrate, shlédnou se bystrým okem a dělají se závěry. Buďme realisté, i já tak začínal. Čím více ale člověk porovnává a hledá chyby v obraze, tím více jich vidí, tím horší se mu video zdá. Po shlédnutí několika videí, neustálého přetáčení a přehrávání, zastavení i zpomalování člověk vybere pozdě večer (nebo spíše brzy ráno?) vítěze. Druhý den si toto video pustí a zjistí, že je příšerné a nedá se na něj dívat. Pak je na čase říci - dost.

Takovýto test je vlastně měření, a tak je k němu třeba přistupovat. Subjektivní hodnocení je sice pěkné, ale jde o věc pomíjivou, nestálou a nevěrohodnou. Vždy se najde škarohlíd, který bude takové výsledky zpochybňovat. Stejné to je se zvukem, kde se často porovnává pouze sluchem. Výsledkem je, že spousta lidí věří, že kopie CD je jiná než originál, přestože po přečtení dat jsou naprosto stejná. Přesto dokáží hodiny debatovat o pitech, frekvencích, sametových hloubkách, sykavkách, dýchání a bůh ví čem ještě. Je tedy nutné test provádět exaktně a výsledkem mají být naměřené hodnoty, které lze jednoznačně porovnávat.

Ale začněme od začátku. Komprese videa totiž není tak jednoduchá, jaká je obecná představa. Není to jen zmáčknutí jednoho tlačítka a počkání na výsledek. Takto si to ale bohužel většina lidí představuje. Velmi dobře je to vidět na prodávaných DVD discích. Hollywoodské trháky jsou většinou ve špičková kvalitě, protože jejich mastering a kompresi provádí znalý profesionál, který má již hodně za sebou a ví jak na to. Oproti tomu některé tituly (nechci rýpat, ale často právě české) jsou vyráběny stylem jednoho kliknutí a podle toho to také vypadá.

Podívejme se stručně, jaký by měl být postup při jakékoliv kompresi. Kdo si myslí, že to zná, ať přejde na další stránku článku. Kdo si myslí, že to vědět nepotřebuje, může tuto stránku rovněž přeskočit, ostatním to snad pomůže v jejich činnosti. Je třeba si totiž uvědomit, že výslednou kvalitu videa právě z největší části tvoří práce před kompresí než samotná komprese. Tu totiž můžeme ovlivnit jen zčásti. Rozdíly v kvalitě kodeků totiž mohou být minimální. Video zkomprimované nejlepším kodekem stylem stisknutí jednoho tlačítka může být mnohem horší, než video, s kterým se autor doslova mazlil a nakonec použil horší kodek, protože jiný k dispozici neměl.


Video je již jinde než před léty - televizor Tesla 4001A
(zdroj obrázku: oldradio.cz)

První na řadě je to nejjednodušší, tedy volba cílového formátu. Ten souvisí s tím, co chceme s videem dělat. Pokud ho budeme chtít vypálit na DVD, je volba jasná - MPEG-2, jiný formát použít nelze. Pokud budeme video umisťovat na internet, je nutné použít úspornější kodeky i za cenu horší kvality. I zde se můžeme dostat k různým omezením díky cílové skupině lidí, kteří si video budou pouštět. Nemá smysl použít kodek, který si málokdo přehraje, protože je placený. Jiná může být situace u archivace, kde požadujeme jak co nejvyšší kvalitu, tak hlavně trvanlivost. Možnost přehrát video i za mnoho let je k nezaplacení.

Pak se určitě vyplatí použít i horší kodek, který má ale širokou podporu a hodně velkou výhodou je i otevřenost zdrojových kódů. To je pak hodně silný argument pro jeho použití, protože je možné jej bez problémů implementovat i v budoucích systémech. Další příkladem může být přenesení videa do HTPC nebo Multimediálních Center. Tak se budou různé požadavky prolínat - co nejvyšší kvalita při co nejnižší velikosti. Dříve byla situace složitější, protože pro archivaci (nemám na mysli profesionální archivaci, která je bezeztrátová) se používaly jiné kodeky než pro praktické použití. Dnes je volba jednodušší, protože došlo ke standardizaci některých formátů a vlastně jen ty se používají. MPEG-1 je dnes už vlastně mrtvý, MPEG-2 je nejrozšířenější, klasický MPEG-4 (což je DivX nebo XviD) se používá v HTPC a na internetu a nastupující MPEG-4 AVC, nebo-li též H.264, se snaží nahradit oba dva.

Po volbě kodeku je nutné provést základní editaci. Ta spočívá v oříznutí zbytečných částí obrazu. Jde především o černé pruhy u širokoúhlého materiálu (tzv. letterbox). Zde se sice nic neděje, ale je to prostor, který je tam zbytečný a jejich doplnění zvládne s přehledem dekodér. Tento prostor zabírá například 20% celého obrazu, ve zkomprimovaných datech to pak může být pouze 5%, což je ale značný rozdíl. Všimnout je nutné si i černých svislých pruhů po stranách obrazu, které se často vyskytují i na DVD discích. I ty zbytečně zabírají místo a je rozhodně žádoucí je odstranit. Těmito úpravami se nám zmenší celkové rozlišení obrazu, takže se komprimuje méně dat a ty mohou být kvalitnější.

Když už jsme u velikosti, je nutné zvolit i správné konečné rozlišení. Ořezem to nemusí skončit. Pokud jsme limitováni celkovým datovým prostorem a tedy datovým tokem, pak může být rozlišení videa příliš velké na to, aby to kodek správně zvládl. Lepší je pak rozlišení zmenšit, ztratíme tím sice částečně ostrost, ale video bude krásně čisté. Výsledný dojem bude určitě lepší než u videa s vyšším rozlišením, které ale značně koskatí a ztrácí detaily na plochách (což je například případ DVB vysílání).


Ořez videa v programu VirtualDub

Dalším nezbytným krokem je odstranění šumu. Jde o nejproblematičtější část, protože šum může mít mnoho podob a způsob jeho odstranění se pak také liší. To platí i pro typ videa - jinak se bude odstraňovat šum z kresleného animovaného videa než z reálného obrazu. Způsoby filtrace jsou v podstatě jen dva, nebo spíše jen jeden - průměrování bodů, což má za následek rozmazání. Dělá se buď v okolních bodech (označuje se spatial) nebo v jednom bodě přes okolní snímky (temporal nebo dynamic).

Vždy se průměrují jen body s podobnou hodnotou (volí se tolerance, tedy rozdíl, který je ještě akceptovatelný), čímž se zamezí rozmazání okrajů objektů. Nejhorší je, když je šumu v obraze příliš mnoho. Pak je nastavení tolerance příliš velké, aby měl nějaký smysl a z videa je pak v prvním případě jedna velká patlanina, ve druhém případě se za objekty táhne jejich duch. U animovaných snímků lze provádět vyšší filtraci, protože jsou zde velké jednolité plochy a objekty jsou většinou jasně a kontrastně ohraničené. Toleranci je pak možné nastavovat hodně vysoko. U reálných videí je v takovém případě lepší nechat video se šumem. Pokud je ale video bez šumu, tedy podle oka bez šumu, je vhodné v podstatě vždy filtr zapnout. Přestože ho totiž nevidíme, tak tam je a stěžuje práci kompresoru. Toleranci nastavíme hodně nízko (cca do rozdílu 5), abychom právě zamezili zmíněné patlanině nebo duchařině.

Tyto jednoduché a rychlé kroky jsou základem ke správné kompresi videa. U našeho testu samozřejmě předpokládáme, že video již prošlo těmito úpravami. Samozřejmě narazíte na to, že často není nutné s videem dělat vůbec nic, což je ten ideální případ.