tecniche di compressione dei dati
DESCRIPTION
Presentazione 9.1. Tecniche di compressione dei dati. Informatica Generale (Prof. Luca A. Ludovico). Obiettivi. Riduzione delle informazioni mantenendo il contenuto informativo Obiettivi di memorizzazione e trasferimento Due categorie: Tecniche con perdita (lossy) - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/1.jpg)
Tecniche di compressione dei dati
Presentazione 9.1
Informatica Generale (Prof. Luca A. Ludovico)
![Page 2: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/2.jpg)
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
Obiettivi
• Riduzione delle informazioni mantenendo il contenuto informativo
• Obiettivi di memorizzazione e trasferimento
• Due categorie:– Tecniche con perdita (lossy)– Tecniche senza perdita (lossless)
![Page 3: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/3.jpg)
Osservazioni
• La percentuale di compressione ottenibile dipende:1. dall’algoritmo utilizzato2. dalla propensione dei dati a essere compressi
• Esempio: adottiamo la compressione con algoritmo LZW (formato ZIP). A parità di algoritmo di compressione, ad esempio:– 4 immagini JPG: da 282 KB a 276 KB (98% dell’originale) – 4 documenti XML: da 1,96 MB a 126 KB (6,28%
dell’originale)
![Page 4: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/4.jpg)
Tecniche lossless vs lossy
Lossless
• Senza perdita di informazione
• Si riduce la ridondanza
• Si comprime mediamente fino al 50% delle dimensioni originali
• Ottimale quando non si può tollerare modifiche nei contenuti (ad es. testi, multimedialità professionale,etc.)
Lossy
• Con perdita di informazione
• Si riduce l’irrilevanza (presunta)
• Si comprime mediamente fino al 10% delle dimensioni originali
• Ottimale quando si possono tollerare piccoli errori o modifiche (immagini e audio non professionali)
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
![Page 5: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/5.jpg)
• Il messaggio M deve essere trasmesso tra il mittente A e il destinatario B
A BCanale trasmissivo
M M
compressione decompressione
M M*
![Page 6: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/6.jpg)
Codifica run-length (lossless)
• RLE = run length encoding
• Si sostituiscono le sequenze di bit con un codice che indica il valore ripetuto e quante volte si ripete nella sequenza.
• Funziona bene quando i dati da comprimere sono scomponibili in lunghe sequenze di valori identici ripetuti.
• E’ un codice a lunghezza fissa.
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
![Page 7: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/7.jpg)
Esempio di codifica RLE
• Sia M (messaggio da comprimere) una configurazione di bit costituita da:– 253 bit posti a 1,– seguiti da 118 bit posti a 0, – seguiti da 87 bit posti a 1
E’ più compatto rappresentare in binario
253 x 1, 118 x 0, 87 x 111111101111101100010101111
ad esempio dedicando 8 bit alla cardinalità e 1 bit al simbolo per ciascun blocco rispetto ad elencare i 458 bit.
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
![Page 8: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/8.jpg)
Controesempi RLE
• Cosa succede quando i bit dedicati alla cardinalità non sono sufficienti per coprire il numero di ripetizioni di un dato simbolo
• Cosa succede se i blocchi di valori ripetuti sono estremamente brevi. Esempio:M = 0110100MRLE = 000000010 000000101 000000010 000000011 000000100
![Page 9: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/9.jpg)
Codifica dipendente dalla frequenza (lossless)
• La lunghezza della configurazione di bit usata per rappresentare un elemento è inversamente proporzionale alla frequenza di utilizzo dell’elemento stesso.
• E’ un codice a lunghezza variabile (gli elementi sono rappresentati da configurazioni di lunghezze diverse)
• Un noto algoritmo per generare questi codici è stato scoperto da David Huffman. Molti codici dipendenti dalla frequenza oggi usati sono codici di Huffman.
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
![Page 10: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/10.jpg)
Esempio di codice di Huffman per i testi
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
• In lingua inglese, le lettere e, t, i sono molto più frequenti delle lettere z, q e x.
• Per codificare testi in lingua inglese, si risparmia spazio usando configurazioni di bit brevi per le lettere più frequenti e lunghe per le meno frequenti.
• Ad esempio, in un testo codificato in ASCII esteso, ogni carattere occupa 8 bit. Quindi ogni volta che occorre un carattere “frequente” la cui codifica compressa occupa meno di 8 bit, ho un risparmio.
![Page 11: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/11.jpg)
Codifica relativa o differenziale
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
• In alcuni casi, le informazioni sono costituite da blocchi, ognuno dei quali differisce leggermente dal precedente.
• Esempio: i fotogrammi consecutivi di un’immagine in movimento.
• Tecnica: codificare solo le differenze rispetto al blocco precedente.
• Può essere con o senza perdita
![Page 12: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/12.jpg)
Codifica basata sul dizionario (lossless)
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
• Dizionario = insieme di blocchi sui quali è costruito il messaggio da comprimere, noto a priori.
• Il messaggio è codificato non più come una sequenza di blocchi bensì come una sequenza di riferimenti al dizionario.
• Variante: codifica adattiva (o dinamica) basata su dizionario, in cui il dizionario può cambiare durante il processo di codifica.
![Page 13: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/13.jpg)
Esempio
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
• Dizionario = insieme di blocchi sui quali è costruito il messaggio da comprimere, noto a priori.
• Il messaggio è codificato non più come una sequenza di blocchi bensì come una sequenza di riferimenti al dizionario.
• Variante: codifica adattiva (o dinamica) basata su dizionario, in cui il dizionario può cambiare durante il processo di codifica.
![Page 14: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/14.jpg)
Codifica basata sul dizionario
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
• Tecnica molto usata nei Word Processor, che già contengono al proprio interno dizionari di parole (tipicamente 25000 voci) a scopi di controllo ortografico.
• Un’intera parola viene codificata come un riferimento al dizionario anziché come una sequenza di caratteri ASCII o Unicode.
• Valutazione delle prestazioni: per una parola da 6 lettere, la codifica a caratteri singoli ASCII richiede 6 x 8 = 48 bit (ASCII) mentre solo 15 come riferimento. Con n = 15 possiamo rappresentare 2^15 differenti voci nel dizionario.
![Page 15: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/15.jpg)
Codifica LZW (Lempel-Ziv-Welsh)
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
• E’ un esempio di codifica adattiva basata su dizionario.
• Si parte da un dizionario che contiene i soli elementi base del messaggio. Poi il dizionario viene via via costruito in modo incrementale durante la fase di compressione.
• Al termine del processo di compressione, il dizionario può essere grande; ma non è necessario avere quest’ultimo per decodificare il messaggio.
![Page 16: Tecniche di compressione dei dati](https://reader033.vdocuments.net/reader033/viewer/2022061520/568149db550346895db6ff80/html5/thumbnails/16.jpg)
Esempio di codifica LZW
Informatica Generale (Prof. Luca A. Ludovico)Presentazione 9.1
• Messaggio iniziale M: xyx xyx xyx xyx• Dizionario iniziale:
• x >> 1• y >> 2• >> 3
• Messaggio compresso (non adattivo): 121312131213121
• Messaggio compresso (adattivo): 121343434in quanto al dizionario si aggiunge xyx >> 4