This release is strongly focussed on mobile applications, providing just about all the enhancements one could wish for to build high quality mobile applications based on Kakadu. While not included with this release, we have developed an IOS application that does pretty much everything that kdu_macshow/kdu_winshow does, plus quite a bit more. This application is highly responsive even on older low-end iPhone/iPad devices and even when working with huge source images, animations, etc.
Here is a brief list of the enabling tools, which are part of the release:
- AVX2 and ARM/NEON accelerations have been extended to all relevant aspects of the Kakadu tools for optimal results on modern desktop and mobile platforms.
- A on-line visual optimization sub-system allows automatic trimming of the content used during interactive rendering at verious scales and regions of interest to as to greatly accelerate rendering of large content in reduced form — up to 3 fold acceleration is achieved in some cases, but true lossless decoding is still automatically selected under appropriate circumstances. This feature is particularly important for high quality, highly responsive rendering to high resolution retina displays.
- The kdu_cache and kdu_client components that underpin interactive remote browsing of imagery and animations have been substantially redesigned and augmented to allow efficient and correct operation in limited memory environments and superior multi-threaded interaction with JPIP cache content. There are also now many more interesting ways to use cache files that are initially generated during interactive browsing of content. The cache files can be shared between users and applications; they can be opened directly or augment an ongoing browsing session; they can also be partially opened in order to rapidly generate previews, perhaps while the full content loads in the background (something fully supported by `kdu_client’).
- There are many other features provided in this release to directly support mobile applications. One most notable such feature is that the key enabling engine for interactive rendering, `kdu_region_compositor’, provides new features to make it easy to temporarily render content at a reduced resolution (any resolution at all) while retaining all the geometry attributes of a final intended target resolution; this makes it very easy to implement the coarse-to-fine rendering strategy commonly found in mobile applications to ensure highly responsive interactive behaviour.