Skip to content

merge htj2k-beta branch with main #2041

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

Open
wants to merge 14 commits into
base: main
Choose a base branch
from

Conversation

cary-ilm
Copy link
Member

@cary-ilm cary-ilm commented May 19, 2025

This introduces the htj2k compressor to the main branch, in preparation for release this summer.

Note that we'll be renaming the compressor to "htj2k" shortly.

This includes PR #1883 and subsequent improvements:

The patch proposes to add support for High-Throughput JPEG 2000 (HTJ2K) compression to OpenEXR -- HTJ2K is JPEG 2000 with the HT block coder standardized in Rec. ITU-T T.814 | ISO/IEC 15444-15. As detailed at Evaluating HTJ2K as a compressor option for OpenEXR, HTJ2K demonstrates significant improvements in both speed and file size over other OpenEXR compressors. Furthermore, HTJ2K is a worldwide standard that benefits from a diversity of implementations, builds on JPEG 2000, which is in broad use in studio workflows, is appropriate for long-term preservation, has both lossy and lossless modes and supports integer and floating point samples. Finally, the unique features of HTJ2K could be powerful additions to high-performance OpenEXR workflows where the full image may not always be viewed at its full resolution.

The patch defines a ht256 compressor, which uses 256-scanline chunks (this is not a limitation of HTJ2K, which can support any number of scanlines) and the open-source OpenJPH library.

Website preview: https://openexr--2041.org.readthedocs.build/en/2041/

palemieux and others added 14 commits May 18, 2025 19:23
* Add HT256 compressor

Signed-off-by: Pierre-Anthony Lemieux <[email protected]>

* Update src/lib/OpenEXR/ImfCompression.h

Co-authored-by: Cary Phillips <[email protected]>
Signed-off-by: Pierre-Anthony Lemieux <[email protected]>
Signed-off-by: Pierre-Anthony Lemieux <[email protected]>

* Update src/lib/OpenEXR/ImfCompression.cpp

Co-authored-by: Cary Phillips <[email protected]>
Signed-off-by: Pierre-Anthony Lemieux <[email protected]>
Signed-off-by: Pierre-Anthony Lemieux <[email protected]>

* Update website/ReadingAndWritingImageFiles.rst

Co-authored-by: Cary Phillips <[email protected]>
Signed-off-by: Pierre-Anthony Lemieux <[email protected]>
Signed-off-by: Pierre-Anthony Lemieux <[email protected]>

* Add channel map

Signed-off-by: Pierre-Anthony Lemieux <[email protected]>

---------

Signed-off-by: Pierre-Anthony Lemieux <[email protected]>
Signed-off-by: Pierre-Anthony Lemieux <[email protected]>
Co-authored-by: Cary Phillips <[email protected]>
…mySoftwareFoundation#2029)

* Allow lowercase r,g and b, and reg, greee and blue.

Signed-off-by: Pierre-Anthony Lemieux <[email protected]>

* Improved RGB channel detection heuristics

Signed-off-by: Pierre-Anthony Lemieux <[email protected]>

* Fix Windows build

Signed-off-by: Pierre-Anthony Lemieux <[email protected]>

* Improve RGB heuristics
Add unit tests

Signed-off-by: Pierre-Anthony Lemieux <[email protected]>

* Removed unusued color channel abbreviations

Signed-off-by: Pierre-Anthony Lemieux <[email protected]>

---------

Signed-off-by: Pierre-Anthony Lemieux <[email protected]>
* HT256 COMPRESSION

Signed-off-by: Todica Ionut <[email protected]>

* HT256 Compression fix

Signed-off-by: Todica Ionut <[email protected]>

---------

Signed-off-by: Todica Ionut <[email protected]>
Signed-off-by: Cary Phillips <[email protected]>
Signed-off-by: Cary Phillips <[email protected]>
Signed-off-by: Cary Phillips <[email protected]>
Signed-off-by: Cary Phillips <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants