Sei sulla pagina 1di 3

CODIFICA ARITMETICA

La codifica aritmetica è una tecnica più sofisticata di quella utilizzata da Huffman. Si


tratta di una codifica che permette la compressione dei dati senza la perdita di
informazioni. Permette di codificare sequenze di simboli e risulta quindi più efficiente.

La codifica aritmetica assegna dei codici di lunghezza variabile, un intervallo di numeri


reali, ad ogni sequenza di simboli al fine di minimizzare il numero totale di bit da
trasmettere, cioè assegna una singola codifica all’intero messaggio o a blocchi di
messaggi. Essa è in grado di codificare un simbolo anche con valori frazionari di bit.

Esempio

Abbiamo a disposizione quattro simboli: A, B, C e D.

“BAABCADBADAACBAAAABDAABACBADCBAA"

Per i seguenti simboli conosciamo le probabilità di verificarsi di ognuno, cioè:

A = = 0.5

B = = 0.25

C = 0.125

D = 0.125

A partire dalle probabilità dei simboli, possiamo riportarle tutte in un intervallo unitario.
L’intervallo unitario utilizzato sarà e otteniamo la seguente suddivisione:

Per capire meglio:

A B C D
0.5 0.25 0.125 0.125

Simboli Valori Intervalli


A 0.5 [0;0.5) 0 + 0.5 = 0.5
B 0.25 [0.5;0.75) 0.5 + 0.25 = 0.75
C 0.125 [0.75;0.875) 0.75 + 0.125 = 0.875
D 0.125 [0.875;1) 0.875 + 0.125 = 1
L’obiettivo è quello di codificare i primi quattro simboli del messaggio seguente:

“BAABCADBADAACBAAAABDAABACBADCBAA"

1
Per prima cosa bisogna individuare all’interno dell’intervallo il segmento relativo alla
probabilità che la sequenza “BAAB” ha di verificarsi.

Si parte dal primo simbolo B e poi si prosegue con il resto dei simboli della parte di
messaggio da codificare. L’ampiezza degli intervalli diminuisce ad ogni passo.

La codifica aritmetica ci porta allora a concludere che l’intervallo relativo alla sequenza
“BAAB” è il seguente:

Quindi, esistono 64 () possibili combinazioni e ad ogni numero scelto corrisponde una


possibile combinazione di 4 lettere (o simboli).

Al termine della codifica dei quattro simboli troveremo 6 caratteri finali, invece degli 8
iniziali (caratteri iniziali dei simboli “BAAB” 00 01 10 11), quindi possiamo dire che c’è
stata compressione dei dati.

Fonti

PDF “Compressione Huffman e codifica aritmetica”

2
http://www.di.unito.it/~marcog/SM/L04.pdf

http://cs.unibg.it/paris/rim/download/03-Codifica.pdf

http://www.di.unito.it/~marcog/SM/L04.pdf

http://users.dimi.uniud.it/~christian.micheloni/TCPN08/Lezione3.pdf

Potrebbero piacerti anche