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

on-topic

Whatever else

Quackdoc
2023-06-19 06:17:05
the capability should be there, but it should be restricted to a user controllable degree
2023-06-19 06:17:58
even from the point of general use standpoint, a bright image could make it hard to focus on the rest of the page so normalization is good there anyway
_wb_
2023-06-19 06:29:03
to me it's similar to pages that autoplay sound - it's unexpected sensory input which can be annoying (and even embarrassing when others are around)
jonnyawsom3
_wb_ if I would have designed QR codes, I would have made them invariant to flipping all bits, i.e. make inverted QR codes ("dark mode") also work. That should help to make it less bright
2023-06-19 06:43:27
Depends on how dense the code is, but here's an inverted one and it should still work
_wb_
2023-06-19 06:54:11
interesting, with one QR code reader I can read that fine, the other doesn't detect it to be a QR code
yurume
2023-06-19 07:23:00
while I'm not sure if QR specification itself allows that, I think there is no other technical reason inverted QR code can't work
2023-06-19 07:23:18
it's mostly a matter of finding finder and alignment patterns
derberg🛘
2023-06-19 11:21:34
In general it seems like optic recognition of inverted things is often bad.
2023-06-19 11:21:41
Even tesseract has problems with that
Traneptora
2023-06-19 01:29:29
https://cdn.discordapp.com/attachments/1006242291968655481/1120336171449450556/Tumblr_l_116901570484102.png
lonjil
2023-06-19 02:01:46
lol
fab
2023-06-19 02:58:30
Xll
diskorduser
2023-06-19 03:54:26
Time to spill avif compression.
_wb_
2023-06-19 04:49:05
Spilling avif compression on a subtly textured background like wood, concrete, marble, or a carpet could be interesting
gb82
2023-06-19 09:22:34
if I'm using 8-bit JPEG for example, I'm not able to reach 16.7 million colors (as advertised on sites like apple.com correlating with '8-bit color') because only Cb & Cr are responsible for color reproduction right? Meaning there's likely a substantial difference between 8-bit RGB & other color spaces in terms of color reproduction
spider-mario
2023-06-19 09:30:16
rgb(10, 10, 10) and rgb(118, 118, 118) count as “different colors” in those 16.7 million, so ycbcr(10, 128, 128) and ycbcr(118, 128, 128) would, too
2023-06-19 09:32:46
but the only way to have Y=0 or Y=255 is with R=G=B=those values, so chroma cannot vary for those
Traneptora
gb82 if I'm using 8-bit JPEG for example, I'm not able to reach 16.7 million colors (as advertised on sites like apple.com correlating with '8-bit color') because only Cb & Cr are responsible for color reproduction right? Meaning there's likely a substantial difference between 8-bit RGB & other color spaces in terms of color reproduction
2023-06-19 10:38:20
they're defining "color" to include luma here, not just chroma
2023-06-19 10:39:27
since RGB -> YCbCr is an invertible linear transformation, it's fair to treat them as equivalent for this purpose
gb82
2023-06-19 10:39:48
Okay that make sense. That’s what was confusing me
Traneptora
2023-06-19 10:40:08
do keep in mind that stuff like libjpeg will frequently convert YCbCr to RGB to you for convenience
2023-06-19 10:40:21
so internally being YCbCr isn't necessarily exposed
gb82
2023-06-19 10:40:58
I’m assuming an XYB -> RGB transformation is also reversible?
elfeïn
Traneptora since RGB -> YCbCr is an invertible linear transformation, it's fair to treat them as equivalent for this purpose
2023-06-19 10:41:00
Does that mean 24bit RGB is the same as 24bit YCbCr?
gb82
elfeïn Does that mean 24bit RGB is the same as 24bit YCbCr?
2023-06-19 10:41:22
Afaict they have the same range of color representation
Traneptora
2023-06-19 10:41:32
you'd have be be careful when you say "24-bit" because do you mean bits per channel, or bits per pixel?
elfeïn
2023-06-19 10:41:44
per pixel
gb82
2023-06-19 10:41:58
So 8 BPC?
elfeïn
2023-06-19 10:42:01
but the actual number of bits doesn't matter
Traneptora
2023-06-19 10:42:11
there's also range issues, many video-based things that work in YCbCr will use limited-range
elfeïn
2023-06-19 10:42:14
just so long as they're the same, is it the same colors?
gb82
Traneptora there's also range issues, many video-based things that work in YCbCr will use limited-range
2023-06-19 10:42:26
Which is essentially 7 BPC right?
Traneptora
elfeïn just so long as they're the same, is it the same colors?
2023-06-19 10:43:07
RGB -> YCbCr is an invertible linear transformation. They aren't the "same" but they can be converted from one to another
2023-06-19 10:43:20
without precision loss
2023-06-19 10:43:41
(contrast with, say Linear Light -> sRGB, which is a *nonlinear* transformation)
elfeïn
2023-06-19 10:44:06
oh okay
gb82
2023-06-19 10:44:21
So JXL supports 8, 10, 12, 16, 24, & 32 BPC right?
2023-06-19 10:44:49
& the 32 BPC mode is float only, so greater precision in a particular section of the colorspace right?
Traneptora
2023-06-19 10:44:57
it really depends
2023-06-19 10:45:03
modular is entirely integer
2023-06-19 10:45:18
and in theory uses up to 32-bit integers, but they're not scaled
gb82
2023-06-19 10:45:20
& JXL can mix and match modular & VarDCT blocks in the same image?
Traneptora
2023-06-19 10:45:22
they're just, whatever is coded, is.
2023-06-19 10:45:29
for modular, that is
elfeïn
2023-06-19 10:45:58
I thought JXL supports arbitrary channel bits up to some int?
Traneptora
2023-06-19 10:45:59
VarDCT strictly speaking doesn't "have" an internal precision, since the specification only defines how to decode VarDCT in terms of real numbers
gb82
2023-06-19 10:46:01
In practice, the maximum BPC for a jpeg xl image would be 24 or 32?
Traneptora
2023-06-19 10:46:11
32
gb82
2023-06-19 10:46:34
Okay, but the fact that it is floating point only doesn’t change anything?
Traneptora
2023-06-19 10:46:45
well for modular specifically it's an entirely integer mode
2023-06-19 10:46:50
no real number arithmetic
gb82
2023-06-19 10:46:53
For VarDCT
Traneptora
2023-06-19 10:47:13
VarDCT internal precision is really whatever you choose to use when you decode it
gb82
gb82 & JXL can mix and match modular & VarDCT blocks in the same image?
2023-06-19 10:47:15
This is what confuses me
Traneptora
2023-06-19 10:47:39
essentially the way VarDCT encodes real numbers is by encoding raw integers and a number of scale factors
veluca
2023-06-19 10:47:41
in practice current implementations will be ~24 bpc at most, which is likely enough for the foreseeable future 😄
elfeïn
2023-06-19 10:48:32
What is HDR?
Traneptora
2023-06-19 10:48:34
the final entropy-coded value for a VarDCT coefficient ends up being an integer, but since there's a good number of scale factors in a numerator and a denominator, as well as an inverse cosine transform, you will end up getting a value between 0.0 and 1.0, as a real number
2023-06-19 10:48:54
basically you have integers and some reconstruction instructions to get them to sample values between 0.0 and 1.0
gb82
2023-06-19 10:49:12
I’m more familiar with how AVIF tries to compute differences, & CfL means that rounding is less precise at 8 bits so 10 bit AVIF is a marked increase in quality over 8 bit even with an 8 bit source. I’m assuming JXL doesn’t have these oddities
Traneptora
2023-06-19 10:49:25
how much precision you choose to use when decoding those instructions is really up to you
veluca
2023-06-19 10:49:43
well, up to conformance margins 😛
Traneptora
2023-06-19 10:49:47
yea
2023-06-19 10:49:55
if you're too imprecise you end up breaking spec
2023-06-19 10:50:05
but you could, say, use 32-bit floats, 16-bit floats, or even doubles
2023-06-19 10:50:15
the spec defines tolerance
gb82
Traneptora the final entropy-coded value for a VarDCT coefficient ends up being an integer, but since there's a good number of scale factors in a numerator and a denominator, as well as an inverse cosine transform, you will end up getting a value between 0.0 and 1.0, as a real number
2023-06-19 10:50:24
So internally, JXL doesn’t have fixed bit depth targets is what I’m understanding
Traneptora
2023-06-19 10:50:30
yea, the bit depth tag is a suggestion
gb82
2023-06-19 10:50:40
Damn, that’s cool
Traneptora
2023-06-19 10:50:50
it's often used to represent the bit depth of the input
2023-06-19 10:51:00
so you don't try to decode more information than was there originally
2023-06-19 10:51:18
since decoding an 8-bit JXL to a 16-bit buffer doesn't really help you if it started as an 8-bit image
gb82
2023-06-19 10:52:06
And the VarDCT doesn’t have integer frequency coefficients like JPEG does, it has fractions for more precision? Before entropy coding
Traneptora
2023-06-19 10:52:08
do note, this is with lossy and XYB encoding
2023-06-19 10:52:24
and VarDCT, specifically
elfeïn
Traneptora so you don't try to decode more information than was there originally
2023-06-19 10:52:27
Wait, so that option is set based on input? What if 1bpp works better- could someone design their encoder to automatically select the minimum number of bits?
Traneptora
2023-06-19 10:52:33
in modular mode, the bit depth tag matters, as the integers are coded as-is
2023-06-19 10:52:38
so 4096 just becomes 4096
2023-06-19 10:52:52
you need to tag the image as 12-bit to map 4095 to "full white"
2023-06-19 10:53:03
if you tag it as 16-bit, 4095 is 1/16 dark gray
2023-06-19 10:53:18
cause in modular, in particular lossless modular, it's coded as-is
elfeïn Wait, so that option is set based on input? What if 1bpp works better- could someone design their encoder to automatically select the minimum number of bits?
2023-06-19 10:54:04
what do you mean?
elfeïn
Traneptora what do you mean?
2023-06-19 10:54:29
What if the source bit depth is oversize for the information?
Traneptora
2023-06-19 10:54:51
it depends, there's some internal modular coding tricks used to help in that case
2023-06-19 10:55:09
for example, if you feed it an 8-bit image that only uses two colors, the libjxl encoder will detect that
2023-06-19 10:55:16
and internally use a palette transform
elfeïn
2023-06-19 10:55:58
oh nice
gb82
2023-06-19 10:58:13
That’s super cool
_wb_
gb82 if I'm using 8-bit JPEG for example, I'm not able to reach 16.7 million colors (as advertised on sites like apple.com correlating with '8-bit color') because only Cb & Cr are responsible for color reproduction right? Meaning there's likely a substantial difference between 8-bit RGB & other color spaces in terms of color reproduction
2023-06-20 05:02:43
8-bit YCbCr are about 4 million colors (the volume is kind of like a pyramid on top of an inverted pyramid, meaning about 3/4 of the space is empty). But JPEG uses more precision internally and you can decode it to higher precision YCbCr — this is what jpegli does but libjpeg-turbo doesn't.
gb82
2023-06-20 05:04:16
Does mozjpeg do this?
_wb_
2023-06-20 05:07:28
mozjpeg is a libjpeg-turbo fork, it also uses 8-bit YCbCr
gb82
2023-06-20 05:16:27
I though all of JPEG’s frequency coefficients were internally coded from -128 to 127 which is 8 bit
_wb_
2023-06-20 05:17:06
YCbCr and XYB are mathematically reversible if you do them on real numbers (so infinite precision). With finite precision (quantizing to integers each time) they're not reversible though. YCbCr is linear (just a matrix multiply) so the precision loss is uniform, XYB is nonlinear so precision loss is different in the darks than in the brights.
gb82 I though all of JPEG’s frequency coefficients were internally coded from -128 to 127 which is 8 bit
2023-06-20 05:17:42
No, the coefficients are 12-bit
gb82
2023-06-20 05:18:07
Oh, so why is JPEG limited to 8 bit color? Just how it was standardized?
_wb_
2023-06-20 05:18:15
This is why lossless recompression of jpeg is "more lossless" than converting a jpeg to a png
gb82
2023-06-20 05:19:07
So losslessly transcoded JPEGs are 12-bit JXL?
2023-06-20 05:20:26
I watched the Computerphile series to understand JPEG, that’s where my background knowledge comes from. I’m not sure how much they oversimplified
_wb_
gb82 Oh, so why is JPEG limited to 8 bit color? Just how it was standardized?
2023-06-20 05:20:52
That's just what the popular implementations did. Also the original JPEG spec actually has a mode for 12-bit input which uses 16-bit coefficients internally. But that didn't become part of the "de facto" jpeg standard, just like lossless mode, arithmetic coding, hierarchical jpeg etc
gb82
2023-06-20 05:21:42
So jpegli is *actual* 12 bit & standard decoders understand this? Or it can just operate with a >8 bit source
2023-06-20 05:21:54
And I’m assuming this is RGB jpegli, not xyb
2023-06-20 05:22:07
Or YCbCr jpegli probably
_wb_
gb82 So losslessly transcoded JPEGs are 12-bit JXL?
2023-06-20 05:24:44
JXL in vardct mode has kind of arbitrary precision, quantized coefficients are always integers (12-bit ones in case of recompressed jpegs, but the spec doesn't care about that range, it just has to be representable in int32_t) but the dequant factors can be anything (in case of recompressed jpegs they just happen to be integers) so the actual precision can be almost arbitrary.
gb82
2023-06-20 05:26:07
Oh wow. And that’s just a principle of the VarDCT generally I’m assuming, is inherently arbitrary precision that allows essentially any bit depth you want
2023-06-20 05:27:14
Or at least before quantization
elfeïn
2023-06-20 05:27:36
So you could have as much information you want distributed over any bit depth you want for the same size images?
_wb_
gb82 So jpegli is *actual* 12 bit & standard decoders understand this? Or it can just operate with a >8 bit source
2023-06-20 05:29:13
It's producing 8-bit jpegs (which has 12-bit coefficients) so existing decoders can decode them (12-bit jpeg with 16-bit coeffs is basically dead letter in the 1992 spec). It just does everything with float precision instead of doing it the libjpeg-turbo way which is converting 8-bit rgb to 8-bit YCbCr and then doing DCT on that also in integer arithmetic so with rounding errors, and all the rounding errors are repeated on decode so there are 4 places where things get quantized to integers, with precision loss that can be avoided.
gb82
2023-06-20 05:30:15
So the floats are stored in the quant table & the decoder rounds them to 8 bit ints?
_wb_
2023-06-20 05:31:26
In jpegli the rounding to ints is only done at the one place where it is unavoidable: when deciding which quantized coefficients to write in the bitstream.
gb82
2023-06-20 05:32:43
As far as I understand, the bitstream is required to have 8 bit ints in the quant tables for each channel. Why would libjpeg go through what sounds like extra work for a worse implementation
_wb_
2023-06-20 05:33:22
In the usual jpeg implementations like libjpeg-turbo, rounding to ints happens in several intermediate stages too, which makes errors accumulate. For 8-bit and typical qualities that is fine, but if you want to get the most out of the old jpeg then you have to avoid that.
gb82
2023-06-20 05:34:10
So it is in the intermediate stages, that makes sense. I still don’t understand why they’d do it that way though, jpegli sounds more sensible where you’re only rounding when necessary
_wb_
2023-06-20 05:40:16
The libjpeg-turbo way is faster on hardware which doesn't have good floating point support...
username
2023-06-20 05:43:30
in the changelog for the recent beta versions of libjpeg-turbo it says this: ```"The accurate DCT/IDCT algorithms are now the default for both compression and decompression, since the "fast" algorithms are considered to be a legacy feature. (The "fast" algorithms do not pass the ISO compliance tests, and those algorithms are not any faster than the accurate algorithms on modern x86 CPUs.)"``` does this affect anything or is it unrelated?
_wb_
2023-06-20 07:03:56
I think they have 3 versions of DCT/IDCT in libjpeg-turbo: - float - fast inaccurate int - more accurate int (default)
spider-mario
elfeïn What is HDR?
2023-06-20 09:14:46
it’s the ability to simultaneously reproduce very dark and very bright tones
2023-06-20 09:15:08
it stands for “high dynamic range”
2023-06-20 09:15:19
dynamic range being the range of signal levels that can be represented
VcSaJen
2023-06-20 09:25:56
For videogames there's different HDR: light is calculated in high dynamic, and then game simulates eye accomodation/camera exposure in SDR. (Well, regular HDR is also there, so sometimes things get confusing with two "HDR" terms)
Tirr
2023-06-20 09:32:16
it sounds like HDR tone mapped to SDR
spider-mario
2023-06-20 09:37:05
HDR can be present or absent at various stages: capture (or synthesis), processing, physical reproduction
2023-06-20 09:38:04
the term “HDR photography” has long been associated with just capture HDR which is then processed for SDR output, but hopefully, this will change now that it’s becoming increasingly practical to keep photos HDR throughout
2023-06-20 09:42:27
https://iopscience.iop.org/book/mono/978-0-7503-2558-5 describes it in terms of the following “stages”: scene DR, ADC DR, raw DR, image DR, display DR
gb82
2023-06-20 06:12:39
Starting with a normal raw photo, can you export it as HDR after editing? Is there a benefit to this or is there a specific HDR workflow for real HDR images?
spider-mario
2023-06-20 06:44:48
you can, and there may well be a benefit
2023-06-20 06:45:23
many cameras have more dynamic range than SDR can accomodate, even within a single shot without bracketing
2023-06-20 06:47:33
both https://spider-mar.io/hdr/Weesen-P3-HLG.png, https://spider-mar.io/hdr/salon.jxl (/.avif) and https://spider-mar.io/hdr/piscine.jxl (/.avif) were made in that way
2023-06-20 06:48:37
(or wait, maybe not salon, let me check)
gb82
2023-06-20 06:55:05
What's the workflow like? I'm very interested, esp considering I always export my photos as jxl
spider-mario
spider-mario (or wait, maybe not salon, let me check)
2023-06-20 06:55:38
I’m actually not fully sure, it seems I shot two frames but only used one of them?
gb82 What's the workflow like? I'm very interested, esp considering I always export my photos as jxl
2023-06-20 06:57:44
slightly convoluted for now (export as EXR, for example using darktable, then grade the EXR in DaVinci Resolve, export as still in TIFF, and compress the TIFF to JXL/AVIF/whatever), but it may become more convenient once it’s implemented in Lightroom
2023-06-20 06:57:55
https://helpx.adobe.com/camera-raw/using/hdr-output.html > Note: High Dynamic Range Output is a Technology Preview feature in Camera Raw. This means that the feature is still under development and not yet final. We are actively working on several areas, including support for Windows, and Lightroom, user interface improvements, and better interoperability with Photoshop and other apps.
gb82
spider-mario slightly convoluted for now (export as EXR, for example using darktable, then grade the EXR in DaVinci Resolve, export as still in TIFF, and compress the TIFF to JXL/AVIF/whatever), but it may become more convenient once it’s implemented in Lightroom
2023-06-20 06:59:16
I'm fully in with Darktable, right now I've been exporting as 16-bit PNG & compressing to `-d 1.0` jxl
spider-mario
2023-06-20 07:00:12
I suspect it may be some time before darktable fully supports a self-contained HDR workflow, though I wouldn’t put it behind them to at least try
2023-06-20 07:01:59
I expect that they will tweak the filmic module so that it can work for that
2023-06-20 07:02:50
the challenge will likely be to actually get the monitor to display HDR (especially given that it’s impossible on X11 and may take a while in Wayland)
2023-06-20 07:04:32
from what I remember, the macOS version of darktable can’t display colors outside of sRGB, because the stack of libraries that they use won’t let them signal another content colorspace to the OS
2023-06-20 07:05:15
so it’s not impossible that Windows might be the first OS where darktable can do that (if the software stack doesn’t impose the same limitation as it does on macOS…)
2023-06-20 07:05:24
which I think is also the situation with Krita?
Fraetor
spider-mario the challenge will likely be to actually get the monitor to display HDR (especially given that it’s impossible on X11 and may take a while in Wayland)
2023-06-20 10:08:25
It will probably still take a while, but I think Red Hat's desktop team are now actively working on HDR in wayland. https://lwn.net/ml/fedora-devel/20230601183054.12057.45907@mailman01.iad2.fedoraproject.org/
lonjil
2023-06-23 09:37:13
https://curia.europa.eu/jcms/upload/docs/application/pdf/2023-06/cp230110en.pdf
2023-06-23 09:37:41
> According to Advocate General Medina European Harmonised Technical Standards must be freely available without charge because of their particular legal nature as acts that form part of EU law
2023-06-23 09:45:49
Note that while the above is not legally binding, it is legal advice to the Court of Justice which is currently handling a case about technical standards and the law
2023-06-23 09:46:43
while it is unlikely to to affect JPEG, if it goes the right way it is possible that quite a few ISO standards would be forced to be freely available.
_wb_
2023-06-23 09:52:49
That would be great
VcSaJen
2023-06-23 10:47:31
Lonnie: Adobe, Apryse and Foxit sponsored free publication of pdf ISO standard: https://pdfa.org/sponsored-standards/ So if JPEG XL finds similar-sized sponsors, it will be possible
afed
2023-06-30 09:31:23
https://github.com/rainerzufalldererste/hypersonic-rANS
yoochan
2023-07-01 11:06:12
Is he known as a user of this discord?
2023-07-02 01:17:25
I invited him to come here and have a chat 🙂 https://github.com/rainerzufalldererste/hypersonic-rANS/issues/3
derberg🛘
2023-07-02 05:27:07
I don't think Discord should be called a forum
yoochan
2023-07-02 05:33:52
In the latin sense of the word, it is... But I'm not a native speaker and it was the first word that came to my fingers 😅
Demez
2023-07-02 07:33:36
I love the title of the issue
afed
2023-07-04 05:01:01
https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/3.0.0
2023-07-04 11:54:00
fairly new and highest quality service for vectorization that I have seen so far, probably something similar would be useful for jxl splines, although they are much more limited for complex images https://vectorizer.ai/
diskorduser
afed fairly new and highest quality service for vectorization that I have seen so far, probably something similar would be useful for jxl splines, although they are much more limited for complex images https://vectorizer.ai/
2023-07-05 05:51:30
Good. Works nicely
jonnyawsom3
2023-07-05 04:17:38
Tried using svg2jxl on the output but unfortunately the 800KB tree I got out was too much for jxl_from_tree to handle, only output a file once I truncated it down to 30KB or so
_wb_
2023-07-05 04:42:30
did it produce an error? I wonder why it cannot handle large amounts of splines on the encode side
derberg🛘
2023-07-05 05:02:18
It could be a problem with URL lenght
2023-07-05 05:03:44
Tho now I see an optional output parameter so it can really convert to JXL on the device? Edit: Ah, it prints what can be pasted into the jxl art website. Nice to know.
jonnyawsom3
2023-07-05 05:04:03
No error, just silently failed with no output. svg2jxl exports the tree as a txt file (used the jxl extension, but it was just raw text inside)
_wb_
2023-07-05 08:40:37
Try a debug build, release builds are kind of silent...
jonnyawsom3
2023-07-05 09:04:29
Here's the text file with the tree inside. Not sure where to get a debug build, and looking at the code for the jxl_from_tree, it looked like there wasn't much error handling and no verbosity anyway
2023-07-06 04:51:43
Turns out it wasn't silently erroring, it was completely crashing
DZgas Ж
2023-07-07 09:53:40
what the f
nec
2023-07-07 02:51:18
Yea, I was a bit surprised too
derberg🛘
2023-07-07 03:36:27
Good thing I switched to codeberg (not affiliated with me) for my newer projects ( :
DZgas Ж
2023-07-07 08:10:17
NO MORE fair use 1984
Quackdoc
derberg🛘 Good thing I switched to codeberg (not affiliated with me) for my newer projects ( :
2023-07-07 08:29:31
I try to like codeberg but the interface I really dont like, I wouldnt mind hosting my own gitlab but thats a little much
derberg🛘
2023-07-07 08:33:21
They use a gitea fork called forgejo (<https://blog.codeberg.org/codeberg-launches-forgejo.html>)
Quackdoc I try to like codeberg but the interface I really dont like, I wouldnt mind hosting my own gitlab but thats a little much
2023-07-07 08:41:42
I wonder if there is an option to change the interface a bit (I haven't found one so far besides themes, language setting and hiding a few things). If such an option doesn't exist, an issue could be created: https://codeberg.org/Codeberg/Community/issues
2023-07-07 08:45:53
Tho using a browser addon to apply some custom css is also an option
w
2023-07-07 09:24:44
GitHub is social media
2023-07-07 09:25:25
if I just wanted git I'd use nothing
Nova Aurora
DZgas Ж what the f
2023-07-07 09:35:53
That real?
Fraetor
Nova Aurora That real?
2023-07-07 10:01:20
Unfortunately so: https://github.blog/changelog/2023-06-07-code-search-now-requires-login/
derberg🛘
2023-07-07 10:28:52
In a few years they might forbid repo cloning without a GitHub account.
BlueSwordM
derberg🛘 In a few years they might forbid repo cloning without a GitHub account.
2023-07-08 06:13:31
It would then kill itself in the process 😂
Quackdoc
2023-07-08 06:20:26
it's a massive shame since gitlab's search is aids, gitea doesnt really have one, and not to mention discoverability on github is excelent, a shame to see it die, oh well, time to make gitlab suck less I guess
w
2023-07-08 06:30:55
i don't think it's dying any time soon
2023-07-08 06:31:05
i imagine gitlab and alternatives would die before
Quackdoc
2023-07-08 06:33:25
i dunno, then been doing a lot of stupid stuff lately, if gitlab had better discoverability I would swap to it
w
2023-07-08 06:36:18
that's what i mean by github is social media
2023-07-08 06:36:27
gitlab simply won't
2023-07-08 06:36:30
so it will stay sucky
2023-07-08 06:38:14
honestly, I don't see the point of gitlab
Quackdoc
2023-07-08 06:39:31
its self hostable which is really nice
w
2023-07-08 06:39:40
you dont need gitlab for git
Quackdoc
2023-07-08 06:39:50
its also a lot better for medium scale projects
w
2023-07-08 06:40:14
so organizations would rather just have its own git instance
2023-07-08 06:40:36
and for medium to large, gerrit also exists
Quackdoc
2023-07-08 06:40:51
I cant stand gerrit
2023-07-08 06:41:01
Bliss wants to migrate to gerrit and I really dont want them to xD
w
2023-07-08 06:41:09
it solves a ton of problems git has
Quackdoc
2023-07-08 06:44:09
I prefer good old cgit over gerrit
2023-07-08 06:44:38
but gitlab solves a lot of problems, for one it actually has a good issue tracker
2023-07-08 06:45:00
having a close tie to issue tracking and code PRs are such an underrated feature
w
2023-07-08 06:45:23
prs are a mistake
Quackdoc
2023-07-08 06:45:39
it just scales really well for medium projects, something like the linux kernel would be stretching it tho
Fraetor
2023-07-08 11:23:42
Having issue and pull/merge requests is a really nice workflow for most projects.
VcSaJen
2023-07-08 11:51:51
Git forges are basically industry standard by now, both in open source and closed source
Jim
DZgas Ж what the f
2023-07-08 12:19:10
I'm surprised it took them that long to block it off. Search functionality is one of the more memory & compute-intensive tasks for a website - especially when there are billions or trillions of entries to search through. Allowing public bots, scrapers, and non-logged in users to run searches tends to increase costs dramatically.
DZgas Ж
Jim I'm surprised it took them that long to block it off. Search functionality is one of the more memory & compute-intensive tasks for a website - especially when there are billions or trillions of entries to search through. Allowing public bots, scrapers, and non-logged in users to run searches tends to increase costs dramatically.
2023-07-08 12:20:57
this is a single repository search.
Jim
2023-07-08 12:23:11
Really no different - a single repository can have millions or tens of millions of records: files, commits, pull requests, issues, wiki pages, versions of any of these, etc.
VcSaJen
2023-07-08 01:03:27
They should enable search on forks and branches. People now fork locally then upload to new repository to circumvent this lame limitation.
w
2023-07-08 01:03:30
search is VERY expensive
DZgas Ж
Jim Really no different - a single repository can have millions or tens of millions of records: files, commits, pull requests, issues, wiki pages, versions of any of these, etc.
2023-07-08 01:06:01
Really different - searching through a single repository has never been a computational problem. The reason why it was suddenly banned is complete bullshit. There are no excuses. Now, to search by code, I have to download the entire repository in zip and do a code search locally on my PC.
VcSaJen
2023-07-08 01:08:18
It sounds like there's no "single repository" search now. There's "global search, filter out repositories with names different than this"
w
2023-07-08 01:11:00
search through a single respository is very expensive
Jim
DZgas Ж Really different - searching through a single repository has never been a computational problem. The reason why it was suddenly banned is complete bullshit. There are no excuses. Now, to search by code, I have to download the entire repository in zip and do a code search locally on my PC.
2023-07-08 01:20:58
I've worked in web app development for decades and I can tell you that it is expensive. Not as expensive as something like AI - though some search engines are now implementing AI parts. In fact, Github has a blog where many posts talk about their ongoing changes and improvements to their search infrastructure. Just because you become frustrated by a service making a change doesn't mean it was done with malicious intent. With every company out there reducing costs it was likely done as part of that change. I'd also appreciate it if you stopped acting as if you are an expert at everything while giving misinformation.
DZgas Ж
Jim I've worked in web app development for decades and I can tell you that it is expensive. Not as expensive as something like AI - though some search engines are now implementing AI parts. In fact, Github has a blog where many posts talk about their ongoing changes and improvements to their search infrastructure. Just because you become frustrated by a service making a change doesn't mean it was done with malicious intent. With every company out there reducing costs it was likely done as part of that change. I'd also appreciate it if you stopped acting as if you are an expert at everything while giving misinformation.
2023-07-08 01:23:33
Of course I am an expert in everything, but who told you that? This is the first time I've seen people talk about me like that
Jim I've worked in web app development for decades and I can tell you that it is expensive. Not as expensive as something like AI - though some search engines are now implementing AI parts. In fact, Github has a blog where many posts talk about their ongoing changes and improvements to their search infrastructure. Just because you become frustrated by a service making a change doesn't mean it was done with malicious intent. With every company out there reducing costs it was likely done as part of that change. I'd also appreciate it if you stopped acting as if you are an expert at everything while giving misinformation.
2023-07-08 01:26:54
Understand my argument. The developers of github did not redo the function, did not optimize it, they did not do research on how it would be possible to do code search in any other way, did not create new technologies. They just banned it, removed the function for ordinary people. What kind of work can we talk about here? A completely disgusting and incompetent decision. And of course I will strike it. Because for decades there has not been a hint that this Suddenly causes problems. And then at once they took and removed the function completely. Do you have any idea how many possible solutions there were besides that? I would even be willing to solve the captcha with every code search. But github's decision is unworthy of my respect.
Jim I've worked in web app development for decades and I can tell you that it is expensive. Not as expensive as something like AI - though some search engines are now implementing AI parts. In fact, Github has a blog where many posts talk about their ongoing changes and improvements to their search infrastructure. Just because you become frustrated by a service making a change doesn't mean it was done with malicious intent. With every company out there reducing costs it was likely done as part of that change. I'd also appreciate it if you stopped acting as if you are an expert at everything while giving misinformation.
2023-07-08 01:27:41
> development for decades > is expensive This is your personal experience. Will there be real arguments?
Traneptora
2023-07-08 01:28:36
just log in bro
DZgas Ж
Traneptora just log in bro
2023-07-08 01:28:50
fuck them.
Traneptora
2023-07-08 01:29:08
?
2023-07-08 01:29:34
it's clearly designed to mitigate bots and scrapers
DZgas Ж
2023-07-08 01:29:39
To degrade the use of the platform to increase the number of registrations is an abomination
Traneptora
2023-07-08 01:30:13
that's obviously not the goal
DZgas Ж
Traneptora it's clearly designed to mitigate bots and scrapers
2023-07-08 01:31:01
Soon it will become a universal excuse
Traneptora
2023-07-08 01:31:18
don't slippery slope it
DZgas Ж
Traneptora don't slippery slope it
2023-07-08 01:32:22
one day I went to github to search for repositories there by name. And she told me that you can't look for ANYTHING here without registration at all. Not a single word. - a garbage dump and not a platform
2023-07-08 01:33:21
by the way 👆 gitlab now
VcSaJen
2023-07-08 01:34:04
They're just gotten bigger than they can reliably maintain. This is the first sign of the end.
DZgas Ж
2023-07-08 01:35:42
how do I download all existing github repositories? where is the download button?
2023-07-08 01:37:43
perhaps if github himself had made some 10,000 terabytes of torrent with all repositories at once, then there would have been no bots looking for something on the site. m?
VcSaJen
VcSaJen They're just gotten bigger than they can reliably maintain. This is the first sign of the end.
2023-07-08 01:45:10
I doubt that they'll permanently delete old repositories like gitlab did, but it's possible that they'll put them all in a cold storage, and you'll have to pay to retrieve it.
Jim
VcSaJen I doubt that they'll permanently delete old repositories like gitlab did, but it's possible that they'll put them all in a cold storage, and you'll have to pay to retrieve it.
2023-07-08 01:46:25
GItlab reversed their decision on that.
DZgas Ж
2023-07-08 01:50:56
obvious why
VcSaJen I doubt that they'll permanently delete old repositories like gitlab did, but it's possible that they'll put them all in a cold storage, and you'll have to pay to retrieve it.
2023-07-08 01:51:22
this will never happen
VcSaJen
2023-07-08 01:53:46
Free Github Actions likely will be first to go.
2023-07-08 01:54:18
Github Releases after that.
DZgas Ж
2023-07-08 01:54:37
🥱
Traneptora
2023-07-08 02:04:24
you guys are all gloom and doom about them trying to restrict their infrastructure to actual users rather than bots
Jim
2023-07-08 02:06:40
Since actions can potentially use a lot of cycles depending on what they do, it could be scaled back or removed at some point if finances get worse. I highly doubt releases will get removed. That's the main way many know when new versions are available. There would likely be outrage and it doesn't look like it takes much to make a release; Mostly just zip the files from a given tag, run any associated actions, and produce a page with whatever info/changelog the manager sees fit.
2023-07-08 02:26:00
I don't think people are doom and gloom. Taking away existing features that were, until recently, seen as a huge no-go and potentially a business killer. Now it's become common so people have trouble discerning how many changes would be made, largely as a result of economic shifts.
w
2023-07-08 06:02:43
people are entitled
2023-07-08 06:03:04
same thing with the whole YouTube ads/premium thing
Traneptora
2023-07-08 06:21:28
~~for those who don't use adblock, anyway~~
DZgas Ж
2023-07-08 06:32:17
~~or you can just live in a country where Google has disabled all advertising at all~~
w
2023-07-08 07:04:44
I'm waiting for YouTube to fully block ad blockers so I have an excuse to get premium and also get the higher quality video
Traneptora
2023-07-08 07:36:48
if youtube makes adblock stop working I'll just stop using youtube
2023-07-08 07:36:56
it's completely unusable with ads and I'm poor
elfeïn
w I'm waiting for YouTube to fully block ad blockers so I have an excuse to get premium and also get the higher quality video
2023-07-08 07:48:28
YouTube should have been nationalized.
2023-07-08 07:48:45
You can't change my mind on this.
2023-07-08 07:49:06
~~inb4 no politics~~
w
2023-07-08 07:49:06
you mean a public service?
2023-07-08 07:49:13
funded by taxes
elfeïn
2023-07-08 07:49:16
ye, paid for by taxes
2023-07-08 07:49:18
ye
w
2023-07-08 07:49:29
that's an option, can't disagree
elfeïn
2023-07-08 07:50:02
give it NASA budget
2023-07-08 07:52:04
NASA's budget is 58B$, which is 350$ per year per taxpayer.
w
2023-07-08 07:52:23
i guess a problem with that is the same as any other nationalized service being lack of competition
elfeïn
w i guess a problem with that is the same as any other nationalized service being lack of competition
2023-07-08 07:52:42
Oh yeah? And what does YouTube compete with?
w
2023-07-08 07:52:53
uhh
2023-07-08 07:52:56
tiktok
elfeïn
2023-07-08 07:53:06
It's not the same kind of content.
2023-07-08 07:53:18
But yeah, they do compete.
2023-07-08 07:55:15
But the fact that they provide and *should* provide different services (hot take: YouTube shouldn't market shorts the way tiktok does) means that no innovation is happening in Video Content Creation and Streaming Service, only Shitpost Content Creation and Streaming.
2023-07-08 07:56:24
And even then, all they do is copy each other.
2023-07-08 07:56:43
NASA has a budget for RnD.
2023-07-08 07:57:08
So a national content platform could, too.
2023-07-08 08:16:38
They could pay all of their 100k subs content creators with half the budget.
2023-07-08 08:16:48
But I guess that's where this falls apart.
2023-07-08 08:17:12
Without a flexible income, it qould be harder to pay creators.
jonnyawsom3
2023-07-08 08:18:02
I guess that's what sponsors are doing already
2023-07-08 08:18:13
Also maybe <#806898911091753051>
elfeïn
elfeïn They could pay all of their 100k subs content creators with half the budget.
2023-07-08 08:18:21
100k subs can make more than or up to 1800$/week, which times 306k (nunber of 100k subs creators) that's 28B$/year.
2023-07-08 08:18:23
o
Jim
elfeïn But the fact that they provide and *should* provide different services (hot take: YouTube shouldn't market shorts the way tiktok does) means that no innovation is happening in Video Content Creation and Streaming Service, only Shitpost Content Creation and Streaming.
2023-07-08 08:27:56
I remember back in the 2010 timeframe, YouTube used to tell it's creators that unique, longer-form (5-20 minutes), high quality did the best. Now with shorts its to produce as much low-quality content that they can. Granted, I also remember some asking if running more ads would get them more revenue. Their response was so little, it wouldn't be worth it. Now YT and other platforms have doubled and quadrupled the number of ads all while the creators see hardly any increase in revenue.
w
2023-07-08 08:33:51
I don't think it is an issue for creators. That's one of the main reasons people move off of twitch and tiktok to youtube.
2023-07-08 08:34:29
I'm pretty sure it's just the platform that isn't that profitable, hence the push to different model for monetization
2023-07-08 08:34:49
ad supported platforms just aren't a thing anymore/weren't ever a thing
2023-07-08 08:34:52
see twitter
2023-07-08 08:39:50
it's probably more sustainable if they cut bandwidth (something like maxing out at 480p)
2023-07-08 08:40:29
they are already trying that with the least friction (4k/higher bitrate for premium)
2023-07-08 08:41:37
there's the tie in to make it somewhat on topic
elfeïn
2023-07-08 10:29:23
Continues here :3 https://discord.com/channels/794206087879852103/806898911091753051/1127333609930502324
w
2023-07-08 10:33:49
no
elfeïn
w no
2023-07-08 10:37:06
>:3 wot
Fraetor
Traneptora it's clearly designed to mitigate bots and scrapers
2023-07-09 12:14:45
Probably not with GitHub search, as the have an actually decent API, which includes search.
gb82
2023-07-09 07:03:44
what's the current meta for converting XYB JPEG to RGB PNG
Traneptora
gb82 what's the current meta for converting XYB JPEG to RGB PNG
2023-07-10 02:57:38
`ffmpeg -i xyb.jpg -vf libplacebo=color_primaries=bt709:color_trc=iec61966-2-1:format=gbrp rgb.png`
gb82
2023-07-10 02:58:02
Thank you
spider-mario
2023-07-10 08:36:47
(`color_trc=13` may be easier to remember)
nec
2023-07-13 09:25:11
When I decode with djxl into png, some software can't properly display colors and I get darker pictures like here. Original on the left, decoded on the right. Any way to fix it? I've tried different combinations of --color_space, but it's either the same or even worse. Currently I just decode to jpeg with -q 100 as temporal solution. https://i.imgur.com/30MfCCz.png
yurume
2023-07-13 09:26:54
https://twitter.com/LukeGessler/status/1679211291292889100 lolol
spider-mario
nec When I decode with djxl into png, some software can't properly display colors and I get darker pictures like here. Original on the left, decoded on the right. Any way to fix it? I've tried different combinations of --color_space, but it's either the same or even worse. Currently I just decode to jpeg with -q 100 as temporal solution. https://i.imgur.com/30MfCCz.png
2023-07-13 10:11:37
would you have the original at hand? it sounds sort of related to https://github.com/libjxl/libjxl/issues/2289 but that should have been fixed
nec
spider-mario would you have the original at hand? it sounds sort of related to https://github.com/libjxl/libjxl/issues/2289 but that should have been fixed
2023-07-13 04:29:20
Seems I figured out a bit. This particular color problem is related to my default windows photo viewer, it distorts colors a lot, while other software like photoshop or xnview displays it correctly. I actually was dealing more with another situation. If we take a color like R50 G100 B50 and save as q100 jpeg, it becomes 50/100/49. If we losslessly transcode it into jxl and decode as png, it's going to turn it back into 50/100/50. Because I was always decoding into png without looking if it's transcoded jpeg or not, it was giving me ssimulacra score around 93 even when I was expecting lossless. The score is 100 if I decode it into jpeg.
gb82
Traneptora `ffmpeg -i xyb.jpg -vf libplacebo=color_primaries=bt709:color_trc=iec61966-2-1:format=gbrp rgb.png`
2023-07-13 09:29:27
I am getting `[libplacebo @ 0x562d041178c0] Failed opening ICC profile... ignoring` every time
Traneptora
gb82 I am getting `[libplacebo @ 0x562d041178c0] Failed opening ICC profile... ignoring` every time
2023-07-13 09:29:51
git master libplacebo?
gb82
2023-07-13 09:30:14
no, just using from the arch repos
2023-07-13 09:30:21
should I build from source
Traneptora
2023-07-13 09:31:34
you would have to, yea
gb82
2023-07-13 09:32:00
alright trying that
2023-07-13 09:37:19
now FFmpeg build fails with `undefined reference to 'pl_plane_data_from_comps'`
2023-07-13 09:37:40
cloning from `git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg`
Traneptora
2023-07-13 09:40:24
ye, although atm I think there's a bug in placebo's transfering
2023-07-13 09:40:26
so I'd hold off for now
2023-07-13 09:40:40
they recently did some work on git master that mighta messed with it
gb82
2023-07-13 10:50:23
Ah :(
2023-07-17 10:46:42
https://av1-community-contributors.github.io/av1-wiki.github.io/docs/images/jxl Hello, if anyone want so help us out & make an entry for JPEG-XL on the Codec Wiki, feel free. I'm gonna make an attempt otherwise, but I figure many of you are more well versed that I am
w
2023-07-17 10:56:38
<https://av1-community-contributors.github.io/av1-wiki.github.io/docs/FAQ#why-not-use-mediawiki> > Not modern enough, the goal is to attract zoomers with fancy animations and eye candy.
2023-07-17 10:56:58
🤮
gb82
2023-07-17 11:08:26
uhh .... that's not my writing
2023-07-17 11:08:39
this used to be a very different project, ignore that stuff 😭
w
2023-07-17 11:17:54
I wouldn't want to participate in something like that
2023-07-17 11:24:57
I guess they just made another guide.encode.moe
gb82
w I wouldn't want to participate in something like that
2023-07-17 11:51:13
we're still in the process of cleaning it up. again, started as a lighthearted guide, became an actual wiki
yoochan
2023-07-18 07:41:53
the jpeg xl page is here : https://av1-community-contributors.github.io/av1-wiki.github.io/docs/images/jxl it doesn't cost much to put here a compilation of either the wikipedia article or the jpegxl.info website
gb82
2023-07-19 01:17:34
ykw I'll just do it myself. I have a couple more entries to add before doing JXL. Also, the URL will be changed
VcSaJen
2023-07-19 03:14:51
Is it a real wiki, or git PR red tape nightmare?
Posi832
2023-07-19 08:18:36
.\cjpegli.exe --xyb ..\freddy.png ..\freddy2.jpg. The colors get weird and the image gets stretched. Is this a known issue?
2023-07-19 08:22:18
Using the 64-bit build from 17th July from https://artifacts.lucaversari.it/libjxl/libjxl/latest/ btw
fab
2023-07-19 09:58:15
Yes I also had this issue
jonnyawsom3
2023-07-19 12:28:25
Seems to be a similar effect but only in dark areas for me
Posi832
2023-07-19 01:02:25
: /
jonnyawsom3
Posi832 .\cjpegli.exe --xyb ..\freddy.png ..\freddy2.jpg. The colors get weird and the image gets stretched. Is this a known issue?
2023-07-19 01:12:33
Ohh of course, the preview on discord makes it green because of XYB, didn't realise it was almost black and white
Traneptora
Posi832 .\cjpegli.exe --xyb ..\freddy.png ..\freddy2.jpg. The colors get weird and the image gets stretched. Is this a known issue?
2023-07-19 01:28:14
open an issue on the tracker :)
CrushedAsian255
2023-07-19 11:29:39
it also has really weird moire effect when zooming in and out
2023-07-19 11:29:45
at least on MacOS
Posi832 .\cjpegli.exe --xyb ..\freddy.png ..\freddy2.jpg. The colors get weird and the image gets stretched. Is this a known issue?
2023-07-20 12:00:24
is that `.jpg` file a JPEG or JPEG XL file?
VcSaJen
CrushedAsian255 is that `.jpg` file a JPEG or JPEG XL file?
2023-07-20 12:32:18
jpegli
190n
2023-07-20 12:33:48
well, jpegli produces JPEG files
2023-07-20 12:33:54
it's just an alternative encoder for the same format
w
2023-07-20 03:03:31
i spent a day with an OLED HDR monitor (acer x27u) and can confidently say that HDR sucks and OLED sucks
2023-07-20 07:28:56
yes
2023-07-20 07:35:13
you can't calibrate hdr so using it for desktop will always suck and oled has worse viewing angles than IPS. response times only matter to gamers and deeper blacks are only noticable if you dont have lights
2023-07-20 07:39:26
all that for $1000
spider-mario
2023-07-20 07:39:35
doesn't suck on macOS
Posi832
CrushedAsian255 is that `.jpg` file a JPEG or JPEG XL file?
2023-07-20 07:53:10
It's a jpeg. Turns out the png has an alpha channel which messes with jpegli when using xyb
w
2023-07-20 07:54:59
oh yeah also the oled dimming thing is extremely annoying
plate
2023-07-20 12:31:24
$1000 sounds p cheap for OLED
2023-07-20 12:32:16
>gamer monitor
2023-07-20 12:32:55
yeah don't expect too much visual quality if it's marketed for gamers, these mostly optimize for response times
w
2023-07-20 12:54:18
there are only 4 oled monitors on the market
2023-07-20 12:54:23
they all cost the same
2023-07-20 12:54:51
and they all have the same panel
2023-07-20 12:56:52
I was able to calibrate it in sdr at a low brightness and the results are very good, but not impressive
2023-07-20 12:57:04
but that's about it
2023-07-20 01:02:15
if you've got a monitor in mind i'm up for buying and returning again
2023-07-20 01:02:35
i've become one of those people
jonnyawsom3
2023-07-20 01:02:49
My phone's got an early OLED screen, over 6 years old now and still no burn in whatsoever, even with the android UI, frequent use of the same apps, ect
plate
2023-07-20 01:03:02
was thinking more in lines of LG 32EP950-B (and possibly PA32DCM in the future). idk availability wise but seems less refresh rate / response focused and more into color quality
w
2023-07-20 01:03:50
I'm very happy with my phone's OLED, but the monitor oled (currently, LG WOLED) is completely different
plate
2023-07-20 01:04:01
it's not a year of OLED desktop yet
w
2023-07-20 01:04:19
wait long enough and microled will become a thing
2023-07-20 01:07:21
i guess my issue with oled is lg woled
2023-07-20 01:07:57
but my issues with hdr (on windows, wayland still dead) still stand
Quackdoc
2023-07-20 01:11:31
ahh wayland, maybe we will finally have HDR in 2060
BlueSwordM
w you can't calibrate hdr so using it for desktop will always suck and oled has worse viewing angles than IPS. response times only matter to gamers and deeper blacks are only noticable if you dont have lights
2023-07-21 03:42:43
You can calibrate HDR. You just need capable equipment to do so. High contrast is very important. Even in my lit room, the difference between a VA panel and an IPS panel is noticeable, let alone an OLED. Response times doesn't only matter to gamers. Scrolling on a low response time display is sublime. Worse viewing angles is false: they either have as good or even better viewing angles. Besides, even an off-axis capable OLED display has better viewing characteristics than an IPS display 😂
w
2023-07-21 07:00:40
how do you calibrate HDR
2023-07-21 07:00:45
what software supports HDR profiling
2023-07-21 07:01:31
how is it better if it I look at it and it's worse
2023-07-21 07:03:23
higher contrast is noticeable, but you can't just change the tone curve to whatever you like. it's wrong
Quackdoc
2023-07-21 07:10:55
what do you mean by calibrating for HDR?
w
2023-07-21 07:11:08
profiling the display
2023-07-21 07:11:54
as in measure the capabilities of the display so software can use it to render things correctly
2023-07-21 07:12:52
afaict, nothing can do it
2023-07-21 07:14:39
theoretically, I should be able to have a 100 nit sRGB green next to a 100 nit P3 green next to a 1000 nit P3 green
2023-07-21 07:14:50
but that's not possible
Quackdoc
2023-07-21 07:15:33
? calman can handle this fine
w
2023-07-21 07:16:44
so does anyone want to buy me calman
Quackdoc
2023-07-21 07:17:13
you want to calibrate for `HDR 2084 P3/p3-st-2084` probably which is PQ in dci-p3
w
2023-07-21 07:18:54
argyll cms and displaycal also have the option, but it's unusable outside of a madvr 3dlut tonemap in SDR mode
2023-07-21 07:26:37
oh right calman just updates the tonemapping on the TV
2023-07-21 07:28:40
oh yeah OLED also drifts like crazy
lonjil
2023-07-21 07:29:40
If I need calibratedish HDR I use my iPad 🙃
Quackdoc
2023-07-21 09:23:42
if I need calibrated HDR I just cry because I cant afford anything good and sold all of my semi-decent stuff lol
lonjil
2023-07-21 09:25:08
😔
Quackdoc
2023-07-22 02:54:42
gonna be waiting a long time friend lol
gb82
2023-07-22 03:00:36
😭
w
2023-07-22 03:05:14
i realized hdr effect is attainable by just tone mapping hdr signal to the correct value in sdr mode as long as the white level is at peak brightness
Quackdoc
2023-07-22 03:14:36
thats not a great time
2023-07-22 03:15:00
I mean, it's fine if the HDR content is that much better than the SDR version of whatever you're consuming. but that's generally not the case
2023-07-22 03:15:33
that being said, oooh boy are there exceptions
w
2023-07-22 03:19:40
yeah hdr content is rarely better than the sdr version
2023-07-22 03:20:35
and the wider gamut is ~~rarely~~ not even used
Quackdoc
2023-07-22 03:21:04
it's not even that, just, tonemapping SDR->HDR is significantly easier then doing HDR->SDR
2023-07-22 03:21:28
I would argue that in a lot of cases, for legitimately good HDR->SDR it needs to be done on per content basis
w
2023-07-22 03:21:48
i dont mean tonemapping hdr to sdr
2023-07-22 03:21:56
i mean tonemapping hdr to a display in sdr mode
Quackdoc
2023-07-22 03:22:42
is that not the same thing?
w
2023-07-22 03:22:54
tonemapping to the display by profiling
2023-07-22 03:23:33
so like, the display produces this color at this amount of light when you send it this rgb value
Quackdoc
2023-07-22 03:23:49
sounds like normal ICC based tonemapping
w
2023-07-22 03:24:19
yeah I just mean HDR is achieved like that through software
2023-07-22 03:25:06
I guess i really didnt say anything if the only way to do that is with the madvr 3dlut anyway
Quackdoc
2023-07-22 03:25:38
well IIRC MPV can use ICC profiles for tonemapping, but you could also maybe do it with OCIO
w
2023-07-22 03:26:19
can you do hdr with icc clut?
Quackdoc
2023-07-22 03:27:02
no idea, not something I ever cared to look into
w
2023-07-22 03:32:06
there's probably a reason it has to use eecolor 3dlut
2023-07-22 03:32:40
whatever i already returned the monitor for my $1600 back
Traneptora
w can you do hdr with icc clut?
2023-07-22 07:41:02
I'm pretty sure it can, although that's more of a question for haasn
nec
2023-07-22 10:20:04
When I mask image with alpha channel and delete all unused pixels, sometimes I get smaller size after blurring this mask with 4x4-16x16 kernel (0 or 1, just expansion). It's quite interesting, because I store much more information and still get smaller size, so I suppose that masking some individual pixels just makes it harder to compress due to complex shapes. Would I get even smaller size if I mask based on image blocks, like ceiling odd indexes or using some kind of threshold, for example, if 256x256 contains more than some number of pixel values, then use whole block instead? If not, then look at smaller block and repeat.
afed
2023-07-25 05:40:10
> Intel Advanced Vector Extensions 10 (AVX10) is a new ISA that includes "all the richness" of AVX-512 and additional features/capabilities while being able to work for both P and E cores. Intel says AVX10 will be "the vector ISA of choice" moving into the future. > Part of making AVX10 suitable for both P and E cores is that the converged version has a maximum vector length of 256-bits and found with the E cores while P cores will have optional 512-bit vector use. > > Existing AVX2-based software could be able to be recompiled for Intel AVX10 in the future and that alone is enough to deliver performance gains. Intel will also be rolling out AVX10-optimized software moving forward.
lonjil
2023-07-25 08:54:38
> Part of making AVX10 suitable for both P and E cores is that the converged version has a maximum vector length of 256-bits and found with the E cores while P cores will have optional 512-bit vector use. would still make moving processes between cores annoying
gb82
spider-mario slightly convoluted for now (export as EXR, for example using darktable, then grade the EXR in DaVinci Resolve, export as still in TIFF, and compress the TIFF to JXL/AVIF/whatever), but it may become more convenient once it’s implemented in Lightroom
2023-07-26 01:39:14
Was trying this today & getting an error trying to encode .tif files exported from Darktable with cjxl. Does libjxl support TIFF input?
2023-07-26 04:26:29
Hmmm. Wondering how to properly deal with HDR JXL
2023-07-26 04:26:53
As in exporting an EXR from a Darktable HDR DNG & converting to JXL somehow while keeping HDR
spider-mario
gb82 As in exporting an EXR from a Darktable HDR DNG & converting to JXL somehow while keeping HDR
2023-07-26 08:30:36
this may be helpful: https://github.com/libjxl/libjxl/blob/main/tools/hdr/exr_to_pq.cc
2023-07-26 08:30:58
if you build libjxl with devtools enabled, this will be built and found in `tools/`
2023-07-26 08:31:28
(the `hdr` subdirectory is only in the source tree, it is not reproduced in the build directory)
gb82
2023-07-29 02:57:57
my first HDR attempt :P don't have an HDR monitor so kinda shots in the dark
spider-mario
2023-07-29 05:25:17
``` [19:23:27] Finished work at: Sat Jul 29 19:23:27 2023 M[u1x9i:n2g3:: 2t7h]i sl imbahyb :t awkoer ka wrheisluel.t. .= 0 Encode done! ``` I think HandBrakeCLI is trying to tell me something
diskorduser
2023-07-29 05:25:59
Alien 👽 language
_wb_
2023-07-29 05:55:46
It encoded the output log 🙂
spider-mario
2023-07-29 06:05:46
I think I can discern “Muxing” at the beginning
Cool Doggo
2023-07-29 07:27:19
```Muxing: this may take awhile... [19:23:27] libhb: work result = 0```
2023-07-29 07:28:08
the characters were just alternating in that line 🤔
_wb_
2023-07-29 07:38:36
How could that happen? Writing to stdout in two threads and somehow flushing at every character instead of at line breaks?
190n
2023-07-29 07:56:15
maybe it was stderr? iirc that's typically flushed immediately
Nova Aurora
lonjil > Part of making AVX10 suitable for both P and E cores is that the converged version has a maximum vector length of 256-bits and found with the E cores while P cores will have optional 512-bit vector use. would still make moving processes between cores annoying
2023-07-30 06:34:56
You know what AVX-512, the instruction set that has never seen a complete implementation of needs? More fragmentation!
Kingproone
2023-07-30 06:33:34
so i converted this picture with: -j 0 -d 2 -e 9, with 0.8.2, and the jxl one looks way more colourful, (imo it looks better) but it really shouldn't differ
Traneptora
Kingproone so i converted this picture with: -j 0 -d 2 -e 9, with 0.8.2, and the jxl one looks way more colourful, (imo it looks better) but it really shouldn't differ
2023-07-30 06:36:40
it appears the original JPEG has a weird ICC profile
2023-07-30 06:36:52
or rather
2023-07-30 06:36:57
not weird but it's Adobe RGB 1998
2023-07-30 06:37:05
which is not sRGB
2023-07-30 06:38:03
cjxl with -j 0 is using an XYB transform and when you view the resulting JXL file you're viewing it in sRGB, clipped
190n
2023-07-30 06:38:11
keep in mind discord ignores color profiles
Traneptora
2023-07-30 06:38:28
so whatever software you're using to view the JPEG is not properly color mananging
190n
2023-07-30 06:38:35
so anything with a wider gamut than srgb will appear incorrectly washed out in discord
Kingproone
Traneptora so whatever software you're using to view the JPEG is not properly color mananging
2023-07-30 06:39:43
yea, thats the problem
190n
Kingproone so i converted this picture with: -j 0 -d 2 -e 9, with 0.8.2, and the jxl one looks way more colourful, (imo it looks better) but it really shouldn't differ
2023-07-30 06:39:49
if i open this image in gimp, i can either convert to srgb or keep the embedded color profile, and either way it looks more saturated than the discord preview
2023-07-30 06:39:53
and it looks identical to the jxl
Kingproone
2023-07-30 06:40:28
well the problem is with qimgv in this case
Traneptora
2023-07-30 06:41:29
interestingly, cjxl tags it with "unknown" primaries
Kingproone
2023-07-30 06:42:08
so 2 bugs found with 1 image?
Traneptora
2023-07-30 06:42:40
hm?
Kingproone
2023-07-30 06:43:10
well, cjxl not knowing it, and qimgv not showing properly
Traneptora
Kingproone so i converted this picture with: -j 0 -d 2 -e 9, with 0.8.2, and the jxl one looks way more colourful, (imo it looks better) but it really shouldn't differ
2023-07-30 06:44:14
what's the copyright on the image
Kingproone
2023-07-30 06:44:47
no idea, downloaded it like a decade ago
Traneptora
2023-07-30 06:46:45
https://commons.wikimedia.org/wiki/File:Defense.gov_News_Photo_080804-A-8725H-341.jpg
2023-07-30 06:47:02
looks like it's US Gov't, which makes it public domain in the US
2023-07-30 06:47:31
I don't like uploading copyrighted images to the issue tracker
Kingproone
2023-07-30 06:47:54
i see
CrushedAsian255
Kingproone so i converted this picture with: -j 0 -d 2 -e 9, with 0.8.2, and the jxl one looks way more colourful, (imo it looks better) but it really shouldn't differ
2023-07-31 07:53:30
also just wondering is this a photo from some kind of war or something?
Traneptora
CrushedAsian255 also just wondering is this a photo from some kind of war or something?
2023-07-31 09:27:02
US War in Iraq
2023-07-31 09:27:12
the file has a bunch of geo metadata, it was taken in Baghdad
BlueSwordM
Nova Aurora You know what AVX-512, the instruction set that has never seen a complete implementation of needs? More fragmentation!
2023-08-01 04:06:12
AVX10 is the opposite of fragmentation on Intel SKUs.
DZgas Ж
2023-08-01 07:17:33
I have an image in PNG that used to be in JPEG and has the corresponding artifacts. Is there a way, or a __*theoretical proof of the possibility of this*__, that would make it possible to make Jpeg lossless compression relative to an image already compressed once (that is, to make an identical structure of information)
2023-08-01 07:21:00
I have reason to believe that this is possible due to the fact that in theory it is possible to iterate over all possible variants of DHT 8x8 until the variant with completely identical pixels is found. But I have doubts about the possibility due to the subsequent construction of a Huffman tree that cannot exactly be identical.
jonnyawsom3
2023-08-01 07:45:15
Anything is possible, so long as you have the time and resources ;P
2023-08-01 07:48:04
Although if you're iterating over everything, at that point you might as well try to recrate the original image completely
DZgas Ж
Although if you're iterating over everything, at that point you might as well try to recrate the original image completely
2023-08-01 07:52:07
I'm not going to do it, I'm just curious. Maybe in this chat, maybe even knows about whether this question was asked before me...
_wb_
2023-08-01 08:52:03
The dct coeffs you could in principle recreate from the pixels (not sure if the solution is unique). How they are entropy coded in a jpeg bitstream is not something you can know at all from pixels.
spider-mario
2023-08-01 09:09:57
chroma subsampling might also make things trickier
veluca
2023-08-01 09:13:53
not obvious to me how you figure out the quantization matrix in the general case, either
_wb_
2023-08-01 09:27:39
make a histogram of dequantized coeffs, look for peaks aligning with multiples
DZgas Ж
veluca not obvious to me how you figure out the quantization matrix in the general case, either
2023-08-01 07:55:16
in general, the first thing I thought - why not create all possible variants of encoded dct 8x8 images ... until I realized that this is a mathematically impossible task due to the large number of options......... ...is to compress each 8x8 block separately on all quality parameters from q0 to q100 and choose the one that suits the most according to the corresponding pixels, and so separate for each block....it's just a pity that it can't work at all, because there is such a thing as re-compression degradation... in fact, of course, a big thing like reverse decoding: To be more precise, it's all similar to how the creation of sound and music works only according to the graphical image of the spectrogram What is used to clone the voice or in some projects to increase the duration of the sound while preserving the tone (which is a violation of physical laws, but the neural network can make it) It seems to me that only a neural network that will be trained on what data was in the original Jpeg, and what data was obtained in the image, will be able to recreate the image data approximately but as similar as possible...
jonnyawsom3
2023-08-02 02:36:07
I know after seeing this <https://vectorizer.ai/> I thought about NN spline encoding in JXL, but at that point you might as well make a full encoder, which JPEG is already working on
_wb_
2023-08-02 05:25:55
JPEG AI is a full AI-based codec, also the decoder uses AI. Doing an AI encoder into a non-AI codec is interesting but not something JPEG is doing — in general they don't really do encoders at all since what gets standardized is always only the decoder.
jonnyawsom3
2023-08-02 06:36:04
Ah right, and good point
2023-08-06 09:35:00
Had some of his videos posted here before about image formats, nice to see JXL mentioned multiple times in the comments too https://youtu.be/68H1H6Z_gz4
BlueSwordM
Had some of his videos posted here before about image formats, nice to see JXL mentioned multiple times in the comments too https://youtu.be/68H1H6Z_gz4
2023-08-06 04:33:29
Obviously I couldn't resist posting comments on a video like this.
qdwang
2023-08-10 07:37:10
Hi guys, I'd like to check the spec of JPEG XL, is buying this pdf from ISO/IEC 18181(https://www.iso.org/standard/77977.html) a must?
veluca
2023-08-10 08:02:55
the theoretical answer is yes
2023-08-10 08:03:30
in practice, some people might sometimes by mistake put a copy somewhere
_wb_
2023-08-10 08:12:24
Also I wouldn't buy the first edition, the second edition is more accurate
2023-08-10 08:13:12
Even a draft of the 2nd edition is better than the published version of the 1st edition
Traneptora
2023-08-10 04:16:12
we've been ironing out a lot of spec issues
2023-08-10 04:16:24
see <#1021189485960114198> for an up to date draft
uis
2023-08-14 01:42:44
What would you recommend as metric for difference in pixelart? What I want is to assign weights to changed pixels and find more important to pixelart.
nec
2023-08-14 03:23:30
As quality metric or some kind of filesize influence? Last time I'm pondering about similar problem. Overall, I like ssimulacra 2.1, but it has some small problems for images with flat regions. Because such regions always have the same value, even after using extremely low quality settings for encoders like jxl q=40 or avif cq-level=40, we still get 90-100% score, because these values usually do not change. It means that quality scores for images with flat regions and without it are slightly different and can't be directly compared. Here is artificially created situation to demonstrate it. I take the same image and simply add regions of different sizes with a single black color value to see how it influences overall ssimu score. https://i.imgur.com/e0JnsWw.png Original encoding doesn't change and you can see how original 63 quality score becomes 79 once 93% of it are flat regions. Such situation is extremely unlikely to happen in real life, but when we talk about drawing, pixelart and similar images, it's actually quite common. Look at simple image like this one: https://www.boredpanda.com/blog/wp-content/uploads/2021/11/Hey-Pandas-Post-your-best-or-any-pixel-art-that-u-have-created-right-here-618b7194c5378__700.jpg It mostly consist of repeating colors. And even if we talk about significantly smaller areas like 1/3 of image, we can see some influence ~2 ssimu score. One of possible solutions would be to segment our image and see how much ssimulacra score varies and if it varies at all. If we count such segmented score, then it gives me original 63 quality for the segment with original image and 100 score for the rest. We can judge overall quality of the whole picture and the worst/best parts of it.
2023-08-14 03:23:34
Another problem is that small color variation can include a lot of details that are lost after quantization. And this problem is trickier, because we need to judge if such quantization is perceivable or not and if it influences visual quality. For example, if we take white noise and change some values, visual quality doesn't change much, because it's still white noise. But if we take pixelart, like a tree with leaves that barely differ from remain colors, and after quantization this color difference disappers, we have a tree without leaves and huge visual lose. I'm not sure if such metric is even possible without AI. Currently I'm thinking about comparing the change, where variety to another variety conversion is punished less than variety to completely flat area. But such approach just makes sure that details remain, rather than what details are important and what aren't.
BlueSwordM
nec As quality metric or some kind of filesize influence? Last time I'm pondering about similar problem. Overall, I like ssimulacra 2.1, but it has some small problems for images with flat regions. Because such regions always have the same value, even after using extremely low quality settings for encoders like jxl q=40 or avif cq-level=40, we still get 90-100% score, because these values usually do not change. It means that quality scores for images with flat regions and without it are slightly different and can't be directly compared. Here is artificially created situation to demonstrate it. I take the same image and simply add regions of different sizes with a single black color value to see how it influences overall ssimu score. https://i.imgur.com/e0JnsWw.png Original encoding doesn't change and you can see how original 63 quality score becomes 79 once 93% of it are flat regions. Such situation is extremely unlikely to happen in real life, but when we talk about drawing, pixelart and similar images, it's actually quite common. Look at simple image like this one: https://www.boredpanda.com/blog/wp-content/uploads/2021/11/Hey-Pandas-Post-your-best-or-any-pixel-art-that-u-have-created-right-here-618b7194c5378__700.jpg It mostly consist of repeating colors. And even if we talk about significantly smaller areas like 1/3 of image, we can see some influence ~2 ssimu score. One of possible solutions would be to segment our image and see how much ssimulacra score varies and if it varies at all. If we count such segmented score, then it gives me original 63 quality for the segment with original image and 100 score for the rest. We can judge overall quality of the whole picture and the worst/best parts of it.
2023-08-14 03:31:01
If you use a tool like ssimulacra2_rs, you will get additional data on what the scores are throughout the image: https://github.com/rust-av/ssimulacra2_bin https://github.com/rust-av/ssimulacra2
2023-08-14 03:32:52
It's been a while since I've used mainline SSIMU2 and I'm on a very new clean system, so haven't installed it yet to check if it has scores other than the average.é
_wb_
2023-08-14 03:35:47
ssimulacra2 uses a mix of 1-norm and 4-norm. To be fully robust to adding 'easy flat background', you need inf-norm (max error). That does basically mean that the single worst region fully determines the score, which is good to have guarantees but not so good for correlation with subjective scores.
2023-08-14 03:37:54
For comparison, the usual ssim (or ms-ssim) uses just the 1-norm (so just the average value of the heat map) so easy backgrounds bump up the score a lot. Ssimu2 is better in that respect, but not as good as something with a maxnorm like butteraugli-max
elfeïn
nec As quality metric or some kind of filesize influence? Last time I'm pondering about similar problem. Overall, I like ssimulacra 2.1, but it has some small problems for images with flat regions. Because such regions always have the same value, even after using extremely low quality settings for encoders like jxl q=40 or avif cq-level=40, we still get 90-100% score, because these values usually do not change. It means that quality scores for images with flat regions and without it are slightly different and can't be directly compared. Here is artificially created situation to demonstrate it. I take the same image and simply add regions of different sizes with a single black color value to see how it influences overall ssimu score. https://i.imgur.com/e0JnsWw.png Original encoding doesn't change and you can see how original 63 quality score becomes 79 once 93% of it are flat regions. Such situation is extremely unlikely to happen in real life, but when we talk about drawing, pixelart and similar images, it's actually quite common. Look at simple image like this one: https://www.boredpanda.com/blog/wp-content/uploads/2021/11/Hey-Pandas-Post-your-best-or-any-pixel-art-that-u-have-created-right-here-618b7194c5378__700.jpg It mostly consist of repeating colors. And even if we talk about significantly smaller areas like 1/3 of image, we can see some influence ~2 ssimu score. One of possible solutions would be to segment our image and see how much ssimulacra score varies and if it varies at all. If we count such segmented score, then it gives me original 63 quality for the segment with original image and 100 score for the rest. We can judge overall quality of the whole picture and the worst/best parts of it.
2023-08-14 03:49:23
woah a gost
DZgas Ж
2023-08-14 06:04:20
the best and fastest way to transcode 50 thousand jpeg to jxl images is to write a python/bash script? cjxl, like all similar programs, accepts only single files for input?
Fraetor
DZgas Ж the best and fastest way to transcode 50 thousand jpeg to jxl images is to write a python/bash script? cjxl, like all similar programs, accepts only single files for input?
2023-08-14 06:23:47
Yeah, cjxl can only do a single file at a time. I've attached my program to do it. It should work so long as you have python and cjxl on your PATH. By default it removes the original for successfully transcoded files. ## Usage ``` usage: jxl-convert [-h] [-d DISTANCE] [-r] [-q | -v] [target_directory] Bulk convert images to JPEG XL. positional arguments: target_directory Directory to convert. If omitted, defaults to the current directory. options: -h, --help show this help message and exit -d DISTANCE, --distance DISTANCE Max. butteraugli distance, where lower means higher quality. 0 is mathematically lossless (default), 1.0 is visually lossless. The recommended range is 0.5 to 3.0. -r, --recursive Recurse into subdirectories. -q, --quiet Suppress progress output. -v, --verbose Explain what is being done. ```
_wb_
2023-08-14 06:24:15
`for i in *.jpg; do cjxl $i $i.jxl; done`
spider-mario
2023-08-14 06:56:40
``` parallel cjxl '{}' '{.}'.jxl ::: *.jpg ```
nec
DZgas Ж the best and fastest way to transcode 50 thousand jpeg to jxl images is to write a python/bash script? cjxl, like all similar programs, accepts only single files for input?
2023-08-14 06:59:11
Optionally you can use https://pypi.org/project/imagecodecs/ . It partially supports jxl encoding/decoding. But probably won't be faster than subprocess or bash.
DZgas Ж
nec Optionally you can use https://pypi.org/project/imagecodecs/ . It partially supports jxl encoding/decoding. But probably won't be faster than subprocess or bash.
2023-08-14 09:25:15
I would like to use specific executable cjxl files of the latest versions, so this not for me
2023-08-14 09:27:47
<@604964375924834314><@794205442175402004>you have written very small scripts, apparently they are for linux. I will need to figure out the terminal language that is in CMD and do something similar. day after tomorrow
2023-08-14 09:28:43
<:Windows:806135372298977342>
Fraetor Yeah, cjxl can only do a single file at a time. I've attached my program to do it. It should work so long as you have python and cjxl on your PATH. By default it removes the original for successfully transcoded files. ## Usage ``` usage: jxl-convert [-h] [-d DISTANCE] [-r] [-q | -v] [target_directory] Bulk convert images to JPEG XL. positional arguments: target_directory Directory to convert. If omitted, defaults to the current directory. options: -h, --help show this help message and exit -d DISTANCE, --distance DISTANCE Max. butteraugli distance, where lower means higher quality. 0 is mathematically lossless (default), 1.0 is visually lossless. The recommended range is 0.5 to 3.0. -r, --recursive Recurse into subdirectories. -q, --quiet Suppress progress output. -v, --verbose Explain what is being done. ```
2023-08-14 09:29:19
this code is too big.
afed
2023-08-14 09:37:02
<https://github.com/sharkdp/fd> `fd -e jpg -j 4 -x cjxl "{}" "{.}.jxl" --num_threads 0` `-j, --threads <num> Set number of threads to use for searching & executing (default: number of available CPU cores)`
spider-mario
DZgas Ж <@604964375924834314><@794205442175402004>you have written very small scripts, apparently they are for linux. I will need to figure out the terminal language that is in CMD and do something similar. day after tomorrow
2023-08-14 10:04:37
`parallel` is a perl script https://www.gnu.org/software/parallel/
2023-08-14 10:04:48
(although there are other implementations of the same interface)
2023-08-14 10:05:57
(for example https://gitlab.redox-os.org/redox-os/parallel)
Quackdoc
2023-08-14 10:09:45
I personally use the old parallel from https://github.com/mmstick/parallel since the new parallel relies on ionshell so it;s incompatible with windows
DZgas Ж
2023-08-15 05:01:31
<@184373105588699137> <@604964375924834314> Parallelization does not interest me at all. It's not difficult for me to move all my files to 4 folders and run 4 terminals on my 4 cores
nec
2023-08-15 06:36:59
Here is a demonstration of my current approach I'm working on. For jpeg images I count the difference between minimum and maximum values in pixel blocks of 8x8 size and count what % of a whole image contains values 0, <=3, <=5, <=8, <=30. The same for encoded images. All below examples are animated, if it doesn't work in discord, try to open original links. Here is a pixel art with % values 4, 4, 4, 5, 10. 90% of blocks for such image have a high color variety and it typically means that even significantly lower ssimulacra 2.1 scores would be visually appealing. There are some color changes, but details remain and this example is a difference between original and jxl q=82 with ssimulacra score 70.94 and % values 1, 3, 4, 5, 10. Such drop of 0 color difference for jxl/avif blocks is common, because it uses significantly bigger blocks and 8x8 segments can easily get slight 1-2 values variety. https://i.imgur.com/I6RJmlP.png Here is more extreme example with a dithered cat image. Original % values are 0, 0, 0, 0, 0. All blocks have differences above 30 RGB values. It's compared with jxl q=60 that produces 29.7 ssimu score and the same % values. Despite we have significant color changes, the overall shape remains the same and many people would still find it appealing enough. https://i.imgur.com/tVJBFTw.png
2023-08-15 06:37:08
The opposite situation can be something like skin tone. This image has % values 1, 5, 11, 25, 80. Almost all blocks are within 30 pixel color difference, and 25% are within 8. It's compared with jxl q=53 that produces 70.9 ssimu score and jxl q=78 that produces 80 ssimu score. Both have significant block changes at 1, 17, 31, 48, 82 and 1, 10, 22, 41, 81. Such soft images typically require significantly higher ssimulacra score around 86-88 to retain all details, otherwise it's going to be flattened after quantization and it's easily perceivable. https://i.imgur.com/SMqfzXc.png Such approach isn't perfect, but it shows some potential to be able to judge if picture would be good at 70-80 or it would be awful and we need to push it up to 88. There is a huge filesize difference between the two. The higher threshold can be used to split soft/varied images and lower thresholds can be used to see how many blocks are flattened after quantization.
2023-08-15 02:12:00
Fundamentally it's probably an idea to make ssim map output depend on image frequencies.
DZgas Ж
2023-08-16 02:59:43
I found some strange nonamesite, but it has ready-made ffmpeg builds with extremely exotic codecs like svt-vp9, I think I worth sharing it https://jeremylee.sh/bins/
2023-08-16 03:01:06
<@132637059327328256> oh its you
Fox Wizard
2023-08-16 03:03:10
<:KekDog:884736660376535040>
DZgas Ж
DZgas Ж <@604964375924834314><@794205442175402004>you have written very small scripts, apparently they are for linux. I will need to figure out the terminal language that is in CMD and do something similar. day after tomorrow
2023-08-17 09:34:21
as a result, my hands never got to that
afed <https://github.com/sharkdp/fd> `fd -e jpg -j 4 -x cjxl "{}" "{.}.jxl" --num_threads 0` `-j, --threads <num> Set number of threads to use for searching & executing (default: number of available CPU cores)`
2023-08-17 09:34:46
I chose this solution. it works well for me, thanks for it
spider-mario
DZgas Ж <@184373105588699137> <@604964375924834314> Parallelization does not interest me at all. It's not difficult for me to move all my files to 4 folders and run 4 terminals on my 4 cores
2023-08-17 10:40:31
I forgot to mention that if you parallelise like that, you’ll have to balance the size of the various folders to really benefit
2023-08-17 10:41:15
vs. something less ad hoc where the various threads pull from the same queue so that they don’t become idle while another thread still has several images to process
Oleksii Matiash
spider-mario vs. something less ad hoc where the various threads pull from the same queue so that they don’t become idle while another thread still has several images to process
2023-08-18 03:59:03
I just wrote small python script that traverses files in the tree, and can call arbitrary number of cjxl (also takes a limiter from args, to avoid ram overflow, because my cpu has 16 physical cores). So it uses 100% of CPU until number of still-not-compressed files is lower than core count
DZgas Ж
spider-mario I forgot to mention that if you parallelise like that, you’ll have to balance the size of the various folders to really benefit
2023-08-18 08:27:24
This is true.... But how could you forget that the jxl transcoding itself is parallelized. While working, I realized that I didn't need any parallelization <:JXL:805850130203934781>
Oleksii Matiash I just wrote small python script that traverses files in the tree, and can call arbitrary number of cjxl (also takes a limiter from args, to avoid ram overflow, because my cpu has 16 physical cores). So it uses 100% of CPU until number of still-not-compressed files is lower than core count
2023-08-18 08:29:23
For such work, a python script is too much. Like https://discord.com/channels/794206087879852103/794206087879852106/1140712391089332457
uis
2023-08-18 08:06:28
I was asking for purpose of comparing canvas on events like r/place with template and assigning damaged pixels weights or priority.
nec As quality metric or some kind of filesize influence? Last time I'm pondering about similar problem. Overall, I like ssimulacra 2.1, but it has some small problems for images with flat regions. Because such regions always have the same value, even after using extremely low quality settings for encoders like jxl q=40 or avif cq-level=40, we still get 90-100% score, because these values usually do not change. It means that quality scores for images with flat regions and without it are slightly different and can't be directly compared. Here is artificially created situation to demonstrate it. I take the same image and simply add regions of different sizes with a single black color value to see how it influences overall ssimu score. https://i.imgur.com/e0JnsWw.png Original encoding doesn't change and you can see how original 63 quality score becomes 79 once 93% of it are flat regions. Such situation is extremely unlikely to happen in real life, but when we talk about drawing, pixelart and similar images, it's actually quite common. Look at simple image like this one: https://www.boredpanda.com/blog/wp-content/uploads/2021/11/Hey-Pandas-Post-your-best-or-any-pixel-art-that-u-have-created-right-here-618b7194c5378__700.jpg It mostly consist of repeating colors. And even if we talk about significantly smaller areas like 1/3 of image, we can see some influence ~2 ssimu score. One of possible solutions would be to segment our image and see how much ssimulacra score varies and if it varies at all. If we count such segmented score, then it gives me original 63 quality for the segment with original image and 100 score for the rest. We can judge overall quality of the whole picture and the worst/best parts of it.
2023-08-18 08:07:06
Buggy discord