METODI PER IL TRATTAMENTO NUMERICO DI DATI MULTIMEDIALI

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Alberi binari Definizione Sottoalberi Padre, figli
Algoritmi e Strutture Dati
Fondamenti di Informatica
Il problema del minimo albero ricoprente in un grafo non cooperativo
Classe III A A.s – 2011 Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti –Prof. Alberto Ferrari –Prof. Alberto Paganuzzi.
CODIFICA DELLE INFORMAZIONI
Trasmissione delle informazioni
Il codice neurale.
Fondamenti di Informatica
Algoritmi e Strutture Dati
Fondamenti di Informatica
RB-alberi (Red-Black trees)
Alberi binari di ricerca
Significato, vantaggi e svantaggi Marchesin Sara Soligo Alessandra
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 28/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 06/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Il problema del minimo albero ricoprente in un grafo con archi privati
Algoritmi e strutture Dati - Lezione 7
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
A.S.E.6.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 6 Complemento a MComplemento a M Rappresentazione di numeri con segnoRappresentazione di numeri.
A.S.E.5.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 5 Rappresentazione di numeri con segnoRappresentazione di numeri con segno –Modulo e segno (MS)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e strutture dati
Corso di Informatica per Giurisprudenza
I CODICI.
Codici binari decimali
Algoritmi e Strutture Dati
Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco Gennaro Cordasco
Lezione 5. Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi Abbiamo detto abbastanza KoordeNeighbor of Neighbor routing (NON)
Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi Abbiamo detto abbastanza KoordeNeighbor of Neighbor routing (NON)
Lezione 5 Domande: Laverage path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) Laverage path length di Chord con 2^b.
Esercizi su alberi binari
Lezione 3 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
Intelligenza Artificiale Algoritmi Genetici
Programma del corso Dati e loro rappresentazione Architettura di un calcolatore Sistemi operativi Linguaggi di programmazione Applicativi: - fogli elettronici.
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
Esercitazione no. 5 EXCEL Laboratorio di Informatica AA 2009/2010.
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
LA CRITTOGRAFIA QUANTISTICA
Elementi di Informatica di base
Algoritmi e Programmazione strutturata
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Ci occupiamo della misura dellinformazione emessa da una sorgente la sorgente è tanto più efficiente quanto più risulta imprevedibile da parte del destinatario.
Cerchiamo di rispondere alla seconda domanda 2)La soluzione trovata con lalgoritmo goloso è ottima o esistono anche soluzioni con più di quattro attività?
Programmazione di calcolatori
Programma di Informatica Classi Prime
Codifica dell’informazione
Chapter 5 - Part 2 1 Procedura di sintesi  Specifiche  Formulazione – Ricavare un diagramma o una tabella di stato  Assegnazione della codifica di stato.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Bit singolo e burst u un canale che trasmette voce tollera bene gli errori distribuiti uniformemente –perche’ errori singoli hanno effetti simili al rumore.
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Università degli Studi di Perugia 20/09/2015Informatica applicata all’educazione a.a Informatica applicata all’educazione a.a Corso.
Linguaggi, stringhe e alfabeti. Linguaggi e grammatiche Un linguaggio è un sistema di comunicazione tra persone che permette di trasmettere informazioni.
© 2015 Giorgio Porcu - Aggiornamennto 01/12/2015 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Rappresentazione dell’ Informazione Informazione.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Università degli Studi di Roma “La Sapienza” Techniche di Compressione “Elaborazioni delle Immagini” “Elaborazioni delle Immagini”
Steganografia in un file di testo Corso di Sicurezza dei sistemi informatici Prof. Giuseppe Mastronardi Anno Accademico 2006/07.
Transcript della presentazione:

METODI PER IL TRATTAMENTO NUMERICO DI DATI MULTIMEDIALI 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 I codici di Huffman Studenti: Borrelli Antonio 50/445 Chierchia Eduardo 50/223

Introduzione David A. Huffman(1925-1999) è stato uno dei pionieri nel campo della Computer Science 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.”

Nozioni preliminari (1/3) Un algoritmo di codifica è un algoritmo attraverso il quale si rappresenta l’informazione originale per mezzo di un nuovo alfabeto di simboli Un algoritmo di codifica si dice di tipo lossless se non comporta nessuna perdita dell’informazione originale Un algoritmo di codifica deve essere sempre accompagnato da uno di decodifica affinché si possa ripristinare l’informazione originale a partire dall’alfabeto dei codici 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 dell’informazione Integrazione al canale di comunicazione

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.

