# JP2ECW -- ERMapper JPEG2000 (.jp2)

GDAL supports reading and writing JPEG2000 files using the ECW SDK from ERMapper.

Coordinate system and georeferencing transformations are read, and some degree of support is included for GeoJP2 (tm) (GeoTIFF-in-JPEG2000), ERMapper GML-in-JPEG2000, and the new GML-in-JPEG2000 specification developed at OGC.

Support for the JP2ECW driver in GDAL is optional, and requires linking in external ECW SDK libraries provided by ERMapper.

By default the ECW SDK will use up to one quarter of physical RAM for internal caching and work memory during decoding. This is normally fine, but the amount of memory to use can be adjusted by setting the GDAL_ECW_CACHE_MAXMEM configuration variable with an amount of memory in bytes. Config variables can be set in the environment or using the --config commandline switch.

## Creation Issues

The free ECW compression kit only supports compression of images up to 500MB. To compress very large images it is necessary to license ECW technology from ERMapper. Creation of 8 bit, and 16bit signed or unsigned values is supported.

Creation Options:

- TARGET=percent: Set the target size reduction as a percentage of the original. If not provided defaults to 75 for an 75% reduction. TARGET=0 uses lossless compression.

- PROJ=name: Name of the ERMapper projection string to use. Common examples are NUTM11, or GEODETIC.

- DATUM=name: Name of the ERMapper datum string to use. Common examples are WGS84 or NAD83.

- LARGE_OK=YES/NO: Under some circumstances this option can be set to allow compressing files larger than 500MB. It is the users responsibility to ensure that ERMapper licensing requirments for large file compression are being adhered to.

- 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.

- PROFILE=profile: One of BASELINE_0, BASELINE_1, BASELINE_2, NPJE or EPJE. Review the ECW SDK documentation for details on profile meanings.

- PROGRESSION=LRCP/RLCP/RPCL: Set the progression order with which the JPEG2000 codestream is written.

- CODESTREAM_ONLY=YES/NO: If set to YES, only the compressed imagery code stream will be written. If NO (the default) a JP2 package will be written around the code stream including a variety of meta information.

- LEVELS=n: See ECW SDK for details.

- LAYERS=n: See ECW SDK for details.

- PRECINCT_WIDTH=n: See ECW SDK for details.

- PRECINCT_HEIGHT=n: See ECW SDK for details.

- TILE_WIDTH=n: See ECW SDK for details.

- TILE_HEIGHT=n: See ECW SDK for details.

- INCLUDE_SOP=YES/NO: See ECW SDK for details.

- INCLUDE_EPH=YES/NO: See ECW SDK for details.

- DECOMPRESS_LAYERS=n: See ECW SDK for details.

- DECOMPRESS_RECONSTRUCTION_PARAMETER=n: See ECW SDK for details.

JPEG2000 format does not support creation of overviews since the format is already considered to be optimized for "arbitrary overviews".

See Also:

- Implemented as `gdal/frmts/ecw/ecwdataset.cpp`.

- ECW Page at www.ermapper.com.