JPEG XL

Info

rules 57
github 35276
reddit 647

JPEG XL

tools 4225
website 1655
adoption 20712
image-compression-forum 0

General chat

welcome 3810
introduce-yourself 291
color 1414
photography 3435
other-codecs 23765
on-topic 24923
off-topic 22701

Voice Channels

General 2147

Archived

bot-spam 4380

other-codecs

CrushedAsian255
2024-11-27 02:25:35
From 2019 but quite interesting
2024-11-27 02:25:38
https://www.cambridge.org/core/services/aop-cambridge-core/content/view/5972E00494363BE37E3439FAE382DB10/S2048770320000025a.pdf/an-overview-of-coding-tools-in-av1-the-first-video-codec-from-the-alliance-for-open-media.pdf
_wb_
2024-11-27 04:30:25
I'm in the process of writing something like that but for jxl and with a lot more detail — it will probably be 50-60 pages by the time I'm done. It will take a while 🙂
Dejay
2024-11-29 12:57:35
I've just been playing around with avif(enc) and tune=ssimulacra2 and it's really insanely good at lower quality like q=30 for comics but keeps the lines mostly intact and pretty
2024-11-29 12:57:59
Is there a way to "simply" add the ssimulacra2 image metric tune to libjxl to get an improvement for lower bitrates?
DZgas Ж
DZgas Ж So my fork is SVT-AV1 v2 What is taken from svt-av1 2.2.0 1. Switching from YASM to NASM (https://gitlab.com/AOMediaCodec/SVT-AV1/-/commit/4095469a8ff516053bc7ba10d4938d37f9499d30 ?view=parallel) (tafuck) 2. AVX2 microfixes (https://gitlab.com/AOMediaCodec/SVT-AV1/-/commit/a4bd642290e028e97282833722bbe98371f846bb ) 3. Load optimization for 2-5 cores (https://gitlab.com/AOMediaCodec/SVT-AV1/-/commit/911c76502938498c34af50865b2279fa575c7811 ) That is all. The rest of the committees are shit. But since I've been using my fork for 3 months now, hardcode has made significant changes that work on all presets: 1. Use a 64x64 superblock instead of 128x128 (instead of (https://gitlab.com/AOMediaCodec/SVT-AV1/-/commit/9d6572dc4fa256d5daff9de3b222931ceb75ae3e ?view=parallel#8d0aaf3e3054aa9edddd62214850756d026f7b44)) 2. De-block the filter to maximum quality by cutting out all optimizations in which its calculation was skipped (instead of (https://gitlab.com/AOMediaCodec/SVT-AV1/-/commit/20c8dcc29b1230bc36e558a911f389654eb9ec78 )) 3. CfL (https://gist.github.com/luctrudeau/e12497a081b94bbbe5bb889b3f169417 ) counts 2 iterations instead of 1 or skips — Increases the complexity of color compression (instead of (https://gitlab.com/AOMediaCodec/SVT-AV1/-/commit/9d6572dc4fa256d5daff9de3b222931ceb75ae3e ?merge_request_iid=2253#55b67158b0326e8442be9307de2707b12447a39c)) X speed difference on presets ``` old p new 0.47 3 0.41 1.06 5 0.87 1.45 7 1.20 1.82 9 1.51 ```
2024-11-29 01:47:41
So my fork of the fork is "SVT-AV1 super-placebo" **The most overpower AV1 encoder in the world** (of the free ones) source code and ffmpeg executive file for linux (with AVX512 support) Changes: —The size of the motion search window has been hardcoded up to 512x256, making the perfect calculation of shifts when encoding first-person games and everything that is possible. —Expanded the search areas for all other things like straight lines and division into sub-blocks. —Compression of dark areas now depends on the average brightness of the frame, so now sooo dark frames will not fall apart as before. —The number of iterations for color prediction has been increased from 2 to 32 (there were no changes in the frame by a pixel after 22-25 iterations, but I did a little more for placebo). —For compression parameters 1 and below, the wm_level (Warped Motion level) function is disabled due to the super complexity of encoding, the output video contains an incredible amount of micro-movements and the division of blocks into sub-blocks. Which causes the decoding speed to drop 2-3 times when using wm_level. Which is critical in the absence of hardware decoding. Now there is no such problem. —The size of the largest block was changed to 64x64, since I was making adjustments for compression in resolutions from 640x360 to 1280x720. It is possible to use it for 1080p, but not higher. —Look for other minor changes in the file .\Source\Lib\Encoder\Codec\EncModeConfig.c by entering DZgas into the search The fork is not intended for compression at parameters lower than 7 and is not intended for streaming. The actual speed of the parameters of this fork and the parameters of a conventional encoder is about 2-3 times lower.
2024-11-29 01:51:50
<:Stonks:806137886726553651> I actually made it to compress how my streamer plays minecraft and what would it be 600-700 kbit for 720p -- But I also tested it on fragments of movies and cartoons, it looks good, the best of all. better than SVT-AV1 (-1) and better than AOM. But the compression rate is literally weeks. Literally the AV1 stndard limit. Like x264 tesa me=256
2024-11-29 01:58:18
minecraft ```ruby ./ffmpeg-placebo -i M_1-3.mkv -vf "fps=60,scale=1280:720:flags=spline+full_chroma_inp" -c:a libopus-b:a 96k -apply_phase_inv 0 -frame_duration 60 -vbr on -c:v libsvtav1 -crf 63 -g 600 -preset 4 -svtav1-params lookahead=120:tune=2:scm=1:irefresh-type=2:enable-cdef=1:enable-dlf=0:enable-mfmv=1:enable-qm=0:enable-restoration=0:enable-tf=0:enable-tpl-la=1:fast-decode=0:enable-dg=1:startup-mg-size=4:tile-columns=0:tile-rows=0:enable-variance-boost=1:variance-octile=1:variance-boost-strength=4 M1HP_1-3.mkv ```
2024-11-29 01:59:57
A homosapien
Dejay Is there a way to "simply" add the ssimulacra2 image metric tune to libjxl to get an improvement for lower bitrates?
2024-11-29 02:16:54
Probably yeah. https://discord.com/channels/794206087879852103/805176455658733570/1300874895692927016
Demiurge
Dejay Is there a way to "simply" add the ssimulacra2 image metric tune to libjxl to get an improvement for lower bitrates?
2024-11-29 06:25:27
Well, they were both written completely separately from the ground up and don't share any code in common.
2024-11-29 06:26:06
libaom and libjxl have no shared lineage
2024-11-29 06:27:11
That being said similar improvements and optimizations are possible and libjxl barely scratches the surface of efficient and effective use of lossy jxl
jonnyawsom3
2024-11-29 06:34:34
Perhaps https://discord.com/channels/794206087879852103/805176455658733570/1300876428186747012
DZgas Ж
2024-11-29 10:54:21
it turns out that XnView does not want to play apng if it is uncompressed <:SadCheems:890866831047417898>
Dejay
Demiurge Well, they were both written completely separately from the ground up and don't share any code in common.
2024-11-30 06:46:54
Well I only have a very naive idea of how all this works. Maybe a "Tuner" is just a class and you can just create a subclass called "SSimulacra2Tuner" and then instantiate and plug it in haha
2024-11-30 07:36:12
I wonder when we'll be able to train a generative ai model on various image codecs and coding tools and generate an code version for a codec, then test against errors, profile and tune automatically for various image metrics and subjective test evaluation data... people smarter than me must be working on this
2024-11-30 07:37:39
And then the ultimate image format would be like a container with a torrent / IPF hash for the codec code that can be downloaded and run sandboxed.
2024-11-30 07:45:42
Like a dictionary you download to decompress a text document. Or a font file for a web page. Or a visual dictionary that can generate visual elements (like text glyphs or speech bubbles)
Demiurge
Dejay I wonder when we'll be able to train a generative ai model on various image codecs and coding tools and generate an code version for a codec, then test against errors, profile and tune automatically for various image metrics and subjective test evaluation data... people smarter than me must be working on this
2024-11-30 07:49:20
This will never be. Machine learning is not a miracle worker.
Dejay And then the ultimate image format would be like a container with a torrent / IPF hash for the codec code that can be downloaded and run sandboxed.
2024-11-30 07:49:43
This on the other hand already exists kinda
2024-11-30 07:50:50
https://en.m.wikipedia.org/wiki/ZPAQ
2024-11-30 07:51:23
> To preserve forward and backward compatibility between versions as the compression algorithm is improved, it stores the decompression algorithm in the archive.
Dejay
Demiurge This on the other hand already exists kinda
2024-11-30 08:02:25
Yeah zpaq was what I was thinking of. Basically defines a sandbox you could write new extensible codecs for
Demiurge
2024-11-30 08:22:35
In order for machine learning to be applied to a problem it has to be fit into a harness where it's able to optimize a specific and well defined problem
2024-11-30 08:23:49
"General purpose" ai designed to "improvise" without any prior training like an LLM is just a random number generator that predicts the most plausible-sounding continuation of random nonsense
2024-11-30 08:26:45
Saying completely made up nonsense as if it were fact, impressing a lot of people at a superficial level
Dejay
2024-11-30 08:27:10
Yeah I know we're not there, but I imagine in the coming decades we'll see more progress
2024-11-30 08:27:49
BTW "the most plausible-sounding continuation of random nonsense" would be a good title for a philosophy book about the current state of human civilization
Demiurge
2024-11-30 08:28:40
It does sound a lot like human social structure, yep
Dejay Yeah I know we're not there, but I imagine in the coming decades we'll see more progress
2024-11-30 08:30:15
It isn't miraculous. It can only optimize well defined problems that you can build a well designed ML harness for
2024-11-30 08:30:50
It will never be good at solving problems outside of its scope
2024-11-30 08:31:10
That's the nature of ML
2024-11-30 08:32:38
And in order to "learn" a new skill you need a lot of man hours and expensive hardware and electricity to create the ML harness and run the trillions of simulations with high quality test data!
2024-11-30 08:33:08
These are innate limitations that will never be overcome
2024-11-30 08:34:02
Everything needs to be perfect, and it's very expensive
2024-11-30 08:34:20
And requires a lot of human work
Dejay
2024-11-30 08:35:48
Yeah sorry I don't know much about ML either 🙂 I was wondering if image coding tools could be modularized and more easily combined and generated as a more simple programming language to train on. But that is probably very naive, and the compression techniques are at the upper end of intelligence and creativity to use and come up with
Demiurge
2024-11-30 08:36:31
If all those ingredients are there, then you get an AI that works like "magic" - otherwise you get a useless random nonsense generator
Dejay Yeah sorry I don't know much about ML either 🙂 I was wondering if image coding tools could be modularized and more easily combined and generated as a more simple programming language to train on. But that is probably very naive, and the compression techniques are at the upper end of intelligence and creativity to use and come up with
2024-11-30 08:38:22
Well, the problem here actually, is assuming that there are standard modular interfaces for programmers to use
2024-11-30 08:38:39
There aren't and so different teams of programmers reinvent the wheel every time
Dejay
Demiurge Well, the problem here actually, is assuming that there are standard modular interfaces for programmers to use
2024-11-30 08:38:53
Oh? I thought object oriented programming had solved all that! 😉
Demiurge
2024-11-30 08:39:52
That's what it's supposed to solve but in reality everyone defines their own completely unique classes with completely unique interfaces that can't be plugged into a separate project made by a different team of people
2024-11-30 08:41:00
Object oriented programming is just an abstraction that marketing-savvy businessmen with no programming experience somehow tricked the world into wasting a ton of time with.
2024-11-30 08:42:12
Because for some reason that was a bullet point when trying to sell Java to people and it was sold as some incredible new modern programming panacea
Dejay
2024-11-30 08:42:18
Yeah I was making fun of that /programmerhumor
Demiurge
Dejay Well I only have a very naive idea of how all this works. Maybe a "Tuner" is just a class and you can just create a subclass called "SSimulacra2Tuner" and then instantiate and plug it in haha
2024-11-30 08:43:22
Well I was also responding to this here too
2024-11-30 08:44:30
People still don't have any standardized and modularized interfaces and code is usually very monolithic and not designed in pluggable modules
Dejay
2024-11-30 08:45:37
That's why I prefer simple procedural programming these days, it's at least easier to read and doesn't generate 200% boilerplate and overhead
Demiurge
2024-11-30 08:45:38
Everyone has to pretty much reinvent the wheel from scratch every time they do anything because modular code is not common and not what most programmers think of when starting a project
Dejay That's why I prefer simple procedural programming these days, it's at least easier to read and doesn't generate 200% boilerplate and overhead
2024-11-30 08:47:07
Yep. Way faster to do_something() rather than to define a class first and a useless interface that will never be re-used, just so I can do_thesame.thing()
Dejay
2024-11-30 08:47:35
OOP is definitely an interesting fallacy or trap many people fell into thinking it would lead to significantly better software design
2024-11-30 08:48:03
The fundamental problem is that writing code is fun, but reading other people's code isn't
Demiurge
2024-11-30 08:48:39
It's good when a programming language makes it easier to keep code organized and segregated but it should be unobtrusive and obvious, not waste developer time and mental headspace
2024-11-30 08:49:58
There's nothing wrong in theory with oo design, if it's used in situations where it makes sense and is obvious. Not artificially shoehorned into places where it's not natural
2024-11-30 08:51:10
plan9 and the 9p filesystem is a pretty good example of simple and obvious oo design
2024-11-30 08:51:29
Everything is a ~~object~~ file
2024-11-30 08:51:56
And message passing is just reading and writing to files
2024-11-30 08:53:08
It saves a lot of time since all you have to know is how to read and write to files on a filesystem
2024-11-30 08:53:29
And that's the standard IPC mechanism
2024-11-30 08:54:22
It even replaces dynamic linking with file based ipc
Dejay
2024-11-30 08:55:16
NuShell and Powershell have an interesting new programming paradigm variation with the pipeline operator. It has a better reading order compared to functional programming, is compact / saves overhead not needing so use so many temp variables
2024-11-30 08:55:24
But this is really getting off-topic 😄
jonnyawsom3
2024-12-01 09:28:15
Just uploaded a photo to Discord from my phone, sat down at my computer and noticed the dark areas had random colors like WebP sometimes does. Check the link to the file, and it got uploaded as a 12MP, quality 40, Baseline JPEG.... You would've thought they'd just resize it at least instead of ruining the quality
spider-mario
2024-12-01 09:41:19
when I upload to Discord, I use my script that bisects the highest JPEG quality that yields a result below a given size (10MB for Discord)
2024-12-01 09:41:24
Discord still ruins the preview, though
jonnyawsom3
2024-12-01 09:42:47
Do you have many JPEG that aren't already under 10MB? Or do you mean uploading arbitrary images
spider-mario
2024-12-01 09:43:17
I mean photos I’ve taken, where I start from a processed raw file that I export losslessly to TIFF
2024-12-01 09:43:42
but yeah, it’s not uncommon for the script to pick a quality close to 100 in the end, or sometimes even 100
2024-12-01 09:44:28
it seems that taking the photos with a dedicated camera helps in that regard, because (1) less noise (although this depends on the situation and on how much noise reduction is applied) and (2) potentially blurrier backgrounds that are easier to compress
jonnyawsom3
2024-12-01 09:45:06
Riiight, using jpegli? Because I know we found that disabling AQ actually helps at the high qualities you're hitting
RaveSteel
2024-12-01 09:45:31
For those using KDE Plasma, you can create a custom service menu for dolphin to i.e. use cjpegli, targeting the 10MB file size limit
spider-mario
Riiight, using jpegli? Because I know we found that disabling AQ actually helps at the high qualities you're hitting
2024-12-01 09:46:21
actually often just imagemagick (so libjpeg-turbo), but I don’t remember exactly why (reading TIFFs might have had to do with it)
2024-12-01 09:46:35
(maybe also the corresponding EXIF and XMP data)
jonnyawsom3
2024-12-01 09:47:31
Was just thinking about squeezing in the extra bits from the camera into the JPEG ;P
2024-12-01 09:48:03
But either way, good enough for looking at Discord, with the scuffed previews anyhow
2024-12-01 09:48:54
Which reminds me, I need to try and process my RAWs from Spain sometime...
DZgas Ж
2024-12-06 04:49:34
Is anyone watching them?
Meow
2024-12-06 08:04:08
Experimental (failed)
CrushedAsian255
2024-12-06 08:13:39
how would it work? based on vp9?
damian101
CrushedAsian255 how would it work? based on vp9?
2024-12-06 10:33:36
it's its own thing, even contains a lot of compression tools borrowed from AV1
DZgas Ж
CrushedAsian255 how would it work? based on vp9?
2024-12-06 01:39:52
indeed, it would be better if it were just vp9. because the main webp advantage now is the compression speed and decoding speed
2024-12-06 01:40:39
webp2 doesn't do anything better, not like webp or avif
_wb_
2024-12-06 03:09:27
WebP2 is to WebP and AVIF like JPEG XR is to JPEG and JPEG 2000: its goal is to be somewhere in between two existing formats in terms of speed and compression.
spider-mario
2024-12-06 07:53:16
(JPEG XR ended up being worse than both)
juliobbv
2024-12-06 07:56:39
WebP2 is roughly speaking, the AVM of image codecs
2024-12-06 07:56:57
I don't think they intend to cut a V1.0 out of WebP2 though
jonnyawsom3
2024-12-06 07:59:58
> WebP 2 is an experimental image codec based on WebP. WebP 2 will not be released as an image format but is used as a playground for image compression experiments.
CrushedAsian255
_wb_ WebP2 is to WebP and AVIF like JPEG XR is to JPEG and JPEG 2000: its goal is to be somewhere in between two existing formats in terms of speed and compression.
2024-12-06 10:58:51
So basically it’s instantly obsolete, by design?
_wb_
2024-12-06 11:10:49
In my opinion, yes, trying to be a trade-off between two things that already exist is a niche that is generally too small to get substantial traction. Which I guess is why they decided it is just a "playground" now.
DZgas Ж
2024-12-06 11:30:44
webp is an uncompromising hardline replacement for jpeg in all standard cases, except for 4:4:4 or when the quality need is higher than webp q100. The identical decoding speed, which nowadays works perfectly with now era large monitors. Indeed, I think that if them were to make an alternative for AVIF, then they should have made webp2 as a codec with a decoding speed identical to jpeg 1992. And in the current implementation, this is an almost useless codec for nothing. In addition to webp, which surpasses jpeg only in technology, there are other similar examples. AAC/VORBIS - MP3 Zstandard - Deflate
2024-12-06 11:37:13
It's especially funny how the Linux community abandoned the most powerful household algorithm LZMA just to reduce the unpacking time if Zstd. It's scary to imagine how many terabytes the package database has become up
CrushedAsian255
DZgas Ж It's especially funny how the Linux community abandoned the most powerful household algorithm LZMA just to reduce the unpacking time if Zstd. It's scary to imagine how many terabytes the package database has become up
2024-12-06 11:57:09
Oh LZMA, my favourite!
DZgas Ж
CrushedAsian255 Oh LZMA, my favourite!
2024-12-06 11:58:25
`7z a -m0=lzma2 -mx9 -mmt6 -mfb273 -md128m -r -t7z` DO BRRRR
CrushedAsian255
2024-12-07 12:00:04
My favourite version was liblzma 5.6.1
DZgas Ж
CrushedAsian255 My favourite version was liblzma 5.6.1
2024-12-07 12:26:19
💀 wait
2024-12-07 12:26:51
https://www.openwall.com/lists/oss-security/2024/03/29/4
A homosapien
DZgas Ж webp is an uncompromising hardline replacement for jpeg in all standard cases, except for 4:4:4 or when the quality need is higher than webp q100. The identical decoding speed, which nowadays works perfectly with now era large monitors. Indeed, I think that if them were to make an alternative for AVIF, then they should have made webp2 as a codec with a decoding speed identical to jpeg 1992. And in the current implementation, this is an almost useless codec for nothing. In addition to webp, which surpasses jpeg only in technology, there are other similar examples. AAC/VORBIS - MP3 Zstandard - Deflate
2024-12-07 01:15:40
> webp is an uncompromising hardline replacement for jpeg in all standard cases except for 4:4:4 or when the quality need is higher than webp q100. Not to mention the forced TV range (16-235), the smaller maximum image dimensions (WebP's 16K vs Jpeg's 65K), and ~~complete lack of progressive decoding~~ only scan line decoding.
2024-12-07 01:21:53
If you don't care about any of those downsides then yes, WebP is objectively better than jpeg
DZgas Ж
A homosapien > webp is an uncompromising hardline replacement for jpeg in all standard cases except for 4:4:4 or when the quality need is higher than webp q100. Not to mention the forced TV range (16-235), the smaller maximum image dimensions (WebP's 16K vs Jpeg's 65K), and ~~complete lack of progressive decoding~~ only scan line decoding.
2024-12-07 05:20:29
WebP has block-linear decoding during download. This is already better than AVIF and in this case JPEG XL - because jxl decoder does not support block linear display at the moment. But yes, it supports real progressive decoding
A homosapien If you don't care about any of those downsides then yes, WebP is objectively better than jpeg
2024-12-07 05:23:33
at resolutions like 250x250, webp also shows better results than jpeg and also jpeg xl in some cases. At the moment, this is due to the fact that JPEG XL still does not work with blocks smaller than 8x8 which artifacts of lack of advantage
A homosapien
2024-12-07 08:03:41
I forgot WebP had scan line decoding, still isn't comparable to JPEG's proper progressive mode though
jonnyawsom3
2024-12-07 08:16:42
You gave me an idea. Currently libjxl isn't doing lqip decoding, for some reason, and cjxl is putting LfGlobal at the end of the file instead of the start... Could we decode the HF groups onto a plain background like Jon described for damaged files missing an LF group? Then you at least get the texture before the color, instead of nothing until the end
CrushedAsian255
You gave me an idea. Currently libjxl isn't doing lqip decoding, for some reason, and cjxl is putting LfGlobal at the end of the file instead of the start... Could we decode the HF groups onto a plain background like Jon described for damaged files missing an LF group? Then you at least get the texture before the color, instead of nothing until the end
2024-12-07 08:21:40
so LfGlobal is going right at the end of the file, why ??
jonnyawsom3
CrushedAsian255 so LfGlobal is going right at the end of the file, why ??
2024-12-07 08:23:32
TL;DR: Chunked encoding https://github.com/libjxl/libjxl/issues/3823
CrushedAsian255
TL;DR: Chunked encoding https://github.com/libjxl/libjxl/issues/3823
2024-12-07 08:25:31
is it possible to cache the output before writing?
2024-12-07 08:25:52
as in like buffer it in memory then write everything at the end
jonnyawsom3
2024-12-07 08:26:19
So I got the names a bit mixed up but yeah, that's what I said in my comment
2024-12-07 08:26:50
Since streamed output is only with a flag anyway
2024-12-07 10:01:18
Actually, I wonder if <@810102077895344159> has been subject to this on The Guardian without realising, asuuming they use progressive
CrushedAsian255
2024-12-07 10:02:57
im gonna test that
2024-12-07 10:03:46
here's a random JXL
2024-12-07 10:03:50
2024-12-07 10:04:06
2024-12-07 10:05:01
so its ``` LfGlobal LfGroup(0) GroupPass ... GroupPass LfGroup(1) GroupPass ... GroupPass ... LfGroup(n) GroupPass ... GroupPass HfGlobal ```
2024-12-07 10:05:24
im guessing HfGlobal is required to decode the GroupPasses?
Tirr
2024-12-07 10:05:32
yep
jonnyawsom3
2024-12-07 10:47:16
Huh, I could've sworn it didn't show anything for me, but maybe I'm thinking of my lqip tests...
CrushedAsian255
Huh, I could've sworn it didn't show anything for me, but maybe I'm thinking of my lqip tests...
2024-12-08 03:43:12
it seems to load all the 1:8 group-by-group and then everything loads
So I got the names a bit mixed up but yeah, that's what I said in my comment
2024-12-08 06:23:40
wait doesn't it already have to buffer the output to write the TOC?
2024-12-08 06:23:44
or does the TOC go at the end
Demiurge
2024-12-08 11:37:06
It's at the beginning
CrushedAsian255
Demiurge It's at the beginning
2024-12-08 12:03:53
How does libjxl write it then?
Demiurge
2024-12-08 12:06:36
Either the output file is seekable, or maybe, gotta double check if the spec allows the toc to be missing or at the end, but if it's at the end it's essentially as useless as not having one at all.
2024-12-08 12:07:42
I don't know. It's meant to be at the beginning though otherwise it serves no purpose
CrushedAsian255
2024-12-08 12:24:42
I’m guessing file is being seeked like how formats like FLAC write TOCs
jonnyawsom3
2024-12-08 12:56:17
It goes FrameHeader, TOC, LfGlobal
_wb_
2024-12-08 01:03:56
Yes, TOC is just after frameheader and before any of the data sections.
DZgas Ж
2024-12-10 08:36:19
```c codec | decode speed JPEG 4:2:0 x 1 TIFF raw x 1.4 GIF x 2.9 AVC key 420 x 3.0 WEBP lossy x 3.2 HEVC key 420 x 3.3 BMP x 6.3 JPEG 2000 x 7.5 VP9 key 420 x 8.4 AVIF 4:2:0 x 11 PNG x 12 WEBP loseless x 20 JPEG XL lossy x 26 JPEG XL loseless x 66 ```
RaveSteel
2024-12-10 09:23:10
for which image? or is it a dataset?
2024-12-10 09:23:23
how did you test the decode speed?
DZgas Ж
RaveSteel for which image? or is it a dataset?
2024-12-10 09:29:47
meh
RaveSteel how did you test the decode speed?
2024-12-10 09:31:52
I run ffmpeg decoding 20 times in a row, I get the average decoding time python subprosess ffmpeg -i IN -f null
_wb_
2024-12-10 09:51:00
Single-threaded ?
DZgas Ж
_wb_ Single-threaded ?
2024-12-11 01:38:07
with 4 threads, jxl in one thread was 30% worse. at the same time nothing else codec has changed in speed. so it the multithread test
2024-12-11 01:39:37
that is, technically, multithreaded (keyframe) decoding in ffmpeg has only jpeg xl
2024-12-11 01:45:44
I understand that the video is decoded multithreaded because there is not only a keyframe. but They didn't give a damn on all other image codecs. still FFMPEG is an acceptable encoder
jonnyawsom3
2024-12-11 05:20:51
Is there any *usable* tool to find looping portions in videos to be turned into GIF, APNG, AVIF, JXL, ect? Got some friends who have 'looping' videos that have some extra frames that mess it up, but I don't want to have to pixel peep every one to find the correct point, and any existing tools are either proof of concept or dead links on websites
DZgas Ж
Is there any *usable* tool to find looping portions in videos to be turned into GIF, APNG, AVIF, JXL, ect? Got some friends who have 'looping' videos that have some extra frames that mess it up, but I don't want to have to pixel peep every one to find the correct point, and any existing tools are either proof of concept or dead links on websites
2024-12-11 01:33:11
are the frames at the beginning and end?
2024-12-11 01:36:57
it's really difficult if you need to remove a frame from the middle without recoding. at the moment, it can only be jxl due to the lack of frame dependency. apng is possible, but I'm not sure. gif is also possible, but I'm not sure either. There are no such tools. you'll have to program them according to the documentation
Demiurge
DZgas Ж ```c codec | decode speed JPEG 4:2:0 x 1 TIFF raw x 1.4 GIF x 2.9 AVC key 420 x 3.0 WEBP lossy x 3.2 HEVC key 420 x 3.3 BMP x 6.3 JPEG 2000 x 7.5 VP9 key 420 x 8.4 AVIF 4:2:0 x 11 PNG x 12 WEBP loseless x 20 JPEG XL lossy x 26 JPEG XL loseless x 66 ```
2024-12-11 03:37:15
Notably absent: rgb avif, 4:4:4 avif, lossless avif (lmao)
DZgas Ж
Demiurge Notably absent: rgb avif, 4:4:4 avif, lossless avif (lmao)
2024-12-11 05:23:42
6 years ago it was the best codec..... I don't use it anywhere right now... even Google uses webp and not avif
JKUser4592
2024-12-11 07:01:21
Which image viewers for Windows (not counting video players) support playing animated HEIF files? https://forum.doom9.org/showthread.php?t=185875
A homosapien
JKUser4592 Which image viewers for Windows (not counting video players) support playing animated HEIF files? https://forum.doom9.org/showthread.php?t=185875
2024-12-11 08:34:32
I have bad news for you, only (some) video players can open animated HEIF files. Not really surprising when you shove an entire video in a image format. No known image viewer can play animated HEIF files.
Demiurge
2024-12-11 08:47:05
Well it's just an mp4 video file with specific layout and metadata
2024-12-11 08:47:15
Pretending to be its own format
2024-12-11 08:47:18
Same with avif
2024-12-11 08:47:25
Avif is also just mp4
2024-12-11 08:47:40
Also known as isobmf or whatever
2024-12-11 08:47:50
Also known as quicktime mov
A homosapien
2024-12-11 08:59:05
A horrible horrible hack you can do to get HEIF files to play on windows is to rename the .heif extension to .mp4. If you have the windows HEVC addon installed, it will decode and play in the windows media player (which is still a video player). 💀 <:tfw:843857104439607327>
Demiurge
2024-12-11 08:59:28
Or .mov
2024-12-11 09:00:22
.mov is what it was originally called and known as so if you want to be extremely pedantically correct we should all just call it .mov
A homosapien
2024-12-11 09:02:05
Wow, renaming .heif to .mov actually gets it to play in the default windows image viewer
JKUser4592 Which image viewers for Windows (not counting video players) support playing animated HEIF files? https://forum.doom9.org/showthread.php?t=185875
2024-12-11 09:04:58
Don't bother remuxing HEVC to HEIF, just remux the .mp4/.mkv to .mov and it will play in any image viewer that supports decoding h265 payloads. `ffmpeg -i inputVideo.mkv -c copy -an outputVideo.mov`
2024-12-11 09:06:04
Moral of the story, stay far far away from HEIF, it sucks
Quackdoc
A homosapien Wow, renaming .heif to .mov actually gets it to play in the default windows image viewer
2024-12-11 09:06:21
this stuff works with a large number of applications, the same thing with avif before wide spread support
jonnyawsom3
DZgas Ж are the frames at the beginning and end?
2024-12-11 09:07:24
Should be. I imagine it's a "simple" case of comparing frames and finding the points with a minimum difference between each other, but it'd be slow
Demiurge
2024-12-11 09:08:17
jonnyawsom3
2024-12-11 09:10:34
The joys of renaming every video to mp4 in hopes that it suddenly worked on my old Android phone
Quackdoc
2024-12-11 09:19:25
mpv-android [av1_chad](https://cdn.discordapp.com/emojis/862625638238257183.webp?size=48&name=av1_chad)
DZgas Ж
Should be. I imagine it's a "simple" case of comparing frames and finding the points with a minimum difference between each other, but it'd be slow
2024-12-11 09:21:11
I didn't quite get it. Are you talking about skipping similar frames?
jonnyawsom3
DZgas Ж I didn't quite get it. Are you talking about skipping similar frames?
2024-12-11 09:24:59
No, imagine someone creates a looping animation, but when rendering it they don't set the duration correctly, so it loops 1.5x times and abruptly stops, ect. You could find the identical start frame and 1x loop frame that match, and remove the excess
2024-12-11 09:25:48
Or in a video to make loop, search a duration for the most similar frames to crop to
DZgas Ж
No, imagine someone creates a looping animation, but when rendering it they don't set the duration correctly, so it loops 1.5x times and abruptly stops, ect. You could find the identical start frame and 1x loop frame that match, and remove the excess
2024-12-11 09:28:22
and... so it's easy to do it through ffmpeg cropping use -c copy
paperboyo
No, imagine someone creates a looping animation, but when rendering it they don't set the duration correctly, so it loops 1.5x times and abruptly stops, ect. You could find the identical start frame and 1x loop frame that match, and remove the excess
2024-12-11 11:12:32
Would be interested in such a thing too For something more crazy, but sorta similar this oldie (Windows only) is still working well. I never found anything similarly good (would love to be proved wrong!): https://hhoppe.com/proj/videoloops/
jonnyawsom3
paperboyo Would be interested in such a thing too For something more crazy, but sorta similar this oldie (Windows only) is still working well. I never found anything similarly good (would love to be proved wrong!): https://hhoppe.com/proj/videoloops/
2024-12-11 11:46:45
It's not one of the other older techniques I had seen before, but ouch... > Also, creating new video loops requires 8 GB of memory.
JKUser4592
2024-12-12 01:10:04
After asking around and receiving many different answers, I been wondering if AVIF is really an image or just a AV1 video. So, which is it, an image or a video format?
Quackdoc
2024-12-12 01:10:25
both
2024-12-12 01:10:32
they are not exclusive
2024-12-12 01:10:56
a video is just a series of images
jonnyawsom3
2024-12-12 01:20:00
AVIF is AV1, there's nothing really image specific for it
CrushedAsian255
JKUser4592 After asking around and receiving many different answers, I been wondering if AVIF is really an image or just a AV1 video. So, which is it, an image or a video format?
2024-12-12 01:42:11
its a single frame of AV1 video
2024-12-12 01:42:21
packed in the High Efficiency Image File Format
2024-12-12 01:42:27
(same one used by Apple and HEIC)
Demiurge
2024-12-12 03:52:47
Also known as .mov
2024-12-12 03:53:05
Also .jxl is an extension of .mov too
2024-12-12 03:53:31
But not like heif
2024-12-12 03:53:46
Heif is closer to an actual traditional .mov file
2024-12-12 03:55:10
Also only some .jxl files are .mov files
2024-12-12 03:55:32
Some are raw containerless files
CrushedAsian255
Demiurge Also only some .jxl files are .mov files
2024-12-12 06:52:10
technically ISOBMFF files, so .jxl and .mov are more like siblings
JendaLinda
2024-12-12 11:22:19
In theory HEIF can use any video codec, including MPEG1, MPEG2, XviD, VC1, AVC etc.
Demiurge
2024-12-12 11:50:02
Isobmff is just a .mov
CrushedAsian255
JendaLinda In theory HEIF can use any video codec, including MPEG1, MPEG2, XviD, VC1, AVC etc.
2024-12-12 11:59:03
Huh, so my ProRes Image Format idea isn’t off the table?
JendaLinda
2024-12-12 07:26:46
Yeah, I thought why wouldn't they ditch lossless AV1 and use FFV1 instead.
Cool Doggo
Is there any *usable* tool to find looping portions in videos to be turned into GIF, APNG, AVIF, JXL, ect? Got some friends who have 'looping' videos that have some extra frames that mess it up, but I don't want to have to pixel peep every one to find the correct point, and any existing tools are either proof of concept or dead links on websites
2024-12-12 08:10:04
a bit late but moviepy has this: https://zulko.github.io/moviepy/reference/reference/moviepy.video.tools.cuts.FramesMatches.html
2024-12-12 08:11:35
if you want to keep the resizing with the example given there, `.resize(width=200)` has to be changed to `.resized(width=200)`
Demiurge
2024-12-12 09:55:39
apparently ffv1 isn't actually that great in my experience
2024-12-12 09:55:56
lossless x264 or x265 has great performance.
RaveSteel
2024-12-13 12:34:37
ffv1 is mostly used/intended for proper archival after all
TheBigBadBoy - 𝙸𝚛
2024-12-13 09:24:50
I wonder how this https://github.com/dropbox/avrecode compares to ffv1 🤔
jonnyawsom3
2024-12-13 10:06:17
That's not the same thing
2024-12-13 10:06:49
avrecode is like JPEG transcoding to JXL, ffv1 is just another video codec for lossless
damian101
Demiurge lossless x264 or x265 has great performance.
2024-12-13 11:16:43
x265 lossless is quite bad, ffv1 beats x264 only on noisy content where not much inter frame compression is possible
TheBigBadBoy - 𝙸𝚛
avrecode is like JPEG transcoding to JXL, ffv1 is just another video codec for lossless
2024-12-13 11:18:42
I know I still wonder how good it compares <:KekDog:805390049033191445>
2024-12-13 11:19:44
but rn my drive is full <:SadOrange:806131742636507177>
jonnyawsom3
2024-12-13 12:54:33
I'm at 160 GB free myself
TheBigBadBoy - 𝙸𝚛
TheBigBadBoy - 𝙸𝚛 but rn my drive is full <:SadOrange:806131742636507177>
2024-12-13 12:57:46
just because REDacted was freeleech last w-e, so I took what I could lol
Kremzli
2024-12-13 01:14:24
what do you guys do to get max png compression?
jonnyawsom3
2024-12-13 01:35:49
Max within reason, or absolute max?
Kremzli
2024-12-13 01:41:08
Max without waiting forever
2024-12-13 01:41:30
like what software and params i guess or other tricks
2024-12-13 01:41:59
or would it not matter if i convert to webp in the end
damian101
Kremzli what do you guys do to get max png compression?
2024-12-13 01:48:28
Just do `oxipng -Z --fast`. With option `-s` to strip non-essential metadata.
2024-12-13 01:49:16
Sometimes I do `ect -30035` afterwards to get it even smaller.
Kremzli
2024-12-13 02:03:24
how do i do that ect thing?
TheBigBadBoy - 𝙸𝚛
Kremzli how do i do that ect thing?
2024-12-13 04:38:59
https://github.com/fhanau/Efficient-Compression-Tool
Demiurge
x265 lossless is quite bad, ffv1 beats x264 only on noisy content where not much inter frame compression is possible
2024-12-13 07:23:48
Worse than x264?
2024-12-13 07:24:15
I thought it had slightly better compression in lossless mode
2024-12-13 07:25:10
And ffv1 was left in the dust in both speed and compression ratio
damian101
Demiurge Worse than x264?
2024-12-13 07:37:31
x265 is always worse than x264 in lossless mode. Maybe because it doesn't have a dedicated lossless profile and thus compromises were made to not unnecessarily increase decoding complexity for hardware decoders? Idk.
DZgas Ж
2024-12-13 09:19:59
x265 is always worse than x264 ✅
damian101
2024-12-13 09:28:30
<:feelsbanman:1075509898512707665>
Kremzli
Just do `oxipng -Z --fast`. With option `-s` to strip non-essential metadata.
2024-12-13 11:20:26
Alright thanks guys. It don't go more compressed though so it's joever for lossless
A homosapien
Kremzli or would it not matter if i convert to webp in the end
2024-12-14 12:22:12
WebP actually has a pretty good lossless mode
jonnyawsom3
2024-12-14 12:25:41
And JXL does almost as well in a lot less time and memory
DZgas Ж
2024-12-14 03:31:59
🎀 <:jxl:1300131149867126814> jxl is best for loseless works in 2025
Kremzli
2024-12-14 03:06:57
Would love to use jxl instead but browsers moment
damian101
2024-12-14 04:53:40
`cwebp -z 9` for highest lossless compression
username
`cwebp -z 9` for highest lossless compression
2024-12-14 04:56:13
you are forgetting `-alpha_filter best`. also something not related to compression strength that should probably be used as well is `-mt` and `-metadata icc`
2024-12-14 04:56:46
still crazy to me that `-metadata` defaults to `none`
A homosapien
2024-12-14 06:15:22
I wonder if `-alpha_filter best` is implicitly turned on at `-z 9`
username
2024-12-14 06:16:10
I haven't checked but I kinda doubt it
A homosapien
2024-12-14 06:17:26
I'll do some testing when I get the time
gb82
`cwebp -z 9` for highest lossless compression
2024-12-15 07:56:08
But z9 isn’t always best for WebP lossless, ideally you want to brute force all of the effort levels
A homosapien
2024-12-15 08:17:16
z9 is a sane best option
2024-12-15 08:18:01
You could go completely crazy and brute force all -q and -m options
2024-12-15 08:18:50
Not that I'm speaking from experience or anything haha 😅
TheBigBadBoy - 𝙸𝚛
2024-12-15 12:22:31
tbh I never managed to compress better with `-q` & `-m` bruteforce than `-z` bruteforce tested on a few dozens files
2024-12-15 12:22:48
perhaps I was just "unlucky"
Kremzli
Kremzli Alright thanks guys. It don't go more compressed though so it's joever for lossless
2024-12-15 06:01:14
Somehow i didnt think that the very HD cat picture in that screenshot wouldnt compress to 300kb
2024-12-15 07:01:32
this is what im doing btw https://github.com/catppuccin/simplex/pull/11
2024-12-15 07:02:23
the individual images for the theme flavors are ok in size in now, but the preview combining them in a grid is like 70% bigger than the one in the repo originally
2024-12-15 07:03:56
going through `oxipng --opt 6 --fast` didnt matter before doing `cwebp -lossless -m 6 -z 9 -alpha_filter best -mt -metadata icc -progress preview.webp -o preview.webp`
2024-12-15 07:04:46
and i did try before with `oxipng -Z --fast` and that was quite not fun and did not get meaningful results
2024-12-15 07:08:23
cwebp is from brew if that matters
jonnyawsom3
2024-12-19 10:22:17
Reading the Valve game compositor PR where they added AVIF and it hurts ```// We are not actually using YUV, but storing raw GBR (yes not RGB) data // This does not compress as well, but is always lossless! pEncoder->quality = AVIF_QUALITY_LOSSLESS; pEncoder->qualityAlpha = AVIF_QUALITY_LOSSLESS; pEncoder->speed = AVIF_SPEED_FASTEST;``` https://github.com/ValveSoftware/gamescope/pull/1068/files#diff-452db373032f99b8c4bd2ed8b40bbd2bab7bed63bf8c51714acc025ea9b6200fR3190
0xC0000054
Reading the Valve game compositor PR where they added AVIF and it hurts ```// We are not actually using YUV, but storing raw GBR (yes not RGB) data // This does not compress as well, but is always lossless! pEncoder->quality = AVIF_QUALITY_LOSSLESS; pEncoder->qualityAlpha = AVIF_QUALITY_LOSSLESS; pEncoder->speed = AVIF_SPEED_FASTEST;``` https://github.com/ValveSoftware/gamescope/pull/1068/files#diff-452db373032f99b8c4bd2ed8b40bbd2bab7bed63bf8c51714acc025ea9b6200fR3190
2024-12-19 10:33:53
Why would they bother to add AVIF if it is restricted to lossless. 😕 If lossless compression is the main goal, there are better image formats for that.
CrushedAsian255
0xC0000054 Why would they bother to add AVIF if it is restricted to lossless. 😕 If lossless compression is the main goal, there are better image formats for that.
2024-12-19 10:39:46
WebP lossless and (oxi)PNG quite often work better 💀
0xC0000054
2024-12-19 10:42:11
AVIF is also a slow codec (at least libaom). I had to use several tricks to improve the UI responsiveness in my Paint.NET AVIF plugin.
jonnyawsom3
2024-12-19 10:46:32
https://github.com/ValveSoftware/gamescope/issues/1525
Quackdoc
2024-12-19 12:42:03
I don't use gamescope it is an incredibly buggy and poorly designed peice if software
RaveSteel
2024-12-19 04:43:49
I assume it may be due to the fact that Valve wanted 10 bit due to the HDR capabilities of gamescope. WebP and PNG do not support 10 bit
HCrikki
2024-12-19 05:18:44
They shouldve started with jpegli. Their existing jpg encoder generates screenshots of ludicrously bad quality in the first place
Quackdoc
2024-12-19 05:19:24
I dont try to understand why they choose to do the stuff they do
HCrikki
2024-12-19 05:20:13
Like png, avif seems to just be an additional format exported to and not the primary screenshot generated
2024-12-19 05:20:55
Export to jxl similarly should be just as straightforward
dogelition
RaveSteel I assume it may be due to the fact that Valve wanted 10 bit due to the HDR capabilities of gamescope. WebP and PNG do not support 10 bit
2024-12-19 05:33:14
but you can easily fit 10 bit data into a 16 bit png either properly (via multiplication) or slightly wrong for better compression (via bit shifting)
2024-12-19 05:34:23
and if you add an `sBIT` chunk, it can be interpreted as 10 bit data by applications that support it (though the only one i'm aware of is `cjxl`)
jonnyawsom3
2024-12-19 06:01:40
I mean technically, someone should be able to make a PR swapping AVIF for JXL, or changing the jpeg to jpegli *cough cough the abi compatible library*
Demiurge
Quackdoc I don't use gamescope it is an incredibly buggy and poorly designed peice if software
2024-12-19 10:58:41
??
2024-12-19 10:58:51
Is it?
Quackdoc
Demiurge ??
2024-12-19 11:00:23
yeah, people are constantly hitting bugs with it that often times don't get fixed, regressions are common, key combos to control gamescope when nested are all *super+key* combos etc.
Demiurge
2024-12-19 11:10:42
iirc, the coreutils devs added rm --no-preserve-root option because of valve doing rm -rf / in one of Steam's bash scripts
2024-12-19 11:11:16
Specifically in response to valve
2024-12-19 11:20:37
They aren't exactly known for their coding proficiency. The Steam client is an ugly, resource hungry electron app
2024-12-19 11:24:55
But gamescope always seemed like a clever idea...
2024-12-19 11:25:26
Emulating a virtual monitor so it can't screw with the rest of your session, or get screwed
2024-12-19 11:25:46
Reducing latency somehow too
A homosapien
0xC0000054 AVIF is also a slow codec (at least libaom). I had to use several tricks to improve the UI responsiveness in my Paint.NET AVIF plugin.
2024-12-21 06:31:53
As an avid paint.net user I'm interested, you mind sharing some of the tricks you used?
0xC0000054
A homosapien As an avid paint.net user I'm interested, you mind sharing some of the tricks you used?
2024-12-21 10:40:45
https://0xc0000054.github.io/pdn-avif/using-image-grids.html
2024-12-21 10:43:37
That technique breaks AVIF rendering in Firefox, but only because Mozilla has had [image grid support](<https://bugzilla.mozilla.org/show_bug.cgi?id=1696090>) on their AVIF decoder backlog for 4 years.
_wb_
2024-12-22 09:50:46
This is why I don't like it when functionality like tiling or orientation is left as an application responsibility, instead of being part of the codec itself.
jonnyawsom3
2024-12-22 11:40:26
Wondering if someone can help me with this, I *think* I've been accurate with my explanations so far, but I'd rather have someone familiar with DCT to handle these latest questions https://github.com/Beep6581/RawTherapee/issues/7125#issuecomment-2558249779
2024-12-22 11:42:37
I think there might be some misunderstanding between the context of jpegli's high bitdepth output compared to just scaling it
Demiurge
_wb_ This is why I don't like it when functionality like tiling or orientation is left as an application responsibility, instead of being part of the codec itself.
2024-12-22 12:40:57
Yeah. I think that's sometimes called a "layering violation"
2024-12-22 12:41:39
Basically expecting software on one layer to do something that should be done on a different abstraction layer
2024-12-22 12:42:02
It's very bad
Wondering if someone can help me with this, I *think* I've been accurate with my explanations so far, but I'd rather have someone familiar with DCT to handle these latest questions https://github.com/Beep6581/RawTherapee/issues/7125#issuecomment-2558249779
2024-12-22 07:58:43
My understanding is that going from low to high bit depth is not lossy and does not require requantizatization or dithering and adding noise is totally pointless
jonnyawsom3
2024-12-22 08:04:36
Huh
2024-12-22 08:04:47
I think Github might've sent you to the wrong comment
Demiurge
2024-12-22 08:18:35
Probably
DZgas Ж
2024-12-23 10:18:01
https://www.rfc-editor.org/info/rfc9639
2024-12-23 10:19:16
RFC 9639 Free Lossless Audio Codec (FLAC), DECEMBER 2024 PROPOSED STANDARD
TheBigBadBoy - 𝙸𝚛
2024-12-23 02:47:38
what?? FLAC wasn't standardize yet ? I don't understand
spider-mario
2024-12-23 02:56:12
the specification used to be here: https://xiph.org/flac/old_format.html
2024-12-23 02:57:01
in the same way that the Vorbis specification is currently here: https://xiph.org/vorbis/doc/Vorbis_I_spec.html
TheBigBadBoy - 𝙸𝚛
2024-12-23 02:59:58
[⠀](https://cdn.discordapp.com/emojis/654081052108652544.webp?size=48&name=av1_Hmmm)
2024-12-23 03:00:41
what is the difference/advantage to have your specs as a RFC instead of `https://xiph.org/flac/old_format.html` ?
CrushedAsian255
2024-12-23 03:15:12
I thought it already was an IETF RFC
Demiurge
TheBigBadBoy - 𝙸𝚛 what is the difference/advantage to have your specs as a RFC instead of `https://xiph.org/flac/old_format.html` ?
2024-12-23 08:45:56
It's more official that way. So that way you know you're really real and acceptable and presentable and respectable like a vegetable.
2024-12-23 08:47:12
Someone might even put an official looking stamp on it to make you feel even more safe and secure. And your fairy godmother will come to your window and assure you that you're really a real boy now
2024-12-23 08:59:41
It's not enough that it's a stable standard that hasn't changed for years, or that it has good hardware/firmware support in a massive amount of popular commercial products. It's still not OFFICIAL, see. That's what ACTUALLY matters.
TheBigBadBoy - 𝙸𝚛
2024-12-23 09:01:21
https://cdn.discordapp.com/emojis/872898333239279666.png?quality=lossless&name=av1_frogstudy&size=48
Naksu
2024-12-24 12:54:10
With that, is there any chance it might someday be used on Blu-ray discs?
RaveSteel
2024-12-24 01:21:18
Probably not, since FLAC does not support Dolby Atmos like channels IIRC. There are people working on a libre competitor to these formats, but it will very likely not be FLAC
Naksu
2024-12-24 01:44:19
I imagined it as a replacement for TrueHD and DTS-HD MA, not for Atmos and DTS:X.
2024-12-24 01:48:51
Just like PCM is progressively being replaced (although maybe not on CDs).
DZgas Ж
2024-12-24 01:59:50
I'm bothered by the fact that the standard supports variable-length blocks, which is why you can do sooooo long bruteforce on block sizes for each part of the sound. but no one has implemented it. but at least the original encoder has built-in the ability to change the length of a constant block size. this gives you an unforgettable opportunity to encode 1 track 16 thousand times with a block size from 1 to 16,000 bytes (and even more) to choose an option that compresses 0.1% better
2024-12-24 02:00:36
just.
CrushedAsian255
DZgas Ж I'm bothered by the fact that the standard supports variable-length blocks, which is why you can do sooooo long bruteforce on block sizes for each part of the sound. but no one has implemented it. but at least the original encoder has built-in the ability to change the length of a constant block size. this gives you an unforgettable opportunity to encode 1 track 16 thousand times with a block size from 1 to 16,000 bytes (and even more) to choose an option that compresses 0.1% better
2024-12-24 04:47:58
FLAC -e 11
TheBigBadBoy - 𝙸𝚛
2024-12-24 07:24:28
`flaccid` my beloved <:KekDog:805390049033191445>
CrushedAsian255
2024-12-25 07:00:11
Meow
2024-12-26 01:52:58
Made a script of Quick Action on macOS for converting images to JXR which most of people don't need. -q 15 is close to JXL's q1.0 `for f in "$@" do sips -s format tiff "$f" --out "${f%.*}.tiff" /usr/local/bin/jxrencapp -i "${f%.*}.tiff" -o "${f%.*}.jxr" -q 15 -Q 15 rm "${f%.*}.tiff" done`
2024-12-26 01:54:46
You have to install jxrlib first and it doesn't support importing even PNG or JPEG
2024-12-26 01:55:36
That's why I choose TIFF as a medium
2024-12-26 01:57:53
No option for compression ratio and the sizes are impressively larger
2024-12-26 02:05:37
For lossless JXR it can be either close to PNG or much larger
2024-12-26 02:14:04
-q 15
jonnyawsom3
2024-12-26 02:49:51
IIRC, JXR uses floats instead of ints, and can actually be competitive with lossless JXL currently when given a float input
Meow
2024-12-26 03:23:22
What a mysterious "sister format"
IIRC, JXR uses floats instead of ints, and can actually be competitive with lossless JXL currently when given a float input
2024-12-26 05:31:26
Is there any testing result about that?
dogelition
Meow Is there any testing result about that?
2024-12-26 05:49:52
does this count? https://discord.com/channels/794206087879852103/803645746661425173/1250101680620568727
Meow
dogelition does this count? https://discord.com/channels/794206087879852103/803645746661425173/1250101680620568727
2024-12-27 01:37:35
So that's a big room for libjxl to improve
2024-12-27 01:40:30
For digital artworks JXL definitely performs better
2024-12-27 01:43:17
Windows 11 can still display JXR's preview and PowerToys' Peek can preview JXR as well. JXL is unsupported by both <:PepeHands:808829977608323112>
2024-12-27 06:29:25
Oh here are HDR samples of JXR provided by Microsoft as well https://aka.ms/hdr-backgrounds-wip
Demiurge
CrushedAsian255
2024-12-27 02:30:43
Rate distortion optimization, whoo! Now, if only libjxl had such power...
2024-12-27 02:30:54
One can dream...
RaveSteel
Meow Oh here are HDR samples of JXR provided by Microsoft as well https://aka.ms/hdr-backgrounds-wip
2024-12-29 07:33:57
hm, using ImageMagick to convert to JXL leads to a segfault every time
2024-12-29 07:34:08
Converting to PNG works fine
Demiurge
2024-12-29 07:50:36
Try using graphicsmagick then, or vips
RaveSteel
2024-12-29 09:11:36
vips cannot open the JXR file, vipsdisp cannot either. Same story for graphicsmagick. ImageMagick can convert to PNG first at least, only diectly converting JXR to JXL leads to a segfault
jonnyawsom3
2024-12-29 09:27:25
I tried to decode a Nvida JXR file, and even the official reference software failed to decode it
RaveSteel
2024-12-29 10:15:14
Had the same happening with some other JXR files, the reference libjxr tools don't seem to be able to handle edge(?) cases
spider-mario
2024-12-29 10:18:11
how ironic
RaveSteel
2024-12-29 10:18:56
Especially amusing in the context of how few JXR files are out in the wild
spider-mario
2024-12-29 10:23:23
ah, I was trying to joke about Edge
jonnyawsom3
2024-12-29 11:00:49
Yeah, I EDGE Educate Demographics in Graphics Expertise
Demiurge
2024-12-30 12:15:05
Sure, I'm a GOONER Graphics-Oriented Original Novice Engineer-in-Residence
Meow
2024-12-30 02:28:18
Another sample from Nvidia https://images.nvidia.com/aem-dam/Solutions/geforce/news/nvidia-app-beta-download/remnant-2-rtx-hdr-nvidia-app-ai-freestyle-filter-hdr-screenshot-download.jxr
2024-12-30 03:05:21
Photos of Windows says it's a "128-bit" image
Demiurge
2024-12-30 03:06:23
Honestly jxr seems cool in theory. It's a shame no one would ever touch it in a million years with a name like "Microsoft HD Photo"
2024-12-30 03:07:39
Its association with Windows and Microsoft and JPEG was just complete and utter cringe at the time and no one wanted anything to do with that
Meow
2024-12-30 03:07:55
It's getting its last light from Microsoft and Nvidia's HDR promotion
2024-12-30 03:09:21
Now it works like the *de facto* standard HDR screenshot format
Demiurge
2024-12-30 03:09:57
Even back then everyone knew JPEG looks terrible and blocky and so why anyone would want to have "JPEG" in the name seemed completely tonedeaf. Same with wanting to have "Microsoft" or "Windows" in the name of a photo standard
2024-12-30 03:10:42
That combination of keywords in the name of their new format just set it up to fail
2024-12-30 03:11:35
That's like trying to get the world to agree on a new standard and naming the standard "Web Pee"
Meow
Demiurge That's like trying to get the world to agree on a new standard and naming the standard "Web Pee"
2024-12-30 03:12:22
The top search term for WebP: how to convert WebP to xxx
2024-12-30 03:13:36
AVIF can reflect adult videos
Demiurge
2024-12-30 03:14:38
Or naming it, I dunno, "Windows HD MP3 Premium Sound Format, Millenium Edition"
Meow
2024-12-30 03:15:05
aka .wma
2024-12-30 03:23:53
I've cleaned up this a lot and wow so many supports https://en.wikipedia.org/wiki/JPEG_XR#Software_support
Demiurge
2024-12-30 05:08:29
wma sounded terrible, like all sound artifacts from all lossy formats combined, and it was an obscure and awful thing literally no one asked for when there were pre existing superior alternatives available
2024-12-30 05:09:24
Vorbis wasn't perfect and was maybe slightly more memory hungry than other formats at the time, but it sounded at least on par with its competitors at the time.
2024-12-30 05:10:00
But no corporation wanted to back it because they all had NIH syndrome
2024-12-30 05:10:18
Monty Montgomery was a really talented guy too
DZgas Ж
2024-12-30 05:10:30
fasted decode ever — use in all games — patent free — vorbis gigachad
Demiurge
2024-12-30 05:10:50
The guy who designed vorbis
DZgas Ж
2024-12-30 05:10:59
<:This:805404376658739230>
Demiurge
2024-12-30 05:11:23
Yeah, it was great. It was really silly that no one could agree on a standard back then
2024-12-30 05:12:40
MP3 was still patented, and no one could agree on a replacement. AAC-LC and Vorbis were the main contenders but I'm pretty sure AAC required licensing fees too
2024-12-30 05:13:20
And AAC sounded better to me but most comparisons show them neck and neck
DZgas Ж
Demiurge The guy who designed vorbis
2024-12-30 05:13:46
I watched the whole Chris Montgomery interview. It's so few views that it feels like you're watching a random video of someone noname know, there are literally a couple thousand views of his small lectures.
Demiurge
2024-12-30 05:15:30
AAC encoders had a lot of lowpass filtering at the time that was the main reason why they sounded bad, and Vorbis artifacts were more subtle and harder for most to notice but when you notice what they sound like it annoyed me
2024-12-30 05:15:41
It sounded less natural
2024-12-30 05:16:18
Opus sounds scratchy whenever there is high frequency harmonics
DZgas Ж
2024-12-30 05:16:28
opus win 🎀
Demiurge
2024-12-30 05:17:25
It's a limitation with the small dct frame size in opus, it's inherently bad for preserving high frequency details...
2024-12-30 05:17:47
Harpsichord music gets destroyed with opus
2024-12-30 05:17:58
Like a scratched record
DZgas Ж
Demiurge It's a limitation with the small dct frame size in opus, it's inherently bad for preserving high frequency details...
2024-12-30 05:17:58
maybe large
Demiurge
2024-12-30 05:18:23
Low latency = bad harpsichord
2024-12-30 05:18:51
It's designed for low latency first, music second
DZgas Ж
2024-12-30 05:19:56
I mean the blocks. opus also has a large bloks at very low frequencies, which is why the lows are worse at high bitrates than mp3
2024-12-30 05:21:47
is this distribution chosen according to the study of the psychoacoustic model, some more, some less, like xyb jpeg
Demiurge It's designed for low latency first, music second
2024-12-30 05:24:11
this may have been true initially, but as it was developed, it became the best of all and could replace absolutely all lossy compression codecs. in any case, and music too.
2024-12-30 05:26:05
the exception remains very large bitrates, like stereo 256+ kbps, in which vorbis/aac will be better. And mp3 320.
2024-12-30 05:27:09
but these are purely design features. at bitrates of 128-160 kbit, it makes no sense to use anything other than opus
2024-12-30 05:27:22
<:Opus:805856410235437068>
Demiurge
2024-12-30 05:31:59
I don't believe all the hype from people high off their own fumes. Harpsichord music still sounds obviously scratchy even after they tried to address it by increasing the bit rate when the encoder detects hf harmonics.
2024-12-30 05:32:31
Believe your ears, not the press release.
2024-12-30 05:34:17
Maybe I should do a head to head comparison between Opus and other lossy codecs... Listening tests are very fatiguing on the ears after a certain amount of time though
2024-12-30 05:35:52
There is some public published listening tests data available comparing lossy codecs, and if you look at only the harpsichord sample, opus does really bad at that one
2024-12-30 05:36:31
High frequency harmonics is not really common outside of harpsichord music
2024-12-30 05:36:48
But it gets noticeably scratchy sounding with opus
2024-12-30 05:37:11
You can hear it yourself on their release demo page
2024-12-30 05:37:58
They tried to slightly mitigate it but it's still there
2024-12-30 05:39:22
If it doesn't give consistent quality/fidelity at VBR for harpsichord music then it's not a good music codec
DZgas Ж
Demiurge I don't believe all the hype from people high off their own fumes. Harpsichord music still sounds obviously scratchy even after they tried to address it by increasing the bit rate when the encoder detects hf harmonics.
2024-12-30 05:46:20
I know and shouldn't have written so much text. mp3 is better in this one. yes. use vorbis. although in 2025 the cost of data storage is so minimal, and the sound itself as a physical phenomenon has not changed, that you can store absolutely everything in flac
Demiurge High frequency harmonics is not really common outside of harpsichord music
2024-12-30 05:49:34
the problem is setting a priority, you're comparing opus with the best version of other. although when comparing opus 128 and mp3 128 kbps, you won't say that mp3 is better because some "special" sounds sound better
2024-12-30 05:50:38
jpeg can yuv444, but that doesn't mean webp is worse
2024-12-30 05:51:36
just use the bitrates for which opus was created, 96-160 kbps for music, not hider
2024-12-30 05:53:50
if you want more, for any reason, use a different codec, which are designed with higher bitrates for anything but even comparing opus 320 and mp3 320 is not structurally objective
Demiurge
DZgas Ж jpeg can yuv444, but that doesn't mean webp is worse
2024-12-30 05:59:04
Yeah it does 😂
DZgas Ж
2024-12-30 06:00:03
<:NotLikeThis:805132742819053610>
Demiurge
2024-12-30 07:06:39
jxrlib is actually really tiny! It's way smaller than libjxl
Meow
2024-12-30 08:21:58
JXR is claimed to be close to JPEG's performance and J2P's functionality
2024-12-30 08:28:34
libjxl can't be small as it wants all
CrushedAsian255
Meow libjxl can't be small as it wants all
2024-12-30 08:41:23
You could probably make a limited version of JXL like a simple profile
2024-12-30 08:41:28
If code size is a problem
Meow
2024-12-30 11:52:20
So some people are developing jxl-rs
veluca
2024-12-30 12:17:08
... yes?
Quackdoc
Meow So some people are developing jxl-rs
2024-12-30 01:37:22
are they in the room with us now?
2024-12-30 01:38:42
also what function does jxl-rs use for srgb -> linear? I noticed the pr but didnt check the code, does it uses a pure 2.2 decoding or the inverse oetf?
Meow
2024-12-30 01:40:49
I didn't know the codes either
veluca
2024-12-30 01:40:57
it's a rational polynomial approximation of the "real" srgb transfer curve
Quackdoc
2024-12-30 01:43:25
icic ~~time to complain about reference displays and what not~~ I can't wait till srgb dies
Meow
2024-12-30 01:52:55
What's the best replacement of sRGB?
lonjil
2024-12-30 02:10:16
well we could just use pure gamma2.2 and pretend the other stuff doesn't exist
Quackdoc
Meow What's the best replacement of sRGB?
2024-12-30 02:18:13
PQ
2024-12-30 02:18:29
that or HLG
Meow
2024-12-30 02:20:38
Rec.2100 can use one of them
Quackdoc
2024-12-30 02:21:40
yes, it can use both
2024-12-30 02:23:19
bt.1886 is good enough, it uses a 2.4 power function, the issue is you will actually probably find more monitors that support PQ then you will bt.1886 now.
2024-12-30 02:23:30
bt.1886 is only reliable for TVs
2024-12-30 02:26:10
it's also fairly important to note that rec2100/rec2020 is just that, reccomendations, they aren't actual specs in and of themselves, hence I have taken to calling them "pseudo colorspaces" because while they do define white point, gamut, and transfer, they are only reccomendations, and since they define multiple transfers it muddies the water a bit
Demiurge
2024-12-30 02:53:10
But pq and hlg encoded images always look totally whacky with ludicrously bad tone mapping
2024-12-30 02:53:22
On most displays
damian101
2024-12-30 02:53:24
100 nits bt.1886 in a dimly lit room is the common mastering environment
2024-12-30 02:53:37
for SDR movies
2024-12-30 02:54:39
although I think there is a Dolby recommendation of 160 nits for that
Demiurge
Quackdoc are they in the room with us now?
2024-12-30 02:54:41
Yes lol...
Quackdoc
Demiurge But pq and hlg encoded images always look totally whacky with ludicrously bad tone mapping
2024-12-30 02:55:23
I mean, on SDR displays. but HDR displays will look good :D
Demiurge
2024-12-30 03:01:35
When jxl-rs is feature complete I am sure it will be a LOT smaller and simpler to read/understand than libjxl, since it's a clean room implementation, and libjxl is a merger of 2 old c++ projects that somehow ended up WAY more badly organized and chaotically jumbled up than either of them originally.
2024-12-30 03:04:19
https://github.com/Traneptora/jxlatte/tree/main/java/com/traneptora/jxlatte
2024-12-30 03:05:09
This is what a complete jxl decoder looks like when it's well organized and not a jumbled soaghetti mess
2024-12-30 03:05:47
It doesn't need so many randomly placed files in so many confusing subfolders
lonjil
Demiurge When jxl-rs is feature complete I am sure it will be a LOT smaller and simpler to read/understand than libjxl, since it's a clean room implementation, and libjxl is a merger of 2 old c++ projects that somehow ended up WAY more badly organized and chaotically jumbled up than either of them originally.
2024-12-30 03:06:42
nit: that's not what clean room means
Demiurge
2024-12-30 03:07:38
Yeah, I guess that's not the appropriate use of that term... but I'm glad you figured out what I was trying to say anyways
spider-mario
Quackdoc it's also fairly important to note that rec2100/rec2020 is just that, reccomendations, they aren't actual specs in and of themselves, hence I have taken to calling them "pseudo colorspaces" because while they do define white point, gamut, and transfer, they are only reccomendations, and since they define multiple transfers it muddies the water a bit
2024-12-30 05:05:02
on the other hand, if you refer to “Rec. 2020 primaries / white point”, at least that doesn’t leave much room for ambiguity – it’s these:
_wb_
Demiurge When jxl-rs is feature complete I am sure it will be a LOT smaller and simpler to read/understand than libjxl, since it's a clean room implementation, and libjxl is a merger of 2 old c++ projects that somehow ended up WAY more badly organized and chaotically jumbled up than either of them originally.
2024-12-30 06:32:31
It's mostly what you get when using the code as a tool to design a codec, where encode/decode speed also was a major consideration, so proposed changes in the coding tools / bitstream were judged not just on compression but also on speed impact. Which often means sacrificing clarity for speed. And then a library API was retrofitted over it. And then a render pipeline architecture was retrofitted. And then streaming/chunked decode/encode.
Demiurge
2024-12-30 07:19:02
Yeah, it's pretty difficult to keep the clutter and complexity under control throughout all that... and managing complexity probably wasn't a priority at the time either, while all that stuff was happening.
JKUser4592
2025-01-02 10:21:06
What tools can trim the length of an APNG or animated WEBP file?
spider-mario
2025-01-02 10:24:32
ffmpeg probably can
RaveSteel
2025-01-02 10:37:42
FFmpeg can trim APNG, but still has no support for animated WebP
TheBigBadBoy - 𝙸𝚛
2025-01-02 11:04:44
really odd that FFmpeg supports animated WebP encode but not decode <:kekw:808717074305122316>
RaveSteel
2025-01-02 11:13:14
And annoying, seeing as players with FFmpeg backend cannot play animated WebPs
Kaya
TheBigBadBoy - 𝙸𝚛 really odd that FFmpeg supports animated WebP encode but not decode <:kekw:808717074305122316>
2025-01-02 11:51:32
But dwebp can't decode animated WebPs either 😅
RaveSteel
2025-01-03 12:03:51
Yep
0xC0000054
JKUser4592 What tools can trim the length of an APNG or animated WEBP file?
2025-01-03 02:52:06
For WEBP, try <https://developers.google.com/speed/webp/docs/webpmux>
JKUser4592
RaveSteel FFmpeg can trim APNG, but still has no support for animated WebP
2025-01-03 04:14:13
How?
Demiurge
2025-01-05 10:55:23
A homosapien
2025-01-05 11:00:29
https://tenor.com/view/webp-webp-moment-png-webp-file-download-gif-27014724
Meow
Demiurge
2025-01-06 01:30:57
Now it's the society with low- to medium-quality AVIF
DZgas Ж
Demiurge
2025-01-06 01:49:18
still use jpeg
Demiurge
2025-01-06 01:51:16
Honestly I really don't like the macroblocking and chroma subsampling artifacts of jpeg, but a good encoder like jpegli doesn't need to have terrible artifacts
2025-01-06 01:51:42
jpegli is gorgeous
2025-01-06 01:54:28
It's like comparing xvid with x264
AccessViolation_
2025-01-06 03:33:28
where are digital cameras on the jpeg encoder quality spectrum
2025-01-06 03:34:33
Like, DIGIC 8 or something
2025-01-06 03:36:06
I suppose those chips are responsible for much more than just jpeg encoding actually
2025-01-06 03:36:42
But I do wonder how much better the images from my camera would look if it used jpegli
Meow
2025-01-06 03:44:12
It should depend on what quality the system sets
2025-01-06 03:45:21
HEIC from iPhone shouldn't be higher than quality 90
RaveSteel
2025-01-06 04:19:32
Most phones produce 4:2:0 images, including the iPhone. IIRC the 4:2:0 subsampling should only come into effect under 90? Regarding real cameras (just a few cameras of which I have pictures at hand): - Fujifilm GFX 50S - 4:2:2, quality 97 - Sony Alpha RMIV - 4:2:2, quality 95 - Sony Alpha RMIII - 4:2:2, quality 100 - Nikon D750 - 4:2:2, quality 99 - Nokon Z6 II - 4:2:2, quality 99 - ancient Canon Powershot - 4:2:2, quality 68 - three more modern Canon cameras are around - 4:2:2, quality 95 - Nintendo 3DS lol - 4:2:2, quality 80 lol
AccessViolation_
2025-01-06 04:24:40
Lol, appreciate the inclusion of the Nintendo 3DS
lonjil
2025-01-06 04:27:00
I sometimes stream my 3ds over wifi at jpeg quality 96. Choppy but good enough for screenshots.
RaveSteel
lonjil I sometimes stream my 3ds over wifi at jpeg quality 96. Choppy but good enough for screenshots.
2025-01-06 05:00:05
What software are you using?
lonjil
RaveSteel What software are you using?
2025-01-06 05:06:13
ntr-hr
2025-01-06 05:06:20
Like twice as fast as the old ntr
RaveSteel
2025-01-06 05:08:01
Funny what the homebrew community comes up with
AccessViolation_
2025-01-06 05:08:45
damn no av1 hardware encode on the 3ds
RaveSteel
2025-01-06 05:08:53
DOA
AccessViolation_
2025-01-06 05:09:26
I haven't used mine in probably about 8 years
RaveSteel
2025-01-06 05:09:52
I turned my DS on again after 8 years and it still had full battery
lonjil
2025-01-06 05:34:45
I recently decided to get into Zelda so I'm playing the early games on emulators on my 3ds
AccessViolation_
2025-01-06 06:38:54
Oh cool!
2025-01-06 06:39:09
I'm really into Zelda myself as well
jonnyawsom3
AccessViolation_ But I do wonder how much better the images from my camera would look if it used jpegli
2025-01-06 11:08:44
I mean if they did it properly, you'd have the full dynamic range ;P
AccessViolation_
2025-01-06 11:09:42
Yeah good point
2025-01-06 11:10:18
Canon hasn't invented anything other than 8-bit jpeg on this 2023 camera model yet, though some of their older models have it
jonnyawsom3
2025-01-06 11:11:00
I'm struggling to understand that message
RaveSteel I turned my DS on again after 8 years and it still had full battery
2025-01-06 11:11:44
I turned my original DS on the other week too, booted fine and then said the battry was low. No kidding when I last used it 2014
2025-01-06 11:12:22
Also, fuck the 2DS... Made it a complete nightmare to find any second hand games for the original 2D-not-3D DS
juliobbv
2025-01-06 11:48:32
I'm holding onto my red 3DS for dear life
2025-01-06 11:48:39
it's such a precious console for me
RaveSteel
2025-01-06 11:49:21
It's a shame that Nintendo hates their customers. Granted, that's most companies in the video games industry nowadays, but still
juliobbv
2025-01-06 11:49:21
I wonder how well dav1d runs on that console -- can it at least decode low fps 64p AV1 video?
2025-01-06 11:50:12
yeah, at least they didn't actively pursue the 3DS modding scene like they did with the Switch, so that's something
RaveSteel
2025-01-06 11:51:22
It is totally fair that the dev of Ryujinx took the money offered by Nintendo, but it's still sad
Demiurge
RaveSteel Most phones produce 4:2:0 images, including the iPhone. IIRC the 4:2:0 subsampling should only come into effect under 90? Regarding real cameras (just a few cameras of which I have pictures at hand): - Fujifilm GFX 50S - 4:2:2, quality 97 - Sony Alpha RMIV - 4:2:2, quality 95 - Sony Alpha RMIII - 4:2:2, quality 100 - Nikon D750 - 4:2:2, quality 99 - Nokon Z6 II - 4:2:2, quality 99 - ancient Canon Powershot - 4:2:2, quality 68 - three more modern Canon cameras are around - 4:2:2, quality 95 - Nintendo 3DS lol - 4:2:2, quality 80 lol
2025-01-08 07:24:56
I don't think you can really compare the quality of cameras in terms of baseline libjpeg quality levels... A lot of different things determine the quality. Like what filters are used to convert the sensor data to an RGB bitmap, and then each camera usually uses its own custom quantization matrix. You can even ID the camera by looking at the quantization matrix.
2025-01-08 07:25:29
The libjpeg quality level is just an estimate if anything
RaveSteel
Demiurge I don't think you can really compare the quality of cameras in terms of baseline libjpeg quality levels... A lot of different things determine the quality. Like what filters are used to convert the sensor data to an RGB bitmap, and then each camera usually uses its own custom quantization matrix. You can even ID the camera by looking at the quantization matrix.
2025-01-08 12:17:34
While true, I personally do not care for OOC JPEGs, because I don't save JPEGs lol
Meow
2025-01-09 01:42:51
I can't find any review about -near_lossless of cwebp so I tested. I found some results are underwhelming when comparing with tools like dssim and ssimulacra2
2025-01-09 01:46:07
Although <@532010383041363969> recommended using it over real lossless for most use cases, I found that -near_lossless 40 is very close to d0.5 of JXL while -near_lossless 60 is slightly higher on ssimulacra2 (lower on dssim)
2025-01-09 01:46:35
But the WebP files would be much larger than counterpart JXL files
jonnyawsom3
2025-01-09 02:19:25
I'd suggest comparing it to `--modular_lossy_palette` with JXL
Meow
I'd suggest comparing it to `--modular_lossy_palette` with JXL
2025-01-09 02:29:13
What would this do?
2025-01-09 02:39:37
Also JXL is just the metric in this test
jonnyawsom3
2025-01-09 02:43:31
WebP near_lossless works by reducing colors and removing entropy by using predicted values more. modular_lossy_palette does similar but can mix colors too
2025-01-09 02:43:33
https://fixupx.com/jyzg/status/1329067794995011585?s=20
2025-01-09 02:44:01
https://x.com/jyzg/status/1329078139700428813
2025-01-09 02:44:28
https://x.com/jyzg/status/1329079576274763781
Meow
2025-01-09 02:53:32
JXL d0.5 without `--modular_lossy_palette` is already much smaller than WebP with `-near_lossless 60 -m 6 -q 100`.
2025-01-09 02:54:17
Could JXL be even smaller with it?
2025-01-09 05:48:09
I'm also not sure about if near-lossless WebP is a good idea
2025-01-09 07:02:59
A real review about near lossless but in Japanese https://qiita.com/yoya/items/a000c2e123d448a37f47
veluca
Meow Could JXL be even smaller with it?
2025-01-09 07:16:58
personally doubt it 😛
Meow
2025-01-09 09:19:41
The Japanese review also clarified about lossless is not lossy unless the source file is over 8-bit
veluca personally doubt it 😛
2025-01-09 12:09:31
Went back home and tested. No difference with `--modular_lossy_palette`
A homosapien
2025-01-09 12:13:13
wasn't lossy palette non functional?
Meow
2025-01-09 12:26:04
So that's why no difference
2025-01-09 12:27:07
Also found that WebP near lossless 60 is around at the level of JXL d0.3, not d0.5
jonnyawsom3
A homosapien wasn't lossy palette non functional?
2025-01-09 02:22:09
Ah, right. I wanted to test Krita's export and check that libjxl is working and it's just cjxl that's broken
Meow
2025-01-09 03:29:11
ssimulacra2 shows scores of WebP `-near_lossless 60` between Jpegli q 99 and 100, or even higher
2025-01-09 03:31:31
All converted to PNG when using ssimulacra2 and dssim
jonnyawsom3
2025-01-09 04:09:31
The jpegli files decoded with it too?
Meow
The jpegli files decoded with it too?
2025-01-09 05:05:23
No just simply with -q
jonnyawsom3
2025-01-09 05:54:14
I mean did you use `djpegli Test.jpg Test.png`
Meow
2025-01-10 01:34:15
Uh I just used the same software that produced the original PNG files, to export again
2025-01-10 01:34:30
Maybe I should try djpegli later
jonnyawsom3
2025-01-10 02:11:51
It usually scores a bit higher, sometimes up to 1 higher or more in ssimulacra2 ```jpegli q99 JPG 92.91381675 FFMPEG PNG 93.00604649 jpegli PNG 94.04023829 jpegli 16bit PNG 94.19572467```
Meow
2025-01-10 02:13:14
For fairness I didn't test photographs
2025-01-10 02:16:39
No matter JXL d0.3, WebP near-lossless 60, or Jpegli 100, they didn't reach 93
jonnyawsom3
2025-01-10 02:25:05
That was a game screenshot
diskorduser
That was a game screenshot
2025-01-10 02:46:27
game name?
A homosapien
diskorduser game name?
2025-01-10 02:54:44
Deep Rock Galactic