OpenJPEG a Free and Open-Source Solution to access the new JPEG2000 Geospatial Products
Savinaud, MickaŽl1; Malaterre, Mathieu2; Malik, Julien3; Grizzonet, Manuel4; Michel, Julien4; Descampe, Antonin5
1CS-SI, FRANCE; 2VOXXL, FRANCE; 3CSSI, FRANCE; 4CNES, FRANCE; 5UCL, BELGIUM

New generation of geospatial products (Pleiades, Spot 6-7, Sentinel-2, HiRISE instrument) will be distributed in the JPEG2000 format which allows a great compression ratio and a great variety of features. Indeed the data volume of the new products (for Pleiades in case of pan-sharpened product: 4 (bands) x 40000 (lines) x 40000 (columns) x 12 (bit depth) = 9.6 GBytes in non-compressed format) has significantly increased. The issue will be the same for multispectral sensor with large swath as Sentinel-2 distributed following the UTM grid of 10 000 square kilometer with a spatial resolution of 10 meter. Moreover the development of new very high resolution sensors or hyper/multi-spectral sensors will increase the data volume which should be distributed and manipulated by the data users. Format with high performance compression capabilities is needed and should be widely adopted by the remote sensing community. The best way to achieve this last goal is a free and open-source solution.

JPEG2000 is an international standard (ITU-T800 series) for still image compression which have been created by the Joint Photographic Experts Group and approved in August 2002 by International Organization for Standardization (ISO) and International Telecommunication Union (ITU). This new image coding system intends to manage different types of still images (from bi-color to multiócomponent) and different field of activities (medical imaging and remote sensing for example). Moreover this standard has been designed to support in a unified system different image models: client/server, real-time transmission, image library archival, limited buffer and bandwidth resource. This goal is achieved through the definition of large spectrum of technical features: low-bit rate performance, lossless and lossy compression, progressive transmission by pixel accuracy and resolution, region of interest coding, random codestream access and processing, robustness to bit errors, open architecture, content based description, transparency management and protective image security.

A great majority of these features are interesting for the remote sensing area, especially for large files. The JPEG2000 low bit rate characteristics offers an improved performance for high detailed images like panchromatic acquisition and for network dissemination. The progressive transmission and the region of interest coding/decoding allow the reconstruction of images with increasing pixel spatial resolution and limited buffer consumption. This last point is achieved with the use of structures (tile or code-blocks) which allow the splitting of independent image region. The JPEG2000 file could be seen as a container for one or more codestreams data described each one by its metadata. This metadata defines how to interpret the image content: for example geospatial information through the GML box designed by the Open Geospatial Consortium. Moreover with this content based description it is possible to store in the same file one image and for example a DEM.

Open-source reference software are defined in the Part 5 of the norm for the two main programming languages C and JAVA (respectively JasPer and JJ2000 projects) but they seems not adapted for the operational needs encounter by users. This is why the OpenJPEG project [1] has been created to develop and promote a robust open-source solution for JPEG2000. This project is supported by the Université Catholique de Louvain (UCL, Belgium), IntoPIX S.A. (Belgium), CNES (France) and CS-SI (France). This project offers the support of Class 1 and Profile 1 JPEG2000 files defined by the norm and an implementation of the JPIP extension. This JPEG2000 extension describes a client/server protocol to request a part of the image with a quality adapted to the network bandwidth and the computer processing on both ends. HiView project is good example of JPIP client to handle very high resolution data from HiRISE sensor [2].

Last year some works have been done to increase viability of the project through the merge of experimental work into the core of the library. This work has been achieved with the release in November 2012 of the OpenJPEG 2.0.0 thanks to the Orfeo ToolBox team and CNES [3]. The major improvements offered by this release are based on the support of larges files encoding and decoding through the use of tile structure to manipulate codestream data and safe functions to stream large volume of data. A great work of refactoring and cleaning of internal structures and functions have been done. Moreover OpenJPEG supports now a continuous integration through a test suite of 450 tests nightly published on a public dashboard.

The new functionalities offered by this release are very significant for the remote sensing users because now OpenJPEG can deal efficiently with large raster data from Pleiades, SPOT6-7 or Sentinel-2. Neither JasPer nor JJ2000 have this capability. Since the release of this new version, some open source projects have integrated this work: Monteverdi the ORFEO ToolBox GUI and GDAL library in the next version 1.10.
In term of performance, for one thread OpenJPEG is around 1.2 slower than the close source solution (Kakadu 6.3.1 demonstration version) to decode one JPEG2000 Pleiades tile (2048x2048 pixels) or one Pleiades image at the 3rd resolution level. In case of encoding, the comparison is more difficult because encoding options and possible combination are quite large. However with standard options (tiles size = 2048x2048, resolution level = 5, bit rate = 3 and one thread), OpenJPEG is around 1.7 slower than Kakadu. This last test has been done with an extract of 10000x10000 pixels of the Sentinel-2 mockup provided during the Sentinel-2 Symposium in 2012.

These results indicate that OpenJPEG seems to be suitable for remote sensing users. Nevertheless, Kakadu offers natively the multi-treads support which is not supported by OpenJPEG. GDAL with the OpenJPEG driver [4] will offer this functionality in their next release. Moreover in Monteverdi [5], the developers have used this very same strategy combined with a cache monitoring to provide a user's friendly experience with Pleiades data. Some improvements are possible inside OpenJPEG to enhance performance and robustness and we hoped to push them to community as soon as possible. With its new version, OpenJPEG hope to become the new reference software for JPEG2000 format.

[1] http://www.openjpeg.org/
[2] http://hirise.lpl.arizona.edu/hiview/
[3] http://blog.orfeo-toolbox.org/news/jpeg2000-and-pleiades-data-support-in-otb
[4] http://www.gdal.org/frmt_jp2openjpeg.html
[5] http://orfeo-toolbox.org/otb/monteverdi.html