Komprese souborů - PC Magazín

Komprese souborů


winrar_logo.jpgCo je komprimace dat:

Jsou různé situace, kdy potřebujeme, aby data zabírala co nejméně místa. Například když chceme instalovat nový program na pevný disk, zjistíme, že už na něm není dost místa, a nechceme přitom z disku nic smazat. Nebo když archivujeme soubor na disketu a on je tak velký, že se tam nevejde.

winrar1

Což teprve když přenášíme soubor ze vzdálené sítě a platíme za čas nebo i za množství přenesených dat. Ve všech těchto případech se jako pomoc nabízí komprimace (pakování, sbalení, anglicky compression). Jedná se o zmenšení objemu dat bez ztráty informačního obsahu. Každý komprimační program totiž ke zmenšování dat užívá nějaký specifický způsob, kterým to provádí. Těchto způsobů je několik a my si teď 3 nejznámější, nejfunkčnější a nepoužívanější popíšeme. Pro větší zřetelnost ještě uvedu, jak se komprimační programy obvykle na soubory dívají. Asi je vám jasné, jak vypadá text a jak vypadá obrázek, ovšem na počítači jsou text i obrázek, či cokoli jiného uložené jako jistý soubor a na ten lze nahlížet také jako na text. Sice (například v případě obrázku nebo zvuku) uvidíte jen směsici znaků, avšak komprimační program právě tuto směsici znaků prohlíží a komprimuje ji.

Komprimační metody

RLE:

Komprese RLE (Run-Length Encoding) je asi nejjednodušší komprimační metodou. Její princip spočívá v tom, že některé znaky se vyskytují vícekrát za sebou. Pokud by tedy text vypadal: „xxxxxxRRRRoooPPP“, byl by zabalen to této podoby: „6x4R3o3P“. Zapíše se tedy vždy jen znak o který se jedná a počet kolikrát se opakuje. Je vám ovšem jasné, že asi málo běžných textů by vypadalo takhle. Co tedy takhle vypadá? Jsou to zejména obrázky z aplikace Malování, tedy obsahující velké jednobarevné plochy. Tam může metoda RLE dosáhnout dobrých poměrů. Naopak pokud byste měli text: „ahoj“ a byl by zabalen jako: „1a1h1o1j“ tak by se nezmenšil, ale naopak zvětšil. Algoritmy na bázi RLE jsou ovšem tak propracované, že jsou schopny zabránit ztrátovosti a zároveň vždy poznají zda znak označuje počet opakování a nebo to, co se opakuje.

LZW:

Tato tři písmenka označují jména tvůrců tohoto algoritmu Lempel-Ziv-Welch. Zpočátku pouze první dva, kteří vytvořili algoritmus LZ77 a pak i LZ78 a Welch o několik let později jejich algoritmus upravoval pro potřeby jiných řadičů. Na čem tedy funguje? RLE pracuje na několikrát se opakujícím jednom znaku. LZW na několikrát se opakujících posloupnostech znaků.

LZ77 by například řetězec: „leze po železe“ zakomprimoval jako: „leze po že[10,4]“. To znamená že na místo čísel uvedených v hranaté závorce se při dekomprimaci (rozbalení) užijí 4 znaky z předcházejících deseti

Algoritmus LZ78, nebo LZW (prakticky se od sebe neliší) využívá tzv. adaptivní slovníkovou metodu. Program si tedy vytvoří pomocný soubor, tzv. slovník, který využívá při komprimaci a dekomprimaci. Tento slovník je však po zabalení možno odstranit, jelikož k rozbalení není potřeba. Dekomprimační algoritmus si ho opět vytvoří na základě zabalených dat. Komprimační algoritmus tedy prochází jednotlivé znaky a zjišťuje jestli jsou ve slovníku.

Tato metoda dosahuje velice příznivých poměrů a je také dobře použitelná pro přenos po síti. Totiž je vám jasné, že přenos po síti trvá déle a tak je potřeba posílat data zakomprimovaná, aby byla co nejmenší. Při použití tohoto druhu kódování je však můžeme začít odesílat již před dokončením komprimace a na druhé straně kabelu již mohou být postupně dekomprimování.

Aritmetické kódování:

Aritmetické kódování je asi nejmladší metodou. Pracuje na principu četnosti výskytů jednotlivých znaků. Vychází z principů Huffmanova a Shannon-Fanova kódování. Princip všech těchto algoritmů spočívá v tom, že se zjistí jaký znak se v souboru vyskytuje nejčastěji druhý méně častěji, třetí ještě méně atd. Algoritmus zjistí, četnosti výskytů jednotlivých znaků a přiřadí jim určitý počet bitů (8 bitů je jeden bajt; bit se skládá z jedniček a nul; možný počet kombinací bitů v bajtu je 256 – to je také počet znaků na které algoritmus rozkládá soubory). Znak s největší pravděpodobností má nejmenší počet bitů a čím má znak menší pravděpodobnost výskytu, tím více má přiřazeno bitů. Tím dochází ke komprimaci. Tato metoda není až tolik účinná co do kompresního poměru, ale je dobře zkombinovatelná s některou adaptivní slovníkovou metodou (např. LZW) a spolu dosahují dobrých výsledků. Aritmetické kódování je ze všech dosud jmenovaných bezztrátových kompresí nejsložitější a nebudu se detailnímu postupu algoritmu věnovat.

Komprimační programy:

Komprimačních programů je několik. Většina z nich užívá svůj specifický způsob kódování (tedy způsob jak data zmenšit). Mezi nejznámější komprimační programy patří Winzip, WinRAR, ARJ, ACE, JAR. WinZIP nedosahuje nejlepších výsledků, ovšem je asi nejznámější a data pomocí něj zabalené je schopen rozbalit snad každý (je vám totiž snad jasné, že pokud něco zabalíte a někomu to předáte, tak on musí mít nějaký program, který je schopen to rozbalit, aby si vůbec mohl prohlédnout, co jste mu to vlastně dali). Winrar už má daleko lepší kompresní poměry a zároveň také solidní uživatelskou základu. Dále ještě třeba JAR, ARJ, TAR, ACE, které jsou známější ještě méně, avšak dosahují rovněž dobrých poměrů a měl by je být schopen rozbalit snad každý solidní archivační program.

Nyní se podíváme jak vlastně komprimační programy fungují. Požadovaná data zmenšují na základě jistého komprimačního algoritmu, tři nejznámější jsme si již popsali. Výše jmenované programy pak zmenšují data na základě vhodné kombinace více algoritmů. Dále by bylo vhodné říci, že existují dva způsoby komprimace, a to ztrátová a bezztrátová. Tři způsoby, které jsme si popisovali byly bezztrátovou komprimací, tzn. že data, před zabalením a po rozbalení jsou identická. Tuto metodu je vhodné užívat na programy, které by v případě ztráty některých znaků ani nefungovali a na text, kde by rovněž nebylo vhodné aby v něm chyběli písmenka.

Naopak ztrátovou komprimaci lze s výhodou aplikovat na obrázky a hudbu, jelikož jsou mnohdy ve vyšší kvalitě než je lidské oko nebo ucho schopno pojmout, a tak dochází ke ztrátě některých informací o těžko postřehnutelných barvách a částech zvuku. Toho užívají například hudební formát MP3, videoformát MPEG, nebo velice oblíbený grafický formát JPEG neboli JPG.

 

 

Komentáře (0)Add Comment

Napiš komentář
menší | větší

busy
 
Vyhledávání na webu
PC Magazín na Facebooku
Sledujte nás
Anketa
Vzhled webu PCM
 
PC Magazín.cz a další...