A rejtély feloldása: Hogyan működnek a ZIP-fájlok

Ha valaha is több nagyméretű fájlt vagy programot kellett e-mailben elküldenie, feltöltenie vagy letöltenie, valószínűleg találkozott már ZIP-fájlokkal. A tömörített vagy archivált fájlokként is ismert ZIP-fájlok több fájlt tömörítenek egyetlen helyre .zip vagy .ZIP kiterjesztéssel, csökkentve az összméretet és megkönnyítve a továbbítást.

Phillip Katz találta fel a ZIP-fájlt 1986-ban, és először a PKZip programmal valósult meg Katz cégének, a PKWare, Inc. számára. Végül Katz tömörítési módszere elterjedt a népszerű operációs rendszereken belül. A Microsoft Windows és az Apple Mac OS beépített segédprogramokat tartalmaz a fájlok tömörítésére és kicsomagolására, és az olyan programok, mint a WinRAR, a WinZip és a StuffIt képesek ezeket bővíteni.

TOVÁBB:

De hogyan működik mindez? Milyen technológiai varázslat van a háttérben, amely kisebbé teszi a fájlokat, miközben minden információt megtart a későbbiekre?

Ez a “varázslat” valójában egy elég egyszerű algoritmus, amely a fájl felesleges aspektusait veszi és kisebb részekre bontja.

Egy könnyen érthető példa kedvéért vegyük a következő mondatot: “A Mashable segíthet okosabbá tenni az olvasókat; az olvasók segíthetnek okosabbá tenni a Mashable-t”, és tegyünk úgy, mintha ez egy fájl lenne.

A példamondatban minden szó kétszer szerepel. Ha ebben a mondatban minden egyes karakter és szóköz egy memóriaegységet foglalna el, akkor az egésznek 78 egységnyi lenne a fájlmérete. Ha létrehoznánk egy számozott kódot – vagy “szótárt” – ehhez a mondathoz, az valahogy így nézne ki:


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

Ez az új mondat mindössze 24 egységből áll. Ezért a tömörített fájlnak csak 24 egységnyi memóriája lenne egy másik fájl mellett, amely a számozott kódunkat sorolja fel, hogy a tömörítő program tudja, hogyan kell alkalmazni az egyes információegységeket. Ezt hívják “veszteségmentes tömörítésnek”; az összes eredeti információ megmarad.

Az, ahogyan egy tényleges tömörítőprogram működik, egy kicsit bonyolultabb, mint az előző példa – felismerné a mintákat. Egy példa erre az “e” betű és egy szóköz a “Mashable” és a “make” után. De mivel ez a bizonyos minta nem sokszor fordul elő, a program valószínűleg felülírná egy sokkal nyilvánvalóbb mintával. A tényleges program sokkal hatékonyabb szótárat és tömörített fájlt tud találni, mint mi.

A HowStuffWorks oktatási és oktató weboldal szerint a nyelvekben gyakori, hogy vannak redundáns minták, ezért a szövegfájlok könnyen tömöríthetők. A fájlcsökkentési arány azonban több tényezőtől függ, többek között a fájl típusától és méretétől, valamint attól, hogy a program hogyan választja a tömörítést.

A képek és az MP3-fájlok ezzel szemben több egyedi információt tartalmaznak, sok minta nélkül. Itt jön a képbe a “veszteséges tömörítés” – a tömörítő programok megszabadulnak az általuk feleslegesnek ítélt információktól. Ha például egy szkennelt képen kék égbolt lenne, egy tömörítő program minden egyes pixelhez kiválaszthatna egy használt kék színt. Ha a tömörítési program jól működik, a változás nem lenne nagyon észrevehető, de a fájl mérete jelentősen kisebb lenne.

A veszteséges tömörítéssel azonban az a probléma, hogy a tömörített fájlból nem kapja meg az eredeti fájlt, így kevésbé ideális, mint a veszteségmentes tömörítés, ha az összes eredeti információra szükség van, például adatbázisok és bizonyos alkalmazások letöltésekor.

Mashable composite image courtesy of , tose, Auris.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.