• Non ci sono risultati.

Formati e compressioni

N/A
N/A
Protected

Academic year: 2022

Condividi "Formati e compressioni"

Copied!
8
0
0

Testo completo

(1)

Sistemi Multimediali

Marco Gribaudo

[email protected], [email protected]

Formati e compressioni

Formati di immagini

Anche se in memoria le immagini vengono quasi sempre memorizzate come una sequenza di colori RGB, quando queste vengono salvate su file, esse vengono compresse per ridurne lo spazio occupato.

Con il termine formato, si intende la particolare tecnica utilizzata per memorizzare un'immagine in un File.

Formati di immagini

Le immagini possono essere destinate a scopi differenti: per la stampa,

l'archiviaizione, la trasmissione in rete.

Ogni formato e' destinato ad un utilizzo specifico.

Ry

Rx

Formati di immagini

La risoluzione di un'immagine definisce la densita' dei pixel che la compongono.

w

h

Formati di immagini

Una volta acquisita, l'immagine viene codificata con un certo numero di pixel in orizzantale w, ed in verticale h.

Ry

Rx

Formati di immagini

I pixel non sono necessariamente di forma quadrata.

In questo caso si parla di risoluzione orizzontale e di risoluzione verticale.

(2)

Calendario 2010

Dy

Dx

Formati di immagini

Le dimensioni di un'immagine determinano invece l'occupazione spaziale dell'immagine prima di essere acquisita o dopo essere stata riprodotta.

Dx. Rx = w Dy. Ry = h

Formati di immagini

Vi e' una semplice relazione tra dimensioni, risoluzione e numero di pixel che compongono un'immagine.

Immagini con Palette

Una dei primi accorgimenti operato per ridurre le dimensioni di un'immagine e' la riduzione del numero di colori.

In questo caso si parla di immagini con Palette.

L'utilizzo di una Palette puo' essere visto come una quantizzazione vettoriale del segnale che rappresenta il colore RGB.

Immagini con Palette

La Palette e' una tavolozza contenente un numero ristretto di colori (solitamente in numero di una potenza di due).

0 1 2 3 4 5 6

Immagini con Palette

In memoria la Palette e' codificata come un array di colori RGB.

0 1 2 3 4 5 6

Immagini con Palette

Il colore di un pixel viene quindi definito da un valore intero: l'indice della riga dell'array in cui e' contenuta la sua definizione RGB.

(3)

Immagini con Palette

La Palette puo' essere fissa, oppure variare da immagine ad immagine.

In questo secondo caso il file che codifica l'immagine deve anche prevedere lo spazio per la tabella che specifica i valori RGB di ogni colore.

T 0 1 2 3 4 5

Immagini con Palette

Inoltre, come alternativa al canale alpha, alcune palette dispongono di un colore extra detto trasparenza.

T

Immagini con Palette

Il colore trasparente viene utilizzato per codificare i pixel per cui il canale alpha varrebbe 0. Tutti gli altri colori hanno il canale alpha pari ad 1.

Immagini con Palette

Una palette con un numero non sufficiente di colori ha l'effetto di creare aree ravviciante caratterizzate dalla stessa tonalita. Questo effetto prende il nome di Posterizzazione.

0 1 2 3 4 5 6

Immagini con Palette

Data una Palette P, ed un'immagine RGB, il problema e' quello di approssimare al meglio l'immagine con la Palette.

Immagini con Palette

La tecnica piu' semplice, sfrutta una funzione di distanza tra i colori.

(4)

Immagini con Palette

Ad ogni colore p di un pixel, associa l'elemento i della palette che minimizza la distanza tra i due colori.

Immagini con Palette

Questo metodo e' pero' estremamente prono alla posterizzazione.

Si puo' ridurre l'effetto applicando una tecnica di dithering.

con dithering

Immagini con Palette

Il Dithering, mischia i pixel confinanti, allo scopo di limitare la possibilita' di avere aree dello stesso colore confinanti.

Immagini con Palette

Se si ha la possibilita' di usare una Palette diversa per immagine, allora si deve per prima cosa determinare la Palette ottimale in funzione del numero di colori disponibili.

Solitamente si utilizzano tecniche di Clustering, per trovare i colori piu' simili all'interno dell'immagine.

Immagini con Palette

Il k-mean clustering, crea k clusters a partire da una serie di dati.

Palette Colori dei Pixel

Immagini con Palette

Nell'operazione di creazione di un Palatte, k

corrisponde al numero di colori nella Palette, ed i dati sono i colori dei pixel dell'immagine originale.

(5)

Profondita' di colore

Viene chiamata profondita' di colore il numero di bit d necessario per codificare un'immagine.

Solitamente per immagini dotate di palette, d <= 8.

In questo caso la palette e' dotata di 2d colori diversi.

Profondita' di colore

Un'immagine con d=16 e detta immagine High Color.

In questo caso il colore viene codificato in RGB, con 5 bit per il rosso, 6 bit per il verde e 5 bit per il blu.

Ormai il sistema e' caduto in disuso, ed e' interessante solamente piu' per ragioni storiche.

Profondita' di colore

Un'immagine con d=24 e detta immagine True Color.

In questo caso il colore viene codificato in RGB, utilizzando un byte per canale.

