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?

raysar
2021-01-26 04:43:27
xnview mp don't support jxl create by imagemagick but it have an build in jxl decoder and encoder :/
_wb_
2021-01-26 04:44:59
it probably uses an old version of jxl before the bitstream was frozen then
raysar
2021-01-26 04:48:21
yes, i will report it in the forum. Who know graphic windows/android programs reading jxl?
2021-01-26 04:49:08
darktable don't support it now.
_wb_
2021-01-26 04:51:21
not much yet, but I guess we should get the libjxl api stable before opening issues in all the relevant software
2021-01-26 04:52:33
or we could open the issues already so they can start working on integration in a branch
2021-01-26 04:53:04
best to wait for stable libjxl api though before compiling with jxl support by default
raysar
2021-01-26 04:55:03
xnview mp use libJPEGXL.dll if i replace it with a more recent binary it will works. But i don't know who built it and where i can find it.
2021-01-26 05:01:41
When you speak about api, you speak about stability of parameters of the encoder? (i'm not a developer)
_wb_
2021-01-26 05:03:14
it's the way the library gets called: what functions you can call, in what form you get the result, etc
2021-01-26 05:03:31
if we change that, stuff breaks
raysar
2021-01-26 06:26:05
ImageGlass (windows) support jxl: https://imageglass.org/moon
2021-01-26 06:29:08
Nomacs (multiplateform) support jxl with an extension: https://www.reddit.com/r/jpegxl/comments/l4nwb2/how_to_view_jpeg_xl_images_in_nomacs_for_windows/
Dr. Taco
2021-01-27 06:20:36
https://caniuse.com/?search=jxl
Orum
2021-01-27 06:26:29
we've asked them to add it
_wb_
2021-01-27 06:27:09
https://github.com/Fyrd/caniuse/issues/5041
Deleted User
2021-01-28 11:11:51
https://github.com/rouault/gdal/tree/jxl is a work in progress to encapsulate jxl compressed tiles (usually 512x512) inside a TIF container
2021-01-28 11:15:16
I'm not sure if this is the place to ask, but https://github.com/rouault/gdal/commit/8aac52b8bc8a3c1a3d550822da4ec28a26eed760 had to be added as a workaround as JxlDecoderReleaseInput consistently returned a non zero amount of remaining bytes after JXL_DEC_FULL_IMAGE was returned.
lvandeve
2021-01-28 11:38:22
how could I reproduce this to try to investigate and fix?
Deleted User
2021-01-28 11:42:12
<@!768090355546587137> if you are willing to compile a gdal tree from that branch, reproducing should be straightforward
lvandeve
2021-01-28 11:43:18
does this happen on all images?
Deleted User
2021-01-28 11:43:25
yes
2021-01-28 11:44:16
well, it happens on all 16bit lossless ones. I haven't tried other configurations
lvandeve
2021-01-28 11:45:16
it can happen that release returns non-0 though, if bytes past the jxl file itself are given
2021-01-28 11:45:26
it should indicate that it's done with the JXL_DEC_SUCCESS status
2021-01-28 11:45:53
and any non-zero value that release returns then indicates how many bytes of the input have been consumed as jxl bytes, and which ones are the rest of the non-jxl contents around it
2021-01-28 11:47:00
JXL_DEC_FULL_IMAGE is not necessarily the last event returned, there could be more animation frames with more JXL_DEC_FULL_IMAGE in them. JXL_DEC_SUCCESS is the last event
Deleted User
2021-01-28 11:47:17
let me check, but that should not be the case. the input bytes should be the exact same bytes that were output by the jxl encoder, i.e. with no trailing bytes
2021-01-28 11:47:54
in this case, there is a single frame
lvandeve
2021-01-28 11:48:30
> JxlDecoderReleaseInput consistently returned a non zero amount of remaining bytes after JXL_DEC_FULL_IMAGE was returned
2021-01-28 11:48:49
If you try one more call to processinput, and it returns JXL_DEC_SUCCESS, does release still return a non-0 value then?
Deleted User
2021-01-28 11:49:21
give me a few minutes to try that out
2021-01-28 11:54:32
so the next call returns JXL_DEC_SUCCESS
2021-01-28 11:55:30
the remaining bytes returned by JxlDecoderReleaseInput is the exact size of the input buffer
_wb_
2021-01-28 12:18:45
I just created a <#804324493420920833> channel, maybe can continue discussion there?
2021-01-28 12:22:26
also feel free to put a link to your project in <#803663417881395200>, it is nice to keep track of the projects that are working on jxl support / integration ๐Ÿ™‚
lvandeve
2021-01-28 02:20:23
tbonfort, thanks! that may be a bug in that case. If everything else works correctly, you could ignore the return value from releaseinput once it returned JXL_DEC_SUCCESS for now
2021-01-28 02:20:53
<@456226577798135808>
2021-01-28 02:22:12
do you know if the images themselves are a pure JXL codestream, or have the JXL box format container around them?
Deleted User
2021-01-28 02:25:38
I have no idea. They where created by the encoder code here: https://github.com/rouault/gdal/blob/8aac52b8bc8a3c1a3d550822da4ec28a26eed760/gdal/frmts/gtiff/tif_jxl.c#L466
2021-01-28 02:26:34
(btw, lets move to <#804324493420920833> to avoid polluting <#803574970180829194>)
_wb_
2021-01-28 03:27:29
anyone want to try to get jxl working in libvips? https://github.com/libvips/libvips
2021-01-28 08:43:24
``` curl -sD - -H "Accept: image/jxl" https://res.cloudinary.com/jon/f_auto/sample.jpg ```
raysar
2021-01-29 03:50:23
The last windows binary 0.3 of jpegxl encoder/decoder is here: https://encode.su/threads/3544-JXL-reference-software-version-0-2-released?p=67989&viewfull=1#post67989
BlueSwordM
2021-01-29 06:58:55
https://bugzilla.mozilla.org/show_bug.cgi?id=1539075 Someone is a bit impatient it seems. ๐Ÿ˜›
Jim
2021-01-29 07:05:58
People need to not do that or they will just lock the comments.
_wb_
2021-01-30 01:16:08
so, besides browsers, what should get jxl support?
Fox Wizard
2021-01-30 01:20:05
Think for most people browsers, default photo viewer apps on desktop and mobile and maybe camera apps would be enough. Having the option to take photos in jxl format would be nice, but not sure if that would be possible yet and if bigger companies want to add support for it
_wb_
2021-01-30 01:24:02
what viewer apps are people using where we can open issue to ask to add jxl support?
Fox Wizard
2021-01-30 01:24:04
Editing software support would also be very nice. Can't really think of anything else that would benefit from it
2021-01-30 01:24:32
Default Microsoft ``Photos`` app and mobile apps like ``Google Photos`` and other widely used apps (no idea what the most commonly used mobile gallery apps are)
2021-01-30 01:26:28
But not sure if that's achievable for the near future
Scope
2021-01-30 01:32:10
For Windows, as I said before it is also important support through WIC (Windows Imaging Component), not necessarily from Microsoft itself, it can be a third-party implementation as it was for FLIF <https://github.com/peirick/FlifWICCodec>
2021-01-30 01:45:31
XnView (some applications also use the XnView SDK for decoding) <https://newsgroup.xnview.com/viewtopic.php?t=40709> IrfanView <https://irfanview-forum.de/showthread.php?t=12783>
Deleted User
_wb_ so, besides browsers, what should get jxl support?
2021-01-30 01:57:24
Image and file hosts (Imgur, Google Drive/Photos) are very important imo. Though my hopes for that are quite low. If you currently upload a Google WebP file to Google Photos, Google will display a PNG, JPEG or GIF depending on what the source is.
2021-01-30 01:59:33
Makes me wonder why Google even works on image formats like WebP, JXL, ... <:ugly:805106754668068868>
Image and file hosts (Imgur, Google Drive/Photos) are very important imo. Though my hopes for that are quite low. If you currently upload a Google WebP file to Google Photos, Google will display a PNG, JPEG or GIF depending on what the source is.
2021-01-30 02:04:29
But what happens if you try to download the original photo from Google's servers? I mean not for viewing, but for storage?
2021-01-30 02:06:47
This gives me the WebP back. But kind of useless using Photos for that if it can't display the actual file. So I currently just stick with Google Drive.
2021-01-30 02:08:25
Oh, and by the way: I'm working on JPEG XL support in Google Photos, just gonna type in some encouraging description and send feedback to them ๐Ÿ™‚
Fox Wizard
2021-01-30 02:08:58
Would be nice if it gets added
2021-01-30 02:09:50
If common apps support it then I could start using jpeg xl I guess since now the workarounds/having to download things isn't really worth it to me
Deleted User
2021-01-30 02:10:43
I was planning to upload all of my photos before June 1st (you know, the free tier apocalypse), but now I'm waiting with all of my photo uploads before they add JPEG XL support. I hope that they add it before June 1st, because otherwise I'm screwed.
Toggleton
2021-01-30 02:12:06
screenshot tools could be interesting
Deleted User
2021-01-30 02:12:11
I was the one that mentioned it on their subreddit: https://www.reddit.com/r/googlephotos/comments/kkhnt9/jpeg_xls_bitstream_is_frozen_google_photos_can/
Fox Wizard
2021-01-30 02:13:54
``Furaffinity and othes can join in`` <:kekw:758892021191934033>
Deleted User
2021-01-30 02:17:42
I've been doing some tests: original JPG vs Guetzli JPG vs size-matched JXL (`--target-size` was *incredibly* helpful) and JXL's been winning
2021-01-30 02:18:53
I hope that Google Photos introduce `-s 9` JXL encoding in their free tier instead of Guetzli JPG (if you choose so in settings)
Jim
I was the one that mentioned it on their subreddit: https://www.reddit.com/r/googlephotos/comments/kkhnt9/jpeg_xls_bitstream_is_frozen_google_photos_can/
2021-01-30 02:34:43
They also worked on AVIF, and pushed it way more in the beginning as browsers started to support it. The fervor has died down, but we have yet to see what Google plans to do as far as pushing AVIF over other formats. I personally don't like the excessive amount of smoothing it does. It may work well for videos (though, probably not for a while yet). Hardware vendors are not keen on adding AV1 encoding support yet likely due to the slow encoding speed. Some CDNs have given the "'I'll pass for now" on AVIF due to it's low performance as well. I feel if browsers and other image handling software starts implimenting JPEG XL soon, and most CDNs start adding it as an encoding option, we could see JPEG XL support start surpassing AVIF this year. AVIF may have jumped out of the gate first, but keeping a steady pace (and balanced performance) is what wins the race.
_wb_
2021-01-30 02:41:43
JXL is made by Google Research (and also Cloudinary), which is not the same organization as Google Chrome.
2021-01-30 02:42:49
AVIF and WebP2 involve people in or closer to Google Chrome.
Skeebadoo
_wb_ what viewer apps are people using where we can open issue to ask to add jxl support?
2021-01-30 04:38:31
IrfanView definitely
2021-01-30 04:38:58
but it's one of these one man projects, so it's kind of like asking for a new feature in foobar2000 or calibre
2021-01-30 04:39:00
may happen, may not
spider-mario
2021-01-30 04:40:09
foobar2000 and calibre have plugin systems, though
2021-01-30 04:40:12
does IrfanView?
Skeebadoo
2021-01-30 04:40:25
Yeah, but I'm not sure if it includes format support too
2021-01-30 04:40:35
I think that's baked in
spider-mario
2021-01-30 04:40:52
e.g. foo_input_dvda
Skeebadoo
2021-01-30 04:41:26
https://www.irfanview.com/plugins.htm
2021-01-30 04:41:38
cursory check and yeah, it's possible to support a format via a plugin
_wb_
2021-01-30 04:42:34
If anyone feels like preparing a pull request for a viewer, that would be great (and I am sure you can get help here if you have api questions on the jxl side)
2021-01-30 04:42:59
Just opening an issue is also nice of course, and less work ๐Ÿ˜„
BlueSwordM
2021-01-30 04:46:38
So, I'm going to do a follow-up article on modern image encoders, and I need some more datasets for testing: https://chipsandcheese.com/2021/01/30/modern-data-compression-in-2021-part-1-a-simple-overview-on-the-art-of-image-encoding/ I already have the CLIC datasets for real life pictures, but I need some more varied datasets. I would also like to have higher resolution datasets to test multi-threaded performance. Any sources you can people can link me to?
_wb_
2021-01-30 05:02:48
The images <@111445179587624960> used in his lossless comparison are varied (a bit focused on non-photo though)
BlueSwordM
2021-01-30 05:14:39
Oh yeah, I had completely forgotten about that.
Scope
2021-01-30 05:24:48
Yes, because I wanted to minimize the "lab test sets" and keep the proportions closer to actual use (however, it also has different photo sets).
2021-01-30 05:25:52
Also, I originally wanted to add similar categories, but the difficulty is that I couldn't just post most of them (without permission) and they would also require manual selection and searching from various places or google results.
2021-01-30 05:29:56
In the reddit image sets, I simply took various popular subreddits with lots of lossless images and filtered out only the obvious ex-Jpeg or broken images (without any of my preferences)
Diamondragon
2021-01-31 01:19:47
Support in SumatraPDF would be nice if it could happen.
Nova Aurora
Fox Wizard ``Furaffinity and othes can join in`` <:kekw:758892021191934033>
2021-01-31 01:27:07
Hey, when they said they were making a codec for all usage, they were *making a codec for all uses*
Fox Wizard
2021-01-31 06:01:16
๐Ÿ†
Crixis
2021-02-02 03:19:51
For ubuntu there is a viewer now?
2021-02-02 03:20:37
KDE make me sad
Nova Aurora
2021-02-02 03:21:39
You no like KDE?
2021-02-02 03:21:53
๐Ÿ˜ข
_wb_
2021-02-02 03:21:58
No idea, has someone got it to work with eog maybe?
Crixis
2021-02-02 03:22:38
yep, i feel it so clunky and i'm all on dinamic workspace
_wb_ No idea, has someone got it to work with eog maybe?
2021-02-02 03:23:01
I have tryed whitout success
2021-02-02 03:23:50
i will try wine nomacs XD
2021-02-02 03:24:21
no, too sad, i will only install a qt viewer
Nova Aurora
2021-02-02 03:24:48
I use qview for general use
2021-02-02 03:25:23
gwenview is ok I guess, it feels a little too cluttered by default
Crixis
Nova Aurora gwenview is ok I guess, it feels a little too cluttered by default
2021-02-02 03:26:01
yep, I will try qview
Master Of Zen
Crixis yep, I will try qview
2021-02-02 03:42:41
This is how my gwenview looks like
2021-02-02 03:44:09
disabling/hiding is just an setting option
Nova Aurora
2021-02-02 03:46:01
how I like it:
Crixis
2021-02-02 03:47:37
So many settings on kde, i have tryed but no dynamic workspace and bad Google drive and proprietary driver management don't make me invest time
Nova Aurora how I like it:
2021-02-02 03:48:19
Easy and integrable, I like
Nova Aurora
2021-02-02 03:50:35
I'm still a noob with KDE customIzation
2021-02-02 03:51:21
for example I still don't know why I can't use transparency as a window background
veluca
2021-02-02 04:17:38
the jpeg-xl repo has a gdk-pixbuf plugin, that should make it work for both thumbnails and say eog
Crixis
veluca the jpeg-xl repo has a gdk-pixbuf plugin, that should make it work for both thumbnails and say eog
2021-02-02 04:45:54
I failed on compile it
veluca
2021-02-02 05:18:12
how did it fail?
Crixis
2021-02-02 05:23:50
I made quite a mess, i will do another try in the future
diskorduser
2021-02-03 07:13:51
Ha Ha. KDE best.
Crixis
2021-02-03 01:19:46
What about a javascript implementation of the decoder? I wonder possible speed and memory use
_wb_
2021-02-03 01:30:01
squoosh.app basically does that
2021-02-03 01:30:27
counting wasm as a form of js here
Deleted User
2021-02-03 01:36:53
Guys, I know it's not much but I'm offering 20$ for an IrfanView JpegXL plugin. Others can chip in!
_wb_
2021-02-03 01:42:10
ooo do we need to start a Bounty Hunting channel?
Deleted User
2021-02-03 01:44:50
I think it would be a good ideea
_wb_
2021-02-03 01:52:08
ok, bounties can be announced in <#806522208692207617> now
2021-02-03 01:55:54
for those who don't know, <@!228116142185512960> and <@!710762823986446367> are the main devs of https://squoosh.app/
surma
2021-02-03 01:56:36
We need to update to v0.3! Havenโ€™t done that yet I think
veluca
2021-02-03 01:56:51
I can help with that ๐Ÿ™‚
surma
2021-02-03 01:57:31
๐Ÿ˜„ That would be appreciated
Crixis
2021-02-03 02:08:26
Wasm is an hack
2021-02-03 02:09:26
A good hack
2021-02-03 02:10:06
I was not thinking about squoosh cli
2021-02-03 02:11:07
I wonder about the possibility of an flutter viewer
blabaal
2021-02-03 02:12:23
Are you maybe thinking about asm.js? Wasm is pretty good
Crixis
2021-02-03 02:13:07
I have undervalued wasm portability
veluca
surma ๐Ÿ˜„ That would be appreciated
2021-02-03 02:40:18
I'll do that after 0.3.1 is out (should be later today)
Crixis
2021-02-03 02:40:57
On squoosh effort is -s?
surma
2021-02-03 02:41:05
Yeah, wasm is definitely not a hack ๐Ÿ˜„
2021-02-03 02:41:13
<@!424295816929345538> do you mean the Squoosh CLI? Then no
2021-02-03 02:41:28
Iโ€™d recommend using squoosh.app to configure the encoder and then click the โ€œcopy CLI commandโ€ button
2021-02-03 02:41:37
the CLi is fairly undocumented. We wanna fix that soon
Crixis
Crixis On squoosh effort is -s?
2021-02-03 02:42:31
On squoosh app
2021-02-03 02:43:58
I think quality is -q, true?
_wb_
2021-02-03 02:45:01
`cjxl -s N` is squoosh effort `N-3`, I think
2021-02-03 02:45:35
we should probably rename the cjxl option to "effort" too, it makes more sense
veluca
2021-02-03 02:46:17
--effort <number> or --speed <animal>
Master Of Zen
2021-02-03 02:47:27
What make no sense whatsoever is VP9/AV1 `cpu-used`
2021-02-03 02:47:53
and that for VP9 it can go `-16 - +16`
Crixis
2021-02-03 02:48:57
Lol on my firefox crash on effort 5
_wb_
2021-02-03 02:50:48
`cpu-used` is higher-is-faster, right?
Crixis
2021-02-03 02:51:01
Yup
veluca
2021-02-03 02:53:24
that seems a bit backwards
Scope
2021-02-03 02:54:57
--speed <animal> is cool, but not very practical, there is a need to remember the names of animals and it may limit the difference in speed, since it should roughly correspond to the speed of animals
Crixis
Scope --speed <animal> is cool, but not very practical, there is a need to remember the names of animals and it may limit the difference in speed, since it should roughly correspond to the speed of animals
2021-02-03 02:55:53
Not a problem If there is a --effort number
Scope
2021-02-03 02:56:11
Yep, --effort <number> is more logical and easy to use (including scripts, GUIs, etc.), --speed <number> (which is now) it is not always clear which value is faster/more efficient
_wb_
2021-02-03 03:03:00
just like we have `--quality` and `--distance` which are just two different ways/scales to set the same thing (quality is higher = better, distance is lower = better), we could have `--effort` and `--speed` which are two different ways to set the same thing (effort is higher = slower, speed is higher = faster). Could still allow numbers for speed, and also come up with some metaphorical strings for effort, e.g. `-e herculean` etc ๐Ÿ™‚
Master Of Zen
2021-02-03 03:04:48
rav1e have `speed` and svt-av1 have `preset`
_wb_
2021-02-03 03:05:29
is rav1e's `speed` higher = faster?
Master Of Zen
_wb_ is rav1e's `speed` higher = faster?
2021-02-03 03:05:44
yep, it make sense)
Crixis
2021-02-03 03:10:38
Just make a not configurable encoder that automatically convert all image of the pc and delete olds, immediate jxl adoption
_wb_
2021-02-03 03:18:22
haha adoption by force
Deleted User
_wb_ haha adoption by force
2021-02-03 03:31:01
systemd-cjxl
Moritz Firsching
Crixis I made quite a mess, i will do another try in the future
2021-02-03 03:31:12
let me know if I can help to get that working...
Crixis
Moritz Firsching let me know if I can help to get that working...
2021-02-03 03:31:51
I will try tomorrow
2021-02-03 03:32:44
now i don't have my pc
Moritz Firsching
2021-02-03 03:32:52
anytime..
Dr. Taco
2021-02-04 12:43:45
Waiting on this page to inlcude JXL ๐Ÿ™‚ https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img
190n
2021-02-04 12:47:46
bit pointless if no browsers support it
Jim
2021-02-04 12:54:58
> The older formats like PNG, JPEG, GIF have poor performance compared to newer formats like WebP and AVIF, but enjoy broader "historical" browser support.
2021-02-04 12:55:28
Should probably change that to "poor visual performance," since the new formats are actually poorer [speed] performance than the old formats.
Crixis
2021-02-04 09:16:15
I have build jpegxl pixbuff plugin on ubuntu 20.10 and jxl is now listed on /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders there are other steps?
2021-02-04 09:23:03
<@!795684063032901642>
spider-mario
Crixis I have build jpegxl pixbuff plugin on ubuntu 20.10 and jxl is now listed on /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders there are other steps?
2021-02-04 09:23:18
possibly `update-mime-database`
Crixis
2021-02-04 09:28:16
damn i have a problem with krita update-desktop-database Error in file "/usr/share/applications/krita_jpeg.desktop": "jpeg/jfif" is an invalid MIME type ("jpeg" is an unregistered media type) The databases in [/usr/share/ubuntu/applications, /usr/local/share/applications, /usr/share/applications, /var/lib/snapd/desktop/applications] could not be updated.
2021-02-04 09:32:30
ok i have removed krita and updated mime-database
2021-02-04 09:32:33
now?
veluca
2021-02-04 10:39:23
probably `gdk-pixbuf-query-loaders`
2021-02-04 10:39:39
or `gdk-pixbuf-queryloaders`
2021-02-04 10:41:13
`sudo /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache` apparently
2021-02-04 10:41:43
... ignore me, I didn't see that you did it already
2021-02-04 10:42:05
it should work at this point I guess
Crixis
2021-02-04 11:10:51
I have did it
2021-02-04 11:13:37
but it don't work
2021-02-04 11:13:54
veluca
2021-02-04 11:15:48
so you confirm you ran that, not just that `/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders` shows jxl?
Crixis
2021-02-04 11:23:46
no wait
2021-02-04 11:25:10
i run ` sudo /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache ` yes, no output on it
veluca
2021-02-04 11:26:37
ok, and then it still doesn't work?
Crixis
2021-02-04 11:29:12
yep, it don't work
veluca
2021-02-04 11:30:30
maybe you need to install some xml somewhere, let me check...
2021-02-04 11:33:10
I remember I got it to work at some point in the distant past
2021-02-04 11:35:29
one thing you likely need is `sudo xdg-mime install --novendor plugins/mime/image-jxl.xml`
2021-02-04 11:35:45
unless the build system does that already
2021-02-04 11:36:06
also, can you run `ldd` on the installed loader?
Crixis
veluca also, can you run `ldd` on the installed loader?
2021-02-04 11:36:44
can you be more specific?
veluca
2021-02-04 11:37:25
`ldd /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jxl.so`
Crixis
2021-02-04 11:38:38
` ldd /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jxl.so linux-vdso.so.1 (0x00007ffcc1581000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fae505ed000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fae505e7000) libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007fae505c0000) libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fae50565000) libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fae50433000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fae50252000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fae50235000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fae50213000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fae50029000) /lib64/ld-linux-x86-64.so.2 (0x00007fae50cfa000) libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fae50023000) libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007fae4fe3c000) libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007fae4fe30000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fae4fdbb000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fae4fd9e000) libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007fae4fd40000) libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fae4fd15000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fae4fcfa000) libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007fae4fca5000) libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007fae4fc15000) `
veluca
2021-02-04 11:40:27
doesn't seem to have broken deps, so that's good.
2021-02-04 11:40:57
did you try updating again the mime type info after xdg-mime?
Crixis
veluca one thing you likely need is `sudo xdg-mime install --novendor plugins/mime/image-jxl.xml`
2021-02-04 11:42:52
it did the trick!
veluca
2021-02-04 11:43:32
great! maybe we should add instructions...
Crixis
2021-02-04 11:55:18
` sudo apt install cmake pkg-config libbrotli-dev sudo apt install libgif-dev libjpeg-dev libopenexr-dev libpng-dev libwebp-dev git libgdk-pixbuf2.0-dev sudo apt install clang-11 export CC=clang-11 CXX=clang++-11 git clone https://gitlab.com/wg1/jpeg-xl.git --recursive cd jpeg-xl mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_PLUGINS=ON .. cmake --build . -- -j sudo cmake --install . sudo /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache sudo update-desktop-database cd .. sudo xdg-mime install --novendor plugins/mime/image-jxl.xml `
Moritz Firsching
2021-02-04 11:55:46
cool!
Crixis
2021-02-04 11:55:56
wait
Moritz Firsching
2021-02-04 11:56:12
So thumbnails in file browsers work and also viewing with eog?
Crixis
Moritz Firsching So thumbnails in file browsers work and also viewing with eog?
2021-02-04 11:57:24
yep
2021-02-04 11:58:38
Moritz Firsching
2021-02-04 12:00:26
if some thumbnails still give you trouble, then possibly delete the thumbnail cache with rm -r ~/.cache/thumbnails and restart the application displaying thumbnails, e.g. nautilus -q to display thumbnails.
Crixis
2021-02-04 12:20:26
also desktop wallpaper work
_wb_
2021-02-05 09:35:16
This URL gives you different results depending on what codecs you claim to support in your `Accept` header: https://res.cloudinary.com/jon/f_auto/sample
2021-02-05 09:36:41
It currently returns a jpeg by default, a webp if you accept that, and a jxl if you have `Accept: image/jxl`
Nova Aurora
2021-02-05 09:39:04
So once we get browser support, it will give a jxl?
_wb_
2021-02-05 09:39:14
Yes
2021-02-05 09:42:38
Now already, if you manually fetch the image with the right http header: ``` curl -sD - -H "Accept: image/jxl" https://res.cloudinary.com/jon/f_auto/sample HTTP/2 200 content-type: image/jxl etag: "b376d12f595c5e8802f0ce5a2ef12679" last-modified: Thu, 28 Jan 2021 19:34:05 GMT date: Thu, 28 Jan 2021 19:34:16 GMT vary: Accept,User-Agent strict-transport-security: max-age=604800 cache-control: private, no-transform, immutable, max-age=2592000 server-timing: fastly;dur=221;cpu=116;start=2021-01-28T19:34:16.218Z;desc=miss,rtt;dur=19,cloudinary;dur=27;start=2021-01-28T19:34:16.371Z server: Cloudinary timing-allow-origin: * access-control-allow-origin: * accept-ranges: bytes x-content-type-options: nosniff access-control-expose-headers: Content-Length,ETag,Server-Timing,Vary,X-Content-Type-Options content-length: 47383 ```
2021-02-05 09:45:08
Currently 900k web developers are using Cloudinary, most of which just use the free service, and a bit under 1% being a paying customer, most of those with very substantial traffic.
2021-02-05 09:45:29
Many of them are using `f_auto` already.
2021-02-05 09:49:27
Currently only the `jon` and `demo` accounts have jxl activated as a target codec for `f_auto`. We can pull the global switch when the first major browser adds support and we have verified that it works properly.
Moritz Firsching
2021-02-06 07:07:54
Another simple way of serving jxl to browsers that support it (working on it..) is the following: <picture> <source srcset="image.jxl" type="image/jxl"> <source srcset="image.jpg" type="image/jpeg"> <img alt="jxl or jpeg depending on what your browser supports" src="image.jpg"> </picture>
_wb_
2021-02-06 07:11:19
Yes, that also works, at least if you can change the markup.
2021-02-06 07:13:01
I like the elegance of a single img tag with a server that varies response based on Accept header and Client Hints. That is a better way to avoid combinatorial explosion.
2021-02-06 07:14:56
Because it's not just format, also dimensions you may want to vary based on viewport width, quality target you may want to vary based on the `save-data` client hint, maybe in the future HDR or not based on some new client hint.
2021-02-06 07:15:51
Putting the cartesian product of all those things in the markup gets heavy quickly...
Deleted User
2021-02-06 09:17:44
BTW that second `<source>` is redundant because it's already covered by the `<img>`.
Scope
2021-02-06 09:32:20
Yep or change jpeg with webp or avif (but in the future if the percentage of JXL support in browsers is significant, I think it will be possible to leave only JXL with on-the-fly conversion to legacy Jpeg) ```<picture> <source srcset="image.jxl" type="image/jxl"> <source srcset="image.webp" type="image/webp"> <img src="image.jpg" alt="Image"> </picture>```
Deleted User
2021-02-07 12:09:05
Unless we are talking about lossless or have the need for alpha, then JPEG should be preferred over WebP.
BlueSwordM
Unless we are talking about lossless or have the need for alpha, then JPEG should be preferred over WebP.
2021-02-07 12:20:27
I mean, if 4:4:4 operation was supported in lossy WebP, I would actually use it.
2021-02-07 12:20:33
Sadly, it does not. <:AngryCry:805396146322145301>
_wb_
2021-02-07 08:13:00
Adoption is a weird thing
2021-02-07 08:14:55
Progressive JPEG was not supported in early versions of libjpeg, so in the first 10 years of the web, progressive JPEG was not really used.
2021-02-07 08:17:13
The fact that progressive was rarely used was then later used as 'evidence' that progressive is a bad idea and not needed, to justify WebP not supporting it.
lonjil
2021-02-07 08:17:35
oof
lithium
2021-02-07 08:29:12
In my opinion, webp near-lossless and lossless is very well, only webp lossy have problem.
_wb_
2021-02-07 08:33:18
WebP lossy was a quick hack to get more benefit out of the WebM/VP8 decoder that was available anyway.
2021-02-07 08:33:42
WebP lossless was added later and was actually conceived as a still image codec
lithium
2021-02-07 08:34:14
vp8 and vp8l
_wb_
2021-02-07 08:35:31
Except it replicated some VP8 limitations like max image dimensions, only 8-bit, and no progressive
2021-02-07 08:36:57
Lossless webp is somewhere in between PNG and JXL in terms of sophistication, implementation complexity, single-core decode speed, and density results.
lithium
2021-02-07 08:40:16
near-lossless webp can compare which jpeg xl mode?
_wb_
2021-02-07 08:46:12
`cjxl -m --lossy_palette --palette 0 --P 0` does something similar, but it is still experimental and can be improved.
Jim
2021-02-07 12:28:02
I remember early progressive jpgs almost always led to a larger file size and people avoided using it. Not the case today.
_wb_
2021-02-07 01:08:35
I think early libjpeg also just refused to decode it, so that also doesn't help
VEG
2021-02-07 02:03:22
Didn't know that progressive JPEG wasn't supported in early days of JPEG in web.
2021-02-07 02:03:33
When it was? I guess IE6 already supported it, right?
2021-02-07 02:04:47
Arithmetic coded JPEGs are refused to decode by 95% of software even today.
2021-02-07 02:05:11
Even though all the related patents are expired for 10 years or so.
_wb_
2021-02-07 02:08:51
https://en.wikipedia.org/wiki/Libjpeg#History
VEG
2021-02-07 02:09:24
So, 1995 ๐Ÿ™‚
_wb_
2021-02-07 02:09:26
progressive was added in version 6, released in august 1995
VEG
2021-02-07 02:09:42
I was playing NES and even didn't dream about a computer those days ๐Ÿ™‚
_wb_
2021-02-07 02:10:14
I don't know at what point browsers added support for progressive
VEG
2021-02-07 02:10:42
I remember that IE6 had issues with PNG alpha channel
2021-02-07 02:11:12
But OK, it is about some really ancient days of web anyway
2021-02-07 02:11:44
Before JPEG XL was a thing, I tried to persuade Chromium developers to support JPEG's arithmetic coding
2021-02-07 02:12:08
https://bugs.chromium.org/p/chromium/issues/detail?id=669501
_wb_
2021-02-07 02:12:09
https://www.thewebmaster.com/dev/2016/feb/10/how-progressive-jpegs-can-speed-up-your-website/#:~:text=Progressive%20JPEG%20Browser%20Support,Internet%20Explorer%208%20and%20below.
VEG
2021-02-07 02:12:27
I'm so happy that JPEG XL does what I wanted (lossless compression of old JPEGs) and even better ๐Ÿ™‚
_wb_
2021-02-07 02:12:33
this one says IE8 and below had significant issues with progressive JPEGs
2021-02-07 02:13:47
so that's not _that_ early
VEG
2021-02-07 02:15:16
As far as I understand, progressive JPEG was displayed properly, but without being "progressive".
_wb_
2021-02-07 02:15:18
back in 2011, IE8 had still like 60% market share
VEG
2021-02-07 02:15:26
So it wasn't that crucial ๐Ÿ™‚
_wb_
2021-02-07 02:15:48
I guess not, but that was probably a worse experience than sequential, which would at least render top to bottom
2021-02-07 02:16:55
That and some ancient browsers probably not even supporting progressive at all...
2021-02-07 02:17:20
I understand now why progressive JPEG didn't get more adoption
2021-02-07 02:17:51
I always assumed it was just laziness of web devs using default cjpeg / ImageMagick convert settings, which are sequential
2021-02-07 02:19:32
but there were actually good reasons to avoid it โ€“ in the first 3 years of images on the web, it didn't work anywhere (as in there were no available implementations that could encode or decode a progressive jpeg), and after that probably still didn't work for a long time in many browsers, certainly not actually loading progressively
VEG
2021-02-07 02:20:19
BTW, does JPEG XL have non-progressive mode which allows to save a bit more space? It is useful for the cases when small images are embedded into CSS using data urls.
Deleted User
VEG I'm so happy that JPEG XL does what I wanted (lossless compression of old JPEGs) and even better ๐Ÿ™‚
2021-02-07 02:22:08
If your JPEGs are high quality (90+ and 4:4:4) I would try doing jpg --ll--> jxl --ll--> png --lossy--> jxl. This resulted in an even smaller JXL with no visible degradation.
_wb_
2021-02-07 02:25:40
you can also just do `cjxl -j input.jpg output.jxl` if you want to treat the jpeg as input pixels
2021-02-07 02:27:32
cjxl does non-progressive for lossless by default, for lossy modular (with squeeze) it has to be progressive because it just inherently is progressive, lossy VarDCT (the main mode) is by default not very progressive: DC is sent first (sequentially), then all AC is sent (sequentially). Still gives you a nice 1:8 preview progressively, but that's it.
VEG
2021-02-07 02:28:25
Thanks for clarification.
_wb_
2021-02-07 02:28:53
DC can also be sent progressively (`--progressive_dc=1`) for 1:16, 1:32 etc previews, and AC can be sent progressively (`--progressive_ac`) for 1:4 and 1:2 previews, and if you use `-p` (`--progressive`) it does both of those things.
2021-02-07 02:29:52
There is no way to go "even more non-progressive" than default VarDCT, and it wouldn't help for density if we would add that, in fact it would probably hurt.
Deleted User
_wb_ you can also just do `cjxl -j input.jpg output.jxl` if you want to treat the jpeg as input pixels
2021-02-07 02:39:25
Yes, but it doesn't look as nice.
_wb_
2021-02-07 05:51:08
https://twitter.com/HenriHelvetica/status/1358459440773611520?s=19
2021-02-07 08:07:14
Any updates on chrome integration?
VEG
2021-02-07 11:13:58
Are here Chromium developers?
2021-02-07 11:17:40
I was following the ticket related to adding APNG support to Chromium. As far as I remember, it was at least for half a year in code review (with a lot of changes during this time) before merging. So I wouldn't expect that JPEG XL support will arrive soon if the developers didn't promise it ๐Ÿ™‚
Scope
2021-02-08 02:07:29
https://discord.com/channels/794206087879852103/803663417881395200/808141830805651478 Hmm, it seems to be from the developers of this application (but it requires VS and Inno to compile and install the WIC decoder) <:SadCat:805389277247701002> <https://store.steampowered.com/app/228180/Action__Gameplay_Recording_and_Streaming/>
2021-02-08 02:08:55
<:PepeOK:805388754545934396>
Deleted User
Scope https://discord.com/channels/794206087879852103/803663417881395200/808141830805651478 Hmm, it seems to be from the developers of this application (but it requires VS and Inno to compile and install the WIC decoder) <:SadCat:805389277247701002> <https://store.steampowered.com/app/228180/Action__Gameplay_Recording_and_Streaming/>
2021-02-08 07:07:25
That application looks cool ๐Ÿ˜Ž
Crixis
2021-02-08 08:57:30
Pixbuf work in linux mint!
Troc
2021-02-08 05:13:10
Ultra File Viewer Pro on Windows store says that it can view any file. I'll see if it can view jxl.
2021-02-08 05:15:46
Hmm, nice avif picture.
Nova Aurora
2021-02-08 05:19:35
it displayed it
2021-02-08 05:19:43
in hex
2021-02-08 05:19:50
but it displayed it
2021-02-08 05:21:36
?
Troc
2021-02-08 05:22:20
JXL made error first but then gave me this:
2021-02-08 05:22:21
It does seem to work.
Nova Aurora
2021-02-08 05:22:33
interesting
Troc
2021-02-08 05:22:51
"Any file format" might not be marketing only.
2021-02-08 05:23:30
Though oof, it does crash on this file format a lot.
Scope
2021-02-08 05:24:12
Troc
2021-02-08 05:26:23
The filename is jpg since that's what Megapixel outputs.
2021-02-08 05:26:52
On Honeyview, I only get this.
2021-02-08 05:28:43
Here's something interesting: When I alias the .avif file into PNG, it opens as a picture. When I don't, it opens as hex.
Nova Aurora
2021-02-08 05:28:54
?
2021-02-08 05:29:20
Is it just using imagemagick then using a whitelist of formats?
Troc
2021-02-08 05:30:03
I don't know.
2021-02-08 05:31:29
It does use 7% CPU and 160 Mb of RAM to display one picture, though.
2021-02-08 05:35:11
If I zoom in too close, the side scroll bar becomes unusable, as it just stops in the middle of the picture.
2021-02-08 05:36:28
Then when scrolling back down and up again, the picture has a white bar and the the program crashes.
2021-02-08 05:36:49
Overall, I'm not impressed by the experience. The lack of zooming using mouse wheel is also a big turnoff.
2021-02-08 05:49:00
I wonder if there's a better way out there.
2021-02-11 10:40:35
2021-02-11 10:40:49
Diplomatic response.
Deleted User
2021-02-13 02:08:00
Ok, things are probably getting serious in Chromium. After some time the old issue 1056172 has been closed and merged into issue 1178058: https://bugs.chromium.org/p/chromium/issues/detail?id=1178058#c2
2021-02-13 02:09:27
Not only that, but also the priority: the old issue had priority 3 and the new one has priority 1! ๐Ÿ˜ƒ
2021-02-13 02:11:02
Make sure to star the new (linked) issue in order to receive notifications about it and support by showing interest!
Scope
2021-02-13 02:14:04
Deleted User
2021-02-13 02:25:50
So Chrome 91, I guess? ๐Ÿ™‚
2021-02-13 02:26:04
it will come soonโ„ข๏ธ
2021-02-13 02:26:31
I definitely hope so
2021-02-13 02:27:32
If it starts working in Chrome, then I'll *finally* submit my request to Google Photos to support JPEG XL, too
2021-02-13 02:28:08
looks like decoding support is gradually rolling in, wondering when encoder support from important software will come in
2021-02-13 02:28:32
Chrome is most important IMHO
2021-02-13 02:28:38
Of course
2021-02-13 02:29:36
It would be nasty for Google Photos devs to try adding support to this format and not even knowing if it works at all
2021-02-13 02:30:48
I first planned to submit my request to Google Photos team quickly, but it seems like fortunately my procrastination found actually better and safer solution
2021-02-13 02:31:47
Iโ€™โ€‹m just imagining an option for jpeg xl in google photos that automatically converts your entire library to it losslessly to save space or if it seamlessly encodes it to jxl and back to the userโ€™s choice.. that would be a more compatible alternative of course these would be very bold moves
2021-02-13 02:32:47
Ohhhh yeeeeaaaah
2021-02-13 02:33:11
**Guetzli-encoded JPEGs:** JPEG lossless transcode
2021-02-13 02:33:55
**Newly uploaded files:** JXL lossy transcode with a pre-set Butteraugli distance (remember, we're *finally* setting a *visual* target, not *technical* one!)
2021-02-13 02:34:19
Oh ironically just supporting those might be a better idea than pngs since you couldnโ€™t necessarily get the *exact* same filesize back
2021-02-13 02:35:22
wait wait if itโ€™s a lossless transcode why would you need a visual target
BlueSwordM
2021-02-13 02:35:26
Better yet.
2021-02-13 02:35:40
Next Google phone uses JXL to take pictures as a non default mode.
2021-02-13 02:36:04
No more crappy techniques to get HDR stuff in JPG, crushing picture quality and true dynamic range, etc.
Deleted User
2021-02-13 02:37:09
<@456226577798135808> lossless transcode only for already existing JPEGs, since Guetzli is already pretty lossy, I don't want any more additional loss. Lossy JXL will only be applied to new photos that won't be treated by Guetzli (at least that's the plan)
2021-02-13 02:38:18
Oh thatโ€™s what you mean. I understand now Yes keeping constant visual quality is an added benefit on top of the file savings
2021-02-13 02:38:36
Google Photos team will need a survey, what distance is the best compromise between quality and storage savings and encode JXLs with that distance
BlueSwordM
2021-02-13 02:39:17
d 0.0 or bust.
Deleted User
2021-02-13 02:39:19
Ah they could make it happen - someone just needs to show the numbers of how much less bandwidth would be used etcetera
190n
2021-02-13 02:39:23
google photos can also use jxl even for people with original quality uploads with the lossless jpegโ†’jxl transcode
Deleted User
2021-02-13 02:40:17
Holy shit, those are actually free storage space savings!
2021-02-13 02:40:36
You've got a damn good point bro too
190n
2021-02-13 02:40:41
i think dropbox does this already with something other than jxl
Deleted User
2021-02-13 02:40:46
Lepton
190n
2021-02-13 02:40:59
https://dropbox.tech/infrastructure/lepton-image-compression-saving-22-losslessly-from-images-at-15mbs
2021-02-13 02:41:17
since 22% is similar to what jxl claims i'm guessing lepton uses some of the same techniques?
Deleted User
2021-02-13 02:41:46
No, IIRC Lepton is anti-progressive, because it encodes AC *before* DC
Scope
2021-02-13 02:42:21
Lepton is slightly denser and slower (and single threaded)
Deleted User
2021-02-13 02:42:28
And it's specifically tuned for compressing JPEGs
2021-02-13 02:42:52
Lepton should be compared more with Brunsli than with JPEG XL
2021-02-13 02:43:48
Brunsli was once part of JPEG XL, but that was scrapped and lossless JPEG transcode is now done by encoding JPEG block coeffs directly as VarDCT 8x8 blocks
190n
2021-02-13 02:44:21
> ๐Ÿ‘Ž <@!321486891079696385> why not ๐Ÿ˜
Deleted User
2021-02-13 02:44:47
Scrapping Brunsli made the spec easier, shorter and the encoder + decoder are smaller
2021-02-13 02:47:47
Another minus of Lepton is that you can't view it in any image viewer bc it wasn't meant to be used this way, while JPEG XL is compressing by using the coeffs like an image codec and simply storing them better without doing any Brunsli or Lepton level ultra-compression gizmo
190n
2021-02-13 02:58:26
yeah tbh i don't know very much about the tech that makes it work, but the jpeg transcode ability has me really hyped. as soon as android supports jxl i'll probably convert all the photos i've taken
Deleted User
2021-02-13 03:00:01
Me too, I'm waiting for Google Photos (and optionally Samsung Gallery, but I can file a request now bc I don't have to wait for a browser implementation)
2021-02-13 03:00:45
Pls someone make similar graphs for JXL lossless transcode mode:
2021-02-13 03:00:50
https://dropbox.tech/cms/content/dam/dropbox/tech-blog/en-us/2016/07/lepton-15.png
190n
2021-02-13 03:01:19
hmm maybe i can try that later tonight
Deleted User
2021-02-13 03:01:23
https://dropbox.tech/cms/content/dam/dropbox/tech-blog/en-us/2016/07/lepton-17.png
2021-02-13 03:02:19
`Lepton encode rate when encoding 10,000 images on an Intel Xeon E5 2650 v2 at 2.6GHz`
2021-02-13 03:02:43
https://dropbox.tech/cms/content/dam/dropbox/tech-blog/en-us/2016/07/lepton-16.png
2021-02-13 03:03:04
`Lepton decode rate when decoding 10,000 images on an Intel Xeon E5 2650 v2 at 2.6GHz`
190n
2021-02-13 03:03:36
jxl->jpeg should be faster than jxl->pixels right?
Deleted User
2021-02-13 03:03:50
But the first graph would be the most interesting comparison
190n
2021-02-13 03:03:50
for a jxl that was losslessly compressed from a jpeg
Deleted User
2021-02-13 03:04:44
I can't guarantee but probably yes, bc you don't have to mess with DCT and all that stuff
2021-02-13 03:05:31
JXLโ†’JPG lossless transcode is so fast that it's said it can be done in real time on a server
Crixis
2021-02-13 03:29:22
Any news from firefox?
_wb_
2021-02-13 07:14:08
Unintuitively, I think jxl -> pixels can actually be faster than jxl -> jpeg for large images.
2021-02-13 07:14:35
Because jxl decode and iDCT/color convert can be done in parallel
2021-02-13 07:15:33
But jpeg writing has to be done in the same way as the original jpeg, so it's sequential
2021-02-13 07:15:52
Both should be quite fast though
VEG
2021-02-13 07:38:33
https://bugs.chromium.org/p/chromium/issues/detail?id=1178058
2021-02-13 07:38:43
New Chromium ticket
_wb_
2021-02-13 08:10:06
Priority 1 chromium bug, that's good.
2021-02-13 08:12:28
Firefox, no idea
2021-02-13 08:14:18
Getting jxl in blink is first priority. Then webkit and gecko.
2021-02-13 08:15:42
Webkit will be hardest because Safari/iOS use the system level prioprietary CoreMedia for image decoding
VEG
2021-02-13 08:17:27
As far as I know, Apple has own fork of WebKit.
2021-02-13 08:17:53
For example, when Safari already supported APNG (it was a surprise from Apple), WebKit didn't support it yet.
Nova Aurora
VEG As far as I know, Apple has own fork of WebKit.
2021-02-13 08:18:35
But why, they totally control webkit already
VEG
2021-02-13 08:20:47
It is probably like Chromium and Chrome.
2021-02-13 08:21:16
The APNG support was implemented in the closed source part of WebKit/Safari.
_wb_
2021-02-13 08:22:39
They have e.g. Kakadu in CoreMedia
2021-02-13 08:22:55
For jpeg 2000 decoding
VEG
2021-02-13 08:23:47
https://bugs.webkit.org/show_bug.cgi?id=17022#c47
2021-02-13 08:23:57
From the time when WebKit added APNG support.
2021-02-13 08:24:06
Apple's own implementation was a bit buggy.
_wb_
2021-02-13 08:24:58
Also HEIC is in CoreMedia, but it's not on the list of codecs Safari allows in an img tag
Orum
2021-02-13 08:33:54
Firefox is still priority 5, i.e. "do not want"
_wb_
2021-02-13 08:45:08
Hm
VEG
2021-02-13 08:47:01
No worries, the priority will be changed when it is released in Chromium
_wb_
2021-02-13 08:58:45
https://bugzilla.mozilla.org/show_bug.cgi?id=1539075
2021-02-13 08:58:59
Just added a comment there.
Orum
2021-02-13 09:59:57
good luck, they seem to just be ignoring it entirely
Jim
2021-02-13 01:11:04
I wouldn't worry as much about Firefox. They tend to be late to the game. Once they see Chrome adding it in and possibly Safari taking interest, it will likely change.
Orum good luck, they seem to just be ignoring it entirely
2021-02-13 01:11:51
They also have fewer development resources. I'm sure their interest will pick up as they see other browsers taking interest.
Orum
2021-02-13 01:12:32
we'll see
veluca
_wb_ But jpeg writing has to be done in the same way as the original jpeg, so it's sequential
2021-02-13 01:37:53
jpeg writing could be partially parallelized I guess
_wb_
2021-02-13 02:06:09
Could it? If you don't control where the restart markers are?
2021-02-13 02:06:36
Ah yes because huffman writes whole bits
2021-02-13 02:07:01
So you can append streams
fab
2021-02-13 02:48:58
they want a 1.0 format i think. webp before 1.0 or 1.1 ??? i don't know the version wasn't adopted. maybe is that the reason?
_wb_
2021-02-13 03:40:59
Maybe. Version numbers are not the most reliable indicator of maturity though
2021-02-13 03:42:42
It's after all just a name, something devs can just arbitrarily choose. I have seen version 0.1 software that is more robust and mature than some of the software that calls itself version 10.0.
lonjil
2021-02-13 04:09:12
version numbers does have a certain effect on people's perception. I would hope that developers would evaluate JXL on purely technical grounds though, of course ๐Ÿ˜„
fab
2021-02-13 04:10:18
so webp first version to be adopted in mozilla Firefox in 2019 which was
2021-02-13 04:10:22
1,1.0 or 1.2.0
2021-02-13 04:10:29
or a commit in between
Deleted User
2021-02-13 06:09:41
version numbers do bring some info for the people outside: "If the developer of the software wasn't confident enough to call it 1.0 it must not be that stable"
_wb_
2021-02-13 06:16:57
Yes, but different communities have different standards for that. Some call the first draft version 1.0 and things only start to become usable around version 4 or 5, at the earliest. For others, 1.0 is a major milestone and indication of maturity.
2021-02-13 06:20:07
What matters most for something like this is: - is the bitstream stable - is the library api stable - is the implementation robust - how likely are security issues - will security issues be fixed quickly
2021-02-13 07:17:53
<@795684063032901642> any idea when I can expect the first Chrome Canary that has jxl support behind a flag?
shandrew
2021-02-14 05:51:57
For many purposes like web serving of jpeg, Lepton's excellent--the time to first byte is very short, so at the cost of some server CPU, you can decompress the lepton and deliver the jpeg while it's being decompressed--virtually no difference to clients.
lonjil
2021-02-14 05:54:20
Still the size difference. On slow connections saving 22% on the load time would be nice.
_wb_
2021-02-14 07:23:35
Is the time to first byte also short when the jpeg is progressive?
Deleted User
_wb_ What matters most for something like this is: - is the bitstream stable - is the library api stable - is the implementation robust - how likely are security issues - will security issues be fixed quickly
2021-02-14 01:51:52
I think decoding of animations will also be a required step for including jxl in browsers
_wb_
2021-02-14 01:55:04
Yes, we should be functionally as complete as possible: color management, transparency, animation, progressive decode: the more we can get working correctly from the start, the better.
2021-02-14 01:57:26
(but we also shouldn't let perfection be the enemy of the good, better to get things working well enough than to take 2 years to get the best possible browser integration)
Deleted User
2021-02-14 01:57:57
Yes, you are right. That is a hard lesson to learn ๐Ÿ™‚
spider-mario
2021-02-14 06:12:23
we would also like to have HDR working, we are looking into it
Scope
2021-02-14 07:08:20
<https://forum.doom9.org/showthread.php?p=1935952#post1935952> Also, yes, it would be nice to post JXL WIC here if someone has already compiled it (I might do it later when I have time, since it requires VS and Inno)
2021-02-14 09:22:19
https://irfanview-forum.de/forum/program/feature-requests/13089-
2021-02-14 09:22:38
<:Thonk:805904896879493180>
chuni
2021-02-14 10:29:44
I messaged Irfan a few days ago about JPEG XL: https://discord.com/channels/794206087879852103/806522208692207617/807992518116769792
2021-02-14 10:30:56
He essentially just said "later". ๐Ÿคท
Deleted User
2021-02-15 05:42:47
I see the post has the tag **Supported** so maybe it was implemented ๐Ÿฅฒ
Moritz Firsching
_wb_ <@795684063032901642> any idea when I can expect the first Chrome Canary that has jxl support behind a flag?
2021-02-15 02:13:28
Just saw this. Hopefully soon: some code review if going on here: https://chromium-review.googlesource.com/c/chromium/src/+/2693607 and there is this tracking bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1178058
_wb_
2021-02-15 02:14:30
ah cool
2021-02-15 02:15:02
no animation yet?
2021-02-15 02:18:02
I think it's OK to focus on still image for now, since that will be the main use case and animation does add some complications
2021-02-15 02:19:14
doing DC progressively would be nice if that can still be added
2021-02-15 02:23:16
though maybe it's best to get some MVP implementation in already, then improve it
2021-02-15 02:24:21
RGBA with correct color handling is already nice
2021-02-15 02:26:37
I'd prefer if animation and progressive also worked from the start when it's not behind a flag anymore
2021-02-15 02:27:47
to avoid bad first impressions and people saying "you said jxl was progressive, but all I see is the same non-progressive decode as avif"
2021-02-15 02:30:39
Great to see progress on getting in chromium, if we are in there, then that's a VERY big step in the direction of universal adoption
2021-02-15 02:32:08
not the only thing that needs to happen, but it will make it a lot easier to convince other software that they need jxl support too
fab
2021-02-15 03:00:28
how to use it on chrome?
_wb_
2021-02-15 03:01:19
not yet
2021-02-15 03:01:52
unless you build your own with that branch checked out
Moritz Firsching
_wb_ I'd prefer if animation and progressive also worked from the start when it's not behind a flag anymore
2021-02-15 03:18:14
I hope we make progress on progression soon and I agree that it would be nice to have before enabling the flags by default. We do have correct color handling, but in the commit above HDR is not yet implemented. We are also working on that.
lithium
2021-02-15 03:30:23
I hope non-photographic image quality can more stable in vardct(in high bbp), some non-photographic image get worst case in vardct and worse than avif.
Deleted User
2021-02-16 02:11:32
Yeah, most features need to be complete when support will be available without a flag in chrome. I don't want jxl to have a PulseAudio type of release ๐Ÿ™‚
Troc
2021-02-18 10:25:33
Is there yet a full-featured picture viewer that accepts jxl?
Nova Aurora
2021-02-18 10:30:08
Anything that uses qt on linux
2021-02-18 10:30:21
using the plugin
2021-02-18 10:31:23
there are also plugins for WIC for windows, nomacs, and a jxl viewer for macos
Deleted User
2021-02-19 08:30:14
I see the WIC plugin for windows has no release yet. Can you install the dll?
Scope
2021-02-20 06:24:06
https://caniuse.com/jpegxl
_wb_
2021-02-20 09:34:28
my next blog post is ready and queued for publication on Monday morning (US west coast time)
2021-02-20 09:34:32
title will be "Time for Next-Gen Codecs to Dethrone JPEG"
2021-02-20 09:37:35
it's going to be a nice one, spent quite a lot of effort on it
Jim
2021-02-20 11:39:55
Nice, about time for an article that talks about getting rid of JPEG. ๐Ÿ‘€
fab
2021-02-20 11:51:20
will talk about jpeg limitation in ybcr and how to convert png,gif and jpeg with jpeg xl in a lossless way? or cloudinary talks?
_wb_
2021-02-20 12:25:22
It's basically a comparison matrix to give an overview of the features and properties of JPEG, PNG, J2K, WebP, HEIC, AVIF and JXL, making the point that maybe J2K and WebP weren't strong enough to overthrow the JPEG/PNG combo because the difference was small and there were aspects in which they didn't (reliably) beat JPEG/PNG, but in the case AVIF and JXL it will be different.
Troc
_wb_ It's basically a comparison matrix to give an overview of the features and properties of JPEG, PNG, J2K, WebP, HEIC, AVIF and JXL, making the point that maybe J2K and WebP weren't strong enough to overthrow the JPEG/PNG combo because the difference was small and there were aspects in which they didn't (reliably) beat JPEG/PNG, but in the case AVIF and JXL it will be different.
2021-02-21 06:04:38
Be sure to link it.
_wb_
2021-02-21 02:29:26
https://res.cloudinary.com/cloudinary-marketing/image/upload/w_960,f_png,dpr_2.0/Web_Assets/blog/Battle-of-the-Codecs_fnl.png
2021-02-21 02:29:47
That is the "conclusion" comparison table
2021-02-21 02:30:01
From the blogpost that will be published tomorrow
Scope
2021-02-21 02:31:53
lossless: WebP = HEIC = AVIF ๐Ÿค”
2021-02-21 02:33:11
Or is it visually lossless?
_wb_
2021-02-21 02:34:27
Lossless photo is that row
2021-02-21 02:34:40
For lossless nonphoto they are quite different
2021-02-21 02:36:42
Lossless WebP is strictly better than PNG (for 8-bit), but PNG is not very good for lossless photographic images
2021-02-21 02:37:23
E.g. lossless j2k is often better, also e.g. for medical imagery (which is also sensor data)
Scope
2021-02-21 02:37:26
Even J2k lossless is better than WebP lossless for photos (although I haven't tested the more efficient commercial codecs)?
_wb_
2021-02-21 02:38:16
No difference between kakadu and openjpeg for lossless, I don't think j2k has much bitstream choices at all in lossless
2021-02-21 02:39:15
For lossy, kakadu is quite a lot better than openjpeg, and the table is for kakadu
2021-02-21 02:51:03
Looks fair, the table?
Scope
2021-02-21 03:06:14
The rest looks good (only for lossless WebP photo I would probably add half a point, although it depends on the content and format's capabilities and for example for the web is still the best option for lossless compression including photos)
eaitrosducmnSglR
2021-02-21 03:08:29
why is generation loss resilience for jpeg and jxl rated the same, wasn't the original jpeg a lot more prone to generation loss?
_wb_
2021-02-21 03:12:11
It depends on the implementation. When I try default libjpeg-turbo or mozjpeg, it's quite resilient
2021-02-21 03:12:49
Some implementations like current imagemagick seem to be doing something wrong and they degenerate fast
2021-02-21 03:13:35
https://youtu.be/FtSWpw7zNkI
2021-02-21 03:16:24
In AVIF, I also tried not decoding to rgb but staying in yuv444/yuv420. It didn't make a noticeable difference.
Scope
2021-02-21 03:18:16
Yep, it all depends on the encoders, also progressive decoding is a bit better in JXL (but maybe 4 maximum points are not enough to show the difference, although in some ways it will be better in j2k, so it's ok)
_wb_
2021-02-21 03:25:32
J2K is extremely flexible in bitstream ordering options, maybe too flexible (to allow efficient implementations)
Scope
2021-02-21 03:42:41
<@!794205442175402004> Btw, comparing incremental decoding support can also be interesting (and for example Pascal Massimino considers it even more important than progressive, less cost to decode and a clear understanding when the image is fully loaded)
Deleted User
2021-02-21 03:44:16
JPEG XL can do both ๐Ÿ˜‰
_wb_
2021-02-21 03:44:20
That is imo mostly a matter of implementation
2021-02-21 03:44:41
An incremental avif decoder should in principle be possible too
2021-02-21 03:47:33
It's just that video decoder implementers cannot be bothered with providing an api that lets you get a partially decoded frame, because why bother with that complication - it does not have any use in the context of video
Scope
2021-02-21 03:49:50
Yep, although I prefer progressive decoding, incremental is still something like an intermediate option (which is probably worth mentioning)
_wb_
2021-02-21 03:51:58
It's certainly better than nothing
fab
2021-02-22 03:34:25
when the article about jpeg xl?
_wb_
2021-02-22 03:40:38
NOW
2021-02-22 03:40:40
https://cloudinary.com/blog/time_for_next_gen_codecs_to_dethrone_jpeg
bonnibel
2021-02-22 03:48:40
"the existence of the tag" is there an "<img>" supposed to be there?
2021-02-22 03:50:26
its either getting filtered out or parsed as an actual tag (cant check which, on phone rn)
Nova Aurora
2021-02-22 03:51:03
yes
2021-02-22 03:51:26
There is supposed to be an <img> there
2021-02-22 03:54:44
It's weird too
2021-02-22 03:55:12
If I move it back into the text using devtools it shows up
fab
2021-02-22 04:06:51
i read it
2021-02-22 04:07:04
18 minutes
_wb_
2021-02-22 04:11:48
Ah the <img> disappeared
2021-02-22 04:14:06
Will get it fixed
Scope
2021-02-22 04:17:35
Something strange with WebP resizing <:Thonk:805904896879493180>
2021-02-22 04:17:40
_wb_
2021-02-22 04:19:24
What am I looking at?
_wb_ Will get it fixed
2021-02-22 04:20:24
Is fixed now, if you hard refresh
Scope
2021-02-22 04:21:24
Nova Aurora
_wb_ Is fixed now, if you hard refresh
2021-02-22 04:21:38
๐Ÿ‘
Scope
2021-02-22 04:28:50
_wb_
2021-02-22 04:43:03
Hm, I think the css might be set to NN rescaling, that's probably not a good idea
2021-02-22 04:43:31
I should have picked a smaller image so there is no browser downscaling