Version 7.8

Version 7.8

The new features in this release are primarily related to HDR (High Dynamic Range) content, in one way or another. Specifically,
  1. True floating point compression is now supported, including lossless compression of many floating point formats such as half floats.
  2. Correct generation and interpretation of the JPX pixel format box introduced with Amendment 3 to IS15444-2 (Part-2/Amd3), with emphasis on the new pixel formats that re-interpret decompressed output image component sample bit-patterns as floating-point or fixed-point bit-patterns. Both are useful for HDR content, since they both allow super-luminous regions to be correctly represented without gamut clipping.
  3. Extensions to many of the JP2-family file format and rendering tools so as to support the new HDR-friendly pixel formats. In particular, the`kdu_region_decompressor' and `kdu_region_compositor' objects that lie at the heart of most rendering applications based on Kakadu now transparently handle these new pixel formats, but also offer considerable control over how the rendered content is generated so that super-luminous or out-of-gamut colours can be preserved if an application knows what to do with them.
  4. Efficient compression of HDR type content is facilitated by the introduction of full support for the Part-2 non-linear point transform (NLT) feature. In fact, with this addition, Kakadu now supports pretty much any Part-2 JPEG2000 feature you are ever likely to need. The only signficant unsupported Part-2 features are Trellis-Coded Quantization and precinct-adaptive quantization, neither of which are relevant to most of the differentiating applications for JPEG2000.
  5. Colour space conversions are now available at full floating-point precision, where previously we offered only 16-bit fixed-point precision conversions between different colour spaces during rendering. Moreover the wide-gamut option (always existed) now offers much wider gamut conversions when working at floating point precision.
  6. The `kdu_region_decompressor' and `kdu_region_compositor' objects now allow the application to configure one of four different intensity-scaling modes. Specifically, modes known as "true-zero" and "true-max" can now be selectively turned on or off. We refer to these correctly as "true-intensity-scaling" or just "true-scaling" modes. The default behaviour, corresponding to the mechanisms used prior to this release, has both "true-zero" and "true-max" modes disabled. This approach usually creates good renderings, with the least reliance on colour-space related information, with the lowest computational complexity. However, Part-2/Amd3 describes a slightly different set of intensity mapping procedures that are intended to provide maximum colorimetric accuracy when mapping codestream image components with one numerical description to colour space channels with a different numerical description. The specific mapping issue addressed by the "true-max" mode is that the maximum intensity associated with a P-bit unsigned representation is 2^P-1 (signed is 2^{P-1}-1), so that the correct transformation of sample values with one precision to colour channels with a different precision is never exactly a power of 2 (although it is very nearly a power of 2 almost always). The "true-max" mode ensures absolutely correct scaling of intensities, while the default behaviour (and that prior to this release) is to use power-of-2 scaling factors and correct for any distortions that are likely to be visible by using `kdu_region_decompressor::set_white_stretch'. The mapping issue addressed by the "true-zero" mode is primarily the handling of negative values when signed representations are employed at the codestream level (very rare). The default behaviour is to map these to a mid-level grey, which is arguably the most useful approach for visualising scientific data. The colorimetrically correct approach, however, is to map 0 to black (true-zero). More broadly, the "true-zero" intensity scaling mode does a lot more than this it precisely accounts for the actual zero-luminance point (known as "natural-zero") or achromatic point (for chominance components) of the relevant colour space when converting between different precisions as well as between signed and unsigned representations, so as to preserve the most natural interpretation of zero. Combining "true-max" with "true-zero" generates mappings that correctly preserve both the maximum intensity and the natural zero intensity (black) or achromatic point of each colour channel correctly, although possibly at some computational cost. This might not always be what you want to do, especially when visualising scientific data, so the default modes remain unchanged. Also, in most common situations, the intensity scaling mode is irrelevant, because original image components are usually identified in the codestream as having an unsigned representation with exactly the same precision (usually 8 bits) as that used to define the colour space that is signalled in file format boxes. Correct handling of the "true-max" case is more important in this release than before, because it impacts the way in which the new HDR-friendly float and fixpoint pixel formats are handled. Where these new data types are found, however, the "true-max" intensity scaling policy is applied automatically and transparently.
  7. Some of the demo-apps have been updated to add support for the new features. Notably: "kdu_compress" can now compress HDR content for scientific or photographic applications; "kdu_expand" can decompress such content, including the writing of true floating point outputs to TIFF or raw image files; "kdu_render" can render HDR content and can also be requested to selectively apply the new "true-intensity-scaling" modes mentioned above; kdu_macshow" and "kdu_winshow" all handle the new types of content correctly; and "kdu_merge" can preserve information carried via the new JPX Pixel Format box when merging content from existing JPX sources into new JPX output files.
  8. Finally, additional SIMD accelerators have been provided for both x86 and ARM/NEON platforms, to optimize the processing of key data paths related to HDR imagery and key multi-component transform data paths, as used in the compression of hyperspectral content, virtual microscopy and other related applications.
Go Top