I formati dei file immagine
Le immagini vettoriali
Le immagini vettoriali
sono caratterizzate
da linee e curve
definite da entità
matematiche
chiamate vettori
I vettori sono
segmenti definti da
un punto di origine,
una direzione ed
una lunghezza
Le immagini raster
Le immagini raster o
bitmap, utilizzano
una griglia (la mappa
di bit o retino) di
piccoli quadrati, detti
pixel, per la
rappresentazione.
A ciascun pixel viene
assegnata una
posizione specifica e
un valore cromatico
Le immagini vettoriali
In genere i principali software di disegno
automatico mettono a disposizione una
serie di primitive grafiche quali archi,
cerchi, curve, cilindri e sfere.
Partendo da semplici primitive grafiche è
possibile creare figure complesse
bidimensionali e tridimensionali.
Le immagini vettoriali
I programmi grafici conservano i dati che descrivono
un disegno geometrico organizzandoli un una
struttura che permette, una volta salvata su file e
recuperata in un secondo momento, di trovare
tutte le informazioni per la visualizzazione e la
modifica del disegno.
Le immagini vettoriali
Ogni lista della struttura contiene:
i nomi degli oggetti
il nome dei segmenti che compongono gli oggetti
le coordinate delle coppie di vertici
Ad ogni elemento si possono associare attributi quali
colore, stile, spessore ecc....
Le immagini vettoriali : vantaggi
Si rendono estremamente semplici le
operazioni di grande importanza come le
trasformazioni geometriche



sposta
ruota
scala
Le immagini raster
Si ottengono da



scanner
macchine fotografiche digitali
software per la grafica
Le immagini raster

Sono codificate e memorizzate come una
serie di punti pixel – picture element

Per ogni punto vengono memorizzate :

una coppia di coordinate (il punto 0,0 si trova in
alto a sx)

un valore cromatico
Le immagini raster
Ogni pixel contiene informazioni
cromatiche a partire da
due colori (bianco/nero = 1 bit)
milioni di colori (24 – 32 bit)
Digitalizzazione di un’immagine:
Campionatura
Digitalizzazione di un’immagine:
+ quantizzazione
Digitalizzazione di un’immagine:
Codifica
Immagini raster e vettoriali
A volte la stessa
immagine può essere
rappresentata come
raster...
o, con qualche
cambiamento visibile
(qui esagerato),come
immagine vettoriale
Immagini raster e vettoriali


In linea di principio, i due tipi sono
interscambiabili...
... ma in pratica, le “foto” sono raster,
i “disegni” vettoriali

nulla vieta comunque di avere dipinti
iperrealistici che sembrano foto, o foto
posterizzate che sembrano disegni
Immagini raster




