OpenEXR

Last updated
OpenEXR
Filename extension
.exr
Internet media type image/x-exr
Uniform Type Identifier (UTI) com.ilm.openexr-image [1]
Developed by Industrial Light & Magic
Initial release1999;24 years ago (1999)
Latest release
3.1.5
12 April 2022;20 months ago (2022-04-12)
Type of format High-dynamic-range imaging
Open format?Yes, Modified BSD License
Website www.openexr.com OOjs UI icon edit-ltr-progressive.svg

OpenEXR is a high-dynamic range, multi-channel raster file format, released as an open standard along with a set of software tools created by Industrial Light & Magic (ILM), under a free software license similar to the BSD license. [2]

Contents

It is notable for supporting multiple channels of potentially different pixel sizes, including 32-bit unsigned integer, 32-bit and 16-bit floating point values, as well as various compression techniques which include lossless and lossy compression algorithms. It also has arbitrary channels and encodes multiple points of view such as left- and right-camera images. [3]

Overview

A full technical introduction of the format is available on the OpenEXR website. [3]

OpenEXR, or EXR for short, is a deep raster format developed by ILM and broadly used in the computer-graphics industry, both visual effects and animation.

OpenEXR's multi-resolution and arbitrary channel format makes it appealing for compositing, as it alleviates several painful elements of the process. Since it can store arbitrary channels—specular, diffuse, alpha, RGB, normals, and various other types—in one file, it takes away the need to store this information in separate files. The multi-channel concept also reduces the necessity to "bake" in the aforementioned data to the final image. If a compositor is not happy with the current level of specularity, they can adjust that specific channel. [4]

OpenEXR's API makes tools development a relative ease for developers. Since there are almost never two identical production pipelines, custom tools always need to be developed to address problems (e.g. image-manipulation issue). OpenEXR's library allows quick and easy access to the image's attributes such as tiles and channels. [4]

The OpenEXR library is developed in C++ and is available in source format as well as compiled format for Microsoft Windows, macOS and Linux. Python bindings for the library are also available for version 2.x. [5]

History

OpenEXR was created by ILM in 1999 and released to the public in 2003 along with an open source software library. [6] [7] It soon received wide adoption by software used in computer graphics, particularly for film and television production. The format has been updated several times, adding support for tiles, mipmaps, new compression methods, and other features. [7] In 2007, OpenEXR was honored with an Academy Award for Technical Achievement. [7]

OpenEXR 2.0 was released in April 2013, extending the format with support for deep image buffers and multiple images embedded in a single file. [7] [8] [9] Version 2.2, released August 2014, added the lossy DWA compression format. [10]

Distribution

The OpenEXR software distribution includes:

Libraries

Color depth

OpenEXR has support for color depth using:

Compression methods

There are three general types of lossless compression built into OpenEXR, with two different methods of Zip compressing. For most images without a lot of grain, the two Zip compression methods seem to work best, while the PIZ compression algorithm is better suited to grainy images. The following options are available: [14]

None
Disables all compression.
Run Length Encoding (RLE)
This is a basic form of compression that is comparable to that used by standard Targa files.
Zip (per scanline)
deflate compression with zlib wrapper applied to individual scanlines (not based on the ZIP file format despite its name).
Zip (16 scanline blocks)
deflate compression applied to blocks of 16 scanlines at time. This tends to be the most effective style of compression to use with rendered images that do not have film grain applied.
PIZ (wavelet compression)
This lossless method uses a new combined wavelet / Huffman compression. This form of compression is quite effective when dealing with grainy images, and will often surpass any of the other options under grainy conditions.
PXR24 (24-bit data conversion then deflate compression)
This form of compression from Pixar Animation Studios converts 32-bit floats to 24 bits then uses deflate compression. It is lossless for half and 32-bit integer data and slightly lossy for 32-bit float data.
B44
This form of compression is lossy for half data and stores 32-bit data uncompressed. It maintains a fixed compression size of either 2.28:1 or 4.57:1 and is designed for realtime playback. B44 compresses uniformly regardless of image content. [15]
B44A
An extension to B44 where areas of flat color are further compressed, such as alpha channels.
DWAA
JPEG-like lossy compression format contributed by DreamWorks Animation. Compresses 32 scanlines together. [10]
DWAB
Same as DWAA, but compresses blocks of 256 scanlines.

Credits

From OpenEXR.org's Technical Introduction:

The ILM OpenEXR file format was designed and implemented by Florian Kainz, Wojciech Jarosz, and Rod Bogart. The PIZ compression scheme is based on an algorithm by Christian Rouet. Josh Pines helped extend the PIZ algorithm for 16-bit and found optimizations for the float-to-half conversions. Drew Hess packaged and adapted ILM's internal source code for public release and maintains the OpenEXR software distribution. The PXR24 compression method is based on an algorithm written by Loren Carpenter at Pixar Animation Studios. [3]

See also

Related Research Articles

In information theory, data compression, source coding, or bit-rate reduction is the process of encoding information using fewer bits than the original representation. Any particular compression is either lossy or lossless. Lossless compression reduces bits by identifying and eliminating statistical redundancy. No information is lost in lossless compression. Lossy compression reduces bits by removing unnecessary or less important information. Typically, a device that performs data compression is referred to as an encoder, and one that performs the reversal of the process (decompression) as a decoder.

gzip GNU file compression/decompression tool

gzip is a file format and a software application used for file compression and decompression. The program was created by Jean-loup Gailly and Mark Adler as a free software replacement for the compress program used in early Unix systems, and intended for use by GNU. Version 0.1 was first publicly released on 31 October 1992, and version 1.0 followed in February 1993.

<span class="mw-page-title-main">Lossy compression</span> Data compression approach that reduces data size while discarding or changing some of it

In information technology, lossy compression or irreversible compression is the class of data compression methods that uses inexact approximations and partial data discarding to represent the content. These techniques are used to reduce data size for storing, handling, and transmitting content. The different versions of the photo of the cat on this page show how higher degrees of approximation create coarser images as more details are removed. This is opposed to lossless data compression which does not degrade the data. The amount of data reduction possible using lossy compression is much higher than using lossless techniques.

Lossless compression is a class of data compression that allows the original data to be perfectly reconstructed from the compressed data with no loss of information. Lossless compression is possible because most real-world data exhibits statistical redundancy. By contrast, lossy compression permits reconstruction only of an approximation of the original data, though usually with greatly improved compression rates.

<span class="mw-page-title-main">PNG</span> Family of lossless compression file formats for image files

Portable Network Graphics is a raster-graphics file format that supports lossless data compression. PNG was developed as an improved, non-patented replacement for Graphics Interchange Format (GIF)—unofficially, the initials PNG stood for the recursive acronym "PNG's not GIF".

<span class="mw-page-title-main">Image compression</span> Reduction of image size to save storage and transmission costs

Image compression is a type of data compression applied to digital images, to reduce their cost for storage or transmission. Algorithms may take advantage of visual perception and the statistical properties of image data to provide superior results compared with generic data compression methods which are used for other digital data.

In computing, Deflate is a lossless data compression file format that uses a combination of LZ77 and Huffman coding. It was designed by Phil Katz, for version 2 of his PKZIP archiving tool. Deflate was later specified in RFC 1951 (1996).

<span class="mw-page-title-main">FLAC</span> Lossless digital audio coding format

FLAC is an audio coding format for lossless compression of digital audio, developed by the Xiph.Org Foundation, and is also the name of the free software project producing the FLAC tools, the reference software package that includes a codec implementation. Digital audio compressed by FLAC's algorithm can typically be reduced to between 50 and 70 percent of its original size and decompresses to an identical copy of the original audio data.

<span class="mw-page-title-main">Compression artifact</span> Distortion of media caused by lossy data compression

A compression artifact is a noticeable distortion of media caused by the application of lossy compression. Lossy data compression involves discarding some of the media's data so that it becomes small enough to be stored within the desired disk space or transmitted (streamed) within the available bandwidth. If the compressor cannot store enough data in the compressed version, the result is a loss of quality, or introduction of artifacts. The compression algorithm may not be intelligent enough to discriminate between distortions of little subjective importance and those objectionable to the user.

ICER is a wavelet-based image compression file format used by the NASA Mars rovers. ICER has both lossy and lossless compression modes.

