Release Notes#

v0.9.0#

New Features:

  • Added HT encoder support with optimized wavelet transform.

  • New quality settings added:
    • Quantization step.

    • Q-Factor (JPEG like quality).

    • New API (nvjpeg2kEncodeParamsSpecifyQuality) which allows to set it.

  • .jph file format is supported(note that nvJPEG2000 as of this release supports a single cleanup pass for HTJ2K decode).

  • CUDA 13 support.

  • Native support for Blackwell.

  • Fixed encoding error when working on tiny random images.

  • Additional definition for nvjpeg2kBitstreamType as nvjpeg2kBitstreamType_t has been added for consistency with rest of the APIs.

  • Additional definition for nvjpeg2kProgOrder as nvjpeg2kProgOrder_t has been added for consistency with rest of the APIs.

Deprecated Features:

  • nvjpeg2kEncodeParamsSetQuality is deprecated and will be removed in the next release.

  • Support for lossy encode in combination with reversible wavelet transform is deprecated and will be removed in the next release.

  • nvJPEG2000 binaries for CUDA 11 are deprecated and will be removed in the next release.

v0.8.1#

v0.8.0#

  • Tegra/Jetson support added.

  • Python wheels for installing nvJPEG2000 library through pip.

  • Decoder

    • Decoder supports interleaved output format. Can be enabled using nvjpeg2kDecodeParamsSetOutputFormat.

    • New API (nvjpeg2kStreamParseFile) which accepts file name as input has been added.

    • Number of layers that can be decoded increased from 20 to 32.

    • Bitstreams with COC marker can be decoded as long as the parameters are same across all components.

    • Fixed a bug which could cause the decoder to crash when multiple tiles and custom precincts are enabled with RPCL, PCRL, CPRL pogression orders.

  • Encoder

    • Custom precincts are supported. Set num_precincts_init (part of nvjpeg2kEncodeConfig_t)to valid no of precincts in precinct_width, and precinct_height.

    • Encoder accepts images in interleaved format. Can be enabled using nvjpeg2kEncodeParamsSetInputFormat.

  • Support for Centos/RHEL 7 is deprecated and will be dropped in future releases.

  • Breaking Changes

    • The following fields in nvjpeg2kEncodeConfig_t have been renamed -

      • precint_width renamed to precinct_width to fix typo.

      • precint_height renamed to precinct_height to fix typo.

      • enable_custom_precincts renamed to num_precincts_init to better reflect the behavior.

v0.7.5#

  • This release provides important security updates for CVE-2023-31027 and is recommended for all users.

  • Arm sbsa support added.

  • Inverse wavelet transform optimizations. Up to 20% improvement in single image decode throughput observed for RGB HTJ2K bitstreams.

  • Bitstreams with QCC marker can now be decoded.

  • Bitstreams with COM marker in the tile header can now be decoded.

v0.7.0#

  • High throughput JPEG 2000 code streams can now be decoded. All code-blocks have to be HT code-blocks with one HT set and no refinement.

  • CUDA 12 support - Binaries for both CUDA 11 and CUDA 12 are available.

  • Extended allocator support which accepts cuda streams and context information.

  • Memory Padding APIs for both pinned and device memory have been added.

  • Fixed multiple issues which were causing the decoder to hang or crash.

  • Fixed an issue which was causing the encoder to error out when compressing random data.

v0.6.0#

  • Decoder

    • 4k digital cinema profile support.

    • JPEG 2000 bitstreams with predictable termination enabled can be decoded.

    • Hopper(sm90) support is added.

    • Fixed an issue in the quantization information parser. This was causing decode output corruption in some cases.

    • Fixed a horizontal clipping issue seen with nvjpeg2kDecodeImage(), when an area of interest was decoded.

  • Encoder

    • Fixed an issue which was resulting in wrong output when no of components = 4 and mct mode was enabled.

v0.5.0#

  • Decoder

    • JPEG 2000 bitstreams with last partition length set to 0 can be decoded.

    • JPEG 2000 bitstreams with cdef jp2 header can be decoded.

    • Bitstream corruption checks have been relaxed.

  • Encoder

    • Multi-tile encoding.

    • All progression orders are supported.

    • Performance improvements for lossy encoding.

v0.4.0#

  • JPEG2000 encode support added. See Encoder for details.

  • Encode/Decode support added for 420/422 formats with alpha channel (yuva420p).

  • nvJPEG2000 is now available on WSL-Ubuntu.

v0.3.0#

  • Bitstreams with 422 and 420 chroma sub-sampling are supported.

  • RGB output support for images with 420 and 444 chroma sub-sampling.

  • New nvjpeg2kDecodeImage API added.

  • Inverse discrete wavelet transform performance improvements.

v0.2.0#

  • New API added for Tile/Resolution based decode.

  • Tiles can be partially decoded by specifying an area of interest.

  • Tiles with multiple partitions are supported.

  • All progression orders are supported.

  • Bitstreams with up to 20 layers can be decoded.

v0.1.0#

  • nvJPEG2000 is now available on Microsoft Windows 10 and Windows Server 2019.

  • Bitstreams with multiple tiles are now supported. Each tile can have a single tile partition.

  • RLCP progression order is supported.

  • Fixed an intermittent issue which was causing the library to produce incorrect decode output.

v0.0.1#

  • First release of the nvJPEG2000 library.

  • Refer to the NVIDIA nvJPEG2000 section of the documentation for the list of features supported.