Tecniche di compressione senza perdita
|
|
|
- Annalisa Dolce
- 9 anni fa
- Visualizzazioni
Transcript
1 FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Tecniche di compressione senza perdita 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
2 Nota di Copyright Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà dell autore prof. Pier Luca Montessoro, Università degli Studi di Udine. Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione. Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte dell autore. L informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell informazione). In ogni caso non può essere dichiarata conformità all informazione contenuta in queste slide. In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2
3 Run Length Encoding Comprime sequenze di byte uguali Due versioni: con uso di carattere riservato senza uso di carattere riservato 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3
4 Run Length Encoding Facendo uso di un carattere riservato si può sostituire una sequenza di byte uguali con il carattere riservato seguito da uno solo dei byte ripetuti più un contatore del numero di ripetizioni 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 4
5 Run Length Encoding ecco ******** 8 asterischi F 20 2A 2A 2A 2A 2A 2A 2A 2A codici ASCII F 20 1A 2A carattere riservato (SUB) numero di ripetizioni codice ASCII del carattere da ripetere 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 5
6 Run Length Encoding Senza usare un carattere riservato si può accorciare una sequenza di byte uguali interrompendola dopo un numero predefinito di ripetizioni (es. 3) e sostituendo ai caratteri rimanenti il numero che rappresenta la lunghezza totale della sequenza 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 6
7 Run Length Encoding ecco ******** 8 asterischi F 20 2A 2A 2A 2A 2A 2A 2A 2A codici ASCII F 20 2A 2A 2A prima parte della sequenza lunghezza totale della sequenza 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 7
8 Run Length Encoding A VOLTE LA LUNGHEZZA AUMENTA... ecco *** 3 asterischi codici ASCII F 20 2A 2A 2A F 20 2A 2A 2A prima parte della sequenza lunghezza totale della sequenza 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 8
9 Codifica entropica Si associano codici binari più corti ai simboli (elementi di informazione) più probabili NOTA: la codifica dell informazione vista finora (numeri, testi) è finalizzata alla semplicità dell elaborazione, non alla minimizzazione della lunghezza del codice 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 9
10 Definizioni Alfabeto A = { α 1,..., α M } Probabilità dove P = { p p j P[ α ] j M 1,..., p M }, p j = 1 j= Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 10
11 Informazione del simbolo isolato α j Definizioni i( α j ) log 2 1 p j Si definisce entropia della sorgente di simboli X = {A, P} la sua informazione media H ( X ) = Proprietà: E[ i( α)] = j= Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 11 M 0 H ( X ) log 2 p j log (1/ p j M 2 )
12 Codifica entropica L entropia misura l uniformità (o la non uniformità) della distribuzione dei simboli generati dalla sorgente È possibile assegnare ai simboli codici di lunghezza differente Esempio: codici a prefisso (nessuna parola di codice è prefisso ad un altra parola di codice) A 0, B 10, C 100, D Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 12
13 Codifica entropica I codici a prefisso vengono decodificati mediante alberi binari Esempio: A 0, B 10, C 100, D A B C D 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 13
14 Codifica entropica La probabilità di un simbolo può anche essere funzione del contesto, cioè dei simboli che lo hanno preceduto Esempio: nell alfabeto comune la probabilità della lettera u è quasi 1 dopo una q È possibile introdurre codifiche con memoria, basate sulla probabilità condizionata dal contesto 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 14
15 Codifica di Huffman Viene costruito un albero binario in cui ogni diramazione rappresenta l aggiunta un bit a 1 o a 0 della parola di codice Il grado di sbilanciamento dell albero è funzione della frequenza relativa di ricorrenza dei dati 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 15
16 Esempio Probabilità dell alfabeto P={0.25, 0.25, 0.2, 0.15, 0.15} P= P=0.3 P=1.0 P=0.45 α 1 α 4 α 5 α 2 α 3 α 1 00 α 2 10 α Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 16 1 α α Entropia H(X) = bit/simbolo Nota: sono necessari arrotondamenti per ottenere un numero intero di bit
17 MNP 5: codifica adattativa statistica basata sulla frequenza dei caratteri Cambia la codifica binaria di ogni byte utilizzando un numero di bit minore, uguale o maggiore a 8 a seconda della frequenza con cui il carattere compare È adattativa perché calcola dinamicamente la frequenza statistica dei caratteri durante la compressione 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 17
18 MNP 5 byte in ingresso header body Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 18
19 MNP5: compressione compressione A aggiorna il contatore contatori header body restituisce la nuova codifica C se il contatore di un byte indica una frequenza maggiore di uno a codifica più corta, verranno scambiati con effetto dalla prossima occorrenza 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 19 B
20 MNP5: versione più sofisticata Si utilizzano 256 tabelle La tabella da usare viene selezionata in base al carattere precedente In questo modo il calcolo della frequenza statistica è più accurato Esempio: la lettera u dopo una q ha probabilità estremamente elevata, mentre in altri casi è molto bassa 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 20
21 Codifica a dizionario Idea di base: Ziv-Lemper Successivamente modificata da Welch Algoritmo LZW Utilizzato in numerosi software comuni (es. WinZip) 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 21
22 Codifica a dizionario L idea di base è suddividere i dati di ingresso in sottosequenze che, se già incontrate nella sequenza di dati di ingresso, vengono codificate mediante il puntatore alla posizione corrispondente 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 22
23 Algoritmo di Lempel-Ziv-Welch (LZW) Sostituisce stringhe (sequenze) di caratteri con un singolo codice binario I codici hanno lunghezza predefinita maggiore di 8 bit (es. 12 bit): i primi 256 valori sono assegnati ai caratteri ASCII i restanti valori vengono assegnati dall algoritmo alle stringhe 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 23
24 Algoritmo di Lempel-Ziv-Welch (LZW) STRING = get input character WHILE there are still input characters DO CHARACTER = get input character IF STRING+CHARACTER is in the string table then STRING = STRING+character ELSE output the code for STRING add STRING+CHARACTER to the string table STRING = CHARACTER END of IF END of WHILE output the code for STRING 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 24
25 Algoritmo di Lempel-Ziv-Welch (LZW) L algoritmo inserisce nuove stringhe nella tabella fino ad esaurimento dei valori disponibili per i codici Quando la tabella è piena controlla se l efficienza diminuisce: in tal caso, svuota la tabella e ricomincia In alternativa si potrebbero eliminare le stringhe poco usate (complicato da gestire) 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 25
Codifica dei numeri interi positivi e negativi
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica dei numeri interi positivi e negativi 2000 Pier Luca Montessoro (si veda la nota di copyright
Codifica dei segnali audio
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica dei segnali audio 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
Introduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Compressione audio
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Compressione audio 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
Input/output in C e in C++
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni
IL CABLAGGIO STRUTTURATO DI CATEGORIA 6
IL CABLAGGIO STRUTTURATO DI CATEGORIA 6 21 maggio 2002 PIER LUCA MONTESSORO Dip. di Ingegneria Elettrica Gestionale e Meccanica Università degli Studi di Udine in collaborazione con 2002 Pier Luca Montessoro
Linguaggio C Struct e union
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struct e union 2001 Pier Luca Montessoro - Davide Pierattoni
Sicurezza applicata in rete
Nota di Copyright RETI DI CALCOLATORI II Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI acoltà di Ingegneria Università degli Studi di Udine Questo insieme di trasparenze (detto nel seguito slide) è
Metro VLAN Switch e standard 802.1ad
Metro VLAN Switch e standard 802.1ad Pietro Nicoletti piero[]studioreti.it VLAN-Metro-802.1ad - 1 P. Nicoletti: si veda nota a pag. 2 Nota di Copyright Questo insieme di trasparenze (detto nel seguito
RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE
RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright
RETI DI CALCOLATORI II
RETI DI CALCOLATORI II Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright
Memoria cache, interrupt e DMA
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
HDLC e PPP. Silvano GAI
HDLC e PPP Silvano GAI [email protected] http://www.polito.it/~silvano HDLC_PPP - 1 Copyright: si veda nota a pag. 2 Nota di Copyright Questo insieme di trasparenze (detto nel seguito slides) è protetto
Cenni sull architettura protocollare TCP/IP
Nota di Copyright Cenni sull architettura protocollare TCP/IP Mario Baldi [email protected] staff.polito.it/mario.baldi cenni - 1 M. Baldi: si veda pagina 2 Questo insieme di trasparenze (detto nel
La programmazione in linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni
Progettazione delle dorsali in fibra ottica
Progettazione delle dorsali in fibra ottica Mario Baldi Politecnico di Torino [email protected] staff.polito.it/mario.baldi Nota di Copyright Questo insieme di trasparenze (detto nel seguito slide)
FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Reti logiche
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Reti logiche 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1 Nota di
Esercizi di Addressing. Fulvio Risso Guido Marchetto
Esercizi di Addressing Fulvio Risso Guido Marchetto 1 Nota di Copyright Questo insieme di trasparenze (detto nel seguito slides) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali.
