PDS_JP2: PDS JPEG2000 File Format Conversion

The PDS_JP2 software package contains applications and a library of reusable C++ classes for the conversion between PDS uncompressed image data files with an attached metadata label and a compressed JP2 image data file with a detached PDS metadata label file.

File Formats

The Planetary Data System (PDS) is the respository for data sets generated by NASA planetary science projects. To ensure that the data is broadly accessible the PDS specifies the formats of the data stored in the repository and made available to the public.

PDS flat image files:

For image data, such as that returned by spacecraft sent to other planets, the conventional format has been a text label describing the binary image data. Usually these are contained in a single file, and the binary data is typically uncompressed image pixel values. This form of generic image data file provides the most widely accessible format. Advances in imaging technology have now resulted in spacecraft instruments producing very large images. For example, the HiRISE Project can produce images that are 80,000 x 150,000 pixels of multiple bands; and future projects can be expected to produce even larger images. These data sets are very unweildy to manage, distribute and view.

PDS/JP2 image files:

To help cope with the challenges of large image files the HiRISE Project worked with the PDS on a new file format specification based on the JPEG2000 standard. With this format the text label describing the image is stored by itself in a file that refers to another file that contains the image data stored in standard JPEG2000 Part 1 (JP2) format. JP2 is a self-describing file format that includes a JPEG2000 codestream that is a highly compressed form of the image data. The PDS specification requires that the codestream be losslessly encoded so all of the original science information is retained. Any area of the image can be selectively decompressed from the JP2 file without having to decompress the entire file. In addition, the image data can be selectively decompressed to various resolution levels enabling easily viewable displays of all, or any part, of the the image to be rendered from a single JP2 codestream. The JPEG2000 standard also provides a new internet protocol (JPIP) for the efficient transmission of JP2 files over the network between a JPIP server and client.

Programs

Any software that complies with the JPEG2000 standard can encode and decode JP2 files. Managing the text label according to the PDS standards adds additional requirements. The HiRISE Project implemented software that correctly manages the label portion of the data set while also managing the JP2 portion.

PDS_to_JP2:

The PDS_to_JP2 application is used to convert conventional PDS flat image files to PDS/JP2 formatted files. A label manager is automatically selected to handle product specific conversion requirements with a generic conversion manager as the fallback. The JP2 file is generated with control of all configurable aspects of loss-less JPEG2000 compression and metadata content in the generated JP2 file, with reasonable defaults for all specifications. By default a data provider signature is embedded in the JP2 file along with a reference to the external label file. In addition geospatial reference information may be embedded in the JP2 file in the form of a GeoTIFF box that is recognized by many geographical information systems (GIS) software applications. PDS_to_JP2 is the program that is used at the HiRISE Operations Center in its automated data production pipelines to generated PDS/JP2 files of RDR data products distributed to the public.

JP2_to_PDS:

The JP2_to_PDS application is used to convert PDS/JP2 formatted files to conventional PDS flat image files. Like PDS_to_JP2, an appropriate label manager is automatically selected to handle the the label conversion. By default the all of the image data is decompressed at full resolution, but any image area may be selected for decompression at any resolution level provided by the JP2 file. The image description in the label is kept consistent with however the image data is rendered. Selective image rendering is particularly useful when only a particular region or low resolution presentation rendering is of interest or when working with the entire uncompressed image would be difficult or, for some computer systems, impossible. The raw image data is suitable for importing into various image analysis applications.

For those interested in examining the contents of a JP2 file in detail the PIRL Java Packages offers JP2_Info in its Image_Tools package.

Class Library

The PDS_JP2 software package includes a library of C++ classes on which the application programs are built. These classes include PDS label management and image data JP2 file encoding and decoding management. The library may be used to build new applications and/or extended to provide additional capabilities. The label managers employ the idaeim PVL library. The JP2 encoders and decoders employ the Kakadu Software library.

Documentation

Documentation for the application programs and class library API is included in the software package distribution. A description of the source code installation process is provided in the INSTALL-source file included in the source code distribution. A description of the binary files installation process is provided in the INSTALL-binary file included in the binary distribution.

Software Download

The PDS_JP2 software is distributed as pre-built binary packages for several platforms and as a source code package. The binary package filename will indicate on what kind of system the binaries were built. The format of the filename is:

PDS_JP2-<version>_<OS>_<arch>.tar.gz

where <version> is the version number of the PDS_JP2 distribution and <OS> and <arch> are the operating system and hardware architecture used to build the distribution. The source code package filename follows the same pattern, but without the _<OS>_<arch> portion.

See the installation documentation for details on installing the software at your site.

Credits:

This software was developed at -

for the purposes of managing observation data sets produced by -

Copyrights:

This software is copyright © 2006-2008 Arizona Board of Regents on behalf of the Planetary Image Research Laboratory, Lunar and Planetary Laboratory at the University of Arizona.

This software is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License with this software; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA.


The Kakadu Software libraries are included in the binary applications distribution for use with the PDS_JP2 applications only. They are Copyright (C) Dr. David Taubman, all rights reserved, and licensed by NewSouth Innovations Pty Limited ACN 000 263 025 ("NSi"). Please visit the Kakadu Software web site for further information.


Bradford Castalia  
Principal Systems Analyst Castalia@Arizona.edu
Planetary Image Research Laboratory 520-621-2197
Department of Planetary Sciences 1541 E. University Blvd.
University of Arizona Tucson, Arizona 85721-0063

"Build an image in your mind, fit yourself into it."