ompressione di testo
Marco Gori, Università di Siena
Compressione dell’Informazione (Parte I)
Fondamenti e Richiami di Teoria dell’Informazione
Marco Gori
[email protected]
asi di Dati Multimediali, II periodo, 2002
1
ompressione di testo
Marco Gori, Università di Siena
2
Obiettivi
Compressione di testo, rispondere a domande tipo “con quanti bit si codifica un
normale testo in lingua italiana?” programmi come compress,
gzip,
...
Compressione voce e immagini, formati mp2, mp3, jpeg,...
La grande utilità per la memorizzazione degli indici nell’information retrieval
Ma prima, vorrei parlarvi di “Odino e la Città Contesa!”
asi di Dati Multimediali, II periodo, 2002
ompressione di testo
Marco Gori, Università di Siena
Odino e la Città Contesa
Per capire bene le tecniche di compressione ...
qualche utile digressione ...
La città contesa a dadi
Odino (http://digilander.iol.it/sybille/index28.htm): santo o scienziato?
asi di Dati Multimediali, II periodo, 2002
3
ompressione di testo
Marco Gori, Università di Siena
Esistono i Numeri Casuali?
Potrebbe anche essere che si ignora la legge di generazione, ma
la legge potrebbe esistere ... ed essere
(temporaneamente) ignorata!
Adesso vi “dimostro” che i numeri casuali sono solo apparentemente tali, ...
dunque pseudo-casuali!
... e che, forse, ODINO è solo uno scienziato!
asi di Dati Multimediali, II periodo, 2002
4
ompressione di testo
Marco Gori, Università di Siena
Una Legge di Generazione
xk +1
:= (axk + c) mod
Teorema 1 Il periodo della sequenza
f k g è
x
1.
c
è relativamente primo rispetto a m
2.
a
mod
3.
a
mod 4 = 1 se 4 è un fattore di m
p
m
m
se e solo se
= 1 per ogni fattore primo p di m
Esempio 1
xo
:= 1; m := 8; c := 7; a := 5
f k g7k=0 = f1 4 3 6 5 0 7 2g
x
quindi, ..., il
CICLO : x8 = 1.
asi di Dati Multimediali, II periodo, 2002
;
;
;
;
;
;
;
Prova con m = 16; c = 13; a = 11 ...
5
ompressione di testo
Marco Gori, Università di Siena
6
Casualità e Informazione
Claude Shannon, 1948
Dunque, se Odino è uno scienziato, l’informazione delle sorgenti è
ZERO
Forse, almeno per adesso, “dobbiamo assumere che Odino è un Santo!”
Misura dell’informazione
I (S )
Sia n :=
=
X
s2S
j j. Per simboli equiprobabili 8
S
s
I (S )
asi di Dati Multimediali, II periodo, 2002
p(s)
:
log p(s)
p(s)
= log n
1
= n e quindi
ompressione di testo
Marco Gori, Università di Siena
Codici Compatti
Come si codifica in modo “compatto?”
Se tutti i codici sono equiprobabili (massima entropia) solo “Odino ci pu ò aiutare!”
L’unica codifica possibile corrisponde all’ordinaria numerazione binaria. Altrimenti si
usano
codici brevi per simboli molto frequenti
codici lunghi per simboli molto rari
Diventa importante minimizzare
L
asi di Dati Multimediali, II periodo, 2002
=
X
s2S
p(s)`(s)
7
ompressione di testo
Marco Gori, Università di Siena
8
Quanto posso compattare?
Considera q1 ; : : : ; qn
I (S )
j s0
n
X
q
=
Pn
s=1 q (s) = 1. Si ha
;
p(s)
log
s=1
)
1
p(s
n
X
p(s)
log
s=1
Scegliamo:
q (s)
=
2 `(s)
Pn
s=1 2
e quindi
I (S )
asi di Dati Multimediali, II periodo, 2002
X
`(s)
n
L
+ log
s=1
2
`(s)
!
1
q (s)
ompressione di testo
Marco Gori, Università di Siena
9
Diseguaglianza di Kraft
Definizione 1 Codifici istantanei: Non ci sono codici nel prefisso di altri codici.
I codici istantanei si rappresentano naturalmente mediante TRIE
Teorema 2 Condizione necessaria e sufficiente per i
X
s2S
Esempio 2 Per simboli equiprobabili
l’uguaglianza
asi di Dati Multimediali, II periodo, 2002
2
8
s
`(s)
:
CODICI ISTANTANEI
1
`(s)
= log n e si ha dunque
è che
ompressione di testo
Marco Gori, Università di Siena
Ci sono Codici Istantanei con
l(s) = dlog(1=p(s)e)
d
e
Considera un codice con lunghezza l(s) = log(1=p(s) ). Si verifica che è un
CODICE ISTANTANEO.
Infatti
X
s2S
2
l(s)
=
=
=
asi di Dati Multimediali, II periodo, 2002
X
s2S
X
s2S
X
s2S
1
2
2
dlog(1=p(s))e
log(1=p(s))
p(s)
10
ompressione di testo
Marco Gori, Università di Siena
Teorema di Shannon
Lower Bound Lunghezza Media Codici
I (S )
L
+ log
n
X
2
`(s)
L
!
s=1
Teorema 3 Per codici istantanei
I (S )
L
Dunque:
Non si possono creare codici con lunghezza minore dell’entropia
asi di Dati Multimediali, II periodo, 2002
11
ompressione di testo
Marco Gori, Università di Siena
Upper Bound per L
L
=
=
=
X
s2S
X
s2S
1+
p(s)l (s)
dlog(1
p(s)
X
s2S
p(s)
log(1=p(s))
1 + I (S )
d
e
Teorema 4 Per codici con l(s) = log(1=p(s) )
L
Pertanto I (S )
1+
L
asi di Dati Multimediali, II periodo, 2002
I (S )
1+
e
=p(s)
I (S )
12
ompressione di testo
Marco Gori, Università di Siena
13
Modelli per Compressione
Modello
informazione
Codificatore
informazione compressa
Decodificatore
informazione
L’efficienza della compressione dipende in modo fondamentale dal MODELLO!
Ovviamente si vorrebbe raggiungere lo scienziato (dio) Odino!
asi di Dati Multimediali, II periodo, 2002
ompressione di testo
Marco Gori, Università di Siena
14
Un Esempio di Modello
a (1/2)
b (1/2)
1
2
b (1/100)
a (99/100)
Ad ogni simbolo corrisponde la probabilit à di emissione nello stato:
Dallo stato 1 sono equiprobabili, da 2 viene “quasi sempre” il simbolo “a”
Modelli statici
Modelli adattivi
asi di Dati Multimediali, II periodo, 2002
ompressione di testo
Marco Gori, Università di Siena
15
Codifica di Huffman
Un “esercizio” in classe ... Proc. of the IRE, v40, pp. 1098-1101, 1951.”
Pochi bit, codici molto frequenti, tanti bit codifici rari.
I (S )
Simbolo
Codice
Probabilità
log p
dlog e
a
0000
0.05
4.3219
5
b
0001
0.05
4.3219
5
c
001
0.1
3.3219
4
d
01
0.2
2.3219
3
e
10
0.3
1.7370
2
f
110
0.2
2.3219
3
g
111
0.1
3.2919
4
= 2:5464; L = 2:6 - siamo vicini all’ottimo!
asi di Dati Multimediali, II periodo, 2002
p
ompressione di testo
Marco Gori, Università di Siena
16
L’Albero di Huffman
1.0
0
1
0.4
0
1
0.2
0
0.6
1
0
1
0.3
0.1
0
1
0
1
a
b
c
d
e
f
g
0.05
0.05
0.1
0.2
0.3
0.2
0.1
Nota che ho 2n
1
possibili scelta per il codifce di Huffman!
asi di Dati Multimediali, II periodo, 2002
ompressione di testo
Marco Gori, Università di Siena
Codifica di Huffman: Formalizzazione
Come si codifica (costruzione dell’albero)
1.
T
! f(
s 1 ; p1 ) ; : : : ;
g
(sn ; pn )
1 volte
2. Ripeti n
(a) Scegli ogni coppia (si ; sj ) con la proprietà
8
h; k
6=
i; j
j
pi
+ pj
ph
+ pk
f
(b) Sostituisci (si ; pi ); (sj ; pj ) con (
`i
3.
jP (
r; si )
si ; sj
g
; pi
+ pj )
j (lunghezza cammino dalla radice)
Il passo 3 restituisce la lungezza ` i del codice i; la rappresentazione del cammino
P(
r; si )
dalla radice r al simbolo restituisce il codice.
asi di Dati Multimediali, II periodo, 2002
17
ompressione di testo
Marco Gori, Università di Siena
Codifica di Huffman: Complessità
Approccio “naive”
1. Operazione dominante: operare
la proprietà
8
h; k
6=
i; j
j
pi
+ pj
ph
O(
n)
+ pk .
2. Ogni scelta sull’insieme Tk costa
3. Il costo complessivo per le n
O(
k
2
)
1 iterate risulta
Si può fare di meglio? Ovviamente si!
asi di Dati Multimediali, II periodo, 2002
volte la scelta delle coppie (s i ; sj ) con
O(
n
3
)
18
ompressione di testo
Marco Gori, Università di Siena
Si può raggiungere
O(
19
Il limite Inferiore O (n)
n)
come complessit à temporale (vedi schema)
A
B
113
00
00
11
00
11
a, 6
b, 5
c ,4
d, 2
e, 1
a, 6
b, 5
c ,4
d, 2
C
D
7
1111
00
111
000
000
111
000
111
a, 6
111
000
0003
111
000
111
000
111
c ,4
b, 5
a
b
c
d
e
e,1
11
10
01
001
000
asi di Dati Multimediali, II periodo, 2002
1
11
00
003
11
00
11
00
11
a, 6
d, 2
E
117
00
00
11
00
11
11
00
00
11
b, 5
e,1
11118
000
000
111
000
111
0
1111
00
00
11
1
c ,4
11
00
00
11
0
1
7
11
00
00
11
00
11
00
11
0
111
000
000
111
0003
111
000
111
d, 2
e,1
a, 6
b, 5
c ,4
1
d, 2
0
e,1
ompressione di testo
Marco Gori, Università di Siena
Bounds O (n log n)
Ragionevole bound: Infatti ho il problema di piazzare l’heap in posizione ordinata
nella lista ...
Dettagli nelle esercitazioni
asi di Dati Multimediali, II periodo, 2002
20
ompressione di testo
Marco Gori, Università di Siena
Come di decodifica?
L’albero di Huffman contiene tutte le informazioni necessarie ... ma si deve
memorizzare e si accede ai codici dalle foglie
Nessun problema per vocabolari con “pochi simboli” ... ma se mi baso su parole
allora l’accesso ai codici pu ò creare seri problemi di efficienza.
Ma serve davvero avere codici con “buchi” come quelli creati dall’algoritmo di
Huffman?
Idea: Prendi dello schema di Huffman il calcolo della lunghezza ` i dei codici e
costruisci gruppi di ordinari codici binari con quella determinata lunghezza. Poi
aggiusta il problema del prefisso
asi di Dati Multimediali, II periodo, 2002
21
ompressione di testo
Marco Gori, Università di Siena
Codifici Canonici di Huffman
Simbolo
Frequenza Relativa
Codice 1
Codice Canonico
a
10
000
000
b
11
001
001
c
12
110
010
d
13
111
011
e
22
01
10
f
23
10
11
1. Codice1: un’ordinaria codifica di Huffman
2. Codice canonico: ho due gruppi di lunghezze: 3 e 2. Uso codici binari e calcolo
un offset per eliminare prefissi.
asi di Dati Multimediali, II periodo, 2002
22
ompressione di testo
Marco Gori, Università di Siena
L’ottimalità del Codice di Huffman
Il codice di Huffman è un codice prefix-free ottimo!
Discuteremo meglio questo punto la prossima lezione
Per adesso, considera il caso in cui le probabilit à del tipo 2 k ... In questo caso è
facile calcolare le lunghezze del codice di Huffman (esercizio)
asi di Dati Multimediali, II periodo, 2002
23
ompressione di testo
Marco Gori, Università di Siena
Riferimenti per la lezione
I.H. Witten, A. Moffat, T.C. Bell, “Managing Gigabytes,” Morgan Kaufmann, 1999
(chapt. 2, text compression) pp. 21–37
ci sono le idee di base su informazione e compressione e l’agoritmo di Hufmann
Per i complementi su strutture dati e algoritmi
C. Batini et al, “Fondamenti di Programmazione dei Calcolatori Elettronici”,
Franco Angeli Editore, 1990
Si trovano i concetti fondamentali su algoritmi e strutture dati.
Per chi vuolo approfondire la gestione di tabelle
Fabrizio Luccio, “Strutture, Linguaggi, Sintassi” Boringhieri, 1978, pp. 75 –108
Contiene una chiara presentazione introduttiva sulle tabelle con particolare
riferimento alle tecniche hash
asi di Dati Multimediali, II periodo, 2002
24
ompressione di testo
Marco Gori, Università di Siena
Per chi vule approfondire ...
D.Knuth, “Seminumerical Algorithms,” vo. 2 pp. 9–20 descrive il metodo
congruenziale per la generazione dei numeri casuali con molti dettagli tecnici.
Contiene il teorema per la produzione di cicli di dimensione massima.
Un classico per chi vuole il punto di partenza
C.E. Shannon and W. Weaver, “The mathematical theory of communication,”
Univ. of Illinois Press, 1949 (esistono versioni italiane – ad esempio pubblicate
da Etas Kompass)
Diseguaglianza di Kraft: dettagli ulteriori e dimostrazione del teorema a
http://www.engineering.usu.edu/classes/ece/7680/lecture6/node2.html
Un miniera di riferimenti validi anche per altri algoritmi di compressione testo
(http://dogma.net/DataCompression/Huffman.shtml)
asi di Dati Multimediali, II periodo, 2002
25