Estratto del documento

Codifica di Huffman

Esercizio svolto

Supponiamo di avere la frase “tigre contro tigre”, e di volerla codificare sia

a lunghezza fissa che lunghezza variabile.

Codifica lunghezza fissa

Costruiamo una tabella con le frequenze di ciascun carattere e la sua

codifica.

CarattereSpazioRTEGIOCN
Frequenza332222211
Codifica l. fissa000000010010001101000101011001111000

La frase sarà quindi codificata:

000101000011000000100110011101011000000100000101011000010100001100000010

(72 bit)

Codifica lunghezza variabile

Costruiamo una tabella con le frequenze di ciascun carattere.

CarattereSpazioRTEGIOCN
Frequenza332222211

Sommiamo SEMPRE le ultime due frequenze e ricostruiamo la tabella.

CarattereRTCNEGIOSpazio
Frequenza33222222
CarattereOSpazioRTCNEGI
Frequenza4332222
CarattereGIOSpazioRTCNE
Frequenza443322
CarattereCNEGIOSpazioRT
Frequenza44433
CarattereRTCNEGIOSpazio
Frequenza6444
CarattereGIOSpazioRTCNE
Frequenza864
CarattereRTCNEGIOSpazio
Frequenza108

0 1

1 0 1

0 0 1 1 0 1

E

0 1 0

0 1

T R N C I G Spazio O

Osserva: come si può vedere in figura, è stato costruito il cosiddetto Albero di Huffman, raggruppando tutti i caratteri a due a due, nell’ordine con il quale abbiamo sommato le frequenze.

Una volta costruito l’albero, si inserisce lo 0 su ogni diramazione di sinistra, e l’1 su ogni diramazione a destra.

Costruiamo adesso una tabella di codifica aiutandoci con l’albero.

CarattereRTEGIOSpazioCN
Frequenza332222211
Codifica00100001110110011111001010100

Ora codifichiamo la frase:

00010010100101111001011110100000001111110000100101001011 (56 bit)

Grazie alla codifica a lunghezza variabile abbiamo ottenuto un risparmio del 22,2%!

Anteprima
Vedrai una selezione di 1 pagina su 4
Codifica di Huffman Pag. 1
1 su 4
Sintesi

La codifica di Huffman

Introduzione

Codifica a lunghezza variabile e codifica a lunghezza fissa

Teoricamente parlando, per codifica intendiamo un insieme di simboli utili alla trasmissione di un'informazione. Questo insieme di simboli è definito codice.

Distinguiamo due tipi di codifica: la codifica a lunghezza fissa e la codifica a lunghezza variabile.

Parliamo di codifica a lunghezza fissa quando si codificano i caratteri di un'informazione ciascuno con il medesimo numero di bit.

La codifica a lunghezza variabile, un esempio è la codifica di Huffman, utilizza un numero variabile di bit per ogni carattere da codificare.

La codifica di Huffman

Abbiamo detto che la codifica di Huffman è una codifica che utilizza un numero variabile di bit per ogni carattere. Come determinare la codifica di ogni carattere? Qui entra in gioco la frequenza, ovvero il numero di volte che un carattere è presente all'interno di un file.

È importante ricordare che la frequenza di un carattere e la sua lunghezza (il numero di bit necessari a codificarlo) sono inversamente proporzionali.

Un carattere piuttosto ricorrente in un file avrà una lunghezza di codifica minore.

Una codifica a lunghezza variabile è vantaggiosa perché permette un notevole risparmio di memoria generalmente compreso tra il 20% e il 90% del file codificato a lunghezza fissa. Infatti i codici di Huffman sono molto utilizzati nella compressione di alcuni file particolari (.zip, .mp3, .jpeg).

Il procedimento della codifica di Huffman è spiegato nel file allegato.

D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi