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