If you're seeing this message, it means we're having trouble loading external resources on our website.

Pokud používáš webový filtr, ujisti se, že domény: *.kastatic.org and *.kasandbox.org jsou vyloučeny z filtrování.

Hlavní obsah

Ztrátová komprese

Ztrátové kompresní algoritmy jsou techniky, které snižují velikost souboru odstraněním méně důležitých informací.
Nikdo nechce ztrácet informace, ale některé typy souborů jsou tak velké, že pro uchovávání všech původních dat není jednoduše dostatek místa, navíc všechna tato data ani nepotřebujeme. Jedná se o častý případ s fotografiemi, videi a zvukovými nahrávkami; soubory, které se snaží zachytit neuvěřitelnou komplexnost světa, ve kterém žijeme.
Počítače mohou na fotce zachytit neuvěřitelné množství detailů — ale kolik z těchto detailů dokážou lidé ve skutečnosti vnímat? Jak se ukazuje, je mnoho detailů, které můžeme odstranit. Ztrátové kompresní algoritmy jsou o nalezení chytrých způsobů, jak odstranit detaily bez toho, aby si toho lidé všimli (nebo alespoň aby to nebylo tak nápadné).
Zde je například fotka kočky v klobouku:
Zdroj obrázku: admiller, Flickr
Tady je stejná fotka, ale zkomprimována na poloviční velikost:
Vidíš nějaký rozdíl? Při zběžném pohledu žádný nevidím a i kdybych nějaký viděl při větším úsilí, pořád by se mi vyplatilo ušetřit polovinu místa na disku.
Pojďme se podívat na pár chytrých způsobů, jak ztrátové kompresní algoritmy odstraňují detaily pro zmenšení velikosti souboru.

Obrázky: Zachovat jas, sladit barvu

Lidské oko dokáže mnohem lépe vnímat rozdíly v jasu než rozdíly v barvách. Kompresní algoritmus může této skutečnosti využít tak, že udržuje jas a snižuje množství barevných informací, proces známý jako podvzorkování barvonosných složek (chroma subsampling).
Pojďme to zkusit na fotce kočky v klobouku. Prvním krokem je oddělit informace o jasu od chroma (barvy).
Zde je verze fotky pouze s jasem:
Tady je verze pouze s chroma (barvy):
Tato fotografie je zajímavá, protože kočka a židle jsou obě poměrně bezbarvé - modrá barva klobouku je to, co v chroma verzi vyniká. (Možná bychom měli všichni vlastnit jen černobílé kočky a ušetřit tak místo na disku? Hmm...)
Pojďme se podívat na blok chrómu 8x2 z levého oka o něco blíže:
Každý z těchto pixelů má mírně odlišné hodnoty chromu, takže je zde celkem 16 hodnot. Každý 2x2 blok můžeme zprůměrovat a nastavit jeho barvu na průměr, takže dostaneme celkem jenom 4 hodnoty:
Výsledek se docela podobá originálu, ale má čtvrtinu původních barevných informací. Pokud to uplatníme na celý obrázek, můžeme ušetřit spoustu prostoru, aniž bychom tolik ovlivnili zážitek vnímání.
Chroma subsampling je proces používaný v mnoha kompresních algoritmech, které se zabývají obrázky, včetně populárních formátů souborů, jako jsou JPEG a MPEG.
Tyto algoritmy používají také proces zvaný diskrétní kosinová transformace (DCT) ke zjednodušení detailů ve vrstvě pro jas. Pokud se chceš dozvědět více, zde je pěkný průvodce.

Zvuk: Zahodit neslyšitelné zvuky

