Rozluštění záhady: Jak fungují soubory ZIP

Pokud jste někdy museli poslat e-mailem, odeslat nebo stáhnout několik velkých souborů nebo programů, pravděpodobně jste se setkali se soubory ZIP. Soubory ZIP, známé také jako komprimované nebo archivované soubory, zhušťují více souborů do jednoho umístění s příponou .zip nebo .ZIP, čímž zmenšují jejich celkovou velikost a usnadňují jejich přenos.

Phillip Katz vynalezl soubor ZIP v roce 1986 a poprvé byl implementován pomocí programu PKZip pro Katzovu společnost PKWare, Inc. Nakonec se Katzova kompresní metoda začala běžně používat v rámci populárních operačních systémů. Operační systémy Microsoft Windows a Apple Mac OS obsahují vestavěné nástroje pro kompresi a rozbalování souborů a programy jako WinRAR, WinZip a StuffIt je mohou rozšiřovat.

PŘEHLÉDNĚTE SI TAKÉ:

Ale jak to všechno funguje? Jaká technologická magie je ve hře, která zmenšuje soubory a zároveň zachovává všechny informace pro pozdější použití?

Tato “magie” je vlastně docela jednoduchý algoritmus, který bere nadbytečné aspekty souboru a rozděluje ho na menší části.

Pro snadno pochopitelný příklad vezměme větu: “Mashable může pomoci udělat čtenáře chytřejšími; čtenáři mohou pomoci udělat Mashable chytřejším.” a předstírejme, že jde o soubor.

Každé slovo v příkladové větě se objevuje dvakrát. Pokud by každý znak a mezera v této větě tvořily jednu paměťovou jednotku, měl by celý soubor velikost 78 jednotek. Kdybychom pro tuto větu vytvořili číslovaný kód – neboli “slovník” -, mohl by vypadat nějak takto:


1. Mashable
2. can
3. help
4. make
5. readers
6. smarter
1 2 3 4 5 6; 5 2 3 4 1 6

Tato nová věta má pouze 24 jednotek. Komprimovaný soubor by tedy kromě dalšího souboru, v němž je uveden náš číslovaný kód, měl v paměti pouze 24 jednotek, aby komprimační program věděl, jak jednotlivé jednotky informací použít. Tomu se říká “bezeztrátová komprese”; všechny původní informace zůstanou zachovány.

Způsob, jakým pracuje skutečný kompresní program, je o něco složitější než v předchozím příkladu – rozpoznával by vzory. Příkladem je písmeno “e” a mezera za slovy “Mashable” a “make”. Protože však není mnoho případů, kdy se tento konkrétní vzor vyskytuje, program by jej s největší pravděpodobností přepsal zjevnějším vzorem. Skutečný program je schopen najít mnohem efektivnější slovník a komprimovaný soubor než my.

Podle vzdělávacího a výukového webu HowStuffWorks je běžné, že jazyky mají nadbytečné vzory, a proto se textové soubory snadno komprimují. Poměr zmenšení souboru však závisí na několika faktorech, včetně typu a velikosti souboru a způsobu, který program zvolí pro jeho kompresi.

Oproti tomu obrázky a soubory MP3 obsahují více jedinečných informací bez mnoha vzorů. Zde přichází ke slovu “ztrátová komprese” – kompresní programy se zbavují toho, co považují za nepotřebné informace. Pokud byste měli například naskenovaný obrázek s modrou oblohou, mohl by kompresní program vybrat pro každý pixel jednu použitou modrou barvu. Pokud by kompresní schéma fungovalo dobře, změna by nebyla příliš patrná, ale velikost souboru by byla výrazně menší.

Problém ztrátové komprese však spočívá v tom, že z komprimovaného souboru nemůžete získat původní soubor, takže je méně ideální než bezeztrátová komprese, pokud potřebujete zachovat všechny původní informace, například při stahování databází a některých aplikací.

Kompozitní obrázek Mashable s laskavým svolením , tose, Auris.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.