JPEG XL

Info

rules 57
github 35276
reddit 647

JPEG XL

tools 4225
website 1655
adoption 20712
image-compression-forum 0

General chat

welcome 3810
introduce-yourself 291
color 1414
photography 3435
other-codecs 23765
on-topic 24923
off-topic 22701

Voice Channels

General 2147

Archived

bot-spam 4380

adobe dng converter is a pile of crap

CrushedAsian255
2024-06-25 01:16:53
this is silly
jonnyawsom3
2024-06-25 01:17:11
It's Adobe
CrushedAsian255
2024-06-25 01:17:18
yep, that sums it up
2024-06-25 01:17:25
> re: using windows photos app nice
2024-06-25 01:18:29
so my findings so far: `-jxl` by itself does nothing `-lossy` defaults to JXL unless you set `-dng1.4` or something to get lossless you do `-jxl -losslessJXL` `-jxl_effort` does nothing
jonnyawsom3
2024-06-25 01:18:32
First they add JXL to the DNG spec without thinking for a second about how to make the most of it, and then they make it nearly impossible to use properly
CrushedAsian255
2024-06-25 01:19:34
affinity photo just says compression type `JPEG` so im not sure what the heck it's doing
2024-06-25 01:19:54
the compression ratio `40mb:98mb` seems indicative of JXL's lossless abilities
jonnyawsom3
2024-06-25 01:19:57
The ordering of the file it weird, so it's probably seeing the jpeg preview
2024-06-25 01:19:58
https://discord.com/channels/794206087879852103/822105409312653333/1253000937669132410
CrushedAsian255
2024-06-25 01:20:01
but it could also be doing something stupid
jonnyawsom3
2024-06-25 01:20:15
There's some more info there about the horrors Adobe are doing to our baby
CrushedAsian255
2024-06-25 01:21:45
is there any way to """extract""" the raw data from a DNG into something like PPM so I can do some testing with `cjxl` instead of adobe's garbage?
2024-06-25 01:23:02
> "Both types of JPEG XL bitstreams are supported in DNG" Why would you want to use JXL's containers in a DNG? Isn't that the point of the DNG header? Wouldn't that be redundant duplication? Is there something I'm missing here?
2024-06-25 01:23:12
So many questions
jonnyawsom3
CrushedAsian255 is there any way to """extract""" the raw data from a DNG into something like PPM so I can do some testing with `cjxl` instead of adobe's garbage?
2024-06-25 01:27:21
You *can*, the problem is DNG is actually TIFF, which is tiled, which means cjxl would only be running on a handful of pixels at a time. Could extract a lossless JXL tile instead, since those were 672x752, then crop it down to 256x256 (Default group size) to simulate Adobe having braincells
2024-06-25 01:30:17
You want to run exiftool on it, find the tile length and tile offset (1 value listed for each in a normal DNG, a list of values for a JXL encoded DNG), head to that decimal spot in a hex editor, then select the tile length as a decimal value too (there'll be matching pairs for JXL), save the selected bytes to a file and then you either have lossless jpeg or lossless jxl, I used ffmpeg to read the jpeg
CrushedAsian255
You want to run exiftool on it, find the tile length and tile offset (1 value listed for each in a normal DNG, a list of values for a JXL encoded DNG), head to that decimal spot in a hex editor, then select the tile length as a decimal value too (there'll be matching pairs for JXL), save the selected bytes to a file and then you either have lossless jpeg or lossless jxl, I used ffmpeg to read the jpeg
2024-06-25 01:32:32
So DNG is a fancy ZIP? lol
jonnyawsom3
2024-06-25 01:33:10
At least then it'd have some extra compression
CrushedAsian255
2024-06-25 01:34:35
Reject DNG, accept TAR.XZ 🤣 😜
You want to run exiftool on it, find the tile length and tile offset (1 value listed for each in a normal DNG, a list of values for a JXL encoded DNG), head to that decimal spot in a hex editor, then select the tile length as a decimal value too (there'll be matching pairs for JXL), save the selected bytes to a file and then you either have lossless jpeg or lossless jxl, I used ffmpeg to read the jpeg
2024-06-26 02:29:05
can't be bothered doing it manually, im gonna write a C script or something
jonnyawsom3
2024-06-26 02:35:04
Should be simple enough, just find the tags, read the offset and then the length, save those bytes and then move onto the next pair until there's no numbers left
CrushedAsian255
You *can*, the problem is DNG is actually TIFF, which is tiled, which means cjxl would only be running on a handful of pixels at a time. Could extract a lossless JXL tile instead, since those were 672x752, then crop it down to 256x256 (Default group size) to simulate Adobe having braincells
2024-06-30 09:02:44
i wrote this C program to do it warning: the code really sucks also it only works on little endian systems but does support both little and big endian DNG files