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?

_wb_
2021-06-18 07:48:47
At the fidelity corresponding to mozjpeg q30 (and lower), typically clearly AVIF > JXL. At the fidelity corresponding to mozjpeg q50, typically AVIF = JXL. At the fidelity corresponding to mozjpeg q70 (and higher), typically clearly AVIF < JXL.
fab
2021-06-20 05:16:01
why jxl win thumb isn't updated <@!239702523559018497>
2021-06-20 05:16:37
https://github.com/saschanaz/jxl-winthumb
diskorduser
2021-06-20 05:56:19
Because fabian will update it.
raysar
2021-06-21 03:00:05
2021-06-21 03:00:48
Jxl works on Android Chrome canary now 🥰 with jxl flag on.
Pieter
2021-06-21 03:07:02
wasn't that the case for a while already?
2021-06-21 03:07:09
oh, you mean on mobile?
raysar
Pieter oh, you mean on mobile?
2021-06-21 03:23:29
Yes 🙂 i edit
KAGAMI
fab why jxl win thumb isn't updated <@!239702523559018497>
2021-06-21 11:24:47
Because there hasn't been any new tagged release from libjxl?
_wb_
2021-06-21 11:28:40
fair enough - I hope we can soon do an actual 0.4.0 release (which will not include encoder improvements etc, only recent decoder/fuzzing fixes), and also maybe a 0.5.0-alpha1 or something
improver
2021-06-21 11:48:05
firefox nighty alpha support when (currently it just draws that as white)
Deleted User
raysar
2021-06-21 02:52:33
<@!794205442175402004> You should use `<wbr>` between the parts of the link.
_wb_
2021-06-21 02:53:52
feel free to make a pull request 🙂 https://github.com/libjxl/libjxl.github.io
incredible_eagle_68175
2021-06-21 08:54:27
I’m working on a image software and we will adopt jpegxl
2021-06-21 08:55:31
Do you know if jpegxl has any rust bindings?
Deleted User
2021-06-21 08:58:54
You can try this (not-so-official) Rust implementation by <@!179701849576833024>... https://github.com/libjxl/jxl-rs
2021-06-21 08:59:33
...or an even-less-official Rust bindings to official libjxl library by <@!239702523559018497>. https://github.com/saschanaz/jxl-rs
incredible_eagle_68175
You can try this (not-so-official) Rust implementation by <@!179701849576833024>... https://github.com/libjxl/jxl-rs
2021-06-21 09:01:20
I’ll work from this one. Thanks!
veluca
I’ll work from this one. Thanks!
2021-06-21 09:04:26
That's extremely incomplete though
incredible_eagle_68175
2021-06-21 09:04:43
Well I’ll complete the parts I need 🙂
2021-06-21 09:05:16
I don’t think I’ll need bindings for the entire library anyway, just the most important portions
veluca
2021-06-21 09:05:35
Yeah those are not there yet 😂
incredible_eagle_68175
2021-06-21 09:18:52
Obviously i will submit patches like I’ve been doing for other rust projects that I have been using
_wb_
2021-06-22 05:18:39
Do you need bindings or an actual rust implementation?
incredible_eagle_68175
2021-06-22 05:35:54
Just bindings
2021-06-22 05:36:12
Maybe a actual rust implementation will come later but don’t have time for that right now
_wb_
2021-06-22 05:46:15
Then probably https://github.com/saschanaz/jxl-rs is what you need
2021-06-22 05:47:05
Luca's project is trying to make a full rust implementation, but that will take a while
Deleted User
2021-06-23 02:45:14
Chrome is quite a bit slow when decoding images with alpha. Lossy FHD with alpha feels like taking around a second to render. Will this get faster until the stable 93 release?
_wb_
2021-06-23 02:52:00
I hope so; I suspect some of the slowness is because alpha is done with the squeeze transform, which does add some decode complications
2021-06-23 02:52:25
but maybe there's also some slow stuff going on to get the blending right
2021-06-23 02:53:25
how long does it take to show an image like this? data:image/jxl;base64,/wr6HwGRCAYBAFAASzhBvO15IutBdUj+EWONJGEBgAA=
2021-06-23 02:53:36
(that's also with squeeze but without alpha)
Deleted User
2021-06-23 02:57:38
pretty fast. maybe almost as fast as a lossy FHD image without alpha.
_wb_
2021-06-23 03:07:36
ok then it's not squeeze that is the main problem
2021-06-23 03:09:28
<@!768090355546587137> <@!604964375924834314> do you have an idea what makes images with alpha slow atm in chrome?
spider-mario
2021-06-23 03:11:13
is it also slow with an equivalent PNG?
2021-06-23 03:11:36
or let’s say, does a similar slowdown occur with an equivalent PNG vs. an opaque PNG
2021-06-23 03:12:02
(to make sure that it’s not just PNG decoding in general that is slow)
Deleted User
2021-06-23 03:37:29
No, PNG+alpha decodes what I would call instantly. JXL without alpha is quite fast, but not as snappy as PNG or WebP. JXL with alpha causes a noticeable lag.
spider-mario
2021-06-23 03:41:29
in that case, I suppose it’s likely not the compositing either
2021-06-23 03:42:34
is it slow in Chrome only or with `djxl` as well?
Deleted User
2021-06-23 03:46:29
19.74 MP/s vs 11.53 MP/s
2021-06-23 03:47:15
``` A:\>djxl a.jxl a.png JPEG XL decoder v0.3.7 [AVX2] Read 165603 compressed bytes. Decoded to pixels. 1920 x 1080, 19.74 MP/s [19.74, 19.74], 1 reps, 4 threads. Allocations: 352 (max bytes in use: 6.709487E+07) A:\>djxl b.jxl b.png JPEG XL decoder v0.3.7 [AVX2] Read 165829 compressed bytes. Decoded to pixels. 1920 x 1080, 11.53 MP/s [11.53, 11.53], 1 reps, 4 threads. Allocations: 392 (max bytes in use: 1.065569E+08) ```
2021-06-23 04:51:31
ok, so I also screen-captured the command line. Maybe not totally accurate but between the "Read [...] bytes." and "Decoded to pixels." message lay a bit more than 100 ms for the no-alpha image and 300 ms for the opaque-alpha image.
2021-06-23 04:52:34
So I guess it is mainly a performance problem with libjxl?
2021-06-23 04:59:17
Just converted the image without alpha to lossless JXL and it is also slow to decode. So I guess modular mode needs support for hardware acceleration?
_wb_
2021-06-23 05:14:00
Modular is in general slower than vardct, and hardware will not help I'm afraid
Pieter
2021-06-23 05:33:33
Just wait until someone creates a cryptocurrency that involves decoding random jpeg-xl modular bitstreams. There will be optimized hardware for it in no time.
fab
2021-06-23 06:01:32
also what happened with facebook? is still interested in the collaboration?
diskorduser
Pieter Just wait until someone creates a cryptocurrency that involves decoding random jpeg-xl modular bitstreams. There will be optimized hardware for it in no time.
2021-06-23 06:09:13
Jxl NFTs.
Pieter
2021-06-24 12:34:23
It doesn't actually work.
2021-06-24 12:35:41
Because difficulty of decoding is not uniform, people would at best just build hardware that can very efficiently decode a small subset of easy files, possibly with very arbitrary restrictions, and just grind to hit those cases.
2021-06-24 12:36:09
Further, they'd optimize for massively parallel decoding, at possibly very high latency. Not what you actually want for production usage.
2021-06-24 12:36:21
Look into what happened with ASICBOOST in Bitcoin.
_wb_
2021-06-24 05:43:01
There is a Japanese company looking into hardware encode/decode of jxl, but they're likely going to restrict themselves to a subset (simple modular with fixed MA tree, no patches, no splines, etc)
monad
2021-06-24 06:06:05
What would be the application?
_wb_
2021-06-24 06:11:54
I assume camera
2021-06-24 06:12:11
There you care mostly about fast encode
2021-06-24 06:12:53
And it's ok for an encoder to only use a subset of the codec
2021-06-24 06:13:11
I'll know more after the next JPEG meeting
monad
2021-06-24 06:20:37
Ah, very cool.
Orum
2021-06-24 07:31:32
Are you able to name the company?
_wb_
2021-06-24 07:36:59
probably better not
Orum
2021-06-24 07:37:54
fair enough; I suppose we'll know in a couple years anyway
2021-06-24 09:54:52
yeah, though there are only a few that I'd suspect are working on a JXL ASIC
_wb_
2021-06-24 10:26:13
if you google "jpeg ip core products" you'll probably get the company on the first page
2021-06-24 10:29:49
I did not say camera company
2021-06-24 10:29:56
I said Japanese company
lithium
2021-06-24 10:56:44
I find a chinese language article introduction avif, quote Jon Sneyers youtube, > https://www.youtube.com/watch?v=w7UDJUCMTng and say<:NotLikeThis:805132742819053610> : > This is AVIF another victory. > https://www.techbang.com/posts/84971-jpeg-picture-format-avif
_wb_
2021-06-24 11:01:01
https://www.youtube.com/watch?v=FtSWpw7zNkI is a better comparison
2021-06-24 11:01:28
JPEG can be quite good, there just is something wrong with what ImageMagick does, it seems
2021-06-24 11:03:13
AVIF does not do great - it's not as bad as WebP, but it's certainly losing a lot even in 4:4:4, and certainly in 4:2:0
lithium
2021-06-24 11:05:39
Agree, Hope jxl vardct can get better quality for anime(ligne claire) content.
_wb_
2021-06-24 11:06:56
2021-06-24 11:07:33
first frame of that video - you can see the file sizes of the first generation, it's not like jxl is getting more bytes than the rest or something
2021-06-24 11:07:44
2021-06-24 11:07:45
generation 900
2021-06-24 11:10:06
jxl does have plenty of issues after 900 generations too, especially of the yellow/blue kind
2021-06-24 11:11:11
avif has significantly bigger issues though, especially in the 420 case
Crixis
_wb_
2021-06-24 11:23:17
new encoder is better or worst in this?
_wb_
2021-06-24 11:23:30
haven't tested
2021-06-24 11:24:03
was just responding to the chinese article that claims "another victory for AVIF" when it comes to generation loss
2021-06-24 11:24:43
in practice, 4:2:0 AVIF is going to be most common, and generation loss there is very bad, almost WebP levels of bad.
2021-06-24 11:27:47
the down-right bleed of chroma is very heavy
2021-06-24 11:28:02
lithium
2021-06-24 11:38:14
I think we need a chinese language wiki page.🤔
improver
2021-06-25 05:30:38
if its got the same magic as valid file, arguably its good enough for testing, i guess
_wb_
2021-06-25 05:33:24
Yes, presumably they don't care about it being valid
2021-06-26 02:03:11
jxl is now enabled on the cloudinary.com website itself
2021-06-26 02:03:34
for the f_auto images that are used there
2021-06-26 02:05:21
we may have to update some marketing material
2021-06-26 02:05:22
https://cloudinary-res.cloudinary.com/images/c_scale,w_400,dpr_2.0/f_auto,q_auto/v1601406451/website/refresh/media_management/cloudinary_web_media_management_loose_bytes_without_loosing_quality/cloudinary_web_media_management_loose_bytes_without_loosing_quality.png
2021-06-26 02:05:48
for example the above url
2021-06-26 02:06:02
will give you a jxl if you have enabled the enable-jxl flag
2021-06-26 02:06:06
an avif otherwise
2021-06-26 02:06:17
a webp if you're on a browser that doesn't have avif yet
2021-06-26 02:06:24
or maybe a jpeg 2000 on safari
2021-06-26 02:07:03
JPEG XR we don't do at all anymore (it's for internet explorer and really old versions of edge, not really relevant anymore)
2021-06-26 02:08:00
and of course as a fallback for stupid browsers (mostly microbrowsers like what is in whatsapp, discord, slack etc) there's the good old JPEG
fab
2021-06-26 02:08:17
so they will update the image
2021-06-26 02:08:23
https://discord.com/channels/794206087879852103/803574970180829194/858347212019204137
_wb_
2021-06-26 02:09:13
the image is just to illustrate what f_auto does
fab
2021-06-26 02:09:27
will you update the image
2021-06-26 02:09:29
with jpeg xl
_wb_
2021-06-26 02:09:58
I guess at some point they could update it with avif and jxl
fab
2021-06-26 02:10:20
when the quality is good
_wb_
2021-06-26 02:10:24
the image itself is a jxl though when you click "open original" and use a browser that supports jxl 🙂
2021-06-26 02:10:59
currently we're just sending jxl to everyone who accepts jxl from the cloudinary website
2021-06-26 02:12:37
our marketing people probably don't want to do the low-fidelity high-appeal thing where avif is better, that wouldn't really be a good idea for a website like this 🙂
fab
2021-06-26 05:10:46
how to know at which commit the decoder is
2021-06-26 05:10:58
for jpeg xl in Mozilla and G.CHROME
_wb_
2021-06-26 05:18:29
Chrome follows the 0.4.x branch afaik
190n
2021-07-01 04:31:11
it'd be funny if they beat firefox to it
2021-07-01 04:40:52
yeah doesn't seem like it's for me either
BlueSwordM
2021-07-01 04:44:15
The new Proton UI in firefox is quite nice though 🔪
Orum
2021-07-01 03:16:21
at least you can disable it
improver
2021-07-01 03:38:14
not for long
incredible_eagle_68175
2021-07-01 08:50:02
I use pale moon for some stuff, it’s better than people think. It’s just that sometimes websites are “chromesites” and don’t work in even Firefox
2021-07-02 12:56:39
That’s by design. Pale moon is not a chrome replacement
2021-07-02 12:56:53
It has a specifc use case for specific people
2021-07-02 10:55:46
Some people have stuff that only work with old browsers (Flash, old extensions). In addition people with toaster computers might find it useful
Jyrki Alakuijala
2021-07-02 01:33:17
https://twitter.com/jonsneyers/status/1410921825077501954 retweet!
bonnibel
2021-07-02 03:00:41
_i_ measure my image codecs in acres of land ploughed per hour
_wb_
2021-07-02 03:06:50
i prefer my images unploughed
2021-07-02 03:08:07
no avif tractor splashing muddy blur all over my pixels
2021-07-02 03:08:16
😅
diskorduser
2021-07-02 04:43:41
But for web, many people don't care about fidelity. They just need less artifact-y, low file size good appeal images.
_wb_
2021-07-02 04:59:09
sure
2021-07-02 04:59:27
in some use cases
2021-07-02 04:59:59
if the image is there just to make the site look less boring, fidelity doesn't matter and appeal is all that matters
2021-07-02 05:01:07
if the image is e.g. a product you're selling, then fidelity does kind of matter - if you ruin the texture or color, you'll likely sell less and/or get more unsatisfied customers who return the product because it doesn't match the picture they saw
lithium
2021-07-02 05:04:21
Some Ebook(manga) service also need high fidelity lossy compression to keep product quality.
_wb_
2021-07-02 05:07:09
in some cases, you can go down to very low fidelity as long as there's no annoying artifacts
2021-07-02 05:07:42
but even for that, it's not q20
2021-07-02 05:07:49
more like q50 or q60
paperboyo
2021-07-02 06:26:23
Where’s me shiny new tractor…? 😉
incredible_eagle_68175
2021-07-03 03:11:54
Yes. Plus it’s more energy efficient,etc...
Deleted User
2021-07-03 02:34:46
Chrome (93.0.4542.2) displays https://github.com/libjxl/conformance/blob/master/testcases/upsampling/ wrongly. Can someone check with a newer version or is this a known bug?
_wb_
2021-07-03 02:37:05
it's fixed in current git, but maybe the fix hasn't been cherry-picked into chrome?
BlueSwordM
2021-07-05 03:29:16
https://www.newscientist.com/article/2282648-streamlined-jpeg-xl-images-could-cut-global-data-use-by-30-per-cent/
Orum
2021-07-05 08:34:07
is even 30% of internet traffic images?
Scope
2021-07-05 08:54:18
I think it's about a total traffic decrease
190n
2021-07-05 08:56:58
yeah but if total image traffic is less than 30% of total traffic, it's impossible for a new image format to reduce total traffic by 30%
monad
2021-07-05 09:03:11
Seems like a misinterpretation.
Scope
2021-07-05 09:03:59
As far as I remember image traffic is about 60-70% (not including video)
monad
2021-07-05 09:08:58
Yeah, the stat is probably just ignoring video. I wonder what the original quote was.
_wb_
2021-07-05 09:55:18
I told the reporter that jxl is 50% smaller than jpeg and that images are 60% of the bytes of a median web page.
2021-07-05 09:55:42
He turned it into that headline, which is not quite correct, but meh
monad
2021-07-05 12:08:25
The headline certainly seems to be garnering public attention, even if misleading.
lithium
2021-07-05 12:28:28
<:JXL:805850130203934781> The Next Generation "Alien Technology From The Future"
raysar
2021-07-08 09:51:08
I see the ISO table, we are in stage 50.00 for jpegxl 😄
2021-07-08 09:57:41
Uh, i see that jxl is not default enable in chrome 93 ! They don't want? it's fully working for now? They are waiting for progressive decoding?
improver
2021-07-08 11:53:38
progressive decoding yes but also probably needs decision by higher-ups i guess
raysar
2021-07-08 12:44:57
Avif is near everywhere !
2021-07-08 12:45:47
Microsoft edge dev seem to prefer JXL !
_wb_
raysar Microsoft edge dev seem to prefer JXL !
2021-07-08 02:30:11
why do you say that?
raysar
2021-07-08 02:32:35
Because edge support now jxl with enable flag, that's not the case for avif.
_wb_
2021-07-08 02:47:14
oh. Weird - I would expect there at least to be a flag for avif in edge too...
veluca
2021-07-08 05:38:15
likely there is
Scope
2021-07-08 05:41:44
It just requires installed HEIF and AV1 extensions
fab
2021-07-08 05:47:57
in september what it will happen to jpeg xl
2021-07-08 05:49:49
other than two tests by webp2 team
raysar
Scope It just requires installed HEIF and AV1 extensions
2021-07-08 08:44:49
What do you say? I found no way to display avif file in edge and edge canary. (i have install microsoft store av1 and heif app)
Scope
2021-07-08 09:01:07
Then I am mistaking with "fake" avif, when one AV1 frame was put into an MP4 container or something like that
2021-07-08 09:06:55
boogerlad.
2021-07-13 05:51:14
Any chance jpeg xl will make it into the pixel 6? Would be amazing to have lossless + wide color gamut to take advantage of the display + camera system
2021-07-13 05:51:57
though I guess it must be encoded / decoded in software, which is going to be too slow...?
Diamondragon
Any chance jpeg xl will make it into the pixel 6? Would be amazing to have lossless + wide color gamut to take advantage of the display + camera system
2021-07-13 05:59:41
No way. It's entirely too new to be used for image capture. Hardware support will be needed for that, which will take another two years, if it happens at all.
2021-07-13 05:59:44
There is the possibility that djxl could make it in to Android 12 to provide decoding support in the OS and apps. I hope it does, since jxl can't be broadly useful without wide support, and if Google (which did the majority of development work on jxl) won't support it in their own OS and browser, why should anyone?
boogerlad.
2021-07-13 06:02:47
sigh. guess apple will remain the only company that supports wide color gamut 😦
veluca
Diamondragon No way. It's entirely too new to be used for image capture. Hardware support will be needed for that, which will take another two years, if it happens at all.
2021-07-13 06:05:39
pretty sure it can be done in GPU 😛
boogerlad.
2021-07-13 06:06:41
since jpeg xl parallelizes so well, it would work well on android's "many weak ARM cores" paradigm
Diamondragon
veluca pretty sure it can be done in GPU 😛
2021-07-13 06:08:17
That'd be nice, if so.
veluca
2021-07-13 06:19:29
I was thinking about writing a fast GPU encoder at some point
2021-07-13 06:20:05
probably if I write something the first implementation will use CUDA 'cause it's the only thing I know already
2021-07-13 06:20:34
then I can figure out how to make it run on other stuff
2021-07-13 06:22:34
IDK, but it's certainly easy to *write* CUDA programs
2021-07-13 06:22:44
because it's basically C++
2021-07-13 06:23:18
the most portable option is I think Compute Shaders
_wb_
Diamondragon There is the possibility that djxl could make it in to Android 12 to provide decoding support in the OS and apps. I hope it does, since jxl can't be broadly useful without wide support, and if Google (which did the majority of development work on jxl) won't support it in their own OS and browser, why should anyone?
2021-07-13 09:33:52
It could be a good idea to do that, but it would mostly be a PR thing. In practice, most Android apps ship their own decoders, even for libjpeg-turbo they often do not use the system library. The reason is simple: low-end Android devices are stuck at old Android versions, yet they need the decoder speedups the most that are in the most recent versions of decoders.
fab
2021-07-13 10:45:20
for 28 mpx images current decoder uses 1,3 gb of ram
2021-07-13 10:45:27
too much
2021-07-13 10:46:26
with jxl win thumb i get 800mb
_wb_
2021-07-13 11:26:59
djxl creates a full 32-bit float decoded buffer, so that alone is already 12 bytes per pixel in case of RGB, 16 bytes in case of RGBA. 28 megapixels -> 336 megabyte.
2021-07-13 11:27:51
it should be able to not need significantly much more than that though, at least in the VarDCT case
2021-07-13 11:28:20
in the Modular case there are still a few unnecessary copies
Squid Baron
2021-07-13 02:09:06
weird, I've just upgraded to firefox 90, enabled "image.jxl.enabled" and it doesn't work. otoh ` --enable-features=JXL` in edge works fine
fab
2021-07-13 04:01:04
vardct -d 1.17 -s 9 --use_new_heuristics or normal -s 9 -d 1 i used only those two commands
2021-07-13 04:01:29
yes i used djxl libjxl v0.3.7-241-g89889a1 win_x64 2021.07.13
diskorduser
2021-07-13 04:06:07
This doesn't belong to adoption
Deleted User
2021-07-13 05:44:31
Fabian not only chooses parameters at random, he also chooses the channel to share them at a whim.
w
2021-07-14 12:41:03
ive also tried to do animated jxl except that the api hasnt exposed all the headers for animation yet
2021-07-14 12:42:59
i dont think there is an issue with transparency
2021-07-14 12:43:04
it looked like it worked already (it works for me)
2021-07-14 12:43:53
and idk anything about hdr. i will never understand hdr. it's not like firefox ever supported hdr in the first place
2021-07-14 12:50:57
i open an image, right click inspect and change the background color
2021-07-14 12:51:00
that's how i tested it
2021-07-14 12:51:02
and it worked
improver
w i dont think there is an issue with transparency
2021-07-14 01:12:34
doesn't work for me
w
2021-07-14 01:14:59
hmm
2021-07-14 01:15:01
ill look into it
improver
2021-07-14 01:15:06
w
2021-07-14 01:15:44
yeah i get
2021-07-14 01:15:48
improver
2021-07-14 01:15:50
image im testing with. on chromium it properly does transparent bg, in firefox it shows white there
w
2021-07-14 01:15:51
black parts fully transparent
2021-07-14 01:15:56
but white should be
2021-07-14 01:26:56
that was an easy fix as described by kagami
2021-07-14 01:27:04
though it's gotta wait for the qcms patch
2021-07-14 02:13:45
it's more of it conflicts and it's easier this way
eddie.zato
2021-07-15 12:32:33
But I dunno how to enable chrome flags in electron/vscode, if that is even possible. 😄
eclipseo
Diamondragon There is the possibility that djxl could make it in to Android 12 to provide decoding support in the OS and apps. I hope it does, since jxl can't be broadly useful without wide support, and if Google (which did the majority of development work on jxl) won't support it in their own OS and browser, why should anyone?
2021-07-19 01:08:12
Google contributed a lot to JXl but is still developping Webp2, I don't understand their goals
_wb_
2021-07-19 02:17:02
Google is big, besides jxl and webp2 they are also heavily into avif
2021-07-19 02:17:31
They're big enough to just do everything so whichever wins they can say they made it :)
Jim
2021-07-20 01:34:45
Google owns YouTube so it was in their interest to work on AV1. It was also in their interest to have AV1 be an image format because they have a lot of blogs that include images that are not major and that would work well for video screen captures in YouTube. While it does not seem they were all that interested in another image format, some of the compression techniques used in JXL are also being promoted for better generic/text & html compression. They are the web, after all. JXL just became a side project they didn't really expect, but since it uses their compression software, good for them. Since they also have a lot of image storage (Drive & Photos), it will just be an added plus in the long run to be able to improve compression on those media files for less storage & bandwidth.
_wb_
2021-07-27 02:11:48
Does anyone feel like adding jxl support to Blender? It already supports quite a few import/export formats (j2k, webp etc), and I think jxl would be a good codec for this use case.
2021-07-27 02:12:29
It doesn't look like it would be very hard to do, basically grep the code for `WEBP` and do something similar
fab
2021-07-27 04:07:51
when support for cjxl in greenshot?
2021-07-27 04:08:15
at least lossless
diskorduser
2021-07-27 04:59:33
Ask greenshot developer?
_wb_
2021-07-28 07:27:45
<@!239702523559018497> There doesn't seem to be any activity on https://github.com/mozilla/standards-positions/issues/522 anymore, any idea how to make progress here?
fab
2021-07-29 06:39:31
how can facebook start with jxl
2021-07-29 06:39:41
and permits to save other people photo as jxl
2021-07-29 06:39:50
if windows 11 isn't out
2021-07-29 06:39:57
windows 10 likely won't receive jxl
2021-07-29 06:40:08
i think it can because it doesn't expire now
2021-07-29 06:40:28
likely people don't have computer upgraded
2021-07-29 06:40:37
so they have to download a viewer
2021-07-29 06:40:53
and the viewer crashes when there is rotation metadata on a photo
2021-07-29 06:41:35
and on android when you download a viewer that is not opensource you don't have libjxl
2021-07-29 06:42:28
how support in the web will move? or in fb? do you have anticipations or spoiler, rumor
2021-07-29 06:43:12
as i read the link up firefox still don't have upgraded decoder
2021-07-29 06:43:18
latest is 25 may so 0.4.0
2021-07-29 06:44:17
the support in open source is poor, greenshot can't save in jxl, qttabbar beta 17072021 can't show a jxl files bigger when you point the mouse
Diamondragon
fab how can facebook start with jxl
2021-07-29 07:08:17
That's easy: Facebook doesn't care whether or not the user's operating system, much less third party apps, support JXL. All they need are for their own smartphone apps (which they fully control), and most web browsers (which would be the first things to adopt new image formats anyway) to support it.
fab
Diamondragon That's easy: Facebook doesn't care whether or not the user's operating system, much less third party apps, support JXL. All they need are for their own smartphone apps (which they fully control), and most web browsers (which would be the first things to adopt new image formats anyway) to support it.
2021-07-29 08:08:28
yes but people shouldn't save ohter people image in jxl
2021-07-29 08:08:42
if i want to download an image how i do in fb
2021-07-29 08:08:55
if i'm on mobile
2021-07-29 08:09:14
and it chooses another format for download a reconversion
2021-07-29 08:09:41
jon sneyers probably knows
2021-07-29 08:09:56
he can't spoiler
diskorduser
2021-07-30 01:20:39
Why should Facebook care about people saving images? It's not a photo selling service
2021-07-30 01:22:29
If fb adopt jxl, people will ask their favourite app's developers for jxl support. So I don't see any problem.
npc5146
2021-08-02 11:54:39
Firefox is irrelevant anyway 😆
w
2021-08-02 11:55:02
>:c
npc5146
2021-08-02 11:55:07
It's bleeding users at an alarming pace
w
2021-08-02 11:55:44
gecko > blink
fab
2021-08-03 07:45:47
will chrome 93 have jxl?
_wb_
npc5146 Firefox is irrelevant anyway 😆
2021-08-03 02:04:49
I don't think so. In market share, yes, they do have a problem. But it's the only other foss non-blink browser that has some market share (webkit itself is foss too but its only significant use is in safari).
raysar
2021-08-03 02:51:12
i'm on firefox 90 stable, jxl enable, but it doesn't work, it's the same for you?
2021-08-03 02:57:21
An i see OPERA 77 stable support JXL (with flags) 😍
_wb_
2021-08-03 02:57:48
Jxl is only in firefox nightly, not in stable builds
Deleted User
2021-08-03 04:30:49
Why is there a flag when it only works in nightly anyway?
Scope
2021-08-03 04:34:57
Perhaps because they are not sure if this format is worth including or the decoder is stable enough
w
2021-08-03 10:39:57
well first it needs to get working properly
2021-08-03 10:40:03
I've been trying very hard
2021-08-03 10:40:24
also animated avif is still not supported in ff
improver
2021-08-03 10:59:34
decoder lib stuff is real concern as i think firefox didn't use 0.4 branch at all
2021-08-03 11:00:03
now that it got 0.5 i guess it could be bumped
2021-08-05 07:21:37
i think there have been lib size improvements incase only decoding part is used
w
2021-08-07 12:18:49
i cant for the life of me get animated jxl working in firefox. i spent over 2 weeks on this already. i have to give up for now >.>
2021-08-07 12:25:30
if anyone can help ill leave this here
2021-08-07 12:27:13
i honestly cant bother lol
2021-08-07 12:39:52
hmm.. is there even a point in animated avif when people are just going to use webm
2021-08-07 12:47:32
i mean that avif is just av1 in avif container, so wouldnt people just do av1 in webm. there's no other way to get animated jxl so animated jxl kinda is required imo
_wb_
w i mean that avif is just av1 in avif container, so wouldnt people just do av1 in webm. there's no other way to get animated jxl so animated jxl kinda is required imo
2021-08-07 05:49:40
Not if webm doesn't work in an img tag.
w i cant for the life of me get animated jxl working in firefox. i spent over 2 weeks on this already. i have to give up for now >.>
2021-08-07 07:51:28
Are you stuck at some firefox thing, or at some libjxl thing?
w
2021-08-07 07:53:18
I think it's some firefox thing. libjxl seems to be decoding properly
_wb_
2021-08-07 07:56:07
Did you look at how gif is done?
w
2021-08-07 07:56:45
yeah i've especially stared at webp and apng
_wb_
2021-08-07 08:06:49
So what happens? Does it do anything?
w
2021-08-07 08:07:10
I guess i should describe it.
2021-08-07 08:07:32
All frames decode, but it crashes when it runs PostDecodeDone
2021-08-07 08:08:29
actually that's it
_wb_
2021-08-07 08:22:40
Is there a way to get a backtrace or see why it crashes?
w
2021-08-07 08:27:26
unfortunately i have no idea what i am doing when it comes to debugging firefox. there's no log for it for what it's worth
veluca
2021-08-07 10:19:58
Have you tried running it in gdb?
w
2021-08-08 03:33:35
so uhh i got it working
2021-08-08 03:42:22
but these two test images <https://github.com/libjxl/conformance/blob/master/testcases/animation_newtons_cradle/input.jxl> <https://github.com/libjxl/conformance/blob/master/testcases/animation_spline/input.jxl> force firefox to do decode on demand (by default) which makes it really slow and it can't keep up with the framerates
_wb_
2021-08-08 03:46:02
Too many total pixels to keep all decoded frames in memory?
2021-08-08 03:46:11
Or how does it work in ff?
w
2021-08-08 03:46:33
yeah im guessing it's all decoded frames
2021-08-08 03:47:07
decided here <https://searchfox.org/mozilla-central/source/image/AnimationSurfaceProvider.cpp#37>
_wb_
2021-08-08 03:47:13
I remember in chrome they had to spend some effort to make efficient seek work, maybe something similar has to be done in ff?
w
2021-08-08 03:47:29
what it does is just restart from the beginning when it's done
2021-08-08 03:47:32
and keep a buffer of frames
2021-08-08 03:47:58
so when it needs the next one, which is always since it's a looping animation, the decode speed can't keep up with the framerate of the video
2021-08-08 03:52:19
both of those images are just over the default threshold of 20mb assuming the images in memory are bitmaps in rgba8
2021-08-08 03:55:26
your guys' care for this in ff pushed me to get this working so thanks.
2021-08-08 03:56:16
next is progressive but ~~i dont think it's possible with how ff handles progressive~~ it is way too hard for me
_wb_
2021-08-08 04:09:52
Progressive is not even there yet in chrome, but I think it's less urgent (it's very nice to have, but it's not an interoperability problem if it doesn't work, only a perceived performance problem)
veluca
2021-08-08 04:31:22
I'm not even 100% sure we have efficient animation in Chrome... at least in the beginning we just said "you cannot ever drop frames, sorry"
2021-08-08 04:32:35
having said that, if we did put the efficient thing in Chrome then it should be relatively simple to do the same in FF, most of the work went in libjxl
2021-08-08 04:35:00
... I'll ask <@!768090355546587137> tomorrow if I remember
Scope
2021-08-08 04:39:08
Progressive support would also be nice, because it is one of the JXL advantages compared to other modern formats
Stan
2021-08-08 10:09:55
See how progressive looks now in Chrome
_wb_
2021-08-09 06:18:05
We have per-group incremental loading in chrome, but not yet progressive loading.
w
2021-08-09 07:41:19
dont know how i managed
2021-08-09 08:17:51
i dragged the file into the box
2021-08-09 08:17:55
instead of using the link
improver
2021-08-09 08:18:26
careful don't burn yourself out with this lol
w
2021-08-09 08:18:43
haha spent all my time doing this instead of studying >.>
improver
2021-08-09 08:19:17
ooof these things can bite
w
2021-08-09 08:19:53
i dont see the point in the olympics
2021-08-09 08:19:55
:p
improver
2021-08-09 08:20:00
same
w
2021-08-09 08:20:20
the olympics is the reason love live was delayed 2 weeks so i can only hate it
Stan
w dont know how i managed
2021-08-09 08:42:34
try to select 1kb step. For each step this tool generates a truncated image
w
2021-08-09 08:51:38
2021-08-09 08:52:03
cool tool 👍
_wb_
2021-08-09 09:05:29
Does it represent how progressive loading actually works in the browser? (when loading the full image)
w
2021-08-09 09:05:58
yeah i tried using the built in FF network throttle
_wb_
2021-08-09 09:06:08
Very cool!
2021-08-09 09:06:43
Is your patch going to end up in ff?
w
2021-08-09 09:07:12
i hope, though i will wait for the efficient animation thing first
_wb_
2021-08-09 09:07:36
Kind of cool that ff might have good progressive jxl loading before chrome 😅
w
2021-08-09 09:44:21
it helps that the api is so easy to use
veluca
2021-08-09 09:49:22
... cool!
2021-08-09 09:49:36
I'd suggest you to send the CL independently of the efficient animation stuff
2021-08-09 09:50:08
(that requires updating to 0.5 among other things)
w
2021-08-09 09:50:27
oh yeah i also need to figure out how title a patch to moz that covers multiple bugs
veluca
2021-08-09 09:50:50
tbh probably the best way is to split the patch into multiple patches 😛
w
2021-08-09 09:51:35
i guess ill do that then
lvandeve
veluca ... I'll ask <@!768090355546587137> tomorrow if I remember
2021-08-09 09:55:25
This will make the animation more efficient in chrome. Just needs the latest jxl version merged https://chromium-review.googlesource.com/c/chromium/src/+/2953140
_wb_
2021-08-09 10:02:52
Lode, can we get progressive loading in chrome too? Would be nice if both firefox and chrome can have it before the flag gets enabled by default, then it's progressive "from the start".
lvandeve
_wb_ Lode, can we get progressive loading in chrome too? Would be nice if both firefox and chrome can have it before the flag gets enabled by default, then it's progressive "from the start".
2021-08-09 10:04:19
what type of progressive do you mean? e.g. loading groups one by one, showing low res then high res, other forms of progressive...
_wb_
2021-08-09 10:09:59
Showing the upsampled DC if and when it is available, then groups as they arrive (which can be once per group or multiple times in case of progressive AC passes)
lvandeve
2021-08-09 10:11:12
the upsampled DC is marked deprecated in the API. The showing of groups should already be supported, that is, chrome may show intermediate stages if the loading goes slow, and we render the groups to the final buffer as they get decoded EDIT: typo, meant downsampled DC
_wb_
lvandeve the upsampled DC is marked deprecated in the API. The showing of groups should already be supported, that is, chrome may show intermediate stages if the loading goes slow, and we render the groups to the final buffer as they get decoded EDIT: typo, meant downsampled DC
2021-08-09 10:13:47
But we only render every pixel once, right? It would be nice to also show the upsampled DC (I assume there is a new way to get it besides the deprecated api?) for groups that aren't final yet, i.e. rendering every pixel twice.
improver
2021-08-09 04:34:06
why is it marked deprecated? getting DC sounds like handy feature
veluca
2021-08-09 04:35:23
getting the *upsampled* DC, yes
2021-08-09 04:35:29
getting the raw DC, not so much
2021-08-09 04:35:38
it has a bunch of weird restrictions and problems
improver
2021-08-09 04:37:04
> the upsampled DC is marked deprecated in the API <:Thonk:805904896879493180>
veluca
2021-08-09 04:37:44
that's a typo 😛
Scope
2021-08-09 04:42:24
For some reason I do not see JXL LQIP at any load percentage 🤔 <https://stan-kondrat.github.io/progressive-image-viewer/>
_wb_
2021-08-09 05:22:51
Libjxl needs to get some fixes before we can do before-full-DC previews again (in case of dc frames)
w
2021-08-11 09:54:26
<https://phabricator.services.mozilla.com/D119700#3977128> <:sadge:860304344771461130>
_wb_
2021-08-11 10:22:59
Is there anything we can do to help? If it's a matter of limited resources, is there a way we can add resources?
veluca
2021-08-11 10:24:12
I am not sure, but I suspect that accepting a MR is not really a question of resources... I rather suspect there's politics involved
_wb_
2021-08-11 10:28:52
Oh ok, so the "limited resources" is just a polite way to say "no"?
improver
2021-08-11 10:32:52
"not right now". I guess reviewing takes time, and if no one gets assigned that...
2021-08-11 10:35:27
kinda silly reasoning, but I guess that's what happens when project isn't community-ran but commercial
veluca
_wb_ Oh ok, so the "limited resources" is just a polite way to say "no"?
2021-08-11 10:37:51
I think so, yes
improver "not right now". I guess reviewing takes time, and if no one gets assigned that...
2021-08-11 10:38:11
I'm pretty sure time is not the issue, but IDK
improver
2021-08-11 10:54:25
perhaps.
_wb_
2021-08-11 10:57:25
<@239702523559018497> is here, I guess we can just ask: is it really about time/resources or is it a political thing?
veluca
2021-08-11 11:15:08
in other news - I guess <@!693227044061839360> is the best person to bother about https://github.com/ImageMagick/ImageMagick/pull/4064 ? 😄
Fraetor
2021-08-11 02:40:27
Yeah, hopefully it is just that they arnt going to do it until FF92 or something.
Deleted User
2021-08-12 03:25:28
it seems the timing could be bad with AVIF support becoming default etc, so for the time being they're probably focused on getting that ready the foreseeable future could be making sure AVIF has a stable, successful bug free launch for enabling it by default I don't see a particular political reason to not support the format besides not impacting the release and success of another
Dirk
veluca in other news - I guess <@!693227044061839360> is the best person to bother about https://github.com/ImageMagick/ImageMagick/pull/4064 ? 😄
2021-08-12 07:14:13
Will take a look at the PR this weekend. Did a quick check and it looks like it requires some changes. I might use your PR as a template fro my own commit if it requires too many changes. Hope you don't mind.
veluca
Dirk Will take a look at the PR this weekend. Did a quick check and it looks like it requires some changes. I might use your PR as a template fro my own commit if it requires too many changes. Hope you don't mind.
2021-08-12 08:32:11
Well, it's not my commit :D I'll ask
_wb_
2021-08-13 09:35:33
The 12-year olds on 4chan are overanalyzing stuff again: https://boards.4channel.org/g/thread/82921898/mozilla-is-prioritizing-avif-wont-merge-jpeg-xl
Deleted User
2021-08-13 10:38:58
sigh, 4chan targeting the messenger saschanaz made jxl-rs and winthumb; it's pretty clear there's more to this decision than one individual
Justin
sigh, 4chan targeting the messenger saschanaz made jxl-rs and winthumb; it's pretty clear there's more to this decision than one individual
2021-08-13 10:45:37
Ye.. I mean.. this summarizes the intellect of 4chan discussions I guess. Bash the messenger on a personal level. Ugh
spider-mario
2021-08-13 11:14:43
Q: “Why am I not surprised?” A: because it’s relatively common for people to have they/them as their pronouns
Fox Wizard
2021-08-13 11:43:18
I'll never get why people think it's an issue or a bad thing when people want to be addressed as they/them and then proceed to make fun of them <:sadge:855476349686513714>
w
2021-08-13 11:47:02
tbh you can say the same about the opposite, why it's a bad thing when people dont address you as you like
Justin
2021-08-13 01:07:41
Oh please, I didn't want to start a gender discussion 😛
190n
w tbh you can say the same about the opposite, why it's a bad thing when people dont address you as you like
2021-08-13 07:58:22
do i really have to answer this...
2021-08-13 07:58:39
if someone asks to be referred to in a certain way why tf would you not honor that?
improver
2021-08-13 08:00:15
I don't think anyone should continue this discussion, because I have seen too much good arguments for both sides
2021-08-13 08:00:59
it's kinda stuff i just don't really wanna in jxl server too lol
veluca
2021-08-13 08:05:11
I'll +1 that and ask that at the very least such discussions happen in <#806898911091753051> - and that it is kept civil if it does happen
Dirk
2021-08-14 08:30:00
Did not realize that without this patch version 0.5 will fail to encode the image <@!179701849576833024>. Applied a slightly different patch to fix this.
veluca
2021-08-14 08:55:14
Perfect, can you link it?
Dirk
2021-08-14 09:19:48
Sure: https://github.com/ImageMagick/ImageMagick/commit/7fb6eda2c0ce209bacdc38d1c88c4a7d26125322. Now trying to figure out why 32 bit float encoding is broken. Using the exact same code as `encode_oneshot.cc` but colors are washed-out for some unknown reason.
veluca
2021-08-14 09:22:58
sounds like a linear-vs-srgb issue... good luck 😄
Dirk
2021-08-14 09:29:21
Using `JxlColorEncodingSetToLinearSRGB` instead seems to fix the issue. But also getting `enc_modular.cc:506: JXL_ASSERT: !fp` with lossless compression
veluca
2021-08-14 09:39:53
mhhhh, that ought not to happen, the assert is triggered by jxl trying to do an XYB conversion which definitely doesn't make sense with fp
2021-08-14 09:40:02
can you open an issue?
Dirk
2021-08-14 09:41:21
Trying to figure out why it is happening 😁. Want a bit more info before opening the issue first
veluca
2021-08-14 09:42:38
for reasons I don't really understand RN it's because JXL is convinced it needs to do both lossless fp *and* XYB
_wb_
2021-08-14 09:57:16
I think it's because xyb is an image-global decision while lossless is a frame decision
Dirk
2021-08-14 10:28:45
Doing this inside `JxlEncoderSetBasicInfo` seems to fix this issue: ``` enc->metadata.m.xyb_encoded = !info->uses_original_profile; if (enc->metadata.m.bit_depth.floating_point_sample) enc->metadata.m.xyb_encoded = false; enc->basic_info_set = true; ```
2021-08-14 10:29:09
That's probably not a proper fix though
veluca
2021-08-14 10:32:46
I think it's a good idea to file a bug
2021-08-14 10:32:50
at this point
2021-08-14 10:33:08
I am not knowledgeable enough about the encode API to be able to tell you anything useful here 😛
Dirk
2021-08-14 10:33:09
Will do I also think I know what is causing it
2021-08-14 10:35:08
I don't know enough about the format but is correct that a 32 fp encoded image should not use `xyb` encoding?
_wb_
2021-08-14 10:35:42
Not if you want to do lossless
veluca
2021-08-14 10:35:43
I mean, you can do whatever you want, but if you want lossless 32 bit floats, you ought not to use xyb
Dirk
2021-08-14 10:39:16
Thanks. I noticed that the libjxl an "old issue form". You probably want to switch to issue forms when this becomes available: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
2021-08-14 10:56:22
There you go: https://github.com/libjxl/libjxl/issues/447
veluca
2021-08-14 10:58:10
thanks!
Petr
2021-08-23 07:13:38
Firefox 91.0.1, image.jxl.enabled = true and it still doesn't render jxls. Any ideas? 😕
2021-08-23 07:20:05
I hope it's not the case that the option is already there but the actual support not yet… 😜
w
2021-08-23 07:25:32
just uhh use my patch
2021-08-23 07:26:01
the flag only works on firefox nightly
Petr
2021-08-23 09:29:37
Oh, I've just found it: https://discord.com/channels/794206087879852103/803574970180829194/864517617322295337
2021-08-23 09:30:03
I hope that not too many users are confused with it…
Deleted User
w just uhh use my patch
2021-08-23 12:51:22
How can we install your patch?
w
2021-08-23 12:54:41
ill uhh set something up
veluca
2021-08-23 01:06:27
I *could* make some builds perhaps... 😛
2021-08-23 01:17:16
is that something like FlatPak?
2021-08-23 01:17:48
anyway, it's probably a bit too much effort for me rn
_wb_
2021-08-23 02:11:30
it doesn't really, does it? well now it does if you enable a flag, but once the flag is enabled by default in a browser, the different Accept header doesn't give any extra fingerprinting besides what can already be derived from the User agent
Scope
2021-08-24 12:19:38
https://discord.com/channels/794206087879852103/822105409312653333/869306333999009882
xiota
2021-08-24 02:47:14
* Photo sharing and storage. Vast majority of digital cameras generate JPG which can be losslessly transcoded to JXL. Photographers can share photos at the same image quality with reduced file sizes or same file sizes with improved image quality. * Format intermediary 1. TIF and PNG are often used in image editing workflows because they support higher bit depths. They are very large and can be slow to write. * Format intermediary 2. User and developer time is valuable. JXL is much much faster to encode (than AVIF). Web devs could upload JXL. Then the server could transcode to other formats over a longer period of time, if it's even still desired. * JPG replacement 1. With lossless transcoding, every JPG made during the last few decades is a potential JXL. * JPG replacement 2. Lots of existing websites still serve only JPGs, which could be transparently transcoded to save storage and bandwidth. For older browsers that don't natively support JXL, it's conceivable that a javascript loader could be used to decode images on the client side. * AVIF replacement 1. Even though AVIF is considered more effecient at low bitrates, it is very very slow to encode. On my computer, it takes 26x as long to encode a 24mp image into a 2MB AVIF as to a 2MB JXL (d=1). This translates to reduced carbon emissions, better battery life, etc. Maybe AVIF will get hardware acceleration, but so could JXL. * AVIF replacement 2. Users seem to be uploading larger images. (Based on the MB of bandwidth usage required to view what I think should be simple sites.) So I don't think many people are *really* putting a lot of effort into optimizing image sizes. If they are, they're doing really poorly at it. For images with the bpp that I've seen lately on the web, JXL does just as well as AVIF. (I see no significant visual difference when flipping between the formats in a viewer.)
2021-08-24 03:24:27
Best practice for websites... just use JXL directly. It looks like every major browser is set to have JXL support as soon as it completes standardization. Maybe everyone still using Internet Explorer and Edge "Legacy" will finally upgrade.
_wb_
2021-08-24 05:12:54
Both options are also possible for jxl.
xiota * Photo sharing and storage. Vast majority of digital cameras generate JPG which can be losslessly transcoded to JXL. Photographers can share photos at the same image quality with reduced file sizes or same file sizes with improved image quality. * Format intermediary 1. TIF and PNG are often used in image editing workflows because they support higher bit depths. They are very large and can be slow to write. * Format intermediary 2. User and developer time is valuable. JXL is much much faster to encode (than AVIF). Web devs could upload JXL. Then the server could transcode to other formats over a longer period of time, if it's even still desired. * JPG replacement 1. With lossless transcoding, every JPG made during the last few decades is a potential JXL. * JPG replacement 2. Lots of existing websites still serve only JPGs, which could be transparently transcoded to save storage and bandwidth. For older browsers that don't natively support JXL, it's conceivable that a javascript loader could be used to decode images on the client side. * AVIF replacement 1. Even though AVIF is considered more effecient at low bitrates, it is very very slow to encode. On my computer, it takes 26x as long to encode a 24mp image into a 2MB AVIF as to a 2MB JXL (d=1). This translates to reduced carbon emissions, better battery life, etc. Maybe AVIF will get hardware acceleration, but so could JXL. * AVIF replacement 2. Users seem to be uploading larger images. (Based on the MB of bandwidth usage required to view what I think should be simple sites.) So I don't think many people are *really* putting a lot of effort into optimizing image sizes. If they are, they're doing really poorly at it. For images with the bpp that I've seen lately on the web, JXL does just as well as AVIF. (I see no significant visual difference when flipping between the formats in a viewer.)
2021-08-24 05:15:10
Nice list!
xiota Best practice for websites... just use JXL directly. It looks like every major browser is set to have JXL support as soon as it completes standardization. Maybe everyone still using Internet Explorer and Edge "Legacy" will finally upgrade.
2021-08-24 05:18:52
Best practice right now is not to just use jxl and only jxl, because that will show a broken image in 99.9999% of the end-users who don't enable experimental flags. Once jxl is in all major browsers, you could do that. For now, you'll have to use a fallback (e.g. jpeg or webp), and either use picture/source in html or let the server serve different files depending on Accept headers
xiota
_wb_ Best practice right now is not to just use jxl and only jxl, because that will show a broken image in 99.9999% of the end-users who don't enable experimental flags. Once jxl is in all major browsers, you could do that. For now, you'll have to use a fallback (e.g. jpeg or webp), and either use picture/source in html or let the server serve different files depending on Accept headers
2021-08-24 06:03:21
Yes, for now. I was describing a scenario for after the standardization process has concluded. So many browsers already have experimental support implemented. They could set a compiler flag and have it in stable builds within hours. Right now, web sites could use it behind the scenes for image storage if they wanted. I look forward to when Google Photos supports JXL. What makes JXL significantly different from previous attempts at dethroning JPG is lossless transcoding. It answers, "What do I do with all my existing photos?"
_wb_
2021-08-24 07:14:18
Yes, it can actually replace jpeg and not just be a format you can lossily transcode existing jpegs to while still having to keep the originals if you care about generation loss.
2021-08-24 07:23:36
It's also the first codec that can actually replace png.
2021-08-24 07:24:45
WebP cannot because it can only do 8-bit. FLIF cannot because it is inherently slow. JXL can do everything PNG can do (and a lot more).
fab
2021-08-25 07:16:07
https://github.com/deckerst/aves/issues/56
_wb_
2021-08-25 09:24:57
I don't think image viewer apps should necessarily rely on Android doing the decode — maybe they do, but it's probably not a good idea.
2021-08-25 09:25:46
Reason is that it will take many years before you can assume that all Android devices will have support for modern codecs like avif and jxl
2021-08-25 09:25:53
(at the Android system level I mean)
2021-08-25 09:31:11
2021-08-25 09:31:38
avif support is planned for Android 12, jxl support is not even planned yet
2021-08-25 09:32:14
if you rely on android system doing the decode, even webp isn't really supported on all android devices out there yet
2021-08-25 09:36:31
Lossy webp was added in Android 4.0, lossless and alpha was added in Android 4.3
2021-08-25 09:37:01
animated webp is afaik not supported at the android system level yet, it will show the first frame only
2021-08-25 09:37:03
afaik
2021-08-25 09:39:35
The point is: suppose avif support does indeed get added in Android 12, and suppose optimistically that jxl gets added in Android 13. When do you expect that a viewer app that just relies on Android system decoding can claim it supports these formats, knowing that there's such a long tail of devices running old Android versions?
2021-08-25 09:46:48
WebP was 'finalized' in 2012 (the first webp was from 2010 but that was lossy still only)
2021-08-25 09:47:35
WebP support was added to Android immediately
2021-08-25 09:48:31
Yet today there are still 1% or so of Android devices that do not (propertly) support WebP
2021-08-25 09:48:56
which on 3 billion Android devices would be about 30 million devices
Petr
2021-08-25 10:17:57
In this context it might be interesting to mention that Fairphone 3 (which I also carry in my pocket) has at least 5 major Android updates guaranteed, so keeping this device for a long time shouldn't be a stop sign for modern formats.
_wb_
2021-08-25 10:35:58
that's nice but I think it's pretty exceptional
2021-08-25 10:37:05
unfortunately, the situation in android is similar to that of windows: apps basically have to package their dependencies too, they cannot really depend on system-level libraries
spider-mario
2021-08-25 11:13:28
my Sony XZ2 Compact stopped receiving even security updates, not two years after I bought it 🙄
2021-08-25 11:14:21
https://www.aosmark.com/ has the track record for various manufacturers
nathanielcwm
Petr In this context it might be interesting to mention that Fairphone 3 (which I also carry in my pocket) has at least 5 major Android updates guaranteed, so keeping this device for a long time shouldn't be a stop sign for modern formats.
2021-08-25 11:47:32
most are not like that <:kekw:808717074305122316>
2021-08-25 11:48:56
samsung generally only does 2 on their flagship s and note series and less on the cheap phones
2021-08-25 11:49:07
but i heard that their newer phones are expected to get 3 now
Petr
nathanielcwm most are not like that <:kekw:808717074305122316>
2021-08-25 11:51:33
I know. But it's getting better. EU has big plans with repairability of devices. And in France it was already launched.
nathanielcwm
spider-mario https://www.aosmark.com/ has the track record for various manufacturers
2021-08-25 11:56:02
is the data / source code publically viewable? on some older devices the data is a bit messy
spider-mario
nathanielcwm but i heard that their newer phones are expected to get 3 now
2021-08-25 01:27:24
oh, yes, they recently committed to four years of security updates and three android versions for some models https://security.samsungmobile.com/workScope.smsb > And select devices launched in 2019 or later will be supported with firmware security updates for a minimum of four (4) years following their global launch.¹ https://news.samsung.com/global/samsung-raises-the-bar-for-mobile-experience-innovation-committing-to-three-generations-of-android-os-upgrades > Samsung Electronics reinforced its commitment to offering the best mobile experiences possible for Galaxy users by supporting for three generations of Android operating system (OS) upgrades on millions of Galaxy devices1.
improver
2021-08-28 12:35:11
wow finally jxl in geeqie works
2021-08-28 12:36:22
actually could be because of my recent PRs because I don't see anything else what could've made it work from earlier commits
2021-08-28 12:36:42
feels comfy
2021-08-28 12:40:29
or.. oh they integrated it into git version and i was using that
2021-08-28 12:41:43
https://github.com/BestImageViewer/geeqie/blob/master/src/image_load_jpegxl.c
veluca
2021-09-01 08:33:09
after https://github.com/libjxl/libjxl/pull/529 goes in, eog should support animated JXL 🙂
Eugene Vert
2021-09-02 04:29:40
Animated jxl images seems to work in _qimgv_ after this https://github.com/easymodo/qimgv/pull/327 w/ qt plugin
fab
2021-09-02 05:21:35
kiwi browser has jxl but no adblock
2021-09-02 05:22:03
eddie.zato
Eugene Vert Animated jxl images seems to work in _qimgv_ after this https://github.com/easymodo/qimgv/pull/327 w/ qt plugin
2021-09-03 04:14:24
Hmm, I built the latest `libjxl`, `qimgv` and `qt-jpegxl-image-plugin` with `msys2/mingw64` for win. Animated jxl doesn't work.
2021-09-03 04:14:28
But it works with `QuickViewer`, even though the animation is slowed down.
Eugene Vert
eddie.zato Hmm, I built the latest `libjxl`, `qimgv` and `qt-jpegxl-image-plugin` with `msys2/mingw64` for win. Animated jxl doesn't work.
2021-09-03 09:47:42
Couldn't get it to work either with `mingw64`, it seems to be because of a mime-type mismatch 🥲 But luckily easymodo somehow managed to make it work https://github.com/easymodo/qimgv/pull/328#issuecomment-912741012
2021-09-03 10:10:25
Yep, just copy `mingw64/share/mime` folder into folder with `qimgv.exe`
eddie.zato
2021-09-04 03:01:04
Hehe, boi! It works. But slightly slower than the same animated webp/gif.
Jyrki Alakuijala
2021-09-07 09:47:36
https://opensource.googleblog.com/2021/09/using-saliency-in-progressive-jpeg-xl-images.html
_wb_
2021-09-09 10:02:56
I dunno what a good criterion is there, but I'd say there is "OS-level support" if in a default install, it's supported out of the box (you can just click on a jxl and it gets shown). It would be useful to also list distros that have the package in their main/stable repo, so you can install it easily.
fab
2021-09-09 03:38:51
what is the support for jxl in windows 11?
2021-09-09 03:39:08
i think it's not waiting another year only for jxl
2021-09-09 03:39:34
and i should not install any plugins
2021-09-09 03:39:43
windows 11 is easy to break
2021-09-09 03:40:10
also i read photos app when you cut the photo it saves as jpg
2021-09-09 03:40:16
is really true
_wb_
2021-09-09 03:46:34
I have no idea if and how Microsoft and Apple can be encouraged to add jxl support to their OS
fab
2021-09-09 03:49:24
the problem is at least first year of having computer i don't want to bork install external plugins
2021-09-09 03:49:52
i can wait another year until october 2022 and i prefer that
2021-09-09 03:49:55
is worth it
2021-09-09 03:50:03
do you think microsoft is trustworthy
2021-09-09 03:50:12
or me as client i should trust microsoft
2021-09-09 03:50:38
but is useless
2021-09-09 03:50:45
at least i can format
2021-09-09 03:50:54
or do backup
_wb_
2021-09-09 03:51:34
I haven't used Microsoft Windows since I stopped using Windows NT 4.0 in 1998
BlueSwordM
fab what is the support for jxl in windows 11?
2021-09-09 04:04:41
Well, nobody seems to have asked, so it doesn't seem like there's any demand...
Fraetor
2021-09-09 05:56:50
I assume it is just as supported as in Windows 10.
Traneptora
2021-09-10 10:46:20
I spoke with the FFmpeg team and they'd be happy to accept a wrapper for libjxl in libavformat/libavcodec
2021-09-10 10:46:53
It's not there because it's in "patches welcome" territory
2021-09-10 10:47:27
I might be able to throw one together this weekend
2021-09-10 10:48:29
I mentioned added jpegxl support via libjxl and they suggested I write my own decoder according to the spec, since they like having internal decoders in libavcodec, but it's really outside the scope of my skill level
2021-09-10 10:48:58
but since an internal decoder could be added later and coexist with the libjxl one there's no issue
Scope
2021-09-10 11:11:25
It could be something like WebP support, although if JXL is planned as a very long term format, it might be nice to have its own internal ffmpeg codec implementation in the future (although this cannot be prioritized in any way if there is no interest from people who can do such a thing)
veluca
Traneptora I mentioned added jpegxl support via libjxl and they suggested I write my own decoder according to the spec, since they like having internal decoders in libavcodec, but it's really outside the scope of my skill level
2021-09-10 11:11:48
yeah that might take a while 😛
Traneptora
2021-09-10 11:24:17
well
2021-09-10 11:24:27
I mentioned that it was outside the scope of my skills
2021-09-10 11:24:43
and I was told "it's a good exercise but you can always do it later."
2021-09-10 11:25:07
and was pointed to libopenjpeg2000, which has both an encoder/decoder, next to their internal openjpeg2000 decoder added later
veluca
2021-09-10 11:53:26
makes sense
2021-09-10 11:53:52
I doubt a single person can write a JXL decoder in less than a year, except perhaps if already very familiar with the codebase
improver
2021-09-10 12:11:50
i doubt that it's that hard, but making it performant may take additional time. not that i would want to test that
2021-09-10 12:12:48
was actually thinking making one in golang but my regular job eats too much time for me to attempt that
2021-09-10 12:15:31
now this is based
lithium
2021-09-10 12:23:31
oh no, for now I think cjxl d 1 e7 still not enough reach transparency quality for anime content...
improver
2021-09-10 12:25:28
that's for scans
Scope
2021-09-10 12:26:20
Yep, not always enough to be visually lossless, but I think if the choice is between Jpeg and JXL, that would also be better
improver
2021-09-10 12:26:56
i mean in case of scans what you're getting aint lossless either way
Scope
2021-09-10 12:29:13
But still, after some cleaning it would compress quite well in lossless and also any lossy compression will add more losses and artifacts
improver
2021-09-10 12:30:07
uhh you're not supposed to do cleaning on scans, that usually ends up kinda ugly
Scope
2021-09-10 12:34:02
If it is done correctly and if the content is suitable, it is possible to achieve good results very close to what it would have been in the digital format as it originally was, still some digital publications and even animations are drawn by hand and then converted to digital format (but yes, that still doesn't mean there can be poor quality scans)
lithium
2021-09-10 12:57:48
I think jxl vardct really need separate option for non-photo content, for now I can find specific image have some surprise, but I believe jxl can make better. avif also a strong encoder, I understand avif have some detail,grain issue, but av1 have local palette, this feature can handle some non-DCT situation.
_wb_
2021-09-10 01:04:54
jxl has more powerful palette options than av1, but (partially because it is more powerful) we don't have an encoder yet that actually explores such options
2021-09-10 01:06:15
in av1 it's just a per-block decision to use palette mode or not, and the encoder is trying different block types anyway so it's just one more to try, maybe with a few options in how many palette colors to use (but the spec only allows 8 shades of each channel, so there's not a lot to try there)
2021-09-10 01:08:36
in jxl we have a much more expressive modular mode and modular-encoded patches can be applied to any location (doesn't have to coincide with blocks), but atm we're only using it in very specific cases (solid background in the neighborhood and the patch has at least 2 occurrences)
doncanjas
2021-09-11 12:49:12
is it going to have a way to only add cli options? I'd personally prefer it that way
2021-09-11 12:52:55
I mean, having a way to only add commands in a text box instead of choosing the options in the gui
_wb_
2021-09-11 06:14:29
Would it make sense to define a syntax for encode parameter setting and have an API function to set params that way?