La compressione dei dati senza perdita di dati è un metodo informatico per archiviare i file e combinarli in archivi che occupa meno spazio fisico in memoria rispetto a quanto farebbero altrimenti i file senza perdere alcuna informazione che i dati contengono nel processo. La compressione con perdita, al contrario, riduce le dimensioni del file con approssimazioni dei dati e il ripristino è simile al facsimile del contenuto del file originale. Gli algoritmi utilizzati per la compressione dei dati senza perdita di dati sono essenzialmente un insieme di regole o istruzioni semplificate per codificare le informazioni utilizzando meno bit di memoria pur mantenendo la capacità di ripristinare i dati nel loro formato originale senza alterazioni.
Alcuni tipi di file comuni che utilizzano la compressione dei dati senza perdita di dati includono lo zip basato su computer IBM (International Business Machines) e gli archivi di file gzip basati su computer Unix. Vengono utilizzati anche formati di file di immagine come il formato di interscambio grafico (GIF), la grafica di rete portatile (PNG) e i file Bitmap (BMP). Gli algoritmi di compressione dei dati variano anche in base al tipo di file compresso, con variazioni comuni per i file di testo, audio e programma eseguibile.
Le due principali categorie di algoritmi per la compressione dei dati senza perdita di dati si basano su un modello statistico dei dati di input e un modello di mappatura delle stringhe di bit in un file di dati. Gli algoritmi statistici di routine utilizzati sono la trasformata di Burrows-Wheeler (BWT), l’algoritmo di Abraham Lempel e Jacob Ziv (LZ77) pubblicato nel 1977 e il metodo Prediction by Partial Matching (PPM). Gli algoritmi di mappatura frequentemente impiegati includono l’algoritmo di codifica di Huffman e la codifica aritmetica.
Alcuni degli algoritmi sono strumenti open source e altri sono proprietari e brevettati, sebbene anche i brevetti su alcuni siano scaduti. Ciò può comportare l’applicazione di metodi di compressione a un formato di file errato. A causa del fatto che alcuni metodi di compressione dei dati sono incompatibili tra loro, l’archiviazione di file misti può spesso degradare un componente di un file. Ad esempio, un file immagine con testo compresso può mostrare un peggioramento della leggibilità del testo una volta ripristinato. Scanner e software che utilizzano l’induzione grammaticale possono estrarre il significato dal testo memorizzato insieme ai file di immagine applicando la cosiddetta analisi semantica latente (LSA).
Un’altra forma di metodo dell’algoritmo di mappatura per la compressione dei dati senza perdita di dati è l’uso del codice universale. Più flessibile da usare rispetto alla codifica di Huffman, non richiede la conoscenza anticipata dei valori interi massimi. Tuttavia, la codifica di Huffman e la codifica aritmetica producono tassi di compressione dei dati migliori. Sono inoltre in corso sforzi per produrre metodi universali di compressione dei dati che creino algoritmi che funzionino bene per una varietà di fonti.