Jos olet joskus joutunut lähettämään sähköpostia, lataamaan tai lataamaan useita suuria tiedostoja tai ohjelmia, olet todennäköisesti törmännyt ZIP-tiedostoihin. ZIP-tiedostot, jotka tunnetaan myös nimellä pakatut tai arkistoidut tiedostot, tiivistävät useita tiedostoja yhteen paikkaan, jossa on tiedostopääte .zip tai .ZIP, mikä pienentää kokonaiskokoa ja helpottaa niiden lähettämistä.
Phillip Katz keksi ZIP-tiedoston vuonna 1986, ja se otettiin ensimmäisen kerran käyttöön PKZip-ohjelmalla Katzin yritykselle, PKWare, Inc. Lopulta Katzin pakkausmenetelmä tuli yleiseen käyttöön suosituissa käyttöjärjestelmissä. Microsoft Windows ja Applen Mac OS sisältävät sisäänrakennettuja apuohjelmia tiedostojen pakkaamiseen ja purkamiseen, ja ohjelmat kuten WinRAR, WinZip ja StuffIt voivat laajentaa niitä.
Mutta miten se kaikki toimii? Millainen teknologinen taika on kyseessä, joka tekee tiedostoistasi pienempiä säilyttäen samalla kaiken tiedon myöhempää käyttöä varten?
Tämä “taika” on itse asiassa melko suoraviivainen algoritmi, joka ottaa tiedoston turhat osat ja jakaa sen pienempiin osiin.
Helposti ymmärrettävän esimerkin vuoksi otetaan lause: “Mashable voi auttaa tekemään lukijoista älykkäämpiä; lukijat voivat auttaa tekemään Mashablesta älykkäämmän” ja kuvitellaan, että kyseessä on tiedosto.
Esimerkkilauseen jokainen sana esiintyy kahdesti. Jos jokainen tämän lauseen merkki ja välilyönti muodostaisi yhden muistin yksikön, koko lauseen tiedostokoko olisi 78 yksikköä. Jos loisimme tälle lauseelle numeroidun koodin – tai “sanakirjan” – se voisi mennä jotakuinkin näin:
1. Mashable
2. can
3. help
4. make
5. readers
6. smarter
Tässä uudessa lauseessa on vain 24 yksikköä. Siksi pakatussa tiedostossa olisi vain 24 yksikköä muistissa toisen tiedoston lisäksi, jossa luetellaan numeroitu koodimme, jotta pakkausohjelma tietäisi, miten kutakin informaatioyksikköä sovelletaan. Tätä kutsutaan “häviöttömäksi pakkaukseksi”; kaikki alkuperäinen informaatio säilyy.
Tapa, jolla varsinainen pakkausohjelma toimii, on hieman monimutkaisempi kuin edellisessä esimerkissä – se tunnistaisi kuvioita. Esimerkkinä voidaan mainita kirjain “e” ja välilyönti sanojen “Mashable” ja “make” jälkeen. Mutta koska tätä kuviota ei esiinny montaa kertaa, ohjelma todennäköisesti korvaisi sen ilmeisemmällä kuviolla. Varsinainen ohjelma pystyy löytämään paljon tehokkaamman sanakirjan ja pakatun tiedoston kuin me pystyisimme.
Koulutus- ja opetussivusto HowStuffWorksin mukaan on yleistä, että kielissä on turhia kuvioita, minkä vuoksi tekstitiedostot ovat helposti pakattavissa. Tiedoston pienentämissuhde riippuu kuitenkin useista tekijöistä, kuten tiedoston tyypistä ja koosta sekä siitä, miten ohjelma päättää pakata sen.
Kuvat ja MP3-tiedostot sen sijaan sisältävät enemmän ainutkertaista tietoa ilman monia kuvioita. Tässä on kyse “häviöllisestä pakkauksesta” – pakkausohjelmat hankkiutuvat eroon tarpeettomaksi katsomastaan informaatiosta. Jos sinulla olisi esimerkiksi skannattu kuva, jossa on sininen taivas, pakkausohjelma voisi poimia jokaisesta pikselistä yhden käytetyn sinisen värin. Jos pakkausohjelma toimii hyvin, muutos ei olisi kovin huomattava, mutta tiedostokoko olisi huomattavasti pienempi.
Häviöllisen pakkauksen ongelmana on kuitenkin se, että pakatusta tiedostosta ei saa alkuperäistä tiedostoa, joten se ei ole yhtä ihanteellinen kuin häviötön pakkaus silloin, kun kaikki alkuperäiset tiedot on säilytettävä, kuten tietokantoja ja tiettyjä sovelluksia ladattaessa.
Mashable composite image courtesy of , tose, Auris.