La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

I codici di Huffman Studenti: Borrelli Antonio 50/445 Chierchia Eduardo 50/223 Università di Napoli Federico II - Corso di laurea in Informatica Corso.

Presentazioni simili


Presentazione sul tema: "I codici di Huffman Studenti: Borrelli Antonio 50/445 Chierchia Eduardo 50/223 Università di Napoli Federico II - Corso di laurea in Informatica Corso."— Transcript della presentazione:

1 I codici di Huffman Studenti: Borrelli Antonio 50/445 Chierchia Eduardo 50/223 Università di Napoli Federico II - Corso di laurea in Informatica Corso di METODI PER IL TRATTAMENTO NUMERICO DI DATI MULTIMEDIALI a.a.2003/04 seminario n.1

2 Borrelli A. – Chierchia E. 2 David A. Huffman( ) è stato uno dei pionieri nel campo della Computer Science Introduzione Fornì significativi contributi in diversi ambiti di applicazione nella neonata e inesplorata Scienza degli elaboratori (macchine a stati finiti, switching circuit, signal models, compressione, …) Egli sviluppò il metodo che porta il suo nome quando era ancora studente al MIT e lo pubblicò nel 1952 in un articolo intitolato A Method for the Construction of Minimum-Redundancy Codes Tale articolo iniziava con il seguente sommario, nel quale sono chiaramente dichiarate le esigenze che il metodo si propone di soddisfare e le sue caratteristiche salienti : An optimum method of coding an ensamble of messages consisting of a finite number of members is developed. A minimum-redundancy code is one constructed in such a way that the average number of coding digits per message is minimized.

3 Borrelli A. – Chierchia E. 3 Un algoritmo di codifica è un algoritmo attraverso il quale si rappresenta linformazione originale per mezzo di un nuovo alfabeto di simboli Nozioni preliminari (1/3) Un algoritmo di codifica deve essere sempre accompagnato da uno di decodifica affinché si possa ripristinare linformazione originale a partire dallalfabeto dei codici Un algoritmo di codifica si dice di tipo lossless se non comporta nessuna perdita dellinformazione originale Un algoritmo di codifica associato ad un simmetrico algoritmo di decodifica costituiscono un processo di codifica (codec) I processi di codifica devono essere tali da soddisfare differenti requisiti a seconda del contesto nel quale sono inseriti, ad esempio: Basso costo computazionale del processo di codifica Basso costo computazionale del processo di decodifica Protezione dellinformazione Integrazione al canale di comunicazione

4 Borrelli A. – Chierchia E. 4 Nozioni preliminari (2/3) La codifica di Huffman viene utilizzata principalmente, ma non solo, come tipologia di algoritmo associata ad una riduzione della quantità di informazione da rappresentare, potenzialmente illimitata (compressione) in presenza di un canale di comunicazione con ovvi limiti fisici. La codifica di Huffman appartiene alla classe delle codifiche dette entropiche essendo di tipo statistico, cioè basandosi sulla considerazione che le occorrenze di caratteri o gruppi di caratteri non sono sempre uguali. Si codificano i simboli più frequenti con parole codice più corte.

5 Borrelli A. – Chierchia E. 5 Nozioni preliminari (3/3) Altre caratteristiche notevoli della Codifica di Huffman sono le seguenti : Ottimalità del codice Univoca decodificabilità La lunghezza media delle parole codice prodotte è la più bassa rispetto ad ogni altra tecnica statistica di codifica. Ciò vuol dire che : Sia H(K) la lunghezza media delle parole codice prodotte dallalgoritmo di Huffman, non esiste nessun altro algoritmo in grado di produrre un codice L tale che L(K)< H(K) Il processo di decodifica è unico ed immediato. Il codice prodotto è prefisso ovvero nessuna parola del codice è il prefisso di unaltra parola del codice stesso, es.: Codice Prefisso A := {a,ba,bb} Codice Non Prefisso A:= {a,ab,bba}

6 Borrelli A. – Chierchia E. 6 Attualmente i codici di Huffmann vengono adoperati come back-end di altre tecniche di compressione più evolute e complesse quali ad esempio JPEG La codifca di Huffman Data la sua natura statistica, risulta evidente che tale tecnica di codifica risulterà tanto più efficiente quanto meno è uniforme la distribuzione delle frequenze dei simboli nellalfabeto sorgente arietà La tecnica opera attraverso la creazione di alberi n-ari pesati sui simboli in ingresso producendo in output un unico albero n-ario di codifica. L arietà dellalbero è la cardinalità dell alfabeto di codice considerato Un albero n-ario pesato è un albero nel quale : Ad ogni nodo è associato un peso Ogni nodo interno ha esattamente n figli Questo particolare albero n-ario è tale che: Ogni nodo ha peso uguale alla somma dei pesi degli n figli Quindi la radice ha come peso la somma dei pesi delle foglie (1 se alla foglia si associa come peso la probabilità di occorrenza del simbolo corrispondente)