Un'immagine raster è definita per punti
L'immagine è scomposta in un numero
elevato di “punti”, tipicamente quadrati
o rettangoli quasi-quadrati
Ciascuno di questi punti è detto pixel
(dapicture element, elemento
dell'immagine)
La densità della griglia di
scomposizione,più o meno fitta, è detta
risoluzione
Immagini raster
Immagini raster
Esempio di immagine raster (in
bianco e nero):
Questa è la tecnica base per convertire
un'immagine in un numero
Immagini raster

Di ciascuno dei pixel che compongono
l'immagine vengono definite alcune
proprietà:



il colore (sempre)
la trasparenza (in alcuni casi)
Applicazioni più specializzate
definiscono altre proprietà (per
esempio, nel trattamento di immagini
astronomiche) che non considereremo
Immagini raster




Abbiamo visto che un'immagine raster
è codificata come una matrice di pixel
Ogni pixel codifica il colore del punto
corrispondente dell'immagine
La larghezza e altezza dell'immagine,
in pixel, danno la risoluzione spaziale
dell'immagine
Il numero di bit usati per codificare un
colore dà la risoluzione colore o
profondità dell'immagine
Esempi di risoluzione



170x170 pixel,
RGB a 8 bit per
componente
La risoluzione
spaziale non è
molto elevata
La risoluzione
colore è buona
Immagine
“giusta” per una
pagina web
Esempi di risoluzione




32x32 pixel, RGB
a 8 bit per
componente
La risoluzione
spaziale è molto
bassa
La risoluzione
colore è buona
Usabile forse
come miniatura
Esempi di risoluzione




170x170 pixel, RGB
a 3 bit per
componente
La risoluzione
spaziale non è molto
elevata
La risoluzione colore
è bassa (8 rossi, 8
verdi, 8 blu; 512
colori totali)
Immagine da
“effetto speciale”
Esempi di risoluzione



16x16 pixel, RGB
a 2 bit per
componente
Un disastro!
Non va bene
neanche come
icona!
Occupazione di memoria



Prevedibilmente, l'occupazione di
memoria di un'immagine è legata alla
sua risoluzione spaziale e di colore
Tanto maggiori le risoluzioni, tanto
migliore la qualità dell'immagine, e
tanto maggiore l'occupazione di
memoria
Occupazione in bit = larghezza (in
pixel) × altezza (in pixel) × profondità
colore (in bit)
Occupazione della memoria
Occupazione della memoria


I calcoli sull'occupazione di memoria
che abbiamo fatto riguardano la
dimensione delle immagini in memoria
– per esempio, mentre vengono
visualizzate
Per memorizzare le immagini su disco,
o trasmetterle via rete, è conveniente
usare algoritmi di compressione per
ridurne la dimensione
Algoritmi di compressione

In generale, possiamo dividere gli
algoritmi di compressione in due
grandi famiglie:


algoritmi senza perdita (lossless):
consentono di ricostruire esattamente i dati
di partenza
algoritmi con perdita (lossy): si perde una
parte dell'informazione; non è più possibile
ricostruire esattamente i dati di partenza
Algoritmi lossless

Gli algoritmi di compressione senza
perdita applicati alle immagini sono gli
stessi usati nei normali programmi di
compressione



per esempio, algoritmi di Run Length Encoding,
Huffman, Lempel-Ziv-Welch, compressione
aritmetica
usati in PKZip, gzip, compress, RAR,ecc.
I formati di file per le immagini
specificano uno o più algoritmi da adottare
Algoritmi lossy


Gli algoritmi lossy sono invece progettati
esplicitamente per le applicazioni alle
immagini
I due principali sono:


JPEG (Joint Photographic Expert Group),
famosissimoalgoritmo basato sulla
trasformata inversa del coseno e
sull'eliminazione delle frequenze “alte”
(spaziali e colorimetriche), comunque
invisibili all'occhio umano
Wavelet, algoritmo molto efficiente
ma“sperimentale” a causa dell'alto costo
computazionale
Algoritmi lossy



Quando si decide di applicare un
algoritmo di compressione lossy a
un'immagine, è in genere possibile
specificare un fattore di qualità
Ad elevati fattori di compressione
(equindi, forti riduzioni di dimensioni)
corrispondono forti perdite di qualità
In genere, non si usano algoritmi lossy
se l'immagine deve ancora essere
“lavorata”.
Esempio (file JPEG, lossy)
Esempio (file PNG, lossless)
Esempio (file PNG, lossless)


Con gli algoritmi lossless, è a volte
possibile specificare un fattore di
compressione
Visto che con gli algoritmo lossless non si
perde mai in qualità, la scelta di una
compressione maggiore non peggiora
l'immagine


aumenta solo (in maniera impercettibile) il
tempo per caricare e salvare l'immagine
Conviene quindi usare sempre la
compressione maggiore!
Principali formati grafici

Con compressione lossless:





TIFF (Tagged Image File Format)
GIF (Graphics Interchange Format)
PNG (Portable Network Graphics)
BMP (Windows Bitmap)
Con compressione lossy:

JPEG (Joint Photographic Expert Group)
Algoritmi di compressione
per le immagini

Abbiamo visto che le immagini possono
essere compresse in vari modi, per
ridurne l'occupazione di memoria (su
disco o rete)


compressione lossless – non si perdono
dati
compressione lossy – si perdono i dati
“meno importanti”
Algoritmo RLE


L'RLE (run lenght encoding, codifica
della lunghezza delle sequenza) è un
algoritmo lossless particolarmente
semplice
Idea di base: quando trovo una serie di
pixel dello stesso colore, codifico solo
la lunghezza della serie e il colore

Per immagini di tipo “fumetto” o
geometriche, funziona molto bene!
Algoritmo RLE: esempio

Se l'immagine ha ampie aree di colore
uguale, si ottengono grossi risparmi

Se viceversa ogni punto ha un colore
diverso, si può anche peggiorare!
Un teorema importante sulla
compressione

Teorema:

non esiste un algoritmo di compressione
che“funzioni” sempre (cioè, che riduca
ladimensione dell'input in tutti i casi)
Algoritmi Huffmann e LZW

Si tratta di due algoritmi lossless usati
in molte applicazioni



non sono specializzati per le immagini
in entrambi i casi, il grado di compressione
non è direttamente legato al contenuto
dell'immagine
essendo lossless, non c'è mai perdita di
qualità: quando il formato li supporta, è
sempre* meglio usarli
* ma si ricordi il teorema precedente...
Algoritmo JPEG

JPEG è un algoritmo lossy specializzato
per le immagini

Funziona particolarmente su immagini
con molti sfumati (fotografie, incarnati,
paesaggi)

Quando l'immagine ha un forte
contrasto o passaggi bruschi di colore,
si possono notare dei difetti (detti
artefatti)
Algoritmo JPEG

Il processo prevede 4 passi

lo scopo è togliere informazione che
comunque l'occhio non noterebbe
Algoritmo JPEG:
altri usi notevoli




L'algoritmo JPEG è usato (ovviamente)
nei file .jpg o .jpeg – che costituiscono
l'80%-90% delle immagini sul Web
È un formato anche molto usato in
ambito medico (raggi X, TAC, ecc.)
Una variante più sofisticata è usata nei
formati per i film (MPEG, AVI, WMV;
anche DVD, satellite e digitale
terrestre)
Grande vantaggio: qualità buona,
compressione alta