|
_wb_
|
2021-05-10 12:01:15
|
well that is how Safari does it technically though
|
|
2021-05-10 12:01:37
|
it calls Core Image / Core Media at the OS level
|
|
|
|
paperboyo
|
2021-05-10 12:01:51
|
Adobe still doesn’t provide its own WebP encoder (let alone deeper integration, eg. in Export for screens), only recently Google started providing a plugin for Photoshop (https://developers.google.com/speed/webp/docs/webpshop). AVIF has a feature request status only (https://feedback.photoshop.com/conversations/photoshop/photoshop-please-add-avif-file-support/5f5f46314b561a3d4278baf4).
Historically, they are extremely conservative (for, some!, good reasons). Reading HEIC on Windows requires OS-llevel apps (one paid for).
|
|
|
_wb_
|
2021-05-10 12:03:01
|
Core Image has proprietary stuff like the Kakadu JPEG 2000 and HEIC in it, which is probably why they insist on keeping things at the OS level and not doing them in WebKit
|
|
2021-05-10 12:04:50
|
Adobe is indeed slow to adopt stuff, yes.
|
|
2021-05-10 12:09:35
|
I suppose imagemagick and libheif could decode HEIC on Windows
|
|
|
diskorduser
|
2021-05-10 12:09:55
|
Gimp on windows doesn't open heif?
|
|
|
nmkd
|
2021-05-10 12:11:12
|
not sure about gimp
|
|
2021-05-10 12:11:37
|
ImageMagick, Magick.NET as well as my own little image procesing app all support HEIF decoding, and also encoding iirc
|
|
2021-05-10 12:11:57
|
actually i think i used libheif for encoding, but decoding is native in magick
|
|
|
|
paperboyo
|
2021-05-10 12:19:35
|
Reading in Adobe, I meant (https://helpx.adobe.com/photoshop/kb/ps-heic-codec.html)
|
|
|
|
Deleted User
|
|
_wb_
Any frame can be used to take patches from in a later frame. Frames can be "reference only" so you can have invisible reference frames, or they can be just regular frames that have "save as reference" set in their header.
|
|
2021-05-10 12:41:15
|
Can you use "patch-ception", which is: make a reference-only frame 1 (e.g. just the letters), create reference-only frame 2 with patches from 1 (e.g. longer words and sentences) and then encode visible frame 3 with patches from frame 1 and 2?
|
|
|
_wb_
|
2021-05-10 12:43:26
|
yes, but at any time during decode there are only 4 slots of reference frames available
|
|
2021-05-10 12:43:56
|
so you can't do this with frame 6 that uses patches from frames 1,2,3,4,5
|
|
2021-05-10 12:44:41
|
you can however use patches from frame 1,2,3 to make frame 4, then use patches from frames 2 and 4 to make frame 5, then use patches from frame 2 and 5 to make frame 6, or stuff like that
|
|
|
|
Deleted User
|
|
_wb_
yes, but at any time during decode there are only 4 slots of reference frames available
|
|
2021-05-10 12:50:03
|
How it was decided that 4 slots should be the maximum?
|
|
|
_wb_
|
2021-05-10 12:55:08
|
originally we had just the single reference for patches, and then we said "maybe that's a limitation because it could be useful to have both modular and vardct references", which would mean 2 slots would be better, and then we changed the frame blending mechanism to get rid of the complicated dispose modes, instead using a generic "reference slot" mechanism to let frames refer to the base frame they want to be blended against, which would mean 3 slots would be needed, and at that point we decided to round it to 4 because it would be a 2-bit value anyway. IIRC. <@!179701849576833024> do you remember?
|
|
2021-05-10 12:57:26
|
More slots would be somewhat more expressive but also potentially force decoders to use more memory (reference frames need to be kept in memory) and require more bits to signal which reference frame to take a patch from. Limiting it to 4 seems a good balance between expressivity and those considerations.
|
|
|
fab
|
2021-05-10 01:01:33
|
Can you do after july faster decoding mode for modular lossless
|
|
|
|
veluca
|
|
_wb_
originally we had just the single reference for patches, and then we said "maybe that's a limitation because it could be useful to have both modular and vardct references", which would mean 2 slots would be better, and then we changed the frame blending mechanism to get rid of the complicated dispose modes, instead using a generic "reference slot" mechanism to let frames refer to the base frame they want to be blended against, which would mean 3 slots would be needed, and at that point we decided to round it to 4 because it would be a 2-bit value anyway. IIRC. <@!179701849576833024> do you remember?
|
|
2021-05-10 01:08:26
|
Sounds about right
|
|
|
_wb_
|
|
fab
Can you do after july faster decoding mode for modular lossless
|
|
2021-05-10 01:08:45
|
Yes, I think that would be useful. A setting for fast lossless encode and decode is useful in authoring workflows, where you want just some weak compression (because uncompressed gets huge quickly but while editing you don't really need / want to wait for strong compression).
|
|
|
fab
|
2021-05-10 01:13:05
|
I think because you want to compete with wp2
|
|
2021-05-10 01:14:37
|
Also the invisible pixels
|
|
|
|
veluca
|
|
_wb_
Yes, I think that would be useful. A setting for fast lossless encode and decode is useful in authoring workflows, where you want just some weak compression (because uncompressed gets huge quickly but while editing you don't really need / want to wait for strong compression).
|
|
2021-05-10 02:13:21
|
I do wonder how much we can speed up the tree on the decoder side...
|
|
|
_wb_
|
2021-05-10 02:16:11
|
Speeding up generic trees you already did some nice stuff to avoid branching on every individual decision node
|
|
|
|
veluca
|
2021-05-10 02:16:46
|
yeah, but I do still think we can do a lot better than that... I'm hesitant to go full-blown JIT on it, but...
|
|
|
_wb_
|
2021-05-10 02:17:03
|
Probably things could be sped up a lot of you would allow JIT compilation type things, though security-wise that gets tricky
|
|
2021-05-10 02:17:58
|
Speeding up fixed trees like we have in -s 3 is easier (but we cannot keep adding hundreds of special cases, of course)
|
|
2021-05-10 02:19:54
|
A simple fixed tree for something that doesn't use the Weighted predictor (but Gradient or something) should still give somewhat useful compression, and could make a `-s 2` for lossless...
|
|
|
fab
|
2021-05-10 02:25:16
|
Yes But good encoding and faster decoding can it coexist?
|
|
|
_wb_
|
2021-05-10 02:35:00
|
to some extent fast encode and fast decode go somewhat hand in hand, but you could have slow encode that still targets fast decode
|
|
|
|
Deleted User
|
2021-05-10 03:06:42
|
<@!239702523559018497> How is Firefox currently handling/requesting JXLs? Does it use 16-bit floats and convert them like Chrome or is it relying on the bad 8-bit output of djxl?
|
|
|
Troc
|
|
Scientia
Imagine having a comic panel and only having to encode each repeating letter once
|
|
2021-05-10 03:57:54
|
What? The text would still be a part of the picture though?
|
|
|
_wb_
|
2021-05-10 04:06:33
|
Yes, it's an internal codec thing, nothing the application can see.
|
|
|
Troc
|
2021-05-10 05:45:55
|
Is there some optical character recognition that saves coordinates, font used and style, then saves as letters instead of pixels that make up the letters?
|
|
|
Pieter
|
2021-05-10 05:48:17
|
<@720988177648713819> c Patches are a feature of JXL that lets you do things like that (e.g. it can signal "here is a frame to decode, but not show" and "on top of this frame, copy-paste this range of x/y coordinates from this previous frame"). So it could be used for things like repeating letters. No idea to which extent the current encoder can make use of that.
|
|
|
_wb_
|
2021-05-10 05:51:08
|
Current encoder has a heuristic that basically searches for 4x4 regions of constant color, then tries to find repeated patterns around them. Right, <@179701849576833024> ?
|
|
2021-05-10 05:51:37
|
It works quite a lot better than what I would have thought was possible in a sane amount of time
|
|
|
|
veluca
|
2021-05-10 05:53:23
|
yeah, looks for regions of constant color to detect "background of text"-like places, then finds connected components of not-constant color, then tries to find how many of those occurred multiple times
|
|
2021-05-10 05:54:09
|
although that last part should probably be changed to also encode those things that only occur once but that would improve "flatness" by removing them, I think
|
|
2021-05-10 05:56:23
|
also constructing the patch frame is not quite done optimally - some characters are repeated multiple times because they have some slight differences that make them not fully overlap, but they could share most of their pixels
|
|
|
_wb_
|
2021-05-10 05:57:23
|
Maybe some things could be effectively converted to splines too, if they're large and curvy enough to make that better than modular encoding them as pixels
|
|
|
Troc
|
2021-05-10 05:57:37
|
I'd imagine saving a letter and font info would take significantly less space than the same text in 13x20 pixel boxes.
|
|
|
fab
|
2021-05-10 05:58:01
|
is the font i use for notepad too complex to encode for jpeg xl?
|
|
|
|
veluca
|
2021-05-10 05:58:17
|
yeah but then a JPEG XL decoder would have to implement font rendering, and *that* is a can of worms I don't want to touch anytime soon 😛
|
|
|
fab
|
2021-05-10 05:58:45
|
https://discord.com/channels/794206087879852103/840831132009365514/841373683499139093
|
|
2021-05-10 05:58:56
|
what you think veluca
|
|
2021-05-10 05:59:04
|
is this font resistant to generation loss
|
|
|
_wb_
|
2021-05-10 05:59:12
|
Rasterized fonts with good lossless compression are probably not really more expensive than vector fonts, if you don't use multiple font sizes
|
|
|
fab
|
2021-05-10 05:59:15
|
or have propierties that indicate resistency
|
|
2021-05-10 05:59:28
|
it seems like semi sans serif
|
|
|
Troc
|
2021-05-10 05:59:30
|
It would take quite a lot I imagine to optically detect the font, settings such as bold or italics and do it at any size or color and then replicate it flawlessly while decoding.
|
|
|
fab
|
2021-05-10 05:59:55
|
is this otf
|
|
2021-05-10 05:59:56
|
https://github.com/fabiorug/Suduwe-font
|
|
2021-05-10 06:00:05
|
actually i use ttf version
|
|
|
_wb_
|
2021-05-10 06:00:10
|
You would have to encode the font itself too to make it self-contained
|
|
|
|
veluca
|
2021-05-10 06:00:20
|
I wouldn't use a non-monospace font for notepad...
|
|
|
fab
|
2021-05-10 06:00:32
|
so are you saying that is not very resistant to generation loss?
|
|
|
_wb_
|
2021-05-10 06:00:37
|
Cannot expect an image decoder to download a font to decode an image 😅
|
|
|
fab
|
2021-05-10 06:00:41
|
it would artifact a lot
|
|
2021-05-10 06:00:44
|
in vardct
|
|
2021-05-10 06:01:03
|
are semi sans serif good to encode for DCTs?
|
|
|
Troc
|
2021-05-10 06:01:24
|
I'd imagine manga archivers could be interested and only CC's Wild Words Roman would be needed because that's the font that's used in mangas.
|
|
2021-05-10 06:01:49
|
Well, outside of certain special cases.
|
|
|
Pieter
|
|
fab
are semi sans serif good to encode for DCTs?
|
|
2021-05-10 06:19:41
|
DCT is not good in general for text, regardless of font
|
|
|
fab
|
2021-05-10 06:20:32
|
but like the font i created and forked
|
|
2021-05-10 06:20:41
|
does it makes it worse
|
|
2021-05-10 06:20:46
|
because is semi serif
|
|
2021-05-10 06:20:50
|
or something
|
|
2021-05-10 06:20:53
|
difficult
|
|
|
_wb_
|
2021-05-10 06:21:46
|
Doesn't matter much I think
|
|
2021-05-10 06:23:01
|
The bolder and bigger, the smaller the relative cost for DCT
|
|
|
raysar
|
|
_wb_
https://pypi.org/project/imagecodecs/
|
|
2021-05-10 08:38:52
|
This tool seem to compress tiff with jxl? <:BlobYay:806132268186861619> (i know that tiff format is limited but there are many extensions)
|
|
|
Nova Aurora
|
2021-05-10 10:53:10
|
But patching is where we should put our money for efficient photos of text?
|
|
|
diskorduser
|
2021-05-10 10:57:01
|
Efficient text rendering with inbuilt freetype :p
|
|
|
improver
|
2021-05-10 10:59:29
|
idk if anyone here is into xmpp but https://dev.gajim.org/gajim/gajim-plugins/-/merge_requests/211
|
|
|
KAGAMI
|
|
<@!239702523559018497> How is Firefox currently handling/requesting JXLs? Does it use 16-bit floats and convert them like Chrome or is it relying on the bad 8-bit output of djxl?
|
|
2021-05-11 03:00:28
|
For now it depends on 8bit output, but can be enhanced later 😉
|
|
|
|
Deleted User
|
|
Troc
Well, outside of certain special cases.
|
|
2021-05-11 09:25:47
|
Patches aside, here we could actually try encoding with lossy Modular instead of VarDCT...
|
|
|
eddie.zato
|
2021-05-12 11:26:46
|
It would be good to get JXL support in the next version of the PDF format. It has support for JPEG2000, iirc.
|
|
|
_wb_
|
|
eddie.zato
It would be good to get JXL support in the next version of the PDF format. It has support for JPEG2000, iirc.
|
|
2021-05-12 12:08:42
|
Leonard Rosenthol, in a pm to me: "For PDF, we are working on some Proof of Concepts to show off to the ISO committee that does PDF. Their next meeting is October, and I expect that we’ll kick off the actual standardization work coming out of that meeting. I already have the committee approval for that direction - now just need to do the hard parts 😉."
|
|
|
Scientia
|
2021-05-12 03:35:33
|
imagine a pdf compressor using jxl
|
|
2021-05-12 03:35:54
|
we could actually get better lossless compression of PDFs than we've ever been able to get before
|
|
2021-05-12 03:37:01
|
around 20% for something like a pdf of scanned jpg pages
|
|
2021-05-12 03:37:11
|
maybe more for a pdf with png images too and gif images
|
|
|
|
Deleted User
|
2021-05-12 04:13:37
|
Has anyone tryed getting FFMPEG to support JXL?
|
|
|
_wb_
|
2021-05-12 04:16:56
|
Not afaik
|
|
2021-05-12 07:11:12
|
<@710762823986446367> do you have thoughts on https://github.com/annevk/orb/issues/3 ?
|
|
|
Jake Archibald
|
2021-05-12 07:14:47
|
I'll take a closer look tomorrow, but almost all image requests are credentialed
|
|
|
_wb_
|
2021-05-12 07:34:57
|
Because nobody does <img crossorigin=anonymous> ?
|
|
|
Jake Archibald
|
2021-05-12 09:17:09
|
Only reason to do that is if you want to draw it to a canvas
|
|
2021-05-12 09:27:30
|
Or, if you want access to SharedArrayBuffer, then all external assets need to be CORS or CORP
|
|
|
Scientia
|
2021-05-13 01:49:44
|
I mean they should have implemented multi threading in the first place lol
|
|
2021-05-13 01:49:56
|
But probably yeah
|
|
2021-05-13 01:50:38
|
Regardless by the time it even gets standardized either jxl decoder will be fast enough for single threaded or CPUs will be fast enough for single threaded
|
|
2021-05-13 01:50:56
|
It's the PDF standard, getting it in is going to take ages
|
|
|
Crixis
|
2021-05-13 02:23:51
|
yes but actually no
|
|
|
Jim
|
2021-05-13 02:25:39
|
There's an AVIF polyfill that converts it to BMP and can be used in img or canvas. Could do the same with JXL.
Re-encoding to JPEG might cause some visual loss. PNG should be fine but might be a bit slow using a JS conversion.
|
|
2021-05-13 02:32:12
|
Polyfill and WASM are two completely different concepts.
Polyfill just means software that brings support for features that are not yet natively supported.
WASM is WebAssembly, a lower level language meant for speeding up code such as games within browsers. WASM, coded correctly, is faster than using pure JS but not as fast as a compiled program or library... so having the format supported natively by the browser would be faster but WASM would still be faster than implementing the decoder/encoder in JavaScript.
|
|
2021-05-13 02:36:51
|
Only other way I can think of is through a browser extension that hooks into the encoder/decoder API... but that would bring a whole lot of security concerns.
|
|
|
_wb_
|
2021-05-13 02:50:53
|
I don't think polyfill is a very useful strategy for new image formats. For lossy webp, in theory a polyfill was possible (I think) that would just repackage the payload as a webm and use the native decoder on that, but that hasn't happened.
I think the performance benefits of a new codec are largely negated by missing out on the image prefetching - remember that browsers request images long before they're even starting to parse javascript let alone execute it.
|
|
|
Jim
|
2021-05-13 02:56:01
|
Yes, the performance is reduced.... but it's either that or have a slowly reducing percent of people that either see nothing or fallback to an older image format, but destroys the reduced storage & bandwidth of the new format. There are tradeoffs. Personally, I prefer using a polyfill rather than taking up more storage space and bandwidth using other formats and waiting for everyone to update their browser which could take years.
|
|
|
_wb_
|
2021-05-13 03:23:10
|
Yes, if storage is the main cost, that is true
|
|
2021-05-13 03:23:36
|
For most of the use cases I see, bandwidth is the main cost
|
|
2021-05-13 03:25:49
|
But end-user image loading speed is also very important - in e-commerce use cases they notice the effect on conversion of 0.1s loading time improvements.
|
|
|
|
veluca
|
2021-05-13 03:48:33
|
you're likely better off converting on the fly on the server, latency-wise, if you want to save storage
|
|
|
Jim
|
2021-05-13 03:48:40
|
The increase in file size could potentially add 0.1s or more too it, depending on the format and features. The decoder is not affected nearly as much on performance compared to the encoder. Unless they are running really old hardware, it would probably be largely unnoticeable unless the entire page is covered with images.
|
|
2021-05-13 03:49:10
|
True, but not everyone will have access to a server or CDN with image conversion capability.
|
|
|
|
veluca
|
2021-05-13 03:49:47
|
it's not too hard to make a nginx plugin for that I think
|
|
2021-05-13 03:50:10
|
it should certainly be relatively easy to make one that does jpeg -> jxl on the fly
|
|
|
Jim
|
2021-05-13 04:14:56
|
I tend to come up with solutions that work for as many people as possible (from large organizations to people making blogs). A lot of people run Apache and may not be able to do that even with Nginx. The CDN is the best option as many free CDNs also have image conversion, but may not have CMS support in some cases... though there are no current CDNs and little software with JXL support currently. The software & browser level would provide the largest range of support. I would rank them in this order of preference:
1. OTF image conversion via server/CDN (though may not be supported by some)
2. Browser polyfill (will be slightly slower to decode for older browsers & hardware)
3. Produce & store other image formats (increase storage & bandwidth and may be slower depending on format/features)
4. Custom server software (not a viable option for many)
|
|
|
|
veluca
|
2021-05-13 04:17:19
|
I think in many conditions 3 >> 2, the wasm-based decoder is *significantly* slower (especially on ARM IIRC)
|
|
|
fab
|
2021-05-13 04:53:09
|
just store jxl
|
|
|
Jim
|
|
veluca
I think in many conditions 3 >> 2, the wasm-based decoder is *significantly* slower (especially on ARM IIRC)
|
|
2021-05-13 08:42:25
|
How much slower? I've not really tried on my phone but even 10+ year old computers seem to run squoosh very quickly.
|
|
|
KAGAMI
|
2021-05-13 08:47:13
|
I think WebCodecs will make polyfills more feasible, but then we'll need a polyfill for WebCodecs itself 😁
|
|
|
_wb_
|
2021-05-13 08:48:08
|
https://c.tenor.com/8PFwkSkhIxUAAAAM/shades-inception.gif
|
|
2021-05-13 09:08:23
|
If Safari/WebKit would adopt reasonably quickly, we might not need fallback options for that long - between chromium/edge, firefox and safari/webkit, arguably a large enough fraction of web users are covered...
|
|
2021-05-13 09:13:27
|
https://c.tenor.com/FHQWr-zMA-oAAAAM/im-just-like-day-dreaming-sumit-anand.gif
|
|
|
Jim
|
|
KAGAMI
I think WebCodecs will make polyfills more feasible, but then we'll need a polyfill for WebCodecs itself 😁
|
|
2021-05-13 09:18:21
|
I'm confused, even with that API wouldn't the actual codec still need to be in JS or WASM? It largely just seems to handle capturing the image and setting up a thread / WebWorker to move the encoding off the main thread. Other than that it looks like the implementation still needs to be in JS or WASM.
|
|
|
_wb_
|
2021-05-13 09:31:18
|
WASM is getting closer to native speeds. I think the main advantage of webcodecs would be to hook into the img tag directly, instead of having to do stuff with a canvas etc (missing out on prefetching etc). If I understand correctly.
|
|
|
KAGAMI
|
2021-05-13 09:36:20
|
I'm reading the spec and readme again, and actually it seems not about polyfills but only about the browser internal codecs 😬
|
|
|
Jim
|
2021-05-13 09:43:30
|
I think it could be used to create a polyfill, but I don't think it's for actually implementing new codec the browser does not support on it's own.
|
|
|
KAGAMI
|
2021-05-13 09:43:53
|
> Non-goals
> Writing codecs in JavaScript or WebAssembly
https://github.com/w3c/webcodecs/blob/main/explainer.md 😭
|
|
|
Jim
|
2021-05-13 09:51:51
|
But it looks like you can tap into the stream data for things like images so at least it should remove having to write the portion of a polyfill where you have to check for file extensions in images (yuck!). It should eliminate a few steps to creating a polyfill.
|
|
|
BlueSwordM
|
2021-05-13 09:58:26
|
Actually, I've got a great idea.
|
|
2021-05-13 09:58:36
|
If the device doesn't support JXL, disable website access <:kekw:808717074305122316>
|
|
|
|
veluca
|
|
Jim
How much slower? I've not really tried on my phone but even 10+ year old computers seem to run squoosh very quickly.
|
|
2021-05-13 10:33:05
|
I haven't really measured, it was more of a "gut feeling" thing - but I wouldn't be surprised if it ended up being 5x slower
|
|
|
_wb_
|
2021-05-16 06:31:23
|
That was done a while ago already: https://www.iana.org/assignments/provisional-standard-media-types/provisional-standard-media-types.xhtml
|
|
2021-05-16 06:40:29
|
They recently drafted an IETF doc that mentions it, I suppose they did that to have a reference to point to for an IANA registration
|
|
2021-05-16 06:44:06
|
Even Google cannot just invent by itself new media types besides a `vnd.` one (something that comes from a specific vendor, like image/vnd.adobe.photoshop). It has to come from an international standardization org, like IETF, W3C, ISO, ITU, ...
|
|
|
190n
|
2021-05-16 08:09:17
|
something that came up after a discussion of integrating ffmpeg into the kernel (shudder): if/when ffmpeg supports jxl, how will it support lossless jpeg→jxl transcoding? as far as i know, ffmpeg always decodes input files before passing the data to encoders, so it wouldn't know not to decode the jpeg.
|
|
2021-05-16 08:09:44
|
we could add a flag or something to not decode the input, but that feels like a pretty huge architectural change on ffmpeg's end.
|
|
2021-05-16 08:10:18
|
but i think it could maybe work as a bitstream filter, as those do get to process compressed input data.
|
|
|
_wb_
|
2021-05-16 08:11:48
|
I suppose ImageMagick and libvips have the same problem, right <@693227044061839360> and <@310374889540550660> ?
|
|
2021-05-16 08:14:40
|
At a high level, the internal objects are uncompressed pixel buffers, and the pipeline is basically decode to pixels, manipulate pixels, encode from pixels.
|
|
2021-05-16 08:16:13
|
While jpeg to jxl and back skip the pixels (in libjxl internally, we still have an internal object for the image data as DCT coefficients)
|
|
2021-05-16 08:22:23
|
For ffmpeg, I suppose it does know the concept of handling bitstreams without decoding (remuxing only), so I suppose it could be something like that, conceptually
|
|
|
190n
|
2021-05-16 08:23:07
|
oh that could work, like `ffmpeg -i foo.jpg -c copy foo.jxl`?
|
|
|
_wb_
|
2021-05-16 08:23:43
|
Yes, something like that
|
|
|
190n
|
2021-05-16 08:25:10
|
i guess the issue is it really is transcoding, while usually `-c copy` guarantees it's not transcoding. an ffmpeg user with no jxl knowledge would probably think that command should be near instantaneous/not do any processing.
|
|
|
_wb_
|
2021-05-16 08:26:56
|
In ImageMagick, there is a concept of input annotation where you can do a downscale-on-decode or selecting only a specific page/frame from a tiff/gif. Maybe that mechanism could be extended to do "don't decode, just make a dummy image with the whole input bitstream as 'metadata' blob"
|
|
|
190n
|
2021-05-16 08:27:16
|
if ffmpeg encoders always process raw data, `-c copy` must be a special case right?
|
|
2021-05-16 08:28:39
|
i think maybe you could make `ffmpeg -c jxljlt -i foo.jpg -c jxljlt foo.jxl` work
|
|
2021-05-16 08:28:49
|
or whatever you want to call it
|
|
2021-05-16 08:29:37
|
the jxljlt *de*coder takes a jpeg of N bytes and produces an Nx1 8-bit monochrome image representing all the bytes, which the jxljlt *en*coder can process <:kekw:808717074305122316>
|
|
2021-05-16 08:29:52
|
i hate this already
|
|
|
_wb_
|
2021-05-16 08:30:11
|
It would be nice if `ffmpeg -i foo.jpg foo.jxl` would do the lossless recompression by default
|
|
|
190n
|
2021-05-16 08:30:39
|
ffmpeg has some... interesting defaults ||aomenc `--cpu-used=1`||
|
|
2021-05-16 08:30:47
|
but maybe we could get that to happen
|
|
|
|
veluca
|
2021-05-16 09:38:26
|
how many mime databases are there?!? I already sent a patch to include jxl to the debian and fedora mime info repos, and I found out yesterday that nginx has its own, and now I find this one too?
|
|
|
_wb_
|
2021-05-16 09:49:56
|
Probably there are a couple more - I assume MacOS and Windows also have their own thing too
|
|
2021-05-16 09:51:24
|
How do we get image/jxl from the provisional list to the actual list, btw? Do we just have to wait for IANA to review the application? They do seem to take a long time for that...
|
|
|
|
veluca
|
2021-05-16 09:51:51
|
I assume(d) they are waiting for IS
|
|
|
_wb_
|
2021-05-16 09:53:21
|
That makes sense, though don't we need an amendment then (probably to part 2?) that mentions the media type?
|
|
|
|
veluca
|
2021-05-16 09:54:38
|
no clue
|
|
2021-05-16 10:11:51
|
mhh, I'm not sure what's the difference between shared-mime-info and https://salsa.debian.org/debian/media-types
|
|
2021-05-16 10:14:35
|
if someone can open an issue, I think it would be better than just me sending a MR
|
|
2021-05-16 10:18:24
|
freedesktop
|
|
|
|
tufty
|
|
_wb_
I suppose ImageMagick and libvips have the same problem, right <@693227044061839360> and <@310374889540550660> ?
|
|
2021-05-16 03:43:11
|
Yes, libvips will always decompress the input image. As you say, you could potentially optionally attach the DCT coefficients as metadata I suppose, but that sounds pretty ugly.
Yes, libvips lets you pass parameters to loaders, eg. "vips copy x.jxl[page=4] y.ppm" to copy the third page of an animation, so you could have a arg for "attach-compressed-data-as-image-metadata"
libvips decompresses on demand, so something downstream could opt not to fetch pixels and it wouldn't trigger the decompress, it could just use the coeffs on the metadata
|
|
|
_wb_
|
2021-05-16 03:57:42
|
Would make sense then to do something like that in both libvips and imagemagick, and basically decode to pixels only when needed, which would not be triggered by a jxl encoder at the output end if it has a lossless setting and sees jpeg-bitstream-as-metadata in its input object
|
|
2021-05-16 04:00:35
|
Not super elegant, but the jpeg bitstream is smaller than the image buffer, and when you have to decode it then you won't need it anymore, so it's not that bad
|
|
2021-05-16 05:00:18
|
https://chromestatus.com/features#Jpeg%20xl <@532010383041363969> <@795684063032901642> <@768090355546587137> why does the chromestatus thing say "no active development"? Shouldn't that be "in development" or "proposed"?
|
|
2021-05-16 05:00:56
|
see also: https://twitter.com/watIsAgoodUsern/status/1393397141414977543?s=19
|
|
|
|
veluca
|
2021-05-16 07:00:14
|
mhhh
|
|
2021-05-16 07:00:16
|
good question
|
|
|
eddie.zato
|
2021-05-17 05:22:31
|
https://www.yacreader.com/
Сan read JXL in CBZ/CBR using the Qt plugin from novomesk (have to put it in the imageformats folder)
|
|
2021-05-17 05:28:36
|
Yep, but some people use Win 😄
|
|
|
Moritz Firsching
|
|
_wb_
https://chromestatus.com/features#Jpeg%20xl <@532010383041363969> <@795684063032901642> <@768090355546587137> why does the chromestatus thing say "no active development"? Shouldn't that be "in development" or "proposed"?
|
|
2021-05-17 10:47:56
|
was just updated
|
|
|
|
Deleted User
|
2021-05-17 05:15:40
|
<@!795684063032901642> How do animations and multi-pages look/work in Chromium? What do I have to consider as web dev?
|
|
|
_wb_
|
2021-05-17 05:16:19
|
Animation is being worked on.
|
|
2021-05-17 05:20:17
|
Multi-page we don't really have in jxl (at least not as something that is different from an animation), and images on a web page are not supposed to have any controls so I don't think it makes much sense to have page flipping (frame seeking) controls for jxl in a browser
|
|
|
improver
|
2021-05-17 05:22:46
|
TIFF being able to be like PDF sounds like antifeature to me to be honest
|
|
|
Nova Aurora
|
|
improver
TIFF being able to be like PDF sounds like antifeature to me to be honest
|
|
2021-05-17 05:23:09
|
TIFF is adobe featurecreep
|
|
|
_wb_
|
2021-05-17 05:24:41
|
TIFF can do anything, it is the hairiest thing in the world
|
|
2021-05-17 05:24:54
|
https://c.tenor.com/H627PKHZHP4AAAAM/walking-into-my-wax-appoinment-hairy.gif
|
|
|
improver
|
2021-05-17 05:25:28
|
better lets make TIFF do jxl coding internally :--DDDD
|
|
|
_wb_
|
2021-05-17 05:25:51
|
Adobe also puts basically entire PSD files in a TIFF as 'metadata'.
|
|
|
Nova Aurora
|
|
_wb_
Adobe also puts basically entire PSD files in a TIFF as 'metadata'.
|
|
2021-05-17 05:26:40
|
Why not put in javascript and make it turing-complete while we're at it like svg
|
|
|
_wb_
|
2021-05-17 05:27:11
|
Vector formats have a thing for being turing complete
|
|
2021-05-17 05:27:27
|
The old PostScript could also make your printer go into an infinite loop
|
|
2021-05-17 05:28:54
|
As in: crashing and not doing anything, or as in printing an infinite amount of stuff, both could be done at some point
|
|
|
|
veluca
|
|
_wb_
Animation is being worked on.
|
|
2021-05-17 05:31:55
|
so I do have a working patch, but it doesn't really seem to work properly xD
|
|
2021-05-17 05:32:49
|
like, it blocks the rendering thread
|
|
|
|
Deleted User
|
|
_wb_
Multi-page we don't really have in jxl (at least not as something that is different from an animation), and images on a web page are not supposed to have any controls so I don't think it makes much sense to have page flipping (frame seeking) controls for jxl in a browser
|
|
2021-05-17 06:10:20
|
Of course they are supposed to have controls! In case you have multiple to slide through.
It would be useful for something like that: https://www.reddit.com/r/comics/comments/neecej/bobbi_and_the_spaceman_12_rain_oc/
Reddit could simply use a single, more handy and much smaller JXL instead if the browser would allow access to all JXL frames.
|
|
|
_wb_
|
2021-05-17 06:14:20
|
I see how that would be useful, but then you'll need to fight w3c and co to redefine what <img> can do
|
|
|
|
Deleted User
|
2021-05-17 06:25:46
|
Is there no other way around?
|
|
|
_wb_
|
2021-05-17 06:30:09
|
Well you could do things in javascript or whatever, but if you want the img tag to do new things, that means changing the html spec
|
|
|
zebefree
|
2021-05-17 06:40:53
|
<video controls><source src="fancy.jxl"></video>
|
|
2021-05-17 06:42:44
|
<img> should be for static images only
|
|
|
_wb_
|
2021-05-17 06:47:03
|
Tell that to whoever made animated gif work in an img tag
|
|
2021-05-17 06:47:50
|
That ship has sailed
|
|
|
zebefree
|
2021-05-17 06:48:27
|
I will continue to disable them then
|
|
|
_wb_
|
2021-05-17 06:48:54
|
But it would make sense to allow any codec (image or video) in img tags, and maybe also to have a new tag for multipage stuff
|
|
2021-05-17 06:49:36
|
Like PDF, which is something browsers often can display but it's not really well integrated in the web platform
|
|
|
zebefree
|
2021-05-17 06:50:07
|
No, I don't want animations running that don't have a way to pause them
|
|
|
_wb_
|
2021-05-17 06:51:08
|
Then I guess `prefers-reduced-motion` is something for you?
|
|
2021-05-17 06:53:12
|
Or maybe just a browser UI way to pause animations (besides img there can also be css animations, or js doing stuff on a canvas; those might be a bit trickier to put pause buttons on)
|
|
|
zebefree
|
2021-05-17 06:54:56
|
Even just something in the context menu to pause a specific animation would be ok, but just running constantly with no way to pause is not acceptable
|
|
|
_wb_
|
2021-05-17 06:57:47
|
I wonder why that doesn't exist yet. Seems reasonable enough.
|
|
|
zebefree
|
2021-05-17 07:00:57
|
Fortunately people are moving to <video> (using video codecs, not image codecs), and <video> looping can be turned off in the menu; I just hope jxl doesn't cause a resurgence of <img> animations.
|
|
|
_wb_
|
2021-05-17 07:04:10
|
It shouldn't, video codecs are better for video than image codecs
|
|
2021-05-17 07:05:39
|
Just would make sense to also have a pause option for img with animation
|
|
2021-05-17 07:05:56
|
And allow any video in img
|
|
2021-05-17 07:06:34
|
Currently Safari allows h264 (in mp4) in img, and Chrome allows av1 (in avif)
|
|
|
zebefree
|
2021-05-17 07:08:12
|
A pause for img would be great, but videos in img without controls sounds horrible.
|
|
2021-05-17 07:08:46
|
That would motivate me to build a browser extension.
|
|
|
_wb_
|
2021-05-17 07:11:58
|
Well it is not meant for whole videos of course, more to replace gif for 5-second looping stuff
|
|
|
zebefree
|
2021-05-17 07:12:35
|
Those who will abuse it don't care what you think it is for.
|
|
|
_wb_
|
2021-05-17 07:13:05
|
Maybe browsers should always show controls if you ask for them
|
|
|
zebefree
|
2021-05-17 07:13:53
|
Serve the user instead of advertisers? That would be nice!
|
|
|
_wb_
|
|
veluca
like, it blocks the rendering thread
|
|
2021-05-17 07:18:25
|
Any idea why? Does that always happen or only for large animations?
|
|
|
|
veluca
|
2021-05-17 07:19:01
|
fixed 🙂
|
|
|
_wb_
|
2021-05-17 07:21:40
|
Was it something silly, something funny, or something interesting?
|
|
|
|
veluca
|
2021-05-17 07:21:58
|
we didn't have a way to quickly count frames
|
|
|
_wb_
|
2021-05-17 07:24:14
|
The bitstream doesn't have a way to do that, you can skip over all frames and count if you have the whole file but that's it, right?
|
|
|
|
Deleted User
|
|
_wb_
Well you could do things in javascript or whatever, but if you want the img tag to do new things, that means changing the html spec
|
|
2021-05-17 07:37:56
|
Do you mean doing the whole image decoding through JS or do you think it is possible to tell the browser via JS which JXL frame to decode?
|
|
|
_wb_
|
|
Do you mean doing the whole image decoding through JS or do you think it is possible to tell the browser via JS which JXL frame to decode?
|
|
2021-05-17 07:52:29
|
I was thinking more like do it as a large single frame image and use js or css to show parts of it, or something
|
|
|
|
Deleted User
|
2021-05-17 07:54:58
|
But it would be nice to have a single JXL that works locally as well as online.
|
|
|
|
veluca
|
|
_wb_
The bitstream doesn't have a way to do that, you can skip over all frames and count if you have the whole file but that's it, right?
|
|
2021-05-17 08:11:40
|
well we couldn't even do that xD
|
|
|
_wb_
|
2021-05-17 08:16:34
|
Ah
|
|
2021-05-17 08:17:26
|
So chrome was like, "how many frames does this animation have?" and libjxl was like, "I dunno let me decode the whole thing for you and I will tell you"
|
|
|
|
Deleted User
|
2021-05-17 08:22:25
|
Tell me cloudinary, when will .../pg_x/ be supported for JXL files? 😄
|
|
|
_wb_
|
2021-05-17 08:34:31
|
We don't even support jxl animation yet atm, it's one of the things I have to work on this week
|
|
2021-05-17 08:35:22
|
The cloudinary notion of pg_x is like the imagemagick one, it's a page of a pdf, a layer of a psd, a frame of a gif
|
|
2021-05-17 08:35:58
|
Question for jxl will be whether to count in layers or in coalesced frames
|
|
2021-05-17 08:37:00
|
(also layers can have names in jxl, like in psd, which can be convenient to not have to worry about the "how is this counted?" problem)
|
|
2021-05-17 08:37:40
|
Layers you can count from bottom to top, from top to bottom, starting with 0, 1 or 2, and afaik all of those conventions are used by something or someone
|
|
|
|
veluca
|
|
_wb_
So chrome was like, "how many frames does this animation have?" and libjxl was like, "I dunno let me decode the whole thing for you and I will tell you"
|
|
2021-05-17 08:37:41
|
yeeees... that wouldn't have been *that* bad except for the fact that then chrome would create two different decoders for counting frames and actual display in some cases
|
|
|
_wb_
|
2021-05-17 08:39:56
|
Animated jxl art will be fun
|
|
|
Pieter
|
2021-05-17 08:44:48
|
How hard would it be to make jxl_from_tree support a mode where it has multiple frames, but they're all just slices out of a single hidden one?
|
|
2021-05-17 08:45:39
|
And e.g. transparently have it translate checks on group and frame number into a unified group number (where every frame is a range of groups).
|
|
|
_wb_
|
2021-05-17 08:48:14
|
Not hard, probably, just annoying plumbing
|
|
2021-05-17 08:48:41
|
Easier thing is to just do frames with a new tree per frame
|
|
2021-05-17 08:49:25
|
(and maybe write a bash script that generates a set of trees)
|
|
2021-05-17 08:50:41
|
Just need to add a way to indicate duration and blend mode, and then what does overlays now can be used to make animations
|
|
|
Pieter
|
2021-05-17 10:07:58
|
<@794205442175402004> Yeah, but a new tree per frame means you can't share (parts of) the tree.
|
|
|
_wb_
|
2021-05-17 10:20:31
|
Yes, for minimum size it may not be optimal (though signaling patches is also not free so I guess it depends on how much of the tree can be shared)
|
|
|
Pieter
|
2021-05-17 10:21:25
|
I could imagine things like having the first out-of-view line be different for each frame, but then the derivation of how that first line generates the next (visible) ones be the same.
|
|
2021-05-17 10:22:05
|
Could let you do automate that vary over time.
|
|
|
_wb_
|
2021-05-18 05:34:45
|
Yes, if the patch signaling plus selection on frame/group in the tree is less costly than duplicating the automaton description itself.
|
|
|
Pieter
|
2021-05-18 05:51:00
|
The language doesn't even need to be different if it's sufficiently high level. jxl_from_tree could just try both strategies and see which one is smaller
|
|
2021-05-18 05:51:17
|
i guess that'd earn it the label "compressor"
|
|
|
_wb_
|
2021-05-18 07:16:50
|
makes sense
|
|
|
improver
|
2021-05-18 03:27:41
|
https://bugs.chromium.org/p/chromium/issues/detail?id=1178058#c29 is this kinda progressive decoding or not quite yet?
|
|
|
_wb_
|
2021-05-18 03:36:33
|
good question, <@!768090355546587137> do you know what exactly this does?
|
|
|
|
veluca
|
2021-05-18 03:38:11
|
no, it's not
|
|
2021-05-18 03:38:28
|
it's just the same as partial decoding of sequential JPEG1
|
|
2021-05-18 03:38:43
|
(but one rect instead of one line at a time)
|
|
|
_wb_
|
2021-05-18 03:38:58
|
does it render fully decoded groups at a time?
|
|
|
|
veluca
|
2021-05-18 03:39:13
|
more or less
|
|
|
_wb_
|
2021-05-18 03:39:36
|
horizontal line of groups?
|
|
|
|
veluca
|
2021-05-18 03:39:57
|
nah, every group, but not exactly a group
|
|
|
_wb_
|
2021-05-18 03:40:13
|
minus filter padding?
|
|
|
|
lvandeve
|
2021-05-18 03:56:08
|
Before the chromium change, it first got all bytes, then started decoding
|
|
2021-05-18 03:56:56
|
After the change, it will already start decoding while receiving bytes, and place pixels in Chrome's image buffer
This behavior is more like the other image decoders work too
|
|
2021-05-18 03:57:31
|
It will work group per group, or scanline per scanline, depending on the image
|
|
2021-05-18 03:58:17
|
Over a slow network connection, it should be possible to see the groups appear
|
|
|
_wb_
|
2021-05-18 04:07:48
|
Nice
|
|
2021-05-18 04:08:09
|
Next step: showing upsampled DC too?
|
|
2021-05-18 04:08:29
|
I suppose we first want the DC upsampling properly simdified
|
|
|
|
veluca
|
|
_wb_
minus filter padding?
|
|
2021-05-18 04:33:48
|
yeah
|
|
|
_wb_
I suppose we first want the DC upsampling properly simdified
|
|
2021-05-18 04:33:53
|
that's done btw 😛
|
|
|
|
jjido
|
2021-05-18 07:55:31
|
Can you _show_ an example of upsampling? (image preview vs image)
|
|
|
|
veluca
|
|
_wb_
We don't even support jxl animation yet atm, it's one of the things I have to work on this week
|
|
2021-05-18 08:18:31
|
https://chromium-review.googlesource.com/c/chromium/src/+/2903086 now get to work! 😛
|
|
|
jjido
Can you _show_ an example of upsampling? (image preview vs image)
|
|
2021-05-18 08:19:59
|
second image from the left here https://www.youtube.com/watch?v=uzYHXqjGgL4 works as an example (it has more steps than usual though)
|
|
|
_wb_
|
|
veluca
https://chromium-review.googlesource.com/c/chromium/src/+/2903086 now get to work! 😛
|
|
2021-05-18 08:22:45
|
<:Hypers:808826266060193874>
|
|
|
|
Deleted User
|
2021-05-18 09:17:07
|
So Chrome will be feature-complete before Cloudinary? ... <:PepeOK:805388754545934396>
|
|
|
_wb_
|
2021-05-18 09:19:10
|
Chrome Canary maybe. Chrome stable, nah 😅
|
|
|
|
Deleted User
|
|
_wb_
How do we get image/jxl from the provisional list to the actual list, btw? Do we just have to wait for IANA to review the application? They do seem to take a long time for that...
|
|
2021-05-18 09:36:00
|
Btw, can we additionally have `video/jxl` as media type? This would not only allow people to stop animations if the website uses JXL inside a video tag but also support seeking for multi-page-like JXLs.
|
|
|
improver
|
2021-05-18 09:37:53
|
mime type isn't relevant to that, html element type is
|
|
2021-05-18 09:38:15
|
not to mention that jxl would make poor video type
|
|
|
|
Deleted User
|
2021-05-18 09:39:17
|
Well, it's a small portion of content where JXL animations shine but having the option doesn't harm.
|
|
|
_wb_
|
2021-05-18 09:40:23
|
video/jxl would be weird, jxl is definitely not a video codec
|
|
|
improver
|
2021-05-18 09:40:24
|
having options is what makes current web browsers as big as they are. it absolutely does harm
|
|
2021-05-18 09:40:50
|
especially not well though out options
|
|
|
|
Deleted User
|
|
_wb_
video/jxl would be weird, jxl is definitely not a video codec
|
|
2021-05-18 09:42:11
|
but it has animations and many people would like to stop/control them.
|
|
|
improver
|
2021-05-18 09:42:29
|
i personally wouldn't
|
|
2021-05-18 09:42:43
|
usually animated images are too small for controls to be placed
|
|
2021-05-18 09:43:18
|
and no right clicking every thing is not good UX
|
|
|
190n
|
2021-05-18 09:43:43
|
video/jxl mime type also might make people think serving longer/high-res videos as jxl is okay which it probably (if you care about bandwidth) isn't
|
|
|
|
Deleted User
|
2021-05-18 09:44:06
|
<@!260412131034267649> I don't want to replace image/jxl, just have another option.
|
|
|
_wb_
|
2021-05-18 09:44:13
|
How browsers do their UI is somewhat orthogonal to media types or the html spec
|
|
|
improver
|
2021-05-18 09:44:18
|
also extension vs mime type confusion (servers usually divine mime types from extensions, so would need one more)
|
|
|
|
veluca
|
2021-05-18 09:44:33
|
it's also not really OK from a browser implementation point of view...
|
|
|
|
Deleted User
|
2021-05-18 09:44:55
|
which part? <:ugly:805106754668068868>
|
|
|
_wb_
|
2021-05-18 09:46:33
|
If a browser wants to show controls on animations, I think they can, regardless of if it's an img tag or a video tag or what the media type is
|
|
|
improver
|
2021-05-18 09:47:05
|
they would break layouts if they aren't overlaid on images themselves
|
|
|
_wb_
|
2021-05-18 09:47:19
|
They can also not show any images and show just the alt text
|
|
2021-05-18 09:47:55
|
Or read out the html aloud, for that matter
|
|
|
improver
|
2021-05-18 09:48:41
|
i dont recall any browser putting out raw html tags in place of images tbh
|
|
|
_wb_
|
2021-05-18 09:49:14
|
I mean how blind people browse the web
|
|
|
improver
|
2021-05-18 09:50:48
|
pretty sure their readers don't annotate specific tags, though they may do annotate some semantics/properties
|
|
|
_wb_
|
2021-05-18 09:51:08
|
The alt description is supposed to be used for img tags
|
|
|
improver
|
2021-05-18 09:51:18
|
idk I'm not blind so I don't really know but I would find it weird if it was like reading html source
|
|
|
_wb_
|
2021-05-18 09:51:28
|
It's the only obligatory part of an img tag besides the src
|
|
|
improver
|
2021-05-18 09:53:18
|
I'd probably like big global switch "stop all animations in the page"
|
|
2021-05-18 09:53:43
|
because usually if site does one gif it can do several more
|
|
2021-05-18 09:53:56
|
killing them one by one would be bad UX
|
|
|
_wb_
|
2021-05-18 09:54:56
|
Maybe could be a good idea for a browser extension (or feature request)
|
|
2021-05-18 09:55:59
|
Big pause button, sets `prefers-reduced-motion` and pauses all animations and videos.
|
|
|
|
Deleted User
|
2021-05-18 09:56:21
|
What about: `<img src="pic.jxl" alt="animated JXL" controls=""/>` (Controls being totally optional!)
<@!179701849576833024> Can you add support for that? 😁
|
|
|
|
veluca
|
2021-05-18 09:57:04
|
well, I guess one would have to add support of that for avif, apng and gif too
|
|
2021-05-18 09:57:12
|
can be done, but I'm not the right person 😛
|
|
|
|
Deleted User
|
2021-05-18 09:57:51
|
Can you at least tell your Chrome friends about this feature wish? ^^
|
|
|
|
veluca
|
2021-05-18 09:58:24
|
it's not really chrome, more w3c I guess
|
|
|
_wb_
|
2021-05-18 09:58:31
|
That's better discussed at the html/w3c level than trying to add it as a chrome only thing
|
|
2021-05-18 09:59:23
|
I am in favor of basically making img and video the same tag, just with different defaults regarding controls, looping, autoplay and mute.
|
|
2021-05-18 09:59:43
|
But that's a big html spec change
|
|
|
|
Deleted User
|
2021-05-18 10:00:28
|
We can't let w3c control everything. A browser should add optional features to make w3c add them officially.
|
|
|
_wb_
|
2021-05-18 10:00:56
|
That's what lead to the IE feature bloat
|
|
2021-05-18 10:01:13
|
inventing tags just for fun
|
|
2021-05-18 10:01:39
|
marquee tag anyone?
|
|
2021-05-18 10:02:09
|
I remember those days
|
|
|
raysar
|
2021-05-19 01:56:02
|
We don't need button, only pause when click on animate image. For me a browser can add this feature very easily without changing html.
|
|
|
monad
|
|
_wb_
inventing tags just for fun
|
|
2021-05-19 04:43:19
|
There was a time I thought IE was kinda cool for that.
|
|
|
_wb_
|
|
raysar
We don't need button, only pause when click on animate image. For me a browser can add this feature very easily without changing html.
|
|
2021-05-19 04:48:05
|
Not really. Images can be links, there can be js watching click events. You cannot just redefine left click on image to mean something else.
|
|
|
raysar
|
|
_wb_
Not really. Images can be links, there can be js watching click events. You cannot just redefine left click on image to mean something else.
|
|
2021-05-19 05:09:12
|
Ok, browser could pause image with exception if it's a link image. Gif with link is very rare on internet.
|
|
|
|
veluca
|
2021-05-20 07:29:48
|
<@456226577798135808> did you end up doing this? 🙂
|
|
2021-05-20 07:50:44
|
thanks! 🙂
|
|
2021-05-20 11:22:17
|
sounds about right I'd say
|
|
2021-05-20 11:23:06
|
```
<comment>JPEG XL image</comment>
<comment xml:lang="fr">image JPEG XL</comment>
<comment xml:lang="nl">JPEG XL afbeelding</comment>
```
haha 😄 maybe I should add Italian too, to make the set of languages even weirder
|
|
|
|
Deleted User
|
2021-05-20 11:24:01
|
`<comment xml:lang="pl">obraz JPEG XL</comment>`
|
|
|
|
veluca
|
2021-05-20 11:25:23
|
thanks a lot!
|
|
2021-05-20 11:26:55
|
hope so too 😛
|
|
2021-05-20 11:27:07
|
I also hope that it will make things "just work" for a few cases
|
|
|
fab
|
2021-05-20 11:42:26
|
who is Ai Hayasaka
|
|
|
|
Deleted User
|
|
veluca
sounds about right I'd say
|
|
2021-05-20 11:42:34
|
I saw that here Luca didn't use capital letters and I just followed suit
|
|
|
fab
|
2021-05-20 11:42:36
|
and what have to do with the standardaziation
|
|
|
|
veluca
|
|
I saw that here Luca didn't use capital letters and I just followed suit
|
|
2021-05-20 11:46:20
|
I just copied it from our source code 😛
|
|
2021-05-20 12:05:00
|
I guess one can just replace "JPEG" with "JPEG XL" in the description for image/jpeg...
|
|
|
improver
|
2021-05-20 06:28:13
|
<https://bugs.chromium.org/p/chromium/issues/detail?id=1178058#c30> animation landed
|
|
|
|
veluca
|
2021-05-20 06:38:59
|
you people are very reactive xD
|
|
|
_wb_
|
2021-05-20 06:41:05
|
just in time for Chrome 92
|
|
2021-05-20 06:41:14
|
so Chrome 92 will have a full jxl decoder (behind a flag), right?
|
|
2021-05-20 06:41:39
|
now only need to make it progressive too, and get it enabled by default in Chrome 93 😅
|
|
|
|
veluca
|
|
_wb_
so Chrome 92 will have a full jxl decoder (behind a flag), right?
|
|
2021-05-20 06:42:52
|
should be
|
|
|
username
|
2021-05-20 06:43:16
|
but wait this makes it progressive already right? https://chromium-review.googlesource.com/c/chromium/src/+/2900235
|
|
2021-05-20 06:43:26
|
this got merged 2 days ago
|
|
|
_wb_
|
2021-05-20 06:43:52
|
that makes it incremental/sequential
|
|
|
|
Deleted User
|
2021-05-20 07:07:04
|
GOOGLE PHOTOS PLZ
|
|
2021-05-20 07:08:24
|
I can even pay a bit and sign an NDA to test JPEG XL in Google Photos, lots of photos are already uploaded and just waiting for being `-d 1` or `-d 2` converted on Google's side...
|
|
2021-05-20 10:44:39
|
mark the date: Jul 20
|
|
|
BlueSwordM
|
2021-05-21 02:42:23
|
Great news.
|
|
2021-05-21 02:42:37
|
Openmandriva will get full JPEG-XL support in its next stable release 👍
|
|
2021-05-21 03:23:42
|
Yes, out of the box 😄
|
|
2021-05-21 03:23:49
|
Everything, even the gimp plugin.
|
|
2021-05-21 03:24:16
|
However, there's something dubious <:Thonk:805904896879493180>
```Upgrading:
jpeg-xl znver1 0.4.0-0.20210521.1 cooker-znver1 7.1 k
jpeg-xl-gdk-pixbuf znver1 0.4.0-0.20210521.1 cooker-znver1 344 k
jpeg-xl-gimp znver1 0.4.0-0.20210521.1 cooker-znver1 814 k
lib64jxl0 znver1 0.4.0-0.20210521.1 cooker-znver1 817 k
lib64jxl_threads0 znver1 0.4.0-0.20210521.1 cooker-znver1 13 k
lib64xml2_2 znver1 2.9.12-1 cooker-znver1 632 k
python-libxml2 znver1 2.9.12-1 cooker-znver1 243 k
```
|
|
2021-05-21 03:24:26
|
I didn't know JXL 0.4.0 was already out <:Thonk:805904896879493180>
|
|
|
Pieter
|
2021-05-21 03:25:46
|
0.4.0-0.20210521.1 probably means "git checkout of the branch that will become 0.4, on 2021-05-21"
|
|
2021-05-21 03:26:19
|
Which is extra suspicious, because in my timezone it's still may 20th!
|
|
|
BlueSwordM
|
2021-05-21 03:26:40
|
Yeah, it's very odd.
|
|
2021-05-21 03:26:59
|
They are in Europe, so that's fine, but how did they manage to get 0.4.0 in the 1st place?
|
|
2021-05-21 03:27:16
|
I wonder if they did that just to be able to differentiate it more easily <:kekw:808717074305122316>
|
|
|
190n
|
2021-05-21 03:29:27
|
good riddance
|
|
|
Pieter
|
2021-05-21 03:32:39
|
It still existed?
|
|
2021-05-21 03:39:52
|
No seriously, it still existed?
|
|
|
Nova Aurora
|
|
Pieter
No seriously, it still existed?
|
|
2021-05-21 03:41:14
|
It is still the official browser of Win8 and is included in Win10 for people that need to check compatibility
|
|
2021-05-21 03:41:56
|
I don't like that Win10 has 3 browsers installed by defualt
|
|
2021-05-21 03:42:06
|
IE, old edge, and new edge
|
|
|
Pieter
|
2021-05-21 03:42:12
|
I guess I wasn't *really* serious about the question, the fact that The Verge wrote an article about it must mean it did. Still, I had no idea!
|
|
|
Nova Aurora
|
2021-05-21 03:42:31
|
Just for me to install Firefox and ignore those 3
|
|
|
Pieter
|
2021-05-21 03:42:54
|
"Microsoft Internet Explorer: a pre-installed tool to download browsers"
|
|
|
Nova Aurora
|
2021-05-21 03:43:31
|
Also new edge has outpaced firefox <:FeelsSadMan:808221433243107338>
|
|
|
Pieter
|
2021-05-21 03:43:32
|
(a joke I heard several years ago)
|
|
|
Nova Aurora
|
2021-05-21 03:45:31
|
Microsoft lost the phone operating system war, so now they try to profit off of android's/IOS's success
|
|
2021-05-21 04:13:05
|
This was microsoft's actual pre-installed tool to download browsers
https://upload.wikimedia.org/wikipedia/en/e/e2/BrowserChoice.gif
|
|
2021-05-21 04:14:23
|
Although it was a page displayed in IE......
|
|
|
190n
|
2021-05-21 04:48:45
|
yeah the eu forced them to display that i believe
|
|
2021-05-21 04:49:30
|
iirc the order was randomized, but they kinda goofed the randomization so certain browsers were more likely to show up in certain positions. i forget if that was in a way that benefited microsoft, but cue conspiracy theories galore
|
|
|
monad
|
2021-05-21 06:26:07
|
I rarely use Win 10, but was surprised find IE was the default program for opening some file types ... maybe xhtml, I don't recall exactly.
|
|
|
|
jjido
|
|
|
veluca
|
|
190n
iirc the order was randomized, but they kinda goofed the randomization so certain browsers were more likely to show up in certain positions. i forget if that was in a way that benefited microsoft, but cue conspiracy theories galore
|
|
2021-05-21 08:20:56
|
I'd expect it was just a programming mistake... this just by knowing a lot about typical programming mistakes 😛
|
|
|
BlueSwordM
They are in Europe, so that's fine, but how did they manage to get 0.4.0 in the 1st place?
|
|
2021-05-21 08:21:24
|
I guess it's just the 0.4.x branch and they're expecting we'll make a 0.4.0 soon 😄
|
|
|
Petr
|
2021-05-21 08:38:36
|
I've just found out that FF Nightly on **Android** supports jxl too! 👍 It's not stated at https://caniuse.com/jpegxl and I didn't find it here at Discord either so it could be a new piece of info for some of you.
|
|
|
improver
|
2021-05-21 08:44:39
|
o damn
|
|
2021-05-21 08:45:24
|
hell ye enabled
|
|
2021-05-21 08:46:20
|
it totally wasn't there for quite a while, i tried looking for it numerous times
|
|
2021-05-21 08:50:16
|
and it works. but alpha stuff still aint implemented rip
|
|
|
_wb_
|
|
Scope
|
2021-05-21 02:03:33
|
They mostly have interests in lossless like FFV1?
|
|
|
_wb_
|
2021-05-21 02:16:39
|
no idea, they list all kinds of formats
|
|
|
Scope
|
2021-05-21 02:18:39
|
I think because there are other things when the format/standard can be considered stable
|
|
2021-05-21 02:55:35
|
https://github.com/mozilla/standards-positions/issues/522
|
|
|
raysar
|
2021-05-21 04:31:50
|
I'm waiting the next chrome canary update to test animate jxl ! <:Hypers:808826266060193874>
|
|
|
|
veluca
|
2021-05-21 04:34:02
|
it might use a bit too much ram for now
|
|
|
BlueSwordM
|
|
veluca
I guess it's just the 0.4.x branch and they're expecting we'll make a 0.4.0 soon 😄
|
|
2021-05-21 04:52:33
|
Yeah, they live a bit in the future 😛
|
|
|
improver
|
2021-05-21 06:52:09
|
|
|
2021-05-21 06:52:22
|
animated jxl on chromium snapshot
|
|
|
|
veluca
|
2021-05-21 06:56:34
|
well!
|
|
2021-05-21 06:56:41
|
that I didn't expect
|
|
2021-05-21 06:56:54
|
|
|
2021-05-21 06:56:59
|
does that one work?
|
|
|
improver
|
2021-05-21 06:57:28
|
it's counting without crashing
|
|
|
|
veluca
|
2021-05-21 06:57:35
|
ok, amazing
|
|
2021-05-21 06:57:39
|
I'll have to fix this I guess
|
|
|
improver
|
|
|
veluca
|
2021-05-21 06:57:48
|
can you perhaps share the gif?
|
|
2021-05-21 06:57:52
|
ok xD thanks!
|
|
2021-05-21 07:02:29
|
```
#4 0x559ceb5cad10 jxl::PerformBlending()
#5 0x559ceb62c0ef jxl::PatchDictionary::AddTo()
#6 0x559ceb635c0c jxl::FinalizeImageRect()
```
well, it's a JXL bug...
|
|
|
improver
|
2021-05-21 07:03:28
|
pretty random one too i guess as ive converted another gif and that isn't crashing stuff
|
|
2021-05-21 07:04:46
|
wait uhh.. did upper patch stuff limit get fixed in latest sync
|
|
2021-05-21 07:05:36
|
because ive just pulled new git stuff.. and if it uses patches.. and chromium uses old one.. could it be related?
|
|
2021-05-21 07:06:18
|
|
|
2021-05-21 07:06:24
|
haha this one doesn't crash stuff
|
|
|
|
veluca
|
2021-05-21 07:07:14
|
nope, not related 🙂
|
|
|
improver
|
2021-05-21 07:07:24
|
so in patches but not related to limit
|
|
|
|
veluca
|
2021-05-21 07:36:56
|
the more I look at the code, the more I realize I must have done something extremely stupid xD
|
|
|
_wb_
|
2021-05-21 07:48:13
|
that's what "canary" and "behind-a-flag" are for, right? and also an amazing community that starts to try stuff and finds stuff that breaks nearly immediately 🙂
|
|
|
|
veluca
|
2021-05-21 07:55:07
|
well, now I fixed the crash, but the image looks weird
|
|
2021-05-21 07:55:10
|
progress?
|
|
|
improver
|
|
2021-05-21 07:55:52
|
can you perhaps share the original gif?
|
|
|
improver
|
2021-05-21 08:52:45
|
|
|
|
veluca
can you perhaps share the original gif?
|
|
2021-05-21 08:52:52
|
^
|
|
|
|
veluca
|
2021-05-21 08:53:14
|
thanks! I found the bug in the meantime...
|
|
2021-05-21 08:54:01
|
by the way, there was *also* an *encoder* bug
|
|
|
improver
|
2021-05-21 08:54:19
|
wow
|
|
2021-05-21 08:55:53
|
kinda curious what exactly these bugs were
|
|
|
_wb_
|
2021-05-21 09:04:19
|
patches weren't cleared between frames
|
|
|
|
veluca
|
2021-05-21 09:04:37
|
and on the encoder side, patch *frames* weren't cleared between frames
|
|
|
_wb_
|
2021-05-21 09:04:45
|
basically the combination of patches and animation was kind of completely broken
|
|
|
|
veluca
|
2021-05-21 09:04:50
|
so the first patch frame would be encoded for *every* animation frame
|
|
2021-05-21 09:05:06
|
the second patch frame for every animation frame *except the first*
|
|
2021-05-21 09:05:09
|
etc...
|
|
|
_wb_
|
2021-05-21 09:05:32
|
luckily <@!179701849576833024> found and fixed the bug already
|
|
|
|
veluca
|
2021-05-21 09:05:40
|
also explains why encoding a bunch of PNGs as frames would give worse results than encoding them one by one xD
|
|
2021-05-21 09:06:12
|
(I still want to have an heuristic that can find patches common to multiple frames... not hard, in theory, but requires quite a bit of plumbing)
|
|
|
_wb_
|
2021-05-21 09:06:40
|
I suppose this fix should get cherry-picked into public repo and chrome quickly, no?
|
|
|
|
veluca
|
2021-05-21 09:06:45
|
yeah
|
|
2021-05-21 09:06:59
|
I expect it will be in 0.4.0 (probably on Tuesday)
|
|
2021-05-21 09:07:35
|
and in chrome by the next beta build, which is I think on Thursday? For sure in a canary somewhere around Wednesday though 🙂
|
|
|
GilDev
|
2021-05-22 04:20:42
|
As of today, latest Graphic Converter’s beta version supports JPEG XL importing and exporting: https://www.lemkesoft.org/beta.html
|
|
2021-05-22 04:29:36
|
|
|
|
diskorduser
|
|
fab
|
2021-05-22 04:48:03
|
wha
|
|
2021-05-22 04:48:10
|
what is this symbol?
|
|
|
lithium
|
|
fab
wha
|
|
2021-05-22 04:49:45
|
chinese
|
|
|
fab
|
2021-05-22 04:49:54
|
what it means
|
|
|
lithium
|
2021-05-22 04:50:50
|
the above (google translate)
|
|
2021-05-22 04:51:36
|
I think mean 'have more content'
|
|
|
_wb_
|
|
GilDev
As of today, latest Graphic Converter’s beta version supports JPEG XL importing and exporting: https://www.lemkesoft.org/beta.html
|
|
2021-05-22 05:04:44
|
Nice! Let us know if you need help to get color profiles and metadata working.
|
|
|
GilDev
|
|
_wb_
Nice! Let us know if you need help to get color profiles and metadata working.
|
|
2021-05-22 05:06:03
|
Just to specify I’m not involved with the development, just had contact with the developer asking about JXL implementation. Really excited about this though, I use this software a lot!
|
|
2021-05-22 05:06:40
|
And thanks for the https://jpegxl.info/ website <@!794205442175402004>, very useful and condensed informations. Those comparison websites between formats with a slider are great!
|
|
|
_wb_
|
2021-05-22 05:09:56
|
Thanks to <@493871605408071681> and the WebP2 folks for those comparisons, and also <@710762823986446367> and <@228116142185512960> for Squoosh!
|
|
2021-05-24 01:18:35
|
https://github.com/gabriel-vasile/mimetype/commit/e9147bdbbbf03bb48e09c00d8b1b1f3db92ac62f
|
|
|
|
veluca
|
|
_wb_
|
2021-05-24 01:36:16
|
One mime db a day keeps the doctor away
|
|
|
monad
|
2021-05-24 08:18:22
|
Is anyone familiar with the relationship between Chromium and Electron feature support? Could you ship an Electron app with JXL support right now?
|
|
|
|
veluca
|
2021-05-24 08:20:36
|
no idea... but if Electron uses blink, probably yes
|
|
2021-05-24 08:22:26
|
right, it does use blink
|
|
2021-05-24 08:22:32
|
which is not a surprise I guess 😄
|
|
|
Jim
|
2021-05-24 08:38:14
|
I would assume it could be enabled in a nightly build but since it's not in stable yet I would not release a stable app with it, but you could obviously start updating/testing an app to use it when JXL reaches stable in Chromium & Electron.
|
|
|
|
Deleted User
|
2021-05-24 08:49:33
|
I still wonder why doesn't Discord support AVIF...
|
|
|
improver
|
2021-05-24 09:18:53
|
feature-gating: not all supported frontends support it so it would result in sub-optimal experience for ones where it's not supported
|
|
|
190n
|
2021-05-24 09:19:26
|
does discord embed webms (with vp8 or vp9) on ios?
|
|
|
improver
|
2021-05-24 09:19:40
|
i wonder...
|
|
|
Jim
|
|
I still wonder why doesn't Discord support AVIF...
|
|
2021-05-24 09:48:56
|
Not supported by Firefox, Edge, or Safari yet. Also they may not support it for a while. A number of CDNs are passing on it for now due to slow encode speed. Going into the next year I feel a lot are going to put serious thought into the performance impact of AVIF in whether they will support it now or later. Even if they do support it I'm sure they will take time (maybe months) to test and generate AVIF versions of all the images. I think it took over a year after WebP got wide browser support that Discord added support.
|
|
|
username
|
2021-05-25 02:19:43
|
also another reason why discord doesn't support AVIF is because their electron client is still using electron version 9 which is based on chromium 83 which is before chromium 85 and chromium 85 is the version that added AVIF support.
|
|
|
|
Deleted User
|
2021-05-25 03:38:36
|
Why don't they update their Electron version?
|
|
|
190n
|
2021-05-25 03:42:19
|
they run a patched version of electron so maybe they don't want to rebase
|
|
|
|
Deleted User
|
2021-05-25 04:05:21
|
They patched it?
|
|
|
190n
|
2021-05-25 07:27:17
|
i'm pretty sure they have some native code for voice stuff
|
|
|
|
Deleted User
|
2021-05-25 01:30:12
|
They should cherry-pick commits responsible for AVIF and other nice functions, they shouldn't interfere with their voice stuff
|
|
|
zebefree
|
2021-05-25 03:47:36
|
It would still not work in the web version until browsers support it.
|
|
|
eddie.zato
|
2021-05-26 02:53:04
|
Just checked Chromium 93.0.4523.0. It supports jxl animation.
|
|
|
|
veluca
|
2021-05-27 09:15:29
|
and the next canary / beta should even have it work! xD
|
|
2021-05-27 09:15:38
|
(with patches)
|
|
|
raysar
|
|
veluca
and the next canary / beta should even have it work! xD
|
|
2021-05-27 09:31:01
|
Yes! animate works great with --patches=1 --dots=1 --noise=1 --progressive_dc=0 <:Hypers:808826266060193874>
|
|
|
|
veluca
|
2021-05-27 09:31:22
|
good!
|
|
|
raysar
|
2021-05-27 09:34:57
|
Next step is to work on chrome on android? 😇
|
|
|
|
veluca
|
2021-05-27 09:40:56
|
there's not a lot to *work* on there
|
|
2021-05-27 09:41:03
|
just getting the flag enabled
|
|
|
raysar
|
2021-05-27 09:56:19
|
So who have the power to enable jxl flags? 😄 i don't see any flags on chrome canary android.
|
|
|
|
veluca
|
2021-05-27 09:59:35
|
I'm not actually sure...
|
|
|
Kleis Auke
|
2021-05-28 10:42:47
|
Looks like libjxl was approved by Fedora last weekend: https://bugzilla.redhat.com/show_bug.cgi?id=1922638#c17.
|
|
|
|
veluca
|
2021-05-28 10:47:53
|
wonder why they built it with sjpeg...
|
|
2021-05-28 10:47:55
|
oh well
|
|
2021-05-28 10:48:26
|
nice! now we just need to get debian to include the package we gave them 😛
|
|
2021-05-28 10:50:51
|
what bundled libraries anyway?
|
|
|
Kleis Auke
|
|
veluca
wonder why they built it with sjpeg...
|
|
2021-05-28 11:09:42
|
Probably because `JPEGXL_ENABLE_SJPEG` is enabled by default, but I'm not sure.
|
|
|
|
veluca
|
2021-05-28 11:10:06
|
I guess
|
|
|
Kleis Auke
|
2021-05-28 11:10:11
|
According to that spec file, they included the bundled sjpeg because there is no official release.
|
|
|
|
veluca
|
2021-05-28 11:10:15
|
But there's no need, really
|
|
2021-05-28 11:10:47
|
I mean, for sure there's no need for the library, but even for the tools
|
|
|
Kleis Auke
|
2021-05-28 11:51:10
|
Ah, you're right. libjpeg(-turbo) can also be used for encoding (which is already included within the spec file), so sjpeg is not necessary. In that issue, should I ask why they included sjpeg?
|
|
2021-05-28 11:53:28
|
Perhaps they could also swap the bundled skcms with lcms2, since lcms2 does get packaged by Fedora. Or is there any downside to using that?
|
|
|
Scope
|
2021-05-28 11:56:52
|
https://discord.com/channels/794206087879852103/794206170445119489/821664205672677417
|
|
|
_wb_
|
2021-05-28 12:13:44
|
it's not a big downside imo
|
|
|
Kleis Auke
|
|
Scope
https://discord.com/channels/794206087879852103/794206170445119489/821664205672677417
|
|
2021-05-28 12:16:38
|
Curious, I couldn't reproduce that with libvips on Windows (which uses lcms2), I'll have a look.
```
vips.exe icc_transform 50551002028_1738fd834f_o.jpg x.jpg srgb --vips-progress
vips temp-3: 4922 x 3017 pixels, 6 threads, 4922 x 16 tiles, 128 lines in buffer
vips temp-3: done in 0,17s
```
|
|
|
Scope
|
2021-05-28 12:22:10
|
🤔 Maybe cjxl does it in a different way
|
|
|
_wb_
|
2021-05-28 12:39:45
|
we transform to floating point, not to int, and not to sRGB
|
|
2021-05-28 12:40:49
|
so likely some optimizations in lcms2 that are specific for transforming to 8-bit sRGB don't apply
|
|
|
|
veluca
|
2021-05-28 01:35:12
|
skcms is slower
|
|
2021-05-28 01:35:16
|
possibly a lot slower
|
|
2021-05-28 01:35:25
|
but also a bit more precise and works in more cases
|
|
2021-05-28 01:35:47
|
skcms is IIRC a single file, so not too bad
|
|
2021-05-28 01:36:00
|
sjpeg on the other hand... I'd prefer if it was disabled I think
|
|
|
The Fylkir
|
2021-05-28 07:50:35
|
So flac and probably a few other music formats support embedded album art. I wonder if this is an area where JXL could shine
|
|
|
|
veluca
|
2021-05-28 07:53:07
|
mh, I don't know - I don't think more than on other cases, at least
|
|
|
|
Deleted User
|
|
The Fylkir
So flac and probably a few other music formats support embedded album art. I wonder if this is an area where JXL could shine
|
|
2021-05-28 08:03:48
|
Never understood that. Why would you wanna do that? Let's say a typical album contains 10 songs, then why save the cover 10 times for each FLAC? Of course, you can use one FLAC per album instead of per song but then you probably have an additional .cue anyway and another .jxl won't harm.
|
|
|
The Fylkir
|
2021-05-28 08:22:18
|
Yeah that's a good point
|
|
2021-05-28 08:23:00
|
I'm more excited for when JXL is supported enough that I can convert my comic collection to JXL
|
|