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

other-codecs

Nova Aurora
Scope And I also do not see anything magical for AVIF at these bitrates, for example 24kb JXL
2022-01-28 08:50:52
What options?
Scope
2022-01-28 08:52:17
`-e 9 --photon_noise= (and here the values can be different for better results)`
2022-01-28 08:52:48
but even encoding with the default settings is not much different
2022-01-28 09:00:39
And that's a very far thing from quotes like this: > For lossy color data use AVIF (significantly beats all older formats like WebP and even JPXL for almost all settings) > JPXL works very well for reducing the size of existing JP data without having to reencode (and lose further information) other than that it cant compete with others in lossless or lossy mode. > In my own tests (which i do alot of) at their default settings AVIF gets files to MUCH smaller sizes while still appearing visually lossless. Also about lossless: > For me a file is either 'hot' in which case I don't need great compression and just want fast decode (in which case LZ4 bitmap is unbeatable) or a file is cold, in which case I was either the deepest lossless or lossy compression. > > JPEGXL will never compete with raw or LZ4 compressed formats for speed and it's minor compression advantage for hot files is just not significant enough to make me use it. never compete with raw formats for speed? 🤔 minor compression advantage? 🤔
2022-01-28 09:08:04
I mean, when it requires such a high decoding speed that almost any compression is unacceptable, it's a very niche use As well as the minor compression advantage over raw data This is a very large gap between the maximum possible compression in any amount of time and only the maximum possible decoding speed
Nova Aurora
Scope And that's a very far thing from quotes like this: > For lossy color data use AVIF (significantly beats all older formats like WebP and even JPXL for almost all settings) > JPXL works very well for reducing the size of existing JP data without having to reencode (and lose further information) other than that it cant compete with others in lossless or lossy mode. > In my own tests (which i do alot of) at their default settings AVIF gets files to MUCH smaller sizes while still appearing visually lossless. Also about lossless: > For me a file is either 'hot' in which case I don't need great compression and just want fast decode (in which case LZ4 bitmap is unbeatable) or a file is cold, in which case I was either the deepest lossless or lossy compression. > > JPEGXL will never compete with raw or LZ4 compressed formats for speed and it's minor compression advantage for hot files is just not significant enough to make me use it. never compete with raw formats for speed? 🤔 minor compression advantage? 🤔
2022-01-28 09:25:26
Also why bring up LZ4 on a post about archiving. You probably have the time to compress it better.
Scope
2022-01-28 09:28:27
I think it means fast decoding
2022-01-28 09:29:34
However, image-specific formats can be much faster and more efficient than using LZ4 on RAW data If speed is so important, for example for textures, there are usually some hardware methods in the GPU (mobile as well), hardware compression/decompression in modern game consoles, etc.
lithium
2022-01-28 09:33:33
Probably we can use some anime, 2D drawing, manga, comic image set become a non-photo standard testset for compressor performance test? > http://www.manga109.org/en/ > and Scope lossless compare sheet
_wb_
2022-01-28 09:38:23
Good test sets are useful, very often test sets only include photos
Scope
2022-01-28 09:39:16
It is still not very convenient in terms of use > When using parts of the dataset within academic papers or videos, please note the author’s copyright notice as “© Author’s Name” and note that the work was cited from the Manga109 dataset. In addition, for use in academic papers, please cite the related papers shown below as well but probably better than nothing, especially if the quality of the images is acceptable (not some bad scans and exJpegs)
_wb_
2022-01-28 09:39:56
I am co-chairing a new jpeg AhG called GMIS, which is looking to do something related to multi-image use cases, e.g. multi-page comics
2022-01-28 09:40:36
We are now looking for test sets (i.e. sets of sets)
2022-01-28 09:43:30
Copyright notices are OK I think, just need to collect them properly. More importantly the license does need to allow any kind of use, not just non-commercial or something.
2022-01-28 09:46:08
It's most convenient if it's CC-BY or something like that
2022-01-28 09:47:25
> under the condition that it will be used for academic purposes at non-profit organizations, for research-related uses such as experiments and publishing academic papers
w
2022-01-28 09:47:41
my issue with manga109 is that it doesnt contain anything from the current moe generation
Koromaru Korüko
2022-01-28 09:47:45
wouldn't a good image, be pure raw png, comprising of 4 different core types of image. IE top right corner is say manga/cartoonistic, bottom right is fractal, top left is a photo with moderate photo distortion, bottom left is then a hi range rather abstract image.
_wb_
2022-01-28 09:47:46
That's a problem, e.g. Cloudinary and Google are not non-profit oeganizations
Koromaru Korüko
2022-01-28 09:48:24
that way with one image you can quickly reference a codecs ability to encode different forms of media, and different quality senario's
2022-01-28 09:48:53
only issue would be if its block encoding, the edges between the different sub images
Scope
2022-01-28 09:48:58
And the downloads are not freely accessible and require asking for a password (also Manga109 contains comics which are approximately 40 years old)
_wb_
2022-01-28 09:51:41
It's quite rare that a single image has such very different types of content, and it is likely that lossless encoding of the composite image will be worse than doing it as separate images.
lithium
2022-01-28 10:01:34
`lossless encoding of the composite image will be worse than doing it as separate images` What about lossy encoding? slight lossy but not mathematically lossless.
Deleted User
_wb_ I am co-chairing a new jpeg AhG called GMIS, which is looking to do something related to multi-image use cases, e.g. multi-page comics
2022-01-28 10:01:38
Nice! But can't this already be done with JXL? ^^
_wb_
2022-01-28 10:10:21
We have multi-frame/multi-layer in jxl, so it could be a potential payload codec for GMIS. GMIS is more about the metadata/container info of how the different images are related and stored with payload codecs
Scope
2022-01-28 10:28:50
Hmm, from what I could find some manga109 examples, these are mostly ex-JPEGs with typical artifacts <:SadOrange:806131742636507177>
lithium
2022-01-28 10:40:03
It's really hard keep all image on lossless format, even in 2022 still can find a lot of manga use jpg, I understand lossless is great, but I hope jxl can implement some slight lossy method for non-photo content.
w
2022-01-28 10:41:59
lossless jxl works for me
2022-01-28 10:42:24
yesterday i got more than a 60% reduction on a doujin in png
2022-01-28 10:45:25
lossless music is fine
2022-01-28 10:45:28
lossless hi res music is dumb
Scope
w yesterday i got more than a 60% reduction on a doujin in png
2022-01-28 10:49:50
Btw, what if use `-e 9 -E 3 -I 1 -g 3`, of course if the encoding time is not that important, some disadvantage of `-g 3` is that less threads will be used to decode a single image, but for browsers and manga there are usually many other images for parallel decoding Otherwise, I got better total compression for manga content with such settings
w
2022-01-28 10:50:46
i currently only have -q 100 -e 9
2022-01-28 10:51:01
and i view the images on my phone so it's at most decoding 2 images at a time
_wb_
2022-01-28 10:52:24
One regret I have is not pushing for a -g 4 or higher, the bitstream is limited to -g 3 but parallel en/decode is not useful in all use cases so it might have been better not to force a max group size of 1 megapixel
Fox Wizard
2022-01-28 10:53:05
Jxl2 when? :p
Scope
w and i view the images on my phone so it's at most decoding 2 images at a time
2022-01-28 10:53:35
I think this is also acceptable for the phone, because it's just a larger group size, so there will be less groups/tiles per image, but with enough resolution it's still fairly enough
w
2022-01-28 10:53:51
yeah i'll try it on the one from yesterday
_wb_
2022-01-28 10:53:53
There's always a tension between making the bitstream as expressive as possible (for better compression) and making it as non-expressive as possible (for faster decode)
Koromaru Korüko
w yesterday i got more than a 60% reduction on a doujin in png
2022-01-28 10:54:36
oh my
_wb_
2022-01-28 10:55:58
1 MP group size means multithreading is still going to help as much as with the default 64 kilopixel group size, if you have an image that is [nb of cores] megapixels
Scope
_wb_ One regret I have is not pushing for a -g 4 or higher, the bitstream is limited to -g 3 but parallel en/decode is not useful in all use cases so it might have been better not to force a max group size of 1 megapixel
2022-01-28 10:56:10
Yes, I also wanted to suggest such a feature when the format was not yet finalized, as I remember WebP2 also uses tiles, but they can be the size of the width of the image or something like that
_wb_
2022-01-28 10:57:21
Then again having a _guarantee_ that parallel decode can be used is nice to have
2022-01-28 10:59:15
Also puts an upper bound on the memory needs of a decoder
Scope
_wb_ 1 MP group size means multithreading is still going to help as much as with the default 64 kilopixel group size, if you have an image that is [nb of cores] megapixels
2022-01-28 11:03:13
Btw, how difficult is it to change the group size in FJXL code for the tests, I think that if the compression is not much worse, like 1-3%, then using the smallest group size and therefore increasing the number of used threads would also be good for even higher speeds or it also affects the optimization and SIMD or something else?
w yeah i'll try it on the one from yesterday
2022-01-28 11:07:56
It is also better to do the comparison on some set of images rather than just a single image, because the compression is usually better on average, but may be worse on a specific image
w
2022-01-28 11:08:38
im doing it on the 50 pages from yesterday
Scope
2022-01-28 11:10:38
Then it's good and also better if these images are not from the same manga
w
2022-01-28 11:11:10
well it's just an apples to apples comparison
_wb_
Scope Btw, how difficult is it to change the group size in FJXL code for the tests, I think that if the compression is not much worse, like 1-3%, then using the smallest group size and therefore increasing the number of used threads would also be good for even higher speeds or it also affects the optimization and SIMD or something else?
2022-01-28 11:14:24
Not very hard at all, just need to change some 256 in the code to 1024 and adjust the header that gets written
2022-01-28 11:15:18
Btw talking about manga... https://twitter.com/MichaelDBruton/status/1486741220751814656?t=zFwspQz8p27CXeAG2-kQDg&s=19
2022-01-28 11:16:16
Will be fun when I have to renew my passport
Scope
2022-01-28 11:18:22
So maybe I can make these changes in the code myself, although it might be useful to have this option in FJXL if it doesn't complicate the code too much
w
w im doing it on the 50 pages from yesterday
2022-01-28 11:18:28
in total 80984 bytes smaller, 38443379 -> 38362395
Scope
2022-01-28 11:19:06
And if without -g 3, but with other options?
_wb_
2022-01-28 11:20:30
Larger group size is not necessarily better for compression, e.g. in fjxl, the RLE can be multiple rows, and you might get longer runs with smaller groups than with large ones
2022-01-28 11:21:09
And in slow cjxl, local palettes can be better with smaller groups than with larger ones
Scope So maybe I can make these changes in the code myself, although it might be useful to have this option in FJXL if it doesn't complicate the code too much
2022-01-28 11:23:25
Should be easy to make it a compile option, probably a runtime option could be done too but not sure if that would affect performance
Scope
_wb_ Larger group size is not necessarily better for compression, e.g. in fjxl, the RLE can be multiple rows, and you might get longer runs with smaller groups than with large ones
2022-01-28 11:23:27
Yes, that's why I wanted to decrease the group size for FJXL instead of increasing it, to make more threads work and therefore faster encoding speed
_wb_
2022-01-28 11:23:48
How many cores do you have?
2022-01-28 11:24:50
Because a 1 MP image is already 16 groups with the current default group size
Scope
2022-01-28 11:24:57
There are 8 for now, but it may be possible to access up to 32 And these are just theoretical tests to compare how much compression can be worse or it does not really affect
_wb_
2022-01-28 11:27:49
Also: the palette detection and huffman code sampling is sequential, and I can't think of an effective way to avoid that for palette detection
2022-01-28 11:36:44
(one thing perhaps worth considering is doing palette detection per group and doing local palette instead of global. That would of course parallelize easily)
Scope
2022-01-28 11:42:53
Will it have a small effect on speed, outside of parallelization? Because it is also likely to be better for compression
w
Scope And if without -g 3, but with other options?
2022-01-28 11:44:32
-e 9 38443379 -e 9 -E 3 -I 1 -g 3 38362395 -e 9 -E 3 -I 1 38167988
Scope
2022-01-28 11:47:07
Hmm, yeah, `-g 3` didn't help on these sets, I had the similar thing on some of the manga sets, but overall it improved the result by like an extra 5-8%, so it really depends on the content
2022-01-28 11:48:11
But, `-E 3 -I 1` almost always helps, at the expense of some extra encoding time
_wb_
2022-01-28 12:07:09
Also decode time, for -E 3...
Scope
2022-01-28 12:57:28
However, not so much compared to only -e 9, but, yes, slow lossless modes in general are still quite slow also for decoding, especially on large images even using multithreading (which is also not enabled in Chromium engines)
lithium
2022-01-28 02:28:47
I totally agree jpeg xl lossless is great for non-photo content, 🙂 but for some use case, need use lossy method to get more compression, (high quality lossy, near-lossless, high fidelity lossy, but not mathematically lossless), In my test, av1(aomenc) DCT lossy mode and palette lossy mode on q7 s3, can get good compression for my non-photo test set and picture still look very good, but for some picture, av1 reduce too much detail and noise. jxl(cjxl) varDCT lossy mode is very great on d1.0~0.5 e8, can preserve grain,detail,noise better than av1, but I still feel too much tiny artifacts on specific area for non-photo content, and don't have auto palette mode to avoid DCT worst case. I think if jxl can preserve grain,detail,noise and preserve high contrast sharp edge clear on vardct, and have auto palette mode to avoid DCT worst case, that will be very great.
Scope
2022-01-28 02:39:40
<https://github.com/BinomialLLC/basis_universal/wiki/Release-Notes> > Except for Zstandard, all 3rd party code dependencies have been removed from the repo to simplify certification and code licensing. PNG reading/writing is now handled by new code (pvpngreader.cpp) **instead of lodepng**, Android's ASTC block unpacker is no longer required to build the encoder (we instead unpack the UASTC pixels directly to 24/32bpp pixels), and BMP loading has been temporarily removed. it is strange that there may be some law problems with lodepng and wuffs and they are no longer used (because devs aren't from the U.S.) 🤔
2022-01-28 02:40:28
Jpeg XL as well? 🤔
_wb_
2022-01-28 02:44:54
That image isn't in my default test sets, in any case.
fab
2022-01-28 03:02:51
2022-01-28 03:03:07
<@!461421345302118401> look at the files youself
2022-01-28 03:03:48
this s 7 new heusitics fom 24 janua
2022-01-28 03:03:57
i used lates build fom today
2022-01-28 03:04:20
is not cjxlng that is incomplete and nobody has compiled latest cjxlng fo me
2022-01-28 03:05:05
brotlidec.dll is missing on my compute
2022-01-28 03:05:57
this in nomal heuistics is exatcly 1 bpp
2022-01-28 03:06:06
640 kb
lithium
2022-01-28 03:11:30
I haven't find encoder quality tag Pull requests at 2022, maybe I miss something?
fab
2022-01-28 03:24:07
Yes there is an important ans improvement on 22th january
2022-01-28 03:24:24
And on 18 january jaimaika on doom9 compiled cjxlng
2022-01-28 03:24:34
That is incomplete
lithium I haven't find encoder quality tag Pull requests at 2022, maybe I miss something?
2022-01-28 03:25:53
I'll advice to refuse svt av1 0.9.0 normal
2022-01-28 03:26:12
There isnt bug fixed that it looks blocky on open movement
2022-01-28 03:26:21
More blocky than closed One
2022-01-28 03:26:53
And bitrate is like 756kb vs 1100 kb for complex HD footage
2022-01-28 03:27:02
Use latest pipeline
2022-01-28 03:27:09
On gitlab
2022-01-28 03:27:21
There is m12 idfa
2022-01-28 03:27:28
Idap
2022-01-28 03:28:04
Is a substantial change 500 Lines of code for av1
2022-01-28 03:28:17
Still It doesnt look Good perfrpmsncd wose
monad
Scope Jpeg XL as well? 🤔
2022-01-28 11:07:12
Note that "developed without Lena" is deceptively broad, as Lena was previously part of their test corpus. <https://github.com/phoboslab/qoi/issues/35#issuecomment-980522411>
190n
2022-01-28 11:11:19
is it really possible to have a codec "developed without Lena"? you're still drawing on knowledge from previous codecs that were developed with Lena
Scope
2022-01-28 11:11:30
I think they are talking about other products of their company
monad
2022-01-28 11:23:18
I guess technically so. Still ironic. 🤷‍♂️
Scope
Scope Also for the sake of interest, while reading some blogs, does JXL use only rANS? Something from FSE/tANS is not very suitable for such cases or does it not give any benefits? <https://fgiesen.wordpress.com/2015/12/21/rans-in-practice/>
2022-01-29 12:34:17
Meanwhile, in PIK there were FSE/tANS experiments/usage
2022-01-29 07:28:28
🤔 <http://cbloomrants.blogspot.com/2018/10/oodle-lossless-image.html>
2022-01-29 07:29:14
> Oodle Lossless Image is all about speed, but still achieves very high compression ratios - equaling or bettering WebP, FLIF, JPEG2000, and of course way more than PNG. > > But unlike other compressors that accept a trade-off for slower speeds, Oodle Lossless Image is still super fast - its decode speed is 5-10x faster than PNG and 200-500x faster than FLIF! It's just massively faster than anything else at these compression levels.
2022-01-29 07:30:24
> > **fgiesen** > The speedup is mostly from replacing zlib with the Oodle codecs and some high-level changes to filtering to get more parallelism. The basic architecture is very similar to PNG, i.e. apply lossless filters then hand over to a LZ backend. The filters are the standard PNG filters plus a few new ones, namely 3 different types of gradient predictors (sorely missing in stock PNG) and a parametric linear predictor (fixed-point filter coeffs are determined at encode time and stored) > Images are usually chopped into independent tiles that can then be predicted simultaneously (regular PNG filters are very serial).
2022-01-29 07:33:38
What is the parametric linear predictor, is it useful? Or does JXL have something similar or just as efficient and fast? Also about MRP (Minimum Rate Predictor) there are plenty of research papers about it, mostly for grayscale images, but currently it is not so actual?
2022-01-29 07:37:39
However, Oodle Lossless Image is not easy to test and get, although it seems to be free for those who use Unreal Engine <https://www.unrealengine.com/en-US/blog/oodle-now-free-to-use-in-unreal-engine-via-github>
2022-01-29 07:45:59
And as I wrote before, some mode for JXL with relatively good compression but very fast decompression would be very useful (I think it's possible to be faster at decoding than WebP, with the same or better compression, if consider using multithreading)
_wb_
2022-01-30 08:36:35
Yes, faster lossless decode should be possible, with some specialized paths for up to 14-bit and limited use of transforms
Scope
2022-01-31 05:31:29
On the one hand it is interesting and PNG is already a common format, but on the other hand, perhaps it would be better to spend months of work and research in some modern formats, especially the game industry is not so dependent on standardized and common formats as the Web and the using of even some custom/proprietary is quite common https://twitter.com/richgel999/status/1487961655279591427
2022-01-31 05:35:46
Although RDO can be useful for any format, but this tuning is mostly only for Deflate and PNG filters
2022-01-31 06:18:03
But still, something new for old formats is always good https://twitter.com/richgel999/status/1487963294417760256
2022-01-31 12:33:36
<:monkaMega:809252622900789269> https://twitter.com/richgel999/status/1488124880679755776
2022-01-31 01:21:37
Free <:Thonk:805904896879493180> Also, I'm not sure that using copyrighted images, photos and arts makes them free after adding a transparent background
2022-01-31 02:11:25
Yeah, but it's like, it's not us, it's users uploading copyrighted material
2022-01-31 02:24:23
I also thought about using this for tests/comparisons, but, what I see doesn't look like CC/PD images
_wb_
2022-01-31 02:54:17
it does look like they aim for CC0 originals, not sure how thorough they check for it though
Scope
2022-02-03 09:52:22
https://twitter.com/richgel999/status/1489164478113587201
2022-02-04 05:26:26
Also about suggestions from various people that JXL needs a different extension for lossless, because everyone knows that PNG is only lossless https://twitter.com/richgel999/status/1489594494748176385
_wb_
2022-02-04 06:15:29
Replied in that thread: https://twitter.com/jonsneyers/status/1489660057356804096?t=MzP7CRei1s6J-1aT42qFDw&s=19
2022-02-04 06:17:18
I don't think lossy png is a particularly good idea. Interesting maybe, to see how far it can be pushed. And there is some compatibility argument to be made: it's still the only universally supported format that does alpha.
2022-02-04 06:17:33
But any other modern codec will absolutely beat png in lossy encoding
Nova Aurora
Scope Also about suggestions from various people that JXL needs a different extension for lossless, because everyone knows that PNG is only lossless https://twitter.com/richgel999/status/1489594494748176385
2022-02-05 12:12:19
A different extension for animated could be useful in case of putting an animated jxl through an application that only supports still images, (Although I know it would just use the first frame IIRC).
Eugene Vert
2022-02-05 02:24:49
Can some kind of file extension/mime for multi-page jxl also be useful? Taking tiff as an example, it's a bit inconvenient to constantly have to switch between image and document viewer, as a few image viewers support multi-page tiff.
190n
2022-02-05 02:30:54
do you mean like an extension other than .jxl, or an extension to the format? i thought the format already supported multiple pages
Eugene Vert
2022-02-05 02:33:27
Something like '.mjxl' for multipage-jxl
190n
2022-02-05 02:34:02
well, if motion jxl becomes a thing they might want .mjxl
2022-02-05 02:34:30
but i think in general the extension is always .jxl, and perhaps document viewers could add support for jxl files whether or not they have multiple pages
w
2022-02-05 03:32:46
isn't the idea that the jxl is tagged with headers for stuff like that
diskorduser
2022-02-05 05:16:32
It's just people want to recognise jxl type without opening the file. It would be better on Linux to identify the jxl type and assign specific icon to single layer jxl and multilayer jxl. But on windows that's not possible I guess.
Eugene Vert
w isn't the idea that the jxl is tagged with headers for stuff like that
2022-02-05 05:26:55
Even with different mime type it will require OS parse not only signature, but also pretty complex ImageMetadata header and AnimationHeader bundle :(
w
2022-02-05 05:29:49
well it's not in the spec
2022-02-05 05:29:55
so you will be making an extension/your own spec
2022-02-05 05:30:11
as it always has been with jpeg etc
2022-02-05 05:31:14
it's not like your custom usage of jxl will be supported by libjxl
2022-02-05 05:32:19
and file extensions are just file extensions
2022-02-05 05:32:39
your program and os better well be reading the headers
190n
2022-02-05 05:32:42
oh is multipage not in the spec? i thought it might be
w
2022-02-05 05:33:00
idk about multi pages
2022-02-05 05:33:05
i think there's layers
The_Decryptor
2022-02-05 05:51:29
I think the layers serve dual purpose, either for animaiton or for blending (e.g. modular patch layer over a vardct layer)
w
2022-02-05 05:52:02
animation frames can be used for pages
Eugene Vert
2022-02-05 05:55:27
As I understood, have_animation: false && multiple frames => layers have_animation: true && multiple frames => animation have_animation: true && multiple frames && max frame duration => multipage
w
2022-02-05 05:56:46
that mainly sounds like an implementation specific kind of thing
2022-02-05 05:56:53
since it's not like my windows photos will support multiple pages
Koromaru Korüko
diskorduser It's just people want to recognise jxl type without opening the file. It would be better on Linux to identify the jxl type and assign specific icon to single layer jxl and multilayer jxl. But on windows that's not possible I guess.
2022-02-05 06:03:32
I mean, for that we just have 3 extensions that are all functionally the same. .ijxl .ajxl .mjxl image jxl, animated jxl, motion jxl. along with just standard jxl. all functionally the same, just with different extensions. the issue with that would then be, someone without relative know how wants to restrict say, animated jxls then you have the issue of them making a poor implementation, just restricting the extension of ajxl.
2022-02-05 06:04:08
so yes, it would be nice to have windows properly display icons for all the different types. but realistically it won't really serve any benefit.
2022-02-05 06:05:02
ontop of that, this can be something implemented by the user and not the standard. as it has 0 impact on decoding and encoding
w
2022-02-05 06:05:26
i recognize the jxl type by looking at the filename containing the extension .jxl
Koromaru Korüko
2022-02-05 06:05:35
as you should
2022-02-05 06:06:13
currently my method of file detection is checking it against all supported magic numbers. then just returning a generic file not supported error for anything not found.
w
2022-02-05 06:06:44
if there's no extension on an image, i drag the file into firefox to see if it opens
Koromaru Korüko
2022-02-05 06:06:50
||APNG IS A FUCKING BITCH||
2022-02-05 06:07:36
na, i use it for an image board. so extensions that I support but need special handling, that have 0 magic numbers are ... anoying
VEG
diskorduser It's just people want to recognise jxl type without opening the file. It would be better on Linux to identify the jxl type and assign specific icon to single layer jxl and multilayer jxl. But on windows that's not possible I guess.
2022-02-05 09:22:12
On Windows, shell extensions allow to show icons depending on file contents. For example, Visual Studio solution files show their Visual Studio version on icon, even though the file extension is always the same.
2022-02-05 09:26:10
monad
Eugene Vert As I understood, have_animation: false && multiple frames => layers have_animation: true && multiple frames => animation have_animation: true && multiple frames && max frame duration => multipage
2022-02-05 09:29:26
Animations can include series of zero-duration frames, which I'd guess is indistinct from "layers" here. Max frame duration to signal "pages" was just a suggested convention.
VEG
2022-02-05 09:35:07
Telegram implemented animated video stickers based on VP9 with alpha channel somehow 🤔
2022-02-05 09:35:39
https://telegram.org/blog/video-stickers-better-reactions
2022-02-05 09:36:09
APNG is used for the same purpose by Steam and iMessage
2022-02-05 09:36:21
But I guess VP9 must be more effective
2022-02-05 09:43:13
Yeah, it's just webm files with alpha channel. Didn't know that VP9 supports alpha channel. Cool.
DZgas Ж
VEG Telegram implemented animated video stickers based on VP9 with alpha channel somehow 🤔
2022-02-05 12:10:12
it's funny because VP9 Profile 1 is NOT supported anywhere as hardware decoding
2022-02-05 12:10:55
it just lags on my smartphone 2018
2022-02-05 12:13:30
remains only to wait for the support of AV1 and then we will gread live
2022-02-05 12:15:25
although without hardware support we have only reached the Power to play 1080p HEVC....2013
2022-02-05 12:17:55
telegram supports HEVC for a long time but I encode it only with the FASTDECODE key and level 3.1 (720p 30fps max or 540p 60 fps max) because otherwise Most smartphones Won’t Play it
2022-02-05 12:19:58
how to optimize av1 This is problem the world is not ready
VEG
DZgas Ж it just lags on my smartphone 2018
2022-02-05 01:01:58
It works perfectly fine on my old 2014 PC, but yeah, it is a bit slower than expected on a smartphone
2022-02-05 01:02:14
Probably, just bad implementation, and it can be optimized?
DZgas Ж
VEG Probably, just bad implementation, and it can be optimized?
2022-02-05 01:08:24
no
2022-02-05 01:08:51
single videos work well
diskorduser
2022-02-05 01:09:05
It should be okay for stickers. Lower resolution
DZgas Ж
2022-02-05 01:09:52
but when the total videos play exceeds 2 megapixels, problems begin
2022-02-05 01:10:42
a lot of stickers and gifs, for a telegram this is a maximum of 8 stickers at a time
2022-02-05 01:11:49
it would be better if the size of the stickers was not 512 but 256 pixels
2022-02-05 01:13:42
probably the decision was also made because in the VP9 codec size 512 is the minimum size at which two-theard encode and decode is possible
diskorduser
DZgas Ж telegram supports HEVC for a long time but I encode it only with the FASTDECODE key and level 3.1 (720p 30fps max or 540p 60 fps max) because otherwise Most smartphones Won’t Play it
2022-02-05 01:14:26
Does tg avoid re encoding when sending level 3.1 hevc videos ?
DZgas Ж
2022-02-05 01:15:16
telegram does not change original videos at all
2022-02-05 01:16:05
only if you're on a smartphone can you compress your gigantic videos quickly
2022-02-05 01:16:28
low quality
diskorduser
2022-02-05 01:16:34
So you mean, it doesn't transcode on tg desktop
DZgas Ж
diskorduser So you mean, it doesn't transcode on tg desktop
2022-02-05 01:16:59
doesn't transcode on all tg
2022-02-05 01:18:25
I want to say that VP9 is a terrible format that works well exclusively on YouTube
diskorduser
2022-02-05 01:19:01
But when I send videos on telegram on smartphone, it re encodes the file to x264.
DZgas Ж
DZgas Ж I want to say that VP9 is a terrible format that works well exclusively on YouTube
2022-02-05 01:19:25
the main problem is multi-threaded coding
diskorduser But when I send videos on telegram on smartphone, it re encodes the file to x264.
2022-02-05 01:19:52
what video are you sending?
diskorduser
2022-02-05 01:20:26
Any vp9 and x265
DZgas Ж
diskorduser But when I send videos on telegram on smartphone, it re encodes the file to x264.
2022-02-05 01:20:52
if your video weighs a lot, it sets the default setting for its compression, because no one wants to download 200 megabytes for 10 seconds of 4k video from a smartphone
diskorduser Any vp9 and x265
2022-02-05 01:22:03
vp9 is of course not supported, but hevc... is actually a smart solution, because my smartphone will not be able to play 1080p 60 fps
2022-02-05 01:22:44
but compressing in hevc is too expensive even with not the most minimal parameters
diskorduser
2022-02-05 01:22:54
Your phone doesn't have vp9 hw decode?
DZgas Ж
diskorduser Your phone doesn't have vp9 hw decode?
2022-02-05 01:23:10
my have
2022-02-05 01:23:26
telegram have not
w
2022-02-05 01:25:36
DZgas Ж
2022-02-05 01:25:52
<:Android:806136610642853898>
diskorduser
2022-02-05 01:25:57
⁉️
w
2022-02-05 01:26:23
i dont get it
DZgas Ж
2022-02-05 01:27:18
I wonder if there will animated AVIF (just av1 non-sound)
w
2022-02-05 01:27:52
dont you mean
2022-02-05 01:27:54
just av1 without sound
DZgas Ж
2022-02-05 01:28:26
but like gif
2022-02-05 01:28:49
finally 0 kb gifs
w
2022-02-05 01:29:04
what makes gif different from a video
DZgas Ж
2022-02-05 01:29:12
sound
2022-02-05 01:29:18
a
w
2022-02-05 01:29:24
sound is completely separate
DZgas Ж
2022-02-05 01:29:29
gif is video
2022-02-05 01:29:38
today
2022-02-05 01:30:17
in telegram any video without sound is a gif (10 mb max)
diskorduser
DZgas Ж in telegram any video without sound is a gif (10 mb max)
2022-02-05 01:44:42
🤔🤔🤔
2022-02-05 01:45:24
I just sent one video without audio. It didn't convert to gif.
Scope
2022-02-05 01:50:59
Maybe it's just a naming, a lot of image hosting sites and even in Discord short animations are shown as GIF, but in fact it is H264 video or something like that
DZgas Ж
diskorduser I just sent one video without audio. It didn't convert to gif.
2022-02-05 02:04:55
do not convert
2022-02-05 02:05:08
gif is not .gif
Scope Maybe it's just a naming, a lot of image hosting sites and even in Discord short animations are shown as GIF, but in fact it is H264 video or something like that
2022-02-05 02:05:46
Discord is outdated.
2022-02-05 02:06:09
it still uses gif is .gif
Cool Doggo
2022-02-05 02:18:23
because it uses what you give it
DZgas Ж
Cool Doggo because it uses what you give it
2022-02-05 02:22:13
can you use mp4 without sound? no.
Koromaru Korüko
DZgas Ж can you use mp4 without sound? no.
2022-02-05 02:35:07
Discord will accept any chromium supported format with 0 conversions
2022-02-05 02:35:39
it will also support any non-chromium supported format, but will only allow you to download it, with 0 conversions
DZgas Ж
2022-02-05 02:36:20
what?
Koromaru Korüko
2022-02-05 02:38:05
discord allows anything your browser will and it will display it. discord does not do any behind the scenes conversions or transcoding. as far as Im aware discord will however compress all uploaded files internally.
2022-02-05 02:39:04
also gif is not in any means close to a video format.
DZgas Ж
2022-02-05 02:39:15
the Discord just can't play it as a gif, although it's a matter of one fix from the developers, just like support for any new codec like AV1 or JPEG XL It's just that the developers haven't made any innovations for many years.
Koromaru Korüko
2022-02-05 02:39:38
because they don't need to.
DZgas Ж
2022-02-05 02:39:55
i need
Koromaru Korüko
2022-02-05 02:40:02
and they dont support AV1 and JPEG XL because, its not supported on every browser
2022-02-05 02:40:17
then do the conversion yourself
DZgas Ж
Koromaru Korüko and they dont support AV1 and JPEG XL because, its not supported on every browser
2022-02-05 02:40:30
av1 now support in all
2022-02-05 02:40:40
and avif
Koromaru Korüko
2022-02-05 02:41:07
2022-02-05 02:41:10
no it isn't
DZgas Ж
Koromaru Korüko
2022-02-05 02:41:37
its no browser
Koromaru Korüko
2022-02-05 02:42:25
2022-02-05 02:42:25
again
2022-02-05 02:42:33
AV1 is not supported by every browser
2022-02-05 02:42:48
please google it yourself, if you still don't believe me.
2022-02-05 02:43:46
and this is the reason that discord like quite a few other platforms still choose to not natively support it. as it would mean writing special case scenarios just for supporting browsers.
DZgas Ж
Koromaru Korüko
2022-02-05 02:44:02
safari only
2022-02-05 02:44:05
bruh
_wb_
2022-02-05 02:44:19
Safari is also every browser on iOS
2022-02-05 02:44:46
Chrome and firefox on iOS are Safari with a skin
DZgas Ж
2022-02-05 02:44:52
It seems that discord is used on smartphones Not through a browser
Koromaru Korüko
2022-02-05 02:45:09
yes it is
2022-02-05 02:45:22
discord is ran on what is called an embedded browser container
Scope
2022-02-05 02:45:28
About the GIF, I think because it will replace stickers and Tenor (as their special feature), but, for example, this is a video (although shown as a GIF) https://discord.com/channels/794206087879852103/805007255061790730/939105391940354068
_wb_
DZgas Ж It seems that discord is used on smartphones Not through a browser
2022-02-05 02:45:36
Probably same issue though: they're going to want to rely on Apple CoreMedia for image/video rendering
Koromaru Korüko
2022-02-05 02:45:49
its in a sense the exact same as a browser, just with a few extra features on the js interface.
DZgas Ж
2022-02-05 02:46:28
this is strange because they made API for mp4-gif only with Tenor
Koromaru Korüko
2022-02-05 02:46:51
that would be something that happens on the server-side of things within tenor
Scope
Scope About the GIF, I think because it will replace stickers and Tenor (as their special feature), but, for example, this is a video (although shown as a GIF) https://discord.com/channels/794206087879852103/805007255061790730/939105391940354068
2022-02-05 02:46:54
And most likely the same reason why APNG and animated WebP features are disabled
DZgas Ж
2022-02-05 02:47:39
animated WebP is stillborn
2022-02-05 02:48:40
I have seen Microsoft use APNG on their websites
Koromaru Korüko
2022-02-05 02:49:26
thats because its practically supported everywhere
DZgas Ж
2022-02-05 02:49:34
But of course, Discord does not support it.
diskorduser
2022-02-05 02:49:52
Does discord on iOS runs on safari ?
Koromaru Korüko
2022-02-05 02:50:19
I'm pretty sure due to the nature of apng, you can just upload it as png and it will work all the same.
2022-02-05 02:50:42
the point was, that only the browser needs to support it, not the platform
Cool Doggo
2022-02-05 02:50:48
you have to open it in a browser for it to work
2022-02-05 02:50:54
doesnt work on discord
Koromaru Korüko
2022-02-05 02:51:12
that would be down to the embed container not supporting it then
DZgas Ж
2022-02-05 02:51:31
the discord app runs on "electron JS" and compiles in its own mini "browser"
Koromaru Korüko
2022-02-05 02:53:15
`discord/1.0.44 Chrome/91.0.4472.164 Electron/13.6.6`
2022-02-05 02:53:23
its Electron 13
2022-02-05 02:53:32
Electron is dated and bad
2022-02-05 02:53:37
and I hate working with it
DZgas Ж
2022-02-05 02:53:45
in theory, they could do an aggressive PR campaign by adding codecs to their application that are still missing in the browser... but they have not added absolutely anything since the very beginning of discord
Koromaru Korüko
2022-02-05 02:53:45
but no, Electron does not support APNG
2022-02-05 02:54:16
not in theory, as most of the time 1. no one cares, 2. its a lot of developmental work
Cool Doggo
2022-02-05 02:54:58
(discord's stickers are apng/png)
Koromaru Korüko
2022-02-05 02:54:58
christ the only reason i got into making the wasm interface for libjxl was so I can more easily make native jxl decoding in the browser
Scope
2022-02-05 02:56:01
As I said, this is done on purpose so as not to compete with the paid and other (like a collaboration with Tenor) functionality, not for technical or other reasons
DZgas Ж
Cool Doggo (discord's stickers are apng/png)
2022-02-05 02:57:56
hahaha yes
2022-02-05 02:57:59
https://media.discordapp.net/stickers/891173091802234920.png
2022-02-05 02:58:27
that is, the developers simply banned another apng
Scope
2022-02-05 02:59:35
Unlike, for example, AV1, because full support for such videos would require conversion to more compatible formats, which requires additional costs for servers and other things, so AV1 support is a technical reason
DZgas Ж
Scope Unlike, for example, AV1, because full support for such videos would require conversion to more compatible formats, which requires additional costs for servers and other things, so AV1 support is a technical reason
2022-02-05 03:02:36
this is not a problem, no conversion is needed, just give support for the codec, and the users themselves will use it
2022-02-05 03:03:57
everyone can't wait to compress full anime series into 8 mb for one series
2022-02-05 03:06:39
(if you have a threadripper)
Scope
2022-02-05 03:06:42
This is a very small percentage of enthusiasts who really need it, most users are more concerned about making sure everything works properly or they will be angry and spam the support about why some videos do not work
Cool Doggo
2022-02-05 03:07:23
vp9 doesnt work on ios or mac
2022-02-05 03:07:35
and they dont convert it
DZgas Ж
Scope This is a very small percentage of enthusiasts who really need it, most users are more concerned about making sure everything works properly or they will be angry and spam the support about why some videos do not work
2022-02-05 03:07:57
I think it will be easy to make an inscription that the video is not supported by the browser, but most users still sit from the application on a PC or smartphone
Scope
2022-02-05 03:09:44
VP9 is a much older format, I don't know about Discord, but Apple said they added VP9 support at least for YouTube (so theoretically it's supported)
Cool Doggo
2022-02-05 03:10:10
yes, and it doesnt work on discord
2022-02-05 03:11:45
just like hevc doesnt work on all platforms on discord, but does for some
2022-02-05 03:12:00
do they convert it to make it more compatible? no
DZgas Ж
2022-02-05 03:19:19
nobody converts anything
2022-02-05 03:20:32
keep vp9
_wb_
2022-02-05 03:21:01
Discord does downscale uploaded images (poorly btw, it ignores icc profiles and assumes everything is sRGB)
DZgas Ж
_wb_ Discord does downscale uploaded images (poorly btw, it ignores icc profiles and assumes everything is sRGB)
2022-02-05 03:22:26
yes for preview
2022-02-05 03:24:11
I would like the previews to be in avif format
Scope
2022-02-09 07:33:24
https://twitter.com/richgel999/status/1491301580766728193
2022-02-09 07:51:53
I do not think that these speeds are really needed, but I guess it is possible for JXL, something similar to LZ4 (for example LZSSE even faster and denser) or even if take some Huffman variations, they are slower by less than 2 times, which is also pretty fast Perhaps it was also worth keeping Brotli for pixel data compression as it was before, or does that not make sense when LZ77 was added? Pure Brotli isn't really effective for image/pixel data, but if using just some parts for experiments, maybe it would make sense
2022-02-09 08:20:52
Also, this is not the first time the LZ4 has been mentioned as something unbeatable in terms of speed
2022-02-09 08:22:52
Btw, I have a gigabit internet for about 10 years, but I'm still worried about the size So again two polarities, some people want maximum compression even for lossy and something like AVIF or even AI codecs is the most needed evolution of formats (even with a significant difference from the original, but if they look pleasant), others don't really care about good compression even for lossless <:Thonk:805904896879493180> https://twitter.com/richgel999/status/1491303414898528257
190n
2022-02-09 08:25:24
oh my god <:kekw:808717074305122316>
_wb_
2022-02-09 08:46:47
I think the whole spectrum from maximum compression to maximum speed is interesting and there are use cases for every trade-off
2022-02-09 08:47:50
(for lossless)
2022-02-09 08:49:13
there's also lossy where you have the extra dimension of loss/quality/distance — there too there are use cases for every trade-off
2022-02-09 08:51:17
imo, JXL covers a good chunk of the spectrum for both lossless and lossy, in the sense that it is Pareto optimal in a good chunk of the (speed,density,quality) space
2022-02-09 08:53:17
but sure there are extremes where something else will be better: if you want extreme speed (no matter the compression), something else will be better; if you want extreme lossless compression (no matter the speed), something else will be better; if you want extreme lossy compression (no matter the quality), something else will be better.
fab
2022-02-09 08:53:34
when next change in quality
_wb_
2022-02-09 08:54:35
probably after the 1.0 release there will be more time to go back to encoder improvements
Scope
2022-02-09 09:02:06
Yep, also, I think it's better to make implementations for specific use cases in a single flexible format than to integrate many different QOI-like formats just for some specific purpose (unless it's significantly better for that)
_wb_
2022-02-09 09:32:08
I guess it depends on how interoperable things need to be — if it's some internal format that is used by a game or inside some hardware, it's easier tot have application specific formats, even if they only bring marginal advantages compared to standard formats.
2022-02-09 09:33:33
But in many use cases, interoperability is very important and useful, which is why PNG and JPEG are still relevant even though there are formats that beat them in all technical aspects (but not in software support)
fab
2022-02-09 09:39:23
jpeg xl don't wok on pix 2.11 why
2022-02-09 09:41:23
avif not
Scope
2022-02-09 10:42:37
Also, even in games the existing software format has been adapted for hardware decoding instead of making a completely new one, this also helps its widespread and universality even where there is no such hardware decoder https://cbloomrants.blogspot.com/2020/09/how-oodle-kraken-and-oodle-texture.html
VEG
2022-02-09 01:05:35
I didn't get if Oodle compressors source code was released with UE source code, or it is included as a binary only?
2022-02-09 01:06:24
https://github.com/EpicGames/UnrealEngine/search?q=oodle
2022-02-09 01:07:22
There are some headers related to Oodle, but I don't see the source code of the libraries
2022-02-09 01:09:53
https://github.com/EpicGames/UnrealEngine/blob/99b6e203a15d04fc7bbbf554c421a985c1ccb8f1/Engine/Plugins/Developer/TextureFormatOodle/Source/Private/TextureFormatOodle.cpp
Scope
2022-02-09 01:11:27
There are private repositories for UE subscribers, but as far as I looked, not all Oodle compressors have source code And for example some private repo clone <https://github.com/hxhb/oodle-compression>
VEG
2022-02-09 01:12:50
https://github.com/EpicGames/UnrealEngine/ is actually public
2022-02-09 01:13:02
You just need to tie your Epic Games account to your GitHub account to get access
2022-02-09 01:13:26
https://www.unrealengine.com/en-US/ue4-on-github
Scope
2022-02-09 01:15:34
And still, Oodle Lossless Image Compression does not yet have open sources
VEG
2022-02-09 01:16:13
Yeah, would be nice if it were released
cucumber
2022-02-11 01:01:49
https://deepmind.com/blog/article/MuZeros-first-step-from-research-into-the-real-world
Scope
2022-02-11 01:51:07
https://twitter.com/richgel999/status/1492061428127342600
2022-02-11 01:58:57
But, if it is not something like RDO-PNG and completely new non-compatible codec, how will it be better than any other modern lossy format? I think from modern formats it is possible to get very high decoding speed too, if using only fast for decoding features (at least for high bpps)
_wb_
2022-02-11 02:48:05
Things like DCT and color transform can be done very fast using general-purpose very-parallel hardware like GPUs or DSPs
2022-02-11 03:36:55
Also, why do we need extremely fast lossy? There is a limit on how fast humans can process images...
Fraetor
2022-02-11 03:47:30
The main use case I can think of is computer graphics, and games especially.
_wb_
2022-02-11 05:08:51
Texture formats is not just about being fast though - encode can be slow, and decode mostly has to be something that can be done on the fly in the gpu, i.e. you need fixed block sizes
Koromaru Korüko
2022-02-11 05:55:58
I think people are thinking that if their image can decode 1ms faster, they'll somehow "feel" it
2022-02-11 05:57:13
and even then with the current state of the reference decoder, its more then fast enough for VarDCT decodes. on all my current test image ranging from 8K down to 720P its been roughly ~130ms to 50ms
2022-02-11 05:57:34
which for a webpage is fast enough at those sizes
_wb_
2022-02-11 07:43:22
Webpages nowadays are layers and layers of javascript frameworks, often taking several seconds before the browser even gets to make an image request
Koromaru Korüko
2022-02-11 07:54:35
I was more thinking for when scrolling content scenarios, where the user is loading more and more content as they scroll. then it would matter if the image takes a second or 100ms to load.
2022-02-11 07:54:53
but most users excuse the 1-2 second delay for scrolling.
w
2022-02-11 07:55:32
just turn off animations
2022-02-11 07:55:38
now browser feels super snappy
2022-02-11 07:55:45
???
diskorduser
2022-02-12 12:35:16
Without animations, everything is janky
_wb_
2022-02-12 06:00:06
https://twitter.com/jonsneyers/status/1492558805921636354?s=20&t=7lHHpdu2s7GF1GpT_oteb-cq1yc-ohFjuR8-wvpEOXw
2022-02-12 06:01:55
I'm basically saying that 8-bit YCbCr is a racist colorspace and we should all use XYB
lithium
2022-02-12 06:05:39
I think this features also work for non-photo content? > In JPEG XL, we finally got rid of the old YCbCr colorspace, and instead a new colorspace, XYB, is used, which is more accurately based on how the human system actually works. As a result, it's less likely to produce compression artifacts, also in dark tones. (10/14)
Scope
2022-02-12 06:06:48
I think non-photos usually have much more limited and artificial colors
_wb_
2022-02-12 06:09:49
XYB is also suitable for non-photo, but perhaps less so than for photo. A lot of non-photo material does get created in RGB, so there are certainly cases where it's a better idea (for compression) to stay in RGB or something close to RGB (like YCoCg).
lithium
2022-02-12 06:36:51
Probably can implement lossy varDCT YCoCg for non-photo content?
_wb_
2022-02-12 06:45:08
I think (var)DCT is only really suitable for photo and "photo-like" non-photo, like realistic paintings or renders, fps games, drawings with pencil, charcoal, chalk etc. For "really non-photographic" non-photo, like screenshots with mostly text and UI elements, logos, charts, and digital illustrations with hard edges, I think DCT is not the most effective approach. Lossless compression techniques (with lossy preprocessing, e.g. (delta)-palettization) will work better for that imo.
2022-02-12 06:47:35
We already do that for patches of text (it's encoded losslessly after doing color quantization in XYB, and subtracted from the DCT image so if the color quantization introduced some error, there's still a chance for the DCT part to fix it)
BlueSwordM
_wb_ https://twitter.com/jonsneyers/status/1492558805921636354?s=20&t=7lHHpdu2s7GF1GpT_oteb-cq1yc-ohFjuR8-wvpEOXw
2022-02-12 06:51:23
What AVIF encoder did you use for those comparisons?
2022-02-12 06:56:44
Because the difference can be kind of drastic(my own encode vs yours): https://slow.pics/c/pg6F7aE0
2022-02-12 06:57:36
Now, it still fails where I expect it fails of course.
lithium
_wb_ I think (var)DCT is only really suitable for photo and "photo-like" non-photo, like realistic paintings or renders, fps games, drawings with pencil, charcoal, chalk etc. For "really non-photographic" non-photo, like screenshots with mostly text and UI elements, logos, charts, and digital illustrations with hard edges, I think DCT is not the most effective approach. Lossless compression techniques (with lossy preprocessing, e.g. (delta)-palettization) will work better for that imo.
2022-02-12 06:58:17
So I guess delta palette will implement on next improvement for "really non-photographic" non-photo? and have heuristic to switch delta palette and varDCT? (like opus have SILK and CELT)
_wb_
BlueSwordM What AVIF encoder did you use for those comparisons?
2022-02-12 07:00:31
This one is Aurora, since I just used Cloudinary to convert to avif
2022-02-12 07:00:57
Libaom and SVT will most likely do the same thing though
lithium So I guess delta palette will implement on next improvement for "really non-photographic" non-photo? and have heuristic to switch delta palette and varDCT? (like opus have SILK and CELT)
2022-02-12 07:03:46
I'll probably just start by doing simple quantization like for text. The tricky thing is to find a way to subtract without introducing border artifacts. With text that's easy because we only detect text on solid background, so we know what the "DC" of the patch has to be
BlueSwordM
_wb_ This one is Aurora, since I just used Cloudinary to convert to avif
2022-02-12 07:03:49
Wow, I didn't think Aurora would be worse than aomenc in this scenario. I don't know if my settings are just better, but the difference is actually kind of insane.
_wb_
2022-02-12 07:04:20
Well we don't have latest version of Aurora in production, and we do use a fast encode setting
BlueSwordM
2022-02-12 07:04:50
Oh really? I see.
2022-02-12 07:04:58
That might be why then.
2022-02-12 07:05:08
It'd be lovely if I could have access to it, even if for just a month 😛
2022-02-12 07:09:01
Anyway, you make a great point JB.
2022-02-12 07:09:06
YCbCr has run its course.
lithium
_wb_ I'll probably just start by doing simple quantization like for text. The tricky thing is to find a way to subtract without introducing border artifacts. With text that's easy because we only detect text on solid background, so we know what the "DC" of the patch has to be
2022-02-12 07:09:21
I understand, Thank you for your reply, I really look forward can use jxl for non-photo content 🙂
190n
_wb_ https://twitter.com/jonsneyers/status/1492558805921636354?s=20&t=7lHHpdu2s7GF1GpT_oteb-cq1yc-ohFjuR8-wvpEOXw
2022-02-12 07:12:39
https://twitter.com/jonsneyers/status/1492558856756637696 in this one, i thought the right one was based on a different photo at first because of all the fuzziness
_wb_
BlueSwordM It'd be lovely if I could have access to it, even if for just a month 😛
2022-02-12 07:14:32
Well you can use Cloudinary to do encodes, e.g. fetch a url like res.cloudinary.com/jon/image/fetch/f_avif,q_80/https://url/to/image.png
2022-02-12 07:14:59
(or just make a free account and use your own account)
Deleted User
_wb_ (or just make a free account and use your own account)
2022-02-12 11:32:00
<@!321486891079696385> But ask someone for a ref link before you create an accout. :D
w
2022-02-13 12:51:44
i happened to be a cloudinary user before i ever heard about jxl
2022-02-13 12:52:15
but i never used the image stuff
190n
2022-02-13 12:52:59
wait what else can you use cloudinary for?
2022-02-13 12:53:18
video?
w
2022-02-13 12:53:27
i use it to serve binary assets/fonts
Scope
2022-02-13 12:01:46
https://github.com/NVIDIA/nvcomp
Jyrki Alakuijala
190n https://twitter.com/jonsneyers/status/1492558856756637696 in this one, i thought the right one was based on a different photo at first because of all the fuzziness
2022-02-16 02:29:16
Something strange happened to the cloth (different more one-dimensional texture) and to the skin (upper lip/jaw oversmoothed) in AVIF
2022-02-16 02:29:58
possible the cloth is spoiled by over-aeger directional prediction
2022-02-16 02:30:22
and skin by just too much smoothing, or controlling smoothing with too large blocks (64x64 pixels in AVIF, 8x8 pixels in JXL)
2022-02-16 02:30:52
Jon, could you show if Aurora codec can overcome those weaknesses for AVIF?
_wb_
2022-02-16 03:40:31
this _is_ Aurora
BlueSwordM
2022-02-16 03:40:38
I'd say honestly bad default settings on the encoder's part if this is aomenc.
_wb_
2022-02-16 03:42:02
aomenc at the speed we need (which I guess is s8 or s9) will be even worse
fab
2022-02-16 03:42:51
https://discord.com/channels/794206087879852103/803645746661425173/943531950939971644
2022-02-16 03:43:05
how does this image look with latest jyki pr
2022-02-16 04:02:09
Ill wait until merge
BlueSwordM
_wb_ aomenc at the speed we need (which I guess is s8 or s9) will be even worse
2022-02-16 07:48:53
You'd be surprised actually: https://slow.pics/c/iTuUCRIT Settings used: s9: `avifenc -j 16 -s 9 --min 0 --max 63 -a end-usage=q -a cq-level=28 -a tune=ssim -a color:enable-qm=1 -a color:deltaq-mode=4` s8: `avifenc -j 16 -s 8 --min 0 --max 63 -a end-usage=q -a cq-level=30 -a tune=ssim -a color:enable-qm=1 -a color:deltaq-mode=4`
fab
2022-02-16 07:50:25
hoiible quality fo me
2022-02-16 07:54:15
2022-02-16 07:54:23
2022-02-16 07:57:50
but it has contast
BlueSwordM You'd be surprised actually: https://slow.pics/c/iTuUCRIT Settings used: s9: `avifenc -j 16 -s 9 --min 0 --max 63 -a end-usage=q -a cq-level=28 -a tune=ssim -a color:enable-qm=1 -a color:deltaq-mode=4` s8: `avifenc -j 16 -s 8 --min 0 --max 63 -a end-usage=q -a cq-level=30 -a tune=ssim -a color:enable-qm=1 -a color:deltaq-mode=4`
2022-02-16 07:58:18
on what vesion do you ae
2022-02-16 07:58:20
https://ci.appveyor.com/project/louquillio/libavif/history
BlueSwordM
2022-02-16 07:58:33
Latest.
fab
2022-02-16 07:58:51
380d91a6
2022-02-16 08:00:35
to me it don't change anything
2022-02-16 08:00:40
is a month i don't see changes
2022-02-16 08:01:15
<@!321486891079696385>
2022-02-16 08:01:20
what i'm doing wong
2022-02-16 08:01:30
for %i in (C:\Users\Utente\Pictures\video\pi\a\*.jpg) do avifenc "%i" -o "%i.avif"
BlueSwordM
fab for %i in (C:\Users\Utente\Pictures\video\pi\a\*.jpg) do avifenc "%i" -o "%i.avif"
2022-02-16 08:06:42
Settings: `for %i in (C:\Users\Utente\Pictures\video\pi\a*.jpg) do avifenc "%i" -s 8 --min 0 --max 63 -a end-usage=q -a cq-level=30 -a tune=ssim -a color:enable-qm=1 -a color:deltaq-mode=4 -o "%i.avif"`
fab
2022-02-16 08:06:59
yes but with libavif it looks the same
2022-02-16 08:07:03
has same filesize
2022-02-16 08:07:23
libavif hasn't changed in a month
2022-02-16 08:07:27
fo filesize
2022-02-16 08:07:33
why
2022-02-16 08:07:53
https://ci.appveyor.com/project/louquillio/libavif/history
2022-02-16 08:07:57
i always use this
2022-02-16 08:08:05
i don't tust othee methods
2022-02-16 08:08:22
i think this is the only method
2022-02-16 08:08:29
aom is to ban
_wb_
2022-02-16 09:20:28
Enable qm and deltaq-mode 4, they should make that the default if it gives better results
2022-02-16 09:22:02
The command line options for avifenc are really not very user friendly
BlueSwordM
2022-02-16 09:22:33
Indeed. Sadly, it's obvious that JXL still curbstomps the AV1 encoders in this instance, particularly in darker high frequency areas. Even going 10-bit doesn't fix this. Even x264 and x265 struggle in this scenario: arguably more than aomenc AVIF.
_wb_
2022-02-16 09:25:08
Jyrki's theory is that the signaling for the filtering in avif is too coarse, forcing it to either smooth out detail or get artifacts, and basically it always has to do the former or else you'll see 64x64 macroblocks with different filtering
2022-02-16 09:27:41
x265 has similar behavior where you can sometimes see macroblocks that are smoothed out that become quite obvious if they are neighboring macroblocks that didn't get smoothed
2022-02-16 09:28:26
I think both have 1:64 control fields for their main filters
BlueSwordM
2022-02-16 09:29:07
How could this be fixed? Would an AC energy threshold bias work to preserve more detail in areas with lower luma higher frequency patterns at the cost of DC quantization?
_wb_
2022-02-16 09:31:08
I wouldn't take bits away from DC in avif, it's already banding a bit too much as it is imo
veluca
2022-02-16 11:01:59
my personal guess for banding in AVIF is that it's more due to too small blocks than to low DC precision
2022-02-16 11:02:57
AFAIK there's no attempt to reduce banding at all in the libaom encoder, and in some sense one could say it's even encouraged
BlueSwordM
veluca my personal guess for banding in AVIF is that it's more due to too small blocks than to low DC precision
2022-02-17 12:41:23
How are too small blocks a problem? Isn't it usually too large blocks that are the issue?
veluca
2022-02-17 12:42:17
small blocks with 0 AC are great to get lots of banding 😄
BlueSwordM
2022-02-17 01:54:55
I see. I'll take that into considerations when making my modifications.
fab
2022-02-17 08:20:46
2022-02-17 08:20:53
with commit of veluca i see shapenss
2022-02-17 08:21:15
at d 0.3 s seven
2022-02-17 08:23:54
2022-02-17 08:24:07
hthough s 8 d 0.6 theae ae evident atifacts
2022-02-17 08:33:36
2022-02-17 08:33:42
s nine d 0,6
2022-02-17 08:33:56
on pitbull ten cuidado thumbnail though it impoved
2022-02-17 08:36:47
i'll move on benchmaks
perk
2022-02-17 01:38:50
Someone make a gofundme to buy fab a keyboard with a functioning r key.
Deleted User
perk Someone make a gofundme to buy fab a keyboard with a functioning r key.
2022-02-17 01:43:50
🤯 and I always thought he is illiterate
DZgas Ж
2022-02-17 11:01:59
<:YEP:808828808127971399> i do it
2022-02-17 11:04:50
this is just one of the reasons why I was disappointed in the codec in the first month when the first decoders appeared, I started coding - and encoder print to me, the speed was 0.00032 frames per second
2022-02-17 11:09:14
this means that of the new codecs for "Normal power" people, only "EVC"(not done) remains, which is a competitor for HEVC because it is not more Compressed than AV1 or VVC, but it should be better than VP9 and HEVC at the same speeds and THE free
BlueSwordM
2022-02-22 08:12:59
https://cdn.discordapp.com/attachments/816072365698973726/945773550923567174/unknown.png
_wb_
2022-02-22 08:34:36
Yay!
BlueSwordM
_wb_ Yay!
2022-02-22 08:36:07
Now, I just want JXL support in ffmpeg 🙏
2022-02-22 08:36:18
Or rather, libavcodec.
2022-02-22 08:36:45
It would allow for much easier integration of JXL in popular programs, especially on portable Android/iOS devices.
_wb_
2022-02-22 08:53:53
Isn't there a patch for that already in the pipeline?
BlueSwordM
_wb_ Isn't there a patch for that already in the pipeline?
2022-02-22 08:58:15
Yes 🙂 Mainly worked on by Bombzen.
2022-02-22 08:58:31
I'm patiently excited of when it'll get merged 🙂
_wb_
2022-02-22 09:01:55
If we can get the fast lossless encoder integrated in libjxl, it would also make an interesting format for lossless video
BlueSwordM
2022-02-23 05:29:20
Are there any studies that test lossless WebP performance vs PNG?
2022-02-23 05:29:39
I have someone who doubts the general proficiency of lossless WebP vs PNG.
_wb_
2022-02-23 06:51:04
There's one on Google's webp page
2022-02-23 06:51:47
For 8-bit, lossless webp basically consistently beats png
2022-03-05 11:35:15
2022-03-05 11:36:38
People use "PNG" to mean "has alpha channel", like they use "GIF" for "short animation"
Fraetor
2022-03-05 12:41:59
A <:JXL:805850130203934781> file is both a PNG and a GIF. 😎
Fox Wizard
2022-03-05 12:49:03
Gif
2022-03-05 12:49:28
~~With normie logics <:KekDog:884736660376535040>~~
2022-03-05 12:50:42
Has transparency: PNG Has no transparency: JPEG Animated without audio: GIF Animated with audio: video
spider-mario
2022-03-07 05:07:22
~~video~~ MP4
2022-03-07 05:07:36
(nah I don’t know)
190n
2022-03-09 08:54:47
https://github.com/OmarShehata/jpeg-sandbox
WoofinaS
BlueSwordM I have someone who doubts the general proficiency of lossless WebP vs PNG.
2022-03-09 01:20:40
While yes, webp and jxl are *usually* better then png, there are weird cases where png (using ect) can outperform cwebp `z9` and cjxl `e9`. I've personally posted images where the only thing that beat png (ect) was cjxl `e9` and a few other high effort custom arguments. It seems stacked anime images preform particularly poor with cwebp and cjxl. I'd image jxl patches would help significantly but it does not seem to work? (Needs citation)
_wb_
2022-03-09 01:53:27
Patches work but the current encoder heuristics are limited to detecting repeated patterns in the neighborhood of 4x4 areas of single-color background.
DZgas Ж
2022-03-09 09:21:46
JXL vs WebP2 triangle preview ?
2022-03-09 09:22:10
https://chromium.googlesource.com/codecs/libwebp2/
2022-03-09 09:24:22
someone to compile a new version WEBP2 with mk_preview and without AVX instructions for windows<:Cheems:890866831047417898>
The_Decryptor
2022-03-20 02:05:06
I've seen the Nvidia screenshot overlay use it for HDR screenshots
190n
2022-03-20 04:20:54
xbox game bar on windows also produces jxr for hdr gameplay
Traneptora
2022-03-20 04:52:03
JXR?
2022-03-20 04:52:08
like Jpeg XR, the thing nobody uses?
2022-03-20 04:52:25
<:kek:857018203640561677>
Nova Aurora
2022-03-20 09:28:52
HDR. AFAIK that's all it's used for
BlueSwordM
2022-03-20 09:41:54
HDR screenshots on Windows.
Reddit • YAGPDB
2022-03-25 08:16:07
2022-03-27 04:29:37
_wb_
2022-03-28 07:24:16
Encoder bug in zlib found: https://twitter.com/taviso/status/1508438583484452866?t=LbkvbhdDvMHmFS6KOOA7YA&s=19
2022-03-28 07:35:19
Imagine how much stuff is out there that uses zlib encode
2022-03-28 07:36:10
It's probably doable to make an image that will hit that bug when encoded with libpng
2022-03-28 07:38:10
So opening such an image and saving it again as png in some editor that is using libpng for that could possibly be an attack vector
veluca
2022-03-28 07:49:59
you do seem to need a non-default configuration, so there's that
yurume
2022-03-28 08:40:41
it requires very low memLevel so I'm not as worried atm, but holy cow it is crazy to find such a bug
Reddit • YAGPDB
2022-03-29 12:59:33
improver
2022-03-29 03:31:34
epic
Traneptora
2022-03-30 03:15:23
patent-encumbered <:PauseChamp:755852977574510632>
190n
2022-04-01 06:39:48
ugh i'm still annoyed there's not a separate mime for animated avif
WoofinaS
2022-04-01 06:51:07
If you adopt Mozilla view on it there is no point in `.avifs` <:doge_kekw:852675429851987972>
190n
2022-04-01 06:52:08
i mean considering firefox has already had a bug on a major site because of this...
WoofinaS If you adopt Mozilla view on it there is no point in `.avifs` <:doge_kekw:852675429851987972>
2022-04-01 06:52:30
idc about the extension just a separate mime type so firefox can send a correct `Accept` header
WoofinaS
2022-04-01 06:53:05
I just used `.avifs` to denote animated, ik extensions don't matter
_wb_
2022-04-01 07:30:51
You don't need a separate media type, a media type can have qualifiers with more detail about what exactly is supported
2022-04-01 07:31:27
All browsers lie in their Accept headers, it's kind of annoying
2022-04-01 07:32:12
Iirc they all say they can deal with image/*
190n
2022-04-01 08:00:10
is there any standard way to do that for animated avifs?
_wb_
2022-04-01 08:42:23
Not that I know
2022-04-01 08:51:51
It's kind of annoying that you need both User Agent and Accept header to know what you can send. But at least if you do it server-side, it can still be done. If you have dumb hosting and need to rely on the picture tag, I dunno what happens if you have an animated avif with a gif fallback. Will firefox pick the avif and then show a broken image, or will it fall back to the gif when the avif decode fails?
Reddit • YAGPDB
2022-04-02 12:33:02
_wb_
2022-04-02 12:36:16
https://www.reddit.com/r/place/?cx=9&cy=711&px=28
2022-04-02 12:36:32
I added a green pixel for av1
2022-04-02 12:36:55
Can we put jxl somewhere? 😛
2022-04-02 12:59:20
2022-04-02 12:59:44
Added some more pixels for av1, it's still a mess though
2022-04-02 12:59:57
Can we change .org to .jxl?
2022-04-02 01:05:18
I guess it takes a coordinated effort to change anything there
2022-04-02 01:14:31
``` X X X X X X X XX X X XX ```
2022-04-02 01:14:57
I guess that's the smallest jxl
fab
2022-04-02 02:22:39