Esercitazione 4 - Corsi a Distanza

Transcript

Esercitazione 4 - Corsi a Distanza
Politecnico di Torino
CeTeM
Informatica grafica e Multimedialità
4
Immagini grafiche
Immagini raster e vettoriali
Le immagini grafiche si distinguono in due “classi” differenti: immagini raster e immagini
vettoriali.
Le immagini raster, dette anche pittoriche o pixel-oriented, dividono l’immagine in una
griglia uniforme. Tutti i pezzi della griglia (pixel) hanno eguale dimensione. Per ogni pixel è
registrata l'informazione di colore. Il numero di colori che un’immagine può contenere
dipende da quanti bit-per-pixel sono usati per immagazzinare l’informazione di colore del
singolo pixel.
Le immagini vettoriali, o object-oriented, sono di solito generate da particolari software per
il disegno tecnico. Le unità base di un’immagine di tipo vettoriale non sono più i pixel,
come per le immagini raster, ma gli oggetti (linee e curve).
Formati grafici
Il formato TIFF. La definizione del formato TIFF è basata sul concetto di “tag”, ovvero
etichetta (da cui è poi stato derivato il nome del formato). Un file di tipo TIFF è costituito da
tre componenti principali:
• un header
• un image file directory
• i dati dell’immagine vera e propria
Il formato GIF. Il GIF è un formato compresso e l’algoritmo di compressione usato è l’LZW
(Lempel Zev Welch). Con il formato GIF si possono rappresentare solo 256 colori, cioè 8
bit-per-pixel. La struttura di un file GIF può essere riassunta nel modo seguente:
• GIF signature
• Screen Descriptor
• Global Color Map
• Descrittore dell’immagine
• GIF terminator
Formato JPEG. JPEG è progettato sia per comprimere immagini a colori che a scale di
grigio. JPEG realizza un algoritmo di compressione con perdita. Il livello di compressione è
parametrizzabile dall’utente. Il JPEG sfrutta l’incapacità dell’occhio umano nel distinguere
piccoli dettagli di colore o brusche variazioni di luminosità. L’immagine digitalizzata viene
“trasformata” nel dominio delle frequenze e le alte frequenze, cioè quelle meno distinguibili
dall’occhio umano, sono eliminate.
Formato PostScript. Il PostScript usa dei comandi simili alla lingua inglese (operatori) che
permettono di descrivere nel dettaglio il modo in cui le immagini devono apparire. Nella
definizione del Livello-2 del PostScript ci sono oltre 420 operatori di descrizione.
© Politecnico di Torino
Data ultima revisione 07/04/00
Pagina 1 di 5
Autore: Andrea Sanna
Politecnico di Torino
CeTeM
Informatica grafica e Multimedialità
4
Immagini grafiche
Stream video
Formati: Quicktime, AVI e MPEG.
Formato MPEG. Il concetto base di MPEG è quello della interpolazione dei frame. Alcuni
frame dell’animazione sono compressi (con la strategia del JPEG) per intero, mentre altri
frame dell’animazione sono predetti basandosi sulle informazioni dei frame precedenti
(concetto di coerenza temporale); è cioè probabile che due frame vicini nel tempo siano
molto simili.
Compressione delle immagini
Se l’algoritmo di compressione è senza perdita allora l’immagine decompressa deve
essere assolutamente identica all’immagine originale. Viceversa, se l’algoritmo di
compressione è con perdita (v. tecnica usata nel JPEG) allora l’immagine ottenuta può
anche differire da quella originaria.
Algoritmo RLE. Il Run-Length Encoding algorithm (RLE) si basa sulla soppressione dei
caratteri ripetuti. Data la stringa: 000023300034422000001111211000, questa risulterà
compressa nel modo seguente: 401223301324225041122130.
Compressione ricorsiva. L’immagine è ricorsivamente suddivisa in sotto aree, finché
ognuna di queste sotto aree non contiene pixel tutti dello stesso valore. La struttura
dell’immagine compressa non è più una lista di simboli, bensì una struttura ad albero.
Codifica di Huffman. Ai simboli che risultano essere più probabilmente ricorrenti vengono
assegnati meno bit, viceversa ai simboli meno ricorrenti. Ovviamente, la tabella di
conversione tra simboli e bit assegnati deve essere nota sia a chi effettua la codifica
(compressione) sia a chi effettua la decodifica (decompressione).
È stato dimostrato che ogni simbolo introduce un numero di bit pari al logaritmo in base
due della sua probabilità.
Algoritmo LZW. Questo algoritmo cerca di realizzare una compressione adattativa
dell’immagine costruendosi una tabella delle sottostringhe di simboli che ha analizzato.
Inizialmente costruisce una tabella dove crea delle corrispondenze tra tutti i valori che
possono assumere i pixel e i codici che attribuirà ad essi. Dopodiché, la procedura di
compressione incomincia ad analizzare i simboli uno per volta. Se trova una sottostringa
che è già in tabella allora prova a costruirsi una stringa più grossa, accodando il simbolo
successivo che deve essere compresso. Quando si accorge che ha costruito una stringa
che non è presente in tabella, allora “registra” la nuova stringa in tabella (le assegna un
nuovo “codice” corrispondente) ed emette il simbolo della sottostringa precedente
all’ultimo simbolo considerato.
© Politecnico di Torino
Data ultima revisione 07/04/00
Pagina 2 di 5
Autore: Andrea Sanna
Politecnico di Torino
CeTeM
Informatica grafica e Multimedialità
4
Immagini grafiche
Domande
Domanda 1
Si illustri la differenza tra immagini raster e immagini vettoriali.
Domanda 2
Si elenchino i principali formati grafici descrivendone brevemente le caratteristiche.
Domanda 3
Si supponga di avere un’immagine e di volerla convertire nel formato JPEG, quali livelli di
compressione devono essere adottati affinché l’immagine risultante sia praticamente
indistinguibile dall’originale?
Domanda 4
Quali sono (e per quali motivi) i formati grafici usati nel Web?
Domanda 5
Quali sono i principali svantaggi del formato PostScript?
Domanda 6
Si illustri brevemente il funzionamento della codifica MPEG.
Domanda 7
Si illustrino i principali algoritmi di compressione delle immagini.
Domanda 8
Qual è la differenza tra compressione con perdita e senza perdita?
Domanda 9
Si descriva il funzionamento della codifica di Huffman.
Domanda 10
Si descriva il funzionamento dell’algoritmo LZW.
Domanda 11
Si descriva il funzionamento della codifica RLE.
© Politecnico di Torino
Data ultima revisione 07/04/00
Pagina 3 di 5
Autore: Andrea Sanna
Politecnico di Torino
CeTeM
Informatica grafica e Multimedialità
4
Immagini grafiche
Esercizi
Esercizio 1
Data la seguente stringa di simboli: 22223444400001111888888 la si comprima con
l’algoritmo RLE
Esercizio 2
Supponendo che i pixel possano assumere 4 valori di intensità, cioè due bit-per-pixel, con
le seguenti probabilità: 00 (0,40), 01 (0,25), 10 (0,20), 11 (0,15), li si codifichi mediante la
codifica di Huffman.
Esercizio 3
Si supponga di prendere in considerazione un’immagine 2 bit per pixel e di considerare la
stringa di simboli: 010111010001; quale stringa di simboli è emessa con l’algoritmo LZW?
Esercizi risolti
Esercizio 1
Si comprima la stringa: 000023300034422000001111211000 con l’algoritmo RLE.
Risultato: 4-0 1-2 2-3 3-0 1-3 2-4 2-2 5-0 4-1 1-2 2-1 3-0
Esercizio 2
Supponiamo che i pixel possano assumere 4 valori di intensità, cioè due bit-per-pixel, con
le seguenti probabilità: 00 (0,35), 01 (0,30), 10 (0,20), 11 (0,15) e li si voglia codificare con
la codifica di Huffman. I simboli devono essere ordinati per probabilità decrescente:
00
01
10
11
0,35
0,30
0,20
0,15
poi si mettono insieme i due simboli che hanno le probabilità minori, si riordina e si ripete il
procedimento fino a che non si rimane con due soli “simboli”.
00
0,35
10+11 0,35 -->
01
0,30
10+11+01 0,65
00
0,35
Dopodiché si incomincia ad assegnare i simboli e ci si muove a ritroso finché si ritorna alla
situazione di partenza:
01+11+10
00
1
00
0 -->10+11
01
0
10 -->
11
© Politecnico di Torino
Data ultima revisione 07/04/00
00
10
11
01
0
100
101
11
Pagina 4 di 5
Autore: Andrea Sanna
Politecnico di Torino
CeTeM
Informatica grafica e Multimedialità
4
© Politecnico di Torino
Data ultima revisione 07/04/00
Immagini grafiche
Pagina 5 di 5
Autore: Andrea Sanna