Skip to content
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

Color management #9

Open
3 tasks
lifthrasiir opened this issue Sep 26, 2022 · 0 comments
Open
3 tasks

Color management #9

lifthrasiir opened this issue Sep 26, 2022 · 0 comments
Assignees
Labels
bug Something isn't working meta Higher-level topics

Comments

@lifthrasiir
Copy link
Owner

Color management in JPEG XL is a complicated story. Ideally it's the best possible design: every JPEG XL codestream has a defined color profile (either ICC profile or abbreviated color space parameters) and it should be converted to the display color space. Unfortunately the status quo is not that ideal.

  • ICCv2 and v4 are yet another 100-plus-page standards.
  • The full conversion process is a many-to-many relation; not only the display color space is defined, but the image color space can vary.
  • There is no public domain color management system (CMS) to my knowledge.
  • There is no single-file CMS to my knowledge either. The closest is probably skcms, a part of Skia, which consists of two source files and two header files, and it is already ~4000 lines of C++.

As such, I don't think J40 will ever implement the full ICC profile by itself (at least in C). This is also the case in libjxl, where either skcms or Little CMS 2 can be used, but it is a bit baffling to require an external library to implement the full format. Any other ideas are welcomed.

Anyway, this decision leads to the following subtasks:

  • Fully implement the ICC codec
  • Handle abbreviated color space parameters
  • Implement and expose API functions for external CMSes (e.g. J40_USE_LCMS2)
@lifthrasiir lifthrasiir added bug Something isn't working meta Higher-level topics labels Sep 26, 2022
@lifthrasiir lifthrasiir self-assigned this Sep 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working meta Higher-level topics
Projects
None yet
Development

No branches or pull requests

1 participant