Transcoding is the direct digital-to-digital conversion of one encoding to another, such as for video data files, audio files, or character encoding. This is usually done in cases where a target device does not support the format or has limited storage capacity that mandates a reduced file size, or to convert incompatible or obsolete data to a better-supported or modern format.

True Audio (TTA) is a lossless compressor for multichannel 8, 16 and 24 bits audio data. .tta is the extension to filenames of audio files created by the True Audio codec.

WavPack is a free and open-source lossless audio compression format and application implementing the format. It is unique in the way that it supports hybrid audio compression alongside normal compression which is similar to how FLAC works. It also supports compressing a wide variety of lossless formats, including various variants of PCM and also DSD as used in SACDs, together with its support for surround audio.

Generation loss is the loss of quality between subsequent copies or transcodes of data. Anything that reduces the quality of the representation when copying, and would cause further reduction in quality on making a copy of the copy, can be considered a form of generation loss. File size increases are a common result of generation loss, as the introduction of artifacts may actually increase the entropy of the data through each generation.

An image file format is a file format for a digital image. There are many formats that can be used, such as JPEG, PNG, and GIF. Most formats up until 2022 were for storing 2D images, not 3D ones. The data stored in an image file format may be compressed or uncompressed. If the data is compressed, it may be done so using lossy compression or lossless compression. For graphic design applications, vector formats are often used. Some image file formats support transparency.

JPEG XR is an image compression standard for continuous tone photographic images, based on the HD Photo specifications that Microsoft originally developed and patented. It supports both lossy and lossless compression, and is the preferred image format for Ecma-388 Open XML Paper Specification documents.

<span class="mw-page-title-main">WebP</span> Image file format

WebP is a raster graphics file format developed by Google intended as a replacement for JPEG, PNG, and GIF file formats. It supports both lossy and lossless compression, as well as animation and alpha transparency.

<span class="mw-page-title-main">Free Lossless Image Format</span> Raster graphics format

Free Lossless Image Format (FLIF) is a lossless image format claiming to outperform PNG, lossless WebP, lossless BPG and lossless JPEG 2000 in terms of compression ratio on a variety of inputs.

JPEG XT is an image compression standard which specifies backward-compatible extensions of the base JPEG standard.

References

  1. "CGImageSource.SupportedTypes". Claris FileMaker MBS Plug-in. MonkeyBread Software.
  2. "License". openexr.com.
  3. 1 2 3 Florian Kainz; Rod Bogart; Piotr Stanczyk; Peter Hillman (5 November 2013). "Technical Introduction to OpenEXR" (PDF). Industrial Light & Magic . Retrieved 2015-11-09.
  4. 1 2 "OpenEXR File Layout" . Retrieved 25 May 2023.
  5. "OpenEXR 1.3.0 : Python Package Index". pypi.python.org. Retrieved 11 April 2018.
  6. "Industrial Light & Magic Releases Proprietary Extended Dynamic Range Image File Format OpenEXR to Open Source Community" (PDF) (Press release). 22 January 2003. Archived from the original (PDF) on 21 July 2017. Retrieved 11 April 2013.
  7. 1 2 3 4 "OpenEXR". January 16, 2023 via GitHub.
  8. Stanczyk, Piotr (9 April 2013). "v2.0.0.0 (GM) release announcement". openexr-announce (Mailing list).
  9. "OpenEXR 2.0". The CGSoceity. 10 April 2013.
  10. 1 2 "DreamWorks Animation Contributes Lossy Compression To OpenEXR 2.2" (Press release). Glendale, CA. 8 August 2014. Retrieved 2014-08-18.
  11. "Reading and Writing OpenEXR Image Files with the IlmImf Library" (PDF).
  12. "name · Issue #879 · AcademySoftwareFoundation/openexr". GitHub.
  13. "Imath". January 21, 2023 via GitHub.
  14. "Technical Introduction to OpenEXR" (PDF). Archived from the original (PDF) on 2011-07-17. Retrieved 2006-02-23.
  15. "Technical Introduction to OpenEXR" (PDF). Archived from the original (PDF) on 2011-07-17. Retrieved 2006-02-23.