OpenEXR

一种开放标准的高动态范围图像格式

OpenEXR,或简称为exr格式,是一种开放标准高动态范围图像格式,在计算机图形学里被广泛用于存储图像数据,但也可以存储一些后期合成处理所需的数据。OpenEXR最早由工业光魔开发,并在一个类似BSD许可证自由软件许可证下发布,其发布的软件包里带有一些处理exr图像格式的工具。[2]

OpenEXR
扩展名
.exr
互联网媒体类型image/x-exr
统一类型标识com.ilm.openexr-image[1]
开发者光影魔幻工業
首次发布1999年,​25年前​(1999
最新版本
3.2.3
2024年3月7日,​8個月前​(2024-03-07
格式类型高动态范围图像
自由格式是,BSD许可证修改版
网站www.openexr.com 編輯維基數據鏈接

最早使用OpenEXR格式的电影,是哈利·波特与魔法石,从那以后,OpenEXR成了光影魔幻工業主要使用的图像文件格式,工业光魔所有正在制作的影片都用到了这个图像格式。[3]

OpenEXR的多级分辨率和任意数据通道存储使其非常适合用于合成,它能把高光(specular)、漫射(diffuse)、阴影、Alpha通道RGB法线和其他对后期合成有用的数据存储于一个文件里,如果对三维渲染出来的图像画面高光或漫射不满意,合成师可以根据导演要求在合成软件里对指定的通道进行调整。

OpenEXR特性

可存储比常规的8位和10位图像格式更高的动态范围和颜色精度。 支持16位浮点数、32位浮点数和32位整数的像素颜色值。16位浮点数格式,工业光魔称之为半浮点数,它表示的颜色数值,由一个符号位,五个指数位和十个浮点数位组成,这使其能存储超过30级曝光的动态图像亮度范围,它和英伟达Cg语言的半浮点数类型兼容,并且他们最新的GeForce FXQuadro 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发布,引入了深度数据英语Deep image compositing支持,并支持把多个独立但相关的图像存储在单个文件里,并且可以单独读取各部分。[6]

2013年4月9日,工业光魔和Weta數位一起发布了OpenEXR 2.0版。除了测试版引入的新功能外,OpenEXR 2.0还引入了名字空间支持,以避免不同软件包不同文件版本之间的冲突。有多家公司对这个版本的OpenEXR做出了贡献,皮克斯微软公共许可证下贡献出了他们的DtexToExr转换工具代码,排除了可能的专利争议;Autodesk为实时后期制作流程提供了优化。[7]

参考资料

  1. ^ CGImageSource.SupportedTypes. Claris FileMaker MBS Plug-in. MonkeyBread Software. [2024-03-10]. (原始内容存档于2020-12-30). 
  2. ^ OpenEXR许可证, openexr.com, [2013-01-15], (原始内容存档于2012-07-22) 
  3. ^ OpenEXR官网, openexr.com, [2013-01-15], (原始内容存档于2013-01-16) 
  4. ^ OpenEXR文档, openexr.com, [2013-01-15], (原始内容存档于2013-05-08) 
  5. ^ OpenEXR历史 (邮件列表). openexr.com. [2013-01-15]. (原始内容存档于2013-05-08). 
  6. ^ Stanczyk, Piotr. OpenEXR v2 news. openexr-devel (邮件列表). 18 June 2012 [2013-01-15]. (原始内容存档于2014-04-20). 
  7. ^ OpenEXR 2.0发布. 9 April 2013 [2013-01-15]. (原始内容存档于2013-01-16). 

外部链接