Libjxl Versions Save

JPEG XL image format reference implementation

v0.10.2

2 months ago

Fixed

  • bugs in (lossless) encoding (#3367, #3359 and #3386)
  • re-enable installation of MIME file (#3375)
  • bugs in streaming mode (#3379 and #3380)

Note: This release is for evaluation purposes and may contain bugs, including security bugs, that may not be individually documented when fixed. See the SECURITY.md file for details. Always prefer to use the latest release.

Please provide feedback and report bugs here.

v0.10.1

2 months ago

Fixed

  • reduce allocations (#3336 and #3339), fixing a significant speed regression present since 0.9.0
  • bug in streaming encoding (#3331)

Note: This release is for evaluation purposes and may contain bugs, including security bugs, that may not be individually documented when fixed. See the SECURITY.md file for details. Always prefer to use the latest release.

Please provide feedback and report bugs here.

v0.10.0

2 months ago

Added

  • decoder API: added JxlDecoderGetBoxSizeContents for getting the size of the content of a box without the headers.
  • encoder API: implemented new api functions for streaming encoding.

Changed / clarified

  • decoder/encoder API: return failure when surface allocation fail.

Note: This release is for evaluation purposes and may contain bugs, including security bugs, that may not be individually documented when fixed. See the SECURITY.md file for details. Always prefer to use the latest release.

Please provide feedback and report bugs here.

v0.9.2

3 months ago

Fixed

  • bugs in the gdk-pixbuf plugin
  • some build issues

Note: This release is for evaluation purposes and may contain bugs, including security bugs, that may not be individually documented when fixed. See the SECURITY.md file for details. Always prefer to use the latest release.

Please provide feedback and report bugs here.

v0.9.1

4 months ago

Fixed

  • multiple build issues

Note: This release is for evaluation purposes and may contain bugs, including security bugs, that may not be individually documented when fixed. See the SECURITY.md file for details. Always prefer to use the latest release.

Please provide feedback and report bugs here.

v0.9.0

4 months ago

Added

  • encoder API: add JxlEncoderSetExtraChannelDistance to adjust the quality of extra channels (like alpha) separately.
  • encoder API: new api functions for streaming encoding:
  • JxlEncoderSetOutputProcessor
  • JxlEncoderFlushInput
  • JxlEncoderOutputProcessor struct
  • JxlEncoderSetOutputCallback
  • JxlChunkedFrameInputSource struct
  • JxlEncoderAddChunkedFrame
  • encoder API: new options for more fine-grained control over metadata preservation when using JxlEncoderAddJPEGFrame:
  • JXL_ENC_FRAME_SETTING_JPEG_KEEP_EXIF
  • JXL_ENC_FRAME_SETTING_JPEG_KEEP_XMP
  • JXL_ENC_FRAME_SETTING_JPEG_KEEP_JUMBF
  • encoder API: new function JxlEncoderSetUpsamplingMode to change the upsampling method, e.g. to use nearest-neighbor upsampling for pixel art
  • decoder API: implemented JxlDecoderSetOutputColorProfile and JxlDecoderSetCms to enable decoding to desired colorspace.
  • cjxl can now be used to explicitly add/update/strip Exif/XMP/JUMBF metadata using the decoder-hints syntax, e.g. cjxl input.ppm -x exif=input.exif output.jxl
  • djxl can now be used to extract Exif/XMP/JUMBF metadata
  • encoder API: new function JxlEncoderDistanceFromQuality for convenience to calculate a distance given a quality

Removed

  • API: the Butteraugli API (jxl/butteraugli.h) was removed.
  • encoder and decoder API: all deprecated functions were removed: JxlDecoderDefaultPixelFormat, JxlEncoderOptionsSetLossless, JxlEncoderOptionsSetEffort, JxlEncoderOptionsSetDecodingSpeed, JxlEncoderOptionsSetDistance, JxlEncoderOptionsCreate, as well as the deprecated enumerator values JXL_DEC_EXTENSIONS, JXL_ENC_NOT_SUPPORTED, JXL_TYPE_BOOLEAN, JXL_TYPE_UINT32, and deprecated type JxlEncoderOptions.
  • decoder API: the signature of JxlDecoderGetColorAsEncodedProfile, JxlDecoderGetICCProfileSize, and JxlDecoderGetColorAsICCProfile changed: a deprecated unused argument was removed.

Changed / clarified

  • changed the name of the cjxl flag photon_noise to photon_noise_iso
  • fixed how large boxes are decoded (#2958)
  • fixed encoding files with unreadable patches (#3042, #3046)

Note: This release is for evaluation purposes and may contain bugs, including security bugs, that may not be individually documented when fixed. See the SECURITY.md file for details. Always prefer to use the latest release.

Please provide feedback and report bugs here.

v0.8.2

11 months ago

Changed

  • Security: Fix an integer underflow bug in patch decoding (#2551- CVE-2023-35790).

Note: This release is for evaluation purposes and may contain bugs, including security bugs, that may not be individually documented when fixed. See the SECURITY.md file for details. Always prefer to use the latest release.

Please provide feedback and report bugs here.

v0.8.1

1 year ago

Changed

  • Allow fast-lossless for 16-bit float input (#2093)
  • Fix bug in palette (#2120)
  • Security: Fix OOB read in exif.h (#2101 - CVE-2023-0645)

Note: This release is for evaluation purposes and may contain bugs, including security bugs, that may not be individually documented when fixed. See the SECURITY.md file for details. Always prefer to use the latest release.

Please provide feedback and report bugs here.

v0.8.0

1 year ago

Added

  • decoder API: new function JxlDecoderSetImageBitDepth to set the bit depth of the output buffer.
  • decoder API proposal: add JxlDecoderSetOutputColorProfile and JxlDecoderSetCms to enable decoding to desired colorspace; NB: not implemented yet.
  • encoder API: new function JxlEncoderSetFrameBitDepth to set the bit depth of the input buffer.
  • encoder API: add an effort 10 option for lossless compression; using this setting requires calling JxlEncoderAllowExpertOptions.
  • encoder API: new JXL_ENC_FRAME_SETTING_JPEG_COMPRESS_BOXES enum value to allow explicit control of metadata compression

Removed

  • common API: removed JxlIntrinsicSizeHeader
  • decoder API: removed deprecated JXL_DEC_NEED_DC_OUT_BUFFER and JXL_DEC_DC_IMAGE events, JxlDecoderDCOutBufferSize and JxlDecoderSetDCOutBuffer functions

Changed / clarified

  • encoder API: JxlEncoderProcessOutput requires at least 32 bytes of output space to proceed and guarantees that at least one byte will be written

Note: This release is for evaluation purposes and may contain bugs, including security bugs, that may not be individually documented when fixed. See the SECURITY.md file for details. Always prefer to use the latest release.

Please provide feedback and report bugs here.

v0.8.0rc1

1 year ago

THIS IS A RELEASE CANDIDATE. We expect to have v0.8.0 very soon.

Added

  • decoder API: new function JxlDecoderSetImageBitDepth to set the bit depth of the output buffer.
  • decoder API proposal: add JxlDecoderSetOutputColorProfile and JxlDecoderSetCms to enable decoding to desired colorspace; NB: not implemented yet.
  • encoder API: new function JxlEncoderSetFrameBitDepth to set the bit depth of the input buffer.
  • encoder API: add an effort 10 option for lossless compression; using this setting requires calling JxlEncoderAllowExpertOptions.
  • encoder API: new JXL_ENC_FRAME_SETTING_JPEG_COMPRESS_BOXES enum value to allow explicit control of metadata compression

Removed

  • common API: removed JxlIntrinsicSizeHeader
  • decoder API: removed deprecated JXL_DEC_NEED_DC_OUT_BUFFER and JXL_DEC_DC_IMAGE events, JxlDecoderDCOutBufferSize and JxlDecoderSetDCOutBuffer functions

Changed / clarified

  • encoder API: JxlEncoderProcessOutput requires at least 32 bytes of output space to proceed and guarantees that at least one byte will be written

Note: This release is for evaluation purposes and may contain bugs, including security bugs, that may not be individually documented when fixed. See the SECURITY.md file for details. Always prefer to use the latest release.

Please provide feedback and report bugs here.