Introduzione alla codifica entropica

Похожие документы
Teoria dell informazione

Codifica di Huffman e Lempel-Ziv-Welch A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

La codifica di sorgente

Indice. A Riassunto formule principali sulla Teoria dell Informazione per sorgenti135

Tecniche di compressione senza perdita

Codifica dell Informazione

Codifica dell Informazione

Programmazione Greedy I codici di Huffman

TEORIA DELL INFORMAZIONE ED ENTROPIA FEDERICO MARINI

2) Codici univocamente decifrabili e codici a prefisso.

L'Informazione e la sua Codifica. Maurizio Palesi

L informazione numerica

Compressione dei dati. Appunti di Sistemi A cura del prof. Ing. Mario Catalano

1.2d: La codifica Digitale dei caratteri

La codifica digitale

Entropia. Motivazione. ? Quant è l informazione portata dalla sequenza? Abbiamo una sequenza S di N simboli (campioni audio, pixel, caratteri,...

Soluzioni di Esercizi di Esame di Segnali Aleatori per Telecomunicazioni

INFORMATICA SANITARIA Domande ed Esercizi di Preparazione all Esame (Parti 8-17)

L'Informazione e la sua Codifica. Maurizio Palesi

La codifica dell informazione

Somma di numeri binari

Segnale analogico. Analogico vs digitale. Segnale digitale. Trasformazione da analogico a digitale

La codifica binaria. Informatica B. Daniele Loiacono

La codifica del testo

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

TECNICHE DI COMPRESSIONE DATI

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Software di compressione

La rappresentazione delle informazioni in un computer. La numerazione binaria

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Comunicazioni Elettriche Esercizi

Note sull implementazione in virgola fissa di filtri numerici

La Rappresentazione dell Informazione

Codifica delle Informazioni

Codifiche a lunghezza variabile

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Compressione dati. Capitolo 11. Leonora Bianchi IDSIA-DTI-SUPSI Leonora Bianchi

La codifica. dell informazione. Tipi di informazione

CONOSCERE IL LINGUAGGIO DEL COMPUTER

CODIFICA IMMAGINI IN BIANCO E NERO

Elementi di informatica

La codifica. dell informazione

Транскрипт:

Compressione senza perdite Il problema Introduzione alla codifica entropica Abbiamo un alfabeto di simboli A (nota: non è detto che gli elementi di A siano numeri) Sappiamo che il simbolo a A si presenta con probabilità P(a) Vogliamo trasmettere a usando il minor numero possibile di bit 2 DIE Compressione dati: classificazione Compressione senza perdite (lossless) I dati ricostruiti sono esattamente uguali ai dati originali Usata per quei dati che non tollerano errori (programmi, documenti, database, ecc... ) Esempio: zip, gzip, ecc... Compressione: esempio introduttivo Supponiamo di avere una sequenza di matite colorate e di voler trasmettere l informazione di colore 00000 0000... giallo verde... Compressione con perdite (lossy) Raggiunge compressioni più elevate permettendo lievi differenze tra i dati originali e i dati ricostruiti Usata principalmente con dati che hanno la natura di segnali (immagini, audio, video, ecc... ) Esempi: JPEG, MPEG, H264, AC3, ecc... 3 DIE

Compressione: esempio introduttivo (2) Compressione: esempio introduttivo (4) Supponiamo che siano possibili solo quattro colori:, verde, giallo e blu La probabilità di trovare una matita con un certo colore è Colore Prob. /2 giallo /4 verde /8 blu /8 Colori diversi capitano con frequenze diverse Assegnamo parole binarie corte a simboli più frequenti Primo tentativo Colore Prob. parola /2 0 giallo /4 verde /8 0 blu /8 4 6 DIE Compressione: esempio introduttivo (3) Come posso trasmettere l informazione di colore? Una prima soluzione potrebbe essere di codificare ogni colore usando 2 bit, per esempio 00 giallo 0 verde 0 blu Questa soluzione richiede 2 bit per matita Si può fare di meglio? Compressione: esempio introduttivo (5) Q: Quanti bit per matita usiamo in media? Su N matite ci sono circa NP(c) matite di colore c Se al colore c è associata una parola di L (c) bit, il numero di bit totali è Il numero di bit per matita è N NP(c)L (c) = NP(c)L (c) P(c)L (c) = /2 + /4 + /8 2 + /8 2 =.25 5 7 DIE

Compressione: esempio introduttivo (6) Che bello! Compressione: esempio introduttivo (8) Codici a lunghezza variabile Q: Da cosa nasce il problema? Usando il codice visto prima risparmiamo 3/4 di bit per matita ma... Con i codici a lunghezza fissa (es. ASCII) ad ogni simbolo corrisponde una stringa di lunghezza fissa (es. 8 bit) è facile capire quando inizia/finisce la parola associata ad un simbolo Con un codice a lunghezza variabile può capitare che la stessa stringa di bit possa essere partizionata in più modi se questo accade il codice è non decodificabile 8 0 DIE Compressione: esempio introduttivo (7) La stringa di bit corrispondente alla sequenza, verde, giallo è 0 0 Purtroppo la stessa stringa corrisponde anche alla sequenza, blu (0 0 ) Il codice è ambiguo! Compressione: esempio introduttivo (9) Il problema? Come facciamo a costruire un codice 00 0 0 = verde giallo 0 0 = blu. a lunghezza variabile 2. decodificabile 3. ottimo 9 DIE

Codice di Huffman Idea di base... Codice di Huffman (3) Se l alfabeto ha due elementi la costruzione del codice è banale: assegno 0 ad un elemento e all altro Proviamo a ridurre il problema di costruire un codice per un alfabeto con N elementi al problema di costruire un codice per N elementi In questo modo, rosicchiando un elemento alla volta, possiamo trasformare il problema originale nel problema banale visto prima. Per completare il codice mi rimane da scegliere W 0, W e W 2 Considero il nuovo alfabeto A = {,giallo,{v,b}} Il nuovo simbolo {V,B} ha probabilità /8 + /8 = /4 Ora devo trovare il codice per un alfabeto di tre elementi 2 4 DIE Codice di Huffman (2) Codice di Huffman (4) Iterando la procedura appena vista si arriva a Il verde e il blu sono i meno probabili codifichiamoli con due parole che differiscono solo per l ultimo bit W 0 W W 2 {V,B} 0 Rosso Giallo Verde Blu 0 Rosso {G,V,B} 0 Giallo 0 Verde {V,B} Blu Come si decodifica? Camminando sull albero! Colore 0 giallo 0 verde 0 blu parola 3 5 DIE

Codice di Huffman (5) Prestazioni Codice di Huffman (7) Quanti bit per matita uso col codice appena costruito? P(c)L (c) = 2 + 4 2 + 8 3 + 8 3 =.75 Risparmiamo /4 di bit per matita Costruzione di un codice di Huffman:. Si scelgono i due simboli meno probabili 2. Si crea un padre per i due simboli selezionati 3. Si itera fino ad avere un alfabeto con due elementi 6 8 DIE Codice di Huffman (6) Codice a prefisso Il codice ottenuto è tale che nessuna parola di codice è prefisso di un altra parola di codice Abbiamo un codice a prefisso Ogni codice a prefisso può essere descritto da un albero e decodificato camminando sull albero stesso Codice di Huffman (8) Prestazioni Nell esempio al colore c era associata una parola di codice di lunghezza log 2 P(c) e il numero di bit per matita era P(c)log 2 P(c) In generale, si dimostra, il codice di Huffman è ottimo e richiede L bit per simbolo con dove è l entropia di c H(C) L H(C) + H(C) = P(c)log 2 P(c) 7 9 DIE

Entropia Entropia: Proprieta (2) L entropia di una variabile aleatoria misura la quantità di informazione legata alla variabile aleatoria L entropia assume il valore massimo se c è uniformemente distribuita P(c) = / A Non è possibile codificare c usando un numero di bit per simbolo inferiore a H(C) In questo caso H(C) = log 2 ( A ) Nota: se P(c) = 0 si pone P(c)log 2 P(c) = 0. In generale, quanto più sbilanciata è la distribuzione, tanto più piccola è l entropia 20 22 DIE Entropia: Proprieta Se esiste c 0 tale che P(c 0 ) =, allora H(C) = 0 In altre parole: se c assume sempre lo stesso valore non devo spendere bit per trasmetterlo 2