colori senza confini

Gli schermi e la maggior parte dei formati file immagine possono codificare solo intensità RGB che sono confinate all’interno di un certo intervallo. Per esempio, le immagini codificate con 8 bit possono contenere solo valori tra 0 e 255, immagini a 10 bit da 0 a 1023, e così via… Gli standard grafici assumono che il valore massimo di questo intervallo, a prescindere dal suo reale valore, rappresenterà sempre la luminosità massima che il dispositivo di visualizzazione è in grado di renderizzare, di solito tra 100 e 160 Cd/m² (Candela per metro quadrato, nit) a seconda dello standard reale. In generale chiamiamo questo valore il “100% riferito allo schermo”. Il valore minimo dell’intervallo, codificato con 0 a prescindere dal numero di bit utilizzati, diventa quindi lo “0% riferito allo schermo”. Il 100% codifica bianco assoluto, lo 0% codifica il nero assoluto.

Questa è una limitazione per le applicazioni di elaborazione immagini, in quanto significa che ogni pixel che vive al di fuori di questo intervallo verrà tagliato al confine più vicino, con il risultato di avere una perdita di dati non recuperabile (colori e/o trama).

Per molto tempo, anche i software di elaborazione immagini sono stati legati a questa limitazione per motivi tecnici, e alcuni ancora lo sono, ma oggi per scelte di progettazione. Come risultato dovrebbero tagliare al 100% riferito allo schermo le intensità RGB tra le operazioni sull’immagini.

darktable usa all’interno della coda di elaborazione del colore aritmetica a virgola mobile, il che significa che può gestire internamente qualsiasi valore RGB, anche quando questi sono al di fuori dell’intervallo riferito allo schermo, fintantoché è positivo. Solo alla fine della coda di elaborazione, prima che l’immagine venga salvata su un file o spedita allo schermo, i valori RGB vengono tagliati se necessario.

I pixel che possono prendere valori al di fuori dell’intervallo dello schermo si dice che hanno “colori senza confini”. Si può decidere di bloccare (o confinare) questi valori all’interno dell’intervallo consentito in ogni passo dell’elaborazione, o si decide di andare avanti con questi valori, e bloccarli solo all’ultimo passaggio nella coda di elaborazione. Comunque sia, si è riscontrato che l’elaborazione tende a produrre minor artefatti se i colori senza confini non vengono bloccati e gestiti come qualsiasi altro dato dei colori.

At the end of the pipeline, modules like filmic rgb can help you to remap RGB values to the display-referred range while maximizing the data preservation and avoiding hard clipping, which is usually not visually pleasing.

Comunque sia, in ogni momento nella coda di elaborazione, bisogna assicurarsi di non generare valori RGB negativi. Le intensità RGB codificano l’emissione di luce e la luce “negativa” non esiste. Questi moduli che si basano su un modello fisico della luce per elaborare i pixel falliranno se incontrano un’emissione luminosa “non-fisica”. Per sicurezza, i valori RGB negativi vengono comunque tagliati se potrebbero portare l’algoritmo a non funzionare, ma il risultato visivo potrebbe essere deteriorato. Si possono produrre valori negativi quando si abusa nel livello del nero in esposizione o dell’offset nel bilanciamento colore, bisogna fare attenzione quando si usano questi moduli.

translations