Attualmente esso e' il formato piu' diffuso.

Profondita' di colore

Se d=32 l'immagine di dice RGBA, perche' aggiunge ai canali RGB anche il canale alpha (con altri 8 bit).

Alcuni standard permettono d=48 o d=64, consentendo 16 bit per canale.

Infine stanno nascendo nuovi standard chiamati HDR (High Dynamic Range), che permettono di utilizzare valori in virgola mobile per i singoli canali.

Mem = w . h . d bits

Profondita' di colore

Per trovare la quantita' di memoria (in bit) necessaria a codificare un'immagine senza palette (o con palette fissa) e sufficiente eseguire un prodotto.

Mem = w . h . d + dp . 2d bits

Profondita' di colore

Nel caso di immagini con Palette variabile, bisogna anche sommare la memoria necessaria per codificare la palette (normalmente espressa con valori in True Color, di profondita' dp = 24).

(6)

Formati non compressi

I formati di file che codificano immagini senza compressione sono i piu' semplici da leggere.

Essi sono solitamente costituiti da due o tre parti parti:

L'intestazione (La palette) i Dati

Formati non compressi

L'intestazione contiene informazioni relative all'immagine, ed in particolare le dimensioni (in pixel), e la profondita' di colore.

Essa puo' anche contenere infromazioni addizionali come meta-dati per la

catalogazione, risoluzione di acquisizione, ed eventuali specifiche di codifica

Formati non compressi

Se la codifica prevede una Palette, generalmente questa e' posta tra l'intestazione ed i dati dell'immagine.

Seguno quindi i colori dei pixel (o gli indici nella palette), elencati per righe, dal punto in alto a sinistra, fino a quello in basso a destra.

La compressione

Come si vede, la quantita' di memoria necessaria per memorizzare un'immagine e' notevole.

Inoltre, le numerose simmetrie presenti all'interno di un'immagine la rendono solitamente idonea all'applicazione di varie tecniche di compressione.

La compressione

Le compressioni si dividono in due categorie:

Senza Perdita Con Perdita

La compressione

Le compressioni senza perdita sono quelle che ricostruiscono esattamente la sequenza di valori RGB (o di indici nella palette) che vi era prima della compressione.

Le compressioni con perdita, ricostruiscono un'immagine differente da quella originale, ma visivamente non distinguibile.

In ogni caso, entrambe le compressioni sono affette dalle perdite relative al campionamento ed alla quantizzazione.

(7)

Run-lenght encoding

La tecnica di compressione piu' semplice e' il run-lenght encoding (RLE).

Essa e' particolarmente adatta per immagini con Palette, e sfrutta la presenza di ripetizioni di colori all'interno della figura.

1111112221123211222111111 = 25 valori

Run-lenght encoding

L'algoritmo divide la sequenza di dati in blocchi.

1111112221123211222111111 = 25 valori -41

Run-lenght encoding

Il primo dato n di un blocco ha un significato speciale.

Se n<=0, il pixel successivo deve venire ripetuto 2-n volte.

1111112221123211222111111 = 25 valori -41 -12 01 3232

Run-lenght encoding

Con n>0, allora indica che i successivi n pixel vanno copiati sull'immagine decmpressa.

1111112221123211222111111 = 25 valori -41 -12 01 3232 01 -12 -41 = 16 valori

Run-lenght encoding

Come si vede, si e' ottenuto un risparmio di 9 byte (il 36 % in meno).

Run-lenght encoding

I blocchi hanno quindi lunghezza n+1, se n > 0, 2 altrimenti.

Solitamente n e' un byte segnato, per cui si possono avere fino a 127 colori in un blocco, e codificare sequenze (run-length) di fino a 130 ripetizioni consecutive di un colore.

(8)

Run-lenght encoding

L'algoritmo e' molto semplice da implementare, sia in fase di compressione, che in fase di decmpressione.

Esso pero' permette solamente risparmi piuttosto modesti (ed in casi

particolarmente sfortunati puo' addirittura aumentare le dimensioni dell'immagine compressa).

Riferimenti

Documenti correlati

laser di superfici per la resistenza alla cavitazione erosione 84

2 Istituto per lo Studio dei Materiali Nanostrutturati (CNR-ISMN), Consiglio Nazionale delle Ricerche, via P... G binding decomposed

The BALLAST pump is equipped with the latest automatic air injection cooling system to enable continuous operation at 70% range vacuum.. La pompa BALLAST rappresenta una

Tutte le pompe Berarma PLP sono dotate di regolatore di pressione di tipo meccanico, attraverso il quale è possibile regolare la pressione massima di lavoro della pompa. Avvitando

In un libro, la percentuale delle pagine che contengono errori tipografici.. e

The main contributions of this work can be summarized as follows: (a) the development of a novel robotic painting system capable of paining artworks using the palette knife

v è un vettore di puntatori, cioè è l'indirizzo di memoria (“puntatore”) di un puntatore, quindi v+1 è l'indirizzo del secondo puntatore del vettore v (ossia è pari a

Questa conversazione fra un Presidente e un’intellettuale che promuove la storia in nome della democrazia, della creatività e della felicità dei cittadini è (temo) impensabile