Common/Helpers
- Add InterleaveLower and InterleaveUpper to Vector128_ and Vector256_
- Add unit test for InterleaveLower and InterleaveUpper (specifically for Vector256_)
- Add Average to Numerics.cs
Common
- Add 32 and 33 to the InlineArray.tt text template
Formats/Jxl/IO/Metadata
- Remove unnecessary System.Runtime.CompilerServices using directive from JxlCustomTransformData and JxlOpsinInvreseMatrix
Formats/Jxl/Processing/Decoder
- Remove unncessary using SixLabors.ImageSharp.Formats.Jxl.IO
Formats/Jxl/Processing/Encoder
- Add partial Fast Lossless Encoder work (+enc_fast_lossless.cc; largest file in libjxl source)
- Add linear algebra (+enc_linalg.cc, +enc_linalg.h)
Formats/Jxl/Processing/Jpeg
- Work that would later become JXL<->JPEG lossless coding mode
Formats/Jxl/Processing/Modular/Encoding/ContextPrediction
- Finish context prediction (+context_predict.h)
Formats/Jxl/Processing/Modular/Transforms
- Finish Reversible Color Transform (+rct.cc, +rct.h, +enc_rct.cc, +enc_rct.h)
- Finish Palette/Indexed coding (+palette.cc, +palette.h, +enc_palette.cc, enc_palette.h)
- Finish Squeeze transform (+squeeze.cc, +squeeze.h, +enc_squeeze.cc, +enc_squeeze.h)
Formats/Jxl/Processing/RenderPipeline
- Incomplete render pipeline abstractions with EPF (Edge Preserving Filter) 0 stage (+render_pipeline_stage.cc, +render_pipeline_stage.h, +stage_epf.cc, +stage_epf.h)
Formats/Jxl/Processing/Splines
- Remove unnecessary System.Runtime.CompilerServices using directive
Formats/Jxl/Processing
- Add dequantizer matrices
- Remove JxlEndianness (prefer ByteOrder from ImageSharp/Common)
- Add missing constant to JxlLoopFilter
- Remove unnecessary using SixLabors.ImageSharp.Common.Helpers from JxlMath
- Replace JxlPixelFormat to use ByteOrder
- Update quantizers to use dequantizer matrices and quantizer weights
- Add quantizer encoding and constants
- Add SIMD utilities
- Remove System.Runtime.CompilerServices using from JxlWeightsSeparable5
- Remove InlineArray3, InlineArray36 and InlineArray15 from InlineArrays (3 and 15 already exist in System.Runtime.CompilerServices; 36 already exists in InlineArray.tt from ImageSharp/Common)
NEXT STEPS
The current focus would be applying refactors and optimizations from reviews, followed by completing the JPEG XL modular.
- Use Stream for Box Content Decoder
- Reduce errors in JxlDecoderCore
- Add GetStride method to JxlFrameDecoder
- Add JxlDctQuantWeightParameters and JxlQuantizerEncoding to implement more quant_weights.h components, and add proper documentation to each member of JxlQuantMode.
- Remove InlineArray2<T> (there's already one built into System.Runtime.CompilerServices, so prefer to use that)
Remove the `Numerics.Normalize` wrapper and call `TensorPrimitives.Divide` directly when normalizing resize kernels. This also drops the now-unused normalization test coverage and the redundant benchmark-only `System.Numerics.Tensors` package reference for net10.0.
Replaced ImageSharp’s custom TensorPrimitives_ and several Vector128/256/512 helper fallbacks with direct System.Numerics and System.Numerics.Tensors APIs across color conversion, codecs, filtering, blending, and convolution paths. Removed the obsolete compatibility helper files, updated package references (including System.Numerics.Tensors and newer System.IO.Hashing), and aligned tests with runtime behavior changes such as inverted float clamp bounds now throwing ArgumentException.
Replace the custom zlib deflate stack with `System.IO.Compression.ZLibStream`, and add `ChunkedWriteStream` to keep PNG/TIFF/EXR output framed in fixed-size segments. Update the affected compressors and tests to match the new streaming path.
Move the main target framework from net8.0 to net10.0 and the preview lane from net10.0 to net11.0, adding a global.json floor for SDK 10+ and updating CI coverage and test projects to match.
The change also adjusts hardware-intrinsic feature tests for .NET 11's x86-64-v2 baseline, updates Magick.NET, adds PDF files to LFS, and converts many internal helper and codec APIs from Span<T> to ReadOnlySpan<T> where inputs are not mutated.