|
A homosapien
|
2024-11-04 06:00:53
|
I see
|
|
2024-11-04 06:10:46
|
It's just bad practice to turn a lossy input into a lossless one. `Test1.mkv` was 4.2 MB and a lossless AVIF equivalent was around 75 MB. That's like having a quality 80 jpeg and saving as a png or something.
|
|
|
|
JKUser4592
|
2024-11-04 06:11:55
|
Let's just say I can't upload my videos publicly, and can only do so if they are images.
|
|
|
A homosapien
|
2024-11-04 06:20:34
|
Alright then, I recommend adding a little bit of denoising and lossy compression, 75+ MB for a 5 second animation is HUGE. Not to mention my computer struggled to decode & play the animated AVIF, it was constantly stuttering/hitching.
|
|
2024-11-04 06:22:01
|
Here is a simple example, a high quality lossy avif. It looks visually indistinguishable to me. And the best part? It's only 1.8 MB
|
|
2024-11-04 06:23:01
|
And it doesn't stutter or hitch like the lossless versions either!
|
|
2024-11-04 06:24:17
|
My ffmpeg input:`ffmpeg -i Test1.mkv -c:v libaom-av1 -cpu-used 4 -crf 18 Test1.avif`
|
|
|
|
JKUser4592
|
2024-11-04 06:52:19
|
But now do you see my point now on why I chose AVIF?
|
|
|
A homosapien
|
2024-11-04 06:57:59
|
yes, because the input is already video (and you can't upload that video), so in this case AVIF would actually be the best format to use
|
|
2024-11-04 07:00:03
|
Still though, please use lossy compression, that's what AV1 codec excels at.
Using lossless with AVIF is like trying to use a car as a boat, it can work... albeit very poorly. 😅
|
|
|
jonnyawsom3
|
2024-11-04 07:03:53
|
I mean, it helps that AVIF is a video :P
|
|
|
A homosapien
|
2024-11-04 07:07:13
|
That's the main reason yeah
|
|
|
JKUser4592
But now do you see my point now on why I chose AVIF?
|
|
2024-11-04 07:25:04
|
AVIF is really good at lossy compression, I have no problem with it. When you said lossless AVIF that was a red flag to me. Even with a video input choosing AVIF lossless over lossy is a bad idea imo.
|
|
|
Nova Aurora
|
|
RaveSteel
|
2024-11-05 05:45:52
|
Do you mean Apple live photos?
|
|
|
CrushedAsian255
|
2024-11-06 11:55:12
|
They mean like animated AVIF but HEVC
|
|
|
BlueSwordM
|
2024-11-07 02:34:33
|
Hello.
|
|
2024-11-07 02:34:34
|
https://aomedia-review.googlesource.com/c/aom/+/194662
|
|
|
juliobbv
|
|
BlueSwordM
https://aomedia-review.googlesource.com/c/aom/+/194662
|
|
2024-11-07 03:05:46
|
😮 me jumpscare
|
|
|
CrushedAsian255
|
2024-11-07 04:23:07
|
Could libjxl plagiarise, ahem I mean *take inspiration from* some of the improvements from AV1/AVIF?
|
|
|
BlueSwordM
|
|
CrushedAsian255
Could libjxl plagiarise, ahem I mean *take inspiration from* some of the improvements from AV1/AVIF?
|
|
2024-11-07 04:39:47
|
No? Most of the improvements came from JXL.
We just worked a lot on them.
If you find anything that we do that is better, just take it and shove it into libjxl.
|
|
|
juliobbv
|
|
CrushedAsian255
Could libjxl plagiarise, ahem I mean *take inspiration from* some of the improvements from AV1/AVIF?
|
|
2024-11-07 04:47:27
|
the major ideas are in libjxl already, but some of the 'knobs' could be adjusted to be closer PSY's in the low to mid-high fidelity range
|
|
2024-11-07 04:48:06
|
it's just a matter of someone having time to sit down and tune this or that feature
|
|
|
CrushedAsian255
|
|
juliobbv
it's just a matter of someone having time to sit down and tune this or that feature
|
|
2024-11-07 04:48:18
|
Genetic algorithm?
|
|
|
HCrikki
|
2024-11-07 04:52:34
|
code is efficient already. any talk of quality regarding libjxl tends to be related to libjxl (more specifically, the jxl authors' release of libjxl) prioritizing real visual quality rather than need 3rdparty builds with different priorities and tuning
|
|
|
CrushedAsian255
|
2024-11-07 04:53:32
|
Libjxl low-medium quality tune version that auto activates at d>10?
|
|
|
juliobbv
|
|
CrushedAsian255
Genetic algorithm?
|
|
2024-11-07 04:54:05
|
probably something closer to more optimal transform size selection
|
|
|
HCrikki
|
2024-11-07 04:54:21
|
personally i think efforts should be adaptive to resolution so smaller images are smaller and larger images drop 1 effort in order to maintain encoding performance, with e7 the default clearly marked and promoted as *recommended* for any purpose that is not fast capturing/screenshoting (e1-3)
|
|
|
CrushedAsian255
|
2024-11-07 04:55:00
|
That could make sense
|
|
|
juliobbv
|
2024-11-07 04:55:03
|
somebody posted some images where 0.8 performs better than 0.11, and it was partly due to a different selection of transform sizes
|
|
|
CrushedAsian255
|
2024-11-07 04:55:19
|
Like larger images don’t get as many butterfly iterations
|
|
2024-11-07 04:55:26
|
Butter-something thing
|
|
2024-11-07 04:55:33
|
Can never remember the spelling
|
|
|
juliobbv
|
2024-11-07 04:56:39
|
when it doubt, just call it 🧈
|
|
2024-11-07 04:56:50
|
but it's butteraugli
|
|
|
CrushedAsian255
|
2024-11-07 04:57:40
|
Butter that encoding! 🛬
|
|
|
jonnyawsom3
|
|
HCrikki
personally i think efforts should be adaptive to resolution so smaller images are smaller and larger images drop 1 effort in order to maintain encoding performance, with e7 the default clearly marked and promoted as *recommended* for any purpose that is not fast capturing/screenshoting (e1-3)
|
|
2024-11-07 09:05:53
|
I do kinda wish the Var in VarDCT was used under effort 5, since a lot of the time 3 or 4 is recommended/used instead so it's just 8x8 blocks anyway
|
|
2024-11-07 09:06:38
|
Then again, they tend to all be the same size at high quality anyway
|
|
|
CrushedAsian255
|
|
I do kinda wish the Var in VarDCT was used under effort 5, since a lot of the time 3 or 4 is recommended/used instead so it's just 8x8 blocks anyway
|
|
2024-11-07 09:29:29
|
JPEG XL: 8x8 DCT and the Weighted predictor
|
|
|
Naksu
|
2024-11-08 03:15:01
|
Do you know if it's possible to add a comment tag to a PNG file?
|
|
|
jonnyawsom3
|
2024-11-08 03:58:13
|
Kinda
|
|
|
|
JendaLinda
|
2024-11-09 08:29:20
|
I wanted to try the latest version of jpegli but it seems the Windows builds are missing the executables.
https://github.com/google/jpegli/actions/runs/11703639102
|
|
2024-11-09 08:29:54
|
I suppose the jpegli version bundled with libjxl is old. Are there newer Windows executables for jpegli available?
|
|
|
DZgas Ж
|
|
JendaLinda
I suppose the jpegli version bundled with libjxl is old. Are there newer Windows executables for jpegli available?
|
|
2024-11-09 11:03:42
|
I think it's time to fire all the developers. they are all too lazy to make build
|
|
2024-11-09 11:04:01
|
<:Google:806629068803932281> 👍
|
|
|
Naksu
|
|
Kinda
|
|
2024-11-09 11:16:57
|
How did you do that? It’s not natively possible on Windows.
|
|
|
jonnyawsom3
|
2024-11-09 11:42:04
|
Third party tools
|
|
2024-11-09 11:42:14
|
Tweakpng
|
|
|
Naksu
|
2024-11-09 11:42:20
|
Thanks
|
|
|
CrushedAsian255
|
2024-11-09 11:43:26
|
I wish more things supported the `svgz` extension
|
|
2024-11-09 11:43:50
|
like lots of things know it's an svg but ignore the fact that it is GZipped
|
|
2024-11-09 11:44:06
|
so this happens
|
|
|
|
JendaLinda
|
|
DZgas Ж
I think it's time to fire all the developers. they are all too lazy to make build
|
|
2024-11-09 04:25:08
|
To me it looks like some error, neither
`jpegli-x64-windows` nor `jpegli-x86-windows` includes jpegli binaries.
|
|
|
DZgas Ж
|
|
JendaLinda
To me it looks like some error, neither
`jpegli-x64-windows` nor `jpegli-x86-windows` includes jpegli binaries.
|
|
2024-11-09 04:36:36
|
hm... maybe https://artifacts.lucaversari.it/libjxl/libjxl/latest/ jxl-x64-windows-static.zip
|
|
|
|
JendaLinda
|
|
DZgas Ж
hm... maybe https://artifacts.lucaversari.it/libjxl/libjxl/latest/ jxl-x64-windows-static.zip
|
|
2024-11-09 04:39:03
|
After jpegli was moved to the separate repository, I'm not sure if the copy included in libjxl is being updated.
|
|
|
DZgas Ж
|
|
JendaLinda
After jpegli was moved to the separate repository, I'm not sure if the copy included in libjxl is being updated.
|
|
2024-11-09 04:41:43
|
An interesting question. I think it's better if you ask this in <#848189884614705192>
|
|
2024-11-10 05:56:42
|
Encoding of the original GIF file in 2024 (for example, for discord)
*I searched all kinds of sites that compress GIFs, all kinds of forums with programs, with keys for ffmpeg encoding... even one piece of shit on the output*
My compression algorithm from video to gif using terminal FFMPEG in 3 steps
```
ffmpeg -i VIDEO.mp4 -vf "scale=480:270:flags=spline+full_chroma_inp,mpdecimate=hi=64*50:lo=64*5:frac=1,nlmeans=1:5:5:5:5,hqdn3d=luma_spatial=3:chroma_spatial=2:chroma_tmp=20:luma_tmp=15,nlmeans=1:5:5:5:5,mpdecimate" temp.apng
```
```
ffmpeg -i temp.apng -vf "palettegen" palette.png
```
```
ffmpeg -i temp.apng -i palette.png -filter_complex "paletteuse=dither=none" out.gif
```
Explanation of the primary processing: gif can have any frame rate on each frame, but for some reason no one uses it anywhere at all. For the same reason, there is no FPS setting anywhere in my parameters. It is dynamic, completely dependent on the processing of the input video.
—mpdecimate filter removes frames that are very similar to each other, without encoding any gaps. `The strength of skipping similar frames is adjusted by the parameter lo=64*5 (64*4 skips less, 64*6 skips more)`
— nlmeans filter smooths out low-frequency spatial noise, which causes GIFs to make noise, losing information no matter what. `In the line 1:5:5:5:5 - the first digit indicates the suppression force, the rest indicate the length in pixels for noise analysis. To speed up coding, you can set 1:3:3:3:3`
—HQDN3D filter smooths out temporal noise when gradients move from one to the other.` The power is adjustable chroma_tmp=power (color) luma_tmp=power (brightness)`
|
|
|
RaveSteel
|
|
DZgas Ж
Encoding of the original GIF file in 2024 (for example, for discord)
*I searched all kinds of sites that compress GIFs, all kinds of forums with programs, with keys for ffmpeg encoding... even one piece of shit on the output*
My compression algorithm from video to gif using terminal FFMPEG in 3 steps
```
ffmpeg -i VIDEO.mp4 -vf "scale=480:270:flags=spline+full_chroma_inp,mpdecimate=hi=64*50:lo=64*5:frac=1,nlmeans=1:5:5:5:5,hqdn3d=luma_spatial=3:chroma_spatial=2:chroma_tmp=20:luma_tmp=15,nlmeans=1:5:5:5:5,mpdecimate" temp.apng
```
```
ffmpeg -i temp.apng -vf "palettegen" palette.png
```
```
ffmpeg -i temp.apng -i palette.png -filter_complex "paletteuse=dither=none" out.gif
```
Explanation of the primary processing: gif can have any frame rate on each frame, but for some reason no one uses it anywhere at all. For the same reason, there is no FPS setting anywhere in my parameters. It is dynamic, completely dependent on the processing of the input video.
—mpdecimate filter removes frames that are very similar to each other, without encoding any gaps. `The strength of skipping similar frames is adjusted by the parameter lo=64*5 (64*4 skips less, 64*6 skips more)`
— nlmeans filter smooths out low-frequency spatial noise, which causes GIFs to make noise, losing information no matter what. `In the line 1:5:5:5:5 - the first digit indicates the suppression force, the rest indicate the length in pixels for noise analysis. To speed up coding, you can set 1:3:3:3:3`
—HQDN3D filter smooths out temporal noise when gradients move from one to the other.` The power is adjustable chroma_tmp=power (color) luma_tmp=power (brightness)`
|
|
2024-11-10 07:45:11
|
gifski is a great tool based on ffmpeg
|
|
|
jonnyawsom3
|
2024-11-10 08:24:46
|
Doesn't take video input though
|
|
|
RaveSteel
|
2024-11-10 08:31:30
|
it does
|
|
|
Quackdoc
|
2024-11-10 08:34:00
|
isnt the whole point of gifski to take videos?
|
|
|
CrushedAsian255
|
2024-11-10 08:35:31
|
thought so
|
|
|
jonnyawsom3
|
2024-11-10 08:44:45
|
Rather, it's disabled by default so there's no binaries for it https://github.com/ImageOptim/gifski?tab=readme-ov-file#with-built-in-video-support
|
|
|
RaveSteel
|
2024-11-10 09:11:01
|
Ah, I did not expereince that due to installing it from my repos
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-10 11:36:32
|
also flexiGIF is quite good (but slow) for GIF optimization
|
|
|
A homosapien
|
2024-11-10 11:51:27
|
very very slow indeed
|
|
|
jonnyawsom3
|
2024-11-10 11:55:58
|
I'm having regrets
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-11 12:06:38
|
but I don't understand why it is so slow
bc it is advertized as LZW/GIF optimization (and in GIF it should only do LZW), and GIF optimization is like 10+ times slower than for a `.z` file
|
|
|
RaveSteel
|
2024-11-11 12:11:23
|
how does it compare to gifsicle?
|
|
|
A homosapien
|
2024-11-11 12:16:22
|
It's basically an LZW brute forcer, that's why it's unbearably slow
|
|
|
RaveSteel
how does it compare to gifsicle?
|
|
2024-11-11 12:17:23
|
gifsicle can usually get within 99.5% of the size while being orders of magnitudes faster
|
|
2024-11-11 12:19:18
|
Also fun fact, flexiGIF doesn't do palette sorting, so the optimal workflow is to run the GIF through gifsicle *then* through flexiFGIF
|
|
2024-11-11 12:20:24
|
And then after 20 years you have the perfectly optimized GIF!
|
|
2024-11-11 12:20:28
|
https://tenor.com/view/skeleton-falling-gif-27355771
|
|
|
jonnyawsom3
|
2024-11-11 12:32:16
|
As far as I'm aware flexiGIF is purely an LZW optimizer, trying to squeeze a few more bits out of the existing data. It does however have the defaults set to be a brute force solution too...
|
|
2024-11-11 12:38:30
|
`'flexi.gif' is 18270 bytes smaller than 'Test.gif' (621919 vs 640189 bytes) => you saved 2.854%. Finished after 2651.14 seconds.`
|
|
2024-11-11 12:53:57
|
```wintime -- cjxl -d 0 Test.gif Test.jxl -e 10
JPEG XL encoder v0.11.0 0185fcd [AVX2,SSE2]
Encoding [Modular, lossless, effort: 10]
Compressed to 512.7 kB (0.736 bpp/frame).
365 x 159, 0.002 MP/s [0.00, 0.00], , 1 reps, 16 threads.
PageFaultCount: 289985
PeakWorkingSetSize: 42.15 MiB
QuotaPeakPagedPoolUsage: 33.38 KiB
QuotaPeakNonPagedPoolUsage: 7.828 KiB
PeakPagefileUsage: 40.56 MiB
Creation time 2024/11/11 00:47:30.790
Exit time 2024/11/11 00:48:05.561
Wall time: 0 days, 00:00:34.770 (34.77 seconds)
User time: 0 days, 00:00:01.140 (1.14 seconds)
Kernel time: 0 days, 00:00:34.640 (34.64 seconds)
wintime -- cjxl -d 0 Test.apng Test.jxl -e 10
JPEG XL encoder v0.11.0 0185fcd [AVX2,SSE2]
Encoding [Modular, lossless, effort: 10]
Compressed to 505.2 kB (0.725 bpp/frame).
365 x 159, 0.002 MP/s [0.00, 0.00], , 1 reps, 16 threads.
PageFaultCount: 330741
PeakWorkingSetSize: 66.79 MiB
QuotaPeakPagedPoolUsage: 33.38 KiB
QuotaPeakNonPagedPoolUsage: 7.961 KiB
PeakPagefileUsage: 64.43 MiB
Creation time 2024/11/11 00:49:28.310
Exit time 2024/11/11 00:50:02.331
Wall time: 0 days, 00:00:34.021 (34.02 seconds)
User time: 0 days, 00:00:01.000 (1.00 seconds)
Kernel time: 0 days, 00:00:33.859 (33.86 seconds)```
That's... Interesting... The GIF is run though gifsicle and flexiGIF, but apparently `gif2apng` found something smaller that JXL could take advantage of with some extra memory
|
|
|
|
JendaLinda
|
|
TheBigBadBoy - 𝙸𝚛
also flexiGIF is quite good (but slow) for GIF optimization
|
|
2024-11-11 08:58:44
|
Neat, a new toy. I will try that on gifs using local palettes. Those failed conversion to apng.
|
|
|
```wintime -- cjxl -d 0 Test.gif Test.jxl -e 10
JPEG XL encoder v0.11.0 0185fcd [AVX2,SSE2]
Encoding [Modular, lossless, effort: 10]
Compressed to 512.7 kB (0.736 bpp/frame).
365 x 159, 0.002 MP/s [0.00, 0.00], , 1 reps, 16 threads.
PageFaultCount: 289985
PeakWorkingSetSize: 42.15 MiB
QuotaPeakPagedPoolUsage: 33.38 KiB
QuotaPeakNonPagedPoolUsage: 7.828 KiB
PeakPagefileUsage: 40.56 MiB
Creation time 2024/11/11 00:47:30.790
Exit time 2024/11/11 00:48:05.561
Wall time: 0 days, 00:00:34.770 (34.77 seconds)
User time: 0 days, 00:00:01.140 (1.14 seconds)
Kernel time: 0 days, 00:00:34.640 (34.64 seconds)
wintime -- cjxl -d 0 Test.apng Test.jxl -e 10
JPEG XL encoder v0.11.0 0185fcd [AVX2,SSE2]
Encoding [Modular, lossless, effort: 10]
Compressed to 505.2 kB (0.725 bpp/frame).
365 x 159, 0.002 MP/s [0.00, 0.00], , 1 reps, 16 threads.
PageFaultCount: 330741
PeakWorkingSetSize: 66.79 MiB
QuotaPeakPagedPoolUsage: 33.38 KiB
QuotaPeakNonPagedPoolUsage: 7.961 KiB
PeakPagefileUsage: 64.43 MiB
Creation time 2024/11/11 00:49:28.310
Exit time 2024/11/11 00:50:02.331
Wall time: 0 days, 00:00:34.021 (34.02 seconds)
User time: 0 days, 00:00:01.000 (1.00 seconds)
Kernel time: 0 days, 00:00:33.859 (33.86 seconds)```
That's... Interesting... The GIF is run though gifsicle and flexiGIF, but apparently `gif2apng` found something smaller that JXL could take advantage of with some extra memory
|
|
2024-11-11 09:07:51
|
Probably it doesn't make much difference but when converting gif to jxl, I would add `--keep_invisible=0`
|
|
|
TheBigBadBoy - 𝙸𝚛
|
|
JendaLinda
Neat, a new toy. I will try that on gifs using local palettes. Those failed conversion to apng.
|
|
2024-11-11 09:09:47
|
hehe I really searched a lot for different optimizers for quite many formats <:KekDog:805390049033191445>
|
|
|
```wintime -- cjxl -d 0 Test.gif Test.jxl -e 10
JPEG XL encoder v0.11.0 0185fcd [AVX2,SSE2]
Encoding [Modular, lossless, effort: 10]
Compressed to 512.7 kB (0.736 bpp/frame).
365 x 159, 0.002 MP/s [0.00, 0.00], , 1 reps, 16 threads.
PageFaultCount: 289985
PeakWorkingSetSize: 42.15 MiB
QuotaPeakPagedPoolUsage: 33.38 KiB
QuotaPeakNonPagedPoolUsage: 7.828 KiB
PeakPagefileUsage: 40.56 MiB
Creation time 2024/11/11 00:47:30.790
Exit time 2024/11/11 00:48:05.561
Wall time: 0 days, 00:00:34.770 (34.77 seconds)
User time: 0 days, 00:00:01.140 (1.14 seconds)
Kernel time: 0 days, 00:00:34.640 (34.64 seconds)
wintime -- cjxl -d 0 Test.apng Test.jxl -e 10
JPEG XL encoder v0.11.0 0185fcd [AVX2,SSE2]
Encoding [Modular, lossless, effort: 10]
Compressed to 505.2 kB (0.725 bpp/frame).
365 x 159, 0.002 MP/s [0.00, 0.00], , 1 reps, 16 threads.
PageFaultCount: 330741
PeakWorkingSetSize: 66.79 MiB
QuotaPeakPagedPoolUsage: 33.38 KiB
QuotaPeakNonPagedPoolUsage: 7.961 KiB
PeakPagefileUsage: 64.43 MiB
Creation time 2024/11/11 00:49:28.310
Exit time 2024/11/11 00:50:02.331
Wall time: 0 days, 00:00:34.021 (34.02 seconds)
User time: 0 days, 00:00:01.000 (1.00 seconds)
Kernel time: 0 days, 00:00:33.859 (33.86 seconds)```
That's... Interesting... The GIF is run though gifsicle and flexiGIF, but apparently `gif2apng` found something smaller that JXL could take advantage of with some extra memory
|
|
2024-11-11 09:10:06
|
what if you optimize your apng ? `apngopt`
|
|
|
|
JendaLinda
|
2024-11-11 09:14:14
|
Gif with local palettes convert to 24 bpp apng so the apng, even after optimization, is about the same size or bigger than the original gif optimized with gifsicle.
|
|
|
TheBigBadBoy - 𝙸𝚛
hehe I really searched a lot for different optimizers for quite many formats <:KekDog:805390049033191445>
|
|
2024-11-11 09:30:53
|
Alright, so the first step is `gifsicle -O3` and then `flexigif`. Do you have any recommended options?
|
|
|
TheBigBadBoy - 𝙸𝚛
|
|
JendaLinda
Alright, so the first step is `gifsicle -O3` and then `flexigif`. Do you have any recommended options?
|
|
2024-11-11 09:40:33
|
I remove "metadata" of GIFs with `gifsicle -o out.gif -O3 --no-comments --no-extensions --no-app-extensions --no-names input.gif`
for flexiGIF typically use a simple `flexiGIF -p`, (tbh I didn't do heavy testing, and on the forum thread there are many benchmarks), if you want faster (you usually want, otherwise fucking slow), just increase `-a=xxx` value
only gifsicle *then* flexiGIF seems useful
also if you want better compression with flexiGIF, use this 2-step-lookahead patch: https://encode.su/threads/3008-flexiGIF-lossless-GIF-LZW-optimization?p=82323&viewfull=1#post82323
|
|
|
|
JendaLinda
|
|
TheBigBadBoy - 𝙸𝚛
I remove "metadata" of GIFs with `gifsicle -o out.gif -O3 --no-comments --no-extensions --no-app-extensions --no-names input.gif`
for flexiGIF typically use a simple `flexiGIF -p`, (tbh I didn't do heavy testing, and on the forum thread there are many benchmarks), if you want faster (you usually want, otherwise fucking slow), just increase `-a=xxx` value
only gifsicle *then* flexiGIF seems useful
also if you want better compression with flexiGIF, use this 2-step-lookahead patch: https://encode.su/threads/3008-flexiGIF-lossless-GIF-LZW-optimization?p=82323&viewfull=1#post82323
|
|
2024-11-11 09:57:48
|
Do the patches apply to gif too or only to Z?
|
|
2024-11-11 09:59:02
|
Some of my gifs were probably lossy compressed. I will try flexigif on those as well.
|
|
|
TheBigBadBoy - 𝙸𝚛
|
|
JendaLinda
Do the patches apply to gif too or only to Z?
|
|
2024-11-11 10:11:45
|
yeah, just look at that table <:KekDog:805390049033191445>
<https://encode.su/threads/3008-flexiGIF-lossless-GIF-LZW-optimization?p=68853&viewfull=1#post68853>
|
|
|
jonnyawsom3
|
|
TheBigBadBoy - 𝙸𝚛
what if you optimize your apng ? `apngopt`
|
|
2024-11-11 10:44:34
|
gif2apng is part of the apngopt toolset, so it already is
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-11 10:45:01
|
ohhhh <:FeelsReadingMan:808827102278451241>
|
|
|
|
JendaLinda
|
2024-11-11 11:15:54
|
I actually did gif -> jxl, then jxl -> apng and then apngopt, so apngopt could start fresh from unoptimized 32 bpp file.
|
|
|
jonnyawsom3
|
2024-11-11 01:59:04
|
I went down a rabbit hole and now I'm finding out MV-HEVC finally exists and has for a while https://developer.apple.com/documentation/avfoundation/media_reading_and_writing/converting_side-by-side_3d_video_to_multiview_hevc_and_spatial_video
|
|
2024-11-11 01:59:27
|
Always wondered when someone would take advantage of stereoscopic similarities
|
|
|
|
JendaLinda
|
2024-11-12 02:45:27
|
Is it normal that flexigif processes a single 1000x1000 pixels frame for several hours?
|
|
2024-11-12 03:01:02
|
Although I tried a different gif of similar size and it went much faster.
|
|
|
jonnyawsom3
|
2024-11-12 03:01:10
|
Yes
|
|
2024-11-12 03:01:42
|
It took 50 minutes for a 5 second long 240x320 GIF
|
|
|
|
JendaLinda
|
2024-11-12 03:05:43
|
Seems weird the first frame of the animation is not yet finished after 16 hours.
|
|
|
CrushedAsian255
|
|
JendaLinda
Seems weird the first frame of the animation is not yet finished after 16 hours.
|
|
2024-11-12 03:14:05
|
It’s the zopfli -999999 of GIFs
|
|
|
|
JendaLinda
|
2024-11-12 03:17:30
|
Sure, but I tested other gifs and a single frame usually takes under an hour.
|
|
2024-11-12 03:21:48
|
One thing about flexigif is it's not multithreadiing, so I can run multiple instances with different files simultaneously and see the differences immediately.
|
|
2024-11-12 07:47:05
|
Great, a few gifs went well but now I have 5 gifs stuck on the first frame. Maybe I'll try without `-p` 😄
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-12 08:00:59
|
you should try `-p -a=2048` or so perhaps?
|
|
2024-11-12 08:01:19
|
which should be 2048 times faster (ig)
|
|
|
_wb_
|
2024-11-12 08:32:19
|
it's funny to see the early history of FLIF: https://github.com/sipa/JIF/commits/master/
|
|
|
|
JendaLinda
|
|
TheBigBadBoy - 𝙸𝚛
you should try `-p -a=2048` or so perhaps?
|
|
2024-11-12 09:39:40
|
I will try it. I don't feel like spending 24 hours on each frame.
|
|
2024-11-12 09:40:31
|
I haven't tried the patches but I suppose those would be even slower.
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-12 09:45:33
|
yeah the two-step-lookahead is slower
|
|
|
|
JendaLinda
|
|
TheBigBadBoy - 𝙸𝚛
yeah the two-step-lookahead is slower
|
|
2024-11-12 09:57:05
|
How did you come to `-a=2048`? Is it some magic value?
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-12 09:57:31
|
I just like powers of 2
|
|
2024-11-12 09:58:36
|
`-a=x --alignment=x blocks starts at multiples of x (default is -a=1 => best compression but may be slow)`
|
|
2024-11-12 09:59:45
|
but again I'm perhaps saying shit as I didn't do heavy testings for GIFs, almost only for `.z` files
|
|
|
|
JendaLinda
|
|
TheBigBadBoy - 𝙸𝚛
but again I'm perhaps saying shit as I didn't do heavy testings for GIFs, almost only for `.z` files
|
|
2024-11-12 10:04:44
|
If I understand correctly, this will split the image to segments of x pixels. Wouldn't it make more sense to use a width of the image as x?
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-12 10:05:30
|
mmmh
aren't different GIF frames different blocks ?
|
|
|
|
JendaLinda
|
|
TheBigBadBoy - 𝙸𝚛
mmmh
aren't different GIF frames different blocks ?
|
|
2024-11-12 10:06:54
|
Yes, each frame is processed separately.
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-12 10:08:08
|
oh yeah I misread your last message
so yeah I guess x=width would be the best, but who knows [⠀](https://cdn.discordapp.com/emojis/586168843781668876.webp?size=48&quality=lossless&name=AkkoShrug)
|
|
|
|
JendaLinda
|
|
TheBigBadBoy - 𝙸𝚛
oh yeah I misread your last message
so yeah I guess x=width would be the best, but who knows [⠀](https://cdn.discordapp.com/emojis/586168843781668876.webp?size=48&quality=lossless&name=AkkoShrug)
|
|
2024-11-12 10:09:15
|
On the other hand, optimized frames may be different width.
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-12 10:09:57
|
right, there are frame that are just differences from the previous one
|
|
|
|
JendaLinda
|
|
TheBigBadBoy - 𝙸𝚛
right, there are frame that are just differences from the previous one
|
|
2024-11-12 10:14:22
|
I will try just without any options at all and see what happens.
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-12 10:15:06
|
default is `-a=1` which is fucking slow <:KekDog:805390049033191445>
|
|
|
|
JendaLinda
|
|
TheBigBadBoy - 𝙸𝚛
default is `-a=1` which is fucking slow <:KekDog:805390049033191445>
|
|
2024-11-12 10:16:41
|
I can see that 😄
Anyhow, it could do multithreading pretty easily just by processing multiple frames at once.
|
|
2024-11-12 10:17:58
|
A single thread on my Ryzen 5 1600 won't cut it.
|
|
2024-11-12 10:37:05
|
In comparison, `cjxl -d 0 -e 11` is actually quite manageable. I found just one image, where cjxl fell apart, consuming the entire system memory, resulting in the system being extremely slow and cjxl just sitting there doing seemingly no progress.
|
|
|
DZgas Ж
|
2024-11-13 01:42:25
|
we need animated jpeg with alpha <:megapog:816773962884972565> || 👉 <:JPEG_XL:805860709039865937> ||
|
|
|
CrushedAsian255
|
|
DZgas Ж
we need animated jpeg with alpha <:megapog:816773962884972565> || 👉 <:JPEG_XL:805860709039865937> ||
|
|
2024-11-13 02:33:54
|
Animated JNG?
|
|
|
_wb_
|
2024-11-13 06:33:55
|
MNG can do that iirc
|
|
|
CrushedAsian255
|
|
_wb_
MNG can do that iirc
|
|
2024-11-13 06:34:29
|
is MNG generalised APNG?
|
|
|
_wb_
|
2024-11-13 06:36:05
|
Yeah it's the more complicated thing that includes JNG, it never really gained traction though
|
|
|
CrushedAsian255
|
2024-11-13 06:36:47
|
personally still think JNG should have superseded JFIF
|
|
|
_wb_
|
2024-11-13 07:04:41
|
JPEG 1 file formats are a mess
|
|
2024-11-13 07:05:31
|
JFIF was first so it became the de facto standard even though it has clear limitations
|
|
|
CrushedAsian255
|
2024-11-13 07:06:01
|
JPEG 2000 is based on BMFF right?
|
|
|
_wb_
|
2024-11-13 07:06:22
|
The committee made SPIFF and tried to push that, but it failed to get any traction and was recently finally retired
|
|
2024-11-13 07:06:35
|
Camera vendors meanwhile made Exif
|
|
2024-11-13 07:06:58
|
(which is not just metadata but also a JPEG file format)
|
|
|
CrushedAsian255
JPEG 2000 is based on BMFF right?
|
|
2024-11-13 07:10:00
|
Or ISOBMFF is based on what was done for J2K, not sure which was first there
|
|
|
CrushedAsian255
|
2024-11-13 07:10:33
|
I though BMFF was based on QuickTime MOV / MPEG MP4
|
|
|
_wb_
|
2024-11-13 07:28:31
|
The basic box structure (4 byte length, 4 byte identifier, payload) is used by many things, PNG chunks are pretty much the same thing (except they also have a CRC and can't be nested).
|
|
|
|
JendaLinda
|
2024-11-13 10:55:08
|
Many pieces of software still produce illegal Exif/JFIF hybrids.
|
|
2024-11-13 12:06:31
|
I think lossy WebP if fine for animation, still provides better color fidelity than gif.
|
|
|
CrushedAsian255
|
|
|
JendaLinda
|
2024-11-13 12:09:45
|
I mean, for those short loops made from video.
|
|
|
CrushedAsian255
|
2024-11-13 12:10:43
|
100%
|
|
2024-11-13 12:10:48
|
GIF is kinda bad
|
|
|
|
JendaLinda
|
2024-11-13 12:12:01
|
And there's lossless WebP for actual animation.
|
|
|
Quackdoc
|
2024-11-13 12:15:16
|
speaking of gifs anyways, is there any actually good way to consistently convert gif to jxl losslessly without bad file sizes?
|
|
|
CrushedAsian255
|
2024-11-13 12:15:42
|
Problem 1 is gif is already ridiculously low quality
|
|
|
Quackdoc
|
2024-11-13 12:15:58
|
yeah using a lossy encoding isn't really on the table [av1_dogelol](https://cdn.discordapp.com/emojis/867794291652558888.webp?size=48&name=av1_dogelol)
|
|
|
|
JendaLinda
|
2024-11-13 12:16:37
|
It very depends on the specific case.
|
|
|
Quackdoc
|
2024-11-13 12:18:11
|
well the key issue is setting something automated, so it kinda needs to work even in the worst case, or at least, not break badly enough to be actively largely detrimental
|
|
|
CrushedAsian255
|
2024-11-13 12:18:43
|
some kind of ML-based undithering system?
|
|
|
|
JendaLinda
|
2024-11-13 12:18:44
|
If the gif was compressed with gifsicle in lossy mode, that's it. No other lossless codec could improve it.
|
|
|
Quackdoc
|
|
JendaLinda
If the gif was compressed with gifsicle in lossy mode, that's it. No other lossless codec could improve it.
|
|
2024-11-13 12:19:22
|
[Hmm](https://cdn.discordapp.com/emojis/1113499891314991275.webp?size=48&name=Hmm)
|
|
|
|
JendaLinda
|
2024-11-13 12:21:39
|
My problem of converting gif to jxl is it's not easy to convert it back to gif.
|
|
2024-11-13 12:22:59
|
Especially if local palettes were used in the gif.
|
|
|
CrushedAsian255
|
2024-11-13 12:23:15
|
GIF reconstruction data when
|
|
|
|
JendaLinda
|
2024-11-13 12:26:05
|
Apng is seriously crippled it doesn't support local palettes.
|
|
|
A homosapien
|
2024-11-13 12:27:42
|
"Seriously crippled" is an exaggeration
|
|
2024-11-13 12:27:46
|
It's not that bad
|
|
|
Quackdoc
|
|
JendaLinda
My problem of converting gif to jxl is it's not easy to convert it back to gif.
|
|
2024-11-13 12:27:59
|
I don't really care about that myself, any gif I have I don't really care about going back, not for my use anyways
|
|
2024-11-13 12:28:22
|
I only encode with reconstruction data because im too lazy to figure out how to not do so, and still consistently save space lol
|
|
|
A homosapien
|
2024-11-13 12:29:33
|
For gifs I usually just convert it to an Apng then an animated jxl
|
|
|
Quackdoc
|
2024-11-13 12:30:24
|
is that actually beneficial? [Hmm](https://cdn.discordapp.com/emojis/1113499891314991275.webp?size=48&name=Hmm)
|
|
|
A homosapien
|
2024-11-13 12:30:29
|
Yes
|
|
2024-11-13 12:31:01
|
Apngopt or gif2apng has additional inter-frame optimizations that jxl can take advantage of
|
|
2024-11-13 12:31:26
|
I typically see an improvement in my testing
|
|
|
Quackdoc
|
2024-11-13 12:32:49
|
guess ill try that, I plan on doing a setup where just all of my images, baring a few exceptions, get converted to jxl since literally everything I use supports jxl now
|
|
|
|
JendaLinda
|
|
A homosapien
"Seriously crippled" is an exaggeration
|
|
2024-11-13 12:32:58
|
Apng is terribly inefficient compressing gifs which used local palettes. Coversion to 24 bpp looses the advantage of better compression algorithm.
|
|
2024-11-13 12:33:53
|
WebP doesn't case about palettes and works well but it's tricky to convert animated WebP to anything else.
|
|
|
A homosapien
|
|
JendaLinda
Apng is terribly inefficient compressing gifs which used local palettes. Coversion to 24 bpp looses the advantage of better compression algorithm.
|
|
2024-11-13 12:34:19
|
The difference isn't that big, only like 5-10%.
|
|
|
CrushedAsian255
|
|
JendaLinda
Apng is terribly inefficient compressing gifs which used local palettes. Coversion to 24 bpp looses the advantage of better compression algorithm.
|
|
2024-11-13 12:34:22
|
Can’t JXL then do palettes as well
|
|
|
A homosapien
|
2024-11-13 12:34:42
|
Not optimal but not terrible
|
|
2024-11-13 12:35:09
|
Yeah jxl can do palettes
|
|
|
|
JendaLinda
|
|
A homosapien
The difference isn't that big, only like 5-10%.
|
|
2024-11-13 12:36:57
|
Compared to what apng can do with only a global palette, the difference is significant.
|
|
|
Quackdoc
|
2024-11-13 12:37:10
|
hmm, not bad, ill try the gif thing I guess
```ps
69.96 MiB png-jxl
70.55 MiB gif-jxl
88.45 MiB gif
143.29 MiB png
611.07 MiB jpg-jxl
777.94 MiB jpg
```
|
|
2024-11-13 12:37:45
|
> Apngopt or apng2gif
on average which one is better?
|
|
|
A homosapien
|
2024-11-13 12:37:58
|
They use the same algorithms I think
|
|
2024-11-13 12:38:06
|
Made by the same people
|
|
|
Quackdoc
|
2024-11-13 12:39:19
|
icic, also assuming I *don't* care about reconstruction info, is there anything that is realistically better then `cjxl -e 9 -d 0 ` that is worth adding?
|
|
|
A homosapien
|
2024-11-13 12:40:08
|
Besides discarding metadata I think you're good
|
|
|
Quackdoc
|
2024-11-13 12:40:11
|
I know `allow_jpeg_reconstruction` exists but I don't know if it's realistically any good
|
|
|
|
JendaLinda
|
2024-11-13 12:40:40
|
If I do archiving, I care about some way to restore the original format. Most of my gifs are actually hand drawn animation.
|
|
|
A homosapien
|
|
Quackdoc
> Apngopt or apng2gif
on average which one is better?
|
|
2024-11-13 12:41:42
|
Sorry it's gif2apng, not apng2gif
|
|
|
CrushedAsian255
|
2024-11-13 12:41:46
|
i dont think GIF or PNG reconstruction is a thing
|
|
|
A homosapien
|
2024-11-13 12:41:51
|
Typo 😭
|
|
|
Quackdoc
|
|
Quackdoc
I know `allow_jpeg_reconstruction` exists but I don't know if it's realistically any good
|
|
2024-11-13 12:44:21
|
well, ill run this through and see how it goes
|
|
|
|
JendaLinda
|
|
CrushedAsian255
i dont think GIF or PNG reconstruction is a thing
|
|
2024-11-13 12:53:42
|
I'm not that strict. In most cases, I don't care about palette order and such, it just has to be pixel perfect. djxl is sufficient for conversion to apng, then it can be run through apngopt.
|
|
2024-11-13 12:55:42
|
But I'm also still using gif because according to my testing, gif with local palettes is often more efficient than the equivalent apng.
|
|
|
Quackdoc
|
2024-11-13 01:02:18
|
```ps
610.93 MiB jpg-jxl-no
611.07 MiB jpg-jxl
777.94 MiB jpg
```
|
|
2024-11-13 01:02:24
|
well that wasnt really worth the re-encode lol
|
|
|
CrushedAsian255
|
2024-11-13 01:03:02
|
The reconstruction metadata is usually very small
|
|
2024-11-13 01:03:07
|
Like < 1 kB
|
|
2024-11-13 01:03:41
|
I would suggest just keeping it, it’s not worth explicitly removing it and you never know you might want to convert it back some time
|
|
|
|
JendaLinda
|
2024-11-13 01:03:53
|
Yeah you can gain more if you try different efforts and cjxl versions.
|
|
|
Quackdoc
|
2024-11-13 01:04:55
|
well it just be how it be, everything can't be free
|
|
|
|
JendaLinda
|
2024-11-13 01:05:08
|
Older cjxl versions seem to do better job compressing jpegs. But it's a thing I'm going to look into more deeply.
|
|
|
CrushedAsian255
|
2024-11-13 01:05:13
|
Also not sure how but higher efforts still benefit jpeg transcoding
|
|
|
JendaLinda
Older cjxl versions seem to do better job compressing jpegs. But it's a thing I'm going to look into more deeply.
|
|
2024-11-13 01:05:36
|
Argh regressions!
|
|
|
Quackdoc
|
2024-11-13 01:06:03
|
well I saved enough space to make it worth it anyways
|
|
|
|
JendaLinda
|
2024-11-13 01:10:51
|
I admit I was exaggerating a little that apng is terribly inefficient. Gif with local palettes and apng containing the same pixel data are about the same file size. So it's not worth to convert such gif to apng, because you gain nothing, but using apng is not a disaster.
However, if I would like to create an optimized file, I would have to go with gif.
|
|
|
A homosapien
|
2024-11-13 01:17:07
|
That's kind of an edge case where gif is *only* optimized when there are local palettes, which are quite rare. Most gifs in the wild are global palettes, so re-encoding to apng would be worth it imo
|
|
2024-11-13 01:17:45
|
what am I saying, just use jxl for better savings 😂 <:JXL:805850130203934781>
|
|
|
|
JendaLinda
|
2024-11-13 01:18:31
|
I'm not sure which animation software were the artist's using but I have several gifs with local palettes.
|
|
2024-11-13 01:18:47
|
I would use jxl if I could.
|
|
2024-11-13 01:23:48
|
But yeah, if there's only global palette, apng works great, unless it's lossy lzw, then even webp or jxl can't do anything with it.
|
|
|
A homosapien
|
|
Quackdoc
well that wasnt really worth the re-encode lol
|
|
2024-11-13 01:38:51
|
It's highly content dependent, not to mention I was doing a lot of my testing on 0.8. Maybe 0.11 made lossless gif encoding a lot better. 😅
|
|
2024-11-13 01:39:30
|
Probably better off just going straight from gif -> gifsicle -> jxl
|
|
|
Quackdoc
|
2024-11-13 01:40:26
|
yeah probably, I am just making some scripts for "inplace" transcoding so the more simple the better anyways
|
|
2024-11-13 01:41:08
|
ofc inplace is not really true since I am changing the file extensions, but I am deleting the source files when done
|
|
|
A homosapien
|
2024-11-13 01:42:26
|
I should really convert my local archive of jpegs to jxl
|
|
2024-11-13 01:43:09
|
literally no downside idk why I haven't done it sooner
|
|
|
Quackdoc
|
2024-11-13 01:43:52
|
yeah, best part is, you don't even need to hash them [av1_dogelol](https://cdn.discordapp.com/emojis/867794291652558888.webp?size=48&name=av1_dogelol)
|
|
2024-11-13 01:47:04
|
after images, I need to develop some kind of script that will tell me if it's worth transcoding a video to av1 lmao, dunno how best to go about this yet tho
|
|
|
A homosapien
|
2024-11-13 01:50:31
|
That's a tall order for a simple script, I don't know if even it's even possible.
|
|
|
Quackdoc
|
2024-11-13 01:51:42
|
you can get a "good estimation" using the basics like bitrate for the file size
|
|
|
A homosapien
|
2024-11-13 01:52:00
|
I see, like resolution divided by bitrate? It super content dependent, but at least you have an upper threshold for super high quality videos worth re-encoding
|
|
|
Quackdoc
|
2024-11-13 01:52:37
|
yeah, it would be a "sortiing" scheme into "likely good candidate" "possibly good candidate" "possibly bad candidate" "likely bad candidate"
|
|
2024-11-13 01:53:27
|
for instance, any h264 or h265 video with "BDMV" like bitrates are almost always going to be good candidates for av1, so thats a safe assumption
|
|
|
A homosapien
|
2024-11-13 01:54:44
|
you're basically making a video quality metric estimator at this point 😭
|
|
|
CrushedAsian255
|
|
A homosapien
you're basically making a video quality metric estimator at this point 😭
|
|
2024-11-13 01:54:51
|
yeah
|
|
|
Quackdoc
|
2024-11-13 01:55:15
|
[av1_dogelol](https://cdn.discordapp.com/emojis/867794291652558888.webp?size=48&name=av1_dogelol)
|
|
2024-11-13 01:55:46
|
at the very least, it will make it a lot easier to sort through which videos are even worth checking in the first place
|
|
|
A homosapien
|
2024-11-13 01:58:08
|
true, it acts like a sieve, filtering out bad candidates
|
|
|
jonnyawsom3
|
|
Quackdoc
icic, also assuming I *don't* care about reconstruction info, is there anything that is realistically better then `cjxl -e 9 -d 0 ` that is worth adding?
|
|
2024-11-13 02:19:09
|
`--brotli_effort=11` compresses the metadata and reconstruction data a bit more, for the GIFs/APNG `--keep_invisible=0` might help, not sure
|
|
|
Quackdoc
ofc inplace is not really true since I am changing the file extensions, but I am deleting the source files when done
|
|
2024-11-13 02:23:36
|
I've had some fun with Telegram exports and then converting all the images in-place to JXL, opens fine in Waterfox since it's just HTML, but naturally the files are unreadable with the wrong extensions otherwise
|
|
|
|
JendaLinda
|
2024-11-13 02:26:08
|
`--keep_invisible=0` seems to be trivial, it just zeroes out the fully transparent pixels.
ECT for example, can take more advantage of fully transparent pixels in png. It will fill them with different colors so the bytes become zero after filtering.
|
|
|
jonnyawsom3
|
2024-11-13 02:27:42
|
That's what I assumed cjxl did
|
|
|
|
JendaLinda
|
2024-11-13 02:28:48
|
It doesn't make any difference if I use --keep_invisible=0 on a png where fully transparent pixels are already black.
|
|
2024-11-13 02:33:31
|
But it's useful for pngs, that were not optimized beforehand. Photoshop, for example fills transparent pixels with some random colors.
|
|
2024-11-13 02:34:24
|
Don't even match the png filtering.
|
|
2024-11-13 02:35:58
|
In gif, the transparent eras are solid color, so blackening them won't make much difference but it will tidy them up.
|
|
2024-11-13 02:40:00
|
Anyhow, it seems the global palette in gif is optional, I come across a gif, where every frame had it's own palette and the global palette was completely missing. I wonder what the decoder is supposed to do if there's no palette at all. I suppose most decoders would render undefined colors as black.
|
|
2024-11-13 02:44:26
|
It seems that gif without global palette is considered bad practice. The first thing gifsicle did is moving palette from the first frame and make it the global palette.
|
|
|
Quackdoc
|
2024-11-13 05:16:28
|
yeah im just gonna keep the gifs, it is smaller, but not really smaller enough to sacrafice the proper animation support
```
338.50 MiB total
vs
235.66 MiB total
```
|
|
2024-11-13 05:17:52
|
also I encounted some gifs that magick reports mismatching hash, wonder why that happens
|
|
|
RaveSteel
|
|
Quackdoc
also I encounted some gifs that magick reports mismatching hash, wonder why that happens
|
|
2024-11-13 06:12:37
|
Would you mind sharing some of them?
|
|
|
Quackdoc
|
|
RaveSteel
Would you mind sharing some of them?
|
|
2024-11-13 06:13:32
|
if I come across them again, I already punted them back to my phone
|
|
|
RaveSteel
|
2024-11-13 06:14:40
|
Alright, thanks
|
|
|
|
JendaLinda
|
2024-11-13 06:45:05
|
Testing what flexigif does with lossy LZW. Doesn't look very promising.
|
|
|
_wb_
|
|
CrushedAsian255
I though BMFF was based on QuickTime MOV / MPEG MP4
|
|
2024-11-13 08:39:39
|
In a way, both are based on IFF: https://en.m.wikipedia.org/wiki/Interchange_File_Format
|
|
|
JendaLinda
Many pieces of software still produce illegal Exif/JFIF hybrids.
|
|
2024-11-13 08:45:00
|
I think technically such files are still valid [one of the two], just not valid as both Exif and JFIF since those two formats both require their APP marker to be the very first one after the SOI marker.
|
|
|
|
JendaLinda
|
2024-11-13 09:11:55
|
JFIF seems to be completely unnecessary now. I just remove APP0 markers and the jpegs work without issues.
|
|
|
_wb_
|
2024-11-14 10:16:23
|
Does this diagram look OK? It's of course a bit of an oversimplification. Am I being fair to the various formats? Did I forget something?
|
|
|
CrushedAsian255
|
2024-11-14 10:22:31
|
i would personally put HEIC a bit lower, like maybe cutting in on the top of JPEG
|
|
|
_wb_
|
2024-11-14 10:53:46
|
I put it that high up since it's basically only being used as a proprietary capture format, no really suitable for interchange.
|
|
|
|
JendaLinda
|
2024-11-14 11:23:20
|
I'm actually using BMP a lot.
|
|
2024-11-14 11:49:56
|
Perhaps add `Windows bitmap` as application specific.
|
|
2024-11-14 11:54:34
|
Windows bitmap is the native format of the most popular OS used on PC and it's specific to Windows.
|
|
|
Quackdoc
|
|
_wb_
Does this diagram look OK? It's of course a bit of an oversimplification. Am I being fair to the various formats? Did I forget something?
|
|
2024-11-14 12:14:55
|
im not gonna lie. even with the description at the bottom, it's hard to actually understand what the graphic is showcasing
|
|
|
_wb_
|
|
JendaLinda
I'm actually using BMP a lot.
|
|
2024-11-14 12:15:40
|
Hm, right, I didn't include the uncompressed formats like BMP and PPM. I guess they're similar to TIFF.
|
|
|
CrushedAsian255
|
2024-11-14 12:16:02
|
<@794205442175402004> can you send the raw file? i want to try something with it
|
|
|
_wb_
|
|
CrushedAsian255
<@794205442175402004> can you send the raw file? i want to try something with it
|
|
2024-11-14 12:17:20
|
https://docs.google.com/drawings/d/13dR6dwFMw5l8BKQ53B_4Mi9LaTT0EWN44-ErHL--BRM/edit?usp=sharing
|
|
|
Quackdoc
im not gonna lie. even with the description at the bottom, it's hard to actually understand what the graphic is showcasing
|
|
2024-11-14 12:18:13
|
If you have suggestions on how to make it more clear / less confusing, or if you can pinpoint what about it is hard to understand, that would help.
|
|
|
Quackdoc
|
|
_wb_
If you have suggestions on how to make it more clear / less confusing, or if you can pinpoint what about it is hard to understand, that would help.
|
|
2024-11-14 12:21:52
|
for instance, it's not exactly clear to me why HEIC is above JXL, TIFF, OpenEXR should be sitting too at the top too since but HEIC is still above it it seems like HEIC would be "before" said formats in an authoring workflow, which is really only true in some specific instances, of which similar instances are true with TIFF, and likely in the future JXL
|
|
2024-11-14 12:22:38
|
also the graphic makes it look like HEIC isn't used for delivery
|
|
|
CrushedAsian255
|
|
Quackdoc
for instance, it's not exactly clear to me why HEIC is above JXL, TIFF, OpenEXR should be sitting too at the top too since but HEIC is still above it it seems like HEIC would be "before" said formats in an authoring workflow, which is really only true in some specific instances, of which similar instances are true with TIFF, and likely in the future JXL
|
|
2024-11-14 12:23:38
|
you don't really take a photo in EXR
|
|
|
Quackdoc
|
|
CrushedAsian255
you don't really take a photo in EXR
|
|
2024-11-14 12:24:36
|
no, but you can use it for creation, specifically texture creation stuff, EXR makes a great "save file" for that stuff since it has dedicated channel alpha, linear, no clamping etc
|
|
2024-11-14 12:25:14
|
also many cameras do save in a TIFF file format
|
|
|
CrushedAsian255
|
2024-11-14 12:25:43
|
i don't feel like 3d modelling really fits in with this
|
|
|
Quackdoc
|
|
CrushedAsian255
i don't feel like 3d modelling really fits in with this
|
|
2024-11-14 12:25:57
|
it does explicitly say creation
|
|
2024-11-14 12:26:16
|
and does explicitly have 3d modeling in there
|
|
|
spider-mario
|
|
Quackdoc
also many cameras do save in a TIFF file format
|
|
2024-11-14 12:27:12
|
I haven’t seen many non-raw TIFFs saved by cameras
|
|
|
CrushedAsian255
|
2024-11-14 12:27:31
|
is top to bottom meant to be like the creative workflow?
|
|
2024-11-14 12:27:35
|
like you start at the top and go down?
|
|
|
_wb_
|
|
Quackdoc
also the graphic makes it look like HEIC isn't used for delivery
|
|
2024-11-14 12:28:01
|
Is it? The main way I see it being used is as a capture format. Safari does support it now (just like it does/did support J2K), so I guess it could be a delivery format too, but given the patent situation I consider it not really having a chance of becoming sufficiently interoperable to be considered anything other than a proprietary capture format.
|
|
|
CrushedAsian255
|
2024-11-14 12:28:26
|
i have NEVER seen a HEIC being served on the web excluding downloading iPhone originals
|
|
|
_wb_
|
|
CrushedAsian255
is top to bottom meant to be like the creative workflow?
|
|
2024-11-14 12:28:55
|
More or less, though the idea of interchange is that you also go up again from the middle.
|
|
|
Quackdoc
|
|
_wb_
Is it? The main way I see it being used is as a capture format. Safari does support it now (just like it does/did support J2K), so I guess it could be a delivery format too, but given the patent situation I consider it not really having a chance of becoming sufficiently interoperable to be considered anything other than a proprietary capture format.
|
|
2024-11-14 12:29:07
|
yeah, most images shared among iphones are heic, and I know that my samsung phone captures in default, and shares HEIC with my mothers pixel too when we send images back and forth
|
|
|
CrushedAsian255
|
2024-11-14 12:29:17
|
when you say "DCP" do you mean digital cinema package? that is very much a delivery format
|
|
|
Quackdoc
|
|
CrushedAsian255
i have NEVER seen a HEIC being served on the web excluding downloading iPhone originals
|
|
2024-11-14 12:29:35
|
web is only one specific thing though.
|
|
|
CrushedAsian255
|
2024-11-14 12:30:06
|
correction: i have never seen a HEIC being used in any situation outside phone photography
|
|
|
spider-mario
|
2024-11-14 12:30:31
|
Canon cameras can produce PQ HEICs
|
|
|
CrushedAsian255
|
2024-11-14 12:30:45
|
argh, fine
|
|
|
spider-mario
|
2024-11-14 12:30:51
|
I think other brands produce HLG HEICs but off the top of my head, I don’t remember which ones
|
|
2024-11-14 12:31:00
|
maybe Sony and Panasonic
|
|
|
CrushedAsian255
|
2024-11-14 12:31:04
|
i have never seen a HEIC being used in any situation outside photo capture
|
|
|
Quackdoc
|
|
CrushedAsian255
correction: i have never seen a HEIC being used in any situation outside phone photography
|
|
2024-11-14 12:31:24
|
while true, I don't think this graphic comes across as accurate if it excludes phone usage considering how prevalent phones are
|
|
|
_wb_
|
2024-11-14 12:31:25
|
I see DCP more as an interchange format, of course it is "delivery" to theaters but I mean delivery more in an end-user/consumer/web sense. Maybe that should be clarified in the diagram.
|
|
|
spider-mario
|
2024-11-14 12:31:30
|
from what I understand, some people then connect their camera to a TV via HDMI and display those HEICs
|
|
2024-11-14 12:31:57
|
I agree that it sounds rather niche, though
|
|
|
CrushedAsian255
|
|
Quackdoc
while true, I don't think this graphic comes across as accurate if it excludes phone usage considering how prevalent phones are
|
|
2024-11-14 12:32:22
|
i think its current location is fine as after the camera takes the photo it will save it as either a HEIC or a DNG (or a JPEG)
|
|
|
spider-mario
|
2024-11-14 12:32:42
|
also, crucially, the ways that Apple and Canon do HDR-in-HEIC are not mutually compatible
|
|
|
Quackdoc
|
|
CrushedAsian255
i think its current location is fine as after the camera takes the photo it will save it as either a HEIC or a DNG (or a JPEG)
|
|
2024-11-14 12:33:08
|
that doesn't mean it's not for delivery though, or else jpeg would need to be moved as well.
|
|
2024-11-14 12:33:21
|
or well I think it should rather be extended
|
|
|
spider-mario
|
2024-11-14 12:33:22
|
https://www.dpreview.com/articles/8980170510/how-hdr-tvs-could-change-your-photography-forever
> HEIF/HEIC is a broad standard, and the files from Canon and Apple are not cross-compatible with one another
|
|
|
Quackdoc
|
|
spider-mario
https://www.dpreview.com/articles/8980170510/how-hdr-tvs-could-change-your-photography-forever
> HEIF/HEIC is a broad standard, and the files from Canon and Apple are not cross-compatible with one another
|
|
2024-11-14 12:33:31
|
WHAT
|
|
2024-11-14 12:33:33
|
[av1_kekw](https://cdn.discordapp.com/emojis/758892021191934033.webp?size=48&name=av1_kekw)
|
|
|
CrushedAsian255
|
|
spider-mario
https://www.dpreview.com/articles/8980170510/how-hdr-tvs-could-change-your-photography-forever
> HEIF/HEIC is a broad standard, and the files from Canon and Apple are not cross-compatible with one another
|
|
2024-11-14 12:33:44
|
ok what
|
|
2024-11-14 12:33:55
|
\/hj
|
|
2024-11-14 12:34:21
|
maybe add avif at the bottom for lower quality
|
|
|
Quackdoc
|
2024-11-14 12:36:07
|
oh right, the graphic also looks like it's intended to be capture on the left, with creation on the right, which is in conflict with the raster < -- > vector
|
|
2024-11-14 12:36:37
|
In general Im not sure this graphic format is entirely suitable for what the graphic is trying to convey, and maybe splitting it into 2 related graphics may be better
|
|
|
CrushedAsian255
|
|
Quackdoc
In general Im not sure this graphic format is entirely suitable for what the graphic is trying to convey, and maybe splitting it into 2 related graphics may be better
|
|
2024-11-14 12:36:56
|
3 dimensional?
|
|
2024-11-14 12:37:18
|
authoring (creating) <-> delivery (showing)
capture (real life) <-> creation (cgi, illustration)
vector (pixels) <-> raster (geometry)
|
|
|
Quackdoc
|
2024-11-14 12:37:59
|
I was thinking maybe one of those triangle things, or 3 circle venn diagram would work.
|
|
|
CrushedAsian255
|
2024-11-14 12:38:13
|
what would the points on the triangle be though?
|
|
|
Quackdoc
|
2024-11-14 12:38:34
|
one sec, lemme see if I can remeber how to convery this
|
|
|
CrushedAsian255
|
|
Quackdoc
|
2024-11-14 12:41:21
|
is it worth specifing capture vs creation?
|
|
|
CrushedAsian255
|
2024-11-14 12:41:35
|
i think raster vs vector is probably fine
|
|
2024-11-14 12:41:53
|
illustration could go in the middle
|
|
|
|
JendaLinda
|
|
_wb_
Hm, right, I didn't include the uncompressed formats like BMP and PPM. I guess they're similar to TIFF.
|
|
2024-11-14 12:44:33
|
I can see that. TIFF can supersede other uncompressed image formats.
|
|
2024-11-14 12:44:47
|
However, Windows bitmap is used in capture, creation, intermediate, delivery and display. Pretty much any array of pixels in Windows API is a bitmap.
|
|
|
CrushedAsian255
|
|
JendaLinda
However, Windows bitmap is used in capture, creation, intermediate, delivery and display. Pretty much any array of pixels in Windows API is a bitmap.
|
|
2024-11-14 12:46:35
|
windows
|
|
|
Quackdoc
|
2024-11-14 12:54:43
|
Yeah I would change this to a three point ven diagram methinks, or even just a two point grid plot graphic. but they are much less visually appealing.
But the issue with this original graphics is that it does draw lines where IMO they probably be shouldn't many of these formats like PNG,JPEG,HEIC, and i'm sure jxl soon, are used in capturing software, and also used for delivery.
if the top part of the graphic isn't intended to imply a capture to creation scale, I think it how it presents the info should be changed. I think breaking up the "application specific authoring formats" block to allow things like JXL, TIFF, etc should be allowed to scale up.
|
|
|
_wb_
|
2024-11-14 12:55:08
|
how about this?
|
|
|
Quackdoc
|
2024-11-14 12:55:45
|
I do like this one more for sure
|
|
|
CrushedAsian255
|
2024-11-14 12:57:00
|
what is light red
|
|
|
Quackdoc
|
2024-11-14 12:57:05
|
It may also be worth changing AVIF to HEIF (heic, avif, vvc)
|
|
2024-11-14 12:57:22
|
though the duplicate nature of heic may be a bit confusing
|
|
|
CrushedAsian255
|
2024-11-14 12:57:23
|
istg are they making a VVC based HEIF
|
|
2024-11-14 12:57:43
|
i bet my life savings that will be dead on arrival except maybe apple
|
|
|
Quackdoc
|
|
CrushedAsian255
istg are they making a VVC based HEIF
|
|
2024-11-14 12:58:13
|
yeah, libheif can already save vvc heif
|
|
|
CrushedAsian255
|
2024-11-14 01:00:02
|
is VVC actually going anywhere?
|
|
|
Quackdoc
|
|
jonnyawsom3
|
2024-11-14 01:00:41
|
To me JPEG XL would just be covering the entire spectrum, apart from SVG, ect for vectors. You can already use it in the camera, Krita was one of the first to support it so digital painting definitely is...
|
|
|
CrushedAsian255
|
2024-11-14 01:01:37
|
and except PDF / PostScript
|
|
2024-11-14 01:01:53
|
although you can add JPEG XL images to SVG / PDF / PostScript files
|
|
|
_wb_
|
2024-11-14 01:03:11
|
the horizontal axis is intended to be going from photo / sensor data on the left to artificial / generated on the right, where the left is raster obtained from a sensor, the middle is still raster but not captured by a sensor (digital art, illustrations, screenshots, rendered text, rendered 3D scenes, etc) and the right is pure vector graphics. With a lot of mixed stuff as well, like PDF which can contain photos and text, or GIS stuff like satelite images with road maps and whatever other vector stuff.
|
|
|
CrushedAsian255
|
2024-11-14 01:04:38
|
It would probably be clearer if it was indicated as 3 stops
Left: Photo
Middle: Illustration/Mixed
Right: Vector
|
|
|
jonnyawsom3
|
2024-11-14 01:05:12
|
I suddenly remembered that splines get resampled instead of scaled on decode. Or at least used to
|
|
|
CrushedAsian255
|
2024-11-14 01:05:24
|
?
|
|
2024-11-14 01:06:00
|
The JPEG should make a SVG competitor so the entire diagram is just JPEG
|
|
|
jonnyawsom3
|
2024-11-14 01:08:14
|
Okay apparently I just have very selective memory https://discord.com/channels/794206087879852103/804324493420920833/885888987317817354
|
|
|
_wb_
|
|
CrushedAsian255
It would probably be clearer if it was indicated as 3 stops
Left: Photo
Middle: Illustration/Mixed
Right: Vector
|
|
2024-11-14 01:08:16
|
not sure how I can add that to the chart in a nice way
|
|
2024-11-14 01:20:24
|
tweaked it a bit: didn't really make sense to give j2k a narrower scope than jpeg, also moved XS/HTJ2K more to the left and made DjVu match PDF (just more towards raster)
|
|
|
CrushedAsian255
|
2024-11-14 01:21:45
|
Can you make avif stretch all the way to j2k?
|
|
2024-11-14 01:22:11
|
Also what makes J2K / AVIF /WebP less of a raster format than JPEG
|
|
|
_wb_
|
2024-11-14 01:36:53
|
avif and webp are more suitable for non-photographic images than jpeg is, e.g. they both have palette modes, and when doing lossy their artifacts on illustrations generally look more acceptable than those of jpeg
|
|
|
DZgas Ж
|
2024-11-14 01:36:55
|
how about this?
|
|
|
_wb_
|
2024-11-14 01:38:17
|
J2K also does have some stuff meant to deal better with non-photo, in particular JPEG 2000 Part 17: Extensions for coding of discontinuous media
|
|
|
DZgas Ж
|
|
_wb_
tweaked it a bit: didn't really make sense to give j2k a narrower scope than jpeg, also moved XS/HTJ2K more to the left and made DjVu match PDF (just more towards raster)
|
|
2024-11-14 01:39:53
|
heic/heif/hevc also encodes vector lines perfectly, like avif. and even better than jpeg xl
|
|
2024-11-14 01:40:35
|
raster vector lines yes
|
|
|
CrushedAsian255
|
2024-11-14 01:40:38
|
JPEG XL vector box when
|
|
|
_wb_
|
2024-11-14 01:41:18
|
yeah in terms of artifacts, heic and avif are kind of comparable. The thing is I don't think heic is really used by anyone for illustrations, even if in principle it could.
|
|
|
DZgas Ж
|
2024-11-14 01:42:52
|
avif — webp — gif — vector
bad line
|
|
2024-11-14 01:44:32
|
in general, it's all a waste of time. I would like to make a graph like:
vector or flat picture/real photo
complexity/simplicity
|
|
2024-11-14 01:45:10
|
I don't think that in its current form anyone will be pleased to look at it
|
|
|
_wb_
|
2024-11-14 01:45:22
|
that middle region where GIF and DjVu are is not yet vector, it's still raster, just low-color / line drawing / illustration type of graphics
|
|
|
DZgas Ж
|
2024-11-14 01:45:56
|
|
|
2024-11-14 01:47:19
|
it might be worth redoing. vp9 died a long time ago, aomenc is too un-threaded, svt-av1 is better in all cases
|
|
|
_wb_
|
2024-11-14 01:47:24
|
complexity/simplicity is an interesting additional dimension, though it also has various interpretations: do you mean feature complexity? amount of coding tools? computation complexity? the complexity of the image content?
|
|
2024-11-14 01:48:33
|
TIFF and PPM are both low-complexity in terms of encode/decode speed (they're uncompressed, or nearly so), but TIFF is very complex in features while PPM is extremely simple.
|
|
|
DZgas Ж
|
|
_wb_
complexity/simplicity is an interesting additional dimension, though it also has various interpretations: do you mean feature complexity? amount of coding tools? computation complexity? the complexity of the image content?
|
|
2024-11-14 01:49:41
|
I think for the average user, only the decoding speed is important.
|
|
|
CrushedAsian255
|
|
DZgas Ж
it might be worth redoing. vp9 died a long time ago, aomenc is too un-threaded, svt-av1 is better in all cases
|
|
2024-11-14 01:50:23
|
|
|
|
DZgas Ж
|
2024-11-14 01:50:55
|
you can adjust the encoding speed according to the situation. but you won't be able to open a 16k x 16k jpeg xl on your smartphone for $80
|
|
|
CrushedAsian255
|
|
DZgas Ж
you can adjust the encoding speed according to the situation. but you won't be able to open a 16k x 16k jpeg xl on your smartphone for $80
|
|
2024-11-14 01:51:42
|
dc frame go brrr
|
|
|
DZgas Ж
|
|
CrushedAsian255
|
|
2024-11-14 01:52:09
|
av1 cannot be used for resolutions higher than 720p in fact. and considering the progress. This will never happen. This is the last video codec in the history of modern civilization.
|
|
2024-11-14 01:52:17
|
<:monkaMega:809252622900789269>
|
|
|
CrushedAsian255
|
|
DZgas Ж
av1 cannot be used for resolutions higher than 720p in fact. and considering the progress. This will never happen. This is the last video codec in the history of modern civilization.
|
|
2024-11-14 01:52:54
|
av2 propoganda
|
|
|
DZgas Ж
|
2024-11-14 01:54:47
|
to be honest, hevc 4k causes problems, but av1 causes even more problems at 1080p.
An interesting fact is that the entire level system was recently removed from svtav1. They can't match.
|
|
|
_wb_
|
|
DZgas Ж
I think for the average user, only the decoding speed is important.
|
|
2024-11-14 01:54:54
|
for delivery, yes, but at the capture/creation side, you do want fast encode too. Can't have a screenshot tool or the "Save" button in an editor freeze your computer for a minute...
|
|
|
CrushedAsian255
|
2024-11-14 01:56:24
|
most newer formats have some sort of speed tuning, that could affect it
|
|
|
DZgas Ж
|
|
_wb_
for delivery, yes, but at the capture/creation side, you do want fast encode too. Can't have a screenshot tool or the "Save" button in an editor freeze your computer for a minute...
|
|
2024-11-14 01:57:39
|
well use jpeg q100 4:4:4 — this is the fastest way to save an image. there is no png and no webp. bmp and png(without compression) are large in size
|
|
2024-11-14 01:58:48
|
it even annoys me that there is no alternative, because it is faster than jpeg xl e1
|
|
|
CrushedAsian255
|
2024-11-14 01:59:23
|
Can’t we make jpeg xl e1 just jpeg q100 + jpeg lossless transcoding ?
|
|
|
DZgas Ж
|
2024-11-14 02:00:35
|
by the way. I'm not sure if jpeg is faster than jpeg xl e1 modular
|
|
2024-11-14 02:00:57
|
I have never tested the fjxl project.
|
|
2024-11-14 02:01:13
|
<:JPEG_XL:805860709039865937>
|
|
2024-11-14 02:02:02
|
I saw that it was better than qoi, but I did not compare it with jpeg
|
|
|
|
JendaLinda
|
2024-11-14 02:03:47
|
Meanwhile crunching a single picture for an entire day.
|
|
2024-11-14 02:05:47
|
I'm not in hurry.
|
|
|
DZgas Ж
|
2024-11-14 02:06:51
|
so far, libjxl cannot decode a 100k x 100k image. without eat more than 1 GB of memory. It's all boring
|
|
|
_wb_
|
2024-11-14 02:07:53
|
I'm pretty sure that jpeg encoding is not faster than libjxl e1 lossless. Decoding is something else though, libjxl decode of modular is not that fast, even though we do have some specialization for the e1 case. But the decode of e1 is inherently a bit slower than the encode. There's some room for improvement in libjxl though — e.g. avoiding the conversion to float32 would probably help.
|
|
|
DZgas Ж
so far, libjxl cannot decode a 100k x 100k image. without eat more than 1 GB of memory. It's all boring
|
|
2024-11-14 02:08:54
|
Even with chunked decoding? (pixel callback, not using the full buffer api)
|
|
|
DZgas Ж
|
|
_wb_
I'm pretty sure that jpeg encoding is not faster than libjxl e1 lossless. Decoding is something else though, libjxl decode of modular is not that fast, even though we do have some specialization for the e1 case. But the decode of e1 is inherently a bit slower than the encode. There's some room for improvement in libjxl though — e.g. avoiding the conversion to float32 would probably help.
|
|
2024-11-14 02:11:55
|
I'll run the tests soon. as soon as I find a suitable huge image. now I use baseline jpeg, which takes up less memory than jpeg xl
|
|
2024-11-14 02:12:20
|
I asked an interesting question in <#848189884614705192>
|
|
|
_wb_
Even with chunked decoding? (pixel callback, not using the full buffer api)
|
|
2024-11-14 02:14:45
|
reading like 256x256 chunk and writing it to the display buffer. either in the output image, as progressive encode png, yes
|
|
|
jonnyawsom3
|
|
DZgas Ж
I'll run the tests soon. as soon as I find a suitable huge image. now I use baseline jpeg, which takes up less memory than jpeg xl
|
|
2024-11-14 02:18:50
|
I know windows at least can use subsampled chroma directly to reduce memory usage
|
|
|
DZgas Ж
|
|
I know windows at least can use subsampled chroma directly to reduce memory usage
|
|
2024-11-14 02:24:27
|
what. No. I'm sure Windows can not work like this
|
|
|
jonnyawsom3
|
|
DZgas Ж
what. No. I'm sure Windows can not work like this
|
|
2024-11-14 02:42:42
|
https://learn.microsoft.com/en-us/windows/win32/wic/jpeg-ycbcr-support
|
|
|
DZgas Ж
|
|
https://learn.microsoft.com/en-us/windows/win32/wic/jpeg-ycbcr-support
|
|
2024-11-14 04:54:21
|
funny... but I use 4:4:4 so there is no effect.
|
|
2024-11-14 04:56:52
|
I also use XnView and maybe it doesn't support this technology...
|
|
|
jonnyawsom3
|
2024-11-14 05:06:25
|
I'm not aware of any image viewer that does. Likely too specialised or new for them to make a special case for JPEG, or simply don't know
|
|
|
|
JendaLinda
|
2024-11-14 09:56:56
|
IrfanView is using just BMP internally, it finally added a full alpha support.
|
|
2024-11-14 10:01:02
|
Windows can read JPEG and PNG for some time but bitmap header had to be attached to the images.
|
|
2024-11-14 10:05:30
|
But it makes sense to add a native YCbCr support for images. Video cards could do YUV-RGB conversion for decades, but it was only used for video.
|
|
|
jonnyawsom3
|
|
JendaLinda
IrfanView is using just BMP internally, it finally added a full alpha support.
|
|
2024-11-14 10:14:30
|
They added it, but it tinges my images brown when enabled for some reason
|
|
|
|
JendaLinda
|
2024-11-14 10:35:15
|
Works fine for me, although the settings may be little confusing.
|
|
|
Quackdoc
|
2024-11-15 02:23:56
|
I wanted to try and compare https://github.com/openapv/openapv which seems to be a prores alternative to jxl, but I couldn't get it working, it would be an interesting comparison
|
|
|
jonnyawsom3
|
|
JendaLinda
Works fine for me, although the settings may be little confusing.
|
|
2024-11-15 03:14:46
|
Seems to make JXL images with alpha brown for me unless set to "Apply transparent color to background"
|
|
|
_wb_
|
2024-11-15 04:18:28
|
does this make sense?
|
|
2024-11-15 04:23:10
|
I am trying to get a bit of an overview on the container stuff, because I think I got some things a bit wrong in the past
|
|
2024-11-15 04:23:46
|
in particular, we often say the jxl container is based on ISOBMF, but in reality we're much more like the j2k file format
|
|
2024-11-15 04:24:52
|
that is, we use the box structure and we do have the `ftyp` box as an identifier, and when possible we'll reuse existing box definitions like `Exif` and `xml `, but that's about it
|
|
2024-11-15 04:25:54
|
we don't implement all of the stuff that is in ISOBMFF, stuff like `idat` and `iloc` and `iinf` and `moov` and `mdat` and all of that stuff
|
|
2024-11-15 04:28:27
|
so it's not quite correct to say that the jxl container format is "based on" ISOBMFF, it's rather just using the same box structure and you also have to use the `ftyp` box to identify a jxl file. There's no normative reference to ISOBMFF in the jxl file format spec.
|
|
|
|
JendaLinda
|
|
Seems to make JXL images with alpha brown for me unless set to "Apply transparent color to background"
|
|
2024-11-15 04:51:12
|
Does it lossy or lossless or both?
|
|
|
Quackdoc
|
|
_wb_
does this make sense?
|
|
2024-11-15 04:55:00
|
looks good to me, though maybe it would be nice to hint that the "image file format" is still a container depending how beginner the target audience is
|
|
|
_wb_
|
2024-11-15 04:59:03
|
well the way I see it you have pure container specs (like MIAF), pure codestream specs (like AV1), and then you have image formats (like AVIF) which are a combination of container and payload
|
|
2024-11-15 04:59:56
|
HEIF container + HEVC payload codec = HEIC image format
|
|
|
jonnyawsom3
|
|
JendaLinda
Does it lossy or lossless or both?
|
|
2024-11-15 05:01:40
|
Ignore transparency fails to color manage, with lossy stretching the color image and lossless keeping it's shape
Apply transparent color correctly color manages and has no issues
Keep alpha is the same as ignore, with bitdepth not increasing to 32bit
Apply color, Lossy JXL, Lossless JXL
|
|
|
|
JendaLinda
|
|
Ignore transparency fails to color manage, with lossy stretching the color image and lossless keeping it's shape
Apply transparent color correctly color manages and has no issues
Keep alpha is the same as ignore, with bitdepth not increasing to 32bit
Apply color, Lossy JXL, Lossless JXL
|
|
2024-11-15 05:20:04
|
Have you updated the plugins too?
|
|
|
jonnyawsom3
|
|
JendaLinda
Have you updated the plugins too?
|
|
2024-11-15 05:24:28
|
Irfanview 4.70 and JPEG_XL 4.68, so yes
|
|
|
|
JendaLinda
|
|
Irfanview 4.70 and JPEG_XL 4.68, so yes
|
|
2024-11-15 05:35:02
|
Opened a JXL image in IfanView and saved as PNG. Converted the same JXL to PNG using djxl. Both PNGs contain the same pixel data.
My images are in sRGB, though.
|
|
2024-11-15 05:44:22
|
But there's something strange going on with your examples, it looks like red and blue channels are swapped.
|
|
|
jonnyawsom3
|
|
JendaLinda
Opened a JXL image in IfanView and saved as PNG. Converted the same JXL to PNG using djxl. Both PNGs contain the same pixel data.
My images are in sRGB, though.
|
|
2024-11-15 05:49:13
|
An image with transparency, and changing the transparency settings in Irfanview?
|
|
|
|
JendaLinda
|
|
An image with transparency, and changing the transparency settings in Irfanview?
|
|
2024-11-15 05:57:00
|
Changing the transparency setting changes only the appearance of the background.
The more concerning fact is it looks like red and blue channels are being swapped in your image.
|
|
2024-11-15 05:59:10
|
Only with the *keep alpha* setting I get the same image as using djxl.
|
|
|
CrushedAsian255
|
|
_wb_
that is, we use the box structure and we do have the `ftyp` box as an identifier, and when possible we'll reuse existing box definitions like `Exif` and `xml `, but that's about it
|
|
2024-11-16 12:48:51
|
In ISOBMFF how do you know if a box is nested or not?
|
|
|
_wb_
|
2024-11-16 06:20:40
|
If the payload of a box is another box then it's nested 🙂
|
|
|
CrushedAsian255
|
|
_wb_
If the payload of a box is another box then it's nested 🙂
|
|
2024-11-16 07:14:18
|
How can you tell if the box should be read as individual values or as a list of other boxes?
|
|
|
_wb_
|
2024-11-16 07:15:15
|
If you understand the box type, you know how to interpret the payload. Otherwise you just ignore the box.
|
|
|
CrushedAsian255
|
2024-11-17 01:01:36
|
GIF has to be pronounced with a hard G otherwise you might confuse it with [JIF (JPEG Interchange Format)](https://en.wikipedia.org/wiki/JPEG#JPEG_files)
|
|
|
_wb_
|
2024-11-17 09:01:09
|
That's actually a good point.
|
|
2024-11-17 09:04:16
|
Though I don't think many people are aware of JIF. Even JFIF is not very commonly used, it's more common to assume that a JPEG is a JPEG _file_, and when it isn't (like when embedded in a PDF), to call it a "JPEG codestream" or something like that.
|
|
2024-11-17 09:07:15
|
In fact, originally FLIF was called JIF (though I wanted to call it JPIF), for Jon's Image Format (or Jon and Pieter), because I didn't know about the JPEG JIF, and I thought the confusion with GIF would be fun 🙂
|
|
|
|
JendaLinda
|
2024-11-17 09:47:23
|
The JPG file extension was adopted for all JPEG images probably because it has three letters. Back then, file extensions with more than three letter were often being truncated.
|
|
|
spider-mario
|
2024-11-17 09:48:41
|
blame DOS and 8.3
|
|
2024-11-17 09:49:03
|
I also remember `.htm` pages on the web
|
|
2024-11-17 09:49:22
|
interestingly, though, it’s been a while since we’ve restricted ourselves to 8 characters for the part before the extension
|
|
|
|
JendaLinda
|
|
spider-mario
I also remember `.htm` pages on the web
|
|
2024-11-17 09:54:10
|
Even better, names like `mainpa~1.htm`
|
|
2024-11-17 09:57:40
|
Short file names are still available in modern Windows and sometimes they're useful, for example in programs that doesn't support unicode file names.
|
|
2024-11-17 10:01:07
|
Still to day, I'm not fan of file extensions with more than three letters, especially if the shortened extension would conflict with another file format.
|
|
|
spider-mario
|
2024-11-17 10:08:05
|
one thing I’ve been wondering is whether there would be concrete drawbacks to using `.c++`
|
|
2024-11-17 10:08:18
|
instead of trying to come up with workarounds like `.cpp` and `.cc`
|
|
2024-11-17 10:08:29
|
(or worse of all, `.C`)
|
|
2024-11-17 10:09:46
|
other annoyances include `.m` for Objective-C and MATLAB, and `.pl` for Prolog and for Perl
|
|
|
MSLP
|
2024-11-17 10:41:16
|
Probably a minor annoyance of `.c++` would be that it needs to be urlencoded to `c%2b%2b` when requested it via HTTP
|
|
|
_wb_
|
2024-11-17 11:03:05
|
Also probably needs escaping in regexes and shell scripts etc
|
|
|
CrushedAsian255
|
2024-11-17 11:28:14
|
I don’t personally have a problem with .cpp
|
|
2024-11-17 11:28:31
|
.m makes no sense though
|
|
2024-11-17 11:28:38
|
It sounds like something for metal shaders
|
|
|
spider-mario
|
2024-11-17 12:13:22
|
apparently, it comes from “messages”
|
|
2024-11-17 12:13:28
|
since message-passing is central to the language
|
|
|
CrushedAsian255
|
2024-11-17 01:48:07
|
That would be like calling rust files .bc for borrow checked lol
|
|
2024-11-17 01:48:18
|
Or .ms for memory safely
|
|
|
|
JendaLinda
|
2024-11-17 03:40:18
|
There used to be a dozen of image formats using `.pic` extension.
|
|
2024-11-17 03:46:02
|
I don't like `.webp` extension. Looks kinda ugly and doesn't have a three letter form. Also, how is WebP supposed to be pronounced?
|
|
|
CrushedAsian255
|
|
JendaLinda
I don't like `.webp` extension. Looks kinda ugly and doesn't have a three letter form. Also, how is WebP supposed to be pronounced?
|
|
2024-11-17 03:49:40
|
“Web Pee” I think
|
|
|
|
JendaLinda
|
2024-11-17 03:53:22
|
By shortening `.avif`, you get `.avi`
`.hei` still kinda works, though.
|
|
|
CrushedAsian255
|
|
JendaLinda
By shortening `.avif`, you get `.avi`
`.hei` still kinda works, though.
|
|
2024-11-17 03:53:57
|
AVIF could probably be AIF, for Av1 Image Format
|
|
2024-11-17 03:56:02
|
Apple just gives up and doesn’t even try with their .pages and .keynote files (well, technically folders (well, technically both..?))
|
|
|
|
JendaLinda
|
2024-11-17 03:58:03
|
I suppose those files won't be usable outside Apple system anyway.
|
|
2024-11-17 04:10:44
|
There were even file formats using only numbers in the file extension.
|
|
|
RaveSteel
|
|
CrushedAsian255
AVIF could probably be AIF, for Av1 Image Format
|
|
2024-11-17 05:56:07
|
AIF is already an extension for audio
|
|
|
CrushedAsian255
|
|
RaveSteel
AIF is already an extension for audio
|
|
2024-11-17 05:56:49
|
Ah I forgot of it, I have only known of it as aiff
|
|
|
RaveSteel
|
2024-11-17 05:57:23
|
Limiting extension to three letters will bottleneck us at some point if the abbreviations are used to have meaning. But mostly just a remnant of the 8.3 days i think
|
|
2024-11-17 05:58:32
|
A1I for AV1 Image would be usable, but it looks kind of stupid, ngl
|
|
|
CrushedAsian255
|
2024-11-17 06:00:16
|
I think AVIF / WebP is fine as if your system still supports only 3 letter extensions, get a better system
|
|
|
Cacodemon345
|
|
RaveSteel
A1I for AV1 Image would be usable, but it looks kind of stupid, ngl
|
|
2024-11-17 06:08:15
|
Why does that read like an obscure extension for some obscure video format used in some MS-DOS games?
|
|
|
|
JendaLinda
|
2024-11-17 06:42:10
|
AVIF is just HEIF using AV1 compression.
MKV doesn't need a special file extension for every compression type.
|
|
2024-11-17 06:55:45
|
Although in the case of AVIF the distinction is reasonable.
|
|
|
Quackdoc
|
|
JendaLinda
AVIF is just HEIF using AV1 compression.
MKV doesn't need a special file extension for every compression type.
|
|
2024-11-17 07:04:34
|
mki when plox
|
|
|
|
JendaLinda
|
|
Quackdoc
mki when plox
|
|
2024-11-17 07:13:00
|
I actually tried that and found out FFV1 is pretty good.
|
|
|
DZgas Ж
|
2024-11-18 04:07:45
|
cat.thegreadcodecjpegxlinthisfile
|
|
2024-11-18 04:08:50
|
The file name size is still limited to 255 characters <:Stonks:806137886726553651>
|
|
|
spider-mario
|
2024-11-18 04:13:31
|
not quite, AFAIK https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation#enable-long-paths-in-windows-10-version-1607-and-later
|
|
|
jonnyawsom3
|
2024-11-18 05:34:43
|
I've been using that flag for a few years and never had an issue
|
|
|
|
JendaLinda
|
2024-11-18 07:03:02
|
There was severe path length limitation when burning files to CD.
|
|
|
RaveSteel
|
2024-11-18 08:40:02
|
On linux the kernel sadly hard limits to 255 characters for filenames. path length is 255 characters per level
|
|
|
DZgas Ж
|
|
spider-mario
not quite, AFAIK https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation#enable-long-paths-in-windows-10-version-1607-and-later
|
|
2024-11-18 08:56:23
|
python offers this feature during installation
|
|
|
LMP88959
|
2024-11-19 02:26:54
|
unrelated, but:
https://github.com/LMP88959/Digital-Subband-Video-2/pull/9
|
|
2024-11-19 02:28:11
|
asymmetric transform coding using novel subband filter.
|
|
2024-11-19 02:28:39
|
asymmetric as in slower encoding, faster decoding
|
|
2024-11-19 02:29:26
|
only 1 paper was written about this concept back in 1990 and i havent seen anyone else expand upon it
|
|
2024-11-19 02:29:44
|
but now i've implemented my own version of it and added it to the DSV2 video codec
|
|
|
Demiurge
|
2024-11-21 09:05:24
|
No one complains about .flac having 4 letters because we aren't in the 80's anymore
|
|
|
spider-mario
|
2024-11-21 10:57:51
|
`.flc` (`.fla` is already taken by Flash)
|
|
|
TheBigBadBoy - 𝙸𝚛
|
2024-11-21 11:01:30
|
`.f.lac`
|
|
|
juliobbv
|
2024-11-21 11:59:19
|
Hey all! libaom has recently gained a new `--tune=ssimulacra2` mode, available on the `main` branch. It's essentially SVT-AV1-PSY's "still picture" tune heuristics and tweaks ported into libaom, developed to improve subjective image quality and consistency, while also increasing SSIMULACRA 2 scores. If you have a project that requires using AVIF, or are just curious about the new tune, give it a try!
|
|
|
gb82
|
|
juliobbv
Hey all! libaom has recently gained a new `--tune=ssimulacra2` mode, available on the `main` branch. It's essentially SVT-AV1-PSY's "still picture" tune heuristics and tweaks ported into libaom, developed to improve subjective image quality and consistency, while also increasing SSIMULACRA 2 scores. If you have a project that requires using AVIF, or are just curious about the new tune, give it a try!
|
|
2024-11-22 07:23:23
|
(can confirm it is really good)
|
|
|
|
paperboyo
|
|
juliobbv
Hey all! libaom has recently gained a new `--tune=ssimulacra2` mode, available on the `main` branch. It's essentially SVT-AV1-PSY's "still picture" tune heuristics and tweaks ported into libaom, developed to improve subjective image quality and consistency, while also increasing SSIMULACRA 2 scores. If you have a project that requires using AVIF, or are just curious about the new tune, give it a try!
|
|
2024-11-22 03:02:26
|
> subjective image quality and consistency,
What does *consistency* mean here? Is it likely to spend more bytes on images that compress well and less bytes on images that compress poorly, given one quality value? (this is my no. 1 problem with AVIF, or with any encoder…). Is there any discussions/docs/writeups/blogposts about this that would spare me testing it blindly?
|
|
|
juliobbv
|
|
paperboyo
> subjective image quality and consistency,
What does *consistency* mean here? Is it likely to spend more bytes on images that compress well and less bytes on images that compress poorly, given one quality value? (this is my no. 1 problem with AVIF, or with any encoder…). Is there any discussions/docs/writeups/blogposts about this that would spare me testing it blindly?
|
|
2024-11-22 08:39:09
|
*Consistency* here means that, at a given quality value, the libaom will spend more bytes on images that are rated lower subjectively (or have lower SSIMULACRA2 scores), and vice versa. The end result is the ability of libaom to hit a quality level more accurately, either within an image (especially if they feature a mix of high-contrast and low-contrast features, or camera noise/film grain), or across images.
The libaom changes are hot and fresh, so no formal docs have been written up yet, but the commit development chain can be followed up here: https://aomedia-review.googlesource.com/q/owner:juliobbv@gmail.com. Additionally, almost all of the changes were ported from SVT-AV1-PSY's tune 4, of which we do have some comparisons and documentation: https://svt-av1-psy.com/avif/comparisons/index.html.
|
|
|
|
paperboyo
|
|
juliobbv
*Consistency* here means that, at a given quality value, the libaom will spend more bytes on images that are rated lower subjectively (or have lower SSIMULACRA2 scores), and vice versa. The end result is the ability of libaom to hit a quality level more accurately, either within an image (especially if they feature a mix of high-contrast and low-contrast features, or camera noise/film grain), or across images.
The libaom changes are hot and fresh, so no formal docs have been written up yet, but the commit development chain can be followed up here: https://aomedia-review.googlesource.com/q/owner:juliobbv@gmail.com. Additionally, almost all of the changes were ported from SVT-AV1-PSY's tune 4, of which we do have some comparisons and documentation: https://svt-av1-psy.com/avif/comparisons/index.html.
|
|
2024-11-22 08:41:49
|
Thanks so much! Sounds exciting, will have a read.
|
|
|
juliobbv
|
|
paperboyo
Thanks so much! Sounds exciting, will have a read.
|
|
2024-11-22 08:46:36
|
Excellent, thank you for reading me!
|
|
2024-11-22 08:59:38
|
The most extreme case I've encountered so far between tunes is http://0x0.st/X3On.png. This 36 MP image contains heavy luma and chroma noise. A competent lossy encoder can still get something decent-looking at 2 MB.
The SSIM tune (in 4:4:4 chroma subsampling mode) wipes out luma noise almost completely (while overshooting size by 8+%), but the new SSIMULACRA 2 tune retains it much more satisfactorily.
|
|
2024-11-22 09:02:20
|
|
|
2024-11-22 09:06:37
|
(fun fact: the new tune enables <@179701849576833024>'s qm-psnr distance metric, as it was found to be beneficial for SSIMULACRA 2 by 3-5%, and reduces the occurrence of ugly flat blocks)
|
|
|
|
paperboyo
|
2024-11-22 09:10:57
|
Exactly this [here](https://aomedia-review.googlesource.com/c/aom/+/194303)!
Since I can only fire one number for quality at thousands of images, I’m finding that, at the same dimensions, those of 6.1KB can easily be 20kb and those of 200kb could easily be 120kb. And the whole thing would look better. And weigh less in total.
* nos. totes invented, just to illustrate the point
Been looking for it since, like, [forever](https://github.com/GoogleChromeLabs/squoosh/issues/270#issue-380211392).
|
|
|
|
veluca
|
|
juliobbv
(fun fact: the new tune enables <@179701849576833024>'s qm-psnr distance metric, as it was found to be beneficial for SSIMULACRA 2 by 3-5%, and reduces the occurrence of ugly flat blocks)
|
|
2024-11-22 09:11:34
|
I was honestly surprised it seemed to do nothing
|
|
|
juliobbv
|
|
veluca
I was honestly surprised it seemed to do nothing
|
|
2024-11-22 09:13:47
|
it might've been the combination of the new optimized QM level picking formula + multi-scale nature of SSIMULACRA 2 actually detecting the psychovisual benefit 🤔
|
|
2024-11-22 09:16:51
|
the original QM level formula in libaom's code made zero sense to me
|
|
2024-11-22 10:54:44
|
but anyway, it's a perf review time freebie 😛
|
|
|
|
veluca
|
|
juliobbv
the original QM level formula in libaom's code made zero sense to me
|
|
2024-11-22 11:06:36
|
I don't think it was ever meant to make sense, fwiw
|
|
2024-11-22 11:06:53
|
(it might be that I replaced it, in which case it _was_ meant to make sense xD)
|
|
|
juliobbv
|
|
veluca
I don't think it was ever meant to make sense, fwiw
|
|
2024-11-23 12:39:53
|
yeah, I looked at the commit history and the original formula has pretty much stayed the same ever since its inception in VP10
|
|
|
|
veluca
|
2024-11-23 12:40:37
|
IIRC the idea was just for it to produce all different QM values to test the en/decoder correctness *shrug*
|
|
|
Demiurge
|
2024-11-23 03:39:09
|
Now if only they were monkeying with libjxl instead of libaom/svtav1
|
|
2024-11-23 03:41:19
|
A format with much more potential, the "next gen alien technology from the future" really...
|
|
2024-11-23 03:42:00
|
Not even being facetious there, the format was designed to have very long, long term potential gains deep into the future...
|
|
|
juliobbv
|
2024-11-23 09:17:43
|
I'd def be down to work on libjxl, the toolset looks fun
|
|
2024-11-23 09:19:28
|
I know that transform size selection for mid to low bitrates can be improved
|
|
|
_wb_
|
2024-11-23 09:45:53
|
Yes, also there is stuff you can do in block selection that libjxl doesn't even consider, such as using non-naturally aligned blocks (say a 32x32 block starting at coords that are not a multiple of 32) and using blocks larger than 64x64.
|
|
|
|
afed
|
2024-11-23 02:47:40
|
🤔
https://gitlab.com/AOMediaCodec/SVT-AV1/-/merge_requests/2336
|
|
|
juliobbv
|
|
_wb_
Yes, also there is stuff you can do in block selection that libjxl doesn't even consider, such as using non-naturally aligned blocks (say a 32x32 block starting at coords that are not a multiple of 32) and using blocks larger than 64x64.
|
|
2024-11-23 07:29:18
|
oh, interesting! so can you have something like, an 8x8, 32x32, 16x16, and 8x8 block along the width axis?
|
|
|
_wb_
|
2024-11-23 07:38:25
|
Yes, as long as you don't cross the boundaries of the 256x256 groups
|
|
2024-11-23 07:41:08
|
I remember Pascal was talking about the idea in the context of webp2, I think he called it "floating blocks", and we could do that in jxl too without any extra signaling cost or complications for decoding, so we did (even if we weren't using it)
|
|
|
|
veluca
|
|
juliobbv
oh, interesting! so can you have something like, an 8x8, 32x32, 16x16, and 8x8 block along the width axis?
|
|
2024-11-23 11:24:12
|
a fun thing this allows you to do is to find an actually-optimal (according to whatever metric you care for) decomposition in 16x8, 8x8 or 8x16 blocks fairly quickly, although I never tried to implement that
|
|
2024-11-23 11:36:02
|
(well, you still have to determine all the costs, but once you have those you should be able to find the optimal decomposition quickly)
|
|
|
juliobbv
|
2024-11-24 01:00:20
|
yeah, you'd have increased chances to align block edges to favorable image features
|
|
|
Demiurge
|
2024-11-25 07:17:14
|
Lossy modular/squeeze mode, which hasn't even been extensively tested or tuned, already performs just as well or better than default dct lossy mode, so maybe there's even greater potential and simplicity down that route...?
|
|
|
CrushedAsian255
|
|
Demiurge
Lossy modular/squeeze mode, which hasn't even been extensively tested or tuned, already performs just as well or better than default dct lossy mode, so maybe there's even greater potential and simplicity down that route...?
|
|
2024-11-25 08:28:56
|
100%, it just takes dev hours
|
|
|
Demiurge
|
2024-11-25 08:33:34
|
Make -m the default 😂
|
|
|
_wb_
|
2024-11-26 02:15:54
|
doing efficient unsqueeze is far from trivial, maybe there's room for improvement in decode speed of lossy modular but it won't be easy. Currently lossy modular is about 3 times as slow to decode as lossy vardct...
|
|
|
CrushedAsian255
|
|
_wb_
doing efficient unsqueeze is far from trivial, maybe there's room for improvement in decode speed of lossy modular but it won't be easy. Currently lossy modular is about 3 times as slow to decode as lossy vardct...
|
|
2024-11-26 02:57:12
|
Isn’t squeeze really bad for cache performance?
|
|
|
_wb_
|
2024-11-26 03:07:49
|
no, it's mostly just hard to do multithreading
|
|
|
|
veluca
|
2024-11-26 09:02:09
|
well, depends also on how you actually unsqueeze
|
|
2024-11-26 09:02:23
|
as it is done today in libjxl, I don't think it's particularly good for cache
|
|
|
Demiurge
|
2024-11-27 01:07:55
|
if anyone can make stuff insanely fast it's veluca
|
|
2024-11-27 01:08:16
|
the simd wizard
|
|