Re: [BLFS Trac] #23547: libjxl-0.12.0

BLFS Trac ([email protected] via blfs-book Mailing List) <[email protected]>
Newsgroups gmane.linux.lfs.beyond.book
Message-ID <[email protected]>
#23547: libjxl-0.12.0
-------------------------+-------------------------------
 Reporter:  Bruce Dubbs  |       Owner:  SecurityAdvisory
     Type:  enhancement  |      Status:  new
 Priority:  elevated     |   Milestone:  98-Security
Component:  BOOK         |     Version:  git
 Severity:  normal       |  Resolution:
 Keywords:               |
-------------------------+-------------------------------
Changes (by Joe Locash):

 * milestone:  13.1 => 98-Security
 * owner:  Joe Locash => SecurityAdvisory
 * priority:  normal => elevated
 * status:  assigned => new

Comment:

 {{{
 ## [0.12.0] - 2026-07-01

 ### Added

 - A new buffering flag is now available in the CLI, alongside support for
   streaming input with buffered output. (#4634)
 - Introduced the new `jxltran` tool, which supports extracting codestreams
 from
   `jxlp` boxes and packing raw codestreams into `jxlc` boxes. (#4161,
 #4165,
   #4168, #4196)
 - Added the `--reconstruct_jpeg` flag to `djxl` to losslessly reconstruct
 a
   JPEG and fail if impossible (mutually exclusive with `--pixels_to_jpeg`
 and
   `--jpeg_quality`). (#4498)
 - Added `JXL_DEC_UNSUPPORTED` (`kUnsupported`) status code to the core API
 to
   better indicate when requested features or operations are not supported
 by
   the decoder. (#4390)
 - tools: added support for `ProPhoto` (#4824) and `Adobe98` / `AdobeRGB`
   (#4199) color space names in CLI arguments (`cjxl` / `djxl`).
 - decoder API: support for out-of-order `jxlp` boxes (ftyp minor version
 1).
   (#4741)
 - encoder API: `JXL_ENC_FRAME_SETTING_OUTPUT_MODE` frame setting to
 control how
   the codestream is written to the output. Mode 0 (default) buffers the
 output
   internally and produces a normally ordered, progressively decodable
   codestream. Mode 1 uses seek-based streaming (reduces peak memory for
 large
   images, requires a seekable output stream). Mode 2 uses out-of-order
 `jxlp`
   boxes (reduces peak memory without requiring seeking, but requires a
 decoder
   that supports ftyp minor version 1). (#4745)

 ### Changed

 - Major overhaul for faster decoding and progressive lossless. (#4201,
 #4641,
   #4811)
   - Progressive lossless images are around 30-40% smaller and are now
     multithreaded increasing encoding performance by 2-5x.
   - Lossless images with faster decoding are now 30-80% smaller and their
     decoding speeds properly scale as the faster decoding level increases
     from 1-4.
   - Disabled global palette for progressive images, fixing glitchy
 progressive
     loading for indexed/low color images and restoring transparency
 support
     (Note: this causes a density/speed penalty for very low bit-depth
 images).
 - Numerous speed/memory usage improvements.
   - Improved encoding speeds by SIMDifying `EstimateCost` (+5%
 performance) and
     speeding up uint-coding trials. (#4322, #4330)
   - Accelerated modular encoding and decoding via SIMD optimizations for
     forward RCT transforms and upsampling (up to 4x faster). (#4332,
 #4384)
   - Massive overhaul to histogram encoding and decoding, providing
 significant
     performance optimizations for modular mode. (#4123, #4132, #4136,
 #4185)
   - Tweaked JPEG recompression logic to improve density and efficiency.
 (#4202)
   - Fixed performance regressions in fast lossless modes and optimized
     text-like patch detection. (#4341, #4448)
   - Refined x86 `XCR0` CPU checks to prevent issues on specific hardware.
     (#4449)
   - Migrated Windows release builds to use `clang-cl`, which improves
     performance across the board. (#4529)
   - Improved use of SIMD in tree construction hot loop. (#4720)
   - Improved spline caching. (#4857)
   - Postponed JPEG coeffs allocation until first SOS. (#4863)
 - The default buffering level in the CLI has been changed to `2`, greatly
   improving encoding performance for images under 2048x2048. Additionally,
   output is buffered by default to allow basic progressive loading.
 (#4635,
   #4637, #4642)
 - Better Density/Speed tradeoff for lossless effort levels. (#4236)
 - Improved visual quality of gradients by using channel-offset blue noise
   dithering instead of bayer when decoding to lower bitdepths. (#4305,
 #4559)
 - Lossy modular encoding quality/density improvements. (#3575)
 - `local_tone_map` tool: Now produces SDR output in the `DisplayP3` color
 space
   rather than `Rec2020`. Also added an optional third command-line
 argument to
   dump the HDR image as a raw `rgba1010102` file for use with the
 `libultrahdr`
   example app. (#4210)
 - Significant improvements to EXR input/output handling for cjxl. Now
 supports
   reading float32, multilayer, per-channel bitdepth, and writing greyscale
   EXR images. (#4312, #4460)
 - The decoder API for `JxlDecoderSetImageOutBuffer` and
   `JxlDecoderSetPreviewOutBuffer` has been clarified; their timeframes are
 now
   non-intersecting, preventing accidental buffer overwrites. (#4671)
 - Layered JXL files are no longer coalesced when re-encoding with cjxl,
 and
   can now be decoded to separate PNG/PAM files with djxl by using
   `--no_coalescing`. (#4299)
 - The progressive flag `-p` in cjxl will now encode a more progressive
 image.
   (#4258, #4699)
 - When lossy encoding, resampling 2 is now enabled at distance 10, and is
 up to
   10x faster below effort 10 by using a faster downsampling method.
 (#4147)
 - Faster PNG compression. (#3819)
 - decoder API: documented that at most one preview image exists in a
   codestream.
   (#4671)
 - encoder API: corrected documentation for box size header in
   `JxlEncoderAddBox` (0 means box extends to end of file, 1 means 64-bit
 size
   follows). (#4081)
 - Performance & memory: tracked memory for temporary box/codestream
 storage
   (#4852) and reduced allocation overhead in `ValidateTree` (#4851) and
 low
   memory rendering pipeline. (#4495, #4496)
 - Quality: improved HDR behavior at effort 8+. (#3885)
 - tools: `jxlinfo` rewritten in C++ with human-friendly output formatting.
   (#4300)
 - tools: image viewers now perform CMS color transforms in parallel across
   threads. (#4326)

 ### Deprecated

 - encoder API: `JXL_ENC_FRAME_SETTING_BUFFERING` mode 3 is deprecated;
 output
   buffering should now be controlled via
 `JXL_ENC_FRAME_SETTING_OUTPUT_MODE`.
   (#4745)

 ### Removed

 - The `jpegli` codebase has been removed as it is now maintained as a
 separate
   project at [google/jpegli](https://github.com/google/jpegli). (#4657)
 - Dropped GIMP plugin (`libjxl-gimp-plugin`). (#4875)

 ### Fixed

 - Allows -E to be used in jpeg-transcoding again. (#4729)
 - Fixed an issue where Lossy Delta Palette encoding failed on images
 larger
   than 2048x2048. (#4201)
 - Fixed Delta Palette with Weighted Predictor decoding. (#4837)
 - `JxlEncoderAddChunkedFrame` incorrectly called `JxlEncoderCloseInput`
   instead of `JxlEncoderCloseFrames`, resulting in corrupted files when
   trying to add more boxes. (#4466)
 - Float16 values roundtrip more accurately. (#4461)
 - JXL input to cjxl no longer gets double orientation applied and also now
   keeps frame names. (#4374, #4561)
 - `JxlBasicInfo.alpha_premultiplied` was not correctly forwarded. (#4357)
 - CMYK JXL files would not decode to PNG correctly. (#4301)
 - Encoder would hang with specific parameters on images containing more
 than
   256 groups. (#4302)
 - Decoding would fail with LZ77 runs that crossed entropy-coded streams
 within
   the same section. (#4298)
 - Images could be corrupted when encoding effort 1 lossless. (#4027,
 #4291)
 - Extremely high quality lossy would not conform to Level 5 of the spec.
   (#4238)
 - Density regression with Predictor Zero since v0.11. (#4225)
 - Progressive VarDCT encoding would create non-progressive files. (#4223)
 - Extremely tall/wide images failed to encode using modular. (#3937,
 #4308)
 - Empty DHT markers no longer cause JPEG transcoding to fail. (#2704)
 - Fixed photon noise encoding for progressive images. (#4866)
 - Correctly handled mistakenly set "interleaved" alpha. (#4862)
 - Fixed grayscale over-read in `EncodeWithSJpeg`. (#4871)
 - Fixed `djxl` `SelectFormat` failure when converting grayscale images to
 PPM.
   (#4691)
 - Fixed segmentation fault when attempting to open non-existing input
 files in
   CLI tools. (#4846)
 - Fixed GIF always being decoded as RGBA. (#4849)
 - Added a warning when an unsupported GIF disposal mode is encountered.
 (#3918)
 - Fixed PNG color space information reading. (#4598)
 - Fixed MSVC ARM64 build and restricted `_sub_overflow_i32` to x86/x64.
 (#4877)
 - Corrected specialized decoding path for fast lossless. (#4836)
 - Rejected duplicate out-of-order `jxlp` indices. (#4814)
 - Used `png_bit_depth` to correctly determine pixel layout. (#4854)
 - Fixed memory leak in `GetContext()` in `jxl_cms.cc`. (#4663)
 - Fixed stdin evaluation if file `-` exists. (#4668)
 - Fixed JXL primary color representation detection. (#4618)

 ### Security

 - Extensive security and hardening fixes across the core decoder/encoder,
 box
   buffers, and plugins (EXR, GIF, APNG/PNG, PAM/PNM/PGX). This includes
 fixes
   for integer overflows/underflows, out-of-bounds reads/writes, buffer
   overflows, and null pointer guards. (#4629, #4631, #4646, #4683, #4685,
   #4687, #4688, #4722, #4746, #4758, #4764, #4766, #4773, #4775, #4777,
   #4778, #4788, #4791, #4792, #4795, #4797, #4799, #4808, #4839, #4840,
   #4850, #4855, #4870, #4874)
 }}}
 Fixed at [sha:b6e5021b83]. Leaving open for SA.
-- 
Ticket URL: <https://wiki.linuxfromscratch.org/blfs/ticket/23547#comment:2>
BLFS Trac <https://wiki.linuxfromscratch.org/blfs/>
Beyond Linux From Scratch

-- 
http://lists.linuxfromscratch.org/sympa/info/blfs-book
Unsubscribe: See the above information page
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.