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

Demiurge
Quackdoc its literally a modifer that determins how much background color to add to a pixel
2024-04-06 04:56:21
That's not the impression I got when I read the article. I'll double check though.
lonjil
Quackdoc Keep in mind, you cannot see light unless the light is being reflected into your eyes. But that does not mean the energy disappears.
2024-04-06 04:56:43
you can see whatever light went directly from the light source to your eyes, but you cannot see whatever light went in any other direction
Quackdoc
2024-04-06 04:56:51
Be aware I would not trust Wikipedia to be accurate on anything.
lonjil you can see whatever light went directly from the light source to your eyes, but you cannot see whatever light went in any other direction
2024-04-06 04:57:22
exactly, alpha 0 just means the light isn't being directed into the lens
2024-04-06 04:57:39
that doesn't mean that the energy is gone
2024-04-06 04:57:58
its just "not visible"
Demiurge
2024-04-06 04:58:05
The impression I get is that emission is a multiple of occlusion and 0 is fully occluded
2024-04-06 04:58:12
But I'll double check...
Quackdoc
Demiurge The impression I get is that emission is a multiple of occlusion and 0 is fully occluded
2024-04-06 04:58:50
It's impossible for this to be true. If this is what the article leads on, then the article's just wrong. Wouldn't be the first time it's happened.
lonjil
lonjil indeed, as long as what I'm saying is true in at least one situation, my point is made
2024-04-06 04:59:07
imagine the background is a solid piece of felt, pure black, alpha=1. Now imagine you have a transparent light emitter in front of it, like a candle. It has alpha=0, but RGB=1,1,1. What do you see? You see 1,1,1, despite the candle being alpha=0 and the background being 0,0,0.
Quackdoc
2024-04-06 04:59:11
Adobe used a few misinformation about Associate Alpha all the time because they refused to fix their shit and their goal was to convince everyone that they were right and everyone else was wrong.
Demiurge
2024-04-06 04:59:32
If I'm right then it should not be possible to have an alpha of 0 and a nonzero emissive value at the same time since that's division by zero
Quackdoc
2024-04-06 04:59:43
correct
lonjil
Demiurge If I'm right then it should not be possible to have an alpha of 0 and a nonzero emissive value at the same time since that's division by zero
2024-04-06 05:00:28
https://community.adobe.com/t5/photoshop-ecosystem-discussions/change-in-exr-open-from-cs2-to-cs3-can-this-be-fixed/m-p/1521042/page/4#M918
Quackdoc
2024-04-06 05:00:41
but that's proof as to why you are wrong, because it is possible (unlike unaccositated alpha)
Demiurge
2024-04-06 05:02:40
Or maybe it's too expensive for computers to double check that values make sense before doing matrix multiplication?
Quackdoc
2024-04-06 05:03:10
it's not expensive at all
2024-04-06 05:03:15
well maybe in the 90s
lonjil
Demiurge Or maybe it's too expensive for computers to double check that values make sense before doing matrix multiplication?
2024-04-06 05:04:33
but they do make sense
2024-04-06 05:05:03
the VFX industry is all in on associated alpha for a reason, it allows for something that unassociated alpha simply doesn't
fab
2024-04-06 05:10:37
Demiurge
2024-04-06 05:16:51
In your model, you would first subtract the alpha and then add
2024-04-06 05:16:51
Your additive model doesn't make sense to me. In theory you can just keep adding but I don't think anyone does that in practice... In practice they're added and then divided as if averaging.
2024-04-06 05:16:52
Also, the article says at the beginning that the term alpha comes from "linear interpolation formula" which is not adding
2024-04-06 05:17:43
Linear interpolation has a very clear meaning and it's not adding like you're describing
2024-04-06 05:17:47
It's averaging
lonjil
2024-04-06 05:18:08
just because a term comes from something doesn't mean that that thing is the end all be all of everything afterwards
Demiurge
2024-04-06 05:18:29
Well, if it's called alpha...
lonjil
2024-04-06 05:18:37
like, just look at the text
2024-04-06 05:18:45
that's the formula
2024-04-06 05:18:48
it ain't my model
Demiurge
2024-04-06 05:18:48
You can see why I thought of it the way I did and got this impression
2024-04-06 05:19:48
For some reason the formulas do not show up in safari...
lonjil
2024-04-06 05:20:00
rip
2024-04-06 05:20:12
that's annoying!
2024-04-06 05:22:41
> Premultiplied alpha may also be used to allow regions of regular alpha blending (e.g. smoke) and regions with additive blending mode (e.g. flame and glitter effects) to be encoded within the same image.[7][8] This is represented by an RGBA triplet that express emission with no occlusion, such as (0.4, 0.3, 0.2, 0.0).
Demiurge
lonjil like, just look at the text
2024-04-06 05:33:25
This equation looks perfectly compatible with additive blending
lonjil
Demiurge This equation looks perfectly compatible with additive blending
2024-04-06 05:35:24
yeah. That's sorta the point. See the text I quoted right above. When the foreground is alpha=0, foreground and background are simply added together.
Demiurge
2024-04-06 05:42:54
I wonder how it works for jpegxl. It's a floating point format so loss of precision isn't a problem...
lonjil
2024-04-06 05:46:00
JXL supports both
Demiurge
2024-04-06 05:46:16
Btw why does it make sense to say associated alpha when the brightness of a pixel is NOT associated with the alpha?
2024-04-06 05:46:43
It makes more sense if it's associated because it's premultiplied
2024-04-06 05:47:25
But if that's incorrect then in what other sense is it associated
lonjil JXL supports both
2024-04-06 05:49:21
So the file says what pixel format the values are using in other words?
2024-04-06 05:49:46
So it's always unambiguous?
lonjil
2024-04-06 05:50:29
I believe so yes
2024-04-06 05:51:18
yeah there's a flag that says whether the alpha channel is associated or not
Demiurge
2024-04-06 05:52:18
Cool. But what is it "associated" with exactly if they aren't premultiplied?
lonjil
2024-04-06 05:52:38
ask whoever invented that name
lonjil yeah there's a flag that says whether the alpha channel is associated or not
2024-04-06 05:53:04
and when you do blending inside JXL with multiple frames or patches, you can tell it which blending algo to use, I think.
Demiurge
2024-04-06 05:55:56
Hmm. All these things conspired to make me initially believe that premultiplication is a logical term to use
lonjil and when you do blending inside JXL with multiple frames or patches, you can tell it which blending algo to use, I think.
2024-04-06 06:00:09
Yes and surely this is specified as a very simple algo that doesn't require converting the colorspace to a linear one
lonjil
2024-04-06 06:01:02
keep in mind that you can do all the math to make it work out right in the end during encoding, since you know exactly how the decoder works
Demiurge
2024-04-06 06:02:16
Yeah, there shouldn't be a need for anything so advanced as being able to convert arbitrary colorspace to linear
spider-mario
2024-04-06 09:37:00
the attitude of Chris in that Adobe thread is frankly appalling
Quackdoc
spider-mario the attitude of Chris in that Adobe thread is frankly appalling
2024-04-07 01:18:16
it really was quite something, the thread itself is very enlightening though, btw this thread is pretty notorious now
Demiurge Cool. But what is it "associated" with exactly if they aren't premultiplied?
2024-04-07 01:29:25
hg2dc has a good explanation here https://hg2dc.com/2020/08/26/question-25/ > It would be challenging to dream up a worse term for such an encoding. Put something math-nerd in a term and you can be guaranteed that math nerds will get obsessed with the math nerdism of the subject, and completely forget the idea that RGB values are emission intensities. Mr. Gritz, cited below, was one of few sane people who chose to use the TIFF specification terminology associated alpha. As with All Things Gritz, it is a decision rooted in wisdom.
2024-04-07 01:31:39
the tiff spec did right by calling it associated alpha, but sadly goes on to define it as below. so kinda one step forwards half step back > associated alpha specifies that color components are pre-multiplied by the alpha component
2024-04-07 01:46:19
I posted this one before, but it actually does a good job. "premultiplied" does *sometimes* make sense, it makes sense when you do the process of converting unassociated alpha to associated alpha https://groups.google.com/g/osl-dev/c/3QKlnfW6dB0/m/KdziBfxeBgAJ,he > the PNG file format specification dictates that color should not be premultiplied (also known as "unassociated alpha"), and the OpenEXR specification is pretty clear that color should always be premultipled (also known as "associated alpha"). > ... > By default, OIIO's texture system will automatically premultiply upon input, for image files that appear to be unassociated > ... > There is an option ... that will turn off this behavior, i.e., to leave unpremultiplied colors as they were in the file. If you do that, then, the shader itself needs to do the premultiplication to use it as ordinary texture > ... > > So the way that OpenImageIO ... deals with this is to attempt to determine ... its best guess on whether an image being read is associated or unassociated alpha, and for the latter will automatically premultiply in order to present the pixels on the app side of the API as if they were premultiplied.
_wb_
2024-04-07 08:43:10
In jxl we support everything: premultiplied or not, but also funky stuff like negative alpha or alpha > 1 which can perhaps also have interesting uses
fab
2024-04-07 08:52:04
I computed a new Instagram aac encoder
2024-04-07 08:53:02
When new array of commit or announcement?
spider-mario
2024-04-07 09:13:22
perhaps unassociated alpha could be renamed to “normalised alpha” or something like that
2024-04-07 09:13:50
(it assumes that emission won’t be more than occlusion and therefore rescales 0-1 to represent 0-alpha)
2024-04-07 09:15:35
maybe “normalis**ing** alpha” to make it clearer that alpha is the normaliser and not the normalisee
fab
2024-04-07 11:00:08
That's for formula 1 videos will help
2024-04-07 11:00:36
Fixing moire in jpeg xl and avif those new fast speeds
Demiurge
2024-04-07 11:48:43
What do these constant out of context screenshots mean
fab
2024-04-07 12:40:54
2024-04-07 12:41:39
i hope in a week we will have some builds
Fox Wizard
Demiurge What do these constant out of context screenshots mean
2024-04-07 12:44:49
I don't think questioning Fabian's logics will really bring you anywhere <:KekDog:884736660376535040>
fab
Fox Wizard I don't think questioning Fabian's logics will really bring you anywhere <:KekDog:884736660376535040>
2024-04-07 01:34:48
pashifox found 5 new bugs on the encoder side
2024-04-07 01:35:35
2024-04-07 01:36:11
isa good news gweewhwef.txt
_wb_
spider-mario perhaps unassociated alpha could be renamed to “normalised alpha” or something like that
2024-04-07 04:15:02
Names aside, what makes more sense depends a lot on the use case imo. When editing images like composing two photos with a smooth "crossfade" between the two, it makes sense to see alpha as a selection mask that is independent of RGB (so unassociated/non-premultiplied). When modeling a scene using semitransparent layers where you want to have both blending and additive (emissive), associated/premultiplied is needed because otherwise you cannot have emissive light. Though if you allow sample values outside the [0,1] interval (both for color and for alpha), you can also model things that cannot be represented when everything has to be in that nominal interval.
fab
2024-04-07 06:49:21
It needs a tablet to do properly but now i did some new results
2024-04-07 06:49:25
Tedious
2024-04-07 06:49:39
2024-04-07 06:53:43
2024-04-07 06:54:02
I think look more like vp9 than jxl but why wb,;
2024-04-07 06:54:46
What i did wrong today on hall website
lonjil
2024-04-07 06:57:59
I found this gem of a comment on YouTube....
fab
2024-04-07 06:58:33
Aomedia is too slow 13 secondd a single image isn't ready
2024-04-07 06:58:42
Jxl has already encoded
spider-mario
lonjil I found this gem of a comment on YouTube....
2024-04-07 06:59:48
so yet more misunderstanding of associated alpha?
2024-04-07 07:00:07
is it that recent video by the half-silver-face guy?
2024-04-07 07:00:20
(I don’t remember his name right now)
lonjil
2024-04-07 07:00:42
Captain Disillusion, yeah. That's the top voted comment under that video
2024-04-07 07:01:59
The video isn't great, but it does mention that associated alpha allows for some things that simply aren't possible with unassociated alpha, and isn't just an optimization. So it's funny that Crocker ignores that in his comment. Maybe he just didn't watch it.
2024-04-07 07:02:05
https://www.youtube.com/watch?v=XobSAXZaKJ8
spider-mario
2024-04-07 07:05:27
I’m going to reply with this
lonjil
2024-04-07 07:06:47
🙏
2024-04-07 07:18:17
incidentally, is there a standard way of doing 3-channel alpha in JXL?
2024-04-07 07:21:12
Presumably it's perfectly possible since you can do whatever you want with any number of extra channels, but with JXL support probably coming to VFX tools like Blender in the nearish future, I wonder if there will be an agreed upon convention for this case.
fab
lonjil incidentally, is there a standard way of doing 3-channel alpha in JXL?
2024-04-07 07:36:37
honestly on my r580 avif looks identical to jxl
2024-04-07 07:36:56
butcan't make jxl identical to avif
Demiurge
2024-04-07 10:20:57
That has nothing to do with the question you're replying to...
spider-mario
2024-04-07 10:33:36
also, being identical should be symmetrical
Quackdoc
lonjil I found this gem of a comment on YouTube....
2024-04-07 10:41:37
watch creators of a format ruin a format and decades worth of beginner VFX artists exports with one funny line
spider-mario
2024-04-07 11:02:15
https://www.smbc-comics.com/?id=2475 ```python .append("the only benefit of premultiplication is faster compositing") ```
Quackdoc
2024-04-07 11:05:07
xD
lonjil
2024-04-07 11:05:30
Lol
Quackdoc
2024-04-07 11:14:18
it's not even like it was unknown the benefits at the time of PNGs inception. Porter and Duff's excellent paper came out in like '85. OFC it's entirely possible that they were unaware of it. But I feel like they information would have been available for them.
2024-04-07 11:16:48
Like they **knew** about pre-mulitiplied which according to alvy ray's "Alpha and the history of digital compositing" actually was first provided as terms and technologies by that specific paper
2024-04-07 11:17:33
oh sorry the original paper was '84 https://graphics.pixar.com/library/Compositing/paper.pdf
_wb_
lonjil incidentally, is there a standard way of doing 3-channel alpha in JXL?
2024-04-08 07:15:25
Is that a thing? So R,G,B each get their own alpha value?
2024-04-08 07:20:48
You can have 3 alpha channels in jxl, but frame blending is defined in the spec to use the same alpha channel for blending R,G and B.
spider-mario
_wb_ Is that a thing? So R,G,B each get their own alpha value?
2024-04-08 09:54:07
yes, EXR supports that: https://openexr.com/en/latest/TechnicalIntroduction.html#deep-data-special-purpose-channels-and-reserved-channel-names
2024-04-08 09:54:53
(with the following note: “If a part contains RA, GA and/or BA channels, it must not also contain an A channel.”)
_wb_
2024-04-08 09:57:15
For a single layer image, we could easily just have a convention that if there are 3 alpha channels, they correspond respectively to RA, GA and BA. For multi-layer, we currently don't have any way in the spec to do alpha blending (of frames or patches) with 3 alpha channels instead of 1. Should we add an extension for that?
Quackdoc
2024-04-08 10:39:18
it sounds niche, but its actually pretty important, say you are rendering/simulating a lens that filters out red light. you could do (RA GA BA) (0,100 100,0 100,0) or something like that, I think I got that right. its uber late
2024-04-08 10:39:52
well its more like 0,90 or something
_wb_
2024-04-08 12:40:44
We also have other blend modes in jxl, e.g. you could have a kMul layer with color (0.9 0 0)...
lonjil
2024-04-08 12:55:46
that seems like a pretty sensible way of doing it
2024-04-08 12:57:17
So you'd have a background layer, a kMul RGB layer, and then a kAdd RGB layer.
niutech
gb82 Do you guys know if there is a compressed vector-based image format like SVG?
2024-04-10 04:23:33
Yes, there is https://github.com/wwww-wwww/spline and the article: https://grass.moe/splines/
2024-04-10 04:26:26
I've made an SVG2JXL test some time ago: https://discord.com/channels/794206087879852103/824000991891554375/968503089663442944
gb82
niutech I've made an SVG2JXL test some time ago: https://discord.com/channels/794206087879852103/824000991891554375/968503089663442944
2024-04-10 04:42:30
it doesn't translate perfectly though, at least currently
w
2024-04-10 05:29:28
it will never translate perfectly
2024-04-10 05:29:44
jxl splines are too weak
yoochan
2024-04-10 08:24:07
Weak? Is it a mathematical term?
_wb_
2024-04-10 08:24:09
I wouldn't say they are weak, jxl splines can do things you cannot do in SVG, but you can also do things in SVG that cannot be done with jxl splines. In particular jxl has no notion of filled shapes.
niutech
2024-04-11 09:44:47
You can approximate filled shapes by drawing thick splines from the center of a shape to its edge, but it's not very accurate. Also JXL splines aren't as sharp as SVG paths. But they are really compact in terms of file size for complicated paths.
Demiurge
DZgas Ж quite recently (a couple of months ago) I abandoned png for large images, and now I use jpeg yuv420 q100 (not loseless) in order to give away some of my work. I'm only doing this because it decodes quickly, and takes up less memory than all other formats (I was shocked by the speed of jpeg decoding in chrome, and how much RAM it takes up. it spends 6 times less memory, unlike for example xnview, probably because of some special way of store the decoded image, Not with pure pixels)
2024-04-11 04:32:56
Yuv420 is less pixels so obviously it's faster to decode, but you're blurring the color channels
Kremzli How is "mp3 superior to opus"?
2024-04-11 04:34:19
Harpsichord music last I checked sounds like ass with opiss
2024-04-11 04:36:48
And yeah jxl is a raster format, splines are not meant for vector graphics, they're meant for being subtracted from an image during preprocessing phase to improve the efficiency of DCT
2024-04-11 04:37:05
Just stick to brotli compressed SVG
2024-04-11 04:37:21
It's perfectly fine to have .svg.br
2024-04-11 04:37:44
There's no law against it
DZgas Ж
Demiurge Yuv420 is less pixels so obviously it's faster to decode, but you're blurring the color channels
2024-04-11 05:52:26
blurring is a decoding problem. It's not inside the image.
2024-04-11 05:53:46
I writed my own RGB to YUV420 for this, in pure python
Demiurge
2024-04-11 11:16:35
Yeah, it is inside the image. If you convert to 420, you are throwing away a whole bunch of pixels, shrinking the image, which is essentially blurring it.
2024-04-11 11:17:12
Smaller images are faster to encode and decode of course but it's severely destroying the fidelity of the image
2024-04-11 11:18:22
Lossless cjxl at effort=1 is ludicrous speed. And smaller than PNG. Try that
2024-04-11 11:19:09
No need to mangle the image when you could just use a faster encoder. :)
2024-04-11 11:20:47
Also when you use low effort settings it decodes faster too.
2024-04-11 11:28:13
Effort=3 or less is very very fast
spider-mario
2024-04-14 06:26:05
Normal (associated)
2024-04-14 06:26:30
well, we know where the authors of PTGui stand
lonjil
2024-04-14 07:48:11
lol
LMP88959
2024-04-15 02:43:13
Hi are there any other discord servers that discuss image/video compression? I really had a hard time finding anything
_wb_
2024-04-15 07:44:45
https://discord.gg/AfhGNDpM
2024-04-15 07:45:02
https://discord.gg/ZvtV6wya
damian101
2024-04-15 08:00:13
https://discord.gg/HhCtDUDbgm
2024-04-15 08:00:35
https://discord.gg/hSrjUCMncC
2024-04-15 08:01:54
https://discord.gg/P2ZQSuGbkF
LMP88959
2024-04-15 11:52:04
Thank you both so much
_wb_
2024-04-15 12:38:05
TIL that ImageMagick `convert input.png -quality N output.jp2` does not do what I assumed it would do
2024-04-15 12:39:11
in particular, `N`is not on a scale from 0 to 100 similar to that of its jpeg or webp encoding
2024-04-15 12:39:32
but it is expressed as a target PSNR score
2024-04-15 12:40:08
i.e. if you give it any value above 50, it's extremely high quality
LMP88959
2024-04-15 12:41:22
Oh i ran into that problem a few months ago but i didnt look into it to see why the scale was so different
_wb_
2024-04-15 12:42:01
this behavior is pretty unintuitive and has caused me some head scratching before I figured out what was going on with that scale
LMP88959
2024-04-15 12:43:09
Yeah it is very unintuitive, im not terribly familiar with j2k but does its quantizer not map to 0-100 trivially? I cant think of a reason why they would make it like this otherwise
_wb_
2024-04-15 12:44:01
ImageMagick is funny in that way, its `-quality` parameter can mean quite weird things (e.g. when encoding PNG, you can configure some libpng effort settings using that option)
LMP88959
2024-04-15 12:46:24
Im curious how they target PSNR
_wb_
2024-04-15 12:47:09
No image format maps to a 0-100 scale trivially, you always need to do some kind of translation from a user-facing quality scale to internal encoding parameters. And you can never perfectly align scales between different encoders/codecs, you can align them according to a metric but even then you'll only get corpus-level alignment, not image-level alignment (and no metric correlates perfectly with actual image quality).
LMP88959
2024-04-15 12:50:31
But why choose a wildly different parameter to begin with
2024-04-15 12:51:13
Like you said given the HVS, PSNR essentially caps at ~50
2024-04-15 12:51:20
For visually lossless
2024-04-15 12:51:46
And anything under 30 or 25 is very undesirable
2024-04-15 12:52:04
Weird to pick that as the quality parameter
fab
2024-04-15 12:52:47
I'm only in that as is video focused and not media, Android and seasonal. And the admin is serious intelligent. The best information Ive found is that on jxl Discord "
_wb_
2024-04-15 12:54:03
Targetting PSNR is not that hard, since PSNR is such a simplistic metric. Essentially PSNR is just directly related to quantization (coarser quantization -> lower PSNR).
LMP88959
2024-04-15 12:54:55
True, a lookup table could be used to map it
_wb_
2024-04-15 12:55:45
the error introduced by quantizing pixel samples in 8-bit corresponds to PSNR 54
LMP88959
2024-04-15 12:55:46
I had some per code block or coefficient control loop in my head for some reason
_wb_ the error introduced by quantizing pixel samples in 8-bit corresponds to PSNR 54
2024-04-15 12:56:04
Oh interesting I didnt know that
_wb_
2024-04-15 01:00:20
PSNR is defined as 10 * log_10(1 / MSE), if the mean square error is computed with sample values on a 0..1 scale
2024-04-15 01:01:43
8-bit quantization introduces a quantization error of 0.5/255 on average, so that's PSNR 54
2024-04-15 01:02:23
or wait, the quantization error is I guess only 0.25/255 on average (it's 0.5 in the worst case, if you round to the nearest 8-bit integer)
LMP88959
2024-04-15 01:04:24
So for j2k you'd need to know how much the quantization of each subband will effect the PSNR of a decoded pixel?
2024-04-15 01:04:37
Or am I really overthinking this
_wb_
2024-04-15 01:07:53
PSNR 54 is the quantization error of using 8-bit samples, it's 10 * log_10(255 * 255 / 0.25)
LMP88959 So for j2k you'd need to know how much the quantization of each subband will effect the PSNR of a decoded pixel?
2024-04-15 01:10:38
yes, something like that, but iirc in j2k the encoder can just truncate the coefficients at exactly the spot it wants to achieve a given bitrate or PSNR, so it can easily achieve almost exact bitrate or PSNR targets
2024-04-15 01:11:17
(unfortunately, for human-consumed lossy image compression, you don't really care about bitrate nor PSNR but you care about perceptual quality)
LMP88959
2024-04-15 01:11:24
Ohhh right it has that progressive aspect
_wb_ (unfortunately, for human-consumed lossy image compression, you don't really care about bitrate nor PSNR but you care about perceptual quality)
2024-04-15 01:15:19
Yeah... I'm relatively new to this field (about 2.5 years so far) as a hobbyist so I've been slowly learning and realizing these things. The lack of one all encompassing good metric to capture perceived quality seems a huge obstacle for more effective codec development
_wb_
2024-04-15 01:26:21
Progress has been made with Butteraugli and SSIMULACRA 2, but it's still not a solved problem
2024-04-15 01:28:25
I took the initiative a while back to revive the JPEG AIC adhoc group (Assessment of Image Coding), I hope AIC-3 will help to get better subjective ground truth datasets (https://jpeg.org/aic/aic3.html) and then AIC-4 will hopefully result in better metrics
LMP88959
2024-04-15 01:28:27
Oh yeah I've heard of Butteraugli, haven't heard of SSIMULACRA 2 but I am familiar with SSIM
_wb_ I took the initiative a while back to revive the JPEG AIC adhoc group (Assessment of Image Coding), I hope AIC-3 will help to get better subjective ground truth datasets (https://jpeg.org/aic/aic3.html) and then AIC-4 will hopefully result in better metrics
2024-04-15 01:29:06
Sweet, how long have you been in this field?
_wb_
2024-04-15 01:29:25
SSIMULACRA 2: https://github.com/cloudinary/ssimulacra2
LMP88959 Sweet, how long have you been in this field?
2024-04-15 01:30:31
I started playing with image compression when I started what would become FLIF in 2010 or so; professionally I'm in the field since 2016
2024-04-15 01:30:55
I go to JPEG meetings since 2018
LMP88959
2024-04-15 01:32:21
Oh no way! That's awesome, nice to meet you
2024-04-15 01:33:46
Have you gotten into video compression or is image compression your preferred field?
_wb_
2024-04-15 01:36:05
I only do image compression, though of course I sometimes do discuss video stuff with my colleagues who do video
LMP88959
2024-04-15 01:36:30
👌 Fantastic
fab
2024-04-15 02:34:17
I rebalanced the presets hope it wouldn't be damaging to the codec
2024-04-15 02:39:46
The thing is that doing those things is a bad way to speed up jxl interframe patches
2024-04-15 02:40:05
And copied and probably you could have a patent strike
w
2024-04-15 09:24:06
@jpeggers is min_DCT_h_scaled_size always smaller than min_DCT_v_scaled_size?
2024-04-15 09:26:12
<https://github.com/libjpeg-turbo/libjpeg-turbo/blob/main/jpegapicomp.h#L17> make it looks like it is but intuitively I can't tell
2024-04-15 09:28:19
likewise, what even is scaled DCT in jpeg
DZgas Ж
2024-04-16 04:42:10
can someone tell me what the fuck is written here if *-pass 1* in ffmpeg creates an empty .log file. And *-svtav1-params pass=1* does not create any file anywhere at all
2024-04-16 04:50:11
Maybe I'm stupid and don't understand simple things. ~~but pass 2 for svt-av1 is not implemented for ffmpeg. It just doesn't work.~~ in fact, I remember doing this a year ago, or 2 years ago, the neurons in my brain remember that it workS, I'm trying to remember why
2024-04-16 04:53:20
I definitely remember that this is some kind of stupid bug. Just facing the fact that IT doesn't work ```./ffmpeg -i IN.mkv -c:a libopus -c:v libsvtav1 -b:v 650k -pass 1 -preset 12 OUT.mkv```
2024-04-16 04:54:12
and IT doesn't work ```./ffmpeg -i IN.mkv -c:a libopus -c:v libsvtav1 -b:v 650k -preset 12 -svtav1-params pass=1 OUT.mkv```
2024-04-16 05:07:16
I remembered a bug related to AOM - if you create a video with an audio track when creating pass 1, the pass.log file becomes empty. But this is about libaom-av1 - it has nothing to do with svt-av1, it doesn't work that way. parameters -svtav1-params pass=1 does start the Pass 1 creation mode --- BUT it does not create a file, Nothing. At the same time, according to the manual https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/Parameters.md#multi-pass-options I can set the output file ||no||
2024-04-16 05:11:33
great (but there was no answer there either)
afed
2024-04-16 05:12:08
yeah, not all encoders work with multi-passes through ffmpeg, so needs piping at least also 2-pass for svt-av1 is pretty bad, all modes except crf have much worse efficiency
DZgas Ж
2024-04-16 05:13:35
It seems that I writed this
afed yeah, not all encoders work with multi-passes through ffmpeg, so needs piping at least also 2-pass for svt-av1 is pretty bad, all modes except crf have much worse efficiency
2024-04-16 05:16:21
The problem is. That the developers' github says that it works "we did it." But it doesn't work. (at startup, it writes that it has switched to a special mode. it is FAST (2 times faster than preset 12)) BUT nowhere is there out or anything at all
afed
2024-04-16 05:16:56
for example, something like this for windows should work ```ffmpeg -i xx -an -f yuv4mpegpipe -strict -1 - | SvtAv1EncApp --rc 1 --pass 1 --preset x --tbr xxx -b NUL -i stdin ffmpeg -i xx -an -f yuv4mpegpipe -strict -1 - | SvtAv1EncApp --rc 1 --pass 2 --preset x --tbr xxx -b "xx.ivf" -i stdin```
DZgas Ж
afed for example, something like this for windows should work ```ffmpeg -i xx -an -f yuv4mpegpipe -strict -1 - | SvtAv1EncApp --rc 1 --pass 1 --preset x --tbr xxx -b NUL -i stdin ffmpeg -i xx -an -f yuv4mpegpipe -strict -1 - | SvtAv1EncApp --rc 1 --pass 2 --preset x --tbr xxx -b "xx.ivf" -i stdin```
2024-04-16 05:18:14
1. I have linux 2. for what reason should I use an external svt and not the one in ffmpeg. You solve the task but you don't solve the problem
afed
2024-04-16 05:20:26
for linux it's something similar, just `null` and maybe some other changes because svt-av1 devs don't really care about ffmpeg except for single pass modes and basic options
DZgas Ж
afed for linux it's something similar, just `null` and maybe some other changes because svt-av1 devs don't really care about ffmpeg except for single pass modes and basic options
2024-04-16 05:21:38
It doesn't matter. this does not solve the problem.... I'll have to create a thread on 4ch, oh, how I didn't want to go there.
afed
2024-04-16 05:40:34
if i am not confused i used to do 3-passes purely through ffmpeg for 2-passes I only used piping (after it was changed), it works, but again 2-passes for svt-av1 are bad (half of the settings and tunes doesn't work), it exists but much less efficient, the other rc modes are just there on paper but basically useless, have a lot of issues and it won't be fixed anytime soon if at all 2-pass is only useful for 2-pass crf btw, about the other topic, vb has been finally merged recently <:Hypers:808826266060193874> https://gitlab.com/AOMediaCodec/SVT-AV1/-/merge_requests/2195
DZgas Ж
afed if i am not confused i used to do 3-passes purely through ffmpeg for 2-passes I only used piping (after it was changed), it works, but again 2-passes for svt-av1 are bad (half of the settings and tunes doesn't work), it exists but much less efficient, the other rc modes are just there on paper but basically useless, have a lot of issues and it won't be fixed anytime soon if at all 2-pass is only useful for 2-pass crf btw, about the other topic, vb has been finally merged recently <:Hypers:808826266060193874> https://gitlab.com/AOMediaCodec/SVT-AV1/-/merge_requests/2195
2024-04-16 05:46:18
Don't say that. because it makes av1 unusable for me at all
afed if i am not confused i used to do 3-passes purely through ffmpeg for 2-passes I only used piping (after it was changed), it works, but again 2-passes for svt-av1 are bad (half of the settings and tunes doesn't work), it exists but much less efficient, the other rc modes are just there on paper but basically useless, have a lot of issues and it won't be fixed anytime soon if at all 2-pass is only useful for 2-pass crf btw, about the other topic, vb has been finally merged recently <:Hypers:808826266060193874> https://gitlab.com/AOMediaCodec/SVT-AV1/-/merge_requests/2195
2024-04-16 05:48:05
I encode with a size limit that cannot be exceeded. if pass 2 cannot give me a CRF according to the pre-calculated video data, this means that I will need to do 2-3 passes of full preset 13 encoding to understand which crf will fit into the specified size
afed
2024-04-16 05:57:08
svt-av1's rc is also bad, constantly overshooting or undershooting bitrate and max limits, even with some additional settings i have a lot of issues with that, when i tried to use svt-av1 for streaming for crf, probably some old methods with shorter sample encoding like it was used for x264 might work, but it really depends on the content and it's mostly svt-av1 issues, other encoders have much better rc
DZgas Ж
2024-04-16 06:05:41
https://boards.4chan.org/g/thread/100031812
2024-04-16 06:06:14
Maybe someone will answer at least there
w
2024-04-16 06:08:53
ninibros...
DZgas Ж
w ninibros...
2024-04-16 06:10:39
?
2024-04-16 06:42:51
<@1034873369314730065>2-pass crf has never exist
2024-04-16 06:43:20
anywhere
LMP88959
2024-04-16 06:48:07
^ this. crf is not trying to optimize for anything so it doesnt make sense to do more than one pass
afed
DZgas Ж anywhere
2024-04-16 06:51:31
it's almost useless for x264, somewhat useful for x265 but svt-av1 works differently, stats and analysis from the first passes are used and helps for better rc for next passes
DZgas Ж
2024-04-16 06:52:59
this still does not solve the problem that I need to compress the file to the size limit
2024-04-16 06:55:27
The question for specialists: is whether there is any software to determine the** information complexity** of the video in advance?
2024-04-16 06:58:46
it looks like I AM will have to do full compression based on x264 ultrafast. create a video difficulty table based on the output. make a table of the recommended CRF for SVT-AV1 that will correspond to the size of the video in 1 hour of encoding with this complexity
2024-04-16 06:58:59
<:kekw:808717074305122316> gread shit
afed
2024-04-16 07:05:03
yeah, but it's not about solving that problem, just that multipass crf for svt-av1 is not useless for encoding to exact size, piping works as i said, if needed a pure ffmpeg solution then not sure if it still works it's a ffmpeg implementation problem, but in general 2-passes work for svt-av1 for complexity, yeah this is pretty widely used and such metrics exist, but mostly proprietary solution, also fast first encoding as assistance for next encodings is also widely used
DZgas Ж
DZgas Ж it looks like I AM will have to do full compression based on x264 ultrafast. create a video difficulty table based on the output. make a table of the recommended CRF for SVT-AV1 that will correspond to the size of the video in 1 hour of encoding with this complexity
2024-04-16 07:07:29
Okay. I'll have to do AOMENC tests before I fit into this shit
2024-04-16 07:10:41
<:AV1:805851461774475316> There is a very big problem. parallelizability. In general, it can be solved if you divide the file into 2 parts, encode, and then stitch it into one but it is impossible to do proportional two-pass encoding in this way, one of the parts will always have much more bitrate than necessary
afed
afed yeah, but it's not about solving that problem, just that multipass crf for svt-av1 is not useless for encoding to exact size, piping works as i said, if needed a pure ffmpeg solution then not sure if it still works it's a ffmpeg implementation problem, but in general 2-passes work for svt-av1 for complexity, yeah this is pretty widely used and such metrics exist, but mostly proprietary solution, also fast first encoding as assistance for next encodings is also widely used
2024-04-16 07:12:29
even for svt-av1
2024-04-16 07:13:01
or even with a mix of different encoders including hw for first pass cvh
DZgas Ж
2024-04-16 07:14:39
hah
2024-04-16 07:31:34
Fun... AOMENC follows the documentation so rigidly that instead of the documentation of the encoder, you can read the documentation of the codec
fab
2024-04-16 07:33:31
Dzgas what about avm ottverse
2024-04-16 07:33:56
I contributed on it this afternoon do you think they accepted something
DZgas Ж
2024-04-16 07:35:44
<:This:805404376658739230> <:monkaMega:809252622900789269>
fab
2024-04-16 08:16:42
2024-04-16 08:16:57
I'm still trying hopefylly Zoe Liu
2024-04-16 11:44:45
2024-04-16 11:44:56
Jxl d15
2024-04-16 11:45:07
I corrected grammar
DZgas Ж
2024-04-17 01:47:31
lie
2024-04-17 01:49:12
https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/Parameters.md from the table of all parameters, **[libsvtav1] Error parsing option** - 90% of all
Quackdoc
2024-04-17 02:09:10
how are you entering them?
DZgas Ж
2024-04-17 02:17:43
the code in which each parameter that can be configured - was written by someone, BUT was not added to ffmpeg https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2021-July/281971.html
2024-04-17 02:18:09
😕
Quackdoc
2024-04-17 02:19:18
what version are you running? svtav1-params has been in for a while
DZgas Ж
2024-04-17 02:21:22
an extremely stripped-down version. with a couple of parameters, it was added a year later, after the code that I send above. And so
Quackdoc what version are you running? svtav1-params has been in for a while
2024-04-17 02:22:21
no, not use, absolute fuckin zero can be use
2024-04-17 02:22:53
it's just not written in ffmpeg/libavcodec/libsvtav1.c
Quackdoc
2024-04-17 02:24:15
working perfectly fine for me [akkoshrug](https://cdn.discordapp.com/emojis/854355719109345280.webp?size=48&quality=lossless&name=akkoshrug)
DZgas Ж
2024-04-17 02:24:52
<:BanHammer:805396864639565834>
Quackdoc
2024-04-17 02:25:32
what is your cmdline?
DZgas Ж
Quackdoc what is your cmdline?
2024-04-17 02:26:39
Are you seriously asking ?
Quackdoc
2024-04-17 02:26:56
yes
2024-04-17 02:27:52
Im on ffmpeg 6.1.1-7 and it's working fine for me
2024-04-17 02:28:38
also ffmpeg should say the config too, but if you have libsvtav1 it should be there regardless so im not sure why
DZgas Ж
Quackdoc yes
2024-04-17 02:28:48
No Do ```./ffmpeg -i IN.mkv -an -c:v libsvtav1 -preset 12 -svtav1-params scm=1:sg_filter_mode=1 OUT.mkv``` whitout *[libsvtav1] Error parsing option sg_filter_mode: 1.*
2024-04-17 02:29:07
of sg-filter-mode=1
2024-04-17 02:29:20
It doesn't matter, it's not implemented.
Quackdoc
2024-04-17 02:31:09
my svtav1 doesnt even have an sg filter mode
2024-04-17 02:31:11
[Hmm](https://cdn.discordapp.com/emojis/1113499891314991275.webp?size=48&quality=lossless&name=Hmm)
2024-04-17 02:32:12
isnt that quite old?
afed
2024-04-17 02:35:06
yeah, seems to be some deprecated option, but `-svtav1-params` works fine, been using for years without any problems
Quackdoc
2024-04-17 02:35:33
at the very least, the string isn't found in svtav1's docs
2024-04-17 02:43:39
well considering how trash gitlab's UI is, I can't say for sure when it was removed, but it was removed a very long time ago at least
DZgas Ж
Quackdoc my svtav1 doesnt even have an sg filter mode
2024-04-17 12:24:56
https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/CommonQuestions.md bruh
2024-04-17 12:25:17
on with preset 1-4
2024-04-17 12:26:29
it strongly eliminates the incorrect movement of blocks. I would like to include it for the gameplay of The Witness (game) - on the parameter encoding preset 8 - it would be much better. instead of encoding everything in preset 4
2024-04-17 12:27:11
<:PepeHands:808829977608323112> 'll have to learn piping
Quackdoc
2024-04-17 01:51:09
im pretty sure thats hard coded isn't it?
DZgas Ж
Quackdoc im pretty sure thats hard coded isn't it?
2024-04-18 12:26:08
I don't like it when make thing out like: it works if you work on it, and so we don't care about it.
Quackdoc
DZgas Ж I don't like it when make thing out like: it works if you work on it, and so we don't care about it.
2024-04-18 03:00:54
you can always make a ticket on the svtav1 gitlab asking why its not configurable now
DZgas Ж
Quackdoc you can always make a ticket on the svtav1 gitlab asking why its not configurable now
2024-04-18 03:15:49
the problem is that this is a very bad situation. because ffmpeg & svtav1 does not work together — which of them is to blame?
DZgas Ж the code in which each parameter that can be configured - was written by someone, BUT was not added to ffmpeg https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2021-July/281971.html
2024-04-18 03:16:13
and look this
afed
2024-04-18 03:16:43
there are a lot of non-configurable params that existed in some of the first versions, now it's just "optimally" distributed by presets and groups and it's like this is enough for the typical user <https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Source/Lib/Encoder/Codec/EncModeConfig.c>
DZgas Ж
DZgas Ж the code in which each parameter that can be configured - was written by someone, BUT was not added to ffmpeg https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2021-July/281971.html
2024-04-18 03:16:48
the complete solution made 3 years ago has not been added to ffmpeg
afed there are a lot of non-configurable params that existed in some of the first versions, now it's just "optimally" distributed by presets and groups and it's like this is enough for the typical user <https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Source/Lib/Encoder/Codec/EncModeConfig.c>
2024-04-18 03:19:35
But in pure svt av1 — you can
Quackdoc
DZgas Ж But in pure svt av1 — you can
2024-04-18 03:21:31
how old is your build?
afed
DZgas Ж But in pure svt av1 — you can
2024-04-18 03:21:52
from which version are these parameters?
DZgas Ж
2024-04-18 03:23:00
I will study piping tomorrow <:NotLikeThis:805132742819053610>in fact, I set myself a big task, to choose the parameters that are most suitable for very fast encoding for games. after making observations for 2 weeks on all preset, I found out which ones specifically params can be turned off so that they do not take up the load
Quackdoc how old is your build?
2024-04-18 03:23:15
master <:WTF:805391680538148936>
Quackdoc
2024-04-18 03:23:41
it shouldn't be in it, if you are getting it shown as an output thats a bug
DZgas Ж
afed from which version are these parameters?
2024-04-18 03:24:09
Are you saying that no more exist? I don't actually have svt, this is the print I found on the internet.
Quackdoc
2024-04-18 03:24:24
thats what we have been saying for a while
afed
DZgas Ж Are you saying that no more exist? I don't actually have svt, this is the print I found on the internet.
2024-04-18 03:25:08
DZgas Ж Are you saying that no more exist? I don't actually have svt, this is the print I found on the internet.
2024-04-18 03:26:21
it's like some old or even pre-release versions that are 4-5 years old or something like that
DZgas Ж
2024-04-18 03:27:10
Meh. Let me handle this.. after 30 hours, I'm busy right now
2024-04-18 03:27:17
<:AV1:805851461774475316>
2024-04-18 03:29:08
https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/CommonQuestions.md
afed
2024-04-18 03:29:09
and also ffmpeg works perfectly fine with svt-av1, with existing settings in current versions maybe just a few specific ones doesn't work
DZgas Ж
afed and also ffmpeg works perfectly fine with svt-av1, with existing settings in current versions maybe just a few specific ones doesn't work
2024-04-18 03:30:51
Not. it is impossible to use it due to the lack of a filter specifying the block shift and its separation. what makes the shaking of large blocks when moving at crf 50+ quality is completely removed only at preset 4 (1-4)
2024-04-18 03:31:02
👉 bullshit
2024-04-18 03:33:24
but to be honest, to compress the gameplay of aomenc — games is surprisingly full of bullshit. and rav1e is still a joke.
afed
2024-04-18 03:34:09
i'm just saying that the settings and encoding works, but not about quality
DZgas Ж
2024-04-18 03:34:36
The absolute truth is that SVT—AV1 is better than AOMENC for game recording.
afed i'm just saying that the settings and encoding works, but not about quality
2024-04-18 03:35:23
It is not settings, if cannot be configured, this is 1984
afed
2024-04-18 03:38:53
because it's a pre-release version, same thing for like a research aom build or current avm, with like 2800 different settings but when it's released, most of them will be non configurable
2024-04-18 03:43:58
and most settings are not needed for normal people and encoding, but some are that's why forks exist that add back some settings or change some logic
DZgas Ж
afed because it's a pre-release version, same thing for like a research aom build or current avm, with like 2800 different settings but when it's released, most of them will be non configurable
2024-04-18 03:46:34
it would be funny to know that this is all done so as not to debug their variations ||(not to work)||
2024-04-19 07:03:56
Oh
afed and most settings are not needed for normal people and encoding, but some are that's why forks exist that add back some settings or change some logic
2024-04-19 07:04:10
Forks LULE
2024-04-19 08:56:15
<:monkaMega:809252622900789269>
DZgas Ж Forks LULE
2024-04-19 08:59:06
piping works like shit, and compiling a whole ffmpeg with a fork of svt-av1-psy (that is, just an classic script will not work) - no
2024-04-19 09:01:20
I can't figure out this damn thing - how ```-svtav1-params enable-cdef=0``` CAN work if it's just not in the ffmpeg sources. only AOM has it
2024-04-19 09:11:43
ok svtav1 can accept some parameters that can
2024-04-19 09:12:21
https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Source/App/EncApp/EbAppConfig.c#L153
2024-04-19 09:21:45
yep, other hardcoded
2024-04-19 09:23:13
"just use preset 3"
2024-04-19 09:42:49
It's only by rummaging through the source code that I find out about functions that aren't even documented anywhere. but which, unlike those functions described in https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/CommonQuestions.md -- They ahaha work in ffmpeg original <:kekw:808717074305122316>
2024-04-19 09:43:34
As I understand it, I will be simple for the next 2 hours... although you know, this is a job for gemini 1.5
2024-04-19 10:10:23
I did it. This is a list of all the parameters that can be used in ffmpeg -svtav1-params (generated by Google Gemini based on the source code)
2024-04-19 10:12:07
👆 if someone knows devs, tell them that, in fact, the parameters that can be applied should be documented.
fab
2024-04-19 10:47:31
<@703028154431832094>
DZgas Ж
2024-04-19 05:19:28
gb82
DZgas Ж It's only by rummaging through the source code that I find out about functions that aren't even documented anywhere. but which, unlike those functions described in https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/CommonQuestions.md -- They ahaha work in ffmpeg original <:kekw:808717074305122316>
2024-04-19 05:23:13
But you can confirm these options actually *do* something, right?
DZgas Ж
DZgas Ж
2024-04-19 05:24:35
variance-boost-strength -- solved all my problems. it was added 3 days ago. the issue is closed.
gb82
2024-04-19 05:25:14
It has been in SVT-AV1-PSY for a very long time now, if you want to check out our fork
afed
2024-04-19 05:25:27
just `SvtAv1EncApp --help` will give all the settings that should work almost, a few very specific ones doesn't work through ffmpeg
DZgas Ж
DZgas Ж piping works like shit, and compiling a whole ffmpeg with a fork of svt-av1-psy (that is, just an classic script will not work) - no
2024-04-19 05:25:27
.
DZgas Ж I did it. This is a list of all the parameters that can be used in ffmpeg -svtav1-params (generated by Google Gemini based on the source code)
2024-04-19 05:27:04
I've checked all the functions, here are the ones that do something or are useful
gb82
DZgas Ж piping works like shit, and compiling a whole ffmpeg with a fork of svt-av1-psy (that is, just an classic script will not work) - no
2024-04-19 05:27:40
I don't think it is that hard ... Also most people use Av1an anyway
DZgas Ж
2024-04-19 05:27:55
I saw that enable-qm is generally a useless thing that does smoothing instead of noise. what is not suitable for my crf 50-60
gb82
2024-04-19 05:28:48
I disagree
2024-04-19 05:28:55
At least for PSY
DZgas Ж
2024-04-19 05:28:59
enable-restoration has the same problem
afed
2024-04-19 05:29:02
just need `qm-min`/`qm-max` adjustment
DZgas Ж
2024-04-19 05:29:12
don't use its for gameplay of GAMES
gb82
2024-04-19 05:29:21
Ah wait you're DZgas, there is no reasoning with you. Good luck out there <:KekDog:805390049033191445>
DZgas Ж
gb82 I disagree
2024-04-19 05:30:42
Well, tell me the arguments or what? Don't you agree? Well, and will you do weight for your opinion?
afed just need `qm-min`/`qm-max` adjustment
2024-04-19 05:32:22
low parameters do more information on low frequencies, parameters 15 = filter off
afed
afed just need `qm-min`/`qm-max` adjustment
2024-04-19 05:32:29
`enable-qm` is useful, for any bitrate and any content, with some tuning, for gameplay also, I have a lot of gameplay recordings
gb82
2024-04-19 05:32:32
All I'll say is that default SVT-AV1 is tuned around faulty metrics & flawed testing methodology. SVT-AV1-PSY is not just "add back some settings or change some logic," it is a total rework of the encoder. so until you start using PSY, it isn't worth discussing this
DZgas Ж
afed `enable-qm` is useful, for any bitrate and any content, with some tuning, for gameplay also, I have a lot of gameplay recordings
2024-04-19 05:33:36
instead of turning it on at 1080p. I'd rather turn it off and use 720p.
afed
DZgas Ж instead of turning it on at 1080p. I'd rather turn it off and use 720p.
2024-04-19 05:41:32
maybe there are some cases if encode something like that old examples like already low quality source from twitch to even lower quality but in most cases qm is useful, even for that, it can be worse on some static frames, but better on normal viewing, especially with some tuning for that content
2024-04-19 05:51:33
and yeah, it's much easier with svt-av1-psy, even with default settings it will be much better than vanilla but, additionally has more freedom to tweak things, even for blockiness issues, like: `--enable-dlf 2 --qp-scale-compress-strength 2/3` maybe `--sharpness 2`, `--tune 3` etc piping is not that hard, it's almost the same, same encoding speed, the only difference is that there is no auto-muxing for audio and other tracks, which would require some extra effort without using av1an or some gui or custom scripts
DZgas Ж
afed maybe there are some cases if encode something like that old examples like already low quality source from twitch to even lower quality but in most cases qm is useful, even for that, it can be worse on some static frames, but better on normal viewing, especially with some tuning for that content
2024-04-19 05:56:33
DZgas Ж variance-boost-strength -- solved all my problems. it was added 3 days ago. the issue is closed.
2024-04-19 05:57:01
.
2024-04-19 05:57:33
I don't have any more problems.
2024-04-19 05:58:16
even at preset 12
afed
afed and yeah, it's much easier with svt-av1-psy, even with default settings it will be much better than vanilla but, additionally has more freedom to tweak things, even for blockiness issues, like: `--enable-dlf 2 --qp-scale-compress-strength 2/3` maybe `--sharpness 2`, `--tune 3` etc piping is not that hard, it's almost the same, same encoding speed, the only difference is that there is no auto-muxing for audio and other tracks, which would require some extra effort without using av1an or some gui or custom scripts
2024-04-19 06:01:53
`Tune 3` has a weaker tf, which can also help against blockiness and blurriness, without some efficiency loss as with completely disabled tf, also has Luma Bias in the test branch
DZgas Ж I don't have any more problems.
2024-04-19 06:02:03
on this example, maybe, but other issues are still there in vanilla version and vb also came from svt-av1-psy
DZgas Ж I've checked all the functions, here are the ones that do something or are useful
2024-04-19 06:12:23
also, very weird defaults ```enable-qm | ENABLE_QM_TOKEN | 0: off, 1: on (default) fast-decode | FAST_DECODE_TOKEN | 0: off, 1: on (default)``` because ``` --fast-decode Fast Decoder levels, default is 0 [0-1] --enable-qm Enable quantisation matrices, default is 0 [0-1]``` for vanilla svt-av1
DZgas Ж
2024-04-19 06:13:33
gemini problem.
2024-04-19 06:13:46
and cdef params
afed
2024-04-19 06:15:29
yeah, using ai for better settings or figuring options, even in sources, is not a good idea
DZgas Ж
afed yeah, using ai for better settings or figuring options, even in sources, is not a good idea
2024-04-19 06:22:05
Yes. developers should do this.
afed
2024-04-19 06:22:50
`SvtAv1EncApp --help`
Quackdoc
afed `SvtAv1EncApp --help`
2024-04-19 06:31:43
too hard
afed yeah, using ai for better settings or figuring options, even in sources, is not a good idea
2024-04-19 06:32:05
this is such a massive understatment its absurd
2024-04-19 06:32:19
anyone who relies on any LLM for this stuff now, or any time in the near future is an idiot
DZgas Ж
2024-04-19 06:32:37
🙄
Quackdoc anyone who relies on any LLM for this stuff now, or any time in the near future is an idiot
2024-04-19 06:33:04
Don't worry, you won't have a job soon.
Quackdoc
2024-04-19 06:33:34
LLMs can't even do basic math questions and you're asking it to be reliable for this. That's just dumb.
afed
afed `SvtAv1EncApp --help`
2024-04-19 06:33:58
and ffmpeg never had all the advanced settings in the encoder help, same for x264/x265, aom and other encoders, there are only basic ones x264 once tried to port most of the settings in ffmpeg arguments, but it's still not all other encoders mostly didn't even try it the same about docs from devs, most are outdated or incomplete, `help` from external encoders is the most updated and relevant
DZgas Ж
Quackdoc LLMs can't even do basic math questions and you're asking it to be reliable for this. That's just dumb.
2024-04-19 06:34:04
can.
Quackdoc
2024-04-19 06:35:08
https://tenor.com/view/laughing-hard-lol-lmao-oh-wait-youre-serious-let-me-laugh-even-harder-gif-16553942
gb82
DZgas Ж Don't worry, you won't have a job soon.
2024-04-19 06:35:33
<:KekDog:805390049033191445> I can tell you that you certainly won't
Quackdoc
2024-04-19 06:36:03
Testing copilot for boilerplate generation was one of the biggest eye openers i've had
DZgas Ж
Quackdoc LLMs can't even do basic math questions and you're asking it to be reliable for this. That's just dumb.
2024-04-19 06:36:05
obviously, you didn't understand this topic at all. although 2 days ago, together with a friend, I merged neural networks that were selected according to my tests, creating the most brutal and uncensored neural network - it's fun. https://huggingface.co/DZgas/GIGABATEMAN-7B but <#806898911091753051>
Quackdoc
DZgas Ж obviously, you didn't understand this topic at all. although 2 days ago, together with a friend, I merged neural networks that were selected according to my tests, creating the most brutal and uncensored neural network - it's fun. https://huggingface.co/DZgas/GIGABATEMAN-7B but <#806898911091753051>
2024-04-19 06:36:18
I understand it crystal clear
2024-04-19 06:36:22
i've done immense testing
2024-04-19 06:36:24
they are shit
2024-04-19 06:36:42
Especially code related AI
DZgas Ж
2024-04-19 06:36:51
You don't have enthusiasm. do that. whatever you want.
Quackdoc
2024-04-19 06:37:02
I have lots of enthusiasm
DZgas Ж
Quackdoc I have lots of enthusiasm
2024-04-19 06:37:34
ok. try my neural network 🥂
Quackdoc
2024-04-19 06:38:12
Im not about to waste my time trying something I have significant doubts will be any decent
w
2024-04-19 06:39:40
new llama passed the watermelon test
2024-04-19 06:39:43
it can do math
DZgas Ж
Quackdoc Im not about to waste my time trying something I have significant doubts will be any decent
2024-04-19 06:40:01
you look like an anime guy who says that all new anime is shit (not looking at anime for 5 years)
w new llama passed the watermelon test
2024-04-19 06:41:11
freedom in neural networks is much better than its strength in tests
Quackdoc
DZgas Ж you look like an anime guy who says that all new anime is shit (not looking at anime for 5 years)
2024-04-19 06:43:58
good for you, I mean, I didn't think you needed glasses before but now I do
w new llama passed the watermelon test
2024-04-19 06:45:40
Orignally I was tinkering with https://github.com/TabbyML/tabby maybe ill try it again with whatever new model this is
2024-04-19 06:46:31
zero faith it won't land under actively detrimental like all the rest though
w
2024-04-19 06:46:43
why are you so negative about it
2024-04-19 06:46:45
chill
2024-04-19 06:46:55
I get it you hate progress
Quackdoc
w I get it you hate progress
2024-04-19 06:49:39
No, offense, but this is a really retarded comment. If I was actively trying it out, why would I be against it?
2024-04-19 06:50:04
Why am I negative about it? Because generally just, they're not really that useful. Does that mean I hate progress? No, I'm actively trying them out...
2024-04-19 06:50:15
also whisper is bad today lmao
w
2024-04-19 06:51:25
Auto complete and gesture typing is a good use of this type of AI
2024-04-19 06:51:41
You get it when you enable data improvement in your phone keyboard
2024-04-19 06:52:49
For the time I had GH copilot, it was also good at auto complete
2024-04-19 06:52:59
nobody is telling you to use it to do your entire job
2024-04-19 06:53:56
Just like how calculators and computers didn't replace people doing math and office work
Quackdoc
2024-04-19 06:54:00
LLMs have potential. but when it comes to coding they are rarely any better then just the standard tooling you already have, On the other hand, I've been seeing a lot of really trash LLM code that's been comming
2024-04-19 06:54:32
Originally I was really excited for LLMs since a lot of the work I did was **heavy** in boilerplate crap, And I still think LLMs will be good for that *one day*
2024-04-19 06:54:45
but I have significant doubts that one day is anywhere near
w
2024-04-19 06:55:03
I think we're already past that
2024-04-19 06:55:26
GH copilot is already good at that
Quackdoc
2024-04-19 06:55:47
yeah I have to significantly disagree
w
2024-04-19 06:55:56
have you tried it
Quackdoc
2024-04-19 06:56:11
yes, it's actually what made me go out and try tabby in the first place
w
2024-04-19 06:56:20
GH copilot?
Quackdoc
2024-04-19 06:56:40
yes
2024-04-19 06:56:55
https://code.visualstudio.com/docs/copilot/overview
w
2024-04-19 06:57:25
For me it did boilerplate pretty well
2024-04-19 06:57:53
And I also used it with elixir
Quackdoc
2024-04-19 06:58:49
Perhapps it is very language dependent. I tried flutter(dart) and rust. dart I didnt have high hopes for since there isn't really a load of open source stuff availible for it to have learned on, but on rust I did. Both were subpar at best
2024-04-19 06:59:28
well subpar is hard to define as of now, so let me correct myself, both were actively wrong in most cases and produced code that was no where near close to usable
w
2024-04-19 06:59:42
I didn't expect much from it but it was pretty quick as a replacement for the normal auto complete
Quackdoc
2024-04-19 07:00:29
both rust and dart's tooling around that is pretty good already I suppose so it's a fairly high bar for that. I suppose it could be a case of that. perhaps languages with less optimal tooling like C/C++ could fair better
w
2024-04-19 07:00:47
how much were you forcing it to generate for you? The normal use is supposed to be like 4 words completion
2024-04-19 07:01:48
I'd say my elixir use was an even higher bar than those two
2024-04-19 07:03:19
or maybe it's because most elixir code is higher quality
DZgas Ж
2024-04-19 08:04:05
https://trac.ffmpeg.org/ticket/4907 Support decoding animated WebP images open enhancement 9 years ago
TheBigBadBoy - 𝙸𝚛
2024-04-19 08:07:04
but they do support encoding for some reason <:kekw:808717074305122316>
afed
2024-04-19 08:08:16
https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=11521
HCrikki
2024-04-19 08:08:45
a page with multiple animated webps is ressource consuming. sometimes its smarter sticking to gif
TheBigBadBoy - 𝙸𝚛
afed https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=11521
2024-04-19 08:25:56
2 days old 0.o
DZgas Ж
DZgas Ж variance-boost-strength -- solved all my problems. it was added 3 days ago. the issue is closed.
2024-04-19 10:43:41
SVT-AV1 surpassed AOMENC With this new parameter. I have completely removed the use of CRF now set crf=63 and enable-variance-boost=1:variance-octile=1:variance-boost-strength=2 and use Only variance-boost-strength for quality set 1 low 2 medium 3 high 3 very high
2024-04-19 10:45:13
<:monkaMega:809252622900789269> enable-restoration=0:startup-mg-size=4:enable-qm=0 and we are getting the best that AV1 has to offer at the moment. It is much faster and much better than any aom parameters.
2024-04-19 10:48:55
670 kbps video. like 360p on twitch ```./ffmpeg -i 1_1927833401.mkv -vf "fps=60,scale=1280:720:flags=lanczos" -c:a libopus -b:a 65k -apply_phase_inv 0 -frame_duration 60 -vbr on -c:v libsvtav1 -crf 63 -g 600 -preset 6 -svtav1-params lookahead=120:tune=2:scm=1:irefresh-type=2:enable-cdef=1:enable-dlf=1:enable-mfmv=1:enable-qm=0:enable-restoration=0:enable-tf=1: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=2 test-W_1.mkv```
2024-04-19 10:51:01
There are no blocks artifacts no error with movements blocks no blocks quality noise
2024-04-19 10:51:37
it's just works <:This:805404376658739230> 👉 🥂 <:AV1:805851461774475316>
gb82
2024-04-20 06:33:41
yeah and SVT-AV1-PSY is even better, you'd know if you could handle piping with FFmpeg :)
w
2024-04-20 06:36:31
idk, i compared aomenc with svt-av1-psy with all the bells and whistles last week and it was still 10-20% behind
afed
2024-04-20 06:54:09
on slowest presets or behind at the same speed? btw, for svt-av1-psy `preset -3` is the slowest but, for me aom is still more consistent in quality on average, especially with forks, also works well on all rc modes like capped crf, cbr, vbr, multipass, etc svt-av1 is not good except for crf, even capped crf is mostly broken and even the recently merged vb has brought more issues with capped crf
Quackdoc
2024-04-20 06:55:08
rav1e chads sitting in the corner with hoods uo happy as ever
afed
2024-04-20 06:56:47
and for rav1e, all presets except the slowest ones doesn't exist <:kekw:808717074305122316>
Quackdoc
2024-04-20 06:59:33
very true
afed
afed on slowest presets or behind at the same speed? btw, for svt-av1-psy `preset -3` is the slowest but, for me aom is still more consistent in quality on average, especially with forks, also works well on all rc modes like capped crf, cbr, vbr, multipass, etc svt-av1 is not good except for crf, even capped crf is mostly broken and even the recently merged vb has brought more issues with capped crf
2024-04-20 07:03:37
and 10-20% difference is a lot, svt-av1 is worse on some content, but not that much, not by metrics nor visually also usually faster with about the same quality, if not using the slowest presets, even with chunking
w
2024-04-20 07:17:23
it was svt-av1 at preset 0 vs cpu 2
DZgas Ж
2024-04-20 11:43:33
svt-av1 `mmx |sse 1x sse2 |sse3 1,32x ssse3 1.44x sse4_1|sse4_2|avx 5.3x avx2 |avx512 6.9x`
JendaLinda
2024-04-21 09:05:07
When encoding a JPEG at q=100, why do programs bother writing separate quant tables for luma and chroma when they're identical.
Meow
2024-04-22 01:42:11
Is this a reliable test? http://littlesvr.ca/apng/gif_apng_webp.html
2024-04-22 01:43:21
It concludes APNG is better than GIF and lossless/lossy WebP in terms of the compression ratio
_wb_
2024-04-22 02:34:26
In principle lossless webp should be able to quite consistently outperform apng since it also pretty consistently outperforms regular png — but probably there is a tooling issue and you cannot easily "literally" translate apng to lossless webp.
2024-04-22 02:37:36
In any case, video codecs should generally be a better choice than image codecs for anything video-like.
Meow
2024-04-22 02:42:32
Removed the description about APNG being smaller on Wikipedia
JendaLinda
2024-04-22 03:02:47
If 32bpp APNG is converted to GIF, it's possible the GIF will be smaller, because GIF is limited to 8bpp.
Meow
2024-04-22 03:09:41
The original sentence was just too arbitrary and I had been feeling wrong for long time > In a comparison made between GIF, APNG and lossless WebP, APNG had the lowest file size.
JendaLinda
2024-04-22 03:52:01
When I was attempting to create an optimized APNG, it was quite tricky. I couldn't find a tool, that would optimize the animation by storing only differences between the frames and at the same time use the lowest possible color type.
Meow
JendaLinda When I was attempting to create an optimized APNG, it was quite tricky. I couldn't find a tool, that would optimize the animation by storing only differences between the frames and at the same time use the lowest possible color type.
2024-04-22 04:04:38
Isn't optimising all PNG files before assembling them into APNG, a workaround? And storing only differences is the job by video codecs
2024-04-22 04:05:42
The most important usage of animated images is making stickers
JendaLinda
2024-04-22 04:36:01
Assembling already optimized pngs is not straightforward. All frames must be the same color type, only one palette chunk and one tRNS chunk is allowed in one APNG file. Storing only differences is a common trick used in GIF. The frame contains only new pixels and the rest of the frame is transparent.
Meow
JendaLinda Assembling already optimized pngs is not straightforward. All frames must be the same color type, only one palette chunk and one tRNS chunk is allowed in one APNG file. Storing only differences is a common trick used in GIF. The frame contains only new pixels and the rest of the frame is transparent.
2024-04-22 04:38:55
Is that "trick" doable for JPEG XL?
JendaLinda
2024-04-22 04:43:16
This trick is doable in APNG, WebP and JPEG XL.
2024-04-22 04:43:44
They all support stacking frames with transparent parts.
jonnyawsom3
JendaLinda When I was attempting to create an optimized APNG, it was quite tricky. I couldn't find a tool, that would optimize the animation by storing only differences between the frames and at the same time use the lowest possible color type.
2024-04-22 05:20:57
I've been using the tools from here as an intermediary between GIF and JXL due to unspecified blend types erroring most GIF files I try https://apngasm.sourceforge.net/
2024-04-22 05:21:51
Generally just using gif2apng, or apngopt on existing files, both cases it uses palette and inter-frame compression
JendaLinda
2024-04-22 05:29:06
I think I tried one of these but I probably misunderstood it. I will give it a try. Thank you.
Meow
2024-04-22 05:41:38
I revised the description about APNG included in the 3rd edition of PNG spec on Wikipedia. It's now at the candidate recommendation stage
2024-04-22 05:43:16
https://www.w3.org/standards/history/png-3/
2024-04-22 05:48:09
The previous edition was published 20 years ago
JendaLinda
2024-04-22 07:11:44
I was curious how nonstandard RGB encoded JPEG really is and I found out that early versions of Internet Explorer and Netscape Navigator do support RGB encoded JPEG.
LMP88959
2024-04-22 07:56:44
<@688076786525143117> i am curious how it works too, can you give me a TL;DR or a link to a resource?
JendaLinda
LMP88959 <@688076786525143117> i am curious how it works too, can you give me a TL;DR or a link to a resource?
2024-04-22 08:15:28
There is no color transform between RGB and YCbCr, RGB components are encoded directly. Chroma subsampling is not used. The file begins with APP14 Adobe marker instead of JFIF. IJG cjpeg can produce RGB jpegs, so feel free to experiment.
LMP88959
2024-04-22 08:16:36
that makes sense
2024-04-22 08:16:45
cant be too efficient i'd imagine
2024-04-22 08:16:47
thanks!
JendaLinda
2024-04-22 08:19:43
Indeed, RGB encoded jpeg is less efficient.
Meow
2024-04-23 03:48:55
Only 42 stars https://github.com/w3c/PNG-spec
jonnyawsom3
2024-04-23 04:37:00
Huh, the end of this comment almost sounds like re-inventing JXL. XYZ color space for perceptual encoding, LZ77 compression, variable bitdepth per channel... https://github.com/w3c/PNG-spec/issues/426#issuecomment-2053779660
Meow
Huh, the end of this comment almost sounds like re-inventing JXL. XYZ color space for perceptual encoding, LZ77 compression, variable bitdepth per channel... https://github.com/w3c/PNG-spec/issues/426#issuecomment-2053779660
2024-04-23 04:56:33
> The following features are out of scope, and will not be addressed by this Working group. > Changes that will invalidate existing files, editors, or viewers that conform to Portable Network Graphics (PNG) Specification (Second Edition). 🤔 https://www.w3.org/Graphics/PNG/png-2023.html#scope
jonnyawsom3
2024-04-23 04:57:43
The mention of 'PNG2' is... Hmmm
Meow
2024-04-23 04:59:19
If PNG 2 were a thing it would be as vivid as WebP 2
2024-04-23 05:04:50
The person who mentioned "PNG 2" is the top editor of PNG spec 3rd edition
2024-04-23 05:09:24
Oh don't forget that they've been charted for the 4th edition as well
_wb_
2024-04-23 05:15:56
PNG at this point can only add stuff that will gracefully degrade, like new chunks that can be ignored by naive decoders. Adding stuff like new compression methods or pixel formats is just going to break existing decoders completely and if you do that, you can just as well make a completely new codec from scratch.
afed
2024-04-23 05:16:08
yeah, minor improvements doesn't make sense for breaking compatibility png is widely used because it's compatible i think even a new purely lossless format doesn't make sense either, if it's something new it should be a lossy/lossless format that is better than the existing ones and if it's going to be worse than jxl it will just make confusion with the same name and fragmentation and won't bring something useful why not just use jxl or add some extension for jxl (if jxl features are not enough) and promote it as a "new png" as well
_wb_
2024-04-23 05:23:10
As a container format, ISOBMF and PNG are quite similar: both have 4 byte box/chunk names and 4 byte payload lengths, and are otherwise just a concatenation of boxes. The only difference is the obligatory CRC in PNG, which, if you ask me, is a historical mistake that is solving a data integrity problem at the wrong layer.
Meow
afed yeah, minor improvements doesn't make sense for breaking compatibility png is widely used because it's compatible i think even a new purely lossless format doesn't make sense either, if it's something new it should be a lossy/lossless format that is better than the existing ones and if it's going to be worse than jxl it will just make confusion with the same name and fragmentation and won't bring something useful why not just use jxl or add some extension for jxl (if jxl features are not enough) and promote it as a "new png" as well
2024-04-23 05:32:32
Unless they want to violate that "PNG Working Group Charter"
2024-04-23 05:33:41
Those labelled backwards-incompatible shouldn't be implemented either
afed
2024-04-23 05:44:51
yeah, some changes can be useful, which are backwards compatible and png will at least be decodable even on old decoders, without some extra features, but decodable other than that I don't see how it is useful for users, it looks more like some group just wants to take control and promote some format instead of cooperate with any of the modern formats (because there might be different visions of the design direction)
Meow
afed yeah, some changes can be useful, which are backwards compatible and png will at least be decodable even on old decoders, without some extra features, but decodable other than that I don't see how it is useful for users, it looks more like some group just wants to take control and promote some format instead of cooperate with any of the modern formats (because there might be different visions of the design direction)
2024-04-23 05:52:29
Not that significant and it's almost done https://github.com/w3c/PNG-spec/blob/main/Third_Edition_Explainer.md
2024-04-23 05:53:16
Some changes may have existed for years
spider-mario
2024-04-23 06:09:17
XYZ for perceptual compression strikes me as somewhat naïve / misguided
2024-04-23 06:09:28
and using it indeed doesn’t guarantee the absence of imaginary colours
2024-04-23 06:10:30
(X=1, Y=0, Z=0) is an imaginary colour because you can’t stimulate X without also stimulating Z
2024-04-23 06:10:31
https://en.wikipedia.org/wiki/File:CIE_1931_XYZ_Color_Matching_Functions.svg
2024-04-23 06:11:53
(this is why the spectrum locus is a slanted horseshoe on the xy chromaticity diagram)
LMP88959
2024-04-23 06:12:34
ive messed around with different color spaces quite a bit and in my opinion effective compression isn't achieved through 'perceptual color spaces.' simple YUV is perfectly fine
2024-04-23 06:13:08
the reason being the color space needs to react well to compression, reducing the bit depth in the channels
2024-04-23 06:13:57
and it's less about matching human perception and more about removing the correlation between channels because spatial compression is where the real savings are (in terms of image compression)
damian101
LMP88959 ive messed around with different color spaces quite a bit and in my opinion effective compression isn't achieved through 'perceptual color spaces.' simple YUV is perfectly fine
2024-04-23 07:31:09
no, it's not...
2024-04-23 07:32:45
I mean, if at least luma was somewhat perceptually uniform... since it's not we get way lower quality in dark areas than bright ones with simple lossy SDR compression.
2024-04-23 07:33:18
It makes a huge difference.
LMP88959
I mean, if at least luma was somewhat perceptually uniform... since it's not we get way lower quality in dark areas than bright ones with simple lossy SDR compression.
2024-04-23 08:33:57
Yeah i agree. That aspect needs work. Im no expert, i was just giving my opinion based off the little experience ive had
2024-04-23 08:34:36
Maybe srgb intermediates?
damian101
LMP88959 Maybe srgb intermediates?
2024-04-23 08:41:31
how do you mean?
JendaLinda
2024-04-23 08:44:56
The simplicity of PNG allowed it to be usable even on 486-class computers.
2024-04-23 08:45:58
There are PNG viewers running on DOS.
LMP88959
how do you mean?
2024-04-23 08:59:19
Hmm not too sure but if we could figure out how to get the compressed aspect of srgb into a yuv style color space that would be great
2024-04-23 08:59:45
Since srgb gives more bits to dark colors and less to bright
damian101
LMP88959 Since srgb gives more bits to dark colors and less to bright
2024-04-23 09:01:03
It does so more compared to linear (which all OETFs do), but virtually all other relevant OETFs do so even more.
2024-04-23 09:01:56
The sRGB OETF is pretty much the worst common OETF out there, from a perceptual uniformity standpoint.
LMP88959
2024-04-23 09:03:07
Oh interesting, that’s good to know. Btw nice to meet you, you’re an expert in color?
_wb_
2024-04-23 09:10:13
sRGB models how CRT monitors work, not how the human eye works.
2024-04-23 09:13:48
YUV models how color TVs managed to introduce color in a backwards-compatible way in the 1960s, not how humans perceive color
damian101
LMP88959 Oh interesting, that’s good to know. Btw nice to meet you, you’re an expert in color?
2024-04-23 09:14:54
Oh, just moderately so. I think I have a decent grasp of what types of colorspaces exist and how conversion between them works in principle. But I haven't yet delved deeper into the math, except for transfer curve conversion, which is a much more simple concept.
_wb_
2024-04-23 09:15:13
Chroma subsampling models how the bandwidth allocated to UV was lower than that for Y because broadcast bands were already allocated and there was little room left for the chroma signal
2024-04-23 09:18:55
A lot of the stuff still used by image/video codecs today are effectively legacy nonsense from many decades ago, with more technical transitionary rationale (new stuff always had to remain 'compatible' with the existing old stuff) than actual perceptual motivation.
LMP88959
_wb_ YUV models how color TVs managed to introduce color in a backwards-compatible way in the 1960s, not how humans perceive color
2024-04-23 09:24:49
Yeah im not claiming any of these are based on perception
2024-04-23 09:25:17
Yuv does have the convenient property of separating brightness from color which indirectly helps with compression
2024-04-23 09:25:24
In terms of HVS
_wb_ Chroma subsampling models how the bandwidth allocated to UV was lower than that for Y because broadcast bands were already allocated and there was little room left for the chroma signal
2024-04-23 09:25:59
But that decision to reduce bandwidth of chroma was based on HVS
damian101
LMP88959 Yuv does have the convenient property of separating brightness from color which indirectly helps with compression
2024-04-23 10:02:33
Right, this is most essential for good lossy compression, and also makes the colorspace more perceptually uniform.
Quackdoc
2024-04-23 10:39:41
the world if yuv luma was 1:1 with brightness
2024-04-23 10:39:57
damn it I don't have the picture, just imagine it
_wb_
LMP88959 But that decision to reduce bandwidth of chroma was based on HVS
2024-04-24 06:38:05
Partially. And partially because they had to work with the bandwidth available. These were the days of broadcast using analog radio signals, where broadcasters already had frequency bands allocated, so they had to basically squeeze the new color signal in the padding between the existing bands.