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