Kompresní metody
Kompresní metody

Cílem komprese je odstranění nepodstatných anebo nadbytečných informací z původních dat tak, abychom data mohli ukládat nebo přenášet efektivněji: ušetříme tak např. přenosový kanál anebo úložný prostor. Kompresí kódujeme užitečnou informaci menším počtem bitů, oproti původní reprezentaci.

Množství dat, které v současnosti vytvoří multimediální zařízení, je obrovské. Kdybychom chtěli uložit 6megapixelový statický obrázek (3000x2000 pixelů s 8 bity/barva) na USB klíč v nekomprimovaném tvaru, potřebovali bychom více než 17 megabyte prostoru (přesně 18 miliónů byte). Stejný obrázek komprimovaný pomocí kodéru JPEG by zabral okolo 3 Megabyte úložného prostoru (asi 3 200 000 byte) a nepostřehli bychom žádný rozdíl. Stejně jako pro statické obrázky to platí i pro audio a video signály, a to jak při ukládání, tak i při přenosu digitálními sítěmi.

Kompresní algoritmy můžeme dělit na:

- Bezeztrátové kódování
- Ztrátové kódování

Bezeztrátové kódování snižuje počet bitů hledáním a odstraňováním statistické nadbytečnosti, tedy informací, které se opakují anebo se mohou získat z jiných informací v signálu. Bezeztrátová komprese (označovaná též jako kompakce) umožňuje rekonstrukci původního signálu bez jakýchkoliv změn. Je proto vhodná pro archivační účely.

Na druhé straně ztrátová komprese se snaží snížit množství dat odstraňováním informací, které člověk kvůli nedokonalostem svých smyslů nemůže zaregistrovat. Při použití této metody komprese není rekonstruovaný signál nikdy stejný jako původní signál. Metody jsou však vhodné na aplikace, kde jsme omezeni velikostí úložného prostoru anebo šířkou přenosového kanálu.

Obecně jsou ztrátové algoritmy mnohem efektivnější než bezeztrátové algoritmy, ale zrekonstruovaný signál se vždy liší od toho původního. Kvalita komprimovaného signálu je tedy kompromisem mezi množstvím informací odstraněných z původního signálu a požadovanou velikostí souboru komprimovaného signálu.

Míra změn v signálu, které jsou ještě akceptovatelné bez pozorovatelného rozdílu oproti původnímu signálu, se nazývá právě pozorovatelné zkreslení (just-noticeable distortion) u zvuku a hovoru anebo právě pozorovatelný rozdíl (just-noticeable difference - jnd) u statických obrázků a videa.

Kompresní poměr, vyjadřující efektivitu kompresní metody, je dán vztahem:

,

kde Nn je počet bitů nekomprimovaného signálu a Nk je počet bitů komprimovaného signálu.

Programové vybavení, provádějící kódování původního signálu do jeho komprimované podoby a dekódování komprimovaného signálu do původní podoby, se nazývá kodek (zkratka z kodér-dekodér).

## Model komprese

Proces komprese se skládá z třech základních fází:

1. Dekorelace vstupních dat
2. Redukce entropie
3. Bezeztrátové kódování

Obecné kompresní schéma

Dekorelace vstupních dat odstraňuje ze signálu duplicitní informace. Může se provést různými způsoby, resp. v různých oblastech reprezentace signálu:

- Časová (anebo prostorová) oblast
- Parametrická oblast
- Rozklad signálu

V časové (anebo prostorové) oblasti jsou metody založené na lineární predikci, která předpokládá, že sousední vzorky v čase (anebo prostoru) jsou korelované (podobají se). Přístup pomocí rozkladu signálu rozkládá signál na subpásma, ve kterých je možné samostatně sledovat energii. Do parametrické oblasti přecházíme různými transformacemi tak, abychom dokázali získat charakteristické parametry pro kódování a přenos vstupních dat.

Proces kvantizace redukuje entropii. I když kvantizace vždy způsobuje ztrátu informací, dostatečně přesná kvantizace tuto ztrátu snižuje na minimum.

Posledním krokem v procesu kódování je bezeztrátové kódování, nazývané též entropické kódování. Během tohoto procesu se statisticky častým kombinacím bitů (symbolům) přiřadí kratší kódové slovo a statisticky méně častým kombinacím bitů delší kódové slovo. Takové kódování se též nazývá kódování s variabilní délkou (variable length coding - VLC), protože kódová slova mají různou délku. Nejefektivnějším algoritmem k provádění bezeztrátového VLC entropického kódování je tzv. Huffmanovo kódování.

Na přenos komprimované informace prostřednictvím přenosového kanálu existují dva režimy:

- Konstantní datový tok
- Proměnlivý datový tok

Při použití konstantního datového toku se výstup kodéru ukládá do vyrovnávací paměti, ze které se zabezpečuje konstantní datový tok do přenosového kanálu. Datový tok ovlivňuje kodér tak, aby produkoval stejný datový tok. Takovým způsobem může kodér ovlivňovat krok kvantování a tím i kvalitu rekonstruovaného signálu.

Kodér s konstantním datovým tokem

Při použití proměnlivého datového toku vyrovnávací paměť není potřeba a kodér tak může použít kvantovací krok podle požadavků kódovaného vstupního signálu. Kvalita rekonstruovaného signálu se potom nemění.

Kodér s proměnlivým datovým tokem

I když se může zdát proměnlivý datový tok nejlepší volbou, platí to jen v případě, když přenosová rychlost přenosového kanálu je dostatečná i pro maximální datový tok, který může kodér s proměnlivým datovým tokem produkovat. Jestliže je však k dispozici omezená přenosová rychlost přenosového kanálu, pro zachování nepřetržitého toku dat bude vhodnější kodér s konstantním datovým tokem.