高動態範圍成像

<image>

高動態範圍成像（High Dynamic Range Imaging，簡稱HDRI或HDR），在電腦圖形學與電影攝影術中，是用來實現比普通數位圖像技術更大曝光動態範圍（即更明亮以及更大的明暗差別）的一組技術。高動態範圍成像的目的就是要正確地表示真實世界中的大範圍亮度（即高動態範圍），因為直接拍攝出來的照片亮度范圍沒有那麼大。

高動態範圍成像最初只用於純粹由電腦生成的圖像。之後又開發出一些從不同曝光範圍照片中生成高動態範圍圖像的方法。隨著數位相機的日漸流行以及桌面軟體變得易於使用，許多業餘攝影師使用高動態範圍成像的方法生成高動態範圍場景的照片，但是，實際上高動態範圍還有許多其它的應用。

超高畫質電視論壇(Ultra HD Forum)也將HDR技術列為UHD電視標準需要支持的技術之一。目前，電視與移動端使用的HDR技術標準主要包括：HDR10, HDR10+, HDR Vivid, Dolby Vision以及HLG(Hybrid Log-Gamma)等。這些技術標準中定義了相比於傳統標準動態範圍圖像（SDR）更大的亮度範圍，更廣的色域，更大的比特深度，不同於伽馬校正的轉換函數以及新的編碼方式。

當用於顯示的時候，高動態範圍圖像經常要進行色調映射，並且要與其它幾種全屏顯示效果 一起使用。

## 歷史

在電腦圖形學中開創高動態範圍成像的先驅是Paul Debevec，據說Debevec是第一個使用高動態範圍成像圖生成電腦圖像以逼真地對電腦圖形物體進行照明與動畫處理。人們普遍認為Gregory Ward是高動態範圍成像文件格式的奠基人。

## 與傳統數字圖像的比較

通常保存在高動態範圍圖像中的資訊對應於真實世界可以觀察到的亮度（luminance）或者radiance值，這與傳統的數字圖像保存的在顯示器或者列印紙上顯示的顏色不同。所以，高動態範圍圖像格式也經常成為「與場景相關」，以區別於傳統的「與設備相關」或者「與輸出相關」的數字圖像。另外，傳統圖像通常經常針對人類視覺系統進行編碼（最大化保存在固定數據位中的可視資訊），這些編碼通常稱作「伽瑪編碼」或者「gamma校正」。保存在高動態範圍圖像中的數據經常是線性的，這就意味著它們表示亮度或者radiance的相對或者絕對值（gamma 1.0）。

高動態範圍圖像每個顏色通道需要比傳統圖像更多的數據位，這是因為它的線性編碼以及需要表示從$10^{-4}$到$10^8$人眼可見亮度範圍甚至是更大範圍的數值。經常使用16位「half precision」或者32位浮點數表示高動態範圍像素。但是，如果使用合適的傳遞函數進行變換，一些應用中的高動態範圍像素可以用10-12位表示亮度，用8位表示色度，並且不會帶來任何可見的量化誤差。

## 圖像來源

高動態範圍圖像最初使用不同的渲染工具生成，其中著名的一個是Radiance。由於所使用單位都是基於如瓦/球面度/米2這樣的實際物理單位，所以這種方法可以實現更加逼真的模型場景表現。這種方法可以模擬真實場景的光照，以及利用這個結果選擇照明（假設幾何形狀、照明以及材料都是真實場景的精確表現）。

在1997年的SIGGRAPH上，Paul Debevec提交了題為「從照片中恢復高動態範圍輻射圖」的論文。這篇論文描述了按照不同的曝光設置對同一個場景進行拍照，然後將這些採用不同曝光的照片組合成高動態範圍圖像。這種高動態範圍圖像可以捕捉從黑暗的陰影到亮光源或者高反光的更大動態範圍的場景。

在SIGGRAPH '98一年之後，Debevec又提交一篇論文「將人造物體渲染成真實場景：溝通基於圖像的傳統圖形與全局照明以及高動態範圍照片」。在這篇論文中，他使用以前的技術對光滑的鉻球照相以生成他所稱作的「light probe」，即本質上的高動態範圍環境圖。然後將這個light probe用於合成場景的渲染。與普通的環境圖簡單地提供反射或者折射資訊不同，light probe還提供了場景中的照明，實際上，這是唯一的光源。這種方法實現了一種前所未有的真實感效果，為整體照明模型提供了真實世界的照明數據。

## 圖像顯示

高動態範圍圖像在傳統的螢光幕只能顯示有限動態範圍,但是隨著OLED/mini-LED技術越來越成熟,很多使用這類技術的高檔手提電話,平板電腦,手提電腦,電腦顯示器,超清電視機能夠顯示峰值亮度高達1600nits的高動態範圍圖像