7 Borrelli A. – Chierchia E. 7 A partire dalla precedente descrizione di albero pesato n-ario analizziamo i passi dellalgoritmo considerando alfabeti di codice (quindi alberi) binari: L algoritmo (costruzione del codice) Algoritmo : Si ordinano i simboli dellalfabeto in ordine non crescente di probabilità (o crescente di frequenza): si ottengono così n alberi pesati Finché non si è ottenuto un unico albero allora Si selezionano sempre i due alberi A1 e A2 con peso più basso Si genera un nuovo albero la cui radice ha peso pari alla somma di A1 + A2 Si assegna 0 ad ogni arco sottendente un figlio sinistro, 1 altrimenti ( non cambia nulla se si agisce inversamente ) Output : Codice Huffman H degli m simboli dellalfabeto A in ingresso Input : Alfabeto sorgente A di m simboli Frequenza di ogni simbolo dellalfabeto A considerato

8 Borrelli A. – Chierchia E. 8 Si itera finché non si è ottenuto un unico albero Si ordinano i simboli dellalfabeto in ordine crescente di frequenza: si ottengono così n alberi pesati Consideriamo un semplice esempio per comprendere al meglio lalgoritmo precedentemente esposto I codici di Huffman : 1° esempio di esecuzione Supponiamo, per semplicità, di costruire sia lalfabeto di simboli che le probabilità di occorrenza sul seguente testo : Testo:= Ballo Bello Alfabeto di input : Baloe } { Σ:=,,,, F(i) i 2/10 1/10 4/10 2/10 1/10 a1a1 e1e1 B2B2 o2o2 l4l Codice codifica B a ll oB e ll o B a l o e 0 Si selezionano i due alberi a ed e con peso più basso : nuovo nodo radice con peso pari alla somma di a + e Si assegna 0 ad ogni arco sottendente un figlio sinistro, 1 altrimenti

9 Borrelli A. – Chierchia E. 9 1° esempio di esecuzione : Tabella di Huffman Alfabeto di input Codice B001 a0000 l1 o01 e0001

10 Borrelli A. – Chierchia E. 10 Un altro esempio interessante si può costruire quando la distribuzione delle occorrenze dei simboli è abbastanza unfiorme : in tal caso i simboli avranno quasi tutti la stessa lunghezza, dunque lefficienza intesa come dimensione dell informazione codificata da trasmettere ne risente I codici di Huffman : 2° esempio di esecuzione Testo:= Oggi studio Alfabeto di input : Ogist }{ Σ:=,,,, F(i) i 2/10 1/10 S1S1 t1t1 u1u1 d1d1 o2o u, d O g i s t u d 1/10 g2g2 i2i Codice codifica O g g i S t u d i o

11 Borrelli A. – Chierchia E. 11 2° esempio di esecuzione : Tabella di Huffman Alfabeto di input Codice o100 g101 i11 s000 t001 u010 d011

12 Borrelli A. – Chierchia E. 12 I codici di Huffman : confronto tra i due esempi 1.Esempio : - 5 elementi codice generati : [001,0000,1,01,0001] - totale = 14 bits -Lunghezza media = 14 / 5 = 2,8 bits 2.Esempio : - 7 elementi codice generati:[100,101,11,000,001,010,011] -totale = 20 bits -Lunghezza media = 20 / 7 = 2,86 bits Lesempio illustra il fatto che la lunghezza media dei simboli nellalfabeto codice è maggiore per un alfabeto sorgente avente distribuzione uniforme delle occorrenze e minore per un alfabeto sorgente avente distribuzione non Uniforme. Ballo Bello = Oggi studio =

13 Borrelli A. – Chierchia E. 13 Elements of Information Theory,cap. 5,pp Thomas M.Cover, Joy A. Thomas A Wiley – Interscience Publication,John Wiley & Sons,Inc Bibliografia A method for the construction of minimum redundancy codes Huffman D.A. In proceedings IRE,vol 40,1952, pp


Scaricare ppt "I codici di Huffman Studenti: Borrelli Antonio 50/445 Chierchia Eduardo 50/223 Università di Napoli Federico II - Corso di laurea in Informatica Corso."

Presentazioni simili


Annunci Google