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

yurume
2023-02-02 04:36:08
I have played lots of music video games and keysounds are really important for them (though they are hard to produce), playing 100s of them is not that uncommon...
zamfofex
2023-02-02 05:47:09
Not sure if this is the right channel, but for a project of mine (a simple game), I’m looking for a simple image format that I can use to compress images. The format should be relatively simple, but still be able to decompress images easily and efficiently (compression complexity doesn’t matter). I’m looking to implement the decompression myself. I don’t mind coming up with a format myself, but I don’t want to invest a long time writing an implementation. The images aren’t very big, and they use a predetermined 256‐color palette. Yet, as I (by preference) have them in the project in C source form, they end up taking more than I hope they would, besides being uncompressed in the binaries themselves, which, albeit currently not so, seems to be increasingly growing more significant, specially because I serve the files to be playable in a browser.
_wb_
2023-02-02 06:03:01
Why not just use any format a browser supports and let the browser do the decoding? You want the game to be portable and compilable to native code too?
zamfofex
2023-02-02 06:08:00
Yes.
improver
2023-02-02 06:08:38
browsers are not particularly good for game engines
zamfofex
2023-02-02 06:08:59
Also, I have the rendering set up in a specific way that (by design) doesn’t allow colors ourside of my palette to be represented without modifications.
improver
2023-02-02 06:09:04
depending on kind of game ofc
2023-02-02 06:09:57
if you need browser support then something like lossless webp or png sounds kinda okay
2023-02-02 06:10:30
but if you wanna offline game to be packaged w your own format then it's a bit different...
zamfofex
2023-02-02 06:11:08
It is a pixel‐art game, so rendering is done on the CPU, and that works sufficiently well. It renders to a 512×256 bytes buffer (one byte per color), then JavaScript code takes that buffer and converts it to an `ImageData` and puts into into the canvas.
2023-02-02 06:16:57
Ah, sorry, I changed it in the last version and forgot (like an idiot). It actually converts it to a 4‐byte per color RGB buffer in C code, (which is then set to an `ImageData` and to a canvas from JavaScript like before). (Though it’s not like this matters for my purposes.) At any rate, I don’t want to have the images be separate from the binary file, because I want for the binary file to be enough to run the game (or at most have a small driving code).
_wb_
2023-02-02 06:23:10
Maybe just some simple RLE like PackBits could work for you? That's quite easy to implement, compression is of course not great but it's not horrible either for pixel art...
Nova Aurora
2023-02-02 08:48:27
Does QOI use RLE? it's conceptually very simple
JendaLinda
2023-02-02 09:04:12
Back in the day, PCX format was pretty popular. Decoder could be easily written in assembly as well.
Reddit • YAGPDB
2023-02-02 10:26:36
2023-02-03 12:27:51
Fraetor
2023-02-03 01:11:47
Audio is sort of a done thing compression wise. You use opus for lossy and FLAC for lossless.
Nova Aurora
2023-02-03 02:28:28
Can someone translate this? What part of AV1 is he asking about?
afed
2023-02-03 02:37:06
aom fork and like how much better the extra parameters can be https://github.com/Clybius/aom-av1-lavish
Reddit • YAGPDB
2023-02-03 03:44:36
BlueSwordM
yurume https://phoboslab.org/log/2023/02/qoa-time-domain-audio-compression oh well
2023-02-03 05:01:32
Oh god.
Nova Aurora Can someone translate this? What part of AV1 is he asking about?
2023-02-03 05:01:45
aom-av1-lavish = aom-av1-psy continued 🙂
Reddit • YAGPDB
2023-02-03 09:59:44
zamfofex
_wb_ Maybe just some simple RLE like PackBits could work for you? That's quite easy to implement, compression is of course not great but it's not horrible either for pixel art...
2023-02-03 10:12:23
Thank you three for your suggestions, I will take a look into those options! I feel like QOI isn’t the most suitable for what I want because my images are not arbitrary “truecolor” RGB, but rather one‐byte indexed into a color palette. I don’t know if PCX would be similar in this regard.
_wb_
2023-02-03 10:37:00
PackBits is very simple and works ok for planar byte-based data. It's just one byte to say either "run of 2..128 same values" followed by one byte (which is repeated that many times when decoding) or "now come 1..127 literals" followed by that many raw bytes.
2023-02-03 10:37:47
This is what TIFF and PSD often use
2023-02-03 10:39:05
(they can also do just uncompressed, or deflate with optional Left filtering, but PackBits is what I see a lot, for 8-bit images at least)
Reddit • YAGPDB
2023-02-04 10:45:44
2023-02-04 10:49:15
2023-02-04 08:14:34
2023-02-05 08:46:59
DZgas Ж
2023-02-05 11:29:38
lossless is bigger than lossy 😳 😳 😳 😳 😳
2023-02-05 08:01:22
ZPEG ?
Reddit • YAGPDB
2023-02-06 10:18:24
2023-02-07 10:52:40
VEG
2023-02-08 09:29:33
https://gdcc.tech/results2020/
2023-02-08 09:29:37
2023-02-08 09:30:23
pglz looks very interesting: much faster than Brotli and Zstd, and compression is better 🤔
Reddit • YAGPDB
2023-02-08 10:57:15
2023-02-09 08:34:05
2023-02-09 08:47:10
afed
2023-02-09 12:19:18
some old talk, but on the topic arguing formats complexity and about av1/av2 https://youtu.be/3qL5FdEBiGA
2023-02-09 12:19:32
2023-02-09 12:20:06
DZgas Ж
2023-02-09 04:25:42
🤔 https://svgwg.org/svg2-draft/
afed
2023-02-09 04:29:50
🥱 It's all the lie
2023-02-09 04:32:16
svt-av1 -preset 10 enable-cdef=0 SPEED be like x264 veryslow on 960x540
afed
2023-02-09 04:33:53
there is no indication what exactly the parameters are used. as well as the complete absence of the designation of the properties of the video, what is the frame size, what kind of content. what functions were used for parallelization. these are not tests, this is bullshit
2023-02-09 04:37:17
so I did tests with the owner of AVX, and it turned out that my SSE AV1 encodes 20% slower than AVC, but AVX AV1 has the same parameters 30% faster than AVX AVC - and how to create presets with "the same speed" in such a situation No how, welcome
afed
2023-02-09 04:44:50
this is old video, so the graphs are not very relevant anyway, also it's a 48-core cpu, but the main point is that the new gen formats should be better even with the same complexity as the old ones, not just increasing efficiency at the expense of complexity
DZgas Ж
afed this is old video, so the graphs are not very relevant anyway, also it's a 48-core cpu, but the main point is that the new gen formats should be better even with the same complexity as the old ones, not just increasing efficiency at the expense of complexity
2023-02-09 04:45:31
that doesn't mean anything to me
2023-02-09 04:48:01
AV1 be like if you have the strength to lift 100 kg at a time, I congratulate you, but real people prefer to take 2x6 liters in bottles maximum
afed
2023-02-09 04:57:00
for me svt-av1 is pretty fast, faster and better for low bitrates than x264 and x265, but, for high fidelity I still prefer x265/x264, but only because the encoders have more options for tweaking and better psy-rd modes current av1 encoders are faster for any relatively modern systems, if taking a 30-year old cpu, then like anything more complex than mpeg1 will be bad and slow, it doesn't work that way
DZgas Ж
2023-02-09 04:59:34
according to my small test for ~100 people, people do not see the ass at all, between AVC and AV1 At the same encoding speed and identical file size
2023-02-09 04:59:40
ofc av1 is better
2023-02-09 05:02:18
<@794205442175402004> <@1034873369314730065> the problem will be much more obvious there is just asking where is AVC and where is AV1. Without asking which picture is better
2023-02-09 05:03:13
👉 👀
2023-02-09 05:05:43
of course, about 90% of people say simply - yes, there is no difference here
afed
2023-02-09 05:09:24
if someone knows what artifacts are typical for a specific encoder, it is not too difficult, if it is not very high bitrates and not transparent quality (when any encoding is difficult to differ from the source)
DZgas Ж
2023-02-09 05:10:28
yehh.... I can distinguish about ~6 video codecs only by artifacts
fab
2023-02-09 05:33:31
The First is SVT
2023-02-09 05:33:43
I'm fully decided
2023-02-09 05:35:07
I looked at hair
2023-02-09 05:35:22
And it has heavy svt artifacts
2023-02-09 05:35:39
Looks like an old version
2023-02-09 05:35:48
1.4.0?
DZgas Ж
2023-02-09 05:49:00
lasted
fab
2023-02-09 06:37:15
Last you mean the second image or latest svt
gb82
2023-02-10 09:28:34
Second is avc?
Reddit • YAGPDB
2023-02-10 10:17:04
2023-02-10 08:49:45
Demiurge
afed this is old video, so the graphs are not very relevant anyway, also it's a 48-core cpu, but the main point is that the new gen formats should be better even with the same complexity as the old ones, not just increasing efficiency at the expense of complexity
2023-02-11 07:45:15
I agree. If new codecs can't do more than old codecs can when given the same amount of wall time to work with, then it's not a very impressive algorithm.
2023-02-11 07:46:33
If they require 10x the amount of time but only barely at best get 2x better compression, then "maybe one day it will be useful"
w
2023-02-11 07:56:23
the "maybe one day it will be useful" is definitely worth it. see machine learning
afed
2023-02-11 07:56:44
50% better efficiency in reality is also mostly only for very high resolutions and lower bitrates, for higher fidelity the current encoders may be even worse than the old ones (but I think if comparing theoretically perfect encoders, they will be better, but still marginally)
_wb_
2023-02-11 08:15:25
What is useful or not depends a lot on the use case. Storage has a cost that is proportional to how long you want to store it, while encode is a one-time cost. For long-time storage, spending a lot of compute to save a few percent of space can be worth it, and latency is not very important. For realtime one-to-one communication, the trade-offs are very different.
nec
2023-02-11 10:31:01
Grain synthesis is a good example of making smaller, having decent fidelity and not increasing complexity very much. I've tried different settings, but seems like x264-265 simply can't beat av1 in grain settings. Quite often it's double size difference at the same speed and quality.
afed
2023-02-11 10:43:44
yeah, but it's still not high fidelity and there is a lot of content where the grain is noticeably different from synthesized, at higher bitrates x264/x265 preserves the original grain and details much better, which any of the av1 encoders without grain synthesis can't and especially on very heavy grain the synthesized patterns become very noticeable also svt-av1 has better grain synthesis than other av1 encoders
joppuyo
2023-02-11 12:47:59
How’s the workflow when using grain synthesis? Is there an automated process or do you have to manually denoise the video and configure the correct amount of noise?
afed
2023-02-11 12:51:58
automated or by manually specifying photon-noise or with some tools, but this is a very approximate synthesis
diskorduser
2023-02-11 05:09:31
https://www.phoronix.net/image.php?id=2023&image=fosdem_vvenc_1
2023-02-11 05:09:43
xpsnr?
afed
2023-02-11 05:41:14
_wb_
2023-02-11 05:57:46
XPSNR? What is that?
afed
2023-02-11 06:00:09
`The logarithmic XPSNR output values are in a similar range as those of traditional PSNR assessments but better reflect human impressions of visual coding quality` https://github.com/fraunhoferhhi/xpsnr
_wb_
2023-02-11 06:00:12
Also: why another patent encumbered codec?
2023-02-11 06:02:45
Interesting. I will have to check if XPSNR is any good for still images.
2023-02-11 06:06:56
I doubt it though, looks like it is very much aimed at video
afed
2023-02-11 06:07:48
~14:00 about XPSNR https://mirrors.dotsrc.org/fosdem/2023/K.3.401/om_vvc.webm
2023-02-11 06:13:43
and why make a codec for VVC/H.266? i think because it's Fraunhofer HHI
_wb_
2023-02-11 06:25:02
Open source software for patent-encumbered codecs feels a bit silly imo. You can see the code, but if you want to use it, you possibly have to pay royalties, or at least get a lawyer involved to check...
afed
2023-02-11 06:36:04
yeah, but it's nothing new though, the same as for mp3, aac, avc, hevc, ... there is a lot of open source software and I don't think anything will change for patent-encumbered formats
2023-02-11 06:44:15
vvc probably won't be widely used for streaming (although afaIk it's already used in china and india by some big streaming services) but for other professional uses I don't think everyone will refuse mpeg and other proprietary formats in the near future
Reddit • YAGPDB
2023-02-11 08:42:45
DZgas Ж
2023-02-11 09:12:58
do you have the power to encode aomenc speed 8 (maximum fast) - use it. don't use svt-av1 <:AV1:805851461774475316>
fab
2023-02-11 09:25:29
Aomenc cpu 8 is much better for colours
2023-02-11 09:25:35
Better White
2023-02-11 09:25:50
Compared to svt preset 12
2023-02-11 09:26:29
Svt hasn't surprised me
2023-02-11 09:26:36
But now weight half
DZgas Ж
fab Compared to svt preset 12
2023-02-12 07:10:48
Off cdef, use hierarchical-levels=2. For use preset 9 or minimum 10
2023-02-12 07:11:11
preset 12 is just bullshit
afed
2023-02-12 07:40:05
aomenc also has faster modes with `--rt` and at comparable speeds svt-av1 is usually better at fast and medium encoding speeds and has better multithreading, also depending on content at higher bitrates svt-av1 might be better at the slowest modes, have less smoothing, better details also svt-av1 has better grain synthesis but, aomenc has better tuning potential, has some forks with additional options and better on average at slower speeds (like 1-4), though for some videos I got better results with svt-av1 (preset 1-2)
DZgas Ж
afed aomenc also has faster modes with `--rt` and at comparable speeds svt-av1 is usually better at fast and medium encoding speeds and has better multithreading, also depending on content at higher bitrates svt-av1 might be better at the slowest modes, have less smoothing, better details also svt-av1 has better grain synthesis but, aomenc has better tuning potential, has some forks with additional options and better on average at slower speeds (like 1-4), though for some videos I got better results with svt-av1 (preset 1-2)
2023-02-12 08:20:46
But I'll just say ATOM -cpu-used 8 destroys any SVT-AV1 mode from 5 to 12
afed aomenc also has faster modes with `--rt` and at comparable speeds svt-av1 is usually better at fast and medium encoding speeds and has better multithreading, also depending on content at higher bitrates svt-av1 might be better at the slowest modes, have less smoothing, better details also svt-av1 has better grain synthesis but, aomenc has better tuning potential, has some forks with additional options and better on average at slower speeds (like 1-4), though for some videos I got better results with svt-av1 (preset 1-2)
2023-02-12 08:22:38
But I'll be honest, in the 5 years I've been working with AV1, this is the first time I've heard that AOM has a Real Time mode
DZgas Ж But I'll just say ATOM -cpu-used 8 destroys any SVT-AV1 mode from 5 to 12
2023-02-12 08:26:37
I want to say that even in conditions when SVT-AV1 is encoded slower than AOM, for some reason it has such a large number of stupid artifacts, problems with color gradient, problems with the rendering of the cell/grid, problems with block Jitter, it's all very noticeable....
DZgas Ж But I'll be honest, in the 5 years I've been working with AV1, this is the first time I've heard that AOM has a Real Time mode
2023-02-12 08:38:34
I checked this mode, and yes, as I thought, it just like bullshit
2023-02-12 08:45:43
And AOM encodes 2-4 times faster flat 2d frames
afed
2023-02-12 09:00:27
yeah, and mostly such problems on live streaming speeds 8-10 and `tune=0` (modes -2-0, 11-13 shouldn't be used in general, it's like debug dev modes), though some are fixed in new versions I still notice some random blocking or even corrupted blocks on some frames, but it's almost unnoticeable during normal viewing, only when comparing static frames also only svt-av1 is capable for real time encoding with good quality, aom is much worse and slower on --rt modes on slow svt-av1 modes and higher bitrates I haven't noticed any problems yet, also I usually disable some of this filtering: `--film-grain-denoise 0 --film-grain 0 --enable-cdef 0 --enable-restoration 0`, but at low bitrates quality might get worse
DZgas Ж
2023-02-12 09:05:48
--film-grain-denoise 0 --film-grain 0 Deflaut Off
afed
2023-02-12 09:07:12
`--film-grain` is needed for grain synthesis (with non-zero values), but it noticeably slows down encoding and also decoding `--enable-restoration` does not affect visually as much, but sometimes, also disabling it usually lowers the most metrics scores
DZgas Ж
2023-02-12 09:08:00
I know all this
2023-02-12 09:08:53
cdef really strained me when AV1 just came out, both then and now it Use too much when decoding, an inconceivably much, about half of the entire decoding time is a CDEF filter
afed
DZgas Ж --film-grain-denoise 0 --film-grain 0 Deflaut Off
2023-02-12 09:09:34
no, denoise is on by default, but synthesis is off `--film-grain-denoise Apply denoising when film grain is ON, default is 1 [0: no denoising, film grain data is still in frame header, 1: level of denoising is set by the film-grain parameter]`
DZgas Ж
afed no, denoise is on by default, but synthesis is off `--film-grain-denoise Apply denoising when film grain is ON, default is 1 [0: no denoising, film grain data is still in frame header, 1: level of denoising is set by the film-grain parameter]`
2023-02-12 09:11:11
it's on, but it doesn't work
2023-02-12 09:11:41
same like enable-restoration
afed
2023-02-12 09:16:55
they are working, but in auto mode, maybe they are turned off when not needed or at very high speeds enable-restoration also works, disabling/enabling it slightly changes the metrics scores
DZgas Ж
afed they are working, but in auto mode, maybe they are turned off when not needed or at very high speeds enable-restoration also works, disabling/enabling it slightly changes the metrics scores
2023-02-12 09:25:01
no, they don't work. they just don't work.
2023-02-12 09:25:43
while the other modes are off, these modes simply don't work. they can't work on their own
2023-02-12 09:27:18
AOM sharpness=0 is good function
afed
2023-02-12 09:44:23
same bitrate, same settings (except film-grain-denoise and film-grain not specified) preset 6 film-grain-denoise 0
2023-02-12 09:44:36
film-grain-denoise 1
DZgas Ж
afed same bitrate, same settings (except film-grain-denoise and film-grain not specified) preset 6 film-grain-denoise 0
2023-02-12 09:52:27
Are you sure it's called working?
afed
2023-02-12 09:56:31
works, but it doesn't mean it always does something good, also it's a limited bitrate just for testing
DZgas Ж
2023-02-12 09:56:47
meh
afed
2023-02-12 09:59:02
and also `enable-restoration` on and off graphs so something is changing
DZgas Ж
2023-02-12 09:59:15
film-grain: Invalid parameter hm for aom another name?
afed
2023-02-12 10:00:50
yeah, aom has different options ```--denoise-noise-level=<arg> Amount of noise (from 0 = don't denoise, to 50) --enable-dnl-denoising=<arg>```
DZgas Ж
afed yeah, aom has different options ```--denoise-noise-level=<arg> Amount of noise (from 0 = don't denoise, to 50) --enable-dnl-denoising=<arg>```
2023-02-12 10:01:45
what
2023-02-12 10:02:36
which of these functions is responsible for disabling the generation of noise?
afed
2023-02-12 10:07:02
something like that `--film-grain-denoise` = `--enable-dnl-denoising` `--film-grain` = `--denoise-noise-level`
2023-02-12 10:09:36
so for aomenc `--enable-dnl-denoising=0 --denoise-noise-level=0`
DZgas Ж
2023-02-12 10:10:38
denoise-noise-level=0:enable-dnl-denoising=0 denoise-noise-level=0:enable-dnl-denoising=100
afed
2023-02-12 10:12:28
aomenc does not make grain synthesis by default, afaIk
DZgas Ж
2023-02-12 10:12:53
I think it's not necessary to say that the frames are completely identical
afed aomenc does not make grain synthesis by default, afaIk
2023-02-12 10:13:07
and what?
2023-02-12 10:13:29
the noise reduction function does not work without generating noise
2023-02-12 10:13:43
2023-02-12 10:14:38
It does nothing
2023-02-12 10:17:01
exactly the same result with enable-cdef=0:enable-restoration=1 enable-cdef=0:enable-restoration=0
2023-02-12 10:18:22
In general, I have never checked it, only spent time on it. It's already written in the documentation why check it?
afed
2023-02-12 10:18:54
I haven't compared these settings for aomenc, but `enable-dnl-denoising` can still do denoising for slower modes, even without synthesis, as far as I've seen other comparisons (but this needs to be tested for the current version)
DZgas Ж
afed I haven't compared these settings for aomenc, but `enable-dnl-denoising` can still do denoising for slower modes, even without synthesis, as far as I've seen other comparisons (but this needs to be tested for the current version)
2023-02-12 10:20:14
well I just did it on the newest version. it doesn't work the way you think it does.
2023-02-12 10:20:58
maybe it works only on SVT-AV1, because they have poor noise reduction algorithms.
afed
2023-02-12 10:21:49
well, maybe need a noisy or grainy source or a slower mode (but maybe that doesn't work by default for aom)
DZgas Ж
2023-02-12 10:22:09
I don't want to check SVT-AV1 because in the last month of tests I realized only that it is shit, suitable exclusively for streaming on 6+ core processors
2023-02-12 10:23:19
I would say that SVT-AV1 is a replacement for Real Time AOM
afed well, maybe need a noisy or grainy source or a slower mode (but maybe that doesn't work by default for aom)
2023-02-12 10:25:08
libaom v3.0.0 2021 Added option --enable-dnl-denoising to skip applying denoising with denoise-noise-level. **This option only takes effect when --denoise-noise-level > 0.** When --enable-dnl-denoising is 1 (default), the encoder denoises the frame for noise modeling and encodes the denoise frame with film grain synthesis. When 0, the encoder denoises the frame for noise modeling, but encodes the original (noisy) frame with film grain synthesis.
2023-02-12 10:27:08
fun stat
2023-02-12 10:28:08
that's why I'm using the latest ffmpeg build
DZgas Ж I want to say that even in conditions when SVT-AV1 is encoded slower than AOM, for some reason it has such a large number of stupid artifacts, problems with color gradient, problems with the rendering of the cell/grid, problems with block Jitter, it's all very noticeable....
2023-02-12 10:33:55
and I want to remind you how many things AOM has that SVT-AV1 doesn't have https://api.encoding.com/reference/adv-av1-libaom
2023-02-12 10:53:26
of course, I have check almost all these parameters, and I think that the AOM Engineers have set everything perfectly by default
w
2023-02-12 12:38:20
what is this chat... the denoise options are *for* film grain. SVT: apply denoise *when* film grain. aom: it's in the name, dnl= denoise noise level
2023-02-12 12:38:45
also I'm pretty sure they're in the visual diagrams for their pipelines
afed
2023-02-12 12:52:12
the thing is that denoise in some encoders works without using grain synthesis, for better compression, but this is not always needed and good, it makes everything too smoothed and also grain synthesis works without denoise, I sometimes use something like `enable-dnl-denoising=0 denoise-noise-level=15` or `film-grain-denoise=0 film-grain=20`, so the artificial grain is applied without trying to remove the original grain
w
2023-02-12 12:54:45
yeah but the options enable-dnl-denoising=0 and film-grain-denoise=0 dont do anything unless you have denoise-noise-level=>0/film-grain=>0
2023-02-12 12:55:52
those options are for using the denoised clip (acquired when calculating the noise for noise synth) to encode
2023-02-12 12:56:22
you wouldnt have a denoised clip if you dont have noise synth on
afed
2023-02-12 12:58:37
maybe it should work that way, but for svt-av1 above I showed that it doesn't and `film-grain-denoise 1` works even without film-grain https://canary.discord.com/channels/794206087879852103/805176455658733570/1074264702672195675
w
2023-02-12 01:01:20
you sure it's not just quantization noise
2023-02-12 01:01:35
great another reason to not use svt-av1
afed
2023-02-12 01:07:33
maybe the encoder does something else, but the results are different, and just in case I always add `film-grain-denoise=0 film-grain=0` when I don't need denoise or grain synthesis, or if the default settings will change in some version and actually denoise is very rarely needed, only for very low bitrates or mini-encodings, even if grain synthesis is used, almost all av1 encoders are very bad at retaining small details even without denoising, unless it is very heavy and big grain
_wb_
2023-02-12 01:09:14
Av1 automatically denoises whether you want that or not
afed
2023-02-12 01:18:29
and svt-av1 has its best sides, basically there is no single av1 encoder that is best for everything, so I use several svt-av1 is the fastest and best in quality/speed balance, also it can smooth less when bitrate is enough when aom keeps smoothing, rav1e is only good at slowest speeds and for higher fidelity, but it's very slow svt-av1 is also only for yuv420, it cannot encode yuv422/444/...
_wb_
2023-02-12 01:34:30
It's a messy situation from an end-user perspective. There's also the proprietary av1 encoder by visionular (aurora). One of the things I am currently investigating at Cloudinary is leveraging AI to choose which avif encoder and what settings to use for a given image and fidelity target...
Reddit • YAGPDB
2023-02-12 05:30:05
2023-02-12 08:39:09
2023-02-13 02:07:54
2023-02-13 04:21:20
2023-02-13 11:12:45
2023-02-13 03:56:00
fab
2023-02-13 07:01:49
https://www.adorama.com/alc/what-is-codec/
DZgas Ж
w great another reason to not use svt-av1
2023-02-13 10:13:11
🥹
gb82
2023-02-14 01:22:16
<:BlobYay:806132268186861619>
DZgas Ж
2023-02-14 01:04:12
AVIF XYB? <:ReeCat:806087208678588437>
2023-02-14 01:26:11
yes XYB AVIF
2023-02-14 01:27:01
and.... in fact, there is almost zero difference with the standart AVIF
Reddit • YAGPDB
2023-02-14 08:22:24
2023-02-15 01:05:24
Demiurge
DZgas Ж yes XYB AVIF
2023-02-15 10:25:12
why does the xyb version look noticeably worse then?
DZgas Ж
Demiurge why does the xyb version look noticeably worse then?
2023-02-15 10:25:56
No, I don't see any difference in quality
Demiurge
2023-02-15 10:26:30
I do. The xyb version is slightly more smeared and blurry for some reason.
DZgas Ж
2023-02-15 10:26:58
it will be obvious to say - AVIF is not made for XYB
2023-02-15 10:27:30
Although as far as I know, AVIF uses an objective quality metric, so there should be no difference.
Demiurge
2023-02-15 10:28:07
If you look at the parts of grass that have the finest texture, and if you look at some of the tiny clouds that get smeared away in the XYB version
DZgas Ж
Demiurge I do. The xyb version is slightly more smeared and blurry for some reason.
2023-02-15 10:28:09
https://discord.com/channels/794206087879852103/1020724883241574472/1075038909140045834
2023-02-15 10:28:31
here I did tests with guetzli
Demiurge
2023-02-15 10:28:38
There's no such thing an objective quality :)
DZgas Ж
2023-02-15 10:29:01
it uses a subjective quality metric. And he turned everything into a blurred
Demiurge There's no such thing an objective quality :)
2023-02-15 10:29:19
Are you serious?
2023-02-15 10:30:03
there is mathematics. mathematics is objective. based on it, there are 2 objective metrics: PNSR and SSIM. learn the theory
2023-02-15 10:31:54
there are many subjective metrics, like VMAF, MSA (hevc), Butteraugli (jpeg xl)
2023-02-15 10:32:39
they destroy details based on the fact that the human eye may not see them
2023-02-15 10:33:29
<@1028567873007927297> ✍️
2023-02-15 10:34:36
I don't like all these metrics, of course. personally, I use SSIM wherever possible
Demiurge
2023-02-15 10:36:41
Mathematics does seem to be pretty objective.
DZgas Ж there are many subjective metrics, like VMAF, MSA (hevc), Butteraugli (jpeg xl)
2023-02-15 10:37:20
These are known as "objective metrics" not subjective because they are defined by math.
DZgas Ж
2023-02-15 10:38:13
SSIM is the best thing that has been invented so far, no one else has done other objective metrics, because SSIM itself is already very complex. but PNSR, though old, and worse than SSIM. it can easily be represented by different formulas depending on the situation
Demiurge These are known as "objective metrics" not subjective because they are defined by math.
2023-02-15 10:39:14
no, these are subjective metrics. Do you not understand why this is so?
Demiurge
2023-02-15 10:40:09
Everyone else calls them "objective metrics." Because it is calculated by a computer algorithm
DZgas Ж
2023-02-15 10:40:18
The RGB color space is objective, and the XYB color space is subjective.
Demiurge
2023-02-15 10:40:32
Math is objective remember? :)
DZgas Ж
2023-02-15 10:40:52
You don't know what you're talking about
Demiurge
2023-02-15 10:41:22
You sure?
2023-02-15 10:42:42
When people say "subjective" they usually mean it's judged by humans and not computer vision.
DZgas Ж
2023-02-15 10:43:01
well, look, suppose if you take all the colors of the image, and swap them. then an objective metric will say that the quality has not changed. But the subjective metric will say that there is not the same quality as it was before
Demiurge
2023-02-15 10:43:05
in the context of image comparison
2023-02-15 10:43:51
"subjective analysis" = "human analysis"
2023-02-15 10:44:19
Typically a blind test with human judges.
DZgas Ж
Demiurge When people say "subjective" they usually mean it's judged by humans and not computer vision.
2023-02-15 10:44:37
That is why you should understand that nowadays it is what Subjective algorithms create, which ideally should coincide with the quality of evaluation from real people.
Demiurge
2023-02-15 10:45:05
subjective algorithm sounds like an oxymoron. Didn't you just say math is objective?
DZgas Ж
Demiurge subjective algorithm sounds like an oxymoron. Didn't you just say math is objective?
2023-02-15 10:45:42
you found fault with the words and did not understand the essence
DZgas Ж SSIM is the best thing that has been invented so far, no one else has done other objective metrics, because SSIM itself is already very complex. but PNSR, though old, and worse than SSIM. it can easily be represented by different formulas depending on the situation
2023-02-15 10:47:00
<@1028567873007927297> this math
Demiurge
DZgas Ж you found fault with the words and did not understand the essence
2023-02-15 10:47:17
That is a good way of saying it.
2023-02-15 10:47:39
Still, I have heard VMAF etc being referred to as "objective metrics"
2023-02-15 10:47:50
in scientific papers
2023-02-15 10:48:10
Because technically they ARE objective.
DZgas Ж
Demiurge Still, I have heard VMAF etc being referred to as "objective metrics"
2023-02-15 10:48:36
*It predicts subjective video quality based on a reference and distorted video sequence.*
Demiurge
2023-02-15 10:48:59
The GOAL is to STRIVE to predict subjective video quality.
2023-02-15 10:49:25
But you can say the same thing with simpler metrics too
2023-02-15 10:50:06
Like you said it's a problem with words.
2023-02-15 10:51:33
I just consider ALL of those to be classified as "objective metrics"
2023-02-15 10:52:03
And that's how I have personally seen the term being used in literature
2023-02-15 10:53:06
I don't think it's good to assume that VMAF etc are special
2023-02-15 10:53:19
I don't think they are special either.
DZgas Ж
2023-02-15 10:54:00
I don't like that VMAF uses neural networks.
2023-02-15 10:54:28
at any step of creating a metric
DZgas Ж SSIM is the best thing that has been invented so far, no one else has done other objective metrics, because SSIM itself is already very complex. but PNSR, though old, and worse than SSIM. it can easily be represented by different formulas depending on the situation
2023-02-15 10:55:51
and I like that the metric is just the formula
Demiurge And that's how I have personally seen the term being used in literature
2023-02-15 10:57:55
Having studied this topic for more than 7 years, I can't turn my tongue to say that VMAF is an Objective metric.
2023-02-15 11:00:13
by the way, Butteraugli does not use any of these concepts, neither subjective nor objective, not a word on their github
2023-02-15 11:03:01
"psychovisual"
2023-02-15 11:03:08
be like subjective
Demiurge
2023-02-15 11:07:49
"Objective comparison" = computers, "subjective comparison" = people
2023-02-15 11:08:02
"neural network" = matrix multiplication
2023-02-15 11:08:34
That's my undestanding anyways.
2023-02-15 11:09:29
The NN weights are a value matrix.
DZgas Ж
Demiurge "Objective comparison" = computers, "subjective comparison" = people
2023-02-15 11:14:02
"psychovisual" ?
Demiurge
2023-02-15 11:18:54
psychovisual = how does your brain and eyes process visual stimuli.
2023-02-15 11:19:37
psychovisual model = a model of (see above)
2023-02-15 11:20:26
models are theoretical and objective
2023-02-15 11:20:49
But they are not necessarily correct
nec
2023-02-15 06:56:47
Isn't that more about goals? If we want to preserve, it would be better to use lossless or something close to it. Less about perception and more about mathematical similarity. But if we want to simply reduce size, then it's less about math and more about perception, we aim to get maximum reduction without significant visual difference. Like if we move some object in a frame, mathematically it's awful, because all values are different, but visually it might be fine.
2023-02-15 07:32:14
From my experience, metrics like PSNR aren't always good. For example, if we change subsampling, PSNR might give a decent number, but bad visual result. The reason for that is a huge PSNR difference between layers. It's very common with a text on magazine covers. In such cases if we want to convert something in auto mode, we need to use some kind of analyzer. For example, in case of jpeg, the best result I had with checking a picture on presence of gradient, sharp edges, color and other things. Gradient can produce blocking artifacts, sharp edges can produce mosquito noise and in case of color we need to check PSNR on all layers. I had to check for all kinds of artifacts in places where it's common to occur, and my program was doing something similar to subjective visual test. If we don't use lossless, then metrics like PSNR simply can't judge such artifacts at all.
DZgas Ж
2023-02-15 07:36:18
AOM magic
2023-02-15 07:36:27
3.6.0 update
_wb_
2023-02-15 08:23:26
Not much new for avif though, seems mostly stuff that makes realtime video coding faster...
DZgas Ж
_wb_ Not much new for avif though, seems mostly stuff that makes realtime video coding faster...
2023-02-15 09:03:07
AOM realtime mode be like shit. real. But I consider cpu-used 8 to be The key of the future for the next 5 years
_wb_
2023-02-15 09:18:09
For avif, I think aom at s6 is quite good now, in terms of speed vs compression.
2023-02-15 09:19:31
But consistency is an issue, some images look great at some cq setting, others look fake and plastic
2023-02-15 09:20:57
It's like libjpeg q70 can be fine or it can be crap, depending on the image content — but there at least you kind of know it's things like hard edges and text that will cause ringing artifacts
2023-02-15 09:22:25
With avif it's harder to know what will happen
DZgas Ж
2023-02-15 11:28:48
**now** I do not know what to use AVIF for at all. it's too long.
Traneptora
DZgas Ж SSIM is the best thing that has been invented so far, no one else has done other objective metrics, because SSIM itself is already very complex. but PNSR, though old, and worse than SSIM. it can easily be represented by different formulas depending on the situation
2023-02-16 12:31:23
no it's not, it corrects for gamma twice, which is not something you want to or should be doing
afed
2023-02-16 12:43:01
_wb_
2023-02-16 06:38:56
Any metric has adversarial examples like that (though ones that use low norms like psnr and ssim will allow crazier stuff than ones that use high norms like butteraugli and ssimulacra2). If you make an encoder that optimizes very well for a metric, you will find some of those examples 🙂
2023-02-16 06:43:10
(of course with classical codecs you won't find the cat changing into a dog, more like certain artifacts that the metric doesn't mind will be introduced and others that are maybe visually not too bad but the metric hates will be avoided at the cost of lots of bits)
2023-02-16 06:44:26
(with AI based codecs you might also find artifacts of the "face turns into different face" kind, which are kind of fun but makes me very hesitant to trust such codecs)
DZgas Ж
Traneptora no it's not, it corrects for gamma twice, which is not something you want to or should be doing
2023-02-16 08:38:44
Sounds good!
afed
2023-02-16 08:41:06
It may well be. But only in video codecs, ssim is counted for each block separately👍
2023-02-16 08:45:18
well...
2023-02-16 08:47:13
well well
2023-02-16 08:48:45
what kind of compilation hell do have to go through to get ffmpeg.exe on windows with libaom butteraugli
gb82
2023-02-16 09:06:20
just use wsl
2023-02-16 09:07:05
& I'd use the aom-lavish fork which has had butteraugli quantization for a while, & the mainline patch was prob merged from there
afed
2023-02-16 09:16:43
yeah, tune=butteraugli is very slow anyway, doesn't work for 10-bit and needs tuning in the mainline libaom so it is better to use aom-lavish and psnr, ssim and other simpler metrics are used by the encoders internally for some choices, but not because they are best, but because they are fast and it's better than nothing
DZgas Ж
gb82 just use wsl
2023-02-16 09:21:58
<:AngryCry:805396146322145301> no
gb82
2023-02-16 09:23:11
fair enough
2023-02-16 09:23:12
https://discord.gg/EP6ZV4GX
2023-02-16 09:23:25
they provide community builds, so maybe you'll find an exe here. idk, im on linux
DZgas Ж
afed yeah, tune=butteraugli is very slow anyway, doesn't work for 10-bit and needs tuning in the mainline libaom so it is better to use aom-lavish and psnr, ssim and other simpler metrics are used by the encoders internally for some choices, but not because they are best, but because they are fast and it's better than nothing
2023-02-16 09:23:40
dead
gb82
2023-02-16 09:24:14
you have to use the endless_merging branch
2023-02-16 09:24:22
I know the dev, it is VERY not dead lol
DZgas Ж
gb82 https://discord.gg/EP6ZV4GX
2023-02-16 09:24:26
<:Thonk:805904896879493180> well. i'll have to do it.
afed yeah, tune=butteraugli is very slow anyway, doesn't work for 10-bit and needs tuning in the mainline libaom so it is better to use aom-lavish and psnr, ssim and other simpler metrics are used by the encoders internally for some choices, but not because they are best, but because they are fast and it's better than nothing
2023-02-16 09:24:46
butteraugli maybe only for 10 bit
gb82
2023-02-16 09:25:05
DZgas Ж butteraugli maybe only for 10 bit
2023-02-16 09:26:01
I'd prefer tune=ssim at cpu 3 over tune=butteraugli at cpu 4
w
2023-02-16 09:26:25
it looks pretty dead
2023-02-16 09:26:34
last time i tried that fork it did effectively nothing
gb82
2023-02-16 09:27:01
<@138804598365224961> lmao
w
2023-02-16 09:28:42
maybe it does something for smaller files, but at larger, default tune ssim was better
afed
DZgas Ж butteraugli maybe only for 10 bit
2023-02-16 09:32:05
I mean, the main aom does not work with 10-bit butteraugli support for windows (fork works) and it's not for fast encodings (faster than 4), these modes are very slow, even with 2x downscaling
DZgas Ж
2023-02-16 09:34:03
i use only cpu used 8
gb82
2023-02-16 09:36:43
I would only use 4 or below
afed
w maybe it does something for smaller files, but at larger, default tune ssim was better
2023-02-16 09:37:27
for some encodings tune=butteraugli gives much more stable results, but this is still a very experimental mode and needs further tuning
gb82
DZgas Ж i use only cpu used 8
2023-02-16 09:37:30
at these speeds, use svt-av1
DZgas Ж
gb82 at these speeds, use svt-av1
2023-02-16 09:42:31
no. he's shit. complete shit.
gb82
2023-02-16 09:42:48
compared to aomenc speed 8? lmao
2023-02-16 09:42:56
so much for our "compression specialist"
w
2023-02-16 09:43:09
just use nvenc
DZgas Ж
gb82 compared to aomenc speed 8? lmao
2023-02-16 09:43:23
absolutely right.
2023-02-16 09:43:43
EVEN if SVT-AV1 is encoded slower
gb82
2023-02-16 09:43:54
I'll compare ssimu2 scores tomorrow between the two
2023-02-16 09:44:10
an equivalent svt-av1 speed to aom speed 8
DZgas Ж
2023-02-16 09:44:37
I do not know what kind of shit those who test it smoke. on SVT-AV1, it allows such stupid artifacts that I do not know what the developers are doing there
gb82
2023-02-16 09:44:58
we'll see what ssimu2 says tomorrow :)
DZgas Ж
gb82 we'll see what ssimu2 says tomorrow :)
2023-02-16 09:46:07
I definitely definitely read on the SVT-AV1 gitlab that they are very far from AOM. it's good that the main developer says this
2023-02-16 09:47:39
SVT-AV1 is exclusively an option when AOM is too slow, and for some reason there is an idea to use AOM real time mode (dont do it just use SVT-AV1)
w just use nvenc
2023-02-16 09:48:00
have 🥹 4090
w
2023-02-16 09:48:15
yeah it's great
gb82
DZgas Ж I definitely definitely read on the SVT-AV1 gitlab that they are very far from AOM. it's good that the main developer says this
2023-02-16 09:48:39
I agree, but just use cpu4
DZgas Ж
w yeah it's great
2023-02-16 09:48:43
No, I only have gt440
gb82
2023-02-16 09:48:47
CPU 8 is way too fast
DZgas Ж
gb82 CPU 8 is way too fast
2023-02-16 09:49:00
...?
gb82
2023-02-16 09:49:13
Anything above speed 6 is realtime mode
DZgas Ж i use only cpu used 8
2023-02-16 09:49:31
So ur using realtime mode
DZgas Ж
2023-02-16 09:49:31
dont use realtime mode
w
2023-02-16 09:49:49
obviously cpu 7 is too slow
2023-02-16 09:49:52
so they use cpu 8
DZgas Ж
2023-02-16 09:49:57
realtime mode turns AV1 into VP8
gb82
DZgas Ж dont use realtime mode
2023-02-16 09:49:58
This is what I am telling you <:kekw:808717074305122316>
DZgas Ж
2023-02-16 09:49:59
BRUH
gb82
w obviously cpu 7 is too slow
2023-02-16 09:50:21
Use av1an. Anything above cpu4 is a waste
2023-02-16 09:50:39
Anything above cpu6 is automatically realtime mode
w
2023-02-16 09:50:43
the problem is you are assuming they can use anything lower than cpu8
gb82
2023-02-16 09:51:02
I am assuming they have a device with more than two cores
w
2023-02-16 09:51:12
that is the problem
gb82
2023-02-16 09:51:36
I encoded with rav1e on my phone
w
2023-02-16 09:51:47
phones are powerful nowaday
gb82
w that is the problem
2023-02-16 09:51:47
Then why is svt-av1 not viable
w
2023-02-16 09:53:03
it's so annoying when people use real time as performance measure
gb82
2023-02-16 09:53:46
Using av1an with even just two aom workers at a lower speed will dramatically increase your encoding efficiency as opposed to using speed 8. Additionally, rav1e is faster & better at higher speeds (like speed 6+) & svt-av1 will produce better results than aom rt
w
2023-02-16 09:54:02
so saying to use av1an is cringe
2023-02-16 09:54:02
stop
gb82
2023-02-16 09:54:35
Why?
w
2023-02-16 09:55:19
it doesnt improve your encoding "efficiency"
gb82
2023-02-16 09:56:10
Also, considering DZ claims to be on Windows, I think I can safely assume >2 cores are present on their system. Av1an is a fantastic utility that will increase encoding speed irrespective of circumstance (given you can parallelize)
w it doesnt improve your encoding "efficiency"
2023-02-16 09:56:37
Yeah, that's what lower encoder speeds do
w
2023-02-16 09:56:52
no. you are suggesting using more workers
2023-02-16 09:56:58
but that only saves real time
2023-02-16 09:57:00
not cpu time
gb82
2023-02-16 09:57:49
yeah, you're right, I'll concede there for sure
w
2023-02-16 09:58:07
and we're talking about dzgas here
2023-02-16 09:58:15
who has funny pc specs and windows install
2023-02-16 09:59:15
<:troll:705997697424949249>
afed
2023-02-16 09:59:29
chunked encoding is always more efficient than using threading in the encoder, especially when there are a lot of available threads (this is true even for x264/x265)
w
2023-02-16 10:00:03
maybe space efficient
2023-02-16 10:00:06
but not time efficient :)
2023-02-16 10:00:35
wait i read that wrong
2023-02-16 10:00:48
it's technically always worse in cpu time
gb82
w it's technically always worse in cpu time
2023-02-16 10:12:01
who cares tho
w
2023-02-16 10:13:12
thxz
afed
2023-02-16 10:13:48
if there is enough memory to load all threads, it's more efficient both in quality and mostly in overall encoding speed (if there are enough cores), because encoder multithreading is limited, also quality when using frame-threads is worse, like `--frame-threads 1` for x265 will always be better in metrics and quality some like svt-av1 have very good thread scaling, but this still requires using threaded frames (so accuracy suffers), using tiles (each new tile is also worse for quality), also some better modes are very poorly parallelized
afed if there is enough memory to load all threads, it's more efficient both in quality and mostly in overall encoding speed (if there are enough cores), because encoder multithreading is limited, also quality when using frame-threads is worse, like `--frame-threads 1` for x265 will always be better in metrics and quality some like svt-av1 have very good thread scaling, but this still requires using threaded frames (so accuracy suffers), using tiles (each new tile is also worse for quality), also some better modes are very poorly parallelized
2023-02-16 10:31:03
for example, i have 16 cores and if i take aomenc/rav1e as not very good scalable encoders, what will be faster when only 4-5 cores are 100% utilized or when all 16 with a chunked encoding? besides with chunked encoding I don't care about options which are good for multithreading but worse for quality it might be not better for performance per power consumption but for overall performance it's almost always better (also for quality)
DZgas Ж
gb82 Also, considering DZ claims to be on Windows, I think I can safely assume >2 cores are present on their system. Av1an is a fantastic utility that will increase encoding speed irrespective of circumstance (given you can parallelize)
2023-02-16 10:31:56
I know this newfangled way - divide the video into 4 parts and encode each in 1 thread - no thanks. AOM use 3 cores per video and I'm fine with that
w
2023-02-16 10:36:35
obviously it's faster real time if you can use more cores
2023-02-16 10:36:48
but if you only have one core it's not
2023-02-16 10:36:55
or if you pay per core utilization it's not
afed
afed for example, i have 16 cores and if i take aomenc/rav1e as not very good scalable encoders, what will be faster when only 4-5 cores are 100% utilized or when all 16 with a chunked encoding? besides with chunked encoding I don't care about options which are good for multithreading but worse for quality it might be not better for performance per power consumption but for overall performance it's almost always better (also for quality)
2023-02-16 10:37:37
also av1an and similar tools usually have good scene change detection (for splitting), so I can worry less about wrong encoder scene detection
w
2023-02-16 10:37:50
we're not arguing that
afed
w but if you only have one core it's not
2023-02-16 10:57:49
for this use case, maybe, but basically, except for the time for splitting, nothing changes and it's possible to encode each chunk sequentially even in single-threaded mode, and it gives more options like I can encode with different encoders or different settings and then swap the worst quality chunks for better quality chunks or reencode only the bad segments instead of reencoding the whole video it is not useful only for multi-pass encoding to the required size (actually, it's possible, but worse for quality than doing it for the whole video)
w
2023-02-16 10:58:49
yeah i get it. i was there at the start of the whole thing
afed
2023-02-16 11:11:38
there are also interesting things using prediction (with nn or even something simpler), when each chunk is identified by type and complexity and then encoded with different settings and this gives better quality and less overall encoding time than encoding the whole video with the same slowest or fastest settings but, sadly, there are no such open source solutions
DZgas Ж
w who has funny pc specs and windows install
2023-02-16 11:25:40
✍️ I have 4 gb of ram
afed chunked encoding is always more efficient than using threading in the encoder, especially when there are a lot of available threads (this is true even for x264/x265)
2023-02-16 11:27:03
Yes. Great idea. when will this appear in FFmpeg?
2023-02-16 11:27:08
🙂
afed
w but not time efficient :)
2023-02-16 11:33:19
and I forgot another important thing, aomenc is still an unstable encoder and for very slow or some custom settings it can cause a segfault and all the encoding time wasted, and especially for slow modes the time spent can be huge, even weeks or months for long videos and av1an allows to continue encoding from unfinished chunks
BlueSwordM
w not cpu time
2023-02-16 05:56:45
Actually, because of imperfect scaling in almost all cases, you save CPU time and real time :)
DZgas Ж
DZgas Ж what kind of compilation hell do have to go through to get ffmpeg.exe on windows with libaom butteraugli
2023-02-16 05:59:40
some person responded to this request. he said that he would do such the thing. Well, I'll be waiting.
gb82
afed and I forgot another important thing, aomenc is still an unstable encoder and for very slow or some custom settings it can cause a segfault and all the encoding time wasted, and especially for slow modes the time spent can be huge, even weeks or months for long videos and av1an allows to continue encoding from unfinished chunks
2023-02-16 06:24:18
it seems like you know what you're talking about
2023-02-16 06:24:30
bc even if u use one chunk with av1an, it can just retry
afed
2023-02-16 06:39:48
I haven't used encoding for just one chunk, but theoretically it depends for what cause the encoder is crashed and it could corrupt the encoded chunk, but at least finished chunks will be fine
gb82
2023-02-16 06:43:12
oh sorry not one chunk, one worker*
w
BlueSwordM Actually, because of imperfect scaling in almost all cases, you save CPU time and real time :)
2023-02-16 07:57:40
1 worker x 1 thread is always less total cpu time than 2 workers x 1 thread. I am not comparing it with using more threads in the encoder
DZgas Ж
2023-02-16 08:09:23
My FLAC compress key ```flac.exe -p -e -f -l 12 -b 4608 -r 0,8 -m -A tukey(0) -A tukey(5e-1) -A tukey(1) -A tukey(2) -A tukey(3) -A tukey(4) -A tukey(5) -A partial_tukey(0) -A partial_tukey(1) -A partial_tukey(2) -A partial_tukey(3) -A partial_tukey(4) -A partial_tukey(5) -A punchout_tukey(0) -A punchout_tukey(1) -A punchout_tukey(2) -A punchout_tukey(3) -A punchout_tukey(4) -A punchout_tukey(5) -A bartlett -A bartlett_hann -A blackman -A blackman_harris_4term_92db -A connes -A flattop -A hamming -A hann -A kaiser_bessel -A nuttall -A rectangle -A triangle```
Reddit • YAGPDB
2023-02-17 01:59:55
Traneptora
BlueSwordM Actually, because of imperfect scaling in almost all cases, you save CPU time and real time :)
2023-02-17 05:28:10
nah, doing chunked encoding is always less cpu time than doing it single-threaded
2023-02-17 05:28:32
cause there's some small overhead to starting a new process
2023-02-17 05:28:47
it's just that the cpu time overlaps with itself cause parallelism woooo
BlueSwordM
Traneptora nah, doing chunked encoding is always less cpu time than doing it single-threaded
2023-02-17 06:20:37
I should have been clearer: I'm comparing against all other threading methods.
Demiurge
afed
2023-02-17 09:47:27
This is why the only way to compare codecs is to see what they actually look like at the same size, or alternatively, see what bitrate they end up being when you can no longer ABX them apart from the original in a blind ABX test.
afed
2023-02-17 10:12:10
there are no perfect metrics, but there are metrics that are better than others, which are confirmed by better correlation with subjective evaluations but, even the best metrics should not be the only quality indicator, but they are good as automated helpers like, i can visually compare some images or videos, and what if i need to compare millions of such images or videos? but with metrics I can notice a quality drop in an image or even some frames, same for encoders, they don't have human eyes, but with metrics they have some correlation with visual quality also subjective quality is subjective and it can't be the best estimate either, some people might like av1 smoothing more than the source, some people like over-sharpness, etc.
Demiurge
2023-02-17 10:47:00
They're good in theory but if they can't be relied upon, then they can't be relied upon.
2023-02-17 10:50:13
I guess the only exception would be if you could predict the metrics weaknesses and how it could potentially be fooled. And then, completely rule it out before measuring.
2023-02-17 10:51:44
Like if you theoretically knew for a fact that the type of distortion you will be introducing is not what the metric is bad at measuring
2023-02-17 10:52:23
Which in practice I doubt is possible most of the time
spider-mario
Demiurge This is why the only way to compare codecs is to see what they actually look like at the same size, or alternatively, see what bitrate they end up being when you can no longer ABX them apart from the original in a blind ABX test.
2023-02-17 03:14:56
it feels to me as though the latter would be harder to estimate
2023-02-17 03:18:07
in principle, as bitrate increases, you would expect the frequency at which people get the A/B/X test right to decrease asymptotically to 50%
2023-02-17 03:18:24
you would then try to estimate what those frequencies might plausibly be at various bitrates,
2023-02-17 03:18:54
and finally, determine “at roughly which bitrate does this (presumably quite horizontal) curve get ‘close enough’ to 50%?”
2023-02-17 03:19:18
it seems that realistically, this would be very uncertain
2023-02-17 03:20:21
whereas picking just one bitrate and estimating the frequency of getting the test right with one codec and with the other, and thereby a probability distribution of the difference, would be much more straightforward
BlueSwordM
Demiurge They're good in theory but if they can't be relied upon, then they can't be relied upon.
2023-02-17 05:16:47
So what you're saying is that unless a metric is perfect, then it shouldn't be used?
2023-02-17 05:17:13
I mean, it might as well be the same thing for subjective visual comparisons on anything but wide gamut high contrast high brightness displays.
_wb_
2023-02-17 06:11:02
Metrics should be used, but always with care and with eyeballs too.
2023-02-17 06:12:03
It's effectively an arms race where codecs learn to fool metrics and metrics get better at avoiding getting fooled.
Reddit • YAGPDB
2023-02-17 11:57:03
DZgas Ж
DZgas Ж some person responded to this request. he said that he would do such the thing. Well, I'll be waiting.
2023-02-18 09:51:52
nop
2023-02-18 01:37:39
well. the AV1 community server turned out to be just useless. After 2 days of my tortures, I started to get something
2023-02-18 01:56:15
oh well
2023-02-18 02:50:57
libaom .a(butteraugli.c.o):butteraugli.c:(.text+0x170): undefined reference to `__imp_JxlButteraugliApiCreate'
2023-02-18 02:54:08
truly zero answers in google on request
2023-02-18 02:55:23
I conclude that in the last 2 years no one has compiled AOM with butteraugli on windows
DZgas Ж what kind of compilation hell do have to go through to get ffmpeg.exe on windows with libaom butteraugli
2023-02-18 10:47:35
after spending 2 days, I came to the conclusion that AOMENC (not ffmpeg aom) with butteraugli cannot be compiled for windows at all. Neither AOM 3.1.0 nor 3.4.0 nor 3.6.0, nor with libjxl 0.6 0.7 0.8
gb82
2023-02-18 11:16:25
The AV1 community server was useless? I wouldn't be so rude, they acknowledged your question & offered some guidance which I think was very nice of them
DZgas Ж
gb82 The AV1 community server was useless? I wouldn't be so rude, they acknowledged your question & offered some guidance which I think was very nice of them
2023-02-18 11:18:22
THE offered ? everything that is in the first lines of google "how to compile AOM"??
2023-02-18 11:18:46
No, absolutely useless community.
gb82
2023-02-18 11:19:12
they're not obligated to help you for any reason, the fact that they answered at all was just out of their interest in being kind & helpful people
2023-02-18 11:19:48
I've faced roadblocks similar to the one you're facing now, & I think it's best to not be angry about it & let yourself move on
DZgas Ж
gb82 they're not obligated to help you for any reason, the fact that they answered at all was just out of their interest in being kind & helpful people
2023-02-18 11:20:05
Well, if they don't have to and don't want to help about AV1, then what did they forget there?
2023-02-18 11:20:46
Any 1 developer is more active here than AV1 server with 500 online
gb82
2023-02-18 11:21:07
I don't understand your question, & I'm not going to entertain this conversation anymore if your only interest is to talk negatively about another community that shares goals & ideals with this one
DZgas Ж
gb82 I don't understand your question, & I'm not going to entertain this conversation anymore if your only interest is to talk negatively about another community that shares goals & ideals with this one
2023-02-18 11:22:34
To be a part of the community, it must be proved by deed. and I saw there only a bunch of lazy people who poke at the terminal to compress for fun.
gb82
2023-02-18 11:24:31
Please don't ping me about external server drama. As I voiced above, I am not willing to entertain this conversation if your only interest is to talk negatively about them.
DZgas Ж
2023-02-18 11:30:53
well, it is necessary to inform that -- when you write about help for 2 days. and when you write 3 messages. they will close access to the channel where they are build soft. and delete your message. and they will write to you, do everything yourself. here are a couple of links from Google. no one has to help you here.
sklwmp
DZgas Ж libaom .a(butteraugli.c.o):butteraugli.c:(.text+0x170): undefined reference to `__imp_JxlButteraugliApiCreate'
2023-02-19 02:23:00
i'm getting similar errors, not sure why it can't find the symbols
BlueSwordM
DZgas Ж To be a part of the community, it must be proved by deed. and I saw there only a bunch of lazy people who poke at the terminal to compress for fun.
2023-02-19 03:53:08
lmao
sklwmp
2023-02-19 06:22:55
okay, i seem to have finally done it
2023-02-19 06:23:29
needed to patch third_party libyuv (which for some reason is required by butteraugli) to build properly on msys2
2023-02-19 06:23:33
now to get a static build going
2023-02-19 06:27:42
maybe later... it's tiring, in short just change that file and add `-DLIBYUV_STATIC` to your CFLAGS if you wanna compile mainline aomenc (for whatever reason) with butteraugli
_wb_
DZgas Ж Any 1 developer is more active here than AV1 server with 500 online
2023-02-19 07:14:38
I think most of the people on the av1 discord are not av1 devs but rather people interested in using av1 to encode videos. The devs/users ratio is probably higher on this discord.
DZgas Ж
_wb_ I think most of the people on the av1 discord are not av1 devs but rather people interested in using av1 to encode videos. The devs/users ratio is probably higher on this discord.
2023-02-19 08:06:40
Look this 👉 <@557099078337560596> Why is this happening here? I write about it for 2 days on the av1 server, but the person who really wants to figure it out and do it is here.
_wb_
2023-02-19 08:18:40
I am continuously amazed by how many very intelligent and very friendly people are on this discord.
sklwmp
2023-02-19 08:32:11
hm, i can't seem to replicate my success like before, i can't figure out what's going on anymore
2023-02-19 08:32:22
i might need a few more days to figure this out... but there at least is some info
DZgas Ж
sklwmp hm, i can't seem to replicate my success like before, i can't figure out what's going on anymore
2023-02-19 08:35:28
As I understand it, the build is not being built?
sklwmp
2023-02-19 08:36:15
I'm encountering the same error again as before with the missing dllimport symbols. I already patched the files and I'm defining LIBYUV_STATIC, but for some reason it's just not working. I'll figure it out in a bit, but all I could figure out is posted above.
DZgas Ж
sklwmp I'm encountering the same error again as before with the missing dllimport symbols. I already patched the files and I'm defining LIBYUV_STATIC, but for some reason it's just not working. I'll figure it out in a bit, but all I could figure out is posted above.
2023-02-19 08:37:28
Well, I'm absolutely not a C programmer, so I'll be waiting for you
sklwmp
2023-02-19 09:21:53
Neither am I honestly, I'm just experimenting and figuring things out. Turns out I was building in the wrong repo, for some reason the aomenc forks can't compile statically even with the patch, but the mainline ones can. Weird. Anyway, I still need to figure out how to get it to build statically. It still links to the dlls.
DZgas Ж
sklwmp Neither am I honestly, I'm just experimenting and figuring things out. Turns out I was building in the wrong repo, for some reason the aomenc forks can't compile statically even with the patch, but the mainline ones can. Weird. Anyway, I still need to figure out how to get it to build statically. It still links to the dlls.
2023-02-19 09:27:13
dlls doesn't matter at all, you have the worker aomenc.exe ?
2023-02-19 09:29:10
This is my aomenc without butteraugli, it just compiled and just works
sklwmp
2023-02-19 09:29:26
yes, but i compiled it with avx2 support, so i need to recompile it since i just looked up your processor and it does not have avx2
DZgas Ж
sklwmp yes, but i compiled it with avx2 support, so i need to recompile it since i just looked up your processor and it does not have avx2
2023-02-19 09:30:09
That is , you have set the compilation function AVX only ??
sklwmp
2023-02-19 09:30:22
yes, i set `-march=x86-64-v3` which AFAIK sets AVX2
2023-02-19 09:30:39
since usually that's what they recommend for best performance with these av1 encoders
DZgas Ж
2023-02-19 09:31:06
I think it's better do it by default.
sklwmp
2023-02-19 09:32:07
I'm pretty sure that only tests if the compiler supports -mavx2, not necessarily if your CPU supports it.
DZgas Ж
sklwmp since usually that's what they recommend for best performance with these av1 encoders
2023-02-19 09:32:38
it's true. the codec works well on AVX
sklwmp yes, but i compiled it with avx2 support, so i need to recompile it since i just looked up your processor and it does not have avx2
2023-02-19 10:16:07
well?
sklwmp
2023-02-19 11:47:33
sorry about the delay, had to take care of irl stuff, here's the shared build since i couldn't get static to work, aomenc is *really* fragile about getting butter to work on windows
DZgas Ж
sklwmp sorry about the delay, had to take care of irl stuff, here's the shared build since i couldn't get static to work, aomenc is *really* fragile about getting butter to work on windows
2023-02-19 12:36:56
not work...
sklwmp
2023-02-19 12:37:01
how so?
DZgas Ж
2023-02-19 12:37:19
simple, even as a regular encoder
sklwmp
2023-02-19 12:37:31
i don't quite understand
DZgas Ж
sklwmp i don't quite understand
2023-02-19 12:39:10
the normal encoder, up, works, and your encoder - just exits the program
sklwmp
2023-02-19 12:39:26
that's odd...
2023-02-19 12:39:28
hmm
DZgas Ж
2023-02-19 12:39:32
avx?
sklwmp
2023-02-19 12:39:33
i'm not very sure what's going on
2023-02-19 12:39:40
i remember turning off avx
2023-02-19 12:39:46
let me check on my machine rq
DZgas Ж
2023-02-19 12:40:18
👌
sklwmp
2023-02-19 12:41:44
it works fine on my machine, let me go through the logs and see if avx was really disabled
2023-02-19 12:44:26
okay it looks like aom somehow forces avx2 even if i set cflags...
2023-02-19 12:44:30
using its own flags
2023-02-19 12:44:33
that's annoying
DZgas Ж
2023-02-19 12:44:52
heh
2023-02-19 12:45:55
the surprising thing is that it build only in AVX mode, ignoring SSE, although the AOMENC assembly should be universal...
sklwmp
2023-02-19 12:47:12
ah wait, which version of windows are you running
2023-02-19 12:47:22
im pretty sure aomenc has runtime detection to see if you can use avx2 or not
DZgas Ж
2023-02-19 12:48:21
not all programs do this, for some reason
2023-02-19 12:48:43
Windows 10 21H2
sklwmp
2023-02-19 12:48:59
okay, so the runtime isn't the issue either...
2023-02-19 12:49:20
it doesn't pop up any errors at all when you just double click the file?
2023-02-19 12:49:32
maybe windows is detecting it as a virus, i really don't know at this point
DZgas Ж
2023-02-19 12:49:45
in fact, I don't even know any programs that give an error about AVX, except for paq8px
sklwmp maybe windows is detecting it as a virus, i really don't know at this point
2023-02-19 12:50:21
I don't have any antiviruses (and I cut out the built-in one)
sklwmp it doesn't pop up any errors at all when you just double click the file?
2023-02-19 12:51:38
the program shell is working. and even --help works, but running something causes it to be end
sklwmp
2023-02-19 12:51:45
okay that's unusual
2023-02-19 12:52:45
i really am at a loss right now...
DZgas Ж
2023-02-19 12:53:39
for my universal compile i use ```cmake .. -DBUILD_SHARED_LIBS=0 -DCMAKE_BUILD_TYPE=Release -G "MSYS Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS="-flto -O3 -march=native" -DCMAKE_C_FLAGS="-flto -O3 -march=native" -DCMAKE_C_FLAGS_INIT="-flto=16 -static -static-libgcc -static-libstdc++" -DCMAKE_EXE_LINKER_FLAGS="-flto -static -static-libgcc -static-libstdc++" -DENABLE_DOCS=0 -DENABLE_TESTS=0 -DCONFIG_AV1_DECODER=0```
2023-02-19 12:53:55
maybe there is a key here that will help you
sklwmp
2023-02-19 12:53:57
well it's not really universal if you use "march=native"
sklwmp sorry about the delay, had to take care of irl stuff, here's the shared build since i couldn't get static to work, aomenc is *really* fragile about getting butter to work on windows
2023-02-19 12:55:02
if anyone here can try this exe to see if it breaks on their machine too, that would be great! i can't test this on a clean environment at the moment this is just aomenc mainline compiled with x86-64-v2 as well as small patch to get it to find JXL in MinGW
DZgas Ж
2023-02-19 12:56:53
I have a friend with avx, he will try
sklwmp if anyone here can try this exe to see if it breaks on their machine too, that would be great! i can't test this on a clean environment at the moment this is just aomenc mainline compiled with x86-64-v2 as well as small patch to get it to find JXL in MinGW
2023-02-19 01:04:48
well AVX moment
2023-02-19 01:11:06
**FINALLY, the first results of butteraugli AOM *- it is 5 times slower than SSIM***
2023-02-19 01:14:08
aomenc.exe --cpu-used=8 -h 540 -w 960 k.yuv --tune=butteraugli --output=test2.ivf butteraugli 1.2 FPS SSIM 6 FPS
2023-02-19 01:23:37
the
2023-02-19 01:28:01
2023-02-19 01:31:44
2023-02-19 01:33:48
it may be difficult to notice, but the quality of butteraugli is really higher than SSIM. however, its speed makes it impossible to encode fast content. judging by the speed, the butteraugli setting should be applied somewhere after compression speed level 2 or 1
2023-02-19 01:37:35
2023-02-19 01:39:04
considering that the files have literally the same weight, it's amazing how butteraugli affects the sharp edges of the blocks, and the halo around the hair
2023-02-19 01:41:29
when I was told that butteraugli was slow. they still haven't told me what time? I thought well, one and a half times, maybe 2 times slower... 100 times
2023-02-19 01:48:43
Continue to use SSIM
2023-02-19 01:50:08
diskorduser
2023-02-19 01:52:58
Maybe it's faster on avx2 cpu.
2023-02-19 01:53:04
Idk
DZgas Ж
diskorduser Maybe it's faster on avx2 cpu.
2023-02-19 01:58:46
it was AVX
_wb_
2023-02-19 01:59:08
Probably some shortcuts can be made to speed things up, but it's kind of unavoidable to be slower than super simple metrics like psnr
yoochan
DZgas Ж Continue to use SSIM
2023-02-19 03:09:30
You can also try ssimulacra2 😁
sklwmp
2023-02-19 03:13:04
the results you're getting with mainline aomenc are probably why everyone recommends just using the forks like aom-av1-lavish
DZgas Ж
yoochan You can also try ssimulacra2 😁
2023-02-19 03:21:02
🥴 no thx
sklwmp the results you're getting with mainline aomenc are probably why everyone recommends just using the forks like aom-av1-lavish
2023-02-19 03:23:38
I've seen it. But in order not to use it, it was enough for me Not to see speed time on their github page.
2023-02-19 03:23:58
about ssimulacra2
2023-02-19 03:25:38
<@794205442175402004> you also do the ssimulacra2 project, how many times speed is it less if use it instead of SSIM?
_wb_
2023-02-19 03:26:49
Computationally the main difference is the colorspace in which they operate
DZgas Ж
_wb_ Computationally the main difference is the colorspace in which they operate
2023-02-19 03:28:00
Is it possible to say the speed difference in a simple number?
_wb_
2023-02-19 03:29:54
Depends on how you implement it. If you are doing encoding in xyb, and ignore the multiscale thing, then ssimulacra2 is probably implementable with very similar speed as ssim, maybe 10% slower or something
DZgas Ж
DZgas Ж the
2023-02-19 03:31:15
At some point, the AOMENC encoder enters an infinite loop of calculating something, and cannot get out of it, infinitely performing some kind of cyclic calculation. unfortunately, AOMENC with butteraugli just Broke <@557099078337560596>
sklwmp
2023-02-19 03:31:43
in any case, at least some good experiments were made
DZgas Ж
2023-02-19 03:31:59
<:AV1:805851461774475316> 👍
sklwmp
2023-02-19 03:32:21
if it interests you, here's a build which i think finally disables avx
2023-02-19 03:32:43
that's probably the end of my adventures with aomenc for now, it's getting annoying trying to compile things
DZgas Ж
sklwmp if it interests you, here's a build which i think finally disables avx
2023-02-19 03:34:45
nope. it's also AVX and doesn't work
sklwmp
2023-02-19 03:35:04
weird, i swear it disabled all AVX files, i didn't see any get compiled
2023-02-19 03:35:24
anyway that's the end of my rope for real
DZgas Ж
sklwmp that's probably the end of my adventures with aomenc for now, it's getting annoying trying to compile things
2023-02-19 03:35:48
I think yes you should stop already, you've done everything need to
2023-02-19 03:36:40
by the way, on linux it takes 20 minutes. That is all. after I asked one person to make such a build for linux.