Utente:Hellis/Introduzione

Questo libro tratterà le principali tecniche di compressione dei dati. Il libro è rivolto a un lettore generico quindi non scenderà in dettagli tecnici o implementativi, la sua lettura permetterà al lettore di conoscere le principali tecniche di compressione con i loro vantaggi e i loro svantaggi. Per lo stesso motivo alcuni concetti teorici come l'entropia, la ridondanza o la complessità secondo Kolmogorov saranno tralasciati o solamente accennati; questi concetti molto importanti dal punto di vista della teoria della compressione dei dati ma non sono indispensabili per una comprensione iniziale delle tecniche di compressione.

La compressione dei dati è un insieme di tecniche utilizzate in ambito informatico per ridurre il numero di bit necessari alla rappresentazione in forma digitale di un'informazione. La compressione dati viene utilizzata sia per ridurre le dimensioni di un file, e quindi lo spazio necessario per la sua memorizzazione, sia per ridurre l'occupazione di banda necessaria in una generica trasmissione dati come ad esempio una trasmissione televisiva in diretta. Le varie tecniche di compressione organizzano in modo più efficiente i dati, spesso perdendo una parte dell'informazione originale, al fine di ottenere una rappresentazione dell'informazione più compatta quindi comportante minori risorse per la sua memorizzazione e trasmissione. Come controparte la compressione dati necessita però di potenza di calcolo per le operazioni di compressione e decompressione, spesso anche elevata se tali operazioni devono essere eseguite in tempo reale.

Le tecniche di compressione dati si dividono in due grandi categorie, la compressione senza perdita d'informazione e la compressione a perdita d'informazione. La prima tipologia di compressione cerca di riorganizzare le informazioni al fine di ottenere una codifica più compatta dei dati ma nel contempo preservando integralmente il contenuto informativo. La seconda tecnica di compressione parte dal presupposto che molte informazioni all'interno dei dati sono poco significative per l'utente e che quindi una loro eliminazione non verrebbe notata dallo stesso. La prima tecnica di compressione viene utilizzata principalmente per trasmettere file che non possono essere alterati come programmi eseguibili, documenti o più in genere archivi. Comunque in generale questa tipologia di compressione può elaborare qualsiasi tipologia di file, su alcuni file mostrerà delle prestazioni elevate mentre su altri mostrerà risultati modesti o in alcuni casi mostrerà dei risultati negativi, con file compressi più grandi dei file non compressi. La compressione a perdita d'informazione invece viene utilizzata per file che possono essere alterati senza comprometterne il loro utilizzo, gli esempi più comuni sono le immagini, la musica e le animazioni.

La scelta della tecnica di compressione da utilizzare quindi dipende in modo determinate da quale tipologia di file si trattare e dell'uso che se ne deve fare. Per esempio il formato di memorizzazione delle immagini JPEG utilizza una tecnica di compressione dei dati a perdita d'informazione. Questo permette di salvare dei file che occupano un decimo dello spazio di partenza mantenendo nel contempo una buona qualità dell'immagine; difatti il JPEG è uno dei formati più utilizzati per memorizzare le immagini. Purtroppo la compressione JPEG introduce degli artefatti nelle immagini, questi artefatti inizialmente sono quasi invisibili ma ogni volta che l'immagine viene salvata vengono creati nuovi artefatti. Quindi se una persona prende un'immagine JPEG, continua a modificarla e a salvarla introduce molti artefatti nell'immagine e questi possono rendersi visibili. Difatti negli studi grafici si preferisce utilizzare formati che possono non utilizzare tecniche di compressione con perdita d'informazione come il formato TIFF o il BMP.