Nozioni preliminari (3/3) Altre caratteristiche notevoli della Codifica di Huffman sono le seguenti : Ottimalità del codice 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 dall’algoritmo di Huffman, non esiste nessun altro algoritmo in grado di produrre un codice L tale che L(K)< H(K) Univoca decodificabilità Il processo di decodifica è unico ed immediato. Il codice prodotto è prefisso ovvero nessuna parola del codice è il prefisso di un’altra parola del codice stesso, es.: Codice Prefisso A := {a,ba,bb} Codice Non Prefisso A’:= {a,ab,bba}

La codifca di Huffman Attualmente i codici di Huffmann vengono adoperati come back-end di altre tecniche di compressione più evolute e complesse quali ad esempio JPEG 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 nell’alfabeto sorgente 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à dell’albero è 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)

L’ algoritmo (costruzione del codice) A partire dalla precedente descrizione di albero pesato n-ario analizziamo i passi dell’algoritmo considerando alfabeti di codice (quindi alberi) binari: Input : Alfabeto sorgente A di m simboli Frequenza di ogni simbolo dell’alfabeto A considerato Output : Codice Huffman H degli m simboli dell’alfabeto A in ingresso Algoritmo : Si ordinano i simboli dell’alfabeto 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 )

I codici di Huffman : 1° esempio di esecuzione Consideriamo un semplice esempio per comprendere al meglio l’algoritmo precedentemente esposto Supponiamo, per semplicità, di costruire sia l’alfabeto di simboli che le probabilità di occorrenza sul seguente testo : Si itera finché non si è ottenuto un unico albero Testo:= “Ballo Bello” codifica B a ll o B e ll o 00100001101 00100011101 Alfabeto di input : Si assegna 0 ad ogni arco sottendente un figlio sinistro, 1 altrimenti Σ:= { } B , a , l , o , e 10 Si ordinano i simboli dell’alfabeto in ordine crescente di frequenza: si ottengono così n alberi pesati Si selezionano i due alberi a ed e con peso più basso : nuovo nodo radice con peso pari alla somma di a + e 6 i F(i) 1 B 2/10 4 a 1 1/10 l 4/10 1 2 o 2/10 1 e 1/10 a 1 e 1 B 2 o 2 l 4 Codice 0000 0001 001 01 1

1° esempio di esecuzione : Tabella di Huffman Alfabeto di input Codice B 001 a 0000 l 1 o 01 e 0001

I codici di Huffman : 2° esempio di esecuzione 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 l’efficienza intesa come dimensione dell’ informazione codificata da trasmettere ne risente O g g i S t u d i o Testo:= “Oggi studio” codifica 10010110111 00000101001111100 Alfabeto di input : 10 Σ:= { } 1 O , g , i , s , t , u d i F(i) 4 6 O 2/10 1 g 2/10 i 2/10 1 2 2 4 s 1/10 1 1 1 t 1/10 S 1 t 1 u 1 d 1 o 2 g 2 i 2 u 1/10 d 1/10 000 001 010 011 100 101 11 Codice

2° esempio di esecuzione : Tabella di Huffman Alfabeto di input Codice o 100 g 101 i 11 s 000 t 001 u 010 d 011

I codici di Huffman : confronto tra i due esempi “Ballo Bello” = 00100001101 00100011101 “Oggi studio” = 10010110111 0000010100111110 Esempio : - 5 elementi codice generati : [001,0000,1,01,0001] - totale = 14 bits Lunghezza media = 14 / 5 = 2,8 bits - 7 elementi codice generati:[100,101,11,000,001,010,011] totale = 20 bits Lunghezza media = 20 / 7 = 2,86 bits L’esempio illustra il fatto che la lunghezza media dei simboli nell’alfabeto codice è maggiore per un alfabeto sorgente avente distribuzione uniforme delle occorrenze e minore per un alfabeto sorgente avente distribuzione non Uniforme.

Bibliografia “Elements of Information Theory”,cap. 5,pp.92-101. Thomas M.Cover, Joy A. Thomas A Wiley – Interscience Publication,John Wiley & Sons,Inc A method for the construction of minimum redundancy codes Huffman D.A. In proceedings IRE,vol 40,1952, pp 1098-1101.