25
ompressione di testo Marco Gori, Universit ` a di Siena 1 Compressione dell’Informazione (Parte I) Fondamenti e Richiami di Teoria dell’Informazione Marco Gori [email protected] asi di Dati Multimediali, II periodo, 2002

Marco Gori - dii.unisi.itmarco/bdm/Compressione-Testo.pdf · a per la memorizzazione degli indici nell’information retrieval Ma prima, vorrei parlarvi di “Odino e la Citt

  • Upload
    vandung

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

ompressione di testo Marco Gori, Universita di Siena 1

Compressione dell’Informazione (Parte I)Fondamenti e Richiami di Teoria dell’Informazione

Marco [email protected]

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita 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 utilita per la memorizzazione degli indici nell’information retrieval

� Ma prima, vorrei parlarvi di “Odino e la Citta Contesa!”

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 3

Odino e la Citta Contesa

Per capire bene le tecniche di compressione ...

qualche utile digressione ...

� La citta contesa a dadi

� Odino (http://digilander.iol.it/sybille/index28.htm): santo o scienziato?

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 4

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 e solo uno scienziato!

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 5

Una Legge di Generazione

xk+1 := (axk + c) mod m

Teorema 1 Il periodo della sequenza fxkg e m se e solo se

1. c e relativamente primo rispetto a m2. a mod p = 1 per ogni fattore primo p di m3. a mod 4 = 1 se 4 e un fattore di m

Esempio 1

xo := 1;m := 8; c := 7; a := 5

fxkg7

k=0 = f1; 4; 3; 6; 5; 0; 7; 2g

quindi, ..., il CICLO: x8 = 1. Prova con m = 16; c = 13; a = 11 ...

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 6

Casualita e InformazioneClaude Shannon, 1948

Dunque, se Odino e uno scienziato, l’informazione delle sorgenti e ZERO

Forse, almeno per adesso, “dobbiamo assumere che Odino e un Santo!”

Misura dell’informazione

I(S) = �

Xs2S

p(s) log p(s)

Sia n := jSj. Per simboli equiprobabili 8s : p(s) =

1n

e quindi

I(S) = log n

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 7

Codici Compatti

Come si codifica in modo “compatto?”

Se tutti i codici sono equiprobabili (massima entropia) solo “Odino ci puo 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 =

Xs2S

p(s)`(s)

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 8

Quanto posso compattare?

Considera q1; : : : ; qn j qs � 0;

Pns=1 q(s) = 1. Si ha

I(S) =

nXs=1

p(s) log

1p(s)�

nXs=1

p(s) log

1q(s)

Scegliamo:q(s) =

2�`(s)Pn

s=1 2�`(s)

e quindi

I(S) � L+ log

nXs=1

2�`(s)!

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita 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 CODICI ISTANTANEI e cheXs2S

2�`(s)� 1

Esempio 2 Per simboli equiprobabili 8s : `(s) = log n e si ha dunque

l’uguaglianza

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 10

Ci sono Codici Istantanei con

l(s) = dlog(1=p(s)e)

Considera un codice con lunghezza l(s) = dlog(1=p(s)e). Si verifica che e un

CODICE ISTANTANEO. Infatti

Xs2S

2�l(s)

=

Xs2S

2�dlog(1=p(s))e

Xs2S

2� log(1=p(s))

=

Xs2S

p(s)

= 1

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 11

Teorema di ShannonLower Bound Lunghezza Media Codici L

I(S) � L+ log

nXs=1

2�`(s)!

Teorema 3 Per codici istantaneiI(S) � L

Dunque:

Non si possono creare codici con lunghezza minore dell’entropia

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 12

Upper Bound per L

L =

Xs2S

p(s)l(s)

=

Xs2S

p(s)dlog(1=p(s)e

� 1 +

Xs2S

p(s) log(1=p(s))

= 1 + I(S)

Teorema 4 Per codici con l(s) = dlog(1=p(s)e)

L � 1 + I(S)

Pertanto I(S) � L � 1 + I(S)

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 13

Modelli per Compressione

Codificatore Decodificatore

Modello

informazione compressa informazioneinformazione

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, Universita di Siena 14

Un Esempio di Modello

1 2

b (1/2)

a (1/2)

b (1/100)

a (99/100)

Ad ogni simbolo corrisponde la probabilita 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, Universita 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.

Simbolo Codice Probabilita log p dlog pe

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

I(S) = 2:5464; L = 2:6 - siamo vicini all’ottimo!

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 16

L’Albero di Huffman

b d e fa c

0.05 0.1 0.2 0.3

g

0.05 0.10.2

0.1

0.2

0.3

0.4

0.6

1.0

0

0

0

0 1

1

1

1

1

10

0

Nota che ho 2n�1 possibili scelta per il codifce di Huffman!

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 17

Codifica di Huffman: Formalizzazione

Come si codifica (costruzione dell’albero)

1. T ! f(s1; p1); : : : ; (sn; pn)g2. Ripeti n� 1 volte

(a) Scegli ogni coppia (si; sj) con la proprieta

8h; k 6= i; j j pi + pj � ph + pk

(b) Sostituisci (si; pi); (sj ; pj) con (fsi; sjg; pi + pj)

3. `i jP(r; si)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

ompressione di testo Marco Gori, Universita di Siena 18

Codifica di Huffman: Complessita

Approccio “naive”

1. Operazione dominante: operareO(n) volte la scelta delle coppie (si; sj) con

la proprieta

8h; k 6= i; j j pi + pj � ph + pk .

2. Ogni scelta sull’insieme Tk costaO(k2)3. Il costo complessivo per le n� 1 iterate risultaO(n3

)

Si puo fare di meglio? Ovviamente si!

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 19

Il limite Inferiore O(n)

Si puo raggiungereO(n) come complessita temporale (vedi schema)

6 5a, b,������

������

e2 1d ,,

3

c 4,

6 5a, b,

c 4,

������

������

��������

��������

������

������

11

e2 1d ,,

7

3

6 5b,a,

c 4,

abcde

111001

001000

������������

������������

���������

���������

��������

��������

������������

������������

��������

��������

���������

���������

2 1ed, ,c6 5 4a, b, ,

c 4,

e2 1d ,,

7

311

e2 1d ,,

7

3

6 5b,a,

18

A B

C D E

1 0

1 0 1 0

1 0

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 20

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

ompressione di testo Marco Gori, Universita di Siena 21

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 puo 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

ompressione di testo Marco Gori, Universita di Siena 22

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

ompressione di testo Marco Gori, Universita di Siena 23

L’ottimalita del Codice di Huffman

Il codice di Huffman e un codice prefix-free ottimo!

Discuteremo meglio questo punto la prossima lezione

Per adesso, considera il caso in cui le probabilita del tipo 2�k ... In questo caso e

facile calcolare le lunghezze del codice di Huffman (esercizio)

asi di Dati Multimediali, II periodo, 2002

ompressione di testo Marco Gori, Universita di Siena 24

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

ompressione di testo Marco Gori, Universita di Siena 25

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