Floating Point

Floating point e interi.

La discussione precedente sulla profondità dei bit era pertinente ai numeri interi. C’è da dire che i numeri a 8 bit, che vanno da 0 a 255, sono tutti interi e quindi non troveremo mai 10.4 o 112.25. Comunque i decimali chiamati , floating point, sono un modo molto importante per rappresentare i pixel se i software di compositing li supportano. Il computer converte i numeri a 8 bit in floating point mappando 0-255 a 0-1.

Il valore floating point di zero è settato al valore intero di zero in 8 bit mentre il valore di floating point 1 è assegnato al valore in 8 bit di 255. Per i dati a 16 bit il valore 1.0 è settato a 65.535. Usare i float hanno vataggi e svantaggi. Vediamo quali sono.

floating point

Floating point: pro e contro.

Se proviamo a moltiplicare un valore 8 bit di grigio, ad esempio 128 per il 50% di un altro grigio (128) otteremmo un 128×128 che è sicuramente maggiore rispetto al valore 64 che volevamo raggiungere. Se invece facciamo la stessa operazione in float: 0.5 *0.5 fa 0.25 il quale convertito da float in intero è 64. Un altro svantaggio deriva dal clipping dell’utilizzo del sistema a 8 bit. Il floating point infatti non limita il valore a 255 variazioni, un immagine a 8 bit non potrebbe avere un rosso con valore 300 poichè questo verrebbe tagliato a 255, in compositing se proviamo ad addizionare due immagini con due bianchi, il pixel finale non sarà mai superiore al 255 poichè questo è il limite del canale a 8 bit. Se lavoriamo invece in float un valore di bianco 1 + un altro bianco 1 da 2 e quindi anche se il nostro monitor non riesce a mostrarci piu dell’ 1, il nostro valore è ben conservato e sappiamo bene che quel pixel ha una luminosità del doppio. Quando infatti lavoreremo sull’esposizione ci troveremo con brillanti risultati.

Uno dei problemi del floating point è l’enorme quantità di calcolo che richiede alla cpu/gpu rispetto al calcolo per interi. I computer di oggi sono comunque abbastanza moderni e non dovremmo preoccuparcene troppo.

Nel prossimo articolo vedremo le maschere e la moltiplicazione di immagini.

 

Bit Depth

Bit e Possibili variazioni.

Tutti avremo sicuramente sentito che i computer lavorano soltanto con 0 e 1. Questo è letteralmente vero. Ogni uno e ogni zero è chiamato bit ( binary digit – cifra binaria ) e questi bit sono organizzati in blocchi da 8 bit chiamati bytes. Alcuni esempi di bytes sono 010110101 e 10101101. Se raggruppi 8 bit in un byte, il numero possibile di combinazioni 1 e 0 è esattamente 256 e il loro valore oscilla tra 0 e 255. In altre parole, un byte da 8 bit può esprimere numeri interi che vanno da 0 a 255. Il numero di bit utilizzati prende appunto il nome di bit depth, profondità di bit. Se il numero di bit fosse ad esempio 10, avremmo 1024 variazioni. Se invece lo riducessimo a 4 ne avremmo 16. Più è grande la profondità dei bit, più numeri possiamo rappresentare.

bit

Per portare tutto questo discorso alle immagini digitali, se la luminosità di un pixel è espressa da un byte a 8 bit, allora possono esserci soltanto 256 valori di luminosità che vanno dal nero (0) al bianco (255). Questo è un range abbastanza buono. Per una immagine rgb a 8bit per canale, quindi, avremmo 256 variazioni per ogni canale e quindi moltiplicando 256 x 256 x 256 avremmo 16.7 milioni di colori. Potrebbero essere tanti ma ciò non è vero.

Bit e trilioni.

I programmi moderni di compositing supportano immagini a 16 bit. Quando la profondità dei bit è incrementata da 8 a 16, la variazioni possibili diventano 65.536 e non più solo 256. Potremmo avere quindi una variazione da nero a bianco con 65 mila intermedi e nessun nero o bianco sembrerebbe mai nero o bianco abbastanza. I colori di una immagine rgb a 16 bit infatti sarebbero 65536 ^3 e quindi più di 281 trilioni.

bit

Comunemente però siamo quasi sempre a contatto con immagini a 8 bit ma ci sono casi in cui anche noi ci rendiamo conto quanto siano importanti immagini ad almeno 10 bit. Sarà capitato a tutti di osservare un cielo perfettamente blu e tutti abbiamo notato quanto sia bella la natura nel rendere suggestivo il gradiente che va dall’orizzonte fino alla volta celeste. Beh una immagine a 8 bit non riuscirebbe a rendere questo cosi spettacolare poichè si verificherebbe il banding. I 256 stati di luminosità non riuscirebbero a coprire tutte le variazioni del gradiente reale.

Nel prossimo articolo vedremo cosa sono i floating point.

 

Twitter | Instagram | Bitbucket | Battlelog | LinkedIn | GitHub

Google Profile


My name is Giovanni Di Grezia, but people call me xgiovio.

Here is my homepage: .

I am a VFX Artist and Software Developer

And this is a picture of me.

Giovanni Di Grezia