Hva er en kompresjonsalgoritme?
Datafiler kan ta mye plass på en harddisk i tillegg til mye båndbredde å overføre. For å spare plass, spesielt med filer som ikke ofte er tilgjengelig, og båndbredde for filer som overføres, er det utviklet lagringsmetoder for å lagre dataene i en mindre pakke ved å komprimere dem på noen måte. I begge tilfeller brukes en komprimeringsalgoritme - en metode for å redusere datastørrelsen. Det er flere populære kategorier og typer komprimeringsalgoritme, som hver fungerer på en annen måte, og noen av dem har resultater som er forskjellige på viktige måter. Ved bruk av forskjellige komprimeringsalgoritmer er det generelt mulig å redusere en tekstfil til under halvparten av sin opprinnelige størrelse; for grafikkfiler varierer resultatene mye. Filen som følger av komprimering kan enten være av et annet format eller en arkivfil, som ofte brukes til lagring, overføring og distribusjon.
En måte å kategorisere komprimeringsalgoritmer er ved å bruke om ordbok eller statistiske metoder for å komprimere data. Ordbokmetoden fokuserer på repeterbare setninger og brukes i GIF-bilder og i JAR- og ZIP-arkiver. Den statistiske metoden er avhengig av frekvensen av bruk for å gjøre en konvertering, som gjøres i to passeringer. Et eksempel er Modified Huffman (mh), brukt i noen faksmaskiner.
En annen måte å kategorisere komprimeringsalgoritmer, og den som ikke-profesjonelle programmerere ofte støter på, er om de er tapsløse eller taper. En tapsfri algoritme for datakomprimering er en som komprimerer dataene på en slik måte at når den er dekomprimert, er den nøyaktig identisk med den originale filen. Et eksempel på en tapsfri algoritme for datakomprimering er lzw (Lempel-Ziv-Welch algoritme). Den ble utviklet i 1977 av Lempel og Ziv og forbedret i 1984 av Welch, og brukes i filer som GIF, TIF og PDF, samt visse modemer.
En tapbar datakomprimeringsalgoritme har kapasitet til å redusere data til en mindre størrelse enn tapsfri komprimering, men på bekostning av noen av de originale dataene. Med andre ord, restaureringen etter tap av datakomprimering gir ikke en identisk kopi av originalfilen. Kompresjonsalgoritmen er imidlertid designet for å begrense tapene slik at de ikke er synlige for øret eller øyet. Tapskomprimering brukes i filformater som AAC, JPEG, MPEG og MP3.