Vad är förlustfri datakomprimering?
Förlustfri datakomprimering är en datormetod för att lagra filer och kombinera dem i arkiv som tar mindre fysiskt utrymme i minnet än vad filerna annars skulle göra utan att förlora någon information datan innehåller i processen. Förlorad komprimering, däremot, minskar filstorleken med ungefärliga data, och återställning är en nära fax till det ursprungliga filinnehållet. Algoritmer som används för förlustfri datakomprimering är i huvudsak en uppsättning strömlinjeformade regler eller instruktioner för kodning av informationen med färre bitar av minne samtidigt som man fortfarande behåller möjligheten att återställa data till sitt ursprungliga format utan förändring.
Vissa vanliga filtyper som använder förlustfri datakomprimering inkluderar International Business Machines (IBM) datorbaserad zip och Unix datorbaserade gzip-filarkiv. Också används bildfilformat som grafiskt utbytesformat (GIF), portabel nätverksgrafik (PNG) och Bitmap (BMP). Datakomprimeringsalgoritmer varierar också beroende på filtypen som komprimeras, med vanliga variationer för text-, ljud- och körbara programfiler.
De två huvudkategorierna av algoritmer för förlustfri datakomprimering är baserade på en statistisk modell av inmatningsdata och en kartläggningsmodell av bitsträngar i en datafil. Rutinmässiga statistiska algoritmer som används är Burrows-Wheeler-transformen (BWT), Abraham Lempel och Jacob Ziv (LZ77) -algoritmen publicerad 1977, och metoden Prediction by Partial Matching (PPM). Kartläggningsalgoritmer som ofta används inkluderar Huffman-kodningsalgoritmen och aritmetisk kodning.
Några av de förlustfria datakomprimeringsalgoritmerna är öppen källkodsverktyg och andra är egenutvecklade och patenterade, även om patent på vissa nu också har gått ut. Detta kan leda till att komprimeringsmetoder ibland tillämpas på fel filformat. Eftersom vissa datakomprimeringsmetoder är oförenliga med varandra kan lagring av blandade filer ofta försämra en komponent i en fil. Till exempel kan en bildfil med text som är komprimerad visa nedbrytning i textens läsbarhet när den har återställts. Skannrar och programvara som använder grammatikinduktion kan extrahera betydelse från text lagrad tillsammans med bildfiler genom att använda det som kallas latent semantisk analys (LSA).
En annan form av kartläggningsalgoritmmetod för förlustfri datakomprimering är användningen av universalkod. Mer flexibel att använda än Huffman-kodning, det kräver inte kunskap om maximala heltalvärden i förväg. Huffman-kodning och aritmetisk kodning ger dock bättre datakomprimeringshastigheter. Insatser pågår också för att producera universella datakomprimeringsmetoder som skulle skapa algoritmer som fungerar bra för en mängd olika källor.