JP2KAK -- JPEG-2000 (based on Kakadu)
Most forms of JPEG2000 JP2 and JPC compressed images (ISO/IEC 15444-1) can be
read with GDAL using a driver based on the Kakadu library. As well, new images
can be written. Existing images cannot be updated in place.
The JPEG2000 file format supports lossy and lossless compression of 8bit and
16bit images with 1 or more bands (components). Via the
GeoJP2 (tm)
mechanism, GeoTIFF style coordinate system and georeferencing information can
be embedded within the JP2 file. JPEG2000 files use a substantially different
format and compression mechanism than the traditional JPEG compression and JPEG
JFIF format. They are distinct compression mechanisms produced by the same
group. JPEG2000 is based on wavelet compression.
The JPEG2000 driver documented on this page (the JP2KAK driver) is implemented
on top of the commercial Kakadu library.
This is a high quality and high performance JPEG2000 library in wide used in
the geospatial and general imaging community. However, it is not free, and so
normally builds of GDAL from source will not include support for this driver
unless the builder purchases a license for the library and configures
accordingly. GDAL includes another JPEG2000 driver
based on the free JasPer library.
When reading images this driver will represent the bands as being Byte (8bit
unsigned), 16 bit signed or 16 bit unsigned. Georeferencing and coordinate
system information will be available if the file is a GeoJP2 (tm) file. Files
color encoded in YCbCr color space will be automatically translated to RGB.
Paletted images are also supported.
Creation Issues
JPEG2000 files can only be created using the CreateCopy mechanism to copy from
an existing dataset.
JPEG2000 overviews are maintained as part of the mathematical description of
the image. Overviews cannot be built as a separate process, but on read the
image will generally be represented as having overview levels at various power
of two factors.
Creation Options:
-
QUALITY=n: Set the compressed size ratio as a percentage of the size of
the uncompressed image. The default is 20 indicating that the resulting image
should be 20% of the size of the uncompressed image. A value of 100 will result
in use of the lossless compression algorithm . Actual final image size may not
exactly match that requested depending on various factors.
-
BLOCKXSIZE=n: Set the tile width to use. Defaults to 20000.
-
BLOCKYSIZE=n: Set the tile height to use. Defaults to image height.
-
GMLJP2=YES/NO: Indicates whether a GML box conforming to the OGC GML in
JPEG2000 specification should be included in the file. Defaults to YES.
-
GeoJP2=YES/NO: Indicates whether a GML box conforming to the GeoJP2
(GeoTIFF in JPEG2000) specification should be included in the file. Defaults to
YES.
-
LAYERS=n: Control the number of layers produced. These are sort of like
resolution layers, but not exactly. The default value is 12 and this works well
in most situations.
-
ROI=xoff,yoff,xsize,ysize: Selects a region to be a region of interest
to process with higher data quality. The various "R" flags below may be used to
control the amount better. For example the settings "ROI=0,0,100,100",
"Rweight=7" would encode the top left 100x100 area of the image with
considerable higher quality compared to the rest of the image.
-
COMSEG=YES/NO: Indicates wheter a comment segment should
be emitted during the flushing of the written codestream. Defaults to YES.
-
FLUSH=YES/NO: Indicates wheter multiple flush
operations should be enabled during tiles writing. Defaults to YES.
The following creation options are tightly tied to the Kakadu library, and are
considered to be for advanced use only. Consult Kakadu documentation to better
understand their meaning.
-
Corder: Defaults to "PRCL".
-
Cprecincts: Defaults to
"{512,512},{256,512},{128,512},{64,512},{32,512},{16,512},{8,512},{4,512},{2,512}".
-
ORGgen_plt: Defaults to "yes".
-
ORGgen_tlm: Kakadu library default used.
-
ORGtparts: Kakadu library default used.
-
Cmodes: Kakadu library default used.
-
Clevels: Kakadu library default used.
-
Cblk: Kakadu library default used.
-
Rshift: Kakadu library default used.
-
Rlevels: Kakadu library default used.
-
Rweight: Kakadu library default used.
-
Qguard: Kakadu library default used.
See Also: