High dynamic range imaging

Da Wikipedia, l'enciclopedia libera.
Una fotografia HDR della Chiesa di Old Saint Paul's a Wellington
Le sei esposizioni usate per creare l'immagine sopra; i tempi di esposizione (dall'alto a sinistra) sono: 1/40 s, 1/10 s, 1/2 s, 1 s, 6 s, 25 s

L'HDR, sigla di High Dynamic Range (Ampia Gamma Dinamica), è una tecnica utilizzata in grafica computerizzata e in fotografia per ottenere un'immagine in cui l'intervallo tra le aree più chiare e quelle più scure sia più ampio dei metodi usuali.

Tali tecniche si basano principalmente sull'idea di prendere scatti multipli dello stesso soggetto in modo da compensare, con le diverse esposizioni delle diverse immagini, la perdita di dettagli nelle zone sottoesposte o sovraesposte di ciascuna singola immagine. La successiva elaborazione della serie di immagini consente di ottenere un'unica immagine con una corretta esposizione sia delle aree più scure che di quelle più chiare.

Storia[modifica | modifica sorgente]

L'uso dell'HDR in grafica computerizzata venne introdotto da Paul Debevec, probabilmente la prima persona a creare immagini usando la mappatura HDR per visualizzare realisticamente le luci e animare gli oggetti. Gregory Ward invece è il creatore del formato di memorizzazione per le immagini HDR.

Confronto con le tradizionali immagini digitali[modifica | modifica sorgente]

Le informazioni memorizzate in un'immagine HDR di solito corrispondono ai valori fisici della luminosità e della radianza che possono essere osservate nel mondo reale; in questo differiscono dalle informazioni memorizzate nelle normali immagini digitali, che memorizzano solo quali colori vanno riprodotti sullo schermo.

Le immagini HDR richiedono un maggior numero di bit per colore delle tradizionali immagini, per via del fatto che rappresentano valori da 10^{-4} a 10^8 (i valori della luce visibile) o più.

Numeri a 16-bit o a 32-bit floating point sono spesso utilizzati per rappresentare i pixel HDR. In ogni caso, utilizzando l'appropriata funzione di trasferimento, i pixel HDR possono essere rappresentati a 10-12 bit di luminosità e a 8 bit per la componente colore senza alcuna variazione visibile[1] [2].

Algoritmi[modifica | modifica sorgente]

Le immagini HDR vengono realizzate mediante l'uso di formule o algoritmi che ci danno la possibilità di elaborare le immagini allo scopo di ottenere diversi risultati. Ogni algoritmo è gestito da una formula studiata generalmente da un gruppo di persone il cui referente principale è quello che dà il nome alla stessa e che ritroviamo nell'elenco dei vari programmi che consentono questa elaborazione.

La descrizione matematica di tali algoritmi in genere è rintracciabile con una certa facilità, spesso on line; meno semplice è reperire informazioni che descrivano gli algoritmi in maniera facilmente interpretabile, così da capire che genere di risultato sia possibile ottenere. È allora importante testarli più volte, su varie immagini e con varie impostazione dei parametri, e confrontare i risultati.

Mantiuk '06: Questo algoritmo agisce sul contrasto dell'immagine, evidenziando i dettagli in tutte le zone, ma senza evidenziare aloni nelle zone con forti variazioni. Il parametro "Contrast Equalization" consente di ottenere un'immagine più chiara, ma generalmente poco bilanciata nell'illuminazione, per cui è sconsigliato utilizzarlo. Il "Contrast Factor" agisce sul contrasto, facendo diminuire le variazioni all'aumentare di questo valore. Il "Saturation Factor" varia la saturazione del colore dell'immagine. Valori più elevati rafforzano il colore, ma se si esagera l'immagine risultante potrebbe risultare davvero poco realistica. Il "Detail Factor" serve a specificare il livello di dettaglio. Aumentarlo significa evidenziare molti più dettagli, ma anche i disturbi presenti nell'immagine, quindi utilizzatelo con cautela.

Mantiuk '08: Questo algoritmo agisce invece sulla luminosità dell'immagine per rendere la curva il più compatibile possibile con il display utilizzato per la visione. Infatti il primo parametro da scegliere è proprio il tipo di display . Il risultato è più luminoso, ma meno contrastato rispetto alla formula di prima. La "Saturazione Colore" agisce come nel caso precedente. Il "Miglioramento Contrasto" fornisce un contrasto più accentuato all'aumentare del valore di questo parametro. "Livello Luminanza" ci consente di aumentare ulteriormente la luminosità del risultato e può essere utile in caso di immagini estremamente scure.

