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

adoption

Adoption of jxl: what software supports jxl already, how to get more adoption?

BlueSwordM
Traneptora 2.10, so never mind
2022-03-31 05:36:27
So, how is review progress going on the JXL integration in ffmpeg?
2022-03-31 05:36:34
Sorry, I'm just too impatient ๐Ÿ˜›
Traneptora
BlueSwordM So, how is review progress going on the JXL integration in ffmpeg?
2022-03-31 06:19:06
sent patch v10 to the ML yesterday, nothing since
2022-03-31 06:19:23
believe me I'm impatient too lol
Hello71
2022-03-31 11:24:09
if you're running git master anyways i reckon it shouldn't be too hard to add a patch?
Traneptora
2022-03-31 11:43:45
every new patch I do I rebase it onto master
2022-03-31 11:43:46
so yea
novomesk
2022-04-08 01:40:39
Development build of nomacs is showing Exif metadata from JXL files now. Perhaps I should auto-rotate the thumbnail. Or better to leave it in original position?
_wb_
2022-04-08 03:08:14
The thumbnail is in the exif, right? It's not a jxl preview frame?
novomesk
2022-04-08 03:13:25
I believe it is from exif
improver
2022-04-08 03:15:17
idea of exif thumbnails is weird & wasteful imo
2022-04-08 03:16:57
also looks like it expects to be autorotated, so probably should do that if attribute for that is present in exif
Traneptora
2022-04-23 05:54:32
We did it!
2022-04-23 05:54:33
https://git.videolan.org/?p=ffmpeg.git;a=commit;h=0008c159562b877700cd9b7c96f941de4ee69af5
2022-04-23 05:54:38
jxl is now in FFmpeg git master
BlueSwordM
2022-04-23 05:58:19
<@794205442175402004> Ping everyone and put this in <#803379415106584626>
_wb_
2022-04-23 05:58:44
Yay!
Fraetor
2022-04-23 05:58:47
๐Ÿ‘๐Ÿ‘ ๐Ÿ‘
Jim
2022-04-23 06:26:30
<:FeelsAmazingMan:808826295768449054>
Fox Wizard
2022-04-23 06:32:45
<:JXL:805850130203934781><:Stonks:806137886726553651>
lonjil
2022-04-23 06:40:03
epic
_wb_
BlueSwordM Imagine getting native JXL support before the AVIF patch gets merged in.
2022-04-23 06:44:59
Does this mean jxl is in ffmpeg before avif?
BlueSwordM
_wb_ Does this mean jxl is in ffmpeg before avif?
2022-04-23 06:47:59
Yes ๐Ÿ™‚
2022-04-23 06:48:02
Somehow.
2022-04-23 06:48:18
An excellent argument to get browsers to adopt JXL NOW!!!
2022-04-23 06:48:39
Only AVIF parsing is a thing in ffmpeg last time I checked.
2022-04-23 06:51:05
https://git.videolan.org/?p=ffmpeg.git;a=commit;h=499e245b856733c3bbcd3ba23b406729343ed5fe
_wb_
2022-04-23 06:51:31
Without alpha, lol
2022-04-23 06:53:52
Why do people still do things like "only 420" or "no alpha" or "no color profiles" nowadays, I wonder. It's partial support that leads to crippled de facto standards, because if full support doesn't get there quickly, you have no choice but to use the lowest common denominator if you want interoperability...
Traneptora
2022-04-23 07:01:59
currently JXL in ffmpeg lacks a parser, but Lynne plans on writing one
BlueSwordM
_wb_ Why do people still do things like "only 420" or "no alpha" or "no color profiles" nowadays, I wonder. It's partial support that leads to crippled de facto standards, because if full support doesn't get there quickly, you have no choice but to use the lowest common denominator if you want interoperability...
2022-04-23 07:02:19
Best thing is, it'll already get media player support thanks to someone who's working on a patch who just submitted one lmao: https://github.com/mpv-player/mpv/pull/10126
Traneptora
BlueSwordM Best thing is, it'll already get media player support thanks to someone who's working on a patch who just submitted one lmao: https://github.com/mpv-player/mpv/pull/10126
2022-04-23 07:02:32
that was me
2022-04-23 07:02:47
it was very easy
BlueSwordM
Traneptora that was me
2022-04-23 07:02:57
I know, there's just someone on the AV1 server who literally tried to do the same thing, but was too slow lmao.
Traneptora
2022-04-23 07:03:00
like it took me like an hour. infrastructure already existed for the most part
2022-04-23 07:03:31
it fails all the checks though because they haven't updated to FFmpeg git master yet
BlueSwordM
2022-04-23 08:40:27
Huh, this is interesting: cjxl creates a very slightly smaller file vs using libjxl inside of ffmpeg using the exact same settings. Both are lossless, and yet, they are different in size.
2022-04-23 08:40:38
Speed is the same, which is good.
2022-04-23 08:41:17
Is there extra metadata present that is causing this? I'm using Git everything from today for reference(Git libjxl, git ffmpeg).
monad
2022-04-23 08:42:50
I'd guess just different choices in general since cjxl doesn't necessarily use libjxl
Traneptora
BlueSwordM Huh, this is interesting: cjxl creates a very slightly smaller file vs using libjxl inside of ffmpeg using the exact same settings. Both are lossless, and yet, they are different in size.
2022-04-24 11:24:52
one's a raw codestream, one's inside a container
2022-04-24 11:25:45
so you have slight extra overhead
2022-04-24 11:52:13
it's already in the git master documentation, it just needs to be rebuilt on the website
2022-04-24 11:52:17
I don't know when that is
2022-04-24 12:57:39
oh that
2022-04-24 12:57:44
`ffmpeg -h encoder=libjxl`
2022-04-24 12:59:21
it's not in `docs/encoders.texi`
2022-04-24 12:59:26
I should send an updated patch about that
2022-04-24 01:00:14
well if you don't have ffmpeg git master then how are you going to use the encoder
_wb_
2022-04-24 01:50:20
It annoys me that https://github.com/mozilla/standards-positions/issues/522 is closed
2022-04-24 01:51:19
"I'm locking this conversation as it has passed the new information stage." - well yes, if it's locked then there will not be any way to add new information, like FFmpeg support
Orum
2022-04-24 03:22:10
mozilla is quite resistant to adding new features as well as fixing old ones <:PepeHands:808829977608323112>
improver
2022-04-24 03:26:19
just post it on bugzilla
_wb_
2022-04-24 05:13:10
To be clear, I do think it's good that browsers don't just add any proposed new feature, and that they require it to be a well thought out decision where all the pros and cons are carefully weighed. What is a bit frustrating though is that avif support was added without any discussion (as far as I can tell), while for jxl we had a discussion where the conclusion on mozilla's end was basically "let's wait a bit and see how ecosystem adoption will go" (something that never seemed to be a consideration for avif, which even today has pretty poor adoption outside browsers), which is ok for me but not if you then close the thread so no new information can be added.
yurume
2022-04-24 05:32:29
I like to think that there are a lot of logistic reasons involved; I recall the debate between mng and apng where the ultimate reason (either for or against) was whether the existing library (libpng) can be reused or not.
2022-04-24 05:34:07
avif does have a clear advantage over jxl that it is more or less an i-frame format of AV1 which is already supported
BlueSwordM
_wb_ To be clear, I do think it's good that browsers don't just add any proposed new feature, and that they require it to be a well thought out decision where all the pros and cons are carefully weighed. What is a bit frustrating though is that avif support was added without any discussion (as far as I can tell), while for jxl we had a discussion where the conclusion on mozilla's end was basically "let's wait a bit and see how ecosystem adoption will go" (something that never seemed to be a consideration for avif, which even today has pretty poor adoption outside browsers), which is ok for me but not if you then close the thread so no new information can be added.
2022-04-24 05:41:32
Well, we have adoption now <:kekw:808717074305122316>
2022-04-24 05:41:51
JXL: has native ffmpeg support. AVIF: does not have native ffmpeg support.
Toggleton
2022-04-24 09:40:37
<:YEP:808828808127971399> seems like Arch will get soon the next lib that will bring jxl support for feh(image viewer that has no border and interface/keybord driven) https://github.com/archlinux/svntogit-packages/commits/packages/imlib2/trunk right now in testing
Yari-nyan
2022-04-24 09:45:52
imv is better
2022-04-24 09:46:07
:P
Toggleton
Yari-nyan imv is better
2022-04-24 09:47:54
<:YEP:808828808127971399> but imv has AFAIK no jxl support yet
Yari-nyan
2022-04-24 11:42:54
unfortunately
improver
2022-04-24 11:43:18
i dont recall either imv or feh having proper color profile conversion support
2022-04-24 11:43:27
so theyre kinda both eh in my book
BlueSwordM
2022-04-25 01:39:46
Lossy sadly.
190n
2022-04-25 02:07:17
i think ffmpeg is always gonna decode the input before giving it to the encoder unless you use a bitstream filter or something
BlueSwordM
2022-04-25 05:38:39
Soo yeah, better call libjxl separately if you want to use lossless JPEG transcoding.
The_Decryptor
2022-04-25 05:48:48
I'd expect `ffmpeg -i input.jpg -c copy output.jxl` to do a lossless transcode
2022-04-25 05:49:57
Maybe that's conflating the idea of a codec and container though, since you couldn't do it with a PNG source even if it's lossless
Traneptora
2022-04-25 10:34:13
that doesn't work, you'd need a bitstream filter
The_Decryptor I'd expect `ffmpeg -i input.jpg -c copy output.jxl` to do a lossless transcode
2022-04-25 10:34:17
this will fail
2022-04-25 11:06:03
probably something like
2022-04-25 11:06:35
`ffmpeg -i input.jpg -bsf:v mjpeg_to_jpegxl -c copy output.jxl`
2022-04-25 11:07:02
I'm not sure if bitstream filters support chaging the codec ID
2022-04-25 11:07:12
but BSFs are how you'd do lossless manipulation of AVPackets
2022-04-25 11:07:19
without decoding to AVFrames
novomesk
2022-04-25 02:51:53
Mozilla did not add AVIF immediately. It took some time. Technically, it was not very complicated because Firefox already had AV1 decoder and it was able to parse MP4/BMFF files. When they upgraded their own MP4 parser, initial AVIF support was available. I believe they are very busy people, that's why they were not very quick not even with AVIF, the very limited implementation stayed behind the flag long time. Things are not always moving as fast as expected. It may take 2 weeks to implement an improvement, but it may take one year to contribute it to relevant projects. And it may take another two years before it is available to majority of users (until popular distros upgrade all necessary dependencies needed by the new feature). AVIF is not hindering progress of JXL, at least from my point of view it looks so. For me, experiences with AVIF implementations also helps to implement JXL support faster.
Traneptora
2022-04-25 06:16:50
> AVIF is not hindering progress of JXL, at least from my point of view it looks so. the comments from the developers seem to indicate otherwise, when they mention they already have AVIF, why use JXL?
_wb_
2022-04-25 06:33:16
Which is a valid point btw, but given that avif isn't a consolidated part of the web platform yet, you could just as well ask why we need avif if there is already jxl
2022-04-25 06:35:00
I don't see the problem with having both, the amount of binary size and attack surface that adds to a browser is not significant enough imo.
lonjil
2022-04-25 06:35:41
Step 1: make web browsers accept videos in img tags. Step 2: every video codec is now an image format, because you can just encode 1 frame long videos.
_wb_
2022-04-25 06:36:12
Yes, that is something I have been asking for for many years now
2022-04-25 06:36:39
There is no need for avif if you can just use av1 in an img tag
2022-04-25 06:37:05
Safari allows h264 in an img tag for a long time now
2022-04-25 06:37:40
And Chrome allows arbitrary av1, but only if it is using an avif container
2022-04-25 06:40:56
Only in firefox there is no way to use a real video codec in an img tag, apng or awebp is the best you can do there...
Yari-nyan
2022-04-26 05:26:59
and maybe other video players should treat single frame video as without a progress bar (looking at you mpv)
novomesk
Traneptora > AVIF is not hindering progress of JXL, at least from my point of view it looks so. the comments from the developers seem to indicate otherwise, when they mention they already have AVIF, why use JXL?
2022-04-26 11:38:29
Yes, they mentioned avif too. I feel from their reply standard chicken-and-egg reply. The fate of every new image format is very difficult (majority wait for others to implement it first).
_wb_
2022-04-26 11:43:32
Yes, chicken-and-egg is a very hard problem to overcome. "We'll add support once it is a widely used codec" is not a great way to get wide adoption...
Traneptora
2022-04-26 09:13:08
update on this: I just sent a patch to the mailing list updating the docs in `doc/encoders.texi`. It doesn't change any code so it'll probably be merged without too much discussion.
improver
2022-04-27 12:58:09
lynne's parser is for something else iirc
Traneptora
2022-04-27 02:14:47
Lynne's parser is not for the lossless transcode
2022-04-27 02:14:55
and that should be implied, tbh
Petr
2022-04-27 05:55:57
It doesn't seem ffmpeg currently supports encoding/decoding jxl animations, does it? ๐Ÿ˜ข
2022-04-27 06:05:00
I've tried it and no joyโ€ฆ
Traneptora
Petr It doesn't seem ffmpeg currently supports encoding/decoding jxl animations, does it? ๐Ÿ˜ข
2022-04-27 04:18:08
nope
lithium
2022-04-27 06:40:33
> https://twitter.com/jyzg/status/1518596030505254912?cxt=HHwWgICsuefCkZMqAAAA I read this twitter discuss, I think I can understand why `twitter user: lyiase` have this opinion, > Sorry, I look at the images and "my subjective" opinion is that AVIF is the better quality. *1 I notice `lyiase` using 2d drawing avatar(anime), and twitter media post have 2d drawing image(anime), so I assume input image probably have chance is `"really non-photographic" non-photo(anime)` content. In my opinion, current libjxl default lossy use `VarDCT`, `pure DCT` is great for `"photo-like" non-photo` and `photo` content, but for `"really non-photographic" non-photo` content, I think `pure DCT` isn't best lossy method. Current av1 have `DCT` and `palette prediction`, `filter`, `CDEF` those features is good for `"really non-photographic" non-photo` content, but current av1 still have some `detail` and `noise` preserve issue. So I think if libjxl can implement quality improve and features for `"really non-photographic" non-photo` content, those improvement can let libjxl increase robustness for different content. > Auto switch two standalone algorithm, `VarDCT` or `delta palette` ,Jyrki Alakuijala. > Apply `VarDCT`, `Modular patch` for `text`, `Modular delta palette` in same image, Jon. > *1 full version post. > https://twitter.com/lyiase/status/1517396470122819584 > Sorry, I look at the images and "my subjective" opinion is that AVIF is the better quality. > When adjusted in Butteraugli, AVIF and JPEG-XL have about the same file size, > but "my subjective" view is that JPEG-XL looks more degraded. > So I don't know if JPEG-XL is a better quality.
BlueSwordM
lithium > https://twitter.com/jyzg/status/1518596030505254912?cxt=HHwWgICsuefCkZMqAAAA I read this twitter discuss, I think I can understand why `twitter user: lyiase` have this opinion, > Sorry, I look at the images and "my subjective" opinion is that AVIF is the better quality. *1 I notice `lyiase` using 2d drawing avatar(anime), and twitter media post have 2d drawing image(anime), so I assume input image probably have chance is `"really non-photographic" non-photo(anime)` content. In my opinion, current libjxl default lossy use `VarDCT`, `pure DCT` is great for `"photo-like" non-photo` and `photo` content, but for `"really non-photographic" non-photo` content, I think `pure DCT` isn't best lossy method. Current av1 have `DCT` and `palette prediction`, `filter`, `CDEF` those features is good for `"really non-photographic" non-photo` content, but current av1 still have some `detail` and `noise` preserve issue. So I think if libjxl can implement quality improve and features for `"really non-photographic" non-photo` content, those improvement can let libjxl increase robustness for different content. > Auto switch two standalone algorithm, `VarDCT` or `delta palette` ,Jyrki Alakuijala. > Apply `VarDCT`, `Modular patch` for `text`, `Modular delta palette` in same image, Jon. > *1 full version post. > https://twitter.com/lyiase/status/1517396470122819584 > Sorry, I look at the images and "my subjective" opinion is that AVIF is the better quality. > When adjusted in Butteraugli, AVIF and JPEG-XL have about the same file size, > but "my subjective" view is that JPEG-XL looks more degraded. > So I don't know if JPEG-XL is a better quality.
2022-04-27 06:52:05
Bruh, the guy is testing at abominably low file sizes.
_wb_
2022-04-27 06:56:42
Most people tend to compare at way too low bitrates so they can easily see the artifacts and compare them. The problem is that they then extrapolate their findings to high bitrates, which is not a good idea
2022-04-27 07:01:51
2022-04-27 07:03:38
For this image, at 0.25 bpp jxl gets a worse subjective score than the others, while at 1 bpp it gets a better score
2022-04-27 07:06:31
Question is if many people want to compress their images to the point that there are visible artifacts (i.e. the range where DMOS < 80 or so)
The_Decryptor
2022-04-28 03:21:01
https://aka.ms/AAgr9vh < JXR (tooling) sucks so I created a feedback item for JXL support in Windows
2022-04-28 03:36:49
w
2022-04-28 03:38:36
2022-04-28 03:39:02
guess we have to wait to even upbote
The_Decryptor
2022-04-28 03:39:30
huh, guess they have to approve it first
lithium
_wb_ Most people tend to compare at way too low bitrates so they can easily see the artifacts and compare them. The problem is that they then extrapolate their findings to high bitrates, which is not a good idea
2022-04-28 06:58:24
Yes, I don't like compare encoder quality on lower file size, for compare quality, use large file size is more reasonable. I really look forward Jon method can implement in libjxl, apply different algorithm in same image is a flexible method. and hope this improvement can reduce surprise output from non-photo content. > Apply VarDCT, Modular patch for text, Modular delta palette in same image, Jon.
BlueSwordM Bruh, the guy is testing at abominably low file sizes.
2022-04-28 07:07:39
av1 prediction and filter features blurry everything on low bitrate, I still don't understand why some people compare av1 on low bitrate and say quality better...
2022-04-28 07:45:07
jpeg xl also have Modular delta palette for high appeal use case, but haven't implement on target distance mode.
Traneptora
2022-04-28 12:28:47
https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/ec07b1547753864d1fb47eb2747613dddba507b2
2022-04-28 12:28:52
more documetnation added
2022-04-28 12:30:11
my next plan of action is to have the encoder and decoder properly tag the colorspace used if it's signaled by the bitstream
2022-04-28 12:30:30
(instead of, say, an ICCP, which is already supported)
2022-04-28 12:37:10
well, matrix won't need to be tagged since it only takes RGB for now
2022-04-28 12:37:16
but primaries and TRC could be tagged
_wb_
2022-04-28 09:53:21
https://bugzilla.mozilla.org/show_bug.cgi?id=1539075#c32
Jim
2022-04-29 05:17:37
Doesn't necessarily mean anything. A person was assigned to it a year ago. They are just filing the info in the bug, doesn't mean progress will be made.
2022-04-29 05:17:41
Still hoping.
Jim Doesn't necessarily mean anything. A person was assigned to it a year ago. They are just filing the info in the bug, doesn't mean progress will be made.
2022-04-29 05:18:19
Likely added since the other discussion thread was closed - so that info can't be added.
BlueSwordM
Jim Likely added since the other discussion thread was closed - so that info can't be added.
2022-04-29 05:54:45
Yeah, but since more and more important software supports it now, there's more and more of a reason to support JXL <:YEP:808828808127971399>
diskorduser
2022-04-29 05:55:48
More reason to pester them <:HaDog:805390049033191445>
Jim
2022-04-29 06:11:20
Then they'll prob close the bug as wont fix <:ReeCat:806087208678588437>
improver
2022-04-29 09:35:12
i prolly woulda closed long ago, absolutely hate when people tell me what to do instead of just bringing information without "SUPPORT EEET NOW"
Jim
2022-04-29 11:21:46
That's the problem - when you close it then nobody can post new info. Gotta expect people will do that. Either warn them, ban them, or delete their posts. Don't block everyone from providing new information on a post that requests new information. ๐Ÿคฆ
แด€แดขแดœส€แด‡แดœ๊œฑ แด˜สœแด€ส€'ษดษชx สŸแดœxแด‡แด€ส€
2022-05-04 05:53:53
Hoping for widespread adoption soon, I got sold when it compressed my 13.9 already compressed PNG to 1.89MB ๐Ÿ˜„
2022-05-04 05:54:05
At a fraction of the time mind you
yurume
แด€แดขแดœส€แด‡แดœ๊œฑ แด˜สœแด€ส€'ษดษชx สŸแดœxแด‡แด€ส€ Hoping for widespread adoption soon, I got sold when it compressed my 13.9 already compressed PNG to 1.89MB ๐Ÿ˜„
2022-05-04 06:08:21
that sounds suspicious, did you compress it in the lossless mode?
แด€แดขแดœส€แด‡แดœ๊œฑ แด˜สœแด€ส€'ษดษชx สŸแดœxแด‡แด€ส€
2022-05-04 06:08:42
Yes, lossless
2022-05-04 06:08:59
It had a lot of uniform grey background and the format found a way to take advantage of it
2022-05-04 06:09:25
Was some concept art on gray bg
yurume
2022-05-04 06:09:34
how did you make sure the original file already compressed? PNG compression rate can vary much by implementations...
2022-05-04 06:10:23
(alternatively, you can decode it into BMP---the uncompressed form---and compare with that)
แด€แดขแดœส€แด‡แดœ๊œฑ แด˜สœแด€ส€'ษดษชx สŸแดœxแด‡แด€ส€
2022-05-04 06:10:33
Fair, I will do that
yurume
แด€แดขแดœส€แด‡แดœ๊œฑ แด˜สœแด€ส€'ษดษชx สŸแดœxแด‡แด€ส€ It had a lot of uniform grey background and the format found a way to take advantage of it
2022-05-04 06:14:01
I mean, I think a good enough PNG compressor will exploit it (less so than jxl though)
Toggleton
2022-05-05 03:06:32
<:hmmm:853991188452868107> is there already a decoder of jxl in rust? i use this <https://github.com/qarmin/czkawka> to find duplicate pictures that i collect from webcams. Would be nice to have a decoder in rust before i write an Issue and ask for jxl support
veluca
2022-05-05 03:29:17
nah, there's a wrapper to the C++ decoder though
novomesk
2022-05-06 07:55:51
Sometimes I use Kdenlive video editor. It uses MLT Multimedia Framework which is able to load images via Qt, but must be configured to do so. Commits are merged to MLT and Kdenlive, so it will be possible to use JXL and AVIF with Kdenlive.
BlueSwordM
2022-05-06 04:41:25
2023: All software except web browsers support JXL <:kekw:808717074305122316>
_wb_
2022-05-06 04:56:18
I don't mind browsers being careful to add new codecs, but the difference in treatment between avif and jxl is quite remarkable.
190n
2022-05-06 05:39:49
wonder how much of that is timing
2022-05-06 05:40:47
like if i'm a browser dev and i start to perceive the image compression community as coming up with a better format every few months, i might become hesitant to adopt new ones
_wb_
2022-05-06 05:41:09
Yeah, but I don't think it's really that.
2022-05-06 05:43:10
I suspect it's more that mozilla, google, microsoft and apple are all members of AOM, so they gave avif a 'fast lane' treatment and they don't want to be seen as the ones who are the first to add a 'competitor' of avif.
190n
2022-05-06 05:48:57
right, i forgot how iirc someone practically said that?
2022-05-06 05:49:30
is anything stopping AOM from endorsing JXL?
_wb_
2022-05-06 06:00:16
"not invented here", and maybe also hardware companies who might be worried that their av1 chips become less valuable if jxl becomes successful.
diskorduser
2022-05-06 06:02:33
Make jxl chips then /s.
_wb_
2022-05-06 06:15:03
That might happen at some point, but that doesn't help the investment in av1 chip development
2022-05-06 06:15:40
Not that I think av1 and jxl are real competitors, the overlap in use cases is not that big imo
190n
2022-05-06 06:16:12
also it's not like av1 needs the image usecase to be worth investing in for hardware development
_wb_
2022-05-06 06:23:01
Exactly. But maybe a hw manufacturer aiming at cameras thinks otherwise.
diskorduser
BlueSwordM 2023: All software except web browsers support JXL <:kekw:808717074305122316>
2022-05-06 06:29:26
Android image viewer <:PepeSad:815718285877444619>
BlueSwordM
_wb_ Exactly. But maybe a hw manufacturer aiming at cameras thinks otherwise.
2022-05-06 06:33:48
The problem comes from the fact that previous investments in HEIF hardware are making corporations think about hardware reuse.
2022-05-06 06:34:40
I believe the problem could be solved in the future if future AOM standards were made more openly.
_wb_
2022-05-06 06:55:37
Joining the AOM is not so cheap, I was considering to do it just to see what's going on, but costs quite a bit to become an AOM member
Fraetor
2022-05-06 09:42:32
Hopefully browser vendors are just a little bit scared by the 0.X status of libjxl, and they will jump on it soon after 1.0
2022-05-06 09:43:58
And AVIF still took a couple years to be implemented. The spec was only finalised in Feb 2019, while JXL was Oct 2021 (though Dec 2020 if you want to go for bitstream freeze.)
The_Decryptor
2022-05-07 12:21:06
Edge still doesn't support AVIF, could be an odd technical architecture problem though
JendaLinda
2022-05-07 05:49:19
Is it just me or the Microsoft's AVIF implementation, that you can install from MS Store, is completely broken?
Petr
_wb_ Joining the AOM is not so cheap, I was considering to do it just to see what's going on, but costs quite a bit to become an AOM member
2022-05-07 05:56:03
Sadly, this world is about money, with all the negative consequences we can imagine. I've been involved in changing that for years.
_wb_
2022-05-07 06:30:08
It costs 822 EUR/year to be an ISO member (in Belgium)
2022-05-07 06:30:32
It costs 30000 EUR/year to be an AOM member
2022-05-07 06:32:48
Imo it's stupid that you have to pay anything to be able to contribute to new standards
Orum
2022-05-07 06:39:49
it's a gated community and they have no interest in tearing down the walls
veluca
_wb_ It costs 30000 EUR/year to be an AOM member
2022-05-07 07:03:21
doesn't that depend on company size?
2022-05-07 07:03:59
(well, at least you can read AOM specs for free eventually...)
_wb_
veluca doesn't that depend on company size?
2022-05-07 07:14:11
I guess, I cannot find a price list but that's what it would cost for Cloudinary.
veluca
2022-05-07 07:14:27
Geez
_wb_
2022-05-07 07:25:30
W3C is also not cheap
2022-05-07 07:26:47
I wonder why not all standards can be done like how the IETF does it
2022-05-07 07:27:10
Free participation, free specs
2022-05-07 07:30:21
After all, all it takes in infrastructure to design and maintain a standard is basically a git repo and maybe a mailing list.
2022-05-07 07:32:08
And then some hosting to publish the specs and do some general knowledge dissemination related to the specs
2022-05-07 07:33:07
Total operating costs could be pretty close to zero.
2022-05-07 09:08:59
I know how ISO manages to have significant operating costs: they have staff and a bunch of bureaucracy that requires staff. Also they probably pay way too much money for the proprietary platforms they're using to manage documents etc.
2022-05-07 09:09:36
I don't know however what happens with the AOM membership fees. I kind of wonder what that money is being used for.
2022-05-07 09:10:25
Perhaps a fund to fight patent trolls?
yurume
2022-05-07 09:16:59
how about ECMA compared to ISO?
2022-05-07 09:17:46
I had an impression that ECMA feels much more open than ISO (both in terms of standard availability and participation)
_wb_
2022-05-07 09:26:09
I dunno, https://www.ecma-international.org/about-ecma/join-ecma/
2022-05-07 09:27:34
That would be 35k swiss francs for Cloudinary if they don't want voting right, 70k if they do want voting right
yurume
2022-05-07 09:37:46
ECMA does seem to offer non-profit membership for free
2022-05-07 09:38:10
(don't know if this also covers individual experts though)
_wb_
2022-05-07 09:45:14
Yes, I guess, but then you need a non-profit organization without for-profit members
Fraetor
2022-05-07 09:50:02
Scientific journals have a similar problem of justifying their cost. Nowadays it is possible to run a journal with very low operating costs, such as arXiv, but the major ones still cost eye watering sums, which basically means that you need to be part of a large organisation to have decent access to current research.
_wb_
2022-05-07 10:03:49
yes, this is probably an even bigger problem because it affects all of science
eddie.zato
JendaLinda Is it just me or the Microsoft's AVIF implementation, that you can install from MS Store, is completely broken?
2022-05-07 02:24:43
Not completely, but broken, yes. And it seems that MS doesn't care, as usual.
JendaLinda
eddie.zato Not completely, but broken, yes. And it seems that MS doesn't care, as usual.
2022-05-07 04:40:19
Microsoft's AVIF is completely broken. The colors are all shifted and wrong. Bit depth more than 8bpc doesn't work at all. Lossless images have strong green or purple tint. Thin lines are displayed pixelated for no reason. It's completely unusable. Gimp for example displays my test files correctly.
improver
2022-05-07 04:51:28
based microsoft, discouraging AVIF adoptation with bad implementation and thus encouraging JXL
JendaLinda
2022-05-07 05:11:28
Perhaps MS just can't do it right. Their PNG implementation was quite broken for many years.
BlueSwordM
improver based microsoft, discouraging AVIF adoptation with bad implementation and thus encouraging JXL
2022-05-07 05:25:08
That's not how I think of it.
2022-05-07 05:25:20
They'd rather push HEIF instead ๐Ÿ“›
_wb_
2022-05-07 05:37:26
Or JPEG XR, lol
JendaLinda
2022-05-07 06:06:18
Speaking of HEIF/HEIC, MS does the same color shift there too, so the colors are wrong as well.
_wb_
2022-05-07 06:15:50
Maybe they didn't implement proper color management? And thin lines getting pixelated could be chroma upsampling being implemented with just nearest neighbor instead.
JendaLinda
2022-05-07 06:44:05
So it's just a lazy implementation like PNG, where alpha channel was not working in MSIE for years. Anyway, I don't use any color management. I have just a basic 8 bpc screen, nothing fancy. Everything is set to default. So I suppose the RGB values of pixels should just stay as close to the original as possible. Is that too much to ask for?
yurume
2022-05-07 07:05:03
those are based on video formats, which tend to have their own color gamuts and transfer functions for various reasons
_wb_
2022-05-07 07:15:16
"8-bit RGB" can be 709, sRGB, Adobe RGB 1998, Display P3, DCI P3, etc.
yurume
2022-05-07 07:16:04
yeah, if we were using (a single) absolute color space from the start things may have been less worse, but that didn't happen so here we are
_wb_
2022-05-07 07:17:37
For quite a while, sRGB kind of was the thing you could safely assume
2022-05-07 07:18:46
But especially with the transfer curves there has been a lot of confusion and bad implementations
2022-05-07 07:19:54
E.g. apple doing gamma 1.8 while pc does gamma 2.2, and then that sRGB transfer curve that is kind of weird
JendaLinda
2022-05-07 07:25:30
I don't really understand the concept of color profiles, but considering my pictures don't have any color profiles attached, the RGB values of pixels should generally stay intact. I don't want any color management messing with my RGB values.
_wb_
2022-05-07 07:28:02
Without color space, your RGB values may be intact but what they mean is undefined
yurume
2022-05-07 07:28:42
at *some* stage the color conversion should happen, it just tended to happen behind the scene for a long time
2022-05-07 07:29:08
if you buy a new display there is surely a color profile attached and the OS is supposed to use that
_wb_
2022-05-07 07:29:19
Some will assume sRGB, some will assume "whatever is easiest for me, i.e. assume I can just send the pixel values to the screen whatever the screen color space is"
2022-05-07 07:30:02
Untagged images and videos are basically a recipe for inconsistent results
2022-05-07 07:31:06
Which is why in jxl we made it pretty hard to do that, you _can_ have an image in "Unknown" colorspace, but libjxl will not produce that and it will probably refuse to decode it too
JendaLinda
2022-05-07 07:34:25
After all a digital picture is just an array of numbers. The purpose of image codecs is to take those numbers, compress them somehow and then decompress them to get the exact numbers (in lossless formats) or something very close (in lossy formats). And this apparently failed for me in Microsoft's AVIF and HEIC implementations.
_wb_
2022-05-07 07:37:57
Actually in our view, lossy formats have to do more than just reproduce numbers approximately. In the jxl philosophy, lossy compression is not about numerically being close (e.g. psnr), but perceptually. And that requires that the encoder knows what the numbers mean.
2022-05-07 07:39:48
But I suspect the problem you have with the MS avif/heic implementation is something like the encoder not properly setting the colorspace metadata and/or the decoder not properly taking it into account, in a way that the errors don't cancel out.
2022-05-07 07:42:14
Too often when people lazily implement a new codec, they're happy when it kind of works on some test image, but they often forget to implement everything that is needed, like properly handling alpha, grayscale, color management and animation.
JendaLinda
2022-05-07 07:43:32
I will try to do some more experiments, this is kinda new problem to me. I've noticed that cjxl assumes sRGB in untagged pictures. That's fine. It seems that sRGB is considered to be the de facto default color profile, so it behaves neutral.
_wb_
2022-05-07 07:45:39
Assuming sRGB for untagged is also the correct behavior according to e.g. W3C.
yurume
2022-05-07 07:46:17
I recall older web browsers interpreted correctly tagged sRGB PNGs somehow incorrectly, so untagged (but sRGB-coded) PNGs were much more consistent for a while
_wb_
2022-05-07 07:46:23
But cjxl always turns untagged input into tagged output so the ambiguity evaporates.
yurume
2022-05-07 07:46:27
maybe the same sort of thing is still happening now
_wb_
2022-05-07 07:48:31
ImageMagick still produces PNGs that are incorrectly tagged as gamma 2.2 with sRGB primaries, and it itself interprets that as if it's sRGB.
yurume
2022-05-07 07:49:50
using gAMA chunk instead of sRGB chunk (which overrides gAMA)?
SleepyJoe
_wb_ Actually in our view, lossy formats have to do more than just reproduce numbers approximately. In the jxl philosophy, lossy compression is not about numerically being close (e.g. psnr), but perceptually. And that requires that the encoder knows what the numbers mean.
2022-05-07 07:53:28
The mean SSIM formula afaik is one of the best measurements for perceptual differences
_wb_
2022-05-07 07:53:28
Yes
2022-05-07 07:53:52
SSIM is not that much better than PSNR
BlueSwordM
2022-05-07 07:54:41
Mean SSIM lmao.
_wb_
2022-05-07 07:54:47
It's OK when done in a perceptual space like Lab, with multi-scale, and with better pooling than just averaging
2022-05-07 07:55:45
But single-scale mean SSIM in RGB or YCbCr is not very good
BlueSwordM
_wb_ It's OK when done in a perceptual space like Lab, with multi-scale, and with better pooling than just averaging
2022-05-07 07:56:15
Ideally, we'd weigh metrics based on the worst error score ๐Ÿ˜›
2022-05-07 07:56:26
Not much having a pristine image if the sky has banding and blocks around stars.
_wb_
2022-05-07 07:58:11
Max norm is best for fidelity, but a lower norm (but still higher than just arithmetic average) correlates better with subjective results
JendaLinda
2022-05-07 07:59:41
I think the goal of lossy compression is quite simple, the imperfections should be as unnoticeable as possible. But that's a subjective thing, not very easy to measure.
yurume
2022-05-07 08:00:43
if the image gets displayed for a short amount of time, you can afford more imperfections ๐Ÿ˜‰
JendaLinda
2022-05-07 08:07:01
I guess this applies mostly for video codecs. Those can get away with more imperfections. In that case it doesn't look like a good idea to use video codecs for static pictures.
_wb_
2022-05-07 08:09:08
I agree, yet that is exactly what WebP, HEIC and AVIF do: use a codec designed for frames shown for 40ms for still images...
yurume
2022-05-07 08:10:32
there was a period of shortage of good still image formats and (otherwise suboptimal) I-frame formats filled the gap
BlueSwordM
2022-05-07 08:15:08
There was JPEG-XR which was pretty good, but since nobody asked for wide broad support, we never got it.
2022-05-07 08:15:28
That's the difference: there are now people who are actively pushing for better formats ๐Ÿ˜›
yurume
2022-05-07 08:15:41
a(n apparent) failure of JPEG XR was surprising to me
_wb_
2022-05-07 08:16:42
XR is not that great imo. It aimed to be somewhere between old jpeg and jpeg 2000 in both compression and complexity
yurume
2022-05-07 08:17:25
unfortunately j2k was too slow IIRC, and for XR MS could have done the same thing Apple did for HEIF/HEIC
_wb_
2022-05-07 08:18:29
And while it's nice that Microsoft did standardize it, they also abandoned the software for it, so all that is available is some buggy unmaintained implementation from 10 years ago
2022-05-07 08:19:07
J2K was slow in 2000 when it was introduced, but for today's cpus it's not that bad
2022-05-07 08:19:39
But the only decent j2k implementation is proprietary (kakadu), that also doesn't help
2022-05-07 08:20:43
The foss implementations of j2k are pretty bad, which gave j2k the reputation of "meh"
2022-05-07 08:21:48
When testing kakadu j2k, it usually does do similar or better than webp, which is not bad considering it is 10 years older
2022-05-07 08:21:57
I mean the format is
2022-05-07 08:22:34
But any format is only as good as the amount of love its implementations get
2022-05-07 08:23:04
Without mozjpeg, jpeg would suck significantly more, for example
JendaLinda
2022-05-07 08:24:24
I think that plain old JPEG is still considered to be good enough by most people.
yurume
2022-05-07 08:26:29
well JPEG took a long time to reach that point
2022-05-07 08:26:47
keep in mind that JPEG was first released in 1992
_wb_
2022-05-07 08:27:51
JPEG was a quantum leap: photographic images went from basically uncompressed to 1:20 compression. It made photos on the web feasible, as well as digital cameras.
2022-05-07 08:28:20
No new format can deliver an improvement that large
2022-05-07 08:29:12
But when HDR becomes more mainstream, JPEG will no longer be "good enough"
2022-05-07 08:30:09
At least not the current implementations of it. JPEG can actually do HDR, but updating the existing decoders is as much work as adding a new codec.
2022-05-07 08:31:46
Same with alpha btw: nothing in the original jpeg spec says that 4 component images can only be interpreted as cmyk, it would be perfectly possible to add a marker to indicate that it's rgba.
2022-05-07 08:32:26
But again, existing deployments would get it wrong, so it's not gonna happen.
2022-05-07 08:35:31
The original jpeg spec was exceptionally far-sighted: they anticipated a need for 12-bit, 4-component images. Only nobody implemented the full spec, so we're stuck with the crippled de facto standard.
JendaLinda
2022-05-07 08:44:19
As I'm mostly interested in lossless compression, I'm looking at the lossless options of the available codecs. I was using multiple formats, BMP, PCX, GIF (for still images) and finally PNG, which I'm using until now. What I like about PNG, it has multiple indexed color formats and I have a full control over it. I can also easily edit the color palette. None of the modern codecs seems to provide such functionality.
yurume
2022-05-07 08:48:40
isn't the palette a means to compression and not necessarily anything else
_wb_
2022-05-07 08:50:39
In jxl we see palette as a coding tool, not a property of an image. We could change that and expose palette in the api, but it would require quite a bit of plumbing to allow palette editing without re-encoding the indexed data.
2022-05-07 08:51:50
Palettes in jxl can be used for an arbitrary number of channels, and single-channel palettes can be quite useful in cases where not the whole range is used.
2022-05-07 08:52:23
Palettes can also be used after RCTs, and can be done globally on the whole image but also locally on single groups
2022-05-07 08:53:19
The palette itself is compressed too, it's treated as an nb_colors x nb_channels image
2022-05-07 08:54:21
Also indices outside the range can be used and they have a predefined meaning, so a 0-color palette is actually still useful.
2022-05-07 08:54:53
And then you can have palette entries that are not absolute colors but deltas w.r.t. a predictor
2022-05-07 08:56:15
So all in all it's a way more powerful coding tool than just the 8-bit absolute-colors-only palettes of PNG and GIF.
JendaLinda
2022-05-07 08:57:12
The purpose of color palettes was changed, but the concept of indexed colors originated in the old days, when computers could display just a limited number of colors at the same time.
_wb_
2022-05-07 08:58:43
Yes, you can see that in PNG which has a chunk to store a recommended palette to use to render a full-color image with.
2022-05-07 09:00:55
I think the best approach is if image editors just detect low color count and then offer an interface for color remapping, without seeing it as something that is tied to the image format directly.
2022-05-07 09:01:39
That would also allow to get rid of the arbitrary limit of 256 colors
2022-05-07 09:02:21
300-color palettes can still make sense and can result in great compression in jxl
JendaLinda
2022-05-07 09:03:32
PNG is kind of bridge from the ancient formats like BMP or PCX, that were often in 16 or 256 colors. But PNG is still relevant today and can store those old pictures exactly like in the original formats.
2022-05-07 09:04:21
It seems JXL could do that too but it's kinda more complex.
_wb_
2022-05-07 09:05:39
Well a jxl encoder could take a png8 and translate the palette directly to a jxl palette transform without going to rgb(a) pixels first. But we don't have that in the libjxl api atm.
2022-05-07 09:06:49
Decode-side, it could be detected that a global palette uses at most 256 colors and no deltas, and it could then be exposed as being "the image palette"
2022-05-07 09:07:39
But it's a bit of a niche/legacy functionality that isn't likely to get prioritized anytime soon, I think
JendaLinda
2022-05-07 09:10:34
I see. At least there is an theoretical option.
2022-05-07 09:13:02
Lossless WebP for example uses color palettes too, but those seem to be completely hidden.
The_Decryptor
yurume I recall older web browsers interpreted correctly tagged sRGB PNGs somehow incorrectly, so untagged (but sRGB-coded) PNGs were much more consistent for a while
2022-05-08 12:34:47
I know Firefox for the longest time only did colour management of tagged images, so tagging them as sRGB would cause them to get corrected while page elements and untagged images were left "as is"
Pashi
_wb_ Same with alpha btw: nothing in the original jpeg spec says that 4 component images can only be interpreted as cmyk, it would be perfectly possible to add a marker to indicate that it's rgba.
2022-05-08 10:52:50
That doesnโ€™t sound like a very radical or intrusive thing to change/add
2022-05-08 10:53:36
Why is the actual spec so supposedly difficult to implement properly? Doesnโ€™t jpeg have a very well defined spec?
_wb_
2022-05-09 05:03:04
That's not the issue. The thing is the first implementations only implemented the parts of the spec that they considered most useful at the time (and in case of arithmetic coding, the parts that they could legally use without royalties)
veluca
2022-05-09 05:03:06
"very well defined" is, at best, a wish xD
Traneptora
2022-05-09 01:47:33
finalized my colorspace patch fix for FFmpeg, hoping it's merged soon
novomesk
2022-05-11 08:31:38
Krita digital painter/editor application added code to support JXL: https://invent.kde.org/graphics/krita/-/tree/master/plugins/impex/jxl It seems they use new API functions (it will not work against libjxl 0.6.1). When you have time, test/review their implementation.
2022-05-11 08:35:51
I noticed it because of the bug report https://bugs.kde.org/show_bug.cgi?id=453572
_wb_
2022-05-11 09:57:14
Nice!
BlueSwordM
2022-05-12 05:50:54
I would like to post this image: https://cdn.discordapp.com/attachments/856383302097043497/974185224206422086/unknown.png
_wb_
2022-05-12 07:15:07
and that's _before_ the actual compression, right? so assuming lossless yuv444?
veluca
2022-05-12 08:25:05
what does "visual threshold" mean? ๐Ÿ˜‰
_wb_
2022-05-12 08:43:19
deltaE < 1 ๐Ÿ™‚
2022-05-12 08:44:15
https://en.wikipedia.org/wiki/Color_difference#CIEDE2000
2022-05-12 08:45:17
obviously that difference metric does not take any spatial properties into account, it's just saying if two colors can somehow be distinguished or not
2022-05-12 10:43:32
I guess https://github.com/libjxl/libjxl/blob/main/doc/software_support.md could use an update. Anything to add besides ffmpeg and krita?
2022-05-12 10:44:57
(and what would be good links to use for jxl support in ffmpeg and krita?)
Diamondragon
2022-05-12 11:20:56
Regarding JPEG XL in FFmpeg, this could work: https://github.com/FFmpeg/FFmpeg/search?q=jpeg-xl&type=commits
2022-05-12 11:21:21
Or a media report: https://www.phoronix.com/scan.php?page=news_item&px=FFmpeg-JPEG-XL-Lands
2022-05-12 11:25:41
As for Krita, this might do: https://invent.kde.org/graphics/krita/-/commit/13e5d2e5b9f0eac5c8064b7767f0b62264a0797b
2022-05-12 11:30:13
As for image viewers, Tachiyomi (a comic/manga reader for Android) can read locally stored `.cbz` and `.cbr` archives with JPEG XL pages. https://github.com/tachiyomiorg/tachiyomi/releases/tag/v0.12.1 https://tachiyomi.org/
BlueSwordM
veluca what does "visual threshold" mean? ๐Ÿ˜‰
2022-05-12 04:53:14
https://professional.dolby.com/siteassets/pdfs/ictcp_dolbywhitepaper_v071.pdf
eddie.zato
2022-05-13 05:58:06
SumatraPDF users can vote https://sumatrapdf.canny.io/feature-requests/p/support-jpeg-xl-image-format
.vulcansphere
2022-05-15 08:09:49
As a KDE user, hoping Debian developers will package libjxl soon (I'm not a Debian user but it would be nice for Debian contributors who looking forward to play with <:JXL:805850130203934781> , I'm using Arch)
veluca
2022-05-15 08:16:26
they did
2022-05-15 08:16:32
it's in experimental though
.vulcansphere
2022-05-15 08:26:16
Ah, good to hear that
fab
veluca they did
2022-05-15 10:04:56
PDF doesnt support JPEG XL. They said on 2026
VEG
eddie.zato SumatraPDF users can vote https://sumatrapdf.canny.io/feature-requests/p/support-jpeg-xl-image-format
2022-05-15 12:43:31
Can't login there (using GitHub) for some reason.
2022-05-15 12:43:43
Maybe it is just broken in Firefox ๐Ÿ˜ฆ
2022-05-15 12:52:11
Yeah, it worked in Chrome/Edge
2022-05-15 12:52:36
Hate when developers don't test their code in Firefox
fab
2022-05-15 01:09:41
Pdf association said JPEG XL is planned after five years, not now.
_wb_
fab Pdf association said JPEG XL is planned after five years, not now.
2022-05-15 02:00:19
where did you find info on what the plans are for PDF?
fab
2022-05-15 02:42:33
https://youtu.be/cY5QNN946QI
2022-05-15 02:44:46
31:54
_wb_
2022-05-15 02:59:21
Oh, that's just someone making a guesstimate, not sure if that means too much
tufty
2022-05-21 01:08:27
libvips 8.13 will support ICC profile load and save plus linear float sRGB in JXL https://github.com/libvips/libvips/pull/2815 any review very welcome etc. our wishlist is now just: - exif and xmp (I see this is already in main, woo!) - progressive (eg. tile-based) read and write
2022-05-21 01:16:09
The "vipsdisp" image viewer supports JXL: https://flathub.org/apps/details/org.libvips.vipsdisp It could perhaps be mentioned in software_support.md it's quite a fancy viewer: it decodes image tiles asynchronously at a range of scales to a set of textures on your GPU using a pool of background worker threads then as you pan and zoom, updates the screen at 60 fps from that sparse tree of textures result: 60fps pan and zoom of huge images (eg. 300,000 x 300,000 pixels or more) on a modest laptop It has some visualization options too, eg. false colour, log scale, brightness and contrast, animation support, plane-separated support, OME-TIFF etc.
Deleted User
2022-05-21 03:43:27
does it support 10 bit in fullscreen or dithering to 8 bit?
tufty
does it support 10 bit in fullscreen or dithering to 8 bit?
2022-05-21 04:34:18
it uses the gtk4 GL stack, so it's just 8 bit, unfortunately -- perhaps they'll improve this you can view HDR images and adjust the brightness and contrast as float values, for what that's worth
BlueSwordM
2022-05-25 12:00:15
Hmm, this is interesting in ffmpeg(git ffmpeg, git libjxl): `[libjxl @ 0x30b97c0] Failed to set JxlColorEncoding` This happens when encoding lossless using ffmpeg libjxl.
Traneptora
BlueSwordM Hmm, this is interesting in ffmpeg(git ffmpeg, git libjxl): `[libjxl @ 0x30b97c0] Failed to set JxlColorEncoding` This happens when encoding lossless using ffmpeg libjxl.
2022-05-25 02:09:04
currently working on a patch rn to redo the color logic in the wrapper
2022-05-25 02:09:13
so stay tuned (TM)
2022-05-25 02:09:32
or rather, it's currently dependent on *another* patch I'm working on
2022-05-25 02:09:36
once I get that merged I can start on it
WAZAAAAA
2022-05-25 02:16:15
so Firefox JXL support is allegedly only available in the Nightly version of the browser behind a flag right `image.jxl.enabled` well finds out the flag doesn't work on the Unbranded Builds (which are marked as Nightly in the Help->About Firefox page) <https://wiki.mozilla.org/Add-ons/Extension_Signing#Unbranded_Builds>, rip
BlueSwordM
Traneptora once I get that merged I can start on it
2022-05-25 02:44:34
I see.
.vulcansphere
WAZAAAAA so Firefox JXL support is allegedly only available in the Nightly version of the browser behind a flag right `image.jxl.enabled` well finds out the flag doesn't work on the Unbranded Builds (which are marked as Nightly in the Help->About Firefox page) <https://wiki.mozilla.org/Add-ons/Extension_Signing#Unbranded_Builds>, rip
2022-05-25 02:47:21
Yup, can confirm (Vulcan using Nightly as daily driver so not a big hurdle personally but still hoping for support for non-nightly Firefox to aid wider adoption)
BlueSwordM
2022-05-25 02:49:20
However, the flag might be brought to mainline builds relatively soon due to the improvements in support.
.vulcansphere
2022-05-25 02:49:28
Let's hope so
w
2022-05-25 10:36:41
first I heard of unbranded builds
Fraetor
2022-05-26 11:47:26
I think it is a relic of the times when there were issues with distributing Firefox due to the Firefox name and logo being trademarks.
2022-05-26 11:48:41
Which is why you got things like iceweaslie originally. I'm pretty sure all of the legal issues have been worked out now though, so people just distribute normal Firefox.
improver
2022-05-26 12:06:51
i think it also allows unsigned add-ons
ven
2022-05-28 04:45:51
does some kind of javascript/wasm decoder for jxl images for users' browsers that don't have the a jxl flag enabled exist? if it does, why isn't it on the jxl art website? admittedly it seems somewhat pointless to serve potentially megabytes of wasm over the wire just to load smaller images... but i was thinking it might make browsing the jxl art gallery more "hassle-free" for casual users
w
2022-05-28 04:58:41
what about using embed.moe
_wb_
2022-05-28 06:54:46
There is a wasm jxl decoder, it can even do HDR using the experimental HDR canvas
2022-05-28 06:55:43
<@811568887577444363> we should probably demo it on jpegxl.info too.
yurume
2022-05-28 07:15:30
actually I couldn't get https://eustas.github.io/jxl-demo/ working either
diskorduser
2022-05-31 12:51:18
It's working on Android Chrome beta
2022-05-31 12:51:45
Jim
2022-05-31 07:33:14
It works in Chrome/Chromium if I enable experimental features flag. In Firefox the picture doesn't show (not sure what feature it would actually need).
_wb_
2022-05-31 08:17:29
It uses the HDR canvas
2022-05-31 08:17:44
Which is currently experimental, the normal canvas is SDR
Diamondragon
Jim It works in Chrome/Chromium if I enable experimental features flag. In Firefox the picture doesn't show (not sure what feature it would actually need).
2022-05-31 08:21:59
For Firefox, you need to use nightly. Then, go to 'about:preferences#experimental', and scroll down until you see the checkbox for JPEG XL.
_wb_
2022-05-31 08:22:38
Yeah that will make jxl work directly
2022-05-31 08:23:01
This demo is a wasm-based polyfill
2022-05-31 08:23:47
Could probably be made to use the standard SDR canvas as a fallback so it works on every browser regardless of flags set
2022-05-31 08:24:25
In the current demo it uses the HDR canvas, which is currently an experimental feature of chrome only afaiu
Jim
_wb_ In the current demo it uses the HDR canvas, which is currently an experimental feature of chrome only afaiu
2022-05-31 09:16:04
I saw it was using canvas so I was confused as to why it didn't work. Seems odd that it requires HDR canvas, should work with both.
_wb_
2022-05-31 09:20:18
well that current demo code does this: let ctx = canvas.getContext("2d", {colorSpace: colorSpace, pixelFormat: "float16"}); let pixels = ctx.getImageData(0, 0, w, h, {colorSpace: colorSpace, storageFormat: "float32"});
2022-05-31 09:20:45
which I'm quite sure will not work with a normal SDR canvas ๐Ÿ™‚
Pashi
2022-06-08 01:40:56
Debian is and has always been cringe
WAZAAAAA
2022-06-08 02:41:21
Arch gang
diskorduser
Pashi Debian is and has always been cringe
2022-06-08 02:51:29
Why
Orum
2022-06-08 05:23:47
eternally out of date
_wb_
2022-06-08 05:29:21
I use Debian unstable
Orum
2022-06-08 05:34:45
so only slightly out of date compared to all other distros? ๐Ÿ˜„
_wb_
2022-06-08 06:21:25
I use git versions for the things I am interested in, debian unstable is good enough for the rest imo
Fraetor
2022-06-08 08:02:11
I run unstable as well. I use flatpak for most of my applications though, which keeps them up to date.
2022-06-08 08:07:00
The big one that I donโ€™t is Firefox, as I use one too many extensions that do IPC.
Moritz Firsching
2022-06-09 01:02:41
I'm not entirely sure that the place there is the right ask for improvements to github, but I made this: https://github.com/github-community/community/discussions/18139 to propose to allow uploading jxl images with their file extension..
2022-06-09 01:06:34
please upvote, if you think it is a good idea to allow this...
.vulcansphere
2022-06-09 01:21:47
Using Arch testing + unstable KDE + embracing new formats like JXL here
2022-06-09 01:22:53
Vulcan can be very extreme in term of early adoption of technology <:ChizuWink:857418269647700003>
_wb_
2022-06-09 06:21:19
https://twitter.com/jensimmons/status/1534624072197341185?t=LK8sbe6vir4_lvWAo5h6wg&s=19
2022-06-09 06:22:47
Poll is phrased quite ambiguously (those are two very different questions), but still, might be useful to use this opportunity to tell Safari devs that people want to use jxl...
2022-06-10 05:22:33
The poll was not formulated well: for the first question, the answer can basically only be jpeg/png, since those are the only formats with truly universal browser support, so you'll _always_ have to provide a jpeg/png fallback. The second question is a very different question though.
Moritz Firsching
2022-06-10 11:45:36
I haven't tried this in detail, but it seems like it...
eddie.zato
2022-06-13 06:33:09
I would like to remind about expiration of the JXL flag in Chrome. Canary branch is already 105. ```json { "name": "enable-jxl", "owners": [ "deymo", "firsching", "lode" ], "expiry_milestone": 105 }, ```
_wb_
2022-06-13 07:54:36
<@795684063032901642>
Moritz Firsching
2022-06-16 07:02:21
I agree that it is about time for bumping the expiry milestone, wip here: https://chromium-review.googlesource.com/c/chromium/src/+/3706869
yurume
2022-06-16 07:08:36
what's the eventual plan? say, is libjxl 1.0 a requirement?
Moritz Firsching
2022-06-16 07:08:58
for what?
yurume
2022-06-16 07:16:33
uh, enabling it by default?
2022-06-16 07:17:13
honestly I don't know much about Chromium development process and I guess there would be fractional rollout as well though
Moritz Firsching
2022-06-16 07:36:03
I think the specific libjxl version has little to do with enabling the flag by default (or eventually removing the flag). Those are somewhat independent, if I understand correctly: if there would have been a strong interest to enable the flag by default, chrome could have used a pre-1.0 version. (There are some requirements on security and stability on a release used for chrome, which is why we don't always run the latest jxl version in chrome, I guess)
novomesk
2022-06-23 12:03:58
https://krita.org/en/item/first-beta-for-krita-5-1-0-released/
2022-06-24 07:25:57
https://invent.kde.org/graphics/digikam/-/blob/v7.7.0/NEWS JPEG XL should work out of box in those installers. Download: https://download.kde.org/stable/digikam/7.7.0/
2022-06-24 07:27:29
https://www.reddit.com/r/kde/comments/vinqe7/digikam_770_is_tagged_and_will_be_released_in_a/
Traneptora
2022-06-30 09:59:37
does anybody have any news about Firefox and JPEG XL or is it still the status quo?
w
2022-06-30 10:01:11
<:Sadge:815191758152663062>
Traneptora
2022-06-30 10:05:34
rip
_wb_
2022-07-01 05:03:19
Still the status quo afaik.
Moritz Firsching
2022-07-01 08:20:42
seems like the Firefox derived Pale Moon browser is preparing to include JPEG XL: https://repo.palemoon.org/MoonchildProductions/UXP/pulls/1928/
Jim
2022-07-01 02:36:51
Bigger question... why don't they submit their work upstream and get it working in FF so it can filter down?
w
2022-07-01 02:50:55
i thought about it but there really isnt a point to
2022-07-12 03:22:44
my firefox jxl patches are a year old
2022-07-12 03:22:57
happy birthday
Traneptora
2022-07-12 09:47:06
<:poggies:853085814032302122>
monad
2022-07-13 04:40:04
back when we still had hope
_wb_
2022-07-13 06:24:06
Browser adoption may not be going as fast as hoped, but I still hope it'll get there eventually (possibly when we have a libjxl 1.0). But general adoption is going relatively fast and well imo.
2022-07-13 06:28:43
Things will obviously take time, but I can imagine that in 1-2 years, giants like Adobe and Microsoft could support jxl out of the box in their products. At least I am hearing credible rumors that go in that direction. Only from Apple I get no signals at all, but that's to be expected.
2022-07-14 06:11:49
Well I know they're looking into making a hw implementation of jxl, which would be mainly used in cameras I suppose. Hardware inherently moves a lot slower than software though.
monad
2022-07-14 06:15:59
Yes, that one Japanese company.
Jim
2022-07-14 10:25:30
OS support takes a LONG time. That will take a while. I would guess within the next year some cameras will start adopting it. Chrome will likely be the first browser to adopt - hopefully this year. Firefox will likely have to get pushed to do so afterward. Safari utilizes OS-level support for images so it will be a while before they add it (it took a long time to get webp added and AVIF is supposedly in the works).
Pashi
2022-07-16 10:10:37
Literally all that browsers want is a reliable decoder. Preferably a simple one that doesn't have a million dependencies.
2022-07-16 10:11:24
Any improvements you make to the encoder won't affect browser adoption at all.
2022-07-16 10:11:40
Or to any APIs that are only useful for encoding
2022-07-16 10:14:58
Does the latest release of libjxl provide a reliable decoder API that browsers want?
_wb_
2022-07-16 10:46:40
Well <@795684063032901642> and co are doing both chromium integration and the libjxl api implementation, so I think we do the things needed for browser adoption
2022-07-16 10:47:12
Decoder dependencies and binary size were even considered already in the bitstream design phase
2022-07-16 10:48:38
One thing that makes browser adoption trickier is that we can do progressive - decoder apis are a lot simpler if it's just "bitstream in, final image buffer out"
Jim
2022-07-24 01:37:21
https://www.phoronix.com/news/FFmpeg-5.1-Released
2022-07-24 01:37:49
FFmpeg 5.1 was released with JXL support
Cendyne
2022-07-24 06:48:00
How does it integrate with a libjxl version that does not exist yet
_wb_
2022-07-24 06:48:50
The git version has called itself 0.7 for a while now
Traneptora
2022-07-26 08:22:59
^
2022-07-26 08:24:35
that's mostly to make it fail with distro-packaged 0.6.1
username
2022-08-08 10:35:17
this is a directshow filter that allows you to open images in direcshow media players in windows and while it's support for jxl was added back in 2021 I figured I would still post it here https://github.com/v0lt/ImageSourceFilter
2022-08-08 10:36:28
let's you basically use your media player as a image viewer (if it's directshow based)
Jyrki Alakuijala
2022-08-10 12:17:54
I think we need to have more activity on https://bugs.chromium.org/p/chromium/issues/detail?id=1178058
2022-08-10 12:18:19
having more comments there would help Chrome to understand the basic attitude for JPEG XL (vs. AVIF)
2022-08-10 12:19:19
currently they see that JPEG XL is confusing people, and they themselves don't understand the value that JPEG XL brings
2022-08-10 12:19:29
this confusion is supposedly slowing down AVIF adoption
fab
2022-08-11 07:19:58
diskorduser
2022-08-11 08:39:06
what?
fab
2022-08-11 08:40:25
updated version
2022-08-11 08:41:24
you don't get with the english, because the authors want to left it blank for some way
diskorduser
2022-08-11 08:42:34
ok good
fab
2022-08-11 08:59:50
Can you post what you get searching jpeg xl in Google English
Kleis Auke
2022-08-14 11:30:51
https://github.com/kleisauke/wasm-vips, the WebAssembly binding for libvips, is currently experimenting to support JPEG XL images, see: <https://github.com/kleisauke/wasm-vips/pull/21> It can be tested on this playground: <https://wasm-vips.kleisauke.nl/playground-jxl/>, ~~though encoding doesn't seem to work for now (due to <https://github.com/libvips/libvips/issues/2987>)~~ **Edit:** this should be fixed now, see PR <https://github.com/libvips/libvips/pull/2988>.
Deleted User
Jim OS support takes a LONG time. That will take a while. I would guess within the next year some cameras will start adopting it. Chrome will likely be the first browser to adopt - hopefully this year. Firefox will likely have to get pushed to do so afterward. Safari utilizes OS-level support for images so it will be a while before they add it (it took a long time to get webp added and AVIF is supposedly in the works).
2022-08-15 11:03:21
there's a flag in about:config in ff, `image.jxl.enabled` though when i turn it on i still can't view jxl images in browser
2022-08-15 11:03:49
i've heard it only functions on nightly, but then i wonder why they put the flag in the dev version if it doesn't work
2022-08-16 12:43:43
thanks
2022-08-16 12:43:54
ill wait a bit, its likely going to be compiled-in soon
w
2022-08-16 12:54:04
soon tm
2022-08-16 12:54:20
it's been like 2 years
Brinkie Pie
i've heard it only functions on nightly, but then i wonder why they put the flag in the dev version if it doesn't work
2022-08-16 08:19:49
They apparently consider it experimental, so they use a conditional check if 1. the flag is set, AND if 2 the browser version is nightly. Maybe it was an accident and they meant to do an OR-check. Or maybe they are worried about exploits and intentionally want to prevent from people "just turning it on", but that's a far fetched guess.
_wb_
2022-08-16 09:13:21
it's likely mostly that they don't want to add binary size for default-off features, I suppose
Brinkie Pie
2022-08-16 10:46:49
that makes also a lot of sense
Deleted User
w it's been like 2 years
2022-08-17 03:13:53
do you know when they added the flag
2022-08-17 03:14:05
2020 ?
2022-08-17 03:14:57
if it's only recently added then it will take even longer
w
do you know when they added the flag
2022-08-17 03:15:50
<https://bugzilla.mozilla.org/show_bug.cgi?id=1707590>
Deleted User
2022-08-17 03:16:04
1 year ago
2022-08-17 03:16:35
opened 2021-04-26
2022-08-17 03:16:51
inactive until 8 days ago
2022-08-17 03:17:39
https://phabricator.services.mozilla.com/D154154
2022-08-17 03:17:54
`Bug 1707590 - Part 4: Add references to libjxl and highway in about:license r=glandium` `Authored by saschanaz on Tue, Aug 9, 8:23 PM.`
2022-08-17 03:18:02
might be soon then
Pashi
_wb_ One thing that makes browser adoption trickier is that we can do progressive - decoder apis are a lot simpler if it's just "bitstream in, final image buffer out"
2022-08-17 05:40:51
I am admittedly not up to date on the progress being made but from what I understand browsers are still waiting until a stable decode API is promised and provided, right? And as far as progressive goes, I assume it would have to be implemented the same way all other image decoders are implemented in web browsers, by looking at what API browsers currently use to decode JPEG and PNG for example, and provide equivalent functions for JXL. Even non-progressive-encoded images are decoded progressively by browsers. You can watch them load from the top down to the bottom. Updating as new data comes in.
w
2022-08-17 05:43:35
from what i remember every format is done very differently (in firefox)
190n
2022-08-17 06:30:34
lmfao
Jim
2022-08-18 01:25:19
https://9to5linux.com/krita-5-1-released-with-jpeg-xl-support-full-webp-support-psd-improvements-and-more
2022-08-18 01:25:36
Krita 5.1 now has JXL support.
improver
2022-08-18 03:40:10
i really really like that mascot
Fox Wizard
2022-08-18 05:09:19
Sus
_wb_
2022-08-20 06:59:38
https://www.reddit.com/r/jpegxl/comments/ws4jim/jpegxl_on_by_default_in_thorium_chrome_optimized/
2022-08-20 07:17:36
https://www.omglinux.com/krita-5-1-0-released-with-webp-jpeg-xl-support/
2022-08-20 07:22:30
I'm considering it a good sign for the broad adoption of jxl that software like Krita is announcing jxl support now already (1.5 years after informal bitstream freeze, 5 months after ISO/IEC 18181-1 was published), at the same time it is announcing WebP support (11 years after it was created).
2022-08-20 07:36:26
https://blender.community/c/rightclickselect/K8pn/?sorting=hot
Traneptora
2022-08-20 04:00:45
I added a comment to that <:kek:857018203640561677>
Eugene Vert
2022-08-20 04:19:57
https://github.com/image-rs/image/issues/1765
novomesk
2022-08-24 08:38:56
I am using Kdenlive video editor and JXL images can be now used as input. https://kdenlive.org/en/2022/08/kdenlive-22-08-released/
Jim
2022-08-24 10:24:31
Adobe has now posted on the Chromium bug as well and are requesting support for JXL and announcing one of their products will soon support it! https://bugs.chromium.org/p/chromium/issues/detail?id=1178058#c61
fab
2022-08-24 10:59:41
I read the entire libjxl code in 22:58 minutes with music
2022-08-24 11:00:02
130.000 deletions in libjxl-tiny
hotsauce
Jim Adobe has now posted on the Chromium bug as well and are requesting support for JXL and announcing one of their products will soon support it! https://bugs.chromium.org/p/chromium/issues/detail?id=1178058#c61
2022-08-24 03:50:05
That's pretty big news about Adobe. I have been wondering about them, because they haven't really done much with HEIF or AVIF. Very exciting
Jim
2022-08-24 05:05:26
Not really, they've already signaled support for it ( https://bugzilla.mozilla.org/show_bug.cgi?id=1539075#c19 ), along with Facebook/Instagram ( https://bugzilla.mozilla.org/show_bug.cgi?id=1539075#c18 ), Smugmug/Flickr ( https://bugzilla.mozilla.org/show_bug.cgi?id=1539075#c23 ), The Guardian newspaper ( https://bugzilla.mozilla.org/show_bug.cgi?id=1539075#c27 ), and CDN Cloudflare ( https://github.com/mozilla/standards-positions/issues/522#issuecomment-852891626 ). Of course Cloudinary CDN is also interested being a major backer of it and I've seen a few other CDNs show interest as well and are watching carefully. It takes a while for Adobe to support new formats so it's only a matter of time before Photoshop and their other software gain support. I've also heard of internal interest from photo sites like Pinterest. I know Adobe already supports AVIF. Not sure about HEIF.
_wb_
2022-08-24 05:29:08
A public announcement that it will be supported in a future Adobe product is a stronger signal than an expression of interest though, so it's a nice step forwards.
2022-08-24 05:30:07
(I already knew this before, but only from sources that asked me to keep it confidential)
Jim
2022-08-24 09:33:41
It's really implied that it will be supported by their own software when companies express interest in it. Would be strange to promote it then not support it. As pointed out on Reddit, the next big piece of support would be the camera manufacturers chiming in.
_wb_
2022-08-24 09:45:55
They likely need time. There is no hardware implementation yet atm.
hotsauce
2022-08-24 11:33:40
intel chimed in now too. build the wave, ride the wave!
Jim
2022-08-25 12:22:25
Yep, Intel is in support: https://bugs.chromium.org/p/chromium/issues/detail?id=1178058#c64
2022-08-25 12:24:32
Well, hopefully. I looked up the name and there is a person with that name who works for Intel, but a Gmail account was used, so can't be 100% certain.
190n
2022-08-25 12:38:54
afaik that's still correct. redhat supposedly has people working on it, which would definitely be for wayland, not x11.
w
2022-08-25 01:10:47
<https://gitlab.freedesktop.org/wayland/weston/-/issues/467>
2022-08-25 01:15:17
and somehow color management is still bad in chrome
Deleted User
2022-08-25 04:55:27
4 years <https://bugzilla.mozilla.org/show_bug.cgi?id=1539075>
2022-08-25 05:00:44
4 months <https://bugzilla.mozilla.org/show_bug.cgi?id=1765908> for QOI
2022-08-25 05:01:28
what's taking so long ๐Ÿ•˜ they already added AVIF
190n
2022-08-25 05:04:30
well don't count on them adding qoi lol
yurume
2022-08-25 05:10:33
mozilla already has rejected mng in favor of apng, for many reasons but including a much larger binary footprint; avif is probably similarly benefited from that
Deleted User
2022-08-25 10:43:35
i think i know the reason
2022-08-25 10:44:17
users need to come into contact with the format regularly for them to consider adoption, niche projects are not a priority
2022-08-25 10:44:54
trying to see this from a developer priorities standpoint
2022-08-25 10:47:36
unlike image viewers which are quick to adding them, since their purpose is to view things
2022-08-25 10:47:46
not browse the web
2022-08-25 10:49:48
if the formats i listed were to be supported right now nobody would really notice except the developers and everyone here
2022-08-25 10:50:04
and the people that know about the formats
2022-08-25 10:50:16
which is a small amount of internet users
_wb_
2022-08-25 11:05:21
Formats like qoi and mng don't really bring anything useful for the web imo. There's nothing you can do with them that you can't also do better with something else.
2022-08-25 11:05:46
So it makes a lot of sense for browser devs to push back against those.
2022-08-25 11:07:51
However I do think jxl is very useful for the web. It does many things better than anything else that is currently available on the web platform.
Jim
2022-08-25 09:24:35
A photographer and Krita HDR developer are supporting JXL on Chrome: https://bugs.chromium.org/p/chromium/issues/detail?id=1178058#c66
monad
2022-08-26 12:24:30
"a photographer" <:Thonk:805904896879493180>
Deleted User
_wb_ However I do think jxl is very useful for the web. It does many things better than anything else that is currently available on the web platform.
2022-08-26 04:04:27
truly
Demez
2022-08-26 06:38:26
is there any deadline for the chrome bug tracker, or is it just a sit and hope for the best kind of thing?
_wb_
2022-08-26 07:25:19
The chrome review thing is on Monday Aug 29th, so if you want to influence that, I guess that's a deadline (and I don't know what time that review is, but probably better to not wait until the last moment).
Demez
2022-08-26 07:26:51
I don't have anything to say myself, I'm just spectating it really hoping it goes through
2022-08-26 07:28:05
though I would assume discord is going to be another hurdle, with only supporting a few specific image formats for their servers to embed
2022-08-26 07:29:28
can't even embed animated webp's lol
_wb_
2022-08-26 07:30:11
there will always be a long tail of software that is slow to adopt anything new
2022-08-26 07:32:53
I just hope this chrome review is not going to lead to a "no, avif is good enough" position. I'm of course hoping for a "yes", but I'm concerned that "no" or "let's wait" are likely outcomes too.
2022-08-26 07:34:42
As far as I understand, it's the avif proponents who initiated the review in the first place, and I'm assuming they did not do that to get jxl support enabled, but rather to remove what they see as an obstacle to avif adoption.
JendaLinda
2022-08-26 07:58:08
Honestly, I see nothing interesting about AVIF, it's just another lossy compression, so we could just use WebP instead. I'm not going to be using AVIF any time soon.
novomesk
2022-08-26 09:21:00
I suggest that anyone add specific info that some on the other popular applications have JPEG XL support already: IrfanView since 2021-12-01 https://www.irfanview.com/history_old.htm digiKam since 2022-06-26 https://www.digikam.org/news/2022-06-26-7.7.0_release_announcement/ qimgv since 2021-09-22 https://github.com/easymodo/qimgv/releases/tag/v1.0.0 I also know that that darktable is preparing JXL support too ( https://github.com/darktable-org/darktable/pull/10044 ) and they are also quite known/popular application.