Lidské ucho má své meze, co se týče toho, co může slyšet. Algoritmy pro kompresi zvuku mohou analyzovat zvukový soubor a zahodit zvuky, které jsou mimo naši sluchovou kapacitu, proces známý jako perceptuální zvukové kódování.
Jedním ze zajímavých omezení našich uší je časové maskování. To je fenomén, kdy náhlý zvuk může zakrýt (skrýt) jiné zvuky po určitou dobu poté, co k němu dojde, a dokonce i trochu dříve!
Například si představ skladbu s hlasitým bubnem. Bubnování maskuje zvuky na asi 20 milisekund předtím, než k němu dojde a až po dobu 200 milisekund poté, co se stane. Tento graf ilustruje maskovací efekt:
Šedé proužky ukazují časová rozmezí před maskováním a po něm.
Počítač vidí tyto skryté zvuky v nahrávaném zvukovém souboru, ale naše uši je nemohou slyšet, takže je algoritmy pro kompresi zvuku můžou klidně odstranit nebo je reprezentovat menším počtem bitů.
Kompresní algoritmy mohou využívat i další omezení našeho přirozeného sluchového procesu, jako je vysokofrekvenční limit a simultánní maskování. Pokud se chceš dozvědět více, můžeš prozkoumat fascinující oblast psychoakustiky.

Kvalita komprese

Používáme-li bezztrátové kompresní algoritmy, můžeme vždy rekonstruovat 100 % původních dat. Při ztrátových kompresních algoritmech ztrácíme přibližně několik % původních dat; možná 5 %, možná 10 %, možná 70 %. Kolik ztratíme? To záleží na našem případu použití dat.
Vzpomeň si na předchozí fotku kočky v klobouku. Pokud máme v plánu nahrát tuto fotografii do prezentace o kočičí módě a prezentovat ji na velké obrazovce, pravděpodobně chceme zachovat co nejvíce detailů. V takovém případě buď můžeme použít bezeztrátový kompresní algoritmus (jako PNG) nebo použít ztrátový kompresní algoritmus (jako je JPEG) a specifikovat vysokou kvalitu (100 %). Aplikace pro úpravu fotografií tyto možnosti běžně nabízejí.
Fotografie o rozlišení 400 x 300 při kvalitě 100 % zabere 169 kB prostoru:
Co kdybychom chtěli použít tuto fotografii na webových stránkách a naši cíloví uživatelé pro webové stránky jsou v jiné zemi na nízko-pásmových spojeních? Čím menší soubor, tím rychleji se stáhne. Chceme, aby viděli fotografii, ale pro tento případ použití vysoké kvality není tak důležité jako rychlost stahování. Určitě budeme chtít použít ztrátový kompresní algoritmus a můžeme při exportu vybrat nižší kvalitu. Algoritmus může detaily zjednodušit ještě o něco víc.
Fotografie při kvalitě 60 % zabere 48 kB:
Pořád to vypadá docela dobře - rozhodně použitelné pro nízko-pásmové webové stránky. Jak nízko můžeme jít? Zde je fotka s kvalitou 1 %:
Rozhodně to není dokonalé — zelená barva oči se zdá být rozmazaná se srstí a na místě doteku židle a klobouku máme rozmazané body. Ale velikost je pouhých 12 kB, méně než desetina původní velikosti. Je působivé, kolik informací můžeme ztratit, ale stále zachovat tak hodně detailů.
Můžeme mimo jiné specifikovat i kvalitu pro ztrátové kompresní algoritmy, které převádějí audio a video soubory. Pravděpodobně máš zkušenost s vysoce komprimovanými videi o malé kvalitě, na které můžeš narazit po internetu; videa se nejčastěji komprimují proto, protože jsou v původní verzi příliš velká.
Kdykoli použijeme ztrátovou kompresi, vždy vytváříme kompromis mezi kvalitou a velikostí, a je tedy na nás, abychom našli nastavení, které bude pro naše použití nejlepší.
🙋🏽🙋🏻‍♀️🙋🏿‍♂️Máš k tomuto tématu nějaké dotazy? Rádi ti je zodpovíme — zeptej se v sekci pro dotazy níže!

Chceš se zapojit do diskuze?

Zatím žádné příspěvky.
Umíš anglicky? Kliknutím zobrazíš diskuzi anglické verze Khan Academy.