informatika.bilíčka.sk

Komprimácia a.k.a. kompresia

Je "čarovný" proces, pri ktorom je cieľom vhodnou voľbou iného kódovania súboru zmenšiť jeho veľkosť (tak, aby na disku po ukončení kompresie zaberal menej bajtov). Proces kompresie nie je zadarmo, platíme zaň najmä časom - na komprimáciu je potrebné spustiť program, ktorý ju vykoná, napriek tomu ju však používame - na komprimáciu sa oplatí čakať, ak napríklad nebudeme súbory dlhšie použivať alebo ak ich chceme preniesť cez sieť (tú veľký objem dát zbytočne zaťaží a zvyčajne je samotné pripojenie k internetu obmedzené na stanovený počet gigabajtov). Opačným procesom ku komprimácii je dekomprimácia (dekompresia).

Kompresiu poznáme stratovú a bezstratovú.

Stratová kompresia

Toto "zmenšovanie" súboru je založené na tom, že niektoré súbory obsahujú informácie, ktoré nie sú až tak dôležité a je možné ich odstrániť bez toho, aby výrazne ovplyvnili ich kvalitu. Pri vyhodnocovaní, ktoré časti informácie sa zo súboru odstránia, sa spoliehame na nedokonalosť ľudských zmyslov (zrak, sluch). Obrázky napríklad nemusia obsahovať všetky detaily, aby sa stále javili ako ostré a pri zázname zvuku nie je nutné uchovať v nahrávke zvuky mimo spektra, ktoré dokáže zachytiť ľudské ucho. Komprimované súbory zvuku a obrazu sú bežne vo formátoch ako JPEG či MP3. Súbor, na ktorý sa aplikuje stratová kompresia už nie je možné dekompresiou vrátiť do pôvodnej podoby. Dáta, ktoré boli vyhodnotené ako "nedôležité" boli pri kompresii nenávratne odstránené.

Bezstratová kompresia

Tento typ kompresie zachováva 100% pôvodného obsahu, z obsahu pôvodného súboru sa nič nevymaže. Ale predsa sa súbor zmenší! Trik je vo voľbe iného, vhodnejšieho zápisu pre daný súbor. Ak by sme napríklad mali v pôvodnom súbore zapísaných 10 čísel:

1, 1, 1, 2, 2, 2, 3, 3, 3, 3

Mohli by sme si tento súbor čísel prepísať do inej formy, napríklad si zapíšeme dvojice čísel, ktoré budú reprezentovať vždy aké číslo sa v pôvodnom súbore vyskytovalo a koľko krát to bolo. Vyzerať by to mohlo napríklad takto:

1, 3, 2, 3, 3, 4

...pretože v pôvodnom súbore je jednotka trikrát, dvojka trikrát a trojka štyrikrát. Súbor, ktorý pôvodne obsahoval 10 čísel sme teda zapísali len pomocou šiestich - to je redukcia objemu dát o 40%. Tento typ kompresie by ale zrejme nebol vhodný na hocijaký súbor, predstavte si, že by pôvodný súbor vyzeral nasledovne:

1, 2, 3, 4, 5

Použitím nášho kompresného algoritmu by potom komprimovaný súbor vyzeral nasledovne:

1, 1, 2, 1, 3, 1, 4, 1, 5, 1

...pretože v pôvodnom súbore je jednotka jedenkrát, dvojka jedenkrát, trojka jedenkrát, Štvorka jedenkrát a päťka jedenkrát. Táto kompresia nám teda zdvojnásobila objem súboru! Tento jav voláme záporná kompresia a je, pochopiteľne, nežiadúca.

Súbory, na ktoré bola aplikovaná bezstratová kompresia sú bežne vo formátoch RAR, ZIP, FLAC či 7ZIP. Obsahom súborov, na ktoré nemôžeme aplikovať stratovú kompresiu sú napríklad texty či programy.

Kompresný pomer

...je pomer veľkosti pôvodného a komprimovaného súboru. Stratovou kompresiou možno dosiahnuť kompresný pomer až 200:1, pri bezstratovej je bežným pomerom 2:1.

page under construction

Konkrétne príklady kompresie

V počítači kompresiu zabezpečujú (komplikované, komplexné) programy, pozrime sa však na pár nápadov a príkladov, ako by mohol taký kompresný program pracovať:

Komprimačné programy

tbd