Fattal: Anche questa formula agisce sulla luminosità dell'immagine. È la formula che più di tutte riesce a visualizzare dettagli sia in ombra sia in piena luce, ma evidenzia anche in modo esagerato le forti variazioni di contrasto (generando aloni) e i disturbi presenti nell'immagine. Per un risultato più pulito i programmatori hanno deciso di variare leggermente la formula, rendendola però più complessa e quindi lunga da elaborare. Da notare che quest'algoritmo dipende fortemente dalle dimensioni del risultato finale, per cui conviene utilizzare fin dall'inizio le dimensioni che si desiderano ed eventualmente fare le prove solo in una piccola zona per test rapidi, come descritto nell'articolo precedente. "Alpha" agisce sulla luminosità globale dell'immagine. "Beta" varia invece il livello di dettaglio del risultato finale. Vi consiglio di utilizzarlo farcendo piccole variazioni tra una prova e l'altra. "Saturazione Colore" agisce come al solito sull'intensità del colore. "Noise Reduction" consente di calare leggermente l'evidenziazione dei disturbi, ma a discapito della nitidezza dell'immagine finale. "Vecchio Fattal" fa utilizzare al programma la formula originale. È leggermente più rapida, ma evidenzia maggiormente i disturbi.

Drago: Simile al Fattal, ma molto meno potente. In compenso è rapidissimo nell'esecuzione. Non evidenzia però i dettagli presenti nell'immagine. Si può utilizzare come sostituto del Fattal nel caso l'immagine da elaborare non contenga dettagli che vogliamo evidenziare, oppure nel caso l'immagine da elaborare contenga molti disturbi e quindi il Fattal non ci consenta di ottenere un risultato accettabile. L'unico parametro da stabilire è "Bias" che andrà a influire sulla luminosità finale del risultato.

Durand: Un algoritmo abbastanza rapido, ma che difficilmente produce risultati interessanti. Di solito le parti luminose perdono dettagli e il risultato finale assomiglia molto ad una foto normale, più che a una HDR elaborata con tone mapping. "Spatial Kernel Sigma" non produce un reale impatto sul risultato finale, se non una leggerissima variazione di luminosità. Anche "Range Kernel Sigma" agisce sulla luminosità del risultato, ma in modo un po' più evidente. "Contrasto" ovviamente varia il contrasto dell'immagine finale.

Reinhard '02: Fornisce un risultato abbastanza buono, sebbene a volte un po' scuro e comunque poco contrastato. "Use Scales" se attivato consente di variare manualmente gli ultimi tre parametri. Il "Parametro Key" agisce sulla luminosità del risultato finale. Il "Phi" consente di ottenere un leggero risalto delle zone più scure dell'immagine. "Range", "Lower Scale" e "Upper Scale" hanno un impatto minimo sul risultato e difficilmente si notano differenze variando questi parametri.

Reinhard '05: Variante della formula precedente, che fornisce risultati più luminosi, ma con poca evidenza di dettagli. "Luminosità" consente di regolare la luminosità del risultato finale. "Chromatic Adaptation" varia la saturazione del colore per consentire risultati più realistici. Anche "Light Adaptation" agisce sulla luminosità finale riducendo anche il contrasto dell'immagine.

Ashikhmin: Fornisce risultati con contrasto molto basso e quindi immagini molto "piatte" e poco interessanti. "Simple" specifica al programma di regolare da solo gli altri parametri. Il risultato dipende dall'immagine che si vuole elaborare. "Numero Equazione" cambia la formula utilizzata e il tipo di contrasto risultante. "Local Contrast Threshold" consente di variare leggermente il contrasto del risultato, ma generalmente non è sufficiente per compensare l'immagine prodotta da questo algoritmo.

Pattanaik: Un altro algoritmo che fornisce risultati con pochi dettagli e un contrasto un po' basso. "Multiplier" varia l'intensità dell'applicazione della formula. Valori alti evidenziano qualche dettaglio in più rispetto ai valori bassi. "Local Tone Mapping" esegui i calcoli basandosi sulla luminosità locale dei punti dell'immagine. Il risultato è più chiaro, ma ancora meno contrastato. "Cone And Rod Based On Luminance" se è selezionato fa scegliere i due valori successivi al programma. Consiglio di tenerlo attivo. "Cone Level" e "Rod Level" dovrebbero rappresentare i parametri relativi al comportamento dei nostri occhi, per coni e bastoncelli. Purtroppo è molto difficile trovare dei valori accettabili e quindi è preferibile farli scegliere direttamente al programma.

Esempi[modifica | modifica sorgente]

Note[modifica | modifica sorgente]

  1. ^ Encoding
  2. ^ Perception-motivated High Dynamic Range Video Encoding

Altri progetti[modifica | modifica sorgente]

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

Fotografia:

HDR Displays:

Esempi: