v0.9.0
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
structJxlEncoderSetOutputCallback
JxlChunkedFrameInputSource
structJxlEncoderAddChunkedFrame
- encoder API: new options for more fine-grained control over metadata
preservation when usingJxlEncoderAddJPEGFrame
: 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 adistance
given aquality
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 valuesJXL_DEC_EXTENSIONS
,JXL_ENC_NOT_SUPPORTED
,
JXL_TYPE_BOOLEAN
,JXL_TYPE_UINT32
, and deprecated typeJxlEncoderOptions
. - decoder API: the signature of
JxlDecoderGetColorAsEncodedProfile
,
JxlDecoderGetICCProfileSize
, andJxlDecoderGetColorAsICCProfile
changed: a deprecated unused argument was removed.
Changed / clarified
- changed the name of the cjxl flag
photon_noise
tophoton_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.