menu
logo upravyvidea.cz úpravy videa . cz
video, audio, kodeky, kontejnery, formáty

Způsoby komprimování videa

Způsoby komprimování videa

Video kodek je snahou o přepis analogového videa do digitálního záznamu s dostatečnou kompresí. Většina video kodeků jsou ztrátové, tedy větší či menší množství informací je kompresí ztraceno. Při dobrém nastavení parametrů kodeku je nicméně ztracena ta část obrazu, kterou by divák nezaznamenal či téměř nezaznamenal.

Video se skládá z jednotlivých snímků, které lze vnímat jako obyčejné obrázky / fotky. Některé způsoby komprimace videa jsou tedy shodné s komprimací obrázků (např. JPEG). Jiné komprimace využívají možností úspor dat mezi jednotlivými snímky.

Pro zápis jednotlivých obrazových bodů se obvykle používá barevný prostor YCbCr. V tomto prostoru je obraz rozložen na jas (luma, luminance) a barevné složky (přesněji rozdílové složky mezi jasem a modrou a červenou barvou, v angličtině chroma či chrominance). Barevný prostor YCbCr má pro kompresi videa výhodu, protože jas je mnohem důležitější než barevné složky a lze ho zaznamenat s odlišnými parametry. Obvykle se udává poměr mezi uloženými informacemi v kanálech Y:Cb:Cr. Různé kodeky používají různé podvzorkování barevných složek. Produkční videa jsou 4:4:4 (nepodvzorkováno) či 4:2:2 (horizontální na polovině, vertikální s plným rozlišením). Obvyklý poměr podvzorkování je např. 4:2:0 (horizontální i vertikální na polovině), který se používá u známého kodeku MPEG4.

podvzorkování barevných složek

Podvzorkování barevných složek, dolní řádek barevné složky s různou mírou podvzorkování, prostřední řádek jas bez ztráty informace, horní řadek součet (zdroj: Wikipedia)

Video kodeky používají také diskrétní kosinovou nebo vlnkovou transformaci. Nejčastěji se užívá diskrétní kosinová transformace (DCT) pro bloky 4×4 až 32×32. Výsledkem DCT je matice s odstínem celého bloku a jednotlivými koeficienty. Při této operaci také dochází ke ztrátě informace (zokrouhlování), která se ale soustřeďuje pro člověka na méně podstatné změny v jasu. Po DCT transformaci se používá optimální entropické kódování, které si můžeme představit jako proces podobný zazipování souboru. Jedná se tedy o bezeztrátovou kompresi, která předchozí transformaci zkomprimuje.

Při komprimaci je snímek obvykle rozdělen do tzv. makrobloků, např. 16×16 makrobloků, které se skládají z dalších bloků jasů a barevných složek (někdy zvané makropixely). Při zpracování mohou vznikat jasné a rušivé rozdíly mezi sousedními makrobloky (což se stává nejčastěji u jednolitých ploch). Pro zamezení nespojitých makrobloků se používají filtry nebo adekvátní upravené transformace s překrýváním.

Výše uvedené kompresní způsoby se týkají jednotlivých snímků videa. Při komprimaci videa lze ale využít také úspor dat při změnách mezi jednotlivými snímky. Ne vždy se totiž ve videu promění celý snímek a někdy lze tedy zaznamenat méně informací (např. pohyb míče). Ve videu se definují tzv. intra snímky a inter snímky. Intra snímky (I snímky) obsahují všechny obrazové informace; nazývají se také keyframes. Inter snímky se dělí na P a B snímky. P snímky (predicted) potřebují pro zobrazení předcházející I nebo P snímky. P snímky obsahují pohybové vektory a koeficienty změny. B snímky (bidirectional) potřebují pro zobrazení předcházející a/nebo následující snímek a podobně jako P snímky obsahují pohybové vektory a koeficienty změny. Různé typy snímků se sdružují do skupin s pevným pořadím, které má každý kodek definován. Pořadí může být např. IBBPBBP... a tato struktura snímků se jmenuje GOP (group of pictures). Některé kodeky nevyužívají inter snímky a mají tedy pouze intra snímky (např. ProRes používaný při produkci filmů).

sekvence snímků ve videu

Sekvence snímků ve videu, I snímek (kompletní obrázek), P snímek (pouze změny), B snímek (potřebuje pro vykreslení informace i z následujícího snímku) (zdroj: Wikipedia)

pořadí typů snímků

Na obrázku je jiné pořadí typů snímků a jejich vazeb nutných pro vykreslení (zdroj: Wikipedia)

Kodeky používají různé nástroje pro odhad pohybu (mezi snímky) a tedy zvýšení komprese videa. Přesnost odhadu pohybu je obvykle mnohem vyšší než jeden bod (pixel). Dnešní moderní kodeky používají čtvrtinu bodu (quarter pixel, Qpel). Čtvrtinu bodu samozřejmě nelze zobrazit ani uložit, ale videa kódovaná s Qpel mají ve výsledku vyšší kvalitu při stejném datovém toku.

Další technikou úspory dat videa je prokládání (interlacing). Jedná se o způsob, který se vyvinul ještě v dobách analogového vysílání televize a dnes se používá především tam, kde se setkáme s televizí. Při prokládání jsou vykresleny vždy pouze sudé řádky snímku a v dalším snímku vždy liché řádky. Od prokládání se ustupuje a zejména v internetovém vysílání nebo ve videích zpracovávaných na počítači buď prokládání není nebo je filtrováno.

animace prokládání

Zpomalená animace vykreslování u prokládání, takto např. u televizního vysílání (zdroj: Wikipedia)