Trattamento Immagini (parte 2) L1-2 32
Digitalizzazione di un'immagine Quantizzazione La carica di ogni photosite viene misurata e ad essa associato un numero in forma binaria La bit depth è numero di bit M che corrisponde 2M intervalli LSB: Least Significant Bit
Digitalizzazione La conversione digitale di ogni elemento d'immagine produce in ultima istanza un valore binario di M bit Questo valore rappresenta un numero intero espresso esclusivamente con cifre 0 oppure 1 I numeri binari sono rappresentazione dei numeri con il sistema posizionale usando 2 come base Esempio di numero a 4 bit 01102=(0x23+1x22+1x21+0x20)10= 610
Digitalizzazione Immagini 'grayscale' Ogni PIXEL (PI[X](cture) EL(element)) viene rappresentato da una parola binaria di M bit. Il significato di questo registro binario è quella di intensità luminosa sul photosite Il valore 0 significa assenza di luce Il valore 2M-1 significa saturazione del photosite
Digitalizzazione Immagini a colori Immagini a colori hanno un photosite per ognuna delle 3 componenti cromatiche RGB quindi ogni elemento di immagine (PIXEL) è rappresentato da una terna di numeri Se la bit-depth per ciascun canale è di 8 bit allora ogni elemento è rappresentato da 24 bit
Sistema di Coordinate
Rappresentazione Digitalizzata
Tipi di Immagini Grayscale image: una singola parola di 2k valori rappresenta l'intensità di grigio con 0 che rappresenta il nero e 2k – 1 il bianco K=8 è comune per fotocamere a basso costo In medicina ed astronomia sono comuni fotocamere con profondità k=12 o 16
Pixel Values
Data storage and transmission Problema Scrivere i dati su memoria o comunicare i dati tramite canale di trasmissione (rete) Rileggere i dati e ricostruire l'immagine per Visualizzazione Analisi
Data Storage and Transmission Soluzione naive al problema: Dump ASCII della matrice di pixel Immagini anche di media dimensione avrebbero file di grandi dimensioni Inefficienza delle applicazioni nella lettura / scrittura (encoding/decoding delle stringhe) Lenta trasmissione e consumo inutile di potenzialità trasmissiva
Data Storage and Transimission: ASCII code
Data storage and Transmission Soluzione naive al problema: Scrivere la matrice in forma binaria all'interno di un file Problema: al momendo della ricostruzione quante righe e colonne di pixel aveva l'immagine? Soluzione: scrivo all'inizio del file 2 interi a 16 o 32 bit con questa informazione Problema: quale byte ordering devo usare per gli interi? Soluzione: aggiungo un'altro byte all'inizio del file con un codice convenzionale che mi dice quale byte ordering devo usare
Data Storage and Transmission: Endianness
Data storage and Transmission Soluzione naive al problema Gestione formati differenti Problema: come codificare la bit depth? Soluzione: aggiungere un nuovo byte all'inizio del file Problema: Come implementare la gestione delle immagini indexed? Soluzione: aggiungo byte descrittore tipo di immagine e altri due byte per la lunghezza della tavolozza Problema: come risparmiare spazio e minimizzare tempi di trasmissione? Soluzione: adottare algoritmi di compressione, bisogna aggiungere all'header eventuali informazioni richieste per identificare il tipo e il livello software delle librerie dell'algoritmo e salvare i parametri di compressione usati Etc. etc
Formati di Immagini Obiettivo dei diversi formati Interscambio Differenti applicativi Differenti sistemi operativi Storaggio Archiviazione Estensibilità Compatibilità Diffusione Internet Metadati, informazioni accessorie
Formati di Immagini Classi di formati per storage di immagini Raster images: immagini rappresentate come matrici di bit. Contengono trasformazioni e rielaborazioni dei dati originari Vector Graphics: immagini rappresentate attraverso la descrizioni di oggetti geometrici. Permettono di essere modificate soprattutto in scala mantenendo risoluzione e resa grafica una volta rigenerati come matrice di pixel: caso popolare SVG (Scalable Vector Graphics)
Formati di Immagini Rappresentazione ed ottimizzazione binarie Compressione Rappresentazioni dei numeri dipendenti dall'architettura dell'hardware Endianness: numeri espressi su più byte (come quasi sempre è il caso) possono in realtà essere memorizzati con un ordine dei byte diverso su diverse architetture hardware
Compressione Dati Riduzione della ridondanza dei dati Tecnologie basate su diversi metodi matematici, sull'inferenza statistica e tecniche informatiche Rapporto di Compressione = N / n Risparmio di Spazio = 1 – n / N Un insieme di informazioni codificate in N bit può essere rappresentato in un numero inferiore n di bit con rapporto di compressione che dipendono dalla struttura dei dati e dal metodo di compressione
Compressione Dati 2 categorie generali di algoritmi di compressione dati Lossless: algoritmi di compressione senza perdita di informazione. Riducono la ridondanza permettendo di ricostruire esattamente i dati originari. Indispensabili per compressione di archivi software Lossy: algoritmi di compressione con perdita di informazione. Permettono di ricostruire l'essenza dell'informazione originaria, ma non i dati originari usati quando il 'consumatore' è un sistema a minore capacità di discriminazione
TIFF: Tagged Image File Format Supporta formati multipli e diversi metodi di compressione Ogni file può contenere rappresentazioni multiple della stessa informazione Usato per archiviazione e scambio tra piattaforme e applicazioni differenti Ogni file può avere dimensioni considerevoli: inadatto per costruire pagine web
TIFF: Tagged Image File Format
GIF: Graphics Interchange Format Formato proprietario (Compuserve, 1986) Supporto per immagini “indexed” La pixmap è costituita da indici all'interno di una tavolozza memorizzata nell'header Supporto per bit-depth massima di 8 bit Supporto per bit di trasparenza Compressione LZW (Lempel-Ziv-Welch) Possibilità di creare singole semplici animazioni Capacità di compattare lo spazio dei colori per immagini con pochi colori (e.g. icone)
PNG: Portable Network Graphics Pronunciato in inglese 'PING' Formato aperto pensato per Internet Truecolor (fino a 48 bit/pixel) Grayscale (fino a 16 bit/pixel) Indexed (fino a 256 colori) Alpha Channel 8 bit Capacità teorica fino a 230x230 pixel Compressione lossless basata su PKZIP
JPEG (Joint Photographic Experts Group) Creato nel 1990, diventato un standard ISO Design modulare Adattabile a diversi tipi di immagine Compressione 'lossy' perché pensato per immagini fotografiche il cui 'consumatore' è il nostro sistema percettivo
JPEG (Joint Photographic Experts Group) Caso di immagazzinamento di immagini RGB Trasformazione da RGB a YCbCr dove Y rappresenta la luminosità mentre Cb e Cr sono la componente cromatica (detta anche croma) Compressione con algoritmo 'lossy' con rapporti di compressione differenziati tra croma e luminosità Trasformata cos e quantizzazione nello spazio delle frequenze Ulteriore compressione lossless
JPEG (Joint Photographic Experts Group)
JPEG (Joint Photographic Experts Group) Inadatto per memorizzare su file immagini con molte curve o linee dal contorno netto.
Windows® Bitmap (BMP) Ancora usato in ambiente Windows Può memorizzare immagini grayscale, indexed e RGB Inefficiente perché invariabilmente usa un byte per ogni pixel Supporto basilare per la compressione 'lossless'
Portable Bitmap Format (PBM) Semplice formato ASCII e quindi può essere manipolato anche con un editor
Formati di Immagine
Best Graphic Format