Što je kompresijski algoritam?

Računalne datoteke mogu zauzeti veliku količinu prostora na tvrdom disku, kao i veliku propusnost za prijenos. Kako bi se uštedio prostor, posebno s datotekama kojima se ne pristupa često, i propusnost za datoteke koje se prenose, razvijene su metode pohrane za spremanje podataka u manjem paketu komprimiranjem na neki način. U svakom slučaju koristi se algoritam kompresije – metoda za smanjenje veličine podataka. Postoji nekoliko popularnih kategorija i tipova algoritma kompresije, od kojih svaka radi na drugačiji način, a neke od njih imaju rezultate koji se bitno razlikuju. Koristeći različite algoritme kompresije, općenito je moguće smanjiti tekstualnu datoteku na manje od polovice njezine izvorne veličine; za grafičke datoteke, rezultati se uvelike razlikuju. Datoteka koja nastaje kompresijom može biti različitog formata ili arhivska datoteka, koja se često koristi za pohranu, prijenos i distribuciju.

Jedan od načina kategorizacije algoritama kompresije je prema tome koriste li rječničke ili statističke metode za komprimiranje podataka. Metoda rječnika fokusira se na ponovljive fraze i koristi se u GIF slikama te u JAR i ZIP arhivama. Statistička metoda se oslanja na učestalost korištenja za pretvorbu, koja se obavlja u dva prolaza. Primjer je modificirani Huffman (mh), koji se koristi u nekim faks uređajima.

Drugi način kategorizacije kompresijskih algoritama, a onaj s kojim se neprofesionalni programeri najčešće susreću, je prema tome jesu li bez gubitaka ili s gubicima. Algoritam kompresije podataka bez gubitaka je onaj koji komprimira podatke na takav način da kada se dekomprimiraju, budu potpuno identični izvornoj datoteci. Jedan primjer algoritma kompresije podataka bez gubitaka je lzw (Lempel-Ziv-Welch algoritam). Razvijen 1977. od strane Lempela i Ziva i poboljšan 1984. od strane Welcha, koristi se u datotekama kao što su GIF, TIF i PDF, kao i u određenim modemima.

Algoritam kompresije podataka s gubitkom ima kapacitet za smanjenje podataka na manju veličinu od kompresije bez gubitaka, ali po cijenu nekih izvornih podataka. Drugim riječima, obnova nakon kompresije podataka s gubitkom ne daje identičnu kopiju izvorne datoteke. Algoritam kompresije je, međutim, dizajniran da ograniči gubitke tako da nisu vidljivi uhu ili oku. Kompresija s gubitkom koristi se u formatima datoteka kao što su AAC, JPEG, MPEG i MP3.