Date:    Tue, 17 Jan 1995 10:49:13 -0800 (PST)
From: PDS_OPERATOR@JPLPDS.JPL.NASA.GOV
Subject: RE: PDS specification

Overview of PDS Image Format
M. D. Martin, PDS Project Engineer

The PDS (originally Planetary Data System, now Portable Data Specification)
format is actually more of a labelling architecture than a specific image
storage format.  It supports the description of many kinds of data objects
(table, series, multispectral cube, etc.).  It is intended to provide a
computer readable AND human readable description of the contents and format
of a file in simple keyword=value format.

Many varieties of images can be described with the PDS label.  The key
parameters are given in the examples, Table 1 and 2.  The ASCII labels can be
attached at the beginning of the data file or detached in a separate file
with a pointer to the image file.

TABLE 1.  Example of an attached label.

PDS_VERSION_ID = PDS2
RECORD_FORMAT  = FIXED_LENGTH
RECORD_BYTES   = 512
RECORDS        = 514
^IMAGE         = 3 /* indicating that the image starts */
                   /* at record 3 */
OBJECT         = IMAGE
 LINES          = 512
 LINE_SAMPLES   = 512
 SAMPLE_BYTES   = 8
 SAMPLE_TYPE    = UNSIGNED_INTEGER
END_OBJECT     = IMAGE
END
/* blank PADDING out to 1024 bytes */
at byte 1025 the first line of the image begins.


TABLE 2.  Example of detached label.

PDS_VERSION_ID = PDS2
RECORD_FORMAT  = FIXED_LENGTH
RECORD_BYTES   = 512
RECORDS        = 512
^IMAGE         = "image.dat" /* indicating that the image */
                             /* is contained in the file  */
                             /* image.dat */
OBJECT         = IMAGE
 LINES          = 512
 LINE_SAMPLES   = 512
 SAMPLE_BYTES   = 8
 SAMPLE_TYPE    = UNSIGNED_INTEGER
END_OBJECT     = IMAGE
END
/* blank PADDING out to 1024 bytes */
at byte 1025 the first line of the image begins.

Compression.

Most images from planetary missions are gray scale 8-bit images and take on a
narrow range of values in any given file.  A simple compression algorithm can
achieve 3 or 4 to 1 compression ratio.  The PDS chose to use a
Huffman-First-Difference compression algorithm on all its Viking and Voyager
Imaging CD-ROMs.  This algorithm first goes through each line and computes
the pixel differences for each pixel.
This leaves most of the pixels in a line with values near zero, since nearby
pixels tend to have similar values.  A constant is added to eliminate
negative values.  After this step is performed on all lines the entire image
is encoded using Huffman coding.  The resulting encoding histogram is stored
in the file with the image, which means there is a fixed overhead of about 2
kilobytes for this type of compression.

Recommendations.

Further information about the PDS format can be found on-line at
http://stardust.jpl.nasa.gov in the PDS standards documents and PDS data
dictionary and PDS label toolbox.  The PDS toolbox is also available via
an anonymous ftp account on starhawk.jpl.nasa.gov

Users who are looking for an alternative format to Compuserve GIF for general
purpose image storage and distribution are advised to use TIFF format not the
PDS format. The PDS image specification does not include many of the
parameters which are common to images used in desktop publishing.



