|
fab
|
2021-08-19 03:45:33
|
|
|
2021-08-19 03:45:57
|
|
|
2021-08-19 03:59:20
|
only this
|
|
2021-08-19 03:59:21
|
https://discord.com/channels/794206087879852103/803645746661425173/877941366817161227
|
|
2021-08-19 03:59:33
|
and this
|
|
2021-08-19 03:59:34
|
https://discord.com/channels/794206087879852103/803645746661425173/877912076591456257
|
|
2021-08-19 03:59:39
|
seem quite decent
|
|
2021-08-19 03:59:48
|
the rest are blurred
|
|
|
Scope
|
2021-08-19 04:14:24
|
Because it's not just normal encoding, all images have only half resolution
|
|
|
fab
|
2021-08-19 05:00:29
|
i know but first discord link is 1920x1080 to 1920x1080
|
|
2021-08-19 05:00:38
|
resolution to same resolution
|
|
2021-08-19 05:01:08
|
second you could say because i'm interested
|
|
|
Scope
|
2021-08-19 05:06:40
|
This is an upscaling comparison (960x540 >> 1920x1080), not an encoding quality, so it makes no sense to compare JXL without using `--resampling=2`
|
|
|
Scope
Some upscalers comparison (960x540 >> 1920x1080)
1. AMD FidelityFX Super Resolution
2. ImageMagick Lanczos
3. `-d 0.1 --resampling=2`
4. Cropped 1920x1080 source
|
|
2021-08-19 10:01:10
|
<https://github.com/libjxl/libjxl/pull/471>
|
|
2021-08-19 10:01:20
|
|
|
2021-08-19 10:01:20
|
|
|
2021-08-19 10:01:21
|
|
|
2021-08-19 10:01:22
|
|
|
2021-08-19 10:01:23
|
|
|
2021-08-19 10:01:24
|
|
|
2021-08-19 10:01:24
|
|
|
2021-08-19 10:04:37
|
Much better now, pretty close to ImageMagick Lanczos
|
|
|
|
veluca
|
2021-08-19 10:10:01
|
you mean Lanczos downsampling + upsampling?
|
|
|
Scope
|
|
|
veluca
|
2021-08-19 10:10:58
|
interesting...
|
|
2021-08-19 10:11:56
|
I'd have thought it would be better tbh 😛
|
|
|
Scope
|
2021-08-19 10:12:49
|
Lanczos has less outline artifacts with the same sharpness
|
|
2021-08-19 10:13:13
|
|
|
2021-08-19 10:13:13
|
|
|
2021-08-19 10:13:14
|
|
|
2021-08-19 10:13:14
|
|
|
2021-08-19 10:13:15
|
|
|
2021-08-19 10:13:15
|
|
|
2021-08-19 10:13:16
|
|
|
2021-08-19 10:14:35
|
Lanczos with some Fabianium magic (same for downsampling and upsampling)
`-filter Lanczos -define filter:blur=.9891028367558475`
|
|
|
w
|
2021-08-19 10:15:48
|
wow it's almost like jinc / ewa lanczos
|
|
2021-08-19 10:17:52
|
I wish amd made an actual upscaler like nnedi3, or simply just took nnedi3 and made it faster. fidelityfx SR is quite disappointing compared to already existing realtime upscalers based on nnedi such as ngu and fsrcnnx and especially what you're doing here lmao.
|
|
|
Scope
|
2021-08-19 10:33:18
|
FSR is pretty good, considering its speed, but it is more tuned for games, not for video or photos and it should not waste a lot of GPU resources, because the GPU will be busy not only with upscaling, but with all the other tasks for game rendering
And realtime for video, where ~25 fps (sometimes 60) are usually enough, and games, where there are no limits, are different things (also games usually use higher bits of color data and FSR is also tuned for this)
|
|
|
w
|
2021-08-19 10:55:07
|
I also wish what you say about games using higher bits of color is true
|
|
|
Scope
|
2021-08-19 11:15:08
|
The final frame is rendered in the same bits as the user's display supports, but the internal processes, shaders, effects, textures, postprocessing and so on mostly work at higher bits
<https://aschrein.github.io/2019/08/11/metro_breakdown.html>
|
|
|
Scope
Lanczos has less outline artifacts with the same sharpness
|
|
2021-08-20 01:20:30
|
Lanczos IM downsampling
Gigapixel AI upscaling (standard model without tuning settings) <:Thonk:805904896879493180>
|
|
2021-08-20 01:20:39
|
|
|
2021-08-20 01:20:39
|
|
|
2021-08-20 01:20:40
|
|
|
2021-08-20 01:20:40
|
|
|
2021-08-20 01:20:41
|
|
|
2021-08-20 01:20:42
|
|
|
2021-08-20 01:20:42
|
|
|
|
Jyrki Alakuijala
|
2021-08-20 02:30:28
|
Scope, thank you for keeping us in check with this
|
|
2021-08-20 02:31:11
|
For getting intended results from the JXL upscaling you need to use the downscaling in JXL
|
|
2021-08-20 02:31:46
|
The current version is a work-in-progress and is about to take the next step today
|
|
2021-08-20 02:38:10
|
The theoretical win that JXL's non-separable filtering should have is in oblique features -- not pixelizing them
|
|
2021-08-20 02:38:17
|
JXL:
|
|
2021-08-20 02:38:45
|
IM Lanczos:
|
|
2021-08-20 02:39:23
|
but looks like we still have problems that eat the gains that we might eventually get from solving that
|
|
|
Scope
|
|
Scope
<https://github.com/libjxl/libjxl/pull/471>
|
|
2021-08-20 02:44:57
|
Yep, I used `--resampling=2` on the full image in this comparison ^ (but, without today's changes), downsampling was used only for the other resamplers
And I started this comparison because the images after the JXL resampler (without the recent changes) looked strange
|
|
|
Jyrki Alakuijala
|
2021-08-20 02:46:40
|
correct observation and very good guidance for us, thank you!!
|
|
2021-08-20 02:47:05
|
I have four more small ideas that will improve the resampling a bit
|
|
2021-08-20 02:47:22
|
naturally when upsampling is a linear filter of 25 pixels, it will not be as good as neural upsampling
|
|
2021-08-20 02:48:16
|
particularly, it is not possible to gracefully interpolate all thing lines in different angles, and not even slowly developing edges in situations where the required subpixel ringing would be visible
|
|
2021-08-20 02:48:58
|
I am hoping that we will eventually (soon) be able to produce better results than IM lanczos
|
|
2021-08-20 02:49:49
|
with decent decoding speed -- and be able to layer them with 2x resampled VarDCT d2 for photos with d8 modular for a few shiny random pixels, text and graphics
|
|
2021-08-20 02:50:12
|
the layering will require a lot of heuristics and will not happen soon
|
|
2021-08-20 02:50:36
|
but the resampling is easier and we can make further improvements there
|
|
|
Scope
|
2021-08-20 02:56:18
|
Yes, neural upsampling was just for comparison, good methods are quite slow and most create a very unnatural image
And strange results with `--resampling=2` I noticed a long time ago, but was not sure how it works, thought that maybe it is something much smaller than x2 downsampling or maybe it works on different principles for higher speed and it is incorrect to compare it with normal resamplers
|
|
|
Jyrki Alakuijala
|
2021-08-20 03:46:46
|
It is fair game to compare just like you are doing. Also very helpful for me to make further decisions about it.
|
|
2021-08-20 03:54:05
|
the good news is that if Lanczos / bicubic produces better or equally results than our 5x5 non-separable upsampler, a user just stop doing the jpeg xl upsampling and leave it up to skia/Chrome to resample
|
|
2021-08-20 03:54:55
|
my belief is that the 45 degree angles are the worst case behaviour for separable resamplers (lanczos/bicubic), and there we do a better job
|
|
2021-08-20 03:55:41
|
unfortunately, at 20-30 degree angle, there is no similar big win any more, and our non-separable will also expose pixel grid in the rendering artefacts (neural methods with larger support can easily fix things there, too)
|
|
2021-08-20 03:57:13
|
I like to put a lot of weight on the worst case behaviour and reduce the worst case error -- and there non-separable does have some success with the 45-degree edges
|
|
|
Scope
|
2021-08-20 04:13:31
|
Yes, or in the future I think it would also be nice to use the development of some of the highest quality variations of upsamplers (today most likely using the GPU), which could be integrated into browsers and any other formats and applications would use them, and the quality of these upsamplers would develop independently
And about using for quality improvement during encoding, I think that the best method would not be to reduce whole image (especially when encoder has full image and "knows" how it was in source, unlike usual upsamplers), but selective approach, some parts/details would be better to keep in original resolution, than to try to reconstruct them later
|
|
|
Scope
<https://github.com/libjxl/libjxl/pull/471>
|
|
2021-08-20 05:37:31
|
<https://github.com/libjxl/libjxl/commit/e00ac5788b769b14af8a543d6572aee615513649>
1. IM `-filter Cosine -resize 960x540` + IM `-filter Lanczos -define filter:blur=.9891028367558475 -resize 1920x1080`
2. JXL `-d 0.01 --resampling=2`
|
|
2021-08-20 05:37:44
|
|
|
2021-08-20 05:37:45
|
|
|
2021-08-20 05:37:46
|
|
|
2021-08-20 05:37:47
|
|
|
2021-08-20 05:37:48
|
|
|
2021-08-20 05:37:49
|
|
|
2021-08-20 05:37:51
|
|
|
2021-08-20 05:37:51
|
|
|
2021-08-20 05:37:53
|
|
|
2021-08-20 05:37:53
|
|
|
2021-08-20 05:37:55
|
|
|
2021-08-20 05:37:55
|
|
|
2021-08-20 05:37:56
|
|
|
2021-08-20 05:37:57
|
|
|
|
Scope
|
|
2021-08-20 05:47:44
|
For me, I notice differences in these areas where JXL has slightly worse results (but in others it can be better), a screenshot just to indicate the area
|
|
2021-08-20 05:49:29
|
|
|
2021-08-20 05:51:26
|
JXL has more thickened and distorted lines
|
|
|
Scope
|
|
2021-08-20 05:54:25
|
|
|
2021-08-20 05:59:11
|
And also I like the text in the other images with Lanczos more, although this is only on high quality images, I'm not sure that it will be better with noticeable compression artifacts
|
|
2021-08-20 11:31:41
|
Also, about AV1 Superres
|
|
2021-08-20 11:33:11
|
However, it is not very effective for still images <:SadOrange:806131742636507177>
|
|
|
Jyrki Alakuijala
|
|
Scope
|
|
2021-08-21 03:18:51
|
when I look at these images something strange has happened there in this post (not in the previous):
|
|
|
Scope
However, it is not very effective for still images <:SadOrange:806131742636507177>
|
|
2021-08-21 03:20:36
|
AVIF tends to do a great job on low bpp in any case, I believe that because of the "tool" choices in JPEG XL we will get a 10-15 % improvement in low bpp area due to 2x2 resampling.
|
|
|
Scope
|
2021-08-21 03:20:39
|
Yes, because this is a scaling in the viewer, these images are not for comparison, only to point out the places I am talking about, it is better to compare in full images
|
|
|
Jyrki Alakuijala
|
2021-08-21 03:21:09
|
do you happen to know the support length of lanczos used in IM ?
|
|
2021-08-21 03:21:27
|
is it expressable by 5 pixel support?
|
|
|
Scope
|
2021-08-21 03:26:29
|
No, I didn't go into details, I just used Lanczos because it is usually the most versatile and even by various metrics usually outperforms the other known upscalers (if exclude ML and other more computationally-heavy ones)
|
|
2021-08-21 03:29:41
|
Perhaps there is something better, but my idea was to compare it with something fairly common
|
|
|
diskorduser
|
2021-08-21 03:31:31
|
Does FSR works better than or worse lanczos? I have tried line art images with FSR. It looks good
|
|
|
Scope
|
2021-08-21 03:34:07
|
Quite good, sometimes better, sometimes worse, it is also quite good at removing various artifacts and very fast (but unless it always needs to use the GPU) and it is also based on Lanczos
|
|
2021-08-21 03:34:57
|
https://twitter.com/RyanSmithAT/status/1423012754718289923
|
|
2021-08-21 03:36:44
|
|
|
2021-08-21 03:36:49
|
|
|
2021-08-21 03:40:13
|
But FSR is designed and optimized for games, not for normal image or video upscaling
|
|
|
diskorduser
|
2021-08-21 03:40:36
|
I have seen people calling it a improved lanczos before it was released.
|
|
|
Jyrki Alakuijala
|
2021-08-21 03:41:39
|
http://www.johncostella.com/magic/mks.pdf is also interesting
|
|
2021-08-21 03:42:25
|
my personal interest in the sampling was for 4x4 and 8x8 upsampling, for DC previews
|
|
2021-08-21 03:42:53
|
there, my focus was more on not having details (artifacts) present that disappear later when the full image arrives
|
|
2021-08-21 03:43:23
|
the worst artefact in showing 8x8 or 4x4 dc (in experimentation in pik) as well as 8x8 in jpeg is the pixel structure surfacing from the 8x8 grid
|
|
2021-08-21 03:43:42
|
lanczos or bicubic doesn't do a great job in removing it
|
|
2021-08-21 03:44:25
|
there I noticed that a non-separable filter can do better than a separable filter
|
|
2021-08-21 03:45:19
|
for 2x2 upsampling it is less of an issue, but still it matters a bit
|
|
2021-08-21 03:46:25
|
the upsampling in jpeg xl has non-linearities that make it impossible to reach the finest line widths, but those may reduce ringing
|
|
2021-08-21 03:46:47
|
we clamp the values within min/max ranges of original pixels
|
|
2021-08-21 03:47:08
|
this is great for flat edges, but not so good for the thinnest lines
|
|
2021-08-21 03:48:08
|
we added the decoding-side clamping before we had iterative downsampling so we don't know very well if the decoding-side clamping is an improvement or degradation right now
|
|
2021-08-21 03:48:49
|
and if that will make it impossible to achieve lanczos like quality for the thinnest lines
|
|
2021-08-21 03:49:20
|
in any case it should give less pixelization and likely less ringing at edges
|
|
|
Scope
|
2021-08-21 03:51:41
|
Is there no way to take any clarifying data from the full image? Because it's not just upsampling when the source image is completely unknown, but JXL has access to the full image before downsampling (although lossy compression will be an issue here as well, because it's already a distorted image compared to the source)
|
|
|
fab
|
2021-08-21 04:00:26
|
jxl preserves good the hair with new heuristics s 5
|
|
2021-08-21 04:01:02
|
if you want more preservation of banding and grey texts and less ringing s7 is way better
|
|
2021-08-21 04:01:08
|
without new heuristics
|
|
2021-08-21 04:01:35
|
to me would be good if the two heuristics were all the two good
|
|
|
Scope
|
|
Jyrki Alakuijala
http://www.johncostella.com/magic/mks.pdf is also interesting
|
|
2021-08-21 07:19:17
|
Also https://news.ycombinator.com/item?id=26513518
|
|
2021-08-23 05:21:36
|
https://arxiv.org/abs/1708.07029v3
|
|
|
NeRd
|
2021-08-23 07:06:33
|
PNG:
```
146 718 - oxipng
124 692 - optimised with many programs (the uploaded file)
```
JXL (v0.5.0, MacOS):
```
171 877 - -q 100
138 974 - -q 100 -e 9
133 996 - -q 100 -e 9 -E 3 -I 1
133 844 - -q 100 -e 9 -E 3 -I 1 -g 0
122 781 - -q 100 -e 9 --palette 1000000 -I 2.46 -g 3
118 651 - -q 100 -e 9 --palette 1000000 -I 1 -g 3 -P 0
```
WebP:
```
102 992 - -lossless
101 450 - -lossless -z 9
```
Does anyone know why JPEG-XL struggles with this image, while WebP is able to perform better, or does anyone have some parameter suggestions which outperform WebP? -P 0 was a happy mistake, I meant to try something else but mistyped.
|
|
|
|
veluca
|
2021-08-23 08:38:43
|
try -g 3 -I 0 -P 0 -e 9
|
|
2021-08-23 08:39:13
|
or other small -P values
|
|
|
eddie.zato
|
|
eddie.zato
<:PepeOK:805388754545934396>
```
PS > cjxl 0.jpg 8p.jxl -j -e 8 --patches=0
JPEG XL encoder v0.5.0 [SSE4]
Read 1988x3056 image, 52.9 MP/s
Encoding [VarDCT, d1.000, kitten], 4 threads.
Compressed to 1298130 bytes (1.709 bpp).
1988 x 3056, 0.55 MP/s [0.55, 0.55], 1 reps, 4 threads.
PS > ls -File | Format-Table Name,Length
Name Length
---- ------
0.jpg 2097141
7.jxl 1300653
8.jxl 4397281
8p.jxl 1298130
```
|
|
2021-08-23 11:42:28
|
Ok, there is some progress:
```
cjxl 0.jpg 7.jxl -j -e 7
cjxl 0.jpg 8.jxl -j -e 8
cjxl 0.jpg 8p.jxl -j -e 8 --patches=0
JPEG XL encoder v0.6.0 688f915 [SSE4]
Name Length
---- ------
0.jpg 2097141
7.jxl 1291696
8.jxl 1297652
8p.jxl 1297029
```
|
|
|
|
veluca
|
2021-08-23 11:53:43
|
try with `-s 9 -I 0 --patches=0 -g 3 -P 0` 🙂 or -s 8 if you want that to be faster
|
|
2021-08-23 11:55:19
|
nah, doesn't work
|
|
|
diskorduser
|
2021-08-31 06:41:17
|
https://imagick-filters-comparison.netlify.app/
|
|
2021-08-31 06:44:00
|
Is robidoux / robidouxsharp better than lanczos for downscaling?
|
|
|
_wb_
|
2021-08-31 06:49:44
|
I prefer Mitchell myself, but it's a matter of taste
|
|
2021-08-31 06:50:36
|
Doing it in linear color is the most important thing (most things like default imagemagick and browsers do it in nonlinear space)
|
|
|
diskorduser
|
2021-08-31 07:04:28
|
Does it work in linear scale if I use like this?
`convert {input} -colorspace RGB \
-filter Lanczos -define filter:blur=.9891028367558475 \
-distort Resize 20% -colorspace sRGB {output}`
|
|
|
_wb_
|
2021-08-31 07:07:03
|
Yes
|
|
2021-08-31 07:07:56
|
I don't particularly like Lanczos in linear space, I think it somehow looks better in nonlinear space
|
|
|
|
Deleted User
|
2021-08-31 11:29:54
|
Most important is to do rescaling at a higher bit depth and then dither to the original depth.
|
|
2021-08-31 11:32:13
|
<@!263309374775230465> `magick {input} -colorspace RGB +sigmoidal-contrast 6.5,50% -filter Lanczos -distort resize 20% -sigmoidal-contrast 6.5,50% -colorspace sRGB -ordered-dither o8x8,256 {output}`
|
|
|
_wb_
|
|
Most important is to do rescaling at a higher bit depth and then dither to the original depth.
|
|
2021-09-01 05:24:42
|
Yes, I consider it a given in image processing that processing is done with more precision (ImageMagick typically uses uint16 internally, though you can also compile it to use float instead). But yes, this is not always done (some downscalers don't, to save memory), and the dithering when going back to lower precision is a good point, I wasn't doing that yet actually. It might be a bit risky on nonphotographic images though, no?
|
|
|
diskorduser
|
|
<@!263309374775230465> `magick {input} -colorspace RGB +sigmoidal-contrast 6.5,50% -filter Lanczos -distort resize 20% -sigmoidal-contrast 6.5,50% -colorspace sRGB -ordered-dither o8x8,256 {output}`
|
|
2021-09-01 09:46:40
|
Are the values 6.5,50% specific to lanczos or is it okay to use them on any other algorithms?
|
|
2021-09-01 10:06:53
|
I see some vertical strips and grids on image with this method.
|
|
|
|
Deleted User
|
2021-09-01 01:32:21
|
> It might be a bit risky on nonphotographic images though, no?
No, why should it?
|
|
2021-09-01 01:32:31
|
|
|
2021-09-01 01:32:31
|
|
|
2021-09-01 01:32:32
|
|
|
2021-09-01 01:32:32
|
|
|
2021-09-01 01:32:45
|
One is with, the other is without dithering.
|
|
2021-09-01 01:33:04
|
Dithering is only not recommended if your "nonphotographic" means images with a small color palette. But there you wouldn't wanna use Lanczos or even linear space.
|
|
|
diskorduser
I see some vertical strips and grids on image with this method.
|
|
2021-09-01 01:33:25
|
It's okay if the other algorithms are similar to Lanczos. :D
|
|
|
diskorduser
I see some vertical strips and grids on image with this method.
|
|
2021-09-01 01:33:38
|
What do you mean?
|
|
|
diskorduser
|
2021-09-01 01:42:16
|
If you zoom the image resized with -ordered-dither, there are visible dots in the image on 2x zoom.
|
|
|
|
Deleted User
|
2021-09-01 01:44:27
|
Do you have an example image where this happens?
|
|
2021-09-01 01:45:58
|
Did you use `o8x8,256`?
|
|
|
diskorduser
|
|
Did you use `o8x8,256`?
|
|
2021-09-01 01:50:44
|
Yes
|
|
|
_wb_
|
|
Dithering is only not recommended if your "nonphotographic" means images with a small color palette. But there you wouldn't wanna use Lanczos or even linear space.
|
|
2021-09-01 02:03:01
|
I mean something like a screenshot
|
|
2021-09-01 02:03:31
|
Or an illustration with large areas of solid color
|
|
|
|
Deleted User
|
2021-09-01 02:13:09
|
Solid colors won't change with dithering since they will always round back to the original color.
|
|
|
diskorduser
|
|
Do you have an example image where this happens?
|
|
2021-09-01 03:43:58
|
http://0x0.st/-vSN.mp4
|
|
|
|
Deleted User
|
2021-09-01 04:34:59
|
This looks like it's using a total of 256 colors instead of 256 per channel. What do you use for input/output?
|
|
2021-09-01 04:41:53
|
Maybe try `+channel -ordered-dither o8x8,256`.
|
|
|
diskorduser
|
2021-09-01 05:21:40
|
I used a 16mp 8-bit jpeg input and output a png.
|
|
2021-09-01 05:25:15
|
I get error, unrecognised option "+channels"
|
|
|
|
Deleted User
|
2021-09-01 05:29:40
|
Sorry, I think it should be channel without s. Otherwise convert to PNG first.
|
|
|
diskorduser
|
2021-09-02 02:50:16
|
Same patterns / dots with png input Adding +channel also didn't fix it.
|
|
2021-09-02 03:01:30
|
magick pexels-lisa-1083822.png -colorspace RGB +sigmoidal-contrast 6.5,50% -filter Lanczos -distort resize 56.25% -crop 200x200+200+200 -sigmoidal-contrast 6.5,50% -colorspace sRGB +channel -ordered-dither o8x8,25 -strip dither.png
|
|
|
Scope
|
2021-09-02 06:01:36
|
Hm, also experimented with scaling modes and got some interesting results
|
|
2021-09-02 06:02:08
|
Source images:
|
|
2021-09-02 06:02:09
|
|
|
2021-09-02 06:02:10
|
|
|
2021-09-02 06:02:11
|
|
|
2021-09-02 06:02:11
|
|
|
2021-09-02 06:02:11
|
|
|
2021-09-02 06:02:13
|
|
|
2021-09-02 06:02:13
|
|
|
2021-09-02 06:02:14
|
|
|
|
diskorduser
|
2021-09-02 06:05:12
|
Upscale?
|
|
|
Scope
|
2021-09-02 06:07:35
|
In the file names in this sequence:
1. FSR 2x
2. JXL `-s 7 -d 0.1 --resampling=2` <https://github.com/libjxl/libjxl/pull/533>
3. IM Downscale `-colorspace RGB -define filter:window=Quadratic -colorspace sRGB`
+ Upscale `-colorspace RGB +sigmoidal-contrast 7.5 -define filter:window=Jinc -define filter:lobes=3 -resize 200%% -sigmoidal-contrast 7.5 -colorspace sRGB`
4. IM Downscale `-colorspace RGB -filter Triangle -define filter:blur=.84549061701764 -colorspace sRGB`
+ Upscale `-colorspace RGB +sigmoidal-contrast 7.5 -define filter:window=Jinc -define filter:lobes=3 -define filter:blur=.88549061701764 -sigmoidal-contrast 7.5 -colorspace sRGB`
|
|
2021-09-02 06:07:53
|
-
```Butteraugli: 7.6523346901
3-norm: 2.521169
SSIMULACRA: 0.06312216
DSSIM: 0.00412691 0m8z22tarcu11.FSR.png
Butteraugli: 13.6175022125
3-norm: 4.015311
SSIMULACRA: 0.05405400
DSSIM: 0.00434414 0m8z22tarcu11.jxlR2.png
Butteraugli: 7.5799150467
3-norm: 2.412462
SSIMULACRA: 0.05904124
DSSIM: 0.00377530 0m8z22tarcu11.Quadratic_Ginseng3lobe.png
Butteraugli: 7.8739781380
3-norm: 2.502248
SSIMULACRA: 0.05676201
DSSIM: 0.00292210 0m8z22tarcu11.Triangle_Ginseng3lobe.png
```
|
|
2021-09-02 06:07:54
|
|
|
2021-09-02 06:07:55
|
|
|
2021-09-02 06:07:56
|
|
|
2021-09-02 06:07:57
|
-
```Butteraugli: 7.9676017761
3-norm: 2.755792
SSIMULACRA: 0.07913098
DSSIM: 0.00589904 1h1rt.FSR.png
Butteraugli: 14.3376636505
3-norm: 4.135510
SSIMULACRA: 0.07626729
DSSIM: 0.00642091 1h1rt.jxlR2.png
Butteraugli: 8.1583213806
3-norm: 2.687468
SSIMULACRA: 0.08273491
DSSIM: 0.00552542 1h1rt.Quadratic_Ginseng3lobe.png
Butteraugli: 8.1548051834
3-norm: 3.053624
SSIMULACRA: 0.07447507
DSSIM: 0.00490394 1h1rt.Triangle_Ginseng3lobe.png
```
|
|
2021-09-02 06:07:58
|
|
|
2021-09-02 06:07:59
|
|
|
2021-09-02 06:07:59
|
|
|
2021-09-02 06:08:00
|
-
```Butteraugli: 6.6735296249
3-norm: 1.567400
SSIMULACRA: 0.02005278
DSSIM: 0.00057343 2048x1320_carli-jeen-431.FSR.png
Butteraugli: 6.3593711853
3-norm: 1.481147
SSIMULACRA: 0.01801966
DSSIM: 0.00043071 2048x1320_carli-jeen-431.jxlR2.png
Butteraugli: 6.5563468933
3-norm: 1.418699
SSIMULACRA: 0.01828603
DSSIM: 0.00039971 2048x1320_carli-jeen-431.Quadratic_Ginseng3lobe.png
Butteraugli: 5.8666715622
3-norm: 1.489459
SSIMULACRA: 0.01838885
DSSIM: 0.00048951 2048x1320_carli-jeen-431.Triangle_Ginseng3lobe.png
```
|
|
2021-09-02 06:08:02
|
|
|
2021-09-02 06:08:04
|
|
|
2021-09-02 06:08:08
|
|
|
2021-09-02 06:08:09
|
-
```Butteraugli: 7.3742027283
3-norm: 2.502985
SSIMULACRA: 0.10612870
DSSIM: 0.00516059 2048x1320_cayton-heath-60402.FSR.png
Butteraugli: 7.9369306564
3-norm: 2.574979
SSIMULACRA: 0.09597047
DSSIM: 0.00424789 2048x1320_cayton-heath-60402.jxlR2.png
Butteraugli: 6.8346881866
3-norm: 2.322578
SSIMULACRA: 0.09891145
DSSIM: 0.00444520 2048x1320_cayton-heath-60402.Quadratic_Ginseng3lobe.png
Butteraugli: 6.2368092537
3-norm: 2.140422
SSIMULACRA: 0.09588916
DSSIM: 0.00338383 2048x1320_cayton-heath-60402.Triangle_Ginseng3lobe.png
```
|
|
2021-09-02 06:08:11
|
|
|
2021-09-02 06:08:12
|
|
|
2021-09-02 06:08:16
|
|
|
2021-09-02 06:08:18
|
-
```Butteraugli: 6.7863245010
3-norm: 2.206729
SSIMULACRA: 0.06249440
DSSIM: 0.00245042 2048x1320_davey-heuser-696.FSR.png
Butteraugli: 10.3410911560
3-norm: 2.722653
SSIMULACRA: 0.05824124
DSSIM: 0.00209300 2048x1320_davey-heuser-696.jxlR2.png
Butteraugli: 7.0041656494
3-norm: 2.180330
SSIMULACRA: 0.05992117
DSSIM: 0.00227412 2048x1320_davey-heuser-696.Quadratic_Ginseng3lobe.png
Butteraugli: 6.7900328636
3-norm: 2.217274
SSIMULACRA: 0.05718720
DSSIM: 0.00178303 2048x1320_davey-heuser-696.Triangle_Ginseng3lobe.png
```
|
|
2021-09-02 06:08:19
|
|
|
2021-09-02 06:08:20
|
|
|
2021-09-02 06:08:21
|
|
|
2021-09-02 06:08:23
|
-
```Butteraugli: 6.0690393448
3-norm: 1.759394
SSIMULACRA: 0.05738130
DSSIM: 0.00163084 2048x1320_jean-lakosnyk-1325.FSR.png
Butteraugli: 5.9236259460
3-norm: 1.652864
SSIMULACRA: 0.05371557
DSSIM: 0.00123964 2048x1320_jean-lakosnyk-1325.jxlR2.png
Butteraugli: 5.9563336372
3-norm: 1.657374
SSIMULACRA: 0.05391854
DSSIM: 0.00131542 2048x1320_jean-lakosnyk-1325.Quadratic_Ginseng3lobe.png
Butteraugli: 5.9652943611
3-norm: 1.927614
SSIMULACRA: 0.05329959
DSSIM: 0.00153713 2048x1320_jean-lakosnyk-1325.Triangle_Ginseng3lobe.png
```
|
|
2021-09-02 06:08:25
|
|
|
2021-09-02 06:08:27
|
|
|
2021-09-02 06:08:28
|
|
|
2021-09-02 06:08:30
|
-
```Butteraugli: 8.0101423264
3-norm: 2.390688
SSIMULACRA: 0.07831928
DSSIM: 0.00531854 2048x1320_william-iven-5893.FSR.png
Butteraugli: 11.6504716873
3-norm: 3.314981
SSIMULACRA: 0.07232501
DSSIM: 0.00515426 2048x1320_william-iven-5893.jxlR2.png
Butteraugli: 7.0145583153
3-norm: 2.245753
SSIMULACRA: 0.07329559
DSSIM: 0.00449057 2048x1320_william-iven-5893.Quadratic_Ginseng3lobe.png
Butteraugli: 6.5637097359
3-norm: 2.364674
SSIMULACRA: 0.07382710
DSSIM: 0.00386518 2048x1320_william-iven-5893.Triangle_Ginseng3lobe.png
```
|
|
2021-09-02 06:08:31
|
|
|
2021-09-02 06:08:33
|
|
|
2021-09-02 06:08:34
|
|
|
2021-09-02 06:08:36
|
-
```Butteraugli: 8.2909440994
3-norm: 1.939780
SSIMULACRA: 0.02393107
DSSIM: 0.00088207 2048x1320_zugr-108.FSR.png
Butteraugli: 8.3663911819
3-norm: 1.940193
SSIMULACRA: 0.02165503
DSSIM: 0.00065602 2048x1320_zugr-108.jxlR2.png
Butteraugli: 7.1139197350
3-norm: 1.703904
SSIMULACRA: 0.02179263
DSSIM: 0.00066908 2048x1320_zugr-108.Quadratic_Ginseng3lobe.png
Butteraugli: 6.6433234215
3-norm: 1.849612
SSIMULACRA: 0.02218326
DSSIM: 0.00070112 2048x1320_zugr-108.Triangle_Ginseng3lobe.png
```
|
|
2021-09-02 06:08:37
|
|
|
2021-09-02 06:08:39
|
|
|
2021-09-02 06:08:40
|
|
|
2021-09-02 06:08:42
|
-
```Butteraugli: 11.6934757233
3-norm: 3.486321
SSIMULACRA: 0.08302297
DSSIM: 0.00834876 zcnvlaon81541.FSR.png
Butteraugli: 13.5171709061
3-norm: 4.207612
SSIMULACRA: 0.06727552
DSSIM: 0.00756088 zcnvlaon81541.jxlR2.png
Butteraugli: 10.5054244995
3-norm: 3.325153
SSIMULACRA: 0.07742532
DSSIM: 0.00720557 zcnvlaon81541.Quadratic_Ginseng3lobe.png
Butteraugli: 9.6023273468
3-norm: 3.450314
SSIMULACRA: 0.07479131
DSSIM: 0.00546741 zcnvlaon81541.Triangle_Ginseng3lobe.png
```
|
|
2021-09-02 06:08:42
|
|
|
2021-09-02 06:08:44
|
|
|
2021-09-02 06:08:45
|
|
|
2021-09-02 06:09:29
|
Metrics are also interesting
|
|
2021-09-02 06:16:51
|
Quadratic downsampler is sharper, with clearer lines, but makes artifacts on the sharp edges, Triangle is less sharper, the lines are very jagged, but it does not have as noticeable artifacts and in general it seems that it is closer to the original
|
|
|
diskorduser
|
2021-09-02 07:08:24
|
<@111445179587624960> have you tried this?
https://forum.luminous-landscape.com/index.php?topic=91754.0;wap2
|
|
|
Scope
|
2021-09-02 07:17:28
|
No, just personal experiments on the visual result to find something in between that will work for photos as well as art and text
|
|
|
|
Deleted User
|
|
diskorduser
magick pexels-lisa-1083822.png -colorspace RGB +sigmoidal-contrast 6.5,50% -filter Lanczos -distort resize 56.25% -crop 200x200+200+200 -sigmoidal-contrast 6.5,50% -colorspace sRGB +channel -ordered-dither o8x8,25 -strip dither.png
|
|
2021-09-02 12:19:44
|
You use 25 and not 256.
|
|
|
diskorduser
|
2021-09-02 04:27:33
|
so something went wrong during copy paste. sorry lol
|
|
|
|
Deleted User
|
|
_wb_
I mean something like a screenshot
|
|
2021-09-03 03:24:45
|
|
|
2021-09-03 03:24:46
|
|
|
2021-09-03 03:24:46
|
|
|
2021-09-03 03:24:47
|
|
|
2021-09-03 03:24:48
|
|
|
|
_wb_
Or an illustration with large areas of solid color
|
|
2021-09-03 03:25:01
|
|
|
2021-09-03 03:25:02
|
|
|
2021-09-03 03:25:02
|
|
|
2021-09-03 03:25:02
|
|
|
2021-09-03 03:25:03
|
|
|
2021-09-03 03:25:09
|
unscaled, scaled with no dithering, scaled with 2x2 ordered dithering, 4x4 and 8x8
|
|
2021-09-03 08:21:00
|
<@!794205442175402004> Well... are you going to use dithering by default now?
|
|
|
_wb_
|
2021-09-03 08:24:48
|
maybe - for rendering I think it's always a good idea, for compression maybe not always
|
|
|
|
Deleted User
|
2021-09-03 08:28:00
|
If you are concerned about compression, then your type of downsampling will have a greater impact than dithering.
|
|
|
|
veluca
|
2021-09-03 08:33:03
|
I do have a random CL for doing ordered dithering at decoding time
|
|
2021-09-03 08:33:10
|
it helps
|
|
|
_wb_
|
2021-09-03 08:35:09
|
does anyone know if ImageMagick does any dithering when converting its internal 16-bit buffers to 8-bit to encode them?
|
|
|
|
Deleted User
|
|
veluca
I do have a random CL for doing ordered dithering at decoding time
|
|
2021-09-04 04:29:20
|
What's a random CL? Anyway, if you would want to dither at decode time, you would have to store IM's output with more than 8 bpc. But maybe worth testing how much larger an image would get when storing the resized version at 10 or 12 bpc.
|
|
|
_wb_
does anyone know if ImageMagick does any dithering when converting its internal 16-bit buffers to 8-bit to encode them?
|
|
2021-09-04 04:30:19
|
It doesn't. And it also doesn't use Lanczos and doesn't rescale in linear space by default.
GIMP let's you choose what dithering to use when converting to 8 Bit but I don't remember what it displays as default. Audacity dithers by default though.
|
|
|
|
veluca
|
|
What's a random CL? Anyway, if you would want to dither at decode time, you would have to store IM's output with more than 8 bpc. But maybe worth testing how much larger an image would get when storing the resized version at 10 or 12 bpc.
|
|
2021-09-04 04:34:13
|
"random CL" here means "piece of code that was not submitted nor reviewed nor (I think) is visible in github or publicly anywhere" 😛 anyway, it does ordered dithering when doing the final float to 8bit integer conversion
|
|
|
|
Deleted User
|
2021-09-04 04:38:52
|
😮 Oh, so you mean lossy JXL specifically. Why did you do that in secret? And can't you just let that piece of code slip into the main branch with something you are meant to implement? 🤫
|
|
|
|
veluca
|
2021-09-04 04:39:52
|
in secret: because we didn't switch to github yet 😛
|
|
|
_wb_
|
2021-09-04 04:39:55
|
I think it was done before we moved to github
|
|
|
|
veluca
|
2021-09-04 04:40:09
|
it's not necessarily specific to lossy actually
|
|
|
_wb_
|
2021-09-04 04:40:18
|
I saw some WIP merge request on the private gitlab iirc
|
|
|
|
veluca
|
2021-09-04 04:40:42
|
and I *could* add it to the main branch, but implementing ordered ditherhing is not the hard part... the hard part is figuring out how to ask for it
|
|
|
_wb_
|
2021-09-04 04:42:17
|
I would either just always do it when int buffers are returned, or do it by default and have a decode option to disable it
|
|
|
|
veluca
|
2021-09-04 04:43:06
|
if you open an issue and/or discuss it with Lode... 😛
|
|
2021-09-04 04:43:17
|
I'd add it as a pixel format flag
|
|
|
|
Deleted User
|
|
veluca
it's not necessarily specific to lossy actually
|
|
2021-09-04 04:45:27
|
Ah, yes, of course. It would also be nice for >8 bpc lossless.
But the main complaint I had was that lossy JXL removed dithering from 8 bpc sources for it's internal representation but it doesn't add it back when decoding to 8 bpc and just strips away that additional info.
|
|
2021-09-04 04:46:43
|
<@!179701849576833024> Who is Lode?
|
|
|
|
veluca
|
2021-09-04 04:47:52
|
we don't remove dithering
|
|
2021-09-04 04:48:12
|
Lode is <@!768090355546587137> - aka one of the people that designs the API
|
|
|
|
Deleted User
|
|
veluca
we don't remove dithering
|
|
2021-09-04 04:49:13
|
Maybe not intentionally but it does happen.
|
|
|
|
veluca
|
2021-09-04 04:49:41
|
yes, that I totally believe
|
|
2021-09-04 04:50:24
|
I don't see the harm in adding it - but again, probably better discussed in an issue or something like that
|
|
|
|
Deleted User
|
2021-09-04 04:51:29
|
Ok, I will create an issue for that on GitHub soon.
|
|
|
diskorduser
|
2021-09-04 05:49:45
|
Mozjpeg q90 jpg to jxl 14-15% savings.
|
|
|
_wb_
|
2021-09-04 05:54:11
|
Biggest savings will be with the stupidest jpeg encoders like what cameras or default libjpeg-turbo produce (no huffman optimization, sequential). With encoders like mozjpeg that already do optimized entropy coding, it makes sense that the savings are smaller.
|
|
|
diskorduser
|
2021-09-04 05:55:26
|
Still 14% savings is better than 7%. Like someone claimed on reddit
|
|
|
|
veluca
|
2021-09-04 05:56:33
|
ehhh
|
|
2021-09-04 05:56:36
|
try q89
|
|
2021-09-04 05:56:43
|
I suspect it will be worse
|
|
2021-09-04 05:56:52
|
(i.e. on 420)
|
|
|
diskorduser
|
2021-09-04 06:03:45
|
http://0x0.st/-wze.jpg
|
|
|
_wb_
|
2021-09-04 06:09:29
|
We're a bit worse on 420 because chroma from luma cannot be used there, but I don't expect that to make more than 2-3% difference
|
|
2021-09-04 06:14:37
|
It would be interesting to make some plots on some corpus of what the savings are (say as a boxplot) w.r.t. different jpeg encoders/settings
|
|
2021-09-04 06:16:32
|
(420 vs 444, mozjpeg vs libjpeg-turbo default vs libjpeg-turbo -optimize -progressive, q10 to q100, something like that)
|
|
2021-09-04 06:23:55
|
Also, we _could_ try to improve jpeg recompression. Afaik we haven't really done much to try to get its DC to compress better or to tweak the choices in the AC ctx model in the case of jpeg recompression, besides the initial things we did there to get good enough to drop brunsli...
|
|
|
diskorduser
|
2021-09-04 06:36:22
|
IMO using Jpeg recompression mode for comparing with jpg seems funny. Like the unlord guy on reddit
|
|
|
_wb_
|
2021-09-04 08:21:54
|
Ah yes of course that's not how you should compare jxl lossy compression to jpeg lossy compression
|
|
|
|
Deleted User
|
|
veluca
if you open an issue and/or discuss it with Lode... 😛
|
|
2021-09-04 10:21:10
|
<@!768090355546587137> My part of the arrangement is done: https://github.com/libjxl/libjxl/issues/541 ;) ^^
|
|
2021-09-04 10:21:22
|
https://res.cloudinary.com/mattgore/064_crop_bad_extra.webp
https://res.cloudinary.com/mattgore/064_crop_good_extra.webp
|
|
|
|
veluca
|
2021-09-04 10:25:06
|
for all that I notice the improvement, there is still a bit of banding 😛
|
|
2021-09-04 10:25:24
|
having said that, much harder to notice
|
|
2021-09-04 10:25:44
|
but dithering has another issue: it disappears when you zoom...
|
|
|
|
Deleted User
|
2021-09-04 10:43:25
|
Zooming is done independent from JXL, so that's nothing libjxl should worry about.
|
|
2021-09-04 10:56:25
|
Btw, it also only disappears when zooming out. At least on the web, displaying images with a higher pixel density than what the screen is capable is rather unlikely. Tiny previews will be new and smaller image files. HiDPI screens might get pictures with better resolution but I don't think these would exceed the displays' capabilities.
|
|
|
|
veluca
|
2021-09-04 11:43:38
|
nah, at least in Chrome it also disappears when zooming in, unfortunately...
|
|
|
|
Deleted User
|
2021-09-05 01:16:14
|
Huh, how does that happen?
|
|
2021-09-05 01:21:37
|
Ughhh, that's awful, I just checked. But how does Chrome mess that up? Still, I think I heard that Chrome grabs the 32 Bit floats directly for its HDR pipeline or something. So Chrome is responsible for dithering anyways (which it currently doesn't do).
|
|
|
diskorduser
|
2021-09-05 02:18:39
|
What is the approximate cjxl's -d value for mozjpeg q60?
|
|
|
Cool Doggo
|
2021-09-05 04:14:34
|
it would vary between images, but for me it took -d 10.7 to get similar quality
|
|
|
Scope
|
2021-09-05 04:26:18
|
A simpler way is to measure by Butteraugli the average values of the images with mozjpeg q60 and this will roughly be the distance
|
|
|
|
veluca
|
|
diskorduser
What is the approximate cjxl's -d value for mozjpeg q60?
|
|
2021-09-05 07:34:29
|
What do you want to get? Similar quality or similar bitrate?
|
|
|
Ughhh, that's awful, I just checked. But how does Chrome mess that up? Still, I think I heard that Chrome grabs the 32 Bit floats directly for its HDR pipeline or something. So Chrome is responsible for dithering anyways (which it currently doesn't do).
|
|
2021-09-05 07:35:12
|
It's actually 16 bit floats ;) and I agree chrome should do better
|
|
|
diskorduser
|
|
veluca
What do you want to get? Similar quality or similar bitrate?
|
|
2021-09-05 08:02:48
|
Quality
|
|
2021-09-05 08:03:45
|
Just want to post some benchmark values whenever I see someone say, jxl is not better than jpeg for webuse.
|
|
|
|
veluca
|
2021-09-05 08:04:09
|
mhhh... I think we map cjxl's -q 60 to roughly -d 4... but I don't know how well that corresponds to mozjpeg -q 60
|
|
2021-09-05 08:04:28
|
but I'd also say -q 60 is pretty much the low end of web use by most accounts
|
|
|
_wb_
|
2021-09-05 08:29:02
|
Facebook is interested in -d 3, and facebook (like any social media) is not exactly known for its high-fidelity transcoding
|
|
2021-09-05 08:29:46
|
I'd say -d 2 is more or less a reasonable setting for 'median web quality'
|
|
2021-09-05 08:31:46
|
Maybe -d 1 for high-fidelity use cases (luxury brands who really don't want to see any artifacts on their expensive products), -d 3 for high-traffic use cases (or developing world use cases) where saving bandwidth is more important than preserving fidelity
|
|
2021-09-05 08:33:25
|
Maybe -d 4 for those who really want to risk artifacts to save bandwidth, but I think it's the low end indeed
|
|
|
|
veluca
|
|
_wb_
Facebook is interested in -d 3, and facebook (like any social media) is not exactly known for its high-fidelity transcoding
|
|
2021-09-05 09:55:27
|
more like 3.5 - IIRC they use ~ `-q 65` (a random attempt with imagemagick's identify says 71, but...)
|
|
|
_wb_
|
2021-09-05 09:58:35
|
Yes, with jpeg now, maybe with jxl they would use a bit higher fidelity than what they do now though, no? If it still gives good density improvements compared to what they do now...
|
|
|
|
veluca
|
2021-09-05 10:03:37
|
maybe
|
|
|
_wb_
|
2021-09-05 10:06:55
|
Anyway, let's say they keep doing ~d3.5, I still consider fb/twitter to be at the lower end of what "web image quality" is, they obviously have lots of traffic and it's all UGC so if it looks like crap it's basically not their problem as long as it doesn't hurt engagement (unlike say brand websites where crappy images directly reflect poorly on the brand)
|
|
2021-09-05 10:08:02
|
Companies like Nike (one of our customers) are doing more like ~d1.5, if I have to give a ballpark number for it
|
|
|
improver
|
2021-09-05 10:09:39
|
thats part of a reason i cant bear going to fb its just too crappy experience
|
|
|
_wb_
|
|
improver
thats part of a reason i cant bear going to fb its just too crappy experience
|
|
2021-09-05 10:21:58
|
The image quality is not the worst thing on fb imo, the people are often worse 😅
|
|
|
vladaad
|
2021-09-05 10:23:21
|
Having original versions of images/videos is actually a really nice feature of Discord
|
|
|
improver
|
2021-09-05 10:44:01
|
there actually are some p cool people but i didn't find them from my irl connections
|
|
2021-09-05 10:44:23
|
so it may b a bit difficult
|
|
2021-09-05 10:44:58
|
i prefer vk as site but i don't really browse it much either, other than follow some artists
|
|
2021-09-05 10:45:14
|
its got open original function too :>
|
|
|
Traneptora
|
|
_wb_
The image quality is not the worst thing on fb imo, the people are often worse 😅
|
|
2021-09-10 10:54:38
|
I take it you haven't seen FB_GENLOSS_DCT_CRUD.jpg.jpg.jpg.jpg
|
|
|
_wb_
|
2021-09-10 12:15:31
|
Ah yes, generation loss is a big problem when things travel between social media platforms and they all stupidly recompress from pixels
|
|
2021-09-10 12:16:52
|
Some memes get so deep-fried by jpg that the text becomes nearly illegible
|
|
|
Traneptora
|
2021-09-12 02:15:32
|
tfw deep fried memes are really a cultural relic of FB_jpg.jpg
|
|
2021-09-12 02:15:47
|
also you say "they all stupidly recompress from pixels"
|
|
2021-09-12 02:15:58
|
but keep in mind that this is largely the fault of browsers rather than users
|
|
2021-09-12 02:16:33
|
a user sees and image and right clicks and picks "copy image" and then goes to another tab and pushes Ctrl+V, it's whatever is handling the clipboard that only supports pixel data (or PNG) clipboards doing the decoding
|
|
2021-09-12 02:16:50
|
which atm is all major operating systems' UI
|
|
2021-09-12 02:17:30
|
you can't expect users to right click save image to hard drive and then upload it
|
|
|
w
|
2021-09-12 02:18:03
|
i think more people are hitting save on their phones than right clicking and hitting copy
|
|
|
Traneptora
|
2021-09-12 02:19:31
|
that might be true, but the point still is there
|
|
|
w
|
2021-09-12 02:19:34
|
also how deep fried an image is is a good indication of how much it has been reposted
|
|
|
Traneptora
|
2021-09-12 02:19:50
|
users aren't recompressing images cause they don't know better, users are doing whatever is convenient for them
|
|
|
w
|
2021-09-12 02:19:50
|
so i too find merit in deep fried memes
|
|
|
Traneptora
|
2021-09-12 02:20:03
|
and it's the responsibility of the software they use to make the convenient thing the correct thing, IMO
|
|
2021-09-12 02:20:33
|
like I don't think you can blame users for this
|
|
|
_wb_
|
2021-09-12 06:02:19
|
Copy/pasting images is a relatively recent thing though, no?
|
|
2021-09-12 06:02:53
|
Before that, it was always download and then reupload
|
|
2021-09-12 06:04:15
|
Afaik, fb and twitter etc still recompress anything you throw at them, even if it's a q20 jpeg, even if the recompressed fils is 5x as large as what you uploaded
|
|
|
Cool Doggo
|
|
_wb_
Copy/pasting images is a relatively recent thing though, no?
|
|
2021-09-12 04:15:14
|
From what I remember it has been a thing for about a year or 2
|
|
2021-09-12 04:15:37
|
Definitely could be wrong
|
|
|
_wb_
|
2021-09-12 04:53:28
|
Yes, something like that I think
|
|
2021-09-12 04:53:55
|
That's relatively recent - fb and twitter are quite a bit older than that
|
|
|
fab
|
2021-09-20 11:26:31
|
|
|
2021-09-20 11:26:32
|
Heavy png
|
|
2021-09-20 11:27:01
|
Thats with the first example image default
|
|
2021-09-20 11:29:13
|
|
|
2021-09-20 11:29:43
|
17 seconds for the Image
|
|
2021-09-20 11:30:42
|
Is jxl wasm snapdragon 780g not really faster than i3 330m maybe on wasm a bit but dont know Just see the screenshots i made
|
|
|
monad
|
2021-09-28 09:17:26
|
```Lossless recommendations comparison 2021-09-27
g0 = cjxl -d 0 -e 9 -E 3 -I 1 -g 0
g1 = cjxl -d 0 -e 9 -E 3 -I 1 -g 1
g2 = cjxl -d 0 -e 9 -E 3 -I 1 -g 2
g3 = cjxl -d 0 -e 9 -E 3 -I 1 -g 3
P0 = cjxl -d 0 -e 9 -I 0 -P 0 -g 3 --patches 0
P4 = cjxl -d 0 -e 9 -I 0 -P 4 -g 3 --patches 0
WebP = cwebp -z 9 -metadata all
PNG = pingo -s9 -nostrip
cjxl v0.6.0 0.6~alpha20210820161555-0+gite00ac57
cwebp v1.2.0
pingo v0.99
Total images 222
2D art 42
3D art 18
comic/manga 16
generated 8
graphic 11
misc 11
mixed 23
photo 49
pixel art 23
reduced palette 4
text 17
encoder mean bpp savings wins
g0 3.559 31.19% 9
g1 3.475 32.81% 19
g2 3.451 33.28% 59
g3 3.577 30.86% 105
P0 6.302 -21.83% 19
P4 5.469 -5.72% 0
WebP 4.025 22.18% 20
PNG 5.173 0.00% 1
g2/PNG 3.444 33.43% 60
g3/PNG 3.569 31.01% 106
g2/P0/PNG 3.435 33.60% 79
g3/P0/PNG 3.562 31.15% 125
g2/WebP/PNG 3.421 33.87% 80
g3/WebP/PNG 3.531 31.73% 126
g2/g3/PNG 3.427 33.76% 159
smallest 3.386 34.55% 222```
|
|
|
_wb_
|
2021-09-28 12:14:43
|
what does g2/PNG mean? smallest of g2 and PNG?
|
|
|
monad
|
2021-09-28 08:42:23
|
Yes. I figure if you have a bunch of PNGs to start with, it makes sense to compare to their original size and keep the smaller file.
|
|
2021-09-28 08:50:03
|
'smallest' takes the smallest file out of all 8 options.
|
|
|
|
veluca
|
2021-09-28 09:49:23
|
good to know that -I 0 -P 4 is never useful...
|
|
|
Cool Doggo
|
2021-09-28 10:53:49
|
funny to me that the P0 has a much worse average than P4 but P4 still has no wins
|
|
|
monad
|
2021-09-28 11:57:59
|
By bpp, the closest P4 got to a win was on this image: P4 0.139 bpp, WebP 0.127 bpp. P0 was also slightly better than P4.
|
|
|
fab
|
2021-10-01 09:01:14
|
|
|
2021-10-01 09:04:05
|
IT LOOks blurrier than -d 0.843 -s 8 -I 0.881
|
|
2021-10-01 09:04:21
|
as the image i'm seeing with jpg there is a tiny difference
|
|
2021-10-01 09:06:26
|
that's an original jpg
|
|
2021-10-01 09:06:26
|
|
|
2021-10-01 09:06:56
|
as you can see is better in some parts
|
|
2021-10-01 09:08:37
|
|
|
2021-10-01 09:08:57
|
jxl it looks like a 91,8 kb image
|
|
2021-10-01 09:15:16
|
i'm trying -q 97.78 -I 0.878 -s 9 --use_new_heuristics
|
|
2021-10-01 09:18:48
|
|
|
2021-10-01 09:19:03
|
639 kb vs 125 kb vs 284 kb
|
|
2021-10-01 09:25:07
|
use -q 91.028 -s 8 for jpg source
|
|
2021-10-01 09:25:17
|
if you want to convert
|
|
2021-10-01 09:26:28
|
|
|
2021-10-01 09:26:32
|
that's original of jpg screenshots of xiaomi 639 kb
|
|
2021-10-01 09:26:43
|
so is normal that any encoder can't make miracles
|
|
2021-10-01 09:27:24
|
i'm using now HIQ ocr screenshot but the png are 8 bit so don't know is it a problem?
|
|
|
Fraetor
|
2021-10-01 09:31:48
|
If it is an SDR display that will be fine.
|
|
|
fab
|
2021-10-01 09:34:24
|
no i 'm talking if i want to re encode those images in jxl s 7 d 1
|
|
2021-10-01 09:34:30
|
will they display good
|
|
2021-10-01 09:34:56
|
the encoder will do the most optimal conversion
|
|
2021-10-01 09:35:06
|
considering they are switching more pipelines to 16 bit
|
|
2021-10-01 09:35:16
|
and floats works at 32 bit internally
|
|
|
Fraetor
|
2021-10-01 09:35:49
|
The 16th bit error on an 8 bit input will be insignificant, so that should be totally fine.
|
|
2021-10-01 09:36:13
|
Even less significant for the 32 bit floats.
|
|
|
fab
|
2021-10-01 09:36:58
|
should i delete HIQ ocr screenshot and try to find another program without ads than can shoot png in 16 bit
|
|
2021-10-01 09:37:04
|
maybe in f droid
|
|
2021-10-01 09:37:08
|
because i have f droid
|
|
|
Fraetor
|
2021-10-01 09:39:18
|
Surely for an accurate representation you want to capture the pixels rendered to the screen, which will probably be 8 bit, or if it really is HDR then 10 bit?
|
|
|
fab
|
2021-10-01 09:39:26
|
HIQ ocr screenshot don't have ADS
|
|
2021-10-01 09:39:52
|
i have a 400 euros phone
|
|
2021-10-01 12:34:38
|
|
|
2021-10-01 12:34:39
|
|
|
2021-10-01 12:35:04
|
i feel on those type of image avif is more efficient and if properly tuned and using cpu can re encode those image well
|
|
2021-10-01 12:36:58
|
|
|
2021-10-01 12:37:19
|
also on those type of image delta palette s 9 is more efficient
|
|
2021-10-01 12:38:08
|
for jpg encoding is already the best the build jamaika did
|
|
2021-10-01 12:38:40
|
for animation it can be improved currently is only 1:8 compression but the legs are rendered rightly ways
|
|
2021-10-01 12:39:45
|
for png is great it has very low bpp and it looks good
|
|
2021-10-01 12:40:04
|
it can reduce your image to 85% less from jpg
|
|
2021-10-01 12:40:16
|
png not tested but should be higher
|
|
2021-10-01 12:40:48
|
is a bit slow 39 minutes to encode 310 images, is right i can duplicate the command
|
|
2021-10-01 01:31:05
|
FOR FB PHOTOS THOUGH IT SUCKS
|
|
2021-10-01 01:31:17
|
In reencoding
|
|
2021-10-01 01:31:54
|
The new algorithm has Better speed 1 mpx s
|
|
2021-10-01 01:33:03
|
30.3 kb getting good appeal in cjxl
|
|
2021-10-01 01:35:33
|
THOUGH jaimaka encoder was good as s1 d1
|
|
2021-10-01 01:37:18
|
D 1 not good for fb photos trying s 8
|
|
2021-10-01 01:45:32
|
A bit improved in the -d 0.568 -s 8 -I 0.238 range
|
|
2021-10-01 01:45:38
|
but not for fb
|
|
|
eddie.zato
|
2021-10-03 11:48:51
|
`-e 9` is faster now, but compression has suffered. Tried it on one random jpeg:
|
|
2021-10-03 11:48:55
|
```
PS > Measure-Command {cjxl 0.jpg 1.jxl -e 9}
JPEG XL encoder v0.7.0 c31dca7 [SSE4]
Read 4296x2709 image, 38.0 MP/s
Encoding [Container | JPEG, lossless transcode, tortoise | JPEG reconstruction data], 4 threads.
Compressed to 6131413 bytes (4.215 bpp).
4296 x 2709, 0.06 MP/s [0.06, 0.06], 1 reps, 4 threads.
Including container: 6132075 bytes (4.215 bpp).
TotalSeconds : 198,4053449
PS > Measure-Command {cjxl 0.jpg 3.jxl -e 9}
JPEG XL encoder v0.7.0 0c5cf04 [SSE4]
Read 4296x2709 image, 42.1 MP/s
Encoding [Container | JPEG, lossless transcode, tortoise | JPEG reconstruction data], 4 threads.
Compressed to 6152671 bytes (4.229 bpp).
4296 x 2709, 1.03 MP/s [1.03, 1.03], 1 reps, 4 threads.
Including container: 6153333 bytes (4.230 bpp).
TotalSeconds : 11,7175869
```
|
|
|
Scope
|
2021-10-03 02:05:27
|
I think it's because:
> don't call ClusterGroups() at -e 9, it makes -e 9 extremely slow for little benefit
|
|
|
_wb_
|
2021-10-03 02:38:29
|
Maybe try it on a few more jpegs to get some more data points
|
|
2021-10-03 02:40:06
|
I only tried it on a bunch of ImageMagick/libjpeg-turbo encoded q70/q90 jpegs, and there I had one or two that got larger and 20 or so that became smaller
|
|
|
eddie.zato
|
2021-10-03 02:40:43
|
A few images. The changes are confusing:
|
|
2021-10-03 02:40:48
|
```
Name Length
---- ------
1_e8.jxl 6273416 *
1_e9.jxl 6275158
1.jpg 6765844
2_e8.jxl 3962774 *
2_e9.jxl 3964212
2.jpg 4180185
3_e8.jxl 8101448 *
3_e9.jxl 8103363
3.jpg 9316706
4_e8.jxl 6155635
4_e9.jxl 6153333
4.jpg 6866353
5_e8.jxl 2648770 *
5_e9.jxl 2648938
5.jpg 3271338
6_e8.jxl 4775569 *
6_e9.jxl 4777064
6.jpg 5333906
7_e8.jxl 3342097 *
7_e9.jxl 3343268
7.jpg 3958760
8_e8.jxl 4841488
8_e9.jxl 4791002
8.jpg 5939988
9_e8.jxl 3998137
9_e9.jxl 3997743
9.jpg 4763973
```
|
|
|
_wb_
|
2021-10-03 02:41:14
|
I do imagine that not doing ClusterGroups() does come at a cost in density, it's just that it made e9 really, really slow
|
|
2021-10-03 02:41:55
|
What are the stars?
|
|
2021-10-03 02:42:20
|
It would be useful to have before/after numbers
|
|
|
eddie.zato
|
2021-10-03 02:42:38
|
`-e 8` gives a smaller size than `-e 9`
|
|
|
_wb_
|
2021-10-03 02:43:13
|
Ah, interesting
|
|
2021-10-03 02:45:42
|
I suppose we're still not really estimating very well what the signaling cost of the MA tree itself is, or something like that.
|
|
|
eddie.zato
|
2021-10-03 02:46:47
|
I don't have the "old" `cjxl` before the commit at the moment, but I'll try to compare later with the encoding time.
|
|
2021-10-03 05:24:33
|
```
Old value -> New value
Filename - original size
Time in seconds Size in bytes Speed
1.jpg - 6765844
1,13 -> 1,53 6277585 -> 6273416 -e 8
545,36 -> 11,17 6241508 -> 6275158 -e 9
2.jpg - 4180185
0,53 -> 0,8 3962310 -> 3962774 -e 8
80,03 -> 6,48 3932227 -> 3964212 -e 9
3.jpg - 9316706
1,86 -> 2,5 8109369 -> 8101448 -e 8
674,61 -> 22,32 8098279 -> 8103363 -e 9
4.jpg - 6866353
1,35 -> 1,69 6165978 -> 6155635 -e 8
207,34 -> 11,79 6132075 -> 6153333 -e 9
5.jpg - 3271338
0,76 -> 1,07 2652490 -> 2648770 -e 8
59,58 -> 7,71 2651724 -> 2648938 -e 9
6.jpg - 5333906
0,92 -> 1,39 4780156 -> 4775569 -e 8
221,03 -> 9,81 4768952 -> 4777064 -e 9
7.jpg - 3958760
1,12 -> 1,6 3345219 -> 3342097 -e 8
240,11 -> 9,11 3339234 -> 3343268 -e 9
8.jpg - 5939988
0,72 -> 1 4846401 -> 4841488 -e 8
275,21 -> 7,41 4785088 -> 4791002 -e 9
9.jpg - 4763973
0,73 -> 0,97 4001580 -> 3998137 -e 8
69,88 -> 6,65 3999953 -> 3997743 -e 9
```
|
|
2021-10-03 05:27:16
|
6 of 9 files are `-e 8` smaller than `-e 9`
|
|
|
_wb_
|
2021-10-03 05:27:41
|
That's kind of weird
|
|
2021-10-03 05:29:51
|
What's the source encoder of the jpegs? Phone camera?
|
|
|
eddie.zato
|
2021-10-03 05:32:38
|
`1-7` - art and photos from the Web
`8,9` - photos taken by GoogleCameraMod with jpeg quality 95 or 97
|
|
2021-10-03 05:34:22
|
I can share these images if necessary
|
|
|
_wb_
|
2021-10-05 01:40:10
|
|
|
2021-10-05 01:40:11
|
|
|
2021-10-05 01:40:12
|
|
|
2021-10-05 01:40:13
|
|
|
2021-10-05 01:40:15
|
|
|
2021-10-05 01:40:16
|
|
|
2021-10-05 01:42:56
|
is that useful? should I upload more of these for the other images?
|
|
2021-10-05 01:43:10
|
at different distances maybe?
|
|
|
Scope
|
2021-10-05 01:47:00
|
Yep, some difference is noticeable, it might also be useful to look additionally at something like -d 8, for extreme cases
|
|
2021-10-05 01:49:52
|
There seems to be less ringing artifacts in some places and it even partially helped with the color bleeding/shifting
|
|
|
_wb_
|
2021-10-05 01:50:23
|
|
|
2021-10-05 01:50:23
|
|
|
2021-10-05 01:50:25
|
|
|
2021-10-05 01:50:26
|
|
|
2021-10-05 01:50:28
|
|
|
2021-10-05 01:50:30
|
|
|
2021-10-05 01:50:31
|
|
|
2021-10-05 01:50:32
|
|
|
2021-10-05 01:50:34
|
|
|
2021-10-05 01:50:35
|
|
|
2021-10-05 01:50:36
|
|
|
2021-10-05 01:50:37
|
|
|
2021-10-05 01:50:39
|
|
|
2021-10-05 01:50:40
|
|
|
2021-10-05 01:52:52
|
d8 looks like crap of course, both before and after
|
|
2021-10-05 01:56:44
|
overall statistics on this specific test set:
|
|
2021-10-05 01:56:45
|
before:
|
|
2021-10-05 01:56:46
|
```
Encoding kPixels Bytes BPP E MP/s D MP/s Max norm pnorm BPP*pnorm Bugs
------------------------------------------------------------------------------------------------------------
jxl:d0.5 14239 2624388 1.4744184 1.360 21.978 1.76332939 0.35466592 0.522925947102 0
jxl:d1 14239 1852011 1.0404860 1.320 16.866 2.35046148 0.63201660 0.657604433829 0
jxl:d2 14239 1254321 0.7046953 1.420 16.568 3.52525187 1.04249624 0.734642204710 0
jxl:d3 14239 985148 0.5534701 1.288 16.642 4.95267868 1.15051804 0.636777333556 0
jxl:d4 14239 820963 0.4612286 1.033 6.274 6.99091768 1.46571926 0.676031706800 0
jxl:d6 14239 631128 0.3545767 0.997 5.915 8.09897232 1.90482258 0.675405611653 0
jxl:d8 14239 520709 0.2925417 1.030 6.309 11.11856842 2.37287773 0.694165665527 0
Aggregate: 14239 1071385 0.6019191 1.195 11.328 4.62918211 1.08595991 0.653659975689 0
```
|
|
2021-10-05 01:56:59
|
after:
|
|
2021-10-05 01:57:00
|
```
Encoding kPixels Bytes BPP E MP/s D MP/s Max norm pnorm BPP*pnorm Bugs
------------------------------------------------------------------------------------------------------------
jxl:d0.5 14239 2553538 1.4346138 0.863 16.136 1.57890558 0.36139130 0.518456956764 0
jxl:d1 14239 1790680 1.0060294 0.947 12.760 2.34807730 0.64451073 0.648396741124 0
jxl:d2 14239 1202531 0.6755990 0.985 15.021 3.82520533 1.06690052 0.720796872575 0
jxl:d3 14239 942403 0.5294554 0.948 11.234 6.67540455 1.21610050 0.643870923626 0
jxl:d4 14239 783129 0.4399730 1.014 6.837 7.27154827 1.54661112 0.680467080304 0
jxl:d6 14239 601603 0.3379891 1.025 6.948 11.29334736 2.05752738 0.695421799655 0
jxl:d8 14239 496335 0.2788480 1.028 7.453 11.60211468 2.59731948 0.724257429195 0
Aggregate: 14239 1027817 0.5774423 0.971 10.300 5.10368599 1.13970732 0.658115235775 0
```
|
|
2021-10-05 01:58:25
|
so according to bpp*pnorm, it's an improvement at d0.5, d1 and d2, and a regression at higher distances
|
|
2021-10-05 01:59:00
|
(but of course the question is to what extent butteraugli can be trusted for this type of image content at high distance, since that's not really what it was designed for)
|
|
|
Scope
|
2021-10-05 02:06:28
|
Yep, -d 8 is excessive, but a lot of people like to compare at this quality and also the less noticeable artifacts - the more people like the result (on the loss of detail or blurring usually pay less attention)
It would also be interesting to see if these changes would help on top, though it would probably require re-tuning 🤔 <https://github.com/libjxl/libjxl/pull/403>
|
|
2021-10-05 02:11:56
|
Later I will also look at the difference as soon as I can compile
|
|
|
fab
|
|
Scope
Later I will also look at the difference as soon as I can compile
|
|
2021-10-05 02:25:16
|
You will do only for avx2
|
|
2021-10-05 03:32:17
|
this i like more as it is
|
|
2021-10-05 03:32:18
|
https://sneyers.info/comparison/before/cloth.png.jxl_d2.7_epf0.png
|
|
|
_wb_
|
2021-10-05 03:36:17
|
at what distance?
|
|
|
fab
|
2021-10-05 03:36:51
|
d 4.0 looks good definitely something i would use on new heuristics
|
|
2021-10-05 03:36:57
|
if i had same build
|
|
2021-10-05 03:37:09
|
i'm also comparing with original
|
|
2021-10-05 03:37:20
|
but currently i did the worst settigns
|
|
2021-10-05 03:37:46
|
|
|
2021-10-05 03:37:51
|
at d 4 this isn't preserved
|
|
|
_wb_
|
2021-10-05 03:39:09
|
well it is kind of to be expected at d4 that fidelity is not good
|
|
2021-10-05 03:39:23
|
question is if my changes cause it to be worse than it was or not
|
|
|
fab
|
2021-10-05 03:39:37
|
d1 is underexposed way
|
|
|
_wb_
|
2021-10-05 03:39:47
|
underexposed?
|
|
|
fab
|
2021-10-05 03:39:57
|
not worse on d1 worse
|
|
2021-10-05 03:40:19
|
d 2.7 epf 0 i don't like it but not sure if worse because i have problems so i can't judge well
|
|
2021-10-05 03:40:23
|
and also not good display
|
|
2021-10-05 03:40:32
|
i'm watching on a 15,6 samsung
|
|
2021-10-05 03:41:15
|
worse
|
|
2021-10-05 03:41:26
|
|
|
2021-10-05 03:42:08
|
maybe good for the average user but not for me that i'm used to jxl
|
|
2021-10-05 03:42:43
|
|
|
2021-10-05 03:42:44
|
though this is good
|
|
2021-10-05 03:43:45
|
no problem at d1
|
|
2021-10-05 03:44:21
|
|
|
2021-10-05 03:45:25
|
this was before
|
|
2021-10-05 03:45:35
|
|
|
2021-10-05 03:45:42
|
this bother me
|
|
2021-10-05 03:45:53
|
too fidelity in there
|
|
2021-10-05 03:46:58
|
|
|
2021-10-05 03:46:59
|
this looks way saturated
|
|
2021-10-05 03:47:03
|
it blinded me
|
|
2021-10-05 03:49:36
|
d2 is good
|
|
2021-10-05 03:50:38
|
d2 is not bad
|
|
2021-10-05 03:51:48
|
d1 compressed
|
|
2021-10-05 03:52:20
|
|
|
2021-10-05 03:55:05
|
the red looks blurry
|
|
2021-10-05 03:55:07
|
on my screen
|
|
2021-10-05 03:55:52
|
like too sharp on the greens
|
|
2021-10-05 03:56:19
|
like it doesn't look drastically different
|
|
2021-10-05 03:58:11
|
like on -d 2.36 -s 9 -I 0.656 --epf=2 --patches=0
|
|
2021-10-05 03:58:15
|
sure it looks better
|
|
2021-10-05 03:58:31
|
and q76 and up look decent
|
|
2021-10-05 04:03:09
|
you should optimize for -d 0.847
|
|
2021-10-05 04:03:22
|
this same heuristic
|
|
2021-10-05 04:03:45
|
scope what you think
|
|
2021-10-05 04:06:07
|
at -d 2.769 -s 6 -I 0.551 --epf=2 --patches=1 --gaborish=0 --intensity_target=282
|
|
2021-10-05 04:24:33
|
the problem is this read first 4 lines https://discord.com/channels/794206087879852103/803645746661425173/894975996346912790
|
|
|
Scope
|
2021-10-05 05:31:48
|
Lossy quality
|
|
|
_wb_
question is if my changes cause it to be worse than it was or not
|
|
2021-10-05 05:47:44
|
^ Yep, #689 is noticeably better overall, although the images are more blurry, but in my opinion it is much better visually perceived and better to sacrifice sharpness but eliminate artifacts as much as possible (in my experience people really hate artifacts)
|
|
|
diskorduser
|
2021-10-05 05:50:55
|
Yeah. No need for fidelity on low bpp. Just reduce artifacts.
|
|