The new version includes several significant changes:
* OpenEXR supports a new image compression method, called B44. It has
a fixed compression rate of 2.28:1, or 4.57:1 if used in combination
with luminance/chroma encoding. B44-compressed images can be
uncompressed fast enough to support real-time playback of image
sequences.
* The new playexr program plays back moving image sequences. Playexr
is multi-threaded and utilizes the threading capabilities of the
IlmImf library that were introduced in OpenEXR 1.3.0. The program
plays back B44-compressed images with fairly high-resolution in real
time on commodity hardware.
* The playexr program and a new version of the existing exrdisplay
image viewer both support color rendering via color transforms
written in the new Color Transformation Language or CTL. CTL is not
part of OpenEXR; it will be released separately. CTL support in
playexr and exrdisplay is optional; the programs can be built and
will run without CTL.
* In preparation for the release of CTL, OpenEXR has been split into
three separate packages:
* IlmBase 0.9.0 includes the Half, Iex, Imath and IlmThread libraries
* OpenEXR 1.5.0 includes the IlmImf library, programming examples and utility programs such as exrheader or exrenvmap
* OpenEXRViewers 0.9.0 includes the playexr and exrdisplay programs
* The "Technical Introduction to OpenEXR" document now includes a
recommendation for storing CIE XYZ pixel data in OpenEXR files.
* A new "OpenEXR Image Viewing Software" document describes the
playexr and exrdisplay programs. It briefly explains real-time
playback and color rendering, and includes recommendations for
testing if other image viewing software displays OpenEXR images
correctly.
* The OpenEXR sample image set now includes B44-compressed files and
files with CIE XYZ pixel data.
Detailed Changes:
* reorganized packaging of OpenEXR libraries to facilitate integration
with CTL. Now this library depends on the library IlmBase. Some
functionality has been moved into OpenEXR_Viewers, which depends on
two other libraries, CTL and OpenEXR_CTL. Note: previously there
were separate releases of OpenEXR-related plugins for Renderman,
Shake and Photoshop. OpenEXR is supported natively by Rendermand
and Photoshop, so these plugins will not be supported for this or
future versions of OpenEXR. (Andrew Kunz)
* New build scripts for Linux/Unix (Andrew Kunz)
* New Windows project files and build scripts (Kimball Thurston)
* float-to-half conversion now preserves the sign of float zeroes and
of floats that are so small that they become half zeroes. (Florian
Kainz)
* Bug fix: Imath::Frustum<T>::planes() returns incorrect planes if the
frustum is orthogonal. (Philip Hubbard)
* added new framesPerSecond optional standard attribute (Florian
Kainz)
* Imath cleanup:
- Rewrote function Imath::Quat<T>::setRotation() to make it
numerically more accurate, added confidence tests
- Rewrote function Imath::Quat<T>::slerp() using Don Hatch's method,
which is numerically more accurate, added confidence tests.
- Rewrote functions Imath::closestPoints(), Imath::intersect(),
added confidence tests.
- Removed broken function Imath::nearestPointOnTriangle().
- Rewrote Imath::drand48(), Imath::lrand48(), etc. to make them
functionally identical with the Unix/Linux versions of drand48(),
lrand48() and friends.
- Replaced redundant definitions of Int64 in Imath and IlmImf with a
single definition in ImathInt64.h. (Florian Kainz)
* exrdisplay: if the file's and the display's RGB chromaticities
differ, the pixels RGB values are transformed from the file's to the
display's RGB space. (Florian Kainz)
* Added new lossy B44 compression method. HALF channels are
compressed with a fixed ratio of 2.28:1. UINT and FLOAT channels
are stored verbatim, without compression. (Florian Kainz)