OpenEXR
副檔名 |
.exr |
---|---|
網路媒體型式 | image/x-exr |
統一類型標識 | com.ilm.openexr-image[1] |
開發者 | 光影魔幻工業 |
首次發布 | 1999年 |
最新版本 | 3.2.3 2024年3月7日 |
格式類型 | 高動態範圍圖像 |
自由格式? | 是,BSD許可證修改版 |
網站 | www |
OpenEXR,或簡稱為exr格式,是一種開放標準的高動態範圍圖像格式,在計算機圖形學里被廣泛用於存儲圖像數據,但也可以存儲一些後期合成處理所需的數據。OpenEXR最早由工業光魔開發,並在一個類似BSD許可證的自由軟件許可證下發布,其發布的軟件包裡帶有一些處理exr圖像格式的工具。[2]
最早使用OpenEXR格式的電影,是哈利·波特與魔法石,從那以後,OpenEXR成了光影魔幻工業主要使用的圖像文件格式,工業光魔所有正在製作的影片都用到了這個圖像格式。[3]
OpenEXR的多級分辨率和任意數據通道存儲使其非常適合用於合成,它能把高光(specular)、漫射(diffuse)、陰影、Alpha通道、RGB、法線和其他對後期合成有用的數據存儲於一個文件里,如果對三維渲染出來的圖像畫面高光或漫射不滿意,合成師可以根據導演要求在合成軟件里對指定的通道進行調整。
OpenEXR特性
可存儲比常規的8位和10位圖像格式更高的動態範圍和顏色精度。 支持16位浮點數、32位浮點數和32位整數的像素顏色值。16位浮點數格式,工業光魔稱之為半浮點數,它表示的顏色數值,由一個符號位,五個指數位和十個浮點數位組成,這使其能存儲超過30級曝光的動態圖像亮度範圍,它和英偉達的Cg語言的半浮點數類型兼容,並且他們最新的GeForce FX和Quadro FX 3D圖形卡也內置支持exr格式。
OpenEXR支持多種無損和有損圖像壓縮算法,一些內置的編碼,在壓縮帶有膠片顆粒的圖像時,能達到2:1的無損壓縮率。
支持的壓縮算法
OpenEXR內置三種無損壓縮算法,包括兩種不同的zip壓縮算法,對於沒有很多噪點的圖像,這兩種zip壓縮方法最有效,而PIZ壓縮算法則更適合於噪點較多的圖像,渲染exr格式圖像時通常有以下壓縮選項:
- None
- 無壓縮。
- RLE
- 這是一種和TGA圖像格式的標準壓縮算法相似的一種壓縮算法。
- zip(單行)
- 對單行像素信息使用zip方式的壓縮。
- zip(16行像素塊)
- 這是對16行像素塊進行的zip方式壓縮,對膠片噪點不多的計算機繪製圖像是最有效的壓縮算法。
- PIZ(小波壓縮)
- 這是一種新的結合小波和霍夫曼編碼的壓縮算法,對噪點比較多的圖像最為有效。
- PXR24(24位數據轉換後再進行zip壓縮)
- 這個來自皮克斯的壓縮算法,先把數據轉換為24位,再進行zip壓縮,它對於16位和32位整數值數據是無損的,但對於32位浮點數據則有輕微損失。
- B44
- 這對半浮點數數據是有損的,對32位浮點數據則不進行壓縮。
- B44A
- 對相同顏色的區域進行進一步壓縮,是對B44的擴展,常規B44壓縮則無視圖像的內容。
可擴展,通過擴展exr的C++類,可以支持新的壓縮編碼和圖像類型;新的圖像屬性(字符串、矢量、整數等),可添加到exr圖像的文件頭裡,而不破壞已有軟件包的兼容性。
要了解OpenEXR的完整技術信息,請參閱openexr.org網站的技術文檔。[4]
OpenEXR源碼組件
OpenEXR發布的源碼里,包括以下幾個部分:
- IlmImf,一個讀寫exr圖像的程序庫;
- Half,一個C++類,可以像操作其他C++內置數據類型那樣,操作半浮點數值;
- Imath,一個數學程序庫,支持矩陣,二維和三維變換,線性、二次和三次方程組求解等;
- exrdisplay,一個顯示exr圖像的示例程序。
歷史
OpenEXR由工業光魔於2000年開發,並於2003年公開發布。[5]
2012年6月18日,第一個公開測試版OpenEXR 2.0發布,引入了深度數據支持,並支持把多個獨立但相關的圖像存儲在單個文件里,並且可以單獨讀取各部分。[6]
2013年4月9日,工業光魔和Weta數位一起發布了OpenEXR 2.0版。除了測試版引入的新功能外,OpenEXR 2.0還引入了名字空間支持,以避免不同軟件包不同文件版本之間的衝突。有多家公司對這個版本的OpenEXR做出了貢獻,皮克斯在微軟公共許可證下貢獻出了他們的DtexToExr轉換工具代碼,排除了可能的專利爭議;Autodesk為實時後期製作流程提供了優化。[7]
參考資料
- ^ CGImageSource.SupportedTypes. Claris FileMaker MBS Plug-in. MonkeyBread Software. [2024-03-10]. (原始內容存檔於2020-12-30).
- ^ OpenEXR许可证, openexr.com, [2013-01-15], (原始內容存檔於2012-07-22)
- ^ OpenEXR官网, openexr.com, [2013-01-15], (原始內容存檔於2013-01-16)
- ^ OpenEXR文档, openexr.com, [2013-01-15], (原始內容存檔於2013-05-08)
- ^ OpenEXR历史 (郵件列表). openexr.com. [2013-01-15]. (原始內容存檔於2013-05-08).
- ^ Stanczyk, Piotr. OpenEXR v2 news. openexr-devel (郵件列表). 18 June 2012 [2013-01-15]. (原始內容存檔於2014-04-20).
- ^ OpenEXR 2.0发布. 9 April 2013 [2013-01-15]. (原始內容存檔於2013-01-16).