## 色調映射

在查看高動態範圍圖像的時候經常會遇到一個問題，CRT、LCD、印表機以及其它圖像顯示方法只能顯示有限動態範圍的圖像。因此，人們開發了各種將高動態範圍圖像「轉換」成可以查看的圖像的方法，這些方法統稱為「色調映射」。

早期的色調映射非常簡單，這些方法設置一個動態範圍窗口，按照最大值、最小值對圖像進行裁剪。最近出現的方法試圖顯示更大的動態範圍，一些更加複雜的方法已經在研究人眼及視神經感知場景的機制，並且爭取在保持真實的顏色與對比度前提下顯示全部的動態範圍。

## 例子

<image>

- –4 stops

<image>

- –2 stops

<image>

- +2 stops

<image>

- +4 stops

<image>

- 簡單的對比度降低

<image>

- 局部色調映射

<image>

- 自然色調映射

一些圖像實例可以用來幫助說明高動態範圍成像的用途。下面的實例所用的圖片是用Uffizi圖庫中著名的Paul Debevec光探頭在Radiance中渲染生成。

### 曝光

<image>

在將高動態範圍圖像通過色調映射生成用於顯示的低動態範圍圖像的過程中，通過調整曝光展示了高動態範圍圖像。中間的曝光是所期望的曝光，也最有可能是場景正常顯示的效果。左側較暗圖像使用光圈4曝光，只能顯示天空較亮雲彩的一些細節。右側較亮圖像使用光圈3曝光，可以顯示場景中較暗的部分。

<image>

### 模糊

這裡的高斯模糊展示了高動態範圍圖像中超出取值範圍的數值也是有用的，即使它們在轉換成低動態範圍圖像的時候通常都要被裁掉。左側圖像是原始圖像首先經過色調映射成的低動態範圍版本，然後在GIMP中進行模糊得到，右側的圖像是原始高動態範圍圖像在pgblur中進行模糊，然後經過色調映射得到。

儘管兩幅圖像非常相似，但是明顯的區別就是光滑鉻球上的高亮光部分。在原始的高動態範圍圖像中，這些像素都有非常大的亮度值。當圖像模糊的時候，周圍的像素亮度被「拉高」並且在色度映射時裁剪成最大值，當然高亮像素的亮度也會被周圍像素「拉低」，但是它們的亮度非常高所以在色度映射的時候仍然要超出最大值。這樣的結果就是更大的區域變成了白色。

但是對於低動態範圍模糊來說，高亮區域的像素在模糊處理之前已經裁剪成了最大值，這就從總體上大幅度地降低了亮度值。因此，在模糊處理之後，光亮區域周圍的像素將不再有非常高的亮度，即使是高亮區域內的像素也由於周圍像素的影響而被拉低。這樣高亮區域就變得比較模糊，看起來不再非常明亮。

對於常見的動態模糊也是同樣的結果。

## 其他例子

<image>

- 奧地利蓬高地區聖約翰陰天時的景象（經HDR處理），事實上地面的亮度比此影像所呈現要要暗很多

<image>

- 日落時分的巴黎街景，HDR突顯了逆光處的暗部細節

<image>

- 泰國帕亞那空山洞內的一座樓臺，HDR處理使山洞內陰暗處的紋理得以顯示出來

<image>

- 夕陽下的馬特洪峰，實際上此時地面和天空的亮度差異非常大

## 外部連結

- 網易HDR攝影中國HDR攝影論壇
- Artizen HDR 高動態範圍圖像編輯及色調映射軟體
- Hdrland這種技術的圖片庫
- Photomatix 高動態範圍圖像合成及色調映射軟體
- 基於演示照明的實時高動態範圍圖像
- 高動態範圍圖像編碼，Greg Ward, Anyhere Software
- Linux中的高動態範圍圖像，Nathan Willis
- Hyperfocal Design 商用高動態範圍圖像、教程、軟體評估以及新聞
- 高動態範圍圖像與影片的處理——從獲取到顯示
- AHDRIA使用標準數位相機捕獲高動態範圍圖像的軟體
- 全自動梯度域高動態範圍壓縮描述
- HDRShop 高動態範圍圖像處理軟體資源
- HDRIE（高動態範圍圖像編輯器）- 受HDRShop啟發的開發原始碼項目
- Renderman中高動態範圍圖像渲染
- PFStools - 創建、編輯高動態範圍圖像的開放原始碼包
- Where to Go for More H.D.R.

### 攝影

- 如何生成高動態範圍圖像 - Tutorial Compares Photomatix and Photoshop CS2 Bridge
- 高動態範圍照相 - Photoshop CS2實現
- Photoshop CS2高動態範圍圖像介紹 - 用Photoshop CS2生成32位高動態範圍圖像
- Exposure Bracketing Technique for HDR Photography