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

jxl

Anything JPEG XL related

veluca
2021-04-28 09:09:47
slower? yeah ... xD like 100x slower xD
Petr
_wb_ I suppose we should make a -s 10 that just adds the -E 3 -I 1 to -s 9
2021-04-29 06:56:27
And the name of that speed could be "snail".
eddie.zato
2021-04-29 07:42:41
If s9 is the "Tortoise", then s10 should be "Achilles" <:CatSmile:805382488293244929>
fab
2021-04-30 08:04:15
i'm trying avif with custom options
2021-04-30 08:06:07
2021-04-30 08:06:12
this the best i got
2021-04-30 08:06:20
quality 15
2021-04-30 08:06:32
extra chroma compression
2021-04-30 08:06:42
subsample chroma off
2021-04-30 08:06:49
sharpness 1
2021-04-30 08:06:52
noise synthesis 5
2021-04-30 08:07:01
tune for psnr
2021-04-30 08:07:04
effort 10
2021-04-30 08:08:36
avif has really improved
2021-04-30 08:11:15
https://github.com/GoogleChromeLabs/squoosh/pull/987/commits/831c27ad5ad1cac8e38b197f4cc11b2e4a1f9935
2021-04-30 08:11:24
could you find what version it is
2021-04-30 08:12:21
speed is not bad 2 minutes and 30 for a 526x526 image
2021-04-30 08:12:43
at effort 10 with only 300 geekbench only 2 threads only 1 core i3 330m 2,1 ghz 32 nm
2021-04-30 08:13:01
likely even in a phone you could get 7x 8x times faster
Pieter
fab likely even in a phone you could get 7x 8x times faster
2021-04-30 08:14:45
why? Phones are many times slower than desktop CPUs, even i3. Unless they have specialized hardware of course.
2021-04-30 08:18:42
Haha.
2021-04-30 08:19:25
If it's a pentium 3 era 300 MHz celeron, I believe you.
improver
2021-04-30 08:21:07
stronger pentium 3s went up to like 550MHz iirc
2021-04-30 08:22:26
x86 didn't actually have SIMD initially so depends on what you mean by "x86"
2021-04-30 08:22:35
and ARM have NEON too
Pieter
2021-04-30 08:22:37
Higher ILP, generally.
improver
2021-04-30 08:23:00
fatter caches, more prediction magick
Pieter
2021-04-30 08:23:34
But also, most ARM (until recently...) was targetting power minimization (per computation), not throughput.
improver
2021-04-30 08:24:32
also, more software optimizations since x86 things are more popular
Pieter
2021-04-30 08:25:02
Yeah, from what I read, Apple M1 is actually competitive with all but high-end x86 chips.
_wb_
2021-04-30 08:30:11
Single-core decode speed of jxl is between 8 and 18 MP/s (depending on encode settings) on a typical mid-range ARM phone
2021-04-30 08:30:45
On a high-end x86 single-core decode speed is 50+ MP/s
2021-04-30 08:31:58
For browsers single-core speed matters because they don't parallelize single image decoding afaik
fab
2021-04-30 08:33:20
so are you saying that geekbench is b..
2021-04-30 08:33:24
you're right
2021-04-30 08:33:34
mostly because geekbench measures also gpu
2021-04-30 08:33:45
so phones have weak cpu weak architecture
2021-04-30 08:34:28
basically what you're saying that a snapdragon 780g 765g 732g can't compete even with 32nm processor
2021-04-30 08:34:39
even if geekbench is 1900-2900 and not 300/600
_wb_
2021-04-30 08:35:18
Multi-core speeds things up by roughly 3x for 4 cores. Of course only if the cores are as fast as the main core - often on ARM you have big cores and little cores...
fab
2021-04-30 08:35:44
geekbench is stupid?
_wb_
2021-04-30 08:36:04
Main difference between ARM and x86 is that x86 has wider simd and faster floats
Pieter
2021-04-30 08:36:12
clock speed isn't the relevant metric. My phone is an 8 core, with clock speeds in range 1.8 GHz to 2.4 GHz. That's not much lower than my 16-core desktop cpu that does 3.5 GHz. But my desktop can do way more per clock cycle in terms of actual work.
fab
2021-04-30 08:36:53
so geekbench is stupid
2021-04-30 08:37:09
snapdragon serie 7 is bad
_wb_
2021-04-30 08:37:16
x86 has 256-bit or even 512-bit simd, while most ARM has only 128-bit simd
fab
2021-04-30 08:37:35
to encode anything in jpeg xl
Pieter
_wb_ x86 has 256-bit or even 512-bit simd, while most ARM has only 128-bit simd
2021-04-30 08:38:55
Hardly any common CPUs have 512-bit SIMD.
2021-04-30 08:39:38
Yeah, very uncommon afaik. AVX2 (256 bit) is pretty common.
fab so geekbench is stupid
2021-04-30 08:40:16
why?
fab
2021-04-30 08:40:35
like is more like a gpu tool for phones
2021-04-30 08:41:06
likely it won't do 5,6 mpx of encoding squirrell
2021-04-30 08:41:27
also phones can't use all eight cores normally
2021-04-30 08:41:29
as sipa said
2021-04-30 08:41:44
maybe only in games
Pieter
2021-04-30 08:41:55
Ah yes, GPU speeds of mobile phones are often relatively powerful compared to their CPU.
fab
2021-04-30 08:42:02
do you have experience in that
2021-04-30 08:42:21
to me i guess i need 8 gb of ram
190n
2021-04-30 08:42:25
only consumer cpus with avx512 are (ice|tiger|rocket) lake. intel server (and maaaaybe workstation?) cpus have had it for a bit but amd doesn't have it at all.
fab
2021-04-30 08:42:30
because anyway it would be less
2021-04-30 08:42:39
how many ram has your phone
2021-04-30 08:42:45
plus how really it is
2021-04-30 08:42:55
like if you have a 6 gb ram phone android
2021-04-30 08:42:59
what is really true
2021-04-30 08:43:04
5,5/3,0
2021-04-30 08:43:10
or even less
Pieter
fab how many ram has your phone
2021-04-30 08:43:28
mine has 6 GiB, apparently
fab
2021-04-30 08:43:36
6 gb really
2021-04-30 08:43:40
check task manager
2021-04-30 08:43:45
how is the max
2021-04-30 08:43:49
5,4 gb?
190n
2021-04-30 08:44:52
mine (oneplus 6) says 5.9 GB with 4.1 GB used
fab
2021-04-30 08:44:56
i know i model specify
Pieter
2021-04-30 08:45:01
I don't know where I can see that.
fab
190n mine (oneplus 6) says 5.9 GB with 4.1 GB used
2021-04-30 08:45:04
with all closed?
_wb_
2021-04-30 08:45:05
Just 256 bs 128 bit simd does make a difference
190n
fab with all closed?
2021-04-30 08:45:13
nah lots of stuff open
Pieter I don't know where I can see that.
2021-04-30 08:45:18
developer settings
fab
190n nah lots of stuff open
2021-04-30 08:45:26
did you bought the 6 gb ram model
2021-04-30 08:45:30
or the 8 gb ram model
2021-04-30 08:45:33
190n
190n
2021-04-30 08:45:40
6gb
fab
2021-04-30 08:45:54
you're lucky 5,9 gb of 6
2021-04-30 08:46:00
do anyone have less
2021-04-30 08:46:13
more than 0,1 difference
Pieter
2021-04-30 08:46:20
4.5 out of 5.7 GB used
190n
2021-04-30 08:46:25
htop reports 3.43/5.50 GB used <:Thonk:805904896879493180>
fab
2021-04-30 08:46:35
with all closed how is
190n
2021-04-30 08:46:43
that was with all closed except termux
fab
2021-04-30 08:46:52
all multitasking closed
190n
2021-04-30 08:46:54
yeah
fab
2021-04-30 08:47:01
thanks
190n
2021-04-30 08:47:12
evidently there's still a ton of shit going on in the background tho <:kekw:808717074305122316>
fab
2021-04-30 08:47:19
so android 10 uses 3 gb at least
2021-04-30 08:47:31
6 gb ram is not that much
2021-04-30 08:47:50
to have 200 mb free for decode a 12 mpx jxl image
2021-04-30 08:48:10
i'm curious what dev think
2021-04-30 08:48:21
if there are any improvements
190n
2021-04-30 08:48:34
a lot of the ram that's used could probably be freed if it had to be
2021-04-30 08:48:54
android has lots of java which is garbage collected
2021-04-30 08:49:00
and various processes probably keep stuff in cache
2021-04-30 08:49:13
remember unused ram is wasted ram
Pieter
2021-04-30 08:49:37
android especially is designed to let the OS kill apps at will and revive them later based on memory pressure
fab
2021-04-30 08:49:53
my galaxy s4 don't do that
2021-04-30 08:49:56
it simply reboot
2021-04-30 08:50:02
and sometimes it don't do even that
2021-04-30 08:50:12
because is too old as android v?
2021-04-30 08:51:23
the behaviour of killing apps on samsung phones when it was introduced
2021-04-30 08:51:32
from android 6.0 and up?
Pieter android especially is designed to let the OS kill apps at will and revive them later based on memory pressure
2021-04-30 08:52:07
ah ok i understood
Pieter
2021-04-30 08:52:08
iirc from the statt
2021-04-30 08:52:26
like android 2.x had that, if i remember correctly
2021-04-30 08:52:37
you generally don't notice
fab
2021-04-30 08:52:44
but when is the way is now
Pieter
2021-04-30 08:52:52
they don't disappear from the list of running apps
fab
2021-04-30 08:53:02
like it changes every version of android?
2021-04-30 08:53:11
but when in a xiaomi it was the way is now?
Pieter
2021-04-30 08:53:18
i have no clue
2021-04-30 08:53:36
there are probably often tweaks to this
fab
2021-04-30 08:53:42
like from a galaxy s4 when it improved
2021-04-30 08:53:48
and become standardized
diskorduser
2021-04-30 08:53:48
Stock Android keeps many apps in memory but miui don't
fab
2021-04-30 08:55:26
ok offrtopic
2021-04-30 10:53:06
jpeg xl will get good at -s 9 -d 2.21
2021-04-30 10:53:26
will have good performance at -d 0.5 -s 9 -d 2.21
2021-04-30 10:55:41
and up to -s 8 -d 4.45
2021-04-30 10:56:00
i try to predict the future
2021-04-30 10:57:59
now the safe value is up to d 1.261 custom settings s9 and -s 6 -d 2.3 stock
2021-04-30 11:09:34
this would convince users to compress more; unfortunately
2021-04-30 11:14:06
2021-04-30 11:14:17
also this image is black on original
2021-04-30 11:14:20
yellow on xnview
2021-04-30 11:14:21
why
2021-04-30 11:14:54
this is the jildo image
2021-04-30 11:14:55
https://discord.com/channels/794206087879852103/824000991891554375/837601278531207198
2021-04-30 11:15:55
nomacs and imageglass display it well
2021-04-30 11:16:23
2021-04-30 11:16:37
should someone reproduce the issue?
2021-04-30 11:16:53
there is the jxl art link surma technology
_wb_
2021-04-30 11:38:05
I suppose the bitdepth 12 is not properly handled in xnview?
BlueSwordM
Pieter why? Phones are many times slower than desktop CPUs, even i3. Unless they have specialized hardware of course.
2021-04-30 02:43:45
I would not be so sure.
2021-04-30 02:43:57
Modern phone SOCs are quite strong.
Crixis
2021-04-30 03:24:38
2021-04-30 03:27:12
seam the best cpu android is similiar to i7 laptop or i5 desktop
2021-04-30 03:28:00
https://www.cpubenchmark.net/cross-platform.html
sklwmp
2021-04-30 06:33:00
this is definitely readable
spider-mario
2021-04-30 06:40:11
it actually kind of is if you click โ€œOpen originalโ€
2021-04-30 06:40:27
but yeah, best to open the link anyway
sklwmp
spider-mario it actually kind of is if you click โ€œOpen originalโ€
2021-04-30 06:52:51
Oh
2021-04-30 06:52:54
yeah good point
_wb_
2021-05-01 05:35:20
Ugh annoying - is there a way to use openexr with both the latest and an older openexr? Will we need to explicitly check the openexr version or what?
Pieter
2021-05-01 05:37:17
welcome to the wonderful world of dependencies
_wb_
2021-05-01 05:50:43
It's just a bit silly that they have to break things for this
2021-05-01 05:55:36
Well you can build without exr support of course
2021-05-01 05:56:52
Not if it's already compiled, afaik
2021-05-01 05:58:20
The annoying thing is they replaced a uint64_t with a uin64_t in a way that breaks compilation
spider-mario
2021-05-01 07:54:11
Luca suggested that we use something like `using Int64 = decltype(OpenEXR::โ€ฆ)`
2021-05-01 07:54:21
which I think should work
veluca
2021-05-01 11:19:43
yeah, or ``` decltype(baseclass::tellg()) tellg() override { return pos_; } ```
2021-05-01 11:19:54
or something like that
2021-05-01 11:19:57
kinda hacky, but...
improver
2021-05-01 02:46:15
random question: why theres no global pallette support? it was probably discussed but I can't remember. do apng and webp support global pallette stuff or that was only gif?
_wb_
2021-05-01 03:16:55
Frames are quite independent things in jxl, besides blending / patches / dcframe there is no dependency between frames.
2021-05-01 03:17:34
Palette is a transform in the modular sub-bitstream, not some kind of metadata property of the image
2021-05-01 03:17:50
Conceptually it is just a coding tool
Deleted User
_wb_ Palette is a transform in the modular sub-bitstream, not some kind of metadata property of the image
2021-05-01 04:18:36
<@!260412131034267649> I hope you'll find this discussion useful, at first I also was confused about palettes in JXL. https://discord.com/channels/794206087879852103/794206170445119489/827533448318418945
_wb_
2021-05-02 07:37:30
You mean lossless or lossy?
2021-05-02 07:38:14
Lossy encoding has been quite well-optimized for speed
2021-05-02 07:38:20
Lossless not so much
2021-05-02 07:41:03
There are quite a few things in the encoder for lossless that haven't been parallelized yet
2021-05-02 07:43:56
For this image, -s 3 is probably quite bad, but that kind of speed gives an indication of how fast it could be (and it could be faster than that too if needed)
2021-05-02 07:47:15
This size limit, the limit to 8-bit, the obligatory 4:2:0 in lossy mode, and no progressive decode are the 4 things where webp is not just strictly better than the formats it aimed to replace (JPEG and PNG)
2021-05-02 07:48:52
If you want to replace an existing format, you need to be as good on all fronts and strictly better on enough fronts. Otherwise there will still be reasons to use the old thing.
2021-05-02 07:49:17
This happened when PNG attempted to replace GIF (no animation support kept GIF alive)
2021-05-02 07:50:21
This happened when J2K attempted to replace JPEG (speed being significantly slower being the main issue there at the time)
2021-05-02 07:51:31
Yes
2021-05-02 07:54:35
Well GIF has the advantage of being supported by anything that exists, being 32 years old.
2021-05-02 07:55:44
Most things that support APNG will also support a video codec, which is much better for animation on the web than intra-only approaches like gif/apng/awebp.
Pieter
_wb_ Most things that support APNG will also support a video codec, which is much better for animation on the web than intra-only approaches like gif/apng/awebp.
2021-05-02 07:58:50
or animated JPEG-XL...
_wb_
2021-05-02 08:00:43
Yes
2021-05-02 08:04:15
I think animated jxl is only good for things like a photo with a blinking text overlay (ugh), a slideshow of different images, an animated geographic map, or things like that. For anything with 'natural' movement, video codecs will be better.
190n
2021-05-02 08:04:26
depends on the codec used in the mp4 but probably not. if the codec is hevc or av1, and the frames in question are intra frames, you could extract them as heic or avif.
2021-05-02 08:04:39
oh sorry part of the video
2021-05-02 08:05:10
yeah you can trim without recompression. `ffmpeg -ss start_time -i input_file -to end_time -c copy out_file`
_wb_
2021-05-02 08:05:12
You can generally trim a video as long as you start from a keyframe
190n
2021-05-02 08:06:36
if you don't start from a keyframe, you can still sorta trim it, but the resulting file includes the keyframe and any more frames before where you actually want it to start. those get decoded but not displayed until it reaches where you wanted it to actually start
_wb_
2021-05-02 08:07:13
Yes, that's what I meant
2021-05-02 08:07:31
(you still start from a keyframe then)
spider-mario
190n if you don't start from a keyframe, you can still sorta trim it, but the resulting file includes the keyframe and any more frames before where you actually want it to start. those get decoded but not displayed until it reaches where you wanted it to actually start
2021-05-02 09:57:58
do common containers actually support doing this, with good software support?
2021-05-02 09:58:08
I think I have encountered random audio desynchronization in the past when doing that
2021-05-02 09:58:58
the video and audio were in sync when the file was played in mpv but not when sent via WhatsApp, or something like that
2021-05-02 09:59:01
I donโ€™t remember exactly
2021-05-02 09:59:54
well, maybe having to trim lossy audio is an added complication
2021-05-02 10:00:02
I suppose you canโ€™t just trim that at arbitrary points either
Deleted User
2021-05-02 12:19:26
Yeah, I trimmed once on a non-keyframe and the only platform it worked on without issues was Messenger... because FB is recompressing videos anyway <:kekw:808717074305122316> Everywhere else? Problems. Only VLC plays that thing properly, from a good starting point and with audio in sync.
monad
2021-05-02 01:06:00
I trim a lot of videos and have yet to find a satisfactory app for playback. VLC can have a particularly choppy start, Firefox a somewhat choppy end, and mpv can omit starting sound (I guess before start_time in the command 190n posted).
BlueSwordM
2021-05-02 05:30:55
I'm actually surprised.
2021-05-02 05:31:15
On the full image with default settings(other than lossless) on a 3700X, I get this: ```real 0m23.996s user 0m33.887s sys 0m1.246s ```
2021-05-02 05:31:41
That's quite the large difference vs 2.36 minutes ๐Ÿค”
_wb_
2021-05-02 05:40:35
Maybe not a build with full simd?
BlueSwordM
2021-05-02 05:41:59
That is always a possibility.
_wb_
2021-05-02 05:42:15
Not that that should make much difference for lossless, not a lot of simd there
2021-05-02 05:43:08
Same image? Same cjxl version?
BlueSwordM
2021-05-02 05:43:49
Same image, but it's likely that we do not have the same version.
_wb_
2021-05-02 05:45:08
Nothing funny like swapping to disk or something?
BlueSwordM
_wb_ Nothing funny like swapping to disk or something?
2021-05-02 05:47:02
With the encoding process consuming 2,8GB at S9 with the image he linked, that is possible.
Jim
2021-05-02 05:55:32
Not sure what settings you are using. Here is default lossy: ``` J P E G \/ | /\ |_ e n c o d e r [v0.3.7 | SIMD supported: AVX2] Read 1271x16384 image, 54.9 MP/s Encoding [VarDCT, d1.000, squirrel], 4 threads. Compressed to 2358233 bytes (0.906 bpp). 1271 x 16384, 3.71 MP/s [3.71, 3.71], 1 reps, 4 threads. 00:00:06.0900956 ```
2021-05-02 05:55:49
Modular: ``` J P E G \/ | /\ |_ e n c o d e r [v0.3.7 | SIMD supported: AVX2] Read 1271x16384 image, 55.1 MP/s Encoding [Modular, lossless, squirrel], 4 threads. Compressed to 3803557 bytes (1.461 bpp). 1271 x 16384, 0.77 MP/s [0.77, 0.77], 1 reps, 4 threads. 00:00:27.3445915 ```
BlueSwordM That's quite the large difference vs 2.36 minutes ๐Ÿค”
2021-05-02 06:34:20
Probably running `-s 8`. At that setting it took a little over a minute.
monad
2021-05-02 07:10:48
I figure the main point was the relative speed advantage of WebP. Notice WebP takes about 1/5th the time JXL takes. My system also runs faster than Hoshino_8869453's, but the relative difference remains about the same (8s user/real time for WebP, 42.7s user/33.3s real time for JXL).
2021-05-02 07:14:09
Since there is discussion about settings, I interpreted default lossless to mean just `-d 0 -s 7`.
_wb_
2021-05-02 07:32:25
If you want to make such comparisons, better to try all speed settings of cjxl and all speed settings of cwebp
2021-05-02 07:32:52
And then compare both density and speed
2021-05-02 07:33:36
I saw a plot with results like that, forgot who made it though
Scientia
2021-05-02 07:34:44
maybe a script for it
monad
2021-05-02 07:34:49
It clearly isn't comprehensive, but comparing default settings seems fair enough.
2021-05-02 07:35:20
They are default for a reason.
2021-05-02 07:39:35
To clarify, when I said 'speed advantage of WebP', I didn't mean to suggest cwebp was faster than cjxl in all (or even most) permutations of settings and input. Just this case of default setting on this image.
Scientia
2021-05-02 07:41:54
What CPU do you use?
monad
2021-05-02 07:42:54
Me? i5-4670
Scientia
2021-05-02 07:45:16
It may be a threading issue
monad
2021-05-02 07:46:14
How might I investigate that?
Scientia
2021-05-02 07:49:02
I'm just talking about you know, a 4 core 4 thread processor from 2013 maybe being worse at threading than a 6 or 8 core 12/16 thread processor from 2017-present
monad
2021-05-02 07:57:24
As far as I've seen, cjxl modular encode is mostly single-core bound. And cwebp seems entirely single-core bound. I guess you're suggesting add more threads and cjxl's speed will increase relative to fewer threads, but I imagine it would never beat cwebp on this test assuming they're run on the same machine.
_wb_
2021-05-02 07:58:35
Modular at -s 3 should parallelize well
2021-05-02 07:59:35
Default and slower speeds are for modular bottlenecked by encoder things (mostly tree learning) that aren't parallelized yet
2021-05-02 08:01:42
It's probably a bit early to do encode speed comparisons for modular, since it is not yet fully optimized
2021-05-02 08:02:04
Even the decode side of it hasn't been completely optimized yet
raysar
2021-05-03 12:26:30
For people who don't know, **avidemux** can cut vidรฉo easily, h264 h265 vp9 (avi mp4 mkv) without reencoding. Limitation is to cut to i-frame. (ffmpeg can do better but in comand line)
monad
_wb_ If you want to make such comparisons, better to try all speed settings of cjxl and all speed settings of cwebp
2021-05-03 02:42:57
FWIW:
Scientia
2021-05-03 02:56:50
Try -s 9 -E 3 <:megapog:816773962884972565>
2021-05-03 02:59:29
This will take much longer than -s 9
2021-05-03 02:59:40
But it's much better at compression
monad
2021-05-03 03:04:00
I might not have enough RAM, I only have 8 GB.
Scientia
2021-05-03 03:11:02
that may be true idk ( :
monad
2021-05-03 03:12:17
It might not scale up too much with just `-E 3`, but `-E 3 -I 1` can scale up significantly.
Scientia
2021-05-03 03:13:05
I was under the impression `-I 1` was of little significance to compression
2021-05-03 03:13:11
like that it gave improvements
2021-05-03 03:13:24
but that they were nowhere as drastic as `-E 3`
monad
2021-05-03 03:14:51
That may be generally true. Depends on the content to some extent. `-s 8` and `-s 9` can compress worse than `-s 7` on certain kinds of content.
Scientia
2021-05-03 03:16:40
even in modular?
monad
2021-05-03 03:16:45
Yes.
2021-05-03 03:18:58
I saw that specifically on scans of anime style art.
Scientia
2021-05-03 03:26:53
<:monkaMega:809252622900789269> just compressed a lot of line art diagrams with `-d 0 -s 9 -E 3`
2021-05-03 03:27:07
i wonder if I got bad compression
_wb_
monad FWIW:
2021-05-03 05:26:22
This kind of comparison is interesting. Some things are quite image-dependent so it might be worthwhile to try multiple images (and also maybe to show real time too)
2021-05-03 05:28:18
Such a comparison could also be done for lossy, but there it would be time, size, and perceptual metric result.
monad
2021-05-03 05:28:46
Real time is represented in the table.
_wb_
2021-05-03 05:44:34
WebP is hardcoded for 8-bit RGBA
2021-05-03 05:44:51
jxl is not
2021-05-03 05:45:27
That means the encoder (currently) uses 32-bit per sample, not per pixel
monad
2021-05-03 05:45:46
In case it's not clear, this is maximum memory.
_wb_
2021-05-03 05:46:49
This is avoidable but not so easy code-wise (could make specialized code paths that work on 16-bit instead of 32-bit buffers, for example)
2021-05-03 05:53:18
If we implement such optimizations, yes.
Crixis
2021-05-03 06:26:37
Jpeg xl standard setting are for general use, webp standard settings are for web use, I don't tink is fair go for "standard vs standard"
2021-05-03 06:28:21
Jpeg xl lossy misure the distance from the original in the encoding, is very safe
lithium
2021-05-03 06:48:53
jpeg xl lossy on photographic image is great, but on specific non-photographic image have some issue, some time standard setting is not enough keep high fidelity.
Scientia
2021-05-03 06:52:30
i'm sure the encoder can be tweaked in the future to alleviate this
Crixis
2021-05-03 06:55:18
probably is the distance metric that need some tweaks on not-photographic content
spider-mario
2021-05-03 10:48:00
FYI the next sync should have this fix
2021-05-03 10:48:30
(the EXR one)
Deleted User
2021-05-03 12:37:19
Is edge preserving filter used in Modular? (Probably not, but I'd like to make sure.)
_wb_
2021-05-03 01:31:10
not by default, but the bitstream does allow it
Deleted User
2021-05-03 02:26:24
Can current encoder do it?
_wb_
2021-05-03 02:38:33
Not sure, does it do anything when you manually set epf with modular?
veluca
2021-05-03 02:43:37
it should do it yes
lithium
Crixis probably is the distance metric that need some tweaks on not-photographic content
2021-05-03 02:57:15
About vardct non-photographic image improvement statu, i can't find too much information about this, maybe i miss something important information?
Crixis
lithium About vardct non-photographic image improvement statu, i can't find too much information about this, maybe i miss something important information?
2021-05-03 03:36:36
I don't have any news
lithium
Crixis I don't have any news
2021-05-03 04:02:13
ok, I understand, just hope can get some good news ๐Ÿ™‚
Scientia
2021-05-03 04:53:26
the good thing i think as jon has said is the bitstream has a lot of flexability so a lot of heuristics etc can be added to the encoder to improve image quality and possibly size.
BlueSwordM
2021-05-03 05:02:15
Indeed.
2021-05-03 05:02:33
Remember, it's only been 5 months since the standard was finalized.
2021-05-03 05:02:49
We have 10 years to get the biggest gains, and another 10 years to squeeze everything out.
Scientia
2021-05-03 05:19:19
Even with jpeg we have recent things like mozjpeg that can give us very high quality results
2021-05-03 05:20:00
For an almost 30 year old codec
Orum
2021-05-03 05:42:08
I suspect most of the 'big' gains will happen in the first 3-5 years
_wb_
2021-05-03 06:07:55
It will all depend on adoption - mozjpeg happened because jpeg is extremely widely adopted. There is no mozJ2K or mozJXR, even though for those codecs there are likely also a lot of things possible...
Nova Aurora
2021-05-03 06:11:52
so we need to get popular enough for mozJXL
Scientia
2021-05-03 06:51:54
On the right track
Pieter
2021-05-03 06:57:11
Or `cjxl` (and the library implementing its encoding logic) just has to good enough that there is no need for a MozJXL :)
Nova Aurora
2021-05-03 06:57:53
https://tenor.com/view/it-has-to-be-perfect-the-first-time-flawless-no-mistakes-perfect-seeker-gif-14552788
_wb_
2021-05-03 07:30:20
Yes, well cjxl has guetzli in its ancestry so it is indeed already much more than what e.g. the original libjpeg was: it already does significant perceptual optimization (to the point that there's not even a way to do simple "naive" quantization, it's always at least somewhat tuned for butteraugli)
2021-05-03 07:33:34
But the jxl bitstream also has way more potential than jpeg to do all kinds of advanced stuff, and there we're only scratching the surface at the moment. Things like splines, saliency progression, patches, delta palette, etc are not or only partially implemented in the encoder, basically mostly only as a kind of 'proof of concept' that it works and that it is useful, but the encoder is either not using it or very far from using the full potential of these coding tools.
Jim
2021-05-03 08:20:46
There will probably be a libjxl-turbo but possibly not mozjxl. There will probably also be dozens of other libraries based on libjxl that target some specific industry - most will likely be much slower and highly specialized.
Deleted User
2021-05-03 08:22:35
By the way: images with noise synth finally work in Chrome Canary, yaaaay!
2021-05-03 08:22:38
<:Hypers:808826266060193874>
veluca
Jim There will probably be a libjxl-turbo but possibly not mozjxl. There will probably also be dozens of other libraries based on libjxl that target some specific industry - most will likely be much slower and highly specialized.
2021-05-03 08:37:17
I'd be quite surprised if someone created a libjxl-turbo rather than sending speed improvement patches to the main libjxl...
2021-05-03 08:37:59
(I'd also be rather surprised if, say, the vardct coding path could be *significantly* sped up without making some serious compromises - such as having limited range due to integer arithmetic...)
_wb_
2021-05-03 08:51:22
libjxl is already quite turbo - at least the vardct part
Pieter
2021-05-03 08:54:38
https://www.youtube.com/watch?v=hmmIl9aMz4I
_wb_
2021-05-03 09:32:45
TURBO TURBO
2021-05-03 09:33:02
๐Ÿ”ฅ
2021-05-03 09:36:29
not sure if anyone else besides <@!799692065771749416>, <@!768090355546587137> and me can make sense of the above video (not that there's much that makes sense in it to begin with)
Fox Wizard
2021-05-03 09:45:34
Kabouter Wesley <:Poggers:805392625934663710>
Pieter
_wb_ not sure if anyone else besides <@!799692065771749416>, <@!768090355546587137> and me can make sense of the above video (not that there's much that makes sense in it to begin with)
2021-05-03 10:47:12
I'm not sure there is enough non-absurd story content for it to need understanding of the words...
Scientia
2021-05-03 10:52:59
It's pretty simple to understand the basic plot
Deleted User
veluca it should do it yes
2021-05-04 02:29:43
WOW IT ACTUALLY WORKS https://slow.pics/c/o3yFIfZ0
2021-05-04 02:30:22
Modular is still blocky, but not as much as without EPF!
2021-05-04 02:31:53
EPF 3 was way too strong and EPF 2 had extremely hard to notice differences (and only in some places) compared to EPF 1.
2021-05-04 02:32:27
Which one of them do you prefer? Vote 1 for VarDCT and 2 for Modular.
2021-05-04 02:37:38
*(yeah, I also prefer VarDCT)*
2021-05-04 02:39:42
I ran both `butteraugli_main` and `ssimulacra_main` and while ๐Ÿงˆaugli marked Modular version as better, SSIMULACRA picked VarDCT.
_wb_
2021-05-04 05:14:23
Hah, that's kind of funny that ssimulacra picks vardct and butteraugli picks modular. Are you sure it's not the other way around? (remember: lower score is better in both)
veluca
EPF 3 was way too strong and EPF 2 had extremely hard to notice differences (and only in some places) compared to EPF 1.
2021-05-04 08:31:50
In theory you can make EPF 3 less strong, but I don't know if the command line can do it
_wb_
2021-05-04 08:35:57
how is the epf strength aux image created?
2021-05-04 08:36:22
is it just a constant?
veluca
2021-05-04 08:36:35
It's a constant in modular mode, yep :D
_wb_
2021-05-04 08:36:50
and in vardct mode?
2021-05-04 08:37:07
the --epf cli option is the max but it can also go lower or something?
veluca
2021-05-04 08:38:16
No, the cli option defined the number of steps, the strength of each step is defined by a value that the encoder computes
_wb_
2021-05-04 08:39:26
wow there are more things to optionally configure in epf than what I assumed
2021-05-04 08:41:00
the strength is also signaled, right? there's a 1:8 aux image called `Sharpness` in the spec
2021-05-04 08:44:28
that aux image encodes one 3-bit value per 8x8 block in the image that is the index into `epf_sharp_lut[8]`
2021-05-04 08:44:51
(which by default is just `N/7`)
2021-05-04 08:45:36
that aux image is modular encoded so if it's all the same value it compresses to nothing
lithium
WOW IT ACTUALLY WORKS https://slow.pics/c/o3yFIfZ0
2021-05-04 08:47:16
In my test, jpeg xl 3.X(-d0.5) and libavif(q20) in high bbp and near file size(non-photographic image), maxButteraugli and P-Norm will choose vardct is better, dssim and ssimulacra will choose avif is better.
_wb_
2021-05-04 08:53:55
none of those metrics are really calibrated/validated for non-photographic images though, afaik
2021-05-04 08:55:31
ah so for the epf, looking at the code it just sets the Sharpness to all 4 at speeds faster than wombat and it has some complicated heuristic to set it to either 4 or 0 at speed wombat or slower
2021-05-04 08:56:34
but the current encoder never uses values 1,2,3,5,6,7 (I assume to reduce entropy in the signaling)
2021-05-04 08:59:04
would be funny to make a jxlart tree for the Sharpness field and see what happens if you do something like `if W > 6 - Set 0 - W 1` in combination with epf 3 on a random image ๐Ÿ™‚
2021-05-04 08:59:44
(or do a sierpinski in the Sharpness and see if you can see it)
lithium
_wb_ none of those metrics are really calibrated/validated for non-photographic images though, afaik
2021-05-04 10:15:10
Have plan for let butteraugli calibrated or validated on non-photographic images? That improvement might let vardct and av1 get much benefit.
veluca
_wb_ the strength is also signaled, right? there's a 1:8 aux image called `Sharpness` in the spec
2021-05-04 10:43:19
sharpness is not signaled in Modular mode, so...
_wb_
2021-05-04 10:58:20
Ah right, I meant in a vardct image (just some random photo, see what happens if you put a Sierpinski in the sharpness field)
fab
2021-05-04 11:20:50
ewout still hasn'0t build the new version
2021-05-04 11:20:52
04052021
lithium
2021-05-04 11:20:52
new jpeg xl authored 5 minutes ago!
2021-05-04 11:23:37
butteraugli have some change in this sync
fab
2021-05-04 11:24:11
2021-05-04 11:24:20
you can search if is true
2021-05-04 11:24:33
if you know to compile
2021-05-04 11:25:19
for images i'll start testing with screenshots or quality 77 mozjpeg photos
2021-05-04 11:25:27
if i see some changes in heuristics
2021-05-04 11:25:44
but anyway i would do
2021-05-04 11:26:15
2021-05-04 11:26:21
that with older version
2021-05-04 11:26:26
is sufficient as quality for me
2021-05-04 11:26:34
i don't need super compression
2021-05-04 11:26:46
like to me a 52 kb jpeg over 80 is worth
2021-05-04 11:27:01
i don't need 25 kb that look dusty
2021-05-04 11:27:21
also i don't need full modular search
2021-05-04 11:28:01
2021-05-04 11:28:25
anyway is not very urgent to compress jpg
2021-05-04 11:28:38
as all programs now can read lossless compressed jpgs
2021-05-04 11:28:45
even sasha plugin was uploaded
2021-05-04 11:28:59
sasha (Kagami mozilla)
_wb_
2021-05-04 11:34:13
main changes in this sync are the following afaik: - more blending was implemented, reducing the number of "not yet implemented" things in the decoder (bringing us closer to version 0.4 - fully complete, forwards-compatible decoder) - several fuzzerbug fixes (making decoder more robust against malicious inputs) - things related to the progressive decode api - some build issues fixed
fab
2021-05-04 11:34:47
Xnview is still at 0.2.98
2021-05-04 11:34:54
.0.98.2
2021-05-04 11:35:00
so it can't also 12 bit
2021-05-04 11:35:10
but you use sasha plugin
2021-05-04 11:35:26
you open by default with ImAGEGLASS
2021-05-04 11:35:35
and is good
2021-05-04 11:36:18
ok
2021-05-04 11:36:34
ah i uploaded cwp2 and dwp2 in <#805176455658733570>
2021-05-04 11:36:46
you can view hoshino command
2021-05-04 11:36:51
for echo
2021-05-04 11:37:03
(win 7,10, linux, don't know, ask him)
2021-05-04 11:37:13
now i will try
2021-05-04 11:38:22
with q 78 is not hard to get 44% file reduction
2021-05-04 11:38:31
do not know i should test more
2021-05-04 11:38:44
many have doubts because of too fast speed
Petr
2021-05-04 12:34:46
It can happen. It depends on the input image and the encoder parameters. Share them if you need detailed comments from the community.
Deleted User
_wb_ Hah, that's kind of funny that ssimulacra picks vardct and butteraugli picks modular. Are you sure it's not the other way around? (remember: lower score is better in both)
2021-05-04 12:52:29
I know that lower is better ๐Ÿ˜‰ **Butteraugli** ```VarDCT 6.7319784164 Modular 6.3625779152 (*)``` **SSIMULACRA** ```VarDCT 0.02510738 (*) Modular 0.02566513```
2021-05-04 12:58:26
*(I used the previous version of JPEG XL, before today's sync)*
_wb_
I know that lower is better ๐Ÿ˜‰ **Butteraugli** ```VarDCT 6.7319784164 Modular 6.3625779152 (*)``` **SSIMULACRA** ```VarDCT 0.02510738 (*) Modular 0.02566513```
2021-05-04 01:05:57
it's funny if you know that I made ssimulacra and most of my contributions in jxl were in modular, while the team that made butteraugli and the one that made vardct are mostly the same people ๐Ÿ™‚
Deleted User
2021-05-04 01:11:44
I was curious and re-did the tests for other EPF values. **Butteraugli** ```./butteraugli_main 1hxwd.png epf0.png 6.5329294205 3-norm: 1.852758 ./butteraugli_main 1hxwd.png epf1.png 6.3625779152 3-norm: 1.821999 ./butteraugli_main 1hxwd.png epf2.png 6.2895941734 3-norm: 1.849840 ./butteraugli_main 1hxwd.png epf3.png 8.0625114441 3-norm: 2.294456``` **SSIMULACRA** ```./ssimulacra_main 1hxwd.png epf0.png 0.02820122 ./ssimulacra_main 1hxwd.png epf1.png 0.02566513 ./ssimulacra_main 1hxwd.png epf2.png 0.02605319 ./ssimulacra_main 1hxwd.png epf3.png 0.03053731```
2021-05-04 01:14:41
Both metrics agree on the 4th place (EPF 3) and 3rd place (EPF 0), but they disagree on the 2nd and 1st place.
_wb_
2021-05-04 01:17:49
not really if you look at the 3-norm (which is probably more interesting than the maxnorm)
2021-05-04 01:18:52
it's somewhat surprising to me that epf 1/2 actually make things better than no epf - I would expect the metrics to just get worse with more epf
Deleted User
_wb_ not really if you look at the 3-norm (which is probably more interesting than the maxnorm)
2021-05-04 01:19:21
What's the difference between the "normal" ๐Ÿงˆaugli and the 3-norm?
Petr
2021-05-04 01:20:15
And the encoder parameters?
Deleted User
_wb_ it's somewhat surprising to me that epf 1/2 actually make things better than no epf - I would expect the metrics to just get worse with more epf
2021-05-04 01:21:18
EPF 0 is quite blocky in an unpleasant way since it's line-art. EPF 1 and 2 blur it just enough to remove most of the blockiness, but not too much so details don't get nuked. And EPF 3 is just... ugh. It's so overblurred that even EPF 0 is better.
_wb_
What's the difference between the "normal" ๐Ÿงˆaugli and the 3-norm?
2021-05-04 01:24:42
the first number is the maxnorm, basically the worst distortion anywhere in the image. The 3-norm is something closer to the average distortion over the whole image. Maxnorm is useful if you want to be sure that there is nothing happening like an easy background that has no artifacts but the interesting part of the image does have artifacts, but 3-norm is closer to what ssimulacra does and probably correlates better with the overall subjective quality assessment of the image.
2021-05-04 01:25:31
the simple metrics like psnr/ssim/vmaf etc are based on just the average over the whole image, so they suffer from the "easy background compensates for artifacts in the foreground" problem
2021-05-04 01:26:20
3-norm is better than just taking the average, but not as sensitive as max (inf-norm)
Deleted User
_wb_ it's somewhat surprising to me that epf 1/2 actually make things better than no epf - I would expect the metrics to just get worse with more epf
2021-05-04 01:29:27
Visual comparison between different EPF values: https://slow.pics/c/0vpzkivz
veluca
_wb_ it's somewhat surprising to me that epf 1/2 actually make things better than no epf - I would expect the metrics to just get worse with more epf
2021-05-04 01:37:26
yeah, that's a surprise for me too ๐Ÿ˜„
Deleted User
2021-05-04 01:49:27
I've just compiled the latest JPEG XL build and redone **Butteraugli**. ```./butteraugli_main 1hxwd.png epf0.png 6.5188107491 3-norm: 1.861889 ./butteraugli_main 1hxwd.png epf1.png 6.3523821831 3-norm: 1.831513 ./butteraugli_main 1hxwd.png epf2.png 6.2814126015 3-norm: 1.859491 ./butteraugli_main 1hxwd.png epf3.png 8.0532217026 3-norm: 2.298350``` Despite the tweaks in the algorithm the relative ranking didn't change. **SSIMULACRA** remained completely intact.
lithium
_wb_ the first number is the maxnorm, basically the worst distortion anywhere in the image. The 3-norm is something closer to the average distortion over the whole image. Maxnorm is useful if you want to be sure that there is nothing happening like an easy background that has no artifacts but the interesting part of the image does have artifacts, but 3-norm is closer to what ssimulacra does and probably correlates better with the overall subjective quality assessment of the image.
2021-05-04 02:24:44
how to correct read butteraugli 3-norm score? lower than 1.0 is good? bigger than 1.0 is bad?
_wb_
2021-05-04 02:25:20
lower is better, yes
2021-05-04 02:26:49
in principle, a maxnorm score of 1 means that if you view the image from 1000 pixels distance and flip between the original and the distorted image, there is at least one spot where you can just barely see a small difference (a just-noticeable-difference).
2021-05-04 02:27:21
if it's below 1 it should be no longer noticeable, above 1 easier to notice
2021-05-04 02:27:46
of course not everyone has the same vision and it also depends on other factors like ambient lighting, the screen brightness, etc
2021-05-04 02:28:26
(and of course if you zoom in or get closer to the screen, more becomes visible too)
raysar
2021-05-04 02:28:41
My eye prefer epf 3, could you add an extra strenght epf 4-5 for smaller jxl file? ๐Ÿ˜„
lithium
2021-05-04 02:31:57
Jyrki Alakuijala say different p-norm suitable different quality area, like 12-norm is suitable libjpeg q95~q99
2021-05-04 02:32:48
what is 3-norm suitable quality area?
_wb_
2021-05-04 02:34:13
i'd say libjpeg q60-q90, but maybe <@!532010383041363969> has a different opinion. this is mostly gut feeling at this point, we need more subjective evals to calibrate/validate things
lithium
2021-05-04 02:37:44
last time, Jyrki Alakuijala Suggest me to use 9-norm for jxl -d 0.5 and -d 1.0
fab
2021-05-04 02:39:39
do you have generic build jxl
lithium
2021-05-04 02:40:41
I tested 3-norm, 6-norm, 12-norm and 9-norm, but I still confused how to correct use this score
_wb_
2021-05-04 02:45:01
basically larger norm means closer to "one problem ruins the whole image", smaller norm means closer to "as long as it's OK on average, it is OK"
lithium
_wb_ basically larger norm means closer to "one problem ruins the whole image", smaller norm means closer to "as long as it's OK on average, it is OK"
2021-05-04 02:53:39
like psnr compare butteraugli? I have a white wall, and have black point in this wall, in psnr and low p-norm, if black point is gone, they don't too much mind this issue, white wall keep white is fine. but maxButteraugli and high p-norm will very mind this issue.
_wb_
2021-05-04 02:57:53
exactly
fab
2021-05-04 02:59:21
someone has generic build for jxl?
2021-05-04 02:59:25
the one from today
lithium
_wb_ exactly
2021-05-04 02:59:39
I understand, thank you very much <@!794205442175402004> ๐Ÿ™‚
2021-05-04 04:45:13
I see some encoder change in 9a8f5195 commit(butteraugli change), that change will improve image quality?
_wb_
2021-05-04 05:08:09
Maybe a little at speeds 8/9
fab
2021-05-04 05:44:30
the thing i did re encoding is bad
2021-05-04 05:44:47
even with new build you can re encode in aom
2021-05-04 05:44:48
-m -q 91.48 --epf=3 -Y 2.62 -X 99 -s 9 -q 77 wp2 01052021 jamaika doom9 build slower preset -q 58,4 cavif rs 0.6.7 preset 0
2021-05-04 05:45:42
but that is an insane amount of resource
2021-05-04 05:46:00
do you think is worth it
2021-05-04 05:46:12
like for 43 mb of photos i used 1 hours and 35
2021-05-04 05:46:36
but with those options i think i can't even try
2021-05-04 05:48:18
what do you think wb
2021-05-04 05:48:25
should i advertise this
2021-05-04 05:56:15
cavif rs 0.6.7 don't exist
2021-05-04 06:01:11
do you have a jpeg xl build from today thanks
2021-05-04 06:01:53
<@!321486891079696385> do you have jpeg xl from today?
BlueSwordM
2021-05-04 06:03:04
Yes.
fab
2021-05-04 06:03:27
can you send
2021-05-04 06:03:29
here
2021-05-04 06:03:38
also i need the link from the blog
2021-05-04 06:03:43
because reddit don't load to me
2021-05-04 06:04:32
did you deleted it
BlueSwordM
2021-05-04 06:05:11
No, Reddit is just down ๐Ÿ˜›
lithium
2021-05-04 06:05:12
Just a moment ago,I test cjxl v0.3.7-ab7c5e9b(not new commit) on my issue drawing image, in -d 0.5 have much quality improve in this commit, s7 can litte feel some very tiny noise(smooth), but is hard to see, s8 and s9 look very great, i think just only need litte optimization probably can fix this issue. I think i need test new commit, new commit probably have some new fix. and get unexpected ssimulacra score in ab7c5e9b, i need to fix this issue on my tools **cjxl -d 0.5 -s 7** ```bt_LLd_00a.png": "maxButteraugli": "0.809804", "maxButteraugli_jxl": "0.9525151849", "9Norm": " 0.525483", "dssim": "0.000288", "ssimulacra": "0.51175491" "iv01_07_29.png": "maxButteraugli": "1.104811", "maxButteraugli_jxl": "1.0105659962", "9Norm": " 0.588762", "dssim": "0.000792", "ssimulacra": "0.00754120" ``` **cjxl -d 0.5 -s 8** ```"bt_LLd_00a.png": "maxButteraugli": "0.821976", "maxButteraugli_jxl": "0.6731215119", "9Norm": " 0.402167", "dssim": "0.000229", "ssimulacra": "0.51101196" "iv01_07_29.png": "maxButteraugli": "0.912869", "maxButteraugli_jxl": "0.7721188068", "9Norm": " 0.474472", "dssim": "0.000703", "ssimulacra": "0.00674128" ``` **cjxl -d 0.5 -s 9** ```"bt_LLd_00a.png": "maxButteraugli": "0.841169", "maxButteraugli_jxl": "0.6185841560", "9Norm": " 0.377900", "dssim": "0.000217", "ssimulacra": "0.51096180" "iv01_07_29.png": "maxButteraugli": "0.905566", "maxButteraugli_jxl": "0.7593594790", "9Norm": " 0.464589", "dssim": "0.000686", "ssimulacra": "0.00664199" ``` **avif q7 ycocg** ``` "bt_LLd_00a.png": "maxButteraugli": "0.965656", "maxButteraugli_jxl": "0.8684271574", "9Norm": " 0.459998", "dssim": "0.000163", "ssimulacra": "0.00176666" "iv01_07_29.png": "maxButteraugli": "1.436351", "maxButteraugli_jxl": "1.0399889946", "9Norm": " 0.595515", "dssim": "0.000617", "ssimulacra": "0.00495691" ```
fab
2021-05-04 06:06:12
but discord is not down
2021-05-04 06:06:21
you can send if you have cjxl exe from today
2021-05-04 06:06:35
or the article link
2021-05-04 06:10:39
ah squoosh has jxl
Deleted User
BlueSwordM No, Reddit is just down ๐Ÿ˜›
2021-05-04 06:33:52
AGAIN? <:kekw:808717074305122316>
Petr
2021-05-05 06:23:38
Easy help: Don't use speed 3. Use the default speed 7 and you get to 26 kB. Or even slower speed to make it even lighter.
lithium
2021-05-05 08:48:24
cjxl v0.3.7 9a8f5195 on my issue drawing image(non-photographic image) **For drawing image** ***Great*** -d 0.5 s8 s9 ***Good recommend to s8 s9*** -d 0.5 s7 ***Okay but have risk*** -d 1.0 s7 s8 s9 ***Unacceptable*** -d 1.9|-q 80 In my test, -d 0.5 s7 is good, but smooth area still have tiny noise, not easy to see, -d 0.5 s8 and s9 tiny noise is gone, everything is great. -d 1.0 s7 smooth area tiny noise issue will increase, s8 and s9 can reduce, but still can see some issue. -d 1.9|-q 80 s7 smooth area have much noise, i think that is unacceptable. ssimulacra get unexpected score, i still don't know why.
2021-05-05 08:48:53
**d0.5 s7** ```bt_LLd_00a.png": "maxButteraugli": "0.809787", "maxButteraugli_jxl": "0.9525215626", "9Norm": " 0.526194", "dssim": "0.000289", "ssimulacra": "0.51176302" "iv01_07_29.png": "maxButteraugli": "1.104811", "maxButteraugli_jxl": "0.9993979931", "9Norm": " 0.587139", "dssim": "0.000793", "ssimulacra": "0.00744962"``` **d0.5 s8** ```"bt_LLd_00a.png": "maxButteraugli": "0.822295", "maxButteraugli_jxl": "0.7336245775", "9Norm": " 0.406894", "dssim": "0.000222", "ssimulacra": "0.51099064" "iv01_07_29.png": "maxButteraugli": "0.902251", "maxButteraugli_jxl": "0.7896180153", "9Norm": " 0.479455", "dssim": "0.000680", "ssimulacra": "0.00636489"``` **d0.5 s9** ```"bt_LLd_00a.png": "maxButteraugli": "0.728147", "maxButteraugli_jxl": "0.7415617704", "9Norm": " 0.409213", "dssim": "0.000215", "ssimulacra": "0.51097473" "iv01_07_29.png": "maxButteraugli": "0.902173", "maxButteraugli_jxl": "0.7899788618", "9Norm": " 0.471273", "dssim": "0.000657", "ssimulacra": "0.00608337"``` **avif q7 ycocg** ```"bt_LLd_00a.png": "maxButteraugli": "0.965656", "maxButteraugli_jxl": "0.8684271574", "9Norm": " 0.459998", "dssim": "0.000163", "ssimulacra": "0.00176666" "iv01_07_29.png": "maxButteraugli": "1.436351", "maxButteraugli_jxl": "1.0399889946", "9Norm": " 0.595515", "dssim": "0.000617", "ssimulacra": "0.00495691"```
fab
2021-05-05 09:20:08
this is the quality i find acceptable
2021-05-05 09:20:20
when the alien artifacts are hidden most
2021-05-05 09:21:53
default 128 kb
2021-05-05 09:22:12
with this 221 kb
2021-05-05 09:23:32
2021-05-05 09:29:37
i'd say this is the equilibrium vs avif
2021-05-05 09:29:59
or just use d1 or d 0.5
2021-05-05 09:30:07
at speed 9
2021-05-05 09:50:27
do not use this
2021-05-05 09:50:37
i've found better custom settings
2021-05-05 09:51:04
2021-05-05 09:51:12
this compares decent with webp
Crixis
lithium cjxl v0.3.7 9a8f5195 on my issue drawing image(non-photographic image) **For drawing image** ***Great*** -d 0.5 s8 s9 ***Good recommend to s8 s9*** -d 0.5 s7 ***Okay but have risk*** -d 1.0 s7 s8 s9 ***Unacceptable*** -d 1.9|-q 80 In my test, -d 0.5 s7 is good, but smooth area still have tiny noise, not easy to see, -d 0.5 s8 and s9 tiny noise is gone, everything is great. -d 1.0 s7 smooth area tiny noise issue will increase, s8 and s9 can reduce, but still can see some issue. -d 1.9|-q 80 s7 smooth area have much noise, i think that is unacceptable. ssimulacra get unexpected score, i still don't know why.
2021-05-05 09:51:15
not bad!
lithium
Crixis not bad!
2021-05-05 09:57:58
I just need test s8 and s9 which one is best.
Crixis
2021-05-05 10:00:52
Drawing
2021-05-05 10:01:40
but non-photographic include Drawing I think
lithium
2021-05-05 10:07:16
but i think anime screenshots can't get lossless source, in best case you probably only can get yuv 444
fab
2021-05-05 10:19:29
wp2 i couldn't it crashed i don't remember the options
2021-05-05 10:20:50
2021-05-05 10:20:58
the test i did
2021-05-05 10:24:48
q 72.5 autoedge fiter optimize for decoding speed 3 effort 5
2021-05-05 10:25:04
2021-05-05 10:25:31
wb deletes two of those images
2021-05-05 10:25:38
one i repluoaded
2021-05-05 10:25:41
because is useful
2021-05-05 10:26:06
<#803645746661425173> is cleaned
_wb_
lithium **d0.5 s7** ```bt_LLd_00a.png": "maxButteraugli": "0.809787", "maxButteraugli_jxl": "0.9525215626", "9Norm": " 0.526194", "dssim": "0.000289", "ssimulacra": "0.51176302" "iv01_07_29.png": "maxButteraugli": "1.104811", "maxButteraugli_jxl": "0.9993979931", "9Norm": " 0.587139", "dssim": "0.000793", "ssimulacra": "0.00744962"``` **d0.5 s8** ```"bt_LLd_00a.png": "maxButteraugli": "0.822295", "maxButteraugli_jxl": "0.7336245775", "9Norm": " 0.406894", "dssim": "0.000222", "ssimulacra": "0.51099064" "iv01_07_29.png": "maxButteraugli": "0.902251", "maxButteraugli_jxl": "0.7896180153", "9Norm": " 0.479455", "dssim": "0.000680", "ssimulacra": "0.00636489"``` **d0.5 s9** ```"bt_LLd_00a.png": "maxButteraugli": "0.728147", "maxButteraugli_jxl": "0.7415617704", "9Norm": " 0.409213", "dssim": "0.000215", "ssimulacra": "0.51097473" "iv01_07_29.png": "maxButteraugli": "0.902173", "maxButteraugli_jxl": "0.7899788618", "9Norm": " 0.471273", "dssim": "0.000657", "ssimulacra": "0.00608337"``` **avif q7 ycocg** ```"bt_LLd_00a.png": "maxButteraugli": "0.965656", "maxButteraugli_jxl": "0.8684271574", "9Norm": " 0.459998", "dssim": "0.000163", "ssimulacra": "0.00176666" "iv01_07_29.png": "maxButteraugli": "1.436351", "maxButteraugli_jxl": "1.0399889946", "9Norm": " 0.595515", "dssim": "0.000617", "ssimulacra": "0.00495691"```
2021-05-05 10:26:07
That's a strange ssimulacra score, maybe caused by color space issues? The non-jxl ssimulacra assumes all input to be sRGB
fab
2021-05-05 10:26:11
deleted 6 images in it
_wb_
2021-05-05 10:26:36
(best to use the jxl ssimulacra, it doesn't ignore icc profiles like the non-jxl one)
Orum
2021-05-05 10:26:44
Is there anyway to boost quality in dark areas relative to light(er) areas?
fab
2021-05-05 10:28:57
it still encodes too light and too information in the dark areas compared to the bitrate
2021-05-05 10:29:11
q78 jpeg looks in the preview like a 52,2 kb wp2
Orum Is there anyway to boost quality in dark areas relative to light(er) areas?
2021-05-05 10:29:39
no, he said most users don't need those
2021-05-05 10:29:45
maybe you could use intensity
2021-05-05 10:29:48
target
Orum
2021-05-05 10:29:50
who is 'he'?
fab
2021-05-05 10:32:15
don't remember but wb said something about b and q values
2021-05-05 10:32:21
something like that
2021-05-05 10:32:31
that 99,9999% of users don't need
2021-05-05 10:32:54
https://discord.com/channels/794206087879852103/794206170445119489/835813088883113994
2021-05-05 10:32:59
here's found
2021-05-05 10:33:01
the message
Orum
2021-05-05 10:33:36
that was in reference to a completely separate discussion
2021-05-05 10:33:46
about color shift
fab
2021-05-05 10:33:55
maybe you are referring about intensity or noise
2021-05-05 10:34:09
but i think wb understood what you said
Crixis
Orum Is there anyway to boost quality in dark areas relative to light(er) areas?
2021-05-05 10:34:34
I don't think there is
Orum
2021-05-05 10:34:34
No, the problem is that -d 1 is obviously not visually lossless in dark areas of an image, while for lighter areas it's totally fine
fab
2021-05-05 10:35:07
use speed 9
Crixis
Orum No, the problem is that -d 1 is obviously not visually lossless in dark areas of an image, while for lighter areas it's totally fine
2021-05-05 10:35:43
i think depends on so many things (display, single image feature)
fab
2021-05-05 10:36:03
or one of those two options if you want lower quality
2021-05-05 10:36:04
https://discord.com/channels/794206087879852103/794206170445119489/839447534555627540
Crixis
2021-05-05 10:36:10
the best thing is go -d < 1 (0.6, .05)
fab
2021-05-05 10:36:16
72.5 q 76.7 with the settings i mentioned
2021-05-05 10:36:29
no best thing in d 1 d 0.5 is use speed 9
2021-05-05 10:36:40
it will encode less bits to the dark areas
2021-05-05 10:36:46
so it wil boosts also visual quality
Orum
2021-05-05 10:36:54
Yeah, I had to go down to -d 0.4 to get the dark areas looking good, but then (I assume) it also spends a lot more bits on the lighter areas which already looked fine
fab
2021-05-05 10:37:15
the encoder claims to be similar to jpg not mozjpeg
2021-05-05 10:37:34
mozpeg quality 78 as you seen in benchmark looks like a 52,2 kb wp2
2021-05-05 10:37:38
but with less banding
Crixis
Orum Yeah, I had to go down to -d 0.4 to get the dark areas looking good, but then (I assume) it also spends a lot more bits on the lighter areas which already looked fine
2021-05-05 10:37:53
you get bad dark in all image?, it can by a too much luminosity on the screen
fab
2021-05-05 10:37:55
the encoder still don't match mozjpeg eno0ugh
2021-05-05 10:38:06
because is very new
2021-05-05 10:38:44
the modular quality and the galaxy s4 screenshots at d1 s7 were encoded good with old build
2021-05-05 10:38:54
but if i need with this build i use speed 9
2021-05-05 10:39:05
because of what you said
Orum
2021-05-05 10:39:05
What happens is basically a blur around sharp details in dark areas. They become very poorly defined, almost like a gaussian blur was applied
fab
2021-05-05 10:39:21
and because speed 9 is super fast for hd even on squoosh. it encoded in 2 seconds
2021-05-05 10:39:40
(effort 0-6)
2021-05-05 10:39:53
maybe is the contrary
Crixis
Orum What happens is basically a blur around sharp details in dark areas. They become very poorly defined, almost like a gaussian blur was applied
2021-05-05 10:39:56
can send an example in bencmark?