In un modo o nell'altro, ci siamo tutti scontrati con i limiti di memoria dei nostri dispositivi. Per aggirare tali limiti si usano tecniche di compressione, che consentono di ridurre le dimensioni dei nostri file. La compressione però viene applicata in quasi tutti i formati con cui abbiamo a che fare: dai pdf, ai file di tipo jpeg o gif. Inoltre, nelle trasmissioni numeriche è indispensabile ridurre il numero di bits da trasmettere per aumentare la velocità delle comunicazioni. Tutte queste tecniche prendono il nome di codifica di sorgente, e saranno l'oggetto di questo articolo. Dopo una breve introduzione alla teoria dell'informazione, affronteremo la codifica di sorgente analizzando due fondamentali algoritmi di compressione: la codifica di Huffman e quella di Lempel-Ziv. Queste due codifiche, grazie anche alle loro innumerevoli varianti, trovano applicazione in molti dei formati di file con cui abbiamo quotidianamente a che fare.
Introduzione
Nella figura 1 viene riportato lo schema a blocchi generale di un sistema di comunicazione.
Andiamo ad analizzare i singoli blocchi:
- I blocchi S e D, rappresentano rispettivamente la sorgente di informazione e la destinazione.
- Codificatore e decodificatore di sorgente si occupano di applicare la codifica di sorgente in trasmissione e di recuperare il segnale in ricezione.
- Allo stesso modo il codificatore e il decodificatore di canale effettuano le medesime operazioni con la codifica di canale.
- Modulatore e demodulatore permettono al segnale di viaggiare sul canale.
In particolare i blocchi dei punti 2 e 3 sono deputati all'attuazione della cosiddetta teoria dei codici. Essa si occupa dello studio dei codici e delle loro applicazioni specifiche. Principalmente si identificano 3 tipologie di codifiche:
- Codifica di sorgente o compressione dati, il cui compito è quello di rimuovere la ridondanza nell'informazione da trasmettere.
- Codifica di canale o correzione di errori, il cui compito è quello di aggiungere ridondanza algebrica nell'informazione da trasmettere.
- Infine la crittografia, il cui compito è quello di celare il messaggio da trasmettere a tutti quelli che non sono il destinatario.
In questo articolo affronteremo soltanto la codifica di sorgente, visto che le altre due sono state già affrontate in precedenti articoli.
La codifica di sorgente è conosciuta nell'accezione comune come tecniche di compressione. Lo scopo della compressione è quello di ridurre la mole di dati operando sulle parti ridondanti dell'oggetto che si [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2302 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
L’algoritmo huffman trova spazio anche in altre codifiche quali zip e mp3, e fornisce una rappresentazione piu’ compatta dei dati. Per le immagini tiff/bmp vale sempre la codifica huffman come base…?
Per quanto rigurada bmp è un formato tra i più onerosi in termini di memoria, ed è semplicemente un formato di file per rappresentare un’immagine a cui si può associare una compressione per ridurne il peso denominata RLE. Per quanto riguarda TIFF, nella figura 5 viene indicato che il formato è basato su una variante di LZ78, ovvero la LZW (dove W sta per Welch).