Om du någonsin har varit tvungen att skicka e-post, ladda upp eller ladda ner flera stora filer eller program har du troligen stött på ZIP-filer. ZIP-filer kallas också komprimerade eller arkiverade filer och komprimerar flera filer till en enda plats med ändelsen .zip eller .ZIP, vilket minskar den totala storleken och gör dem lättare att överföra.
Phillip Katz uppfann ZIP-filen 1986 och den implementerades för första gången i programmet PKZip för Katz’ företag, PKWare, Inc. Så småningom blev Katz’ komprimeringsmetod vanligt förekommande i populära operativsystem. Microsoft Windows och Apples Mac OS har inbyggda verktyg för att komprimera och packa upp filer, och program som WinRAR, WinZip och StuffIt kan expandera dem.
Men hur fungerar allt detta? Vad är det för teknisk magi som gör dina filer mindre samtidigt som all information bevaras för senare?
Denna “magi” är faktiskt en ganska enkel algoritm som tar de överflödiga aspekterna av en fil och delar upp den i mindre delar.
För att få ett lättförståeligt exempel tar vi meningen “Mashable kan hjälpa till att göra läsarna smartare; läsarna kan hjälpa till att göra Mashable smartare” och låtsas att det är en fil.
Varje ord i exempelmeningen förekommer två gånger. Om varje tecken och mellanslag i den här meningen utgjorde en minnesenhet skulle det hela ha en filstorlek på 78 enheter. Om vi skapade en numrerad kod – eller “ordbok” – för denna mening skulle den kunna se ut ungefär så här:
1. Mashable
2. can
3. help
4. make
5. readers
6. smarter
Denna nya mening har bara 24 enheter. Därför skulle den komprimerade filen ha endast 24 minnesenheter utöver en annan fil som innehåller vår numrerade kod, så att komprimeringsprogrammet vet hur varje informationsenhet ska tillämpas. Detta kallas “förlustfri komprimering”; all ursprunglig information behålls.
Det sätt på vilket ett verkligt komprimeringsprogram fungerar är lite mer komplicerat än det föregående exemplet – det skulle känna igen mönster. Ett exempel är bokstaven “e” och ett mellanslag efter “Mashable” och “make”. Men eftersom det inte finns så många tillfällen då just detta mönster förekommer, skulle programmet troligen skriva över det med ett mer uppenbart mönster. Det faktiska programmet kan hitta en mycket effektivare ordbok och komprimerad fil än vad vi skulle kunna göra.
Enligt den pedagogiska och instruerande webbplatsen HowStuffWorks är det vanligt att språk har redundanta mönster, vilket är anledningen till att textfiler lätt kan komprimeras. Men filminskningsgraden beror på flera faktorer, bland annat filens typ och storlek och hur programmet väljer att komprimera den.
Däremot innehåller bilder och MP3-filer mer unik information utan många mönster. Det är här som “förlustkomprimering” kommer in – komprimeringsprogram gör sig av med vad de anser vara onödig information. Om du till exempel har en skannad bild med en blå himmel kan ett komprimeringsprogram välja ut en färg av blått som används för varje pixel. Om komprimeringsprogrammet fungerar bra skulle förändringen inte vara särskilt märkbar, men filstorleken skulle bli betydligt mindre.
Problemet med förlustkomprimering är dock att du inte kan få fram originalfilen från den komprimerade filen, vilket gör den mindre idealisk än förlustfri komprimering när du behöver behålla all originalinformation, t.ex. när du laddar ner databaser och vissa program.
Mashable kompositbild med artighet av , tose, Auris.