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

Support JPEG XL compression in DNG #516

Open
kmilos opened this issue Sep 1, 2023 · 6 comments
Open

Support JPEG XL compression in DNG #516

kmilos opened this issue Sep 1, 2023 · 6 comments

Comments

@kmilos
Copy link
Collaborator

kmilos commented Sep 1, 2023

Just added in DNG 1.7, and is allowed for e.g. 3-channel LinearRaw photometric interpretation.

Available (C) implementations:

https://github.com/libjxl/libjxl (reference)
https://github.com/lifthrasiir/j40 (single header, public domain)

@cytrinox
Copy link
Contributor

cytrinox commented Sep 1, 2023

Good hint. Disappointed that they only specified it for LinearRaw but not for CFA.

@kmilos
Copy link
Collaborator Author

kmilos commented Sep 1, 2023

Disappointed that they only specified it for LinearRaw but not for CFA.

Check the new ColumnInterLeaveFactor as well.

@kmilos
Copy link
Collaborator Author

kmilos commented Nov 23, 2023

For example, appears as the enhanced linear raw subimage in new Adobe AI denoised DNGs.

@kmilos
Copy link
Collaborator Author

kmilos commented Jan 19, 2024

And now also looks like it's in Samsung Galaxy enhanced ExpertRAW DNGs.

@kmilos kmilos closed this as completed Jan 19, 2024
@kmilos kmilos reopened this Jan 19, 2024
@Entropy512
Copy link

Entropy512 commented Mar 13, 2024

Check the new ColumnInterLeaveFactor as well.

The stated purpose here describes a nonstandard/proprietary method of encoding raw sensor data I remember seeing a few years ago, but can't find at the moment (and in the process, ALMOST makes it standardized except for one issue, see my last comment) - Take the individual color planes from the CFA, and store them as adjacent images in a monochrome JPEG. A potential use case for this would be hardware that was severely IO-bound but had a reasonably performing hardware JPEG engine (I can think of one specific camera that would REALLY benefit from this, as it has a hardware JPEG engine but USB 2.0 and stores bracketed shots from 25 10-bit sensors, which wouldn't lose too much with nonlinear encoding to 8 bits/sample...), or to allow lossy storage of CFA data with JXL.

It seems that JXL + the new RowInterleaveFactor and ColumnInterleaveFactor would support exactly this, but wouldn't that technically require PhotometricInterpretation to be 32803 (CFA)? e.g. "so close yet so far" here.

@kmilos
Copy link
Collaborator Author

kmilos commented Sep 23, 2024

Looks like iPhone 16 started using it as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Untriaged
Development

No branches or pull requests

3 participants