|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|