Introduzione alla compressione
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Cosa è la compressione? Intuitivamente la compressione è un metodo per “comprimere qualcosa in uno spazio minore”. Nel nostro ambito una definizione migliore è “rendere l'informazione più breve”
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Alcune domande fondamentali Cos'è l'informazione? Come è possibile misurare la quantità di informazione? Perché la compressione è utile? Come si può comprimere l'informazione? Quanto riusciamo a comprimere?
4 Cos'è l'informazione? - I Comunemente il termine informazione si riferisce alla conoscenza di fatti, circostanze o pensieri Per esempio possiamo pensare che le informazioni in un giornale siano le notizie sintassi lettere, punteggiatura, spazi bianchi, regole grammaticali... semantica significato delle parole e delle frasi
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Cos'è l'informazione? - II Per noi l'informazione è costituita soltanto dalla sintassi, cioè siamo interessati soltanto ai simboli dell'alfabeto utilizzati per esprimere l'informazione Prima di dare una definizione matematica dell'informazione sono necessari alcuni principi di Teoria dell'Informazione
6 Un concetto fondamentale Un concetto fondamentale in Teoria dell'Informazione è che l'informazione è legata alla casualità Quale informazione ci fornisce una moneta truccata, la cui uscita è sempre testa? E per quanto riguarda un'altra moneta truccata, la cui uscita è testa con il 90% di probabilità? Abbiamo bisogno di misurare quantitativamente la quantità di informazione secondo un qualche criterio matematico
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Incertezza (uncertanty) - I Sia X una variabile casuale e x uno dei suoi possibili valori, che essa assume con probabilità p(x) The units are given by the base of the logarithms Base 2 bits Base 10 nats
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Incertezza (uncertanty) - II Supponiamo che la variabile casuale abbia uscita in {0,1} p(0) = p(1) = 0.5, ogni uscita ci dà 1 bit diinformazione p(0) = 1, p(1) = 0, 0 non ci dà informazione, 1 informazione infinita
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Entropia Ancora più utile è il concetto di entropia di una variabile casuale X a valori in uno spazio X L'entropia è una misura dell'incertezza media della variabile casuale
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Entropia - esempi Consideriamo di nuovo una variabile casuale a valori in {0,1}
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Compressione e perdita Senza perdita (lossless) il messaggio decompresso è una copia esatta dell'originale. Adatto per la compression del testo Con perdita (lossy) Nel messaggio decompresso una parte dell'informazione è andata persa. Adatto per la compressione di immagini, video e audio Ignoriamo per un momento la compressione con perdita
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Definizioni - I Un codice sorgente ottenuto a partire da una variabile casuale X è un mapping dall'insieme X all'insieme D* delle stringhe di lunghezza finita da un alfabeto di D simboli C(x), parola di codice per x l(x), lunghezza di C(x)
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Definizioni - II codice non singolare (... triviale...) ogni elemento di X corrisponde ad una differente stringa di D* codice univocamente decodificabile la sua estensione è univocamente decodificabile
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Definizioni - III codice prefisso (meglio senza prefisso) o istantaneo nessuna parola di codice è un prefisso di un'altra il vantaggio è che la decodifica non ha bisogno di “aspettare il seguito” (look-ahead) 110 b 11 a parole di codice... 11?...
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Esempi codice 4codice 3codice 2codice 1 singolare non singolare, ma non univocamente decodificabile univocamente decodificabile ma non istantaneo istantaneo
16 Disuguaglianza di Kraft - I Teorema (Disuguaglianza di Kraft) Per ogni codice istantaneo su un alfabeto di dimensione D, le lunghezze delle parole di codice l 1,l 2,...,l m devono soddisfare Al contrario, dato un insieme di parole di codice la cui lunghezza soddisfa questa disuguaglianza, esiste un codice istantaneo con queste lunghezze di parola
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Disuguaglianza di Kraft - II Consideriamo un albero D-ario completo a livello k ci sono D k nodi un nodo a livello p < k ha D k-p discendenti che sono nodi a livello k livello 0 livello 1 livello 2 livello 3
18 Disuguaglianza di Kraft - III Dimostrazione Si consideri un albero D-ario (non necessariamente completo) che rappresenta il codice, con ogni percorso dalla radice a rappresentare una sequenza di simboli, e ogni foglia (con il suo percorso unico) una parola di codice. Sia l max la parola di codice più lunga. Ogni parola di codice di lunghezza l i ≤ l max, essendo una foglia, implica che a livello l max ci siano D l max -l i nodi mancanti
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Disuguaglianza di Kraft - IV Il numero totale di nodi al livello l max è D l max Sommando su tutte le parole di codice Dividendo per D l max
20 Disuguaglianza di Kraft - V Dimostrazione Supponiamo (senza perdita di generalità) che le parole di codice siano ordinate per lunghezze, ossia Consideriamo un albero D-ario e cominciamo ad assegnare ogni parola di codice ad un nodo del suo livello, partendo dalla prima Data una generica parola i con lunghezza l i e consideriamo l'insieme K di parole di codice di lunghezza l k ≤ l i, tranne i stessa.
21 Disuguaglianza di Kraft - VI Supponiamo che ad un certo punto non ci siano più nodi disponibili a livello i, ossia ma questo implica che ossia che il che è assurdo. Ossia si riesce a costruire un codice prefisso con le lunghezze di parola date
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Modelli e codificatori Il modello fornisce le probabilità dei simboli (o dei gruppi di simboli, come vedremo più avanti) Il codificatore/decodificatore codifica e decodifica a partire da queste probabilità modell o codificator e decodificator e messaggio messaggio compresso
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Un buon modello è fondamentale Cosa accade se le probabilità vere dei simboli da codificare sono {p i } ma si utilizzano invece le probabilità {q i }? Semplice, il messaggio compresso sarà più lungo, ossia il numero medio di bit per simbolo sarà maggiore E' possibile calcolare la differenza in bit/simbolo a partire dai due insiemi di probabilità {p i } e {q i }, e tale differenza è nota come entropia relativa
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Modelli a contesto finito p(x i = u) = 0.02 in lingua inglese ma p(x i = u|x i-1 = q) = 0.95 Un modello a contesto finito di ordine m utilizza gli m simboli precedenti per costruire la predizione Modello più accurato, ma abbiamo bisogno di stimare molte più probabilità
25 Modelli a stato finito Sebbene in teoria siano più espressivi (per esempio si può modellare se ci siano state un numero apri o dispari di a consecutive), non godono di molta popolarità. Ovviamente il decodificatore utilizza lo stesso modello del codificatore, in modo da andare incontro agli stessi stati 12 a 0.5 a 0.99 b 0.01 b 0.5
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Modelli statici Un modello è statico se impostiamo una distribuzione di probabilità è poi essa è usata per codificare l'intero testo. Scarse performance in caso di parti di tipo differente (testo, dati finanziari...) Una soluzione è avere K modelli differenti ed inviare l'indice del modello utilizzato... ma si veda il libro “Gadsby” by E. V. Wright
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Modelli adattivi (o dinamici) Per risolvere il problema della modellazione statica, i modelli dinamici o adattivi iniziano con una distribuzione di probabilità generale, che viene raffinata mano a mano che sono noti più simboli del messaggio sorgente Il codificatore ed il decodificatore hanno la stessa distribuzione iniziale e le stesse regole per modificarla Sono possibili modelli adattivi di ogni ordine m>0
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Il problema della frequenza zero (zero-frequency problem) La situazione in cui un simbolo è predetto con probabilità zero è da evitare in quanto non può essere codificato Una possibile soluzione: il numero totale di simboli del messaggio originale è aumentato di 1. Questa probabilità 1/numero_totale è divisa fra tutti i simboli mai visti Un'altra soluzione: far partire da uno il contatore di ogni simbolo Sono state proposte diverse altre soluzioni... Quale è la migliore? Purché il testo sia sufficientemente lungo il livello di compressione che si ottiene è simile
Gabriele Monfardini - Corso di Basi di Dati Multimediali - a.a Modelli basati sui simboli e modelli basati su un dizionario L'insieme di tutti i possibili simboli che possono essere emessi da una sorgente è detto alfabeto I modelli basati sui simboli (symbolwise) stimano la probabilità di uscita di ogni simbolo dell'alfabeto I modelli basati su un dizionario (dictionary), al contrario, sostituiscono stringhe del testo con parole di codice che le identificano in una collezione di stringhe, detta dizionario (dictionary, codebook)