在計算機圖形學與
電影攝影術中,高動態范圍成像是用來實現比普通數字圖像技術更大曝光
動態范圍(即更大的明暗差別)的一組技術。高動態范圍成像的目的就是要正確地表示真實世界中從太陽光直射到最暗的陰影這樣大的范圍亮度。
高動態范圍成像最初只用于純粹由計算機生成的圖像。后來,人們開發出了一些從不同曝光范圍照片中生成高動態范圍圖像的方法。隨著數碼相機的日漸流行以及桌面軟件變得易于使用,許多業余攝影師使用高動態范圍成像的方法生成高動態范圍場景的照片,但是,不要將這作為它唯一的用途,實際上高動態范圍還有許多其它的應用。
當用于顯示的時候,高動態范圍圖像經常要進行色調映射,并且要與其它幾種
全屏顯示效果(full screen effect)一起使用。
在計算機圖形學中開創高動態范圍成像的先驅是
Paul Debevec,據說 Debevec 是第一個使用高動態范圍成像圖生成計算機圖像以逼真地對計算機圖形物體進行照明與動畫處理。[來源請求]人們普遍認為 Gregory Ward 是高動態范圍成像文件格式的奠基人。[來源請求]
[
編輯]與傳統數字圖像的比較
通常保存在高動態范圍圖像中的信息對應于真實世界可以觀察到的亮度(luminance)或者
radiance值,這與傳統的數字圖像保存的在顯示器或者打印紙上顯示的顏色不同。所以,高動態范圍圖像格式也經常成為“與場景相關”,以區別于傳統的“與設備相關”或者“與輸出相關”的數字圖像。另外,傳統圖像通常經常針對人類視覺系統進行編碼(最大化保存在固定數據位中的可視信息),這些編碼通常稱作“伽瑪編碼”或者“
gamma 校正”。保存在高動態范圍圖像中的數據經常是線性的,這就意味著它們表示亮度或者radiance 的相對或者絕對值(gamma 1.0)。
高動態范圍圖像每個顏色通道需要比傳統圖像更多的數據位,這是因為它的線性編碼以及需要表示從 10 − 4 到 108 人眼可見亮度范圍甚至是更大范圍的數值。經常使用 16 位“
half precision”或者 32 位浮點數表示高動態范圍像素。但是,如果使用合適的傳遞函數進行變換,一些應用中的高動態范圍像素可以用 10-12 位表示亮度,用 8 位表示色度,并且不會帶來任何可見的量化誤差[1][2]。
[
編輯]圖像來源
高動態范圍圖像最初使用不同的
渲染工具生成,其中著名的一個是
Radiance 。由于所使用單位都是基于如 瓦/球面度/米2 這樣的實際物理單位,所以這種方法可以實現更加逼真的模型場景表現。這種方法可以模擬真實場景的光照,以及利用這個結果選擇照明(假設幾何形狀、照明以及材料都是真實場景的精確表現)。
在 1997年 的 SIGGRAPH 上,Paul Debevec 提交了題為“從照片中恢復高動態范圍輻射圖”的論文。這篇論文描述了按照不同的曝光設置對同一個場景進行拍照,然后將這些采用不同曝光的照片組合成高動態范圍圖像。這種高動態范圍圖像可以捕捉從黑暗的陰影到亮光源或者高反光的更大動態范圍的場景。
在 SIGGRAPH '98 一年之后,Debevec 又提交了一篇論文“將人造物體渲染成真實場景:溝通基于圖像的傳統圖形與全局照明以及高動態范圍照片”。在這篇論文中,他使用以前的技術對光滑的鉻球照相以生成他所稱作的“light probe”,即本質上的高動態范圍
環境圖。然后將這個 light probe 用于合成場景的渲染。與普通的環境圖簡單地提供反射或者折射信息不同,light probe 還提供了場景中的照明,實際上,這是唯一的光源。這種方法實現了一種前所未有的真實感效果,為整體照明模型提供了真實世界的照明數據。
[
編輯]色調映射
-
在查看高動態范圍圖像的時候經總是會遇到一個問題,CRT、LCD、打印機以及其它圖像顯示方法只能顯示有限動態范圍的圖像。因此,人們開發了各種將高動態范圍圖像“轉換”成可以查看的圖像的方法,這些方法統稱為“色調映射”。
早期的色調映射非常簡單,這些方法設置一個動態范圍窗口,按照最大值、最小值對圖像進行裁剪。最近出現的方法試圖顯示更大的動態范圍,一些更加復雜的方法已經在研究人眼及視神經感知場景的機制,并且爭取在保持真實的顏色與對比度前提下顯示全部的動態范圍。
一些圖像實例可以用來幫助說明高動態范圍成像的用途。下面的實例所用的圖片是用
Uffizi 圖庫中著名的
Paul Debevec 光探頭在
Radiance 中渲染生成。
在將高動態范圍圖像通過色調映射生成用于顯示的低動態范圍圖像的過程中,通過調整曝光展示了高動態范圍圖像。中間的曝光是所期望的曝光,也最有可能是場景正常顯示的效果。左側較暗圖像使用光圈 4 曝光,只能顯示天空較亮云彩的一些細節。右側較亮圖像使用光圈 3 曝光,可以顯示場景中較暗的部分。
這里的高斯模糊展示了高動態范圍圖像中超出取值范圍的數值也是有用的,即使它們在轉換成低動態范圍圖像的時候通常都要被裁掉。左側圖像是原始圖像首先經過色調映射成的低動態范圍版本,然后在GIMP中進行模糊得到,右側的圖像是原始高動態范圍圖像在 pgblur 中進行模糊,然后經過色調映射得到。
盡管兩幅圖像非常相似,但是明顯的區別就是光滑鉻球上的高亮光部分。在原始的高動態范圍圖像中,這些像素都有非常大的亮度值。當圖像模糊的時候,周圍的像素亮度被“拉高”并且在色度映射時裁剪成最大值,當然高亮像素的亮度也會被周圍像素“拉低”,但是它們的亮度非常高所以在色度映射的時候仍然要超出最大值。這樣的結果就是更大的區域變成了白色。
但是對于低動態范圍模糊來說,高亮區域的像素在模糊處理之前已經裁剪成了最大值,這就從總體上大幅度地降低了亮度值。因此,在模糊處理之后,光亮區域周圍的像素將不再有非常高的亮度,即使是高亮區域內的像素也由于周圍像素的影響而被拉低。這樣高亮區域就變得比較模糊,開起來不再非常明亮。
對于常見的
運動模糊也是同樣的結果。
[
編輯]其他例子
[
編輯]參考文獻
- ↑
"High Dynamic Range Image Encodings" by Greg Ward, Anyhere Software
- ↑
"Perception-motivated High Dynamic Range Video Encoding" from
Informatik
[
編輯]外部鏈接
[
編輯]高動態范圍顯示
Studio rendering:
[
編輯]On rendering
posted on 2008-01-01 07:44
姚明 閱讀(1180)
評論(0) 編輯 收藏 引用 所屬分類:
圖形學