title: Correzione di gamma
text: # Correzione di gamma
  
  Correzione di gamma, non linearità del gamma, codifica gamma o spesso semplicemente gamma, è una trasformazione non lineare usata per codificare e decodificare la luminanza o i valori del tristimolo in un sistema video o fotografico. La correzione di gamma, è, nel caso più semplice, definita dalla seguente legge di potenza:
  
      $V_{out}=V_{in}^{\gamma }$
  
  dove i valori di ingresso e uscita sono valori reali non negativi, compresi tra un minimo e un massimo determinato; nelle codifiche digitali tali estremi sono generalmente 0 e 1. Un valore gamma $\gamma <1$ è chiamato di solito un gamma codificante, e il procedimento di codifica con la suddetta legge di potenza ad esponente minore di 1 è chiamato compressione gamma; viceversa, un valore gamma $\gamma >1$ è chiamato gamma decodificante e l'applicazione di tale non linearità mediante semplice legge di potenza espansiva, cioè con esponente maggiore di 1, è chiamata espansione gamma.
  
  ## Descrizione
  
  La correzione di gamma è usata per codificare la luminanza lineare o i valori RGB in un segnale video analogico o nei valori discreti del video digitale; l'espansione gamma è il processo inverso ed ha la sua motivazione nella non linearità della relazione tra corrente e tensione dei fasci elettronici dei CRT, che agiscono come un decodificatore naturale. La codifica gamma aiuta a mantenere i dati (sia analogici che digitali) in un dominio il più possibile uniforme dal punto di vista percettivo.
  
  In altri termini, un tubo catodico converte un segnale video in luce in maniera non lineare, a causa della suddetta relazione non lineare tra corrente elettronica e tensione accelerante. La correzione di gamma è tesa a controbilanciare tale distorsione introdotta dal CRT.
  
  L'immagine che segue mostra il comportamento di un tipico schermo CRT quando i segnali sono lineari ($\gamma$ = 1.0) (a sinistra) e (a destra) quando sono corretti in gamma (il gamma standard è $\gamma$ = 2.2 sia in NTSC che in PAL). Nel primo caso, l'immagine risultante sul CRT è visibilmente più scura dell'originale, mentre nel secondo caso è molto più fedele. Le telecamere e i sistemi di ripresa producono segnali corretti in gamma, così come lo sono tutte le trasmissioni televisive. In questo modo, vista la standardizzazione dei dispositivi di riproduzione, il sistema nel suo complesso avrà un comportamento lineare, come mostrato in basso; se le telecamere fossero lineari, il sistema non avrebbe una risposta lineare.
  
  ### Generalizzazione del gamma
  
  Il valore di gamma è usato in generale per quantificare il contrasto, per esempio della pellicola fotografica; rappresenta la derivata della relazione tra ingresso ed uscita in uno spazio logaritmico, cioè:
  
      $\gamma ={\frac {d\log(V_{out})}{d\log(V_{in})}}$
  
  In altri termini il fattore gamma indica l'inclinazione della curva rappresentativa della relazione (in termini logaritmici) tra segnale e risposta.
  
  Essa è consistente con la legge di potenza sopra espressa, ma applicabile anche a non linearità più generali. Nel caso della pellicola fotografica, la non linearità è chiamata curva sensitometrica o di Hurter-Driffield, dove i valori di gamma inferiori a 1 sono tipici della pellicola negativa e i valori superiori a 1 sono caratteristici delle pellicole invertibili.
  
  ### Gamma standard per Windows, Mac, sRGB e applicazioni televisive
  
  Nella maggior parte dei sistemi informatici, le immagini sono codificate con un gamma di circa 0,45 e decodificate con un gamma di 2,2. Nei sistemi Macintosh, i valori tipici sono 0,55 e 1,8 (fino al rilascio di OS X Snow Leopard, in cui il valore gamma è stato portato a 2.2). In ogni caso, i dati binari nei file (per esempio nel formato JPEG) sono esplicitamente codificati, ovvero i dati memorizzati sono già corretti in gamma e non sono valori lineari. Questo avviene anche per i file di video, come quelli in formato MPEG. Il sistema, tuttavia, può gestire anche valori lineari, nel caso in cui ci sia la necessità di una corrispondenza di gamma precisa a seconda del dispositivo di visualizzazione.
  
  Lo spazio colore sRGB standard utilizzato con la maggior parte delle telecamere, computer e stampanti non usa una trasformazione nonlineare mediante la semplice legge di potenza sopra scritta, ma ha un valore di decodifica gamma vicino a 2,2 in quasi tutta l'escursione, come mostrato sulla destra. Se il valore codificato è inferiore a 0,04045 o a un'intensità lineare di 0,00313, la curva è lineare (codificata con valori proporzionali all'intensità), cioè con un gamma di 1. La curva tratteggiata sotto la curva rossa è la curva standard del gamma uguale a 2,2, riportata per confronto.
  
  L'uscita verso monitor e televisore a tubo catodico non necessita di nessuna correzione di gamma, dal momento che i segnali video sono trasmessi o registrati in un formato che incorpora la correzione in maniera abbastanza fedele all'espansione di gamma dei CRT. Per i segnali televisivi, i valori reali del gamma sono definiti dai diversi standard (NTSC, PAL o SÉCAM), e si tratta sempre di valori fissi e noti.
  
  ### Legge di potenza per monitor video
  
  La relazione con legge di potenza tra il segnale di luminanza codificata in un sistema televisivo e la reale luminosità risultante è nota come gamma caratteristico.
  
  Con questa relazione non lineare, intervalli equidistanti nella luminanza codificata corrispondono approssimativamente intervalli uguali della luminosità percepita. Una migliore approssimazione della percezione si avrebbe con un valore di gamma vicino a 0,33, secondo la legge di potenza di Stevens. L'immagine che segue mostra la differenza tra una scala con un ingresso lineare, cioè una scala di valori di luminanza codificata linearmente, e una scala con un'uscita lineare, cioè un'intensità linearmente crescente (corretta in gamma).
  
  | Codifica lineare | $V_S$ = | 0.0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1.0 |
  | - | - | - | - | - | - | - | - | - | - | - | - | - |
  | Intensità lineare | I = | 0.0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1.0 |
  
  Sulla maggior parte dei display, quello con gamma di circa 2,2, è possibile osservare che la scala a intensità lineare hanno un notevole divario tra la luminosità percepita tra i valori di intensità di 0,0 e 0,1, mentre gli intervalli al limite superiore della scala sono distinguibili a fatica. La scala codificata linearmente, che ha un'intensità non lineare, mostra una progressione della luminosità più regolare.
  
  L'intensità della luce I è relativa alla tensione della sorgente $V_S$ secondo la regola:
  
      $I\propto V_{\rm {S}}^{\gamma }$
  
  dove $\gamma$ è la lettera greca gamma. Per il CRT di un computer CRT, $\gamma$ corrisponde a circa 2,2. Per coincidenza, questo porta alla scala mostrata sopra, omogenea dal punto di vista percettivo.
  
  Per semplicità, si consideri l'esempio di un tubo catodico monocromatico. In questo caso, un segnale video di 0,5 (un grigio medio) risulta in una luminosità di circa 0,22 (un grigio piuttosto scuro). Il nero e il bianco puri (0,0 e 1,0) sono le sole tonalità non influenzate dal gamma.
  
  Per compensare questo effetto, la funzione di trasferimento inversa (correzione di gamma) è applicata al segnale video in modo che la risposta sia lineare lungo tutta l'escursione del segnale. In altre parole, il segnale trasmesso al CRT è deliberatamente distorto, in modo che, dopo essere stato distorto in senso inverso dal display, venga percepito correttamente. L'inverso della precedente funzione è:
  
      $V_{\rm {C}}\propto V_{\rm {S}}^{(1/\gamma )}$
  
  dove $V_C$ è la tensione elettrica corretta da applicare alle piastre del cannone elettronico del CRT e $V_S$ è la tensione elettrica effettivamente in ingresso al sensore che, in questo esempio, converte la luce in segnale. In un CRT, 1/$\gamma$ corrisponde a 1/2,2 o 0,45.
  
  Un tubo catodico a colori riceve tre segnali video, uno per ogni primario RGB. In generale, ogni colore ha il proprio gamma, $\gamma$$_R,$ $\gamma$$_G$ o $\gamma$$_B.$ Nei display più semplici, un singolo valore di $\gamma$ è usato per tutti e tre i colori.
  
  Altri dispositivi di visualizzazione possono avere diversi valori di gamma: per esempio, il display di un Game Boy Advance ha un gamma compreso fra 3 e 4 a seconda delle condizioni di illuminazione. Negli LCD usati dai computer portatili, la relazione tra la tensione del segnale $V_S$ e l'intensità I presenta una non linearità molto accentuata e non può essere descritta con un valore di gamma costante. Questi display applicano una correzione al segnale per ottenere un gamma standard approssimativo $\gamma$=2,5.
  
  La legge di potenza inversa, ha un'inclinazione infinita in prossimità dello zero, cioè la sua derivata prima diverge nell'origine. Questo comporta problemi nella conversione da e verso uno spazio colore con correzione di gamma. Per questa ragione la maggior parte degli spazi colore definiti, come lo sRGB, definisce un segmento retto vicino allo zero e aggiunge un incremento x+K (con K costante) alla potenza così che la curva abbia un incremento continuo. La parte dritta non corrisponde al comportamento del tubo catodico, ma rende il resto della curva più fedele all'effetto della luce ambiente. In queste espressioni l'esponente non è il gamma: la funzione sRGB, per esempio, usa una potenza di 2,4, ma sembra comportarsi come una legge di potenza con un esponente di 2,2 senza una parte lineare.
  
  ### Metodi per eseguire la correzione di gamma sui display per computer
  
  Per ottenere una correzione di gamma tale da consentire una resa corretta dell'output su un display con un gamma tipico di 2,2 o 1,8 è possibile manipolare fino a quattro elementi:
  
  * L'intensità dei valori dei pixel in un dato file, ovvero la registrazione dei valori corrispondenti a ciascun pixel in modo che rappresento i valori già corretti in gamma piuttosto che valori lineari. Questo sistema viene usato in maniera sistematica per i file video in formato digitale, come i filmati in DVD, in modo da evitare la decodifica del gamma durante la riproduzione. Allo stesso modo, i valori dei pixel nei formati di immagine standard sono già corretti, sia per file in sRGB, che approssimano il comportamento dei monitor tradizionali, sia per quelli che includono il gamma secondo un profilo colore ICC. Se il gamma di codifica non corrisponde a quello del sistema di visualizzazione, è possibile introdurre una correzione ulteriore, sia durante la visualizzazione che direttamente sui dati nel file.
  * Il software di rendering scrive valori dei pixel già corretti in gamma nella memoria (in modalità highcolor o truecolor) oppure nel registro hardware CLUT (in modalità indicizzata) della scheda video. I valori di tensione proporzionali al display sono poi generati dal DAC. Per esempio, con 8 bit per canale, colore RGB a 24 bit, un valore di 128 scritto nella memoria video (valore a metà della scala 0-255) corrisponderà a una tensione proporzionale di ≈0,5 al display, che verrà visualizzato più scuro per via del comportamento del monitor: per ottenere la stessa intensità, il software genera un valore corretto in gamma di 187 al posto di 128.
  * Le moderne schede video hanno delle tabelle di indicizzazione dedicate e calibrate', che sono caricabili con la tabella appropriata per modificare i segnali codificati prima del DAC verso il display. Impostare queste tabelle e regolarle correttamente è un procedimento chiamato calibrazione dell'hardware'.
  * Alcuni monitor recenti permettono all'utente di modificare il valore del gamma (come se fosse una normale regolazione di luminosità o contrasto), codificando il segnale in ingresso prima che venga visualizzato sullo schermo. Si tratta anche in questo caso di una tecnica di calibrazione dell'hardware, ma in questo caso è eseguita per via elettronica sui segnali elettrici in ingresso piuttosto che sui valori digitali dei pixels come nel caso precedente.
  
  In un sistema correttamente calibrato, solo uno di questi elementi, il primo della catena, dovrebbe effettuare la correzione di gamma, per evitare una serie di successive correzioni a cascata. Gli stadi seguenti potrebbero dover correggere il gamma per scopi differenti, in modo che il dispositivo di uscita visualizzi i segnali con la corretta intensità lineare. Tutti i sistemi di codifica e correzione possono essere sovrapposti, con differenti livelli di intervento, con l'avvertenza che se effettuati in maniera scorretta il risultato finale potrebbe essere notevolmente distorto.
  
  Ipotizzando una catena macchina fotografica → file JPEG → display, la correzione di gamma coinvolge diversi stadi:
  
  * La camera codifica l'immagine fotografata in formato JPEG utilizzando un valore standard di gamma di 1/2,2.
  * Il display del computer potrebbe utilizzare un sistema di gestione digitale del colore per convertire i dati in un differente spazio colore (per esempio per un computer Macintosh con gamma tipico di 1,8) prima di trasferire i valori dei pixel nella memoria video.
  * Il monitor, a sua volta, potrebbe effettuare una propria correzione per il determinato tipo di tubo catodico utilizzato.
  
  Coordinare tutti questi componenti tramite interfacce e valori di riferimento standard rende possibile un'appropriata configurazione del sistema.
  
  ### Alcuni semplici test
  
  Per verificare se il monitor del proprio computer è correttamente configurato ed in grado di visualizzare i dettagli delle ombre delle immagini sRGB, si dovrebbe poter percepire appena o per nulla la metà sinistra del cerchio all'interno del quadrato nero, ma la metà destra dovrebbe essere ben visibile. Altrimenti, è possibile regolare i valori di luminosità e contrasto del monitor in grado di alterare la percezione del gamma sul monitor stesso.
  
  Questa procedura, però, non è adatta per la calibrazione del colore o per tarare la corrispondenza a monitor della stampa. È comunque utile per una regolazione approssimativa del monitor, sia per la visualizzazione di immagini sRGB, sia qualora questo spazio colore sia quello adottato come default, come succede in molti sistemi quando le immagini non abbiano profili di colore associati o incorporati.
  
  Su alcuni sistemi operativi con interfaccia grafica X Window System è possibile modificare i settaggi relativi alla correzione di gamma usando il comando xgamma -gamma 2.1 per impostare il valore di gamma a 2,1. Il comando usato senza parametri, xgamma ritorna il valore corrente. Sui sistemi Macintosh, c'è un pannello di controllo integrato nel sistema operativo per regolare il gamma e altri parametri dello schermo. Il sistema operativo Microsoft Windows non disponeva invece, fino alla versione XP) di uno strumento di calibrazione nativo. Utility di terze parti, come quelle integrate nei driver delle schede video Nvidia, o lo strumento Adobe gamma loader di Adobe, hanno la stessa funzione.
  
  Nel cartello di test visibile sulla destra, l'intensità lineare di ogni sbarra è la media delle intensità lineari della diffusione retinata circostante. In un sistema sRGB propriamente calibrato, i quadrati pieni e quelli retinati dovrebbero apparire della stessa luminosità.
  
  ### Fotografia
  
  Il termine gamma è stato a lungo usato in fotografia per descrivere la non linearità della risposta della pellicola all'esposizione. In fotografia, ci si riferisce con gamma all'inclinazione della curva sensitometrica, che è una rappresentazione della densità ottica (ovvero il logaritmo dell'opacità) dell'immagine sulla pellicola rispetto al logaritmo dell'esposizione della pellicola alla luce.
  
  Ansel Adams descrive il concetto di gamma, ma lo considera come "termine di interesse e significato solo per il ricercatore e il fabbricante", e continua:
  
     '7 minuti a 20 °C in Ansco 47 per la Isopan' rappresentano 'la normalità' per me. Non ho idea di quale sia il gamma reale, e non me ne preoccupo. Potrei considerare questo livello di sviluppo come risultante in Gamma = 1.0 o come sviluppo N. 9, oppure come operazione H o ogni altro simbolo che potrei scegliere. Ma perché dovrei introdurre un simbolo superfluo e che crea confusione per una semplice e precisa procedura? 'Isopan/Ansco 47/20 °C/7 minuti' è preciso, facilmente espresso e comprensibile come metodo per ottenere il mio negativo 'normale'.
  
  La pellicola fotografica ha una capacità di registrare minuscole differenze nelle ombre molto superiore a quelle riproducibili poi su carta. Allo stesso modo, uno schermo video non è in grado di mostrare tutta la gamma dinamica che una telecamera può acquisire. Per questa ragione, c'è una notevole componente artistica nello scegliere quale parte della scena registrata dovrebbe venire riprodotta. La correzione di gamma, o selezione del contrasto, è parte del repertorio fotografico usato per regolare l'immagine riprodotta.
  
  ### Terminologia
  
  Il termine intensità si riferisce strettamente alla quantità di luce emessa per unità di tempo e per unità di superficie, espressa in lux. Si osservi, tuttavia, che in molti ambiti scientifici questa quantità è chiamata emissione luminosa contrapposta all'intensità luminosa, che è una quantità differente. Queste distinzioni, tuttavia, sono largamente irrilevanti ai fini della correzione di gamma, che è applicabile a ogni tipo di scala lineare di intensità normalizzata.
  
  Luminanza può significare parecchie cose anche all'interno del contesto video:
  
  * la luminanza è la luminosità fotometrica di un oggetto, prendendo in considerazione la sensitività dipendente dalla lunghezza d'onda dell'occhio umano (espressa in cd/m²);
  * la luminanza è anche il segnale video "luma" codificato, cioè simile al voltaggio del segnale $V_S.$
  * la luminanza relativa è il segnale di luminanza usato in schema di codifica colori, relativo a un livello di bianco.
  
  Allo stesso modo, la luminosità è talvolta applicata a diverse misure, inclusi i livelli luminosi, anche se più propriamente andrebbe riferita a un attributo visivo soggettivo.
  
  In mancanza del contesto, un dato valore di gamma può essere sia il valore di codifica che di decodifica. Occorre fare attenzione a non invertire i due processi. In termini colloquiali, il valore di decodifica (es 2,2) viene spesso usato come se fosse quello di codifica (1/2,2 in questo caso), al posto del suo inverso, che è il valore reale da applicare durante la codifica.
  
  