Kaj je kompresijski algoritem?

Računalniške datoteke lahko zavzamejo veliko prostora na trdem disku, pa tudi veliko pasovne širine za prenos. Da bi prihranili prostor, zlasti pri datotekah, ki niso pogosto dostopne, in pasovno širino za datoteke, ki se prenašajo, so bile razvite metode shranjevanja za shranjevanje podatkov v manjšem paketu tako, da jih na nek način stisnejo. V vsakem primeru se uporablja kompresijski algoritem – metoda za zmanjšanje velikosti podatkov. Obstaja več priljubljenih kategorij in vrst kompresijskih algoritmov, od katerih vsaka deluje na drugačen način, nekateri pa imajo rezultate, ki se bistveno razlikujejo. Z uporabo različnih algoritmov stiskanja je običajno mogoče zmanjšati besedilno datoteko na manj kot polovico prvotne velikosti; pri grafičnih datotekah se rezultati zelo razlikujejo. Datoteka, ki nastane pri stiskanju, je lahko drugačna oblika ali arhivska datoteka, ki se pogosto uporablja za shranjevanje, prenos in distribucijo.

Eden od načinov za kategorizacijo kompresijskih algoritmov je, ali za stiskanje podatkov uporabljajo slovarske ali statistične metode. Metoda slovarja se osredotoča na ponovljive fraze in se uporablja v slikah GIF ter v arhivih JAR in ZIP. Statistična metoda temelji na pogostosti uporabe za pretvorbo, ki se izvede v dveh prehodih. Primer je Modified Huffman (mh), ki se uporablja v nekaterih faksih.

Drugi način za kategorizacijo kompresijskih algoritmov in tisti, s katerim se najpogosteje srečujejo nepoklicni programerji, je glede na to, ali so brez izgub ali z izgubo. Algoritem za stiskanje podatkov brez izgub je tisti, ki stisne podatke na tak način, da so, ko so razpakirani, popolnoma enaki izvirni datoteki. En primer algoritma za stiskanje podatkov brez izgube je lzw (algoritem Lempel-Ziv-Welch). Leta 1977 sta ga razvila Lempel in Ziv in leta 1984 izboljšala Welch, uporablja pa se v datotekah, kot so GIF, TIF in PDF, pa tudi v nekaterih modemih.

Algoritem za stiskanje podatkov z izgubo lahko zmanjša podatke na manjšo velikost kot stiskanje brez izgub, vendar za ceno nekaterih izvirnih podatkov. Z drugimi besedami, obnovitev po stiskanju podatkov z izgubo ne daje identične kopije izvirne datoteke. Vendar pa je kompresijski algoritem zasnovan tako, da omeji izgube, tako da niso vidne ušesu ali očesu. Stiskanje z izgubo se uporablja v formatih datotek, kot so AAC, JPEG, MPEG in MP3.