Immagini Raster e Vettoriali PDF

Summary

Questo documento fornisce un'introduzione alle immagini raster e vettoriali, descrivendone i concetti fondamentali e fornendo esempi pratici di digitalizzazione. Si tratta di un documento informativo sul tema delle immagini digitali in ambito informatico.

Full Transcript

# LEZIONE 6 La multimedialità: immagini raster e vettoriali ## Introduzione Lettere e numeri non costituiscono gli unici dati utilizzati dagli elaboratori, le applicazioni utilizzano ed elaborano anche altri tipi di informazioni: immagini, suoni e filmati. - In questi casi si parla di applicazion...

# LEZIONE 6 La multimedialità: immagini raster e vettoriali ## Introduzione Lettere e numeri non costituiscono gli unici dati utilizzati dagli elaboratori, le applicazioni utilizzano ed elaborano anche altri tipi di informazioni: immagini, suoni e filmati. - In questi casi si parla di applicazioni di tipo multimediale. Queste informazioni sono di natura analogica e devono essere trasformate in digitale: la rappresentazione discreta di informazioni analogiche comporta necessariamente una perdita di dati e, a seconda della tecnica che viene utilizzata nella conversione, otteniamo risultati più o meno "fedeli" all'origine analogica. **ESEMPIO** Un'immagine può essere rappresentata in digitale nei due formati raffigurati a lato. Il primo formato è perfettamente identico all'immagine analogica, mentre nel secondo formato si nota che durante la conversione si sono perse delle informazioni. In questa lezione verranno analizzati i formati digitali più utilizzati per le componenti multimediali, che in base alla loro tipologia possono essere così classificate: - immagini scalari o raster, utilizzate per le fotografie, le scansioni, le immagini biomediche ecc.; in questo caso un'immagine rappresenta una scena con una matrice di numeri (bitmap); - immagini vettoriali, utilizzate principalmente nel disegno geometrico (CAD), nei loghi, nelle illustrazioni, nelle mappe, nei grafici; in questo caso una scena ha una descrizione matematica di forme e linee. ## Immagini raster monocromatiche Nella rappresentazione digitale di immagini sia pittoriche che grafiche è necessario trasformare l'immagine analogica (per esempio una fotografia), cioè un insieme continuo di informazioni (luce, colore) in due dimensioni, in un insieme di parti distinte che possono essere codificate separatamente come numeri (discretizzazione), mediante un'operazione che prende il nome di digitalizzazione: - la prima fase del processo di digitalizzazione avviene sovrapponendo idealmente all'immagine una griglia fittissima di minuscole celle denominate pixel (picture element), un'operazione chiamata campionamento spaziale; - successivamente vengono codificati i pixel, associando a ogni punto un numero che corrisponde, secondo una tabella di corrispondenza (tavolozza), a colori diversi o a sfumature diverse di un particolare colore: questa operazione si chiama quantizzazione. Nelle immagini in bianco e nero ciascun pixel può assumere solo due valori: bianco oppure nero, e viene codificato con un singolo bit. **ESEMPIO** Vediamo come effettuare il campionamento spaziale di una circonferenza: sovrapponiamo la circonferenza a una griglia come nella seconda figura e otteniamo i pixel che la individuano (terza figura). Vediamo ora come effettuare la quantizzazione, cioè l'attribuzione dei valori ai singoli pixel. **ESEMPIO** In questo secondo esempio digitalizziamo in bianco e nero il triangolo rappresentato nella prima delle figure a lato. Sovrapponiamo alla nostra immagine una griglia composta da righe orizzontali e verticali a distanza costante in modo da ottenere una griglia (matrice) di pixel, come nella figura a destra. Quantizzare un'immagine consiste nel codificare i pixel in cui viene scomposta l'immagine: essa prende il nome di immagine bitmap o raster. Codifichiamo ogni singolo pixel con un bit, in modo da assegnare: - 0 (bianco) se nel pixel il colore predominante è il bianco; - 1 (nero) se nel pixel il colore predominante è diverso dal bianco. Stabiliamo ora un ordinamento tra i pixel in modo da salvare l'immagine come una sequenza di bit per poi poterla ripristinare identica: numeriamo i pixel a partire da quello in basso a sinistra fino ad arrivare a quello in alto a destra, come riportato in figura. Otteniamo la sequenza di bit seguente: 0000000 0111100 0110000 0100000. Questa è la quantizzazione dell'immagine di partenza. Effettuiamo ora il procedimento inverso, cioè dall'immagine memorizzata in bit ricostruiamo l'immagine nella griglia, ricordando che a ogni 1 corrisponde un pixel nero mentre a ogni O un pixel bianco. Otteniamo il disegno rappresentato nella figura a lato, che è "abbastanza" lontano dall'immagine di partenza. Per avvicinarci alla realtà del disegno è necessario tornare indietro e ridurre le dimensioni della griglia, cioè aumentare il numero di pixel; già dimezzando il lato del quadrato otteniamo come digitalizzazione il disegno raffigurato a lato: - nella prima codifica abbiamo rappresentato l'immagine con 7 x 4 = 28 bit; - nella seconda codifica abbiamo una griglia composta da 14 × 8 = 112 bit. ## Immagini raster a livelli di grigio Assegnando un bit a ogni pixel è possibile codificare solo immagini senza tonalità, in quanto il pixel o è bianco o è nero. Per poter rappresentare anche i grigi e quindi l'insieme dei "livelli di chiaroscuro" è necessario utilizzare più bit per ogni pixel: - con 4 bit possiamo codificare 16 toni di grigio (livelli di grigio); - con 8 bit possiamo codificare 256 toni di grigio (livelli di grigio). **ESEMPIO** In questo esempio digitalizziamo un disegno geometrico quantizzandolo con tre valori al posto dei due utilizzati in precedenza, in quanto abbiamo tre tonalità diverse di grigio. Per la codifica in binario assoceremo a ogni pixel due bit con i quali possiamo rappresentare 4 valori diversi, uno dei quali non verrà utilizzato. Per le immagini in scala di grigio, è sufficiente utilizzare 8 bit per pixel dato che il sistema visivo umano difficilmente è in grado di distinguere un numero maggiore di livelli di grigio: nelle applicazioni biomediche e/o professionali si utilizzano generalmente un numero maggiore di bit per pixel, da 10 a 12 bit per pixel. **ESEMPIO** Calcoliamo l'occupazione di un'immagine codificata a 256 toni di grigio con qualità 640 x 480 pixel. Poiché per 256 toni di grigio servono 8 bit per pixel, ossia 1 byte per pixel, l'immagine necessita di 307 200 byte (1 x 640 × 480), quindi circa 300 KB di memoria. ## Immagini raster a colori In modo analogo a quanto visto per le immagini in toni di grigio, possiamo codificare le immagini a colori assegnando a ogni pixel un colore o una sua sfumatura. Il colore viene ottenuto da almeno tre colori di base, detti primari, secondo un modello cromatico: RGB (rosso, verde, blu) oppure CMYK (ciano, magenta, giallo, nero). La composizione del colore avviene successivamente mediante una tecnica di sintesi che può essere sottrattiva o additiva, in funzione del tipo di dispositivo utilizzato (stampante, monitor o televisore). - Il metodo RGB utilizza la sintesi additiva per sommare i tre colori primari e offrire tutta la gamma cromatica della foto. È indicato per la visualizzazione a schermo in quanto i colori risultano più brillanti e saturi; inoltre il file in RGB è più piccolo del 25% rispetto allo stesso file in CMYK. - Il metodo CMYK utilizza la sintesi sottrattiva per i suoi colori ed è la migliore soluzione per la stampa delle immagini in alta qualità (è il metodo che viene usato in tipografia stampando più volte lo stesso file, sovrapponendo colore per colore fino a ottenere l'immagine finale). Noi descriveremo il metodo RGB, nel quale si associano 28 = 256 livelli a ciascun colore utilizzando quindi 8 bit per colore, per un totale di 24 bit: - 8 bit (1 byte) per il rosso (valori da 0 a 255); - 8 bit (1 byte) per il verde (valori da 0 a 255); - 8 bit (1 byte) per il blu (valori da 0 a 255). In questo modo è possibile produrre fino a 224 = 16777216 colori sullo schermo. **ESEMPIO** Il bianco si ottiene con le tre componenti al valore massimo (255, 255, 255), mentre quando il valore di tutte le componenti è O si ottiene il nero: possiamo rappresentare nello spazio a tre dimensioni le possibili combinazioni delle tre componenti, come riportato nella figura a lato. Scomponiamo ora una fotografia in formato RGB nelle sue tre componenti, i singoli colori primari. **ESEMPIO** Prendiamo una fotografia e utilizziamo, per esempio, dei programmi come Gimp oppure Photoshop, che permettono la scomposizione in livelli, cioè consentono di separare le componenti in nuove immagini in scala di grigi in cui ogni livello rappresenta uno dei "canali". Il risultato che otteniamo è sicuramente inatteso, come si può vedere nella figura sopra riportata: ogni immagine è composta dal valore della singola componente interpretato come tonalità di grigio. ## Palette di colori Un'immagine RGB può occupare molto spazio, anche se non tutti i 16.7 milioni di colori sono usati contemporaneamente: si può usare un sottoinsieme dei colori rappresentandoli su una tavolozza di colori (tecnicamente detta palette), assegnare a essi un numero e utilizzare i numeri ottenuti per codificare i bit dell'immagine in riferimento al colore della tavolozza. Con palette si intende la gamma di colori in dotazione, può essere quella della scheda grafica di un computer oppure può riferirsi ai colori disponibili per realizzare un disegno o una fotografia. **ESEMPIO** Supponiamo di avere un'immagine 3 x 3, visualizzata in RGB. Poiché il sistema RGB si basa su 3 colori, ciascuno dei quali richiede 8 bit per essere descritto, la dimensione complessiva dell'immagine è (3 x 3) x (3 x 8) = 216 bit. Vediamo come risparmiare spazio in memoria utilizzando una palette. Supponiamo che nell'immagine siano presenti solo 4 colori. Li riportiamo nella palette a lato e a ciascuno di essi assegniamo una codifica binaria, usando solo 2 bit. I colori, oltre che con le terne RGB, possono venire identificati (come nella palette qui mostrata) con i codici colore esadecimali (HEX). Il colore 8112D4 corrisponde a (129,18,212); il colore 44D6D5 corrisponde a (68,214,213), il colore 3E5218 corrisponde a (62,82,24) e il colore 1BBCAA corrisponde a (27,188,170). Li codifichiamo rispettivamente con 00, 01, 10, 11. Nel caso del seguente disegno, composto appunto da un'immagine 3 x 3 pixel a 4 colori, la rappresentazione risultante sarebbe: Con l'utilizzo della palette l'immagine occupa solamente 18 bit. Un'immagine i cui colori sono codificati con questa tecnica viene detta immagine a colori indicizzati. Il caso tipico prevede di utilizzare una palette di 256 colori, e quindi di avere una sua indicizzazione con un insieme di 8 bit (infatti 28 =256); in questo modo si riduce l'occupazione di memoria a 1/3, dato che invece di utilizzare 3 byte (uno per ciascun colore), se ne utilizza solo uno per tutti. Dobbiamo tuttavia tenere presente che uno spazio aggiuntivo è necessario per memorizzare la palette: nel caso di 256 colori di palette abbiamo un ulteriore 256 × 3 = 768 byte di spazio occupato, che comunque risulta essere trascurabile, soprattutto con immagini di grosse dimensioni. ## Trasparenza La trasparenza è una caratteristica che indica se è possibile vedere attraverso l'immagine gli elementi grafici posti dietro di essa. Esistono due modalità di trasparenza: - la trasparenza semplice, che si applica a un'immagine indicizzata, definendo nella palette dei colori uno di essi come trasparente; - la trasparenza per strato alpha (o canale alpha, in inglese alpha channel), metodo per cui si aggiunge per ogni pixel dell'immagine un byte che definisca il livello di trasparenza (da 0 a 255), cioè si aggiunge uno "strato trasparente" sopra l'immagine che viene chiamato alpha blending. ## Codifica bitmap e profondità di colore La rappresentazione di un'immagine mediante la codifica dei singoli pixel viene chiamata codifica bitmap e il numero di bit utilizzati per codificare il colore di un singolo pixel prende il nome di profondità di codifica (anche indicata come profondità di colore). Esistono più standard di codifica della profondità: - bitmap bianco e nero; è quella che abbiamo utilizzato per le immagini in bianco/nero dove si utilizza un bit per ogni casella; - bitmap 16 colori o 16 livelli di grigio; utilizzando 4 bit in ogni casella possiamo definire 16 = 24 colori differenti oppure 16 tonalità/sfumature di grigio; - bitmap 256 colori o 256 livelli di grigio; utilizzando un byte per pixel possiamo definire 256 = 28 intensità di colore diverse oppure 256 sfumature di grigio; - palette dei colori (colormap) definisce una palette, o tavolozza dei colori, che contenga l'insieme dei colori che possono esserci nell'immagine, a ognuno dei quali è associato un indice e il numero di bit riservato alla codifica di ogni indice della paletta che determina il numero di colori che possono essere utilizzati; - "Colori veri" (True color) o "colori reali" definisce ogni componente in RGB utilizzando quindi un byte per ciascuna, con un totale di 24 bit (16 milioni di colori). A volte si aggiunge come quarta componente la trasparenza e, quindi, ogni pixel sarà allora codificato a 32 bit. **ESEMPIO** Riportiamo un'immagine rappresentata in quattro diverse profondità di colore. ## Definizione e dimensione delle immagini Il pixel viene preso come unità di misura di riferimento delle immagini digitalizzate e determina il parametro di qualità chiamato definizione. Maggiore è la "rete di cellette", cioè più piccola è la dimensione della celletta, maggiore è il numero di pixel che viene utilizzato per definire l'immagine; chiamiamo definizione dell'immagine la dimensione della griglia usata per il campionamento dell'immagine che è in diretta relazione con la qualità con cui si rappresenta l'immagine (valori tipici sono 640 x 480, 1024 x 768, 3840 x 2160 nel 4k ecc.). Viene detto definizione il numero di punti che costituiscono l'immagine, cioè la sua "dimensione informatica", indicata come prodotto tra il numero di colonne dell'immagine e il numero di linee. **ESEMPIO** Nella figura che segue vediamo la fotografia di un'aquila in cui sono utilizzati 256 toni di grigio, con quattro diverse definizioni. ## Peso di un'immagine Con il termine peso si intende l'occupazione di memoria di un'immagine. Per calcolarlo è necessario contare il numero di pixel che l'immagine contiene e, quindi, conoscere la sua dimensione, nonché la profondità di colore. **ESEMPIO** Eseguiamo il calcolo per un'immagine 640 × 480 in True color: - calcoliamo il numero di pixel: 640 x 480 = 307200; - calcoliamo il peso di ogni pixel: 1 byte per ogni componente RGB = 3 byte; - determiniamo il peso dell'immagine: 307 200 x 3 = 921600 byte. Per conoscere la dimensione in KB dividiamo per 1000 ottenendo 921.6 KB; se dividiamo per 1024 otteniamo 900 Kів. Nella seguente tabella riportiamo i valori di alcuni tipici formati utilizzati per le immagini. | DEFINIZIONE DELL'IMMAGINE | BIANCO E NERO (1 BIT) | 256 COLORI (8 BIT) | 65000 COLORI (16 BIT) | TRUE COLOR (24 BIT) | |---|---|---|---|---| | Definizione pixel | KB | KiB | KB | KiB | KB | KiB | KB | KiB | | 320 x 200 | 8.0 | 7.8 | 64.0 | 62.5 | 128.0 | 125.0 | 192.0 | 187.5 | | 640 x 480 | 38.4 | 37.5 | 307.2 | 300.0 | 614.4 | 600.0 | 921.6 | 900.0 | | 800 × 600 | 60.0 | 58.6 | 480.0 | 468.7 | 960.0 | 937.5 | 1440.0 | 1406.3 | | 1024 x 768 | 98.3 | 96.0 | 786.4 | 768.0 | 1572.9 | 1536.0 | 2359.3 | 2304.0 | | 3840 x 2160 | 1036.0 | 1012.5 | 8294.4 | 8100.0 | 16588.8 | 16200.0 | 24883.2 | 24300.0 | Dalla tabella possiamo osservare che per visualizzare un'immagine di 1024 x 768 in True color è necessario avere una scheda video di minimo 4 MB. ## Risoluzione grafica La qualità di un'immagine è legata al numero di pixel che vengono usati per la sua rappresentazione, al numero di colori e alla sua dimensione, che generalmente sono indicate in POLLICI (INCH). Definiamo risoluzione grafica la qualità con la quale un'immagine è rappresentata. Come unità di misura della risoluzione viene utilizzata la densità di pixel, cioè il numero di punti contenuti su una linea lunga un pollice, e si utilizzano due diversi riferimenti a seconda che si tratti di immagini a video oppure di immagini stampate: - a video si utilizzano i PPI, cioè Pixels Per Inch; - in stampa si utilizzano DPI, cioè Dots Per Inch. Entrambi sono "punti per pollice", ma a video il punto è il pixel, mentre in stampa è il punto impresso sul foglio. Parlando di display, il PPI indica il numero di pixel contenuti presenti sulla diagonale del monitor e la lunghezza della diagonale stessa (facilmente ricavabile dalle dimensioni del monitor), cioè indica la densità di pixel presente sulla diagonale. III primi computer avevano un PPI pari a 72, oggi in un iPhone 13 abbiamo un PPI pari a 458! La risoluzione influenza la grandezza dell'immagine: - a parità di pixel, aumentando la risoluzione diminuiscono le dimensioni; - a parità di dimensione, aumentando la risoluzione, aumentano i pixel. Possiamo quindi affermare che risoluzione e dimensione sono inversamente proporzionali (se dimezzo un'immagine la sua risoluzione raddoppia). **ESEMPIO** Un file digitale di 3000 pixel di lato maggiore, visualizzato a video, avrà una dimensione diversa in base al monitor che stai usando: - se utilizzi un monitor con risoluzione 300 PPI l'immagine avrà una dimensione di 25 centimetri; - se utilizzi un monitor con risoluzione 200 PPI l'immagine avrà una dimensione aumentata del 50% ma, naturalmente, meno definita. Nella tabella che segue riportiamo la relazione tra occupazione di memoria, dimensioni fisiche e risoluzioni di alcune situazioni tipiche. | RISOLUZIONE | DIMENSIONI | OCCUPAZIONE DI MEMORIA (BYTE) | |---|---|---| | 75 PPI | 6x4 pollici (in)/ 15 × 10 centimetri (cm) | 450 × 300 pixel | 256 grigi | colori RGB | | 150 PPI | 6x4 | 900 × 600 | 135000 | 405000 | | 300 PPI | 6x4 | 1800 x 1200 | 540000 | 1620000 | | 600 PPI | 6x4 | 8640000 | 2160000 | 6480000 | | 75 PPI | 15 × 10 | | | 25920000 | | 150 PPI | 15 × 10 | | | 8640000 | | 300 PPI | 15 × 10 | | | | | 600 PPI | 15 × 10 | | | | Non dimentichiamoci, però, che abbiamo un limite: la risoluzione dei nostri occhi. L'occhio umano, in realtà, a una distanza di circa 40 cm da un display non riesce a distinguere bene un'immagine: i nostri occhi, infatti, hanno una definizione che non va oltre i 270 PPI e solo se ci avviciniamo al display, la risoluzione dei nostri occhi arriva al massimo a valori compresi tra i 320 e i 340, mentre se ci allontaniamo a una distanza di 3 metri non arriva a 100 PPI. Per questo motivo in alcuni dispositivi i pixel non sono visibili singolarmente perché la densità è davvero altissima. ## Risoluzione di un'immagine. Dimensione di un'immagine Scegli un'immagine in tonalità di grigio e con un programma di elaborazione grafica (come Photofiltre, Gimp o Photoshop) cambia per tre volte la risoluzione, mantenendo inalterate le dimensioni; quindi, a partire dalla medesima immagine, modifica 6 volte le dimensioni. Riporta in una tabella la risoluzione scelta, le dimensioni dell'immagine e il peso in memoria del file. Prova infine a stampare tutte le immagini e confrontale tra di loro. La risoluzione di un'immagine a video non deve essere confusa con la risoluzione di stampa: questo secondo parametro determina il numero di punti di stampa per unità di lunghezza, espresso in punti per pollice (DPI). La risoluzione di stampa permette di stabilire il rapporto tra il numero di pixel di un'immagine e la dimensione reale della sua rappresentazione su un supporto fisico (stampa). In ambito tipografico, la dimensione minima di riferimento è il punto tipografico, pari a 1/72 di pollice ossia circa 0,353 mm. Un multiplo del punto tipografico è il pica, pari a 12 punti tipografici. Di questa misura si è tenuto conto nell'impostare la risoluzione dei primi monitor WYSYWIG: l'obiettivo era di avere una corrispondenza biunivoca tra pixel e punto tipografico (pt). Un carattere di 12 pt era grande 12 pixel a monitor. **ESEMPIO** Una risoluzione di 300 DPI significa che sono presenti 300 colonne di pixel in un pollice orizzontale e 300 righe di pixel in un pollice verticale: ci sono quindi 90000 pixel per pollice quadrato. A parità di dimensione stampata, maggiore è il numero di punti per pollice, più è alta la risoluzione e più è nitida l'immagine. ## Compressione lossless La compressione lossless si applica a qualunque tipo di informazione rappresentata in binario e si basa sul riconoscimento delle sequenze di bit che si ripetono con maggiori e minori frequenze: le sequenze più frequenti vengono sostituite con codifiche più corte create appositamente, in modo da risparmiare spazio. Questa tecnica è utilizzata nei compressori che producono file in formato .zip o .rar e nella rappresentazione delle immagini in formato GIF (Graphics Interchange Format), Png (Portable Network Graphics) e TIFF (Tagged Image File Format). ### Gli algoritmi di compressione Partiamo da una considerazione fondamentale: - non esiste un algoritmo di compressione che "funzioni" sempre, cioè che riduca la dimensione dell'input in tutti i casi. I principali algoritmi di compressione sono: - RLE (Run-Length-Encoding), che è utilizzato esclusivamente per la compressione di immagini raster e sostituisce ogni sequenza di byte di valore identico con due soli byte, ovvero il numero di byte ripetuti e il relativo valore; - LZ (Abraham Lempel e Jakob Ziv), che è utilizzato per la compressione di qualunque tipo di documento binario e memorizza in una tabella (dizionario) le configurazioni di valori che si ripetono frequentemente nella sequenza originaria, per poi sostituire ogni loro occorrenza con il relativo indirizzo nel dizionario; - Algoritmo di Huffman, che è utilizzato principalmente per il testo e usa una codifica a lunghezza variabile dove alle lettere con frequenza maggiore viene associato un numero inferiore di bit rispetto a quelle con bassa frequenza, ottenendo un file con lunghezza inferiore ai 320 bit. ## Compressione lossy La compressione lossy si applica generalmente a dati multimediali, in quanto sfrutta le caratteristiche della biologia dei sistemi sensoriali umani; in base ai limiti delle capacità percettive dell'uomo è possibile alterare alcune caratteristiche del segnale originario, al fine di ridurre le dimensioni della sua rappresentazione binaria, mantenendo tuttavia una qualità accettabile. **ESEMPIO** La retina dell'occhio umano ha una maggiore insensibilità alle variazioni di luminosità rispetto a quelle cromatiche: questo permette di trascurare differenze sufficientemente piccole di colore tra pixel vicini, riducendo la quantità di sfumature e quindi la dimensione dell'immagine. ### Il formato Jpeg Il formato Jpeg (Joint Photographic Expert Group) sfrutta la tecnica lossy e serve per visualizzare immagini con più di 256 colori, o di considerevoli dimensioni: ha una resa ottima su immagini con molti sfumati (fotografie, incarnati, paesaggi), mentre se l'immagine ha un forte contrasto o passaggi bruschi di colore si possono notare dei difetti. Il processo prevede 4 passi (come descritto nella figura che segue): l'immagine viene dapprima trasportata in un altro spazio colore passando dal modello RGB (o altro) a YUV mediante l'algoritmo DCT (trasformata discreta del coseno), che codifica Crominanza (colore, 2 valori) + Luminanza (luminosità, 1 valore): l'occhio umano è infatti più sensibile alla luminosità che al particolare colore, quindi nei passi successivi si può "perdere" in crominanza senza danni e si comprime il risultato mediante una compressione lossless (Huffman). In questo formato è possibile definire il rapporto di compressione in modo da determinare la dimensione (e la qualità) delle singole immagini. Questa tecnica di compressione viene utilizzata anche per codificare immagini in movimento nei formati MPEG (Moving Picture Experts Group) e WMV (Windows Media Video). ## Immagini vettoriali Una particolare rappresentazione delle immagini è quella vettoriale (vector), utilizzata particolarmente per immagini di tipo geometrico, o per immagini riconducibili a insiemi di forme (punti, linee, rettangoli, cerchi). Questa rappresentazione è caratterizzata dal fatto che non viene memorizzata l'immagine ma il procedimento per costruirla, conseguendo il doppio vantaggio di diminuire enormemente l'occupazione di memoria e di ottenere immagini facilmente ridimensionabili. Per esempio, l'immagine seguente viene costruita a partire da punti e dal loro congiungimento mediante funzioni matematiche: non vengono memorizzati cioè tutti i pixel, ma solo quelli evidenziati. In questo modo le immagini risultano essere svincolate dalla risoluzione e possono essere utilizzate con qualsiasi dimensione, senza alcuna perdita di qualità o aumento di peso. Ogni oggetto è quindi codificato attraverso un identificatore (per esempio polyline, circle ecc.) e alcuni parametri, quali le coordinate del centro e la lunghezza del raggio (per la circonferenza) o le coordinate dei vertici (per il poligono), come riportato nella figura di destra. Ricordiamo i seguenti formati vettoriali: - DXF (Drawing Exchange Format), strumenti di disegno tecnico; - DWG, utilizzato da AutoCAD; - CDR, utilizzato da Corel Draw; - Al (Adobe Illustrator); - WMF (Windows MetaFile); - SVG (Scalable Vector Graphics), nativo in quasi tutti i browser moderni. Il processo di visualizzazione di un'immagine vettoriale (cioè la trasformazione da una codifica matematica a una codifica raster) è detto rasterizzazione o rendering. Le due immagini che seguono mostrano la differenza tra un'immagine raster e una vettoriale. Questa rappresentazione non è però utilizzabile per immagini pittoriche, che non possono essere scomposte in elementi primitivi. Riassumendo, possiamo individuare le principali differenze tra la modalità raster e quella vector nel seguente modo. - Dimensione: le immagini raster generalmente occupano più memoria di quelle vector. - Scalabilità: le vettoriali possono essere scalate senza perdita di qualità, le immagini raster no. - Caratteristiche visuali: vector, forme semplici con aree a colori piatti; raster, forme complesse con aree a colori sfumati. - Conversione: rasterizzare le immagini vector è un processo immediato, non il contrario! ## Schermi SD e HD La principale differenza tra gli schermi indicati con le sigle SD e HD è il rapporto tra le dimensioni, in quanto SD, acronimo di Standard Definition, ha rapporto dimensionale (4:3) mentre l'HD, acronimo di High Definition ha rapporto dimensionale widescreen (16:9), molto poco utilizzato nella risoluzione SD. Quando ci si avvicina al mercato degli schermi, sia televisori sia monitor per PC, le caratteristiche di definizione vengono indicate con una sigla composta da un numero e un carattere, per esempio 720p, oppure 480i: il numero indica sempre la definizione verticale, cioè il numero di pixel verticali. Nella seguente tabella riportiamo alcuni formati caratteristici: | sigla | formato | numero di pixel | nome commerciale | |---|---|---|---| | 360p | 4:3 | 480 × 360 | | | 480p | 3:2 | 720 x 480 | detto anche SD | | 720p | 16:9 | 1280 x 720 | HD ready | | 1080p | 16:9 | 1920 x 1080 | Full HD | | 2160p | 19:9 | 3840 x 2160 | Ultra-HD (4K) | Vediamo graficamente la comparazione di questi schemi nei quali vengono rapportate le dimensioni fisiche che dovrebbero avere gli schermi in base al numero di pixel, ipotizzando la medesima densità di pixel, cioè che ogni centimetro dei display abbia la stessa quantità di pixel, ovvero lo stesso PPI (pixel per pollice). La definizione standard SD per gli schermi televisivi ha avuto termine alla fine dell'anno 2021, quando si è passati alla alta definizione, cioè alla definizione 720p (HD ready): questa definizione è anche quella standard per i telefonini economici. Naturalmente se si mantiene costante la definizione ma si aumentano le dimensioni dello schermo si produce una diminuzione del PPI causando uno "sgranamento" delle immagini. Nelle schede tecniche commerciali dei monitor, spesso la definizione è denominata "risoluzione", mentre il valore PPI è indicato come "densità" di pixel. ## Video interlacciati e progressivi Esistono infatti due tipi di scansione di immagini per la realizzazione dei filmati: - scansione interlacciata (i); - scansione progressiva (p). Il carattere "p" nei formati 480p, 720p e 1080p è l'iniziale di scansione progressiva mentre il carattere "i" di 480i, 720i e 1080i indica che si tratta di formati interlacciati. La scansione di immagini video interlacciata prevede una suddivisione delle linee di scansione in due parti, chiamate campi (o semiquadri), suddivisi a loro volta in linee pari e dispari; questa tecnica permette di ottenere una qualità superiore senza la necessità di aumentare la larghezza di banda. La scansione interlacciata era utilizzata principalmente nelle trasmissioni televisive analogiche. Per esempio, nel primo dei tre fotogrammi seguenti si vedono solo le linee 1, 3, 5 e così via, nel secondo fotogramma le linee 2, 4, 6 ecc.: si traduce in un alleggerimento della trasmissione video ma crea l'effetto "linea" che può essere osservato nei vecchi filmati in VHS durante scene in rapido movimento. La scansione di immagini video progressiva, invece, prevede che le linee di cui è formato il fotogramma vengano visualizzate in sequenza, al contrario di quanto avviene con la scansione interlacciata. L'immagine seguente mostra la differenza tra la visione di un singolo fotogramma di una scansione interlacciata (a sinistra) e una progressiva (a destra). Nei video in movimento le due scansioni sono sostanzialmente simili, mentre invece in caso di visione rallentata la scansione progressiva risulta nettamente più nitida. ## Compressione delle immagini Per ovviare all'utilizzo di una grande quantità di memoria da parte delle immagini, si sono sviluppati formati compressi in grado di ridurre notevolmente il numero di kilobyte utilizzati dalle immagini. Ci sono due metodi fondamentali di compressione: - lossless, senza perdita di informazione; - lossy, con perdita di informazione, il più utilizzato. ## Compressione lossless La compressione lossless si applica a qualunque tipo di informazione rappresentata in binario e si basa sul riconoscimento delle sequenze di bit che si ripetono con maggiori e minori frequenze: le sequenze più frequenti vengono sostituite con codifiche più corte create appositamente, in modo da risparmiare spazio. Questa tecnica è utilizzata nei compressori che producono file in formato .zip o .rar e nella rappresentazione delle immagini in formato GIF (Graphics Interchange Format), Png (Portable Network Graphics) e TIFF (Tagged Image File Format). ### Gli algoritmi di compressione Partiamo da una considerazione fondamentale: - non esiste un algoritmo di compressione che "funzioni" sempre, cioè che riduca la dimensione dell'input in tutti i casi. I principali algoritmi di compressione sono: - RLE (Run-Length-Encoding), che è utilizzato esclusivamente per la compressione di immagini raster e sostituisce ogni sequenza di byte di valore identico con due soli byte, ovvero il numero di byte ripetuti e il relativo valore; - LZ (Abraham Lempel e Jakob Ziv), che è utilizzato per la compressione di qualunque tipo di documento binario e memorizza in una tabella (dizionario) le configurazioni di valori che si ripetono frequentemente nella sequenza originaria, per poi sostituire ogni loro occorrenza con il relativo indirizzo nel dizionario; - Algoritmo di Huffman, che è utilizzato principalmente per il testo e usa una codifica a lunghezza variabile dove alle lettere con frequenza maggiore viene associato un numero inferiore di bit rispetto a quelle con bassa frequenza, ottenendo un file con lunghezza inferiore ai 320 bit. ## Compressione lossy La compressione lossy si applica generalmente a dati multimediali, in quanto sfrutta le caratteristiche della biologia dei sistemi sensoriali umani; in base ai limiti delle capacità percettive dell'uomo è possibile alterare alcune caratteristiche del segnale

Use Quizgecko on...
Browser
Browser