OpenEXR is a special file format created by ILM in 1999 and released in 2003. OpenEXR 2.0 was released in April 2013.
This article explains what OpenEXR is, in simple terms, and why it was necessary for ILM to create a file format. We will also look at the advantages unique to OpenEXR, and learn how these advantages help the VFX or special effects industry.
What exactly is OpenEXR?
A ‘regular’ video file is a self-contained thing, usually created to be read and shared. Most consumer formats, like MPEG-2, H.264, JPEG, TIFF, etc., are designed as reservoirs of data. To play with the data, you need to ‘clean the reservoir’ and take the data elsewhere.
E.g., a Microsoft Word document has a specific file format, either .doc or .docx and so on. Once you’re done writing and editing your work, you can save it to a distribution or consumption format, like PDF, etc. The reason MS Word (and most software in general) needs its own file format is because it gives itself the freedom to play with data in the most efficient manner possible.
Imagine the difference between two kitchens – one in a home and another in a restaurant. The first one is usually designed on the basis of aesthetics, while the latter gives total priority to workflow, efficiency and speed of operation.
The placement of the utensils, tools, ovens, etc., are all planned in advance, and placed with absolute precision. Each chef or staff in the kitchen belongs to a specific classification, with immediate access to the tools they require the most.
This latter system is why OpenEXR exists, and why, as a file format, it confuses many who come from the home kitchen system.
In general terms, this is the underlying problem which prompted ILM to create OpenEXR or EXR. Everything that plagues other file formats (which makes it easier for them to exist in their own domains of expertise) is avoided in OpenEXR.
OpenEXR is an ‘assembly line’ file format, easy to break open, study, share, split, merge, manipulate and ‘bake’.
What makes OpenEXR special?
It stands to reason that OpenEXR must provide substantial advantages over conventional multiplexed video files or images, in a special effects or VFX environment. Here are some features:
- It is a raster format
- It supports different versions of the same image, called levels, each with a different resolution
- It can store many data channels, which allows for maximum flexibility in compositing
- It can store data as-is, without the need to bake-in the image
- It can contain uncompressed, lossless compressed and compressed data, in multiple formats
- It supports 16-bit and 32-bit float data, with up to 30 stops of DR
- It can take codecs beyond its standard capabilities
- It comes with exrdisplay, an application to view OpenEXR images
- It is written in C++, but also supports C. Both are the most widely used programming languages on the planet for non-web applications
All this is fine, but not enough. What else does it offer?
In addition, OpenEXR addresses two critical requirements for the VFX industry:
- Licensing – this format is open-source, with no restrictions.
- Flexible API and Library – this allows developers in major VFX facilities to build customized applications around it. The library feature allows for quick access to data such as titles, channels, etc.
OpenEXR 2.0 offers two advanced capabilities:
- Support for deep image compositing – deep images or pixels are those pixels that have RGB information plus information in the z-axis (which is why it is deep). This is a new system of compositing, created by Weta Digital, that makes the composites look more real.
- Support for multiple images (multi-part images) in one file. Why would anyone need this? Speed. Cram in as much data as required in one file so the software/hardware doesn’t waste time hunting for it.
Version 2.0 is fully backward compatible with version 1.0, as long as its features aren’t called into play.
To learn more about OpenEXR features and how to implement it, check out the official website openEXR.com.
For a good overview of the format, check out this white paper.