JPIP (JPEG 2000 Interactive Protocol)

Compressing Images for Efficient JPIP Streaming

The JPEG 2000 Interactive Protocol (JPIP) is used to stream JPEG 2000 files. The DICOM Supplement 106 requires that JPIP be used as the transfer syntax when streaming medical images. Not only can JPIP stream large files, but it can also be used to request only a portion of an image.

To save JPIP browse-efficient JPEG2000 files, use the default J2K options.

The following notes are helpful if non-default settings need to be used:

  1. Try to use precincts rather than tiles. (Precincts are like tiles but they are in compressed/wavelet domain). Unlike tiles, they produce better compression and no artifacts.

  2. Use any precinct options other than CodecsJpeg2000PrecinctSize.Full. It is preferable to use one of the following precinct options:

    The larger the precinct size, the less efficient it is. However, using very small precinct sizes (particularly " CodecsJpeg2000PrecinctSize.Uniform64"), will cause some initial delay on the server side.

  3. To disable image tiling, make sure that ReferenceTileWidth and ReferenceTileHeight are equal or greater than the image width and height, respectively.

  4. It is best to use one of the following progression orders:

  5. The number of resolutions should be 5 or more, depending on the dimensions of the image. MaximumDecompressionLevels = 5


To save or convert to J2K files with large dimensions (above 5000 lines), use the J2kLargeImageSave demo. The J2kLargeImageSave demo will save large images without excessive memory, disk, or CPU usage. Unlike other demos which load the entire image/bitmap to memory in one operation and in a subsequent operation save it, the J2kLargeImageSave demo loads and saves an image one line at time.

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Imaging, Medical, and Document