JPEG 2000 is a wavelet-based image compression standard that defines both a code-stream (J2K) and file formats (JP2 and JPX). It uses a hierarchical format to store several resolutions of the image in the same file without duplication. Therefore, a JPEG 2000 compressed image can be sent to a device in the resolution that best fits, without additional storage overhead. The standardized filename extensions are .jp2 (JPEG 2000 Part 1, conforming to standard ISO/IEC 15444-1) and .jpx (JPEG 2000 Part 2, conforming to standard ISO/IEC 15444-2).
The LEADTOOLS JPEG 2000 features provide support for loading and saving JPEG 2000 file formats (JP2 and JPX). JPEG 2000 file formats provide greater flexibility and better image quality, especially at higher compression, than standard JPEG.
Image Storage and Image Archive Development
LEADTOOLS JPEG2000 robust features fulfill the demanding requirements of image storage and image archival application development.
In the past, image archives had to store the same image in various sizes and metadata several times to ensure there was an image appropriate to meet future on-demand needs. This required additional storage and organizational overhead.
LEADTOOLS JPEG2000 solves this problem by supporting multiple codestreams per file. It can also store massive amounts of metadata by storing stand complaint XML data. Additionally, a higher resolution codestream can be easily loaded at lower resolutions, making JPEG 2000 ideal for meeting the on-demand needs of image retrieval.
Further, JPEG2000 images can be digitally signed, ensuring that the image and metadata retrieved from the image repository is in its original form and has not been modified. Digital security is often a requirement in today’s mission-critical imaging applications.
J2K Features
J2K flexibility includes the ability to control:
- whether or not to transform RGB images to YUV prior to compression
- the type of quantization to use when determining the quantization step size
- the amount of compression
- the size and location of tiles
- the number of resolution levels in the file
- the progression order
- the code block height and width
- whether to use markers to help detect corruption during transmission
LEADTOOLS provides the CodecsJpeg2000LoadOptions and CodecsJpeg2000SaveOptions classes for controlling the JPEG 2000 features listed above. To determine or change the current settings for the JPEG 2000 features, use the Jpeg2000 property.
To load JPEG 2000 images progressively, set the Passes property, just as you would for regular JPEG files.
To get the default settings for the JPEG 2000 features, use the CodecsLoadOptions.Reset and CodecsSaveOptions.Reset methods.
LEADTOOLS provides the DicomDataSet.Jpeg2000Options property for controlling the JPEG 2000 features listed above.
To get the default settings for the JPEG2000 features, use the DicomDataSet.DefaultJpeg2000Options property.
JPX (JPEG 2000 Part 2) Features
The JPX (JPEG 2000 Part 2) file format is especially useful for document, medical, and satellite imagery archiving systems . All LEADTOOLS Imaging Pro, Document Imaging, and Medical Imaging toolkits can read /write JPEG 2000 file formats (JP2 and JPX). LEADTOOLS Document and Medical Imaging toolkits also add support for manipulating JPX boxes, frames, GML Data, and other advanced JPX features. JPX support enables you to:
- maintain full control of codestreams, frames, and metadata
- append and extract all standard metadata boxes, such as XML, digital signature, and intelletual property
- append and extract additional images (frames)
- save lists of bitmaps, such as 3D volumetric encoded slices
- include support for 24 bit RGB and 8, 12-16 bit grayscale* code streams
- add opacity channels
- read and write GML data
- control precinct size (makes JPIP applications more efficient)
- support fragmentation, providing the following benefits:
- edit an image, resaving the changed tiles to the end of the file
- distribute images across several disks for faster access
- distribute the image across the Internet, allowing only certain users access to the high quality or high resolution portions of the codestream
- reuse headers from within a codestream across multiple codestreams (to minimize file overhead when storing similar codestreams within the same JPX file).
Related topics: