-
-
Notifications
You must be signed in to change notification settings - Fork 893
Support for JPEG XL (JXL) images #3153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
winscripter
wants to merge
144
commits into
SixLabors:main
Choose a base branch
from
winscripter:jxl-support
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+36,138
−5
Draft
Changes from all commits
Commits
Show all changes
144 commits
Select commit
Hold shift + click to select a range
85c851b
Add JPEG XL format
winscripter 996e93d
Implement ac_context.h
winscripter d87178f
Implemented frame_dimensions.h plus part of ac_strategy.h
winscripter 1ac6140
Implement AC strategy
winscripter 31b5505
Implement JxlMemoryManager
winscripter 21ff33f
Implement image and memory buffers
winscripter 6fea920
Add metadata models
winscripter 762edd1
Add headers & aspect ratio helpers
winscripter 487410e
Implement field encodings, move IJxlFields
winscripter ac1c866
Add xorshift implemetation
winscripter 8581222
It's Jxl not Jpeg
winscripter 9b58f4b
Implement spline abstractions
winscripter 064376a
Add quantized spline implementations
winscripter 90680b7
Prefer the term "coefficient"
winscripter 1e40482
Start work on ANS entropy
winscripter 396cd8d
Implement JxlAnsHelper.GetPopulationCountPrecision
winscripter cb364fa
Turn JxlFrameDimensions into a sealed class
winscripter 528149f
Implement CreateFlatHistogram
winscripter 490f02f
Add ANS entropy structs
winscripter 73941c1
Prefer byte for enums
winscripter 20c2dd3
Implement ANS entropy helpers
winscripter fed0af3
Add bit-stream reader
winscripter 25e41da
Avoid 'using static'
winscripter 4ec9b95
Simplify
winscripter b716d4e
Add ANS VarLen & histogram parser
winscripter 1381def
Fix memory leaks
winscripter 8ffb41a
Don't use end of stream singleton
winscripter 3ed56c9
Add ANS hybrid uint configuration & LZ77 parameters model
winscripter 7f35b1a
Implement Lehmer codes
winscripter 57eadbb
Implement noise shared logic
winscripter 6de4a89
Add alpha blending
winscripter 289fecd
Move AC strategy & Coefficients stuff into Processing
winscripter b15c190
Add symmetric weights; fix broken using
winscripter b3023f2
Add separable weights
winscripter 73c7cec
Add DCT scales
winscripter 7223d98
Add DCT memory, make JxlImage3<T> implement IDisposable
winscripter 51b7765
Implement signed packing
winscripter 446e4a5
Add loop filter
winscripter decc0b2
Fully implement JPEG XL fields
winscripter a6a0263
Implement visitor for JxlBitDepth
winscripter 6aa313f
Add matrices
winscripter d401b71
Fix errors
winscripter a803f01
Add Y'Cb'Cr chroma subsampling as part of the frame header
winscripter 16c55f3
Add frame header
winscripter ded8906
Move Metadata folder to IO
winscripter 674f82a
Add quantizer
winscripter 07f6be0
Fix memory leak
winscripter b720196
Add opsin inverse parameters, some quantizer weight work
winscripter 2758454
Move, add entropy coding common functions
winscripter 6eda7e2
Remove aggressive inlining attributes, fix usings
winscripter f71bab2
Use distinct read-only spans
winscripter abafaf8
Add CFL
winscripter 9c6b4ef
Add Huffman common methods
winscripter 3591250
Start work on Butteraugli
winscripter 765c892
Implement Butteraugli core functions
winscripter 0d159b9
Add CMS* prototype, XYB decoding, TOC, convolution and coefficient or…
winscripter 083385b
Use inline arrays in quantizer
winscripter a1cae71
Prefer const
winscripter eb80187
Don't use System.Diagnostics.Debug
winscripter 79e8ce7
Add Move to Front transform
winscripter d1f6646
Prefer inline arrays
winscripter fe41799
Prevent potential overflow
winscripter 8209aa1
Refactor
winscripter 074ff1b
Validate the size parameter in JxlCoefficientOrder.ReadPermutation
winscripter f19c879
Add more implementations and prototypes
winscripter ff98ffd
Add image copy operations
winscripter e718a4a
Implement image operations
winscripter 048945c
Reduce number of errors
winscripter 4f71c52
Implement JPEG XL numerics functions & reduce errors
winscripter 4d0a468
Add rectangle support to images
winscripter 2c517a2
Document JxlPlane<T> and JxlPlaneBase
winscripter 50813c1
Add passes decoder state prototype & reduce errors in JxlQuantizedSpline
winscripter 27a848c
Add DCT, transpose, and performance improvements
winscripter 0d9aea4
Remove GC.SuppressFinalize(this)
winscripter 20e3a34
Add image bundle
winscripter 6e432ca
Use inline arrays in Butteraugli
winscripter 4308af8
Merge branch 'SixLabors:main' into jxl-support
winscripter 8b4ff41
First prototype of JxlDecoderCore
winscripter e03a581
Add JPEG XL container prototype & file type box
winscripter 2d12bc6
Zero-copy input access (prototype 1)
winscripter 08c13fc
Performance improvements
winscripter 6ba0d37
Zero-copy input access (prototype 2)
winscripter c535893
Zero-copy input access (prototype 3)
winscripter 75f676d
Add prototype of modular
winscripter e449656
Merge branch 'SixLabors:main' into jxl-support
winscripter dfd99a0
Reduce errors in AC strategy code
winscripter a2f8fe6
Reduce errors
winscripter 352b14d
Reduce errors, remove unused constant
winscripter 093d846
Finish inverse RCT
winscripter c5a7bb8
Complete RCT
winscripter c8b0a5d
Simplify decoder core & add palette shared methods
winscripter c079cf9
Add missing types, rename JxlBitDepth metadata to JxlBitDepthMetadata…
winscripter 7e23670
Add CodestreamMarker, don't manually check for out-of-bounds
winscripter b8f4094
Reduce errors
winscripter 2b43fd6
Simplify
winscripter 9f8eb4a
Add box content decoder with Brotli compression & reduce errors
winscripter 315ea0f
Reduce errors & refine documentation
winscripter 57958f3
Reduce errors & remove unnecessary if statements
winscripter 0678f35
Add missing types, reduce errors
winscripter 4118c4a
Quantizer improvements, reduce errors
winscripter 874ec5b
Complete quantizer encoding
winscripter acc474e
Complete modular transforms, context prediction
winscripter 7b8749d
Don't use stackalloc for two bytes
winscripter 15c32fe
Prefer Math.DivRem
winscripter de8c644
Use Math.DivRem
winscripter a5d5ab6
Prefer byte
winscripter 1b6e824
Don't use GetWReference (it should return span)
winscripter c6c6942
Parenthesize
winscripter 79b0113
Don't use stackalloc
winscripter e7d3608
Remove SuppressFinalize from sealed class
winscripter e6ed4ba
Use Math.Clamp
winscripter 4858ef3
Use StartsWith
winscripter 2835528
Remove try/finally
winscripter 90ddb9d
Add JPEG parsed data
winscripter 3059910
Use InlineArray for color correlation
winscripter a955946
Add JPEG data constants
winscripter 497c27c
Update folder structure
winscripter 4b9a74d
Add JPEG parser for JXL<->JPEG conversion
winscripter bc7e30e
Refactor & optimize
winscripter 081384d
Optimize
winscripter 80f1075
Make interface an abstract class
winscripter fad73d8
Add encoder ANS SIMD bit cost estimation
winscripter 64bade8
Add huffman encoder, inverse Gaborish transform, gamma correction, no…
winscripter 8345623
Refactor, optimize
winscripter 4116e9c
Complete Edge Preserving Filter render pipeline stages
winscripter 5874c4c
Optimize JxlNoiseHistogram
winscripter 5f99a65
Further update folder structure, start working on write to output sta…
winscripter 9ad0210
Add IJxlImageOutput
winscripter eead4a9
Add ShouldFlip methods, fix typo
winscripter a0feb21
Add Y'Cb'Cr stage, make Epf1Stage class sealed
winscripter 9f3ccfa
Use primary constructor
winscripter 76ed571
Add Gaborish stage
winscripter 64edab5
Add patch dictionary stage
winscripter e0305d7
Partial adaptive quantizer encoder
winscripter 5de2701
Add JxlToJpegDecoder static methods
winscripter 4476abd
Add 3 missing methods to JxlFrameDecoder, add spline and spotcolor re…
winscripter 5739218
Add a few CMS transfer functions (incomplete)
winscripter 7880fb2
Add SIMD float->Half conversion
winscripter 5fe70ba
Add photon noise encoder
winscripter bedf8ec
Add tests, complete splines, SIMD-accelerate transpose, add a few SIM…
winscripter eacb943
Reduce errors
winscripter 4e929f3
Move comment
winscripter 58c803e
Complete Butteraugli
winscripter b0f0d34
Complete Butteraugli and its tests
winscripter File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.