Knowledge Base



GeoExpress - FAQ - Frequently Asked Questions

F070602 - How do I encode extremely large JPEG 2000 images?

GeoExpress 6.1.4 introduced two new profiles, “Large Image” and “Large Image w/o TLMs” and a related functionality called “tile parts”. These additions, which were not originally documented, enabled the encoding of extremely large JPEG 2000 images in such a way that they could be decoded more quickly depending on their intended use.

NOTE: The “Large Image w/o TLMs” profile became the default in version 7 of GeoExpress, so if you’re using GeoExpress 7 or later this is a non-issue, unless your workflow changes with regard to tile length markers (TLMs).

Details

If you’re using GeoExpress 6.1.4 or wish to switch between the two large image profiles, follow the instructions below.

The “Large Image” profile should be used to encode JPEG 2000 files having an input or “nominal” size larger than about 1.5 GB. The ”Large Image w/o TLMs” profile is identical except that it omits tile length markers for decoders that do not support that part of the JPEG 2000 specification.

The Tile Parts parameter has three options, as noted below. The appropriate tile parts options are automatically selected by the JPEG 2000 encoding profiles. They can also be set manually.

Tile Parts Options:

  • Resolution (R) = Groups data inside of the tile parts by resolution level. This option results in the fastest decodes at the icon level.
  • Quality Layer (L) = Groups data inside of the tile parts by quality layer. This options results in the fastest decodes of images at lower resolution levels.
  • Component (C) = Groups data inside of the tile parts by component. This options decodes only one band at a time.

NOTE: Most decoders do not currently support decoding low-quality versions or one component at a time. Using Quality Layer (L) and Component (C) at this time will not positively affect decode speeds.

When one of the Large Image profiles is selected, tile parts are automatically used and set to group data by resolution level.

Encoding extremely large JPEG 2000 images using the GUI version:

  1. With JPEG 2000 selected as the output format, click More Encode Options.
  2. Select the Advanced tab.
  3. Click Select a Profile. The Profile Manager dialog box appears.
  4. Select Large Image or Large Image w/o TLMs from the drop-down menu and click OK twice to exit dialogs.

If you are not using one of these profiles, set the tile size to between 4096 and 16,384 on the Advanced Settings tab and set the Tile Parts parameter to Resolution using the Group By: options. Note: The tile width must be equal to or less than the width of the image and the tile height must be equal to or less than the height of the image.

Encoding extremely large JPEG 2000 images using the command line version:

  • Use the -profile switch with the value “large”. Note: this profile uses TLMs.
  • Alternatively, use the -tileparts switch in conjunction with the -tilelengthmarkers switch (which enables you to disable tile length markers) and the -tilesize switch. Valid values for the -tileparts switch are N, R, L and C, which correspond to ”none”, “resolution”, “quality layer”, and “component”. Note: whether or not particular options are available depends on other settings such as progression order (-porder).

Following is an example of usage:

mrsidgeoencoder -useserver sea-sv-glento -i 200_aa25_24b.tif -o novatofull.jp2 -tilesize 4096 4096 -tileparts R -tilelengthmarkers 255 -qualitylayers 30 -flush 4096 -porder RPCL -s 8

 

This article was last updated or verified on 9 October 2012.