|
_wb_
|
2021-05-09 01:53:27
|
That is weird
|
|
2021-05-09 01:54:53
|
What colorspace is your display? Is color management maybe doing its own dithering?
|
|
2021-05-09 01:55:36
|
(what OS and viewer are you using?)
|
|
|
Jim
|
2021-05-09 01:58:56
|
Windows 10 - set on sRGB. I used ImageGlass.
|
|
2021-05-09 01:59:35
|
I tried in IrfanView with same result but moving the image at 100% caused the banding to "jiggle"
|
|
2021-05-09 02:01:04
|
Same result in Windows Photo.
|
|
|
diskorduser
|
2021-05-09 02:27:13
|
`cxl IMG_20210505_091937_1-sharpened_cmpk_cmpk.jpg cmpk.jxl -d 0.5 -s 8
J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: AVX2,SSE4,Scalar]
Read 3456x4608 image, 7.1 MP/s
Encoding [Container | VarDCT, d0.500, kitten | 402-byte Exif], 2 threads.
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/atomic_base.h:217: void std::atomic_flag::clear(std::memory_order): Assertion '__b != memory_order_acq_rel' failed.
[1] 34292 abort (core dumped) cjxl IMG_20210505_091937_1-sharpened_cmpk_cmpk.jpg cmpk.jxl -d 0.5 -s 8`
|
|
2021-05-09 02:27:35
|
Is it failing because of ram shortage?
|
|
|
_wb_
|
2021-05-09 02:31:03
|
Nah it's likely that bug that will be fixed at next sync
|
|
|
diskorduser
|
2021-05-09 02:31:23
|
it works fine with -s7 thou
|
|
|
Jyrki Alakuijala
|
|
Just wondering though... is a "jxlmux" planned? (Btw, could you hire more people?^^)
|
|
2021-05-09 02:35:24
|
send me your resume: jyrki@google.com and I will put it into our system -- currently our team is not expanding, we are still learning to scale up structure, roles, clarity and happiness with our current size, but there are always exceptions for compelling cases
|
|
|
_wb_
|
|
diskorduser
it works fine with -s7 thou
|
|
2021-05-09 02:37:47
|
Yes, that bug is in the butteraugli-iteration codepath which is only activated at -s 8/9
|
|
|
|
Deleted User
|
|
veluca
kinda want to try it now actually... can you share the jxl file?
|
|
2021-05-09 02:54:32
|
Here is the original in case you want to try different JXL/JPEG variants.
|
|
|
Are you sure you responded to a right thread? I was talking about an optical illusion while in motion (it doesn't exist if you stop zooming in/out), something completely unrelated to dithering.
|
|
2021-05-09 02:55:24
|
Oh, that's what you meant. Anyway, it wouldn't happen with dithered resampling.
|
|
|
|
veluca
|
2021-05-09 02:55:27
|
thanks! although I think that the jpeg you attached to the bug makes for a compelling case already π
|
|
|
Jim
|
|
Here is the original in case you want to try different JXL/JPEG variants.
|
|
2021-05-09 02:56:16
|
That one has no banding
|
|
|
|
Deleted User
|
|
Jyrki Alakuijala
send me your resume: jyrki@google.com and I will put it into our system -- currently our team is not expanding, we are still learning to scale up structure, roles, clarity and happiness with our current size, but there are always exceptions for compelling cases
|
|
2021-05-09 02:57:14
|
I wasn't talking about me. ^^ I was hoping Google could send over some more devs to the libjxl team. π
|
|
|
Jim
That one has no banding
|
|
2021-05-09 02:57:38
|
What display are you using?
|
|
|
|
veluca
|
|
I wasn't talking about me. ^^ I was hoping Google could send over some more devs to the libjxl team. π
|
|
2021-05-09 02:58:21
|
that'd be a bit problematic right now from what I understand of things
|
|
|
|
Deleted User
|
|
Just wondering though... is a "jxlmux" planned? (Btw, could you hire more people?^^)
|
|
2021-05-09 02:59:13
|
You're not the first one to come up with this idea π
https://discord.com/channels/794206087879852103/803663417881395200/830745493368733697
It would be awesome if it happened...
|
|
|
Jim
|
2021-05-09 02:59:44
|
You mean monitor?
|
|
|
|
Deleted User
|
2021-05-09 03:01:19
|
Yes. I would guess it cannot fully recreate full 8-bits per channel.
|
|
|
Jim
|
2021-05-09 03:06:12
|
It's a laptop, rather new. No idea what the screen on it is. It is also connected to an ASUS ML238.
|
|
|
_wb_
|
2021-05-09 03:28:51
|
New screens are often P3
|
|
|
|
Deleted User
|
2021-05-09 03:29:41
|
But only the expensive ones. π
|
|
|
_wb_
|
2021-05-09 03:32:13
|
Even one that can do 100% of sRGB is not so cheap
|
|
|
Jim
|
2021-05-09 03:35:27
|
The marketing claimed it can do 100% sRGB. Don't know if that's true.
|
|
|
_wb_
|
2021-05-09 03:36:32
|
I have a BenQ here that can do most of P3 / Adobe RGB 98 and 100% of sRGB
|
|
|
|
veluca
|
2021-05-09 03:38:05
|
my laptop can apparently do 132% of sRGB
|
|
2021-05-09 03:38:12
|
whatever that means
|
|
|
Jim
|
2021-05-09 03:38:54
|
Irradiated <:kekw:808717074305122316>
|
|
|
_wb_
|
2021-05-09 03:42:32
|
means it can do some wider gamut than sRGB
|
|
2021-05-09 03:43:00
|
viewing the gradients on the BenQ with brightness cranked up now
|
|
|
|
Deleted User
|
|
veluca
whatever that means
|
|
2021-05-09 03:43:18
|
It means you should make sure to clamp the gamut when watching sRGB content. ^^
|
|
|
_wb_
|
2021-05-09 03:43:33
|
the blue one without dithering has really obvious banding
|
|
2021-05-09 03:44:55
|
with dithering the obvious banding is gone. I can still see some banding in the top right quadrant of the image, and a little bit in the bottom left.
|
|
2021-05-09 03:47:16
|
|
|
2021-05-09 03:48:30
|
in the gray one I still see some banding in both, but it is a lot worse without dithering
|
|
2021-05-09 03:49:29
|
in the one without dithering, the bands are clear also when I look closely
|
|
2021-05-09 03:50:13
|
in the one with dithering I cannot really see the bands when I look closely, but when I look from a distance then I do see some banding
|
|
2021-05-09 03:52:18
|
|
|
2021-05-09 03:53:53
|
the difference in banding can even be seen when I make a photo of the screen with my crappy phone camera
|
|
2021-05-09 03:54:42
|
(funny how its white balancing is desaturating that blue a lot)
|
|
2021-05-09 04:01:51
|
when I zoom in with Preview (which is doing NN upsampling), I can actually see the 4x4 dither patterns in the blue image (and just blocky banding in the non-dithered one)
|
|
2021-05-09 04:04:27
|
The dither patterns don't look optimal, there might be room for improvement there
|
|
2021-05-09 04:05:03
|
(maybe could do a decoding at bitdepth 4 or so to better see the dithering patterns)
|
|
|
|
veluca
|
|
It means you should make sure to clamp the gamut when watching sRGB content. ^^
|
|
2021-05-09 04:18:42
|
oh, I know that (I even calibrated my monitor, thanks to <@!604964375924834314> :D), but I'm not quite sure what a percentage above 100% means π I guess below 100% it's just a given fraction of the gamut is reachable, but above it's a bit more fuzzy to me...
|
|
|
_wb_
The dither patterns don't look optimal, there might be room for improvement there
|
|
2021-05-09 04:19:41
|
I'm doing this https://en.wikipedia.org/wiki/Ordered_dithering with a 4x4 matrix, unless I did something wrong xD
|
|
|
|
Deleted User
|
2021-05-09 04:26:04
|
The guy from the issue recommended https://discord.com/channels/794206087879852103/804324493420920833/840934339827204136 but no idea how performant that would be.
|
|
|
_wb_
|
|
veluca
I'm doing this https://en.wikipedia.org/wiki/Ordered_dithering with a 4x4 matrix, unless I did something wrong xD
|
|
2021-05-09 04:35:57
|
It's ok but maybe a different matrix would work slightly better
|
|
|
|
veluca
|
|
The guy from the issue recommended https://discord.com/channels/794206087879852103/804324493420920833/840934339827204136 but no idea how performant that would be.
|
|
2021-05-09 04:37:31
|
the part of that suggestion that worries me is "This technique is covered by Ulichneyβs βU.S. patent 5535020 and the specific implementation we showed is partly covered by Epsonβs βU.S. patent 6088512."
|
|
|
_wb_
|
2021-05-09 04:37:47
|
Ugh
|
|
2021-05-09 04:37:55
|
What year are those from?
|
|
|
|
veluca
|
2021-05-09 04:38:00
|
no clue
|
|
|
_wb_
It's ok but maybe a different matrix would work slightly better
|
|
2021-05-09 04:38:21
|
changing matrix is cheap anyway
|
|
2021-05-09 04:38:28
|
not sure what to try, but...
|
|
2021-05-09 04:39:20
|
(of course, to actually have it in djxl/the API, there's more work involved - perhaps we could add a new output format, UINT8_DITHERED?)
|
|
|
_wb_
|
2021-05-09 04:40:00
|
Both are expired
|
|
2021-05-09 04:40:16
|
One is from 1992, the other from 1997
|
|
|
Pieter
|
2021-05-09 04:41:41
|
Any reason to do anything else than Floyd-Steinberg?
|
|
|
_wb_
|
2021-05-09 04:41:45
|
Is there any reason not to dither? It's not like undithered is more correct
|
|
|
|
veluca
|
2021-05-09 04:42:14
|
10-bit lossless would be rounded in a weird way to 8-bit π
|
|
|
Pieter
|
2021-05-09 04:42:38
|
Dithering on material with sharp edges and text may be undesirable.
|
|
|
|
veluca
|
|
Pieter
Any reason to do anything else than Floyd-Steinberg?
|
|
2021-05-09 04:42:43
|
it's an error diffusion based method, not quite SIMD/parallelization friendly
|
|
2021-05-09 04:43:13
|
ordered dithering is just biasing the rounding in a location-dependant way, basically
|
|
|
Pieter
|
|
veluca
it's an error diffusion based method, not quite SIMD/parallelization friendly
|
|
2021-05-09 04:43:17
|
Ok, fair, but it's also computationally very cheap I think, compared to decoding jxl?
|
|
|
|
veluca
|
2021-05-09 04:43:36
|
well, ordered dithering is a lot cheaper π
|
|
|
Pieter
|
2021-05-09 04:43:50
|
I have no doubt about that.l :D
|
|
|
|
veluca
|
2021-05-09 04:43:51
|
also I think less likely to cause problems at sharp edges
|
|
|
Pieter
|
2021-05-09 04:43:58
|
Hmm, perhaps.
|
|
|
|
veluca
|
2021-05-09 04:44:33
|
and I don't think one needs very fancy dithering to get stuff to work well for 8-bit output...
|
|
|
_wb_
|
2021-05-09 04:49:32
|
It just improves the effective display bitdepth in slow gradients, and since it only introduces off-by-one diffs w.r.t. no dithering, I don't think sharp edges or text will look any different.
|
|
2021-05-09 04:49:53
|
I think it is basically a no-brainer to just always do it
|
|
2021-05-09 04:50:31
|
Well a no-brainer that does require some reflection and verification maybe
|
|
2021-05-09 04:53:51
|
We have the luxury (at least in vardct mode) to work in high precision anyway, so we have the actual signal at whatever bitdepth. So the dither is accurate and not just some noise that hides banding.
|
|
2021-05-09 04:55:14
|
(in that respect I think we have an advantage compared to avif, which works at the signalled bitdepth afaik)
|
|
|
Pieter
|
2021-05-09 04:55:26
|
is jxl decoding specified at the pixel value level?
|
|
|
_wb_
|
2021-05-09 04:55:31
|
No
|
|
2021-05-09 04:55:58
|
It is specified using real numbers
|
|
2021-05-09 04:56:11
|
Which is of course something that doesn't really exist π€£
|
|
2021-05-09 04:56:43
|
(real numbers are very inaccurately named)
|
|
2021-05-09 04:58:07
|
Conformance for lossless will have pixel exact requirements, but for lossy there will be tolerances that allow implementations using float or fixed point.
|
|
2021-05-09 04:59:38
|
Those tolerances still have to be defined but I think dithering will not be the biggest concern there.
|
|
|
Pieter
|
2021-05-09 05:00:15
|
That's a good reason for dithering by default though, even if it's a relatively simple one.
|
|
2021-05-09 05:00:48
|
vardct has real numbers, and without dithering you're throwing that precision unconditionally away
|
|
|
|
veluca
|
2021-05-09 05:02:29
|
none of this really affects browsers, though π
|
|
|
_wb_
|
2021-05-09 05:04:10
|
Chrome apparently uses 16-bit half-floats for HDR. Not 10-bit ints with PQ or HLG. I wonder where that final conversion to display space is happening, and if it does dithering.
|
|
|
veluca
none of this really affects browsers, though π
|
|
2021-05-09 05:04:26
|
I suppose it does for an image displayed 1:1, no?
|
|
2021-05-09 05:06:49
|
(even when rescaling, there is in a way more information preserved in the dithered image)
|
|
|
|
Deleted User
|
|
_wb_
Chrome apparently uses 16-bit half-floats for HDR. Not 10-bit ints with PQ or HLG. I wonder where that final conversion to display space is happening, and if it does dithering.
|
|
2021-05-09 05:12:00
|
The issue is that we apparently need more than 8-bit for SDR already but displaying more than 8-bit isn't really common.
|
|
|
|
veluca
|
2021-05-09 05:12:47
|
browsers would convert on the fly from floats to the display colorspace in u8 though, so it's not the jpeg xl API that would have to take care of dithering
|
|
2021-05-09 05:12:58
|
(for jpeg xl)
|
|
|
_wb_
|
2021-05-09 05:15:20
|
Oh we only give the float buffer to chrome?
|
|
|
|
veluca
|
2021-05-09 05:18:38
|
well, not now
|
|
2021-05-09 05:18:45
|
but we will for 92 I believe
|
|
|
_wb_
|
2021-05-09 05:20:04
|
Dithering is the task for whoever does the final conversion to display space integers
|
|
2021-05-09 05:24:35
|
I thought we were going to have an api where basically chrome says to libjxl "please give me an uint8 rgba buffer in my display space", and libjxl either returns that (if it can), or it returns a uint8 rgba buffer and an icc profile and tells chrome "you take care of this please"
|
|
2021-05-09 05:24:47
|
But maybe that doesn't work after all?
|
|
2021-05-09 05:25:03
|
(because display space could change and stuff?)
|
|
|
|
veluca
|
2021-05-09 05:28:25
|
it's better if we tell chrome "here is a chunk of 200 pixels, they're RGBA floats, in X colorspace, please take care of the rest"
|
|
|
|
Deleted User
|
2021-05-09 05:30:17
|
But it doesn't hurt if djxl supports dithering just in case, right? ;)
|
|
|
_wb_
|
2021-05-09 05:31:42
|
It doesn't hurt, no, and will help for simpler applications that are not as tightly integrated.
|
|
|
veluca
it's better if we tell chrome "here is a chunk of 200 pixels, they're RGBA floats, in X colorspace, please take care of the rest"
|
|
2021-05-09 05:33:03
|
Ah ok. Then I suppose we could at some point try to get dithering in the "take care of the rest" part, but that's completely orthogonal to jxl integration then.
|
|
|
|
veluca
|
|
Jake Archibald
|
2021-05-10 09:17:51
|
Will `--allow_more_progressive_steps` produce output similar to how browsers will decode JXL? Or is it better to leave it off?
|
|
|
_wb_
|
2021-05-10 09:23:52
|
Good question. It's in djxl mostly to show what _could_ be done with a partial bitstream (and even at that it's not really being exhaustive in trying to show as much as is possible, since it still does not show partial squeeze refinement steps, only full steps).
|
|
2021-05-10 09:24:39
|
How many repaints browsers will actually do is a different thing, and there are several considerations there to take into account.
|
|
2021-05-10 09:26:34
|
First there's the impact on decode speed and memory usage; likely it makes sense to avoid multiple repaints when the file is locally cached or the network is fast enough.
|
|
2021-05-10 09:28:02
|
Secondly some people don't like progressive loading at all.
|
|
|
Jake Archibald
|
2021-05-10 09:30:01
|
(yeah, I've never understood why, tbh)
|
|
2021-05-10 09:30:52
|
Ok, I'll go without `--allow_more_progressive_steps`, assuming it might be _less_ representative of what the browser will do
|
|
|
|
veluca
|
2021-05-10 09:34:18
|
I think that's a safe bet
|
|
|
_wb_
|
2021-05-10 10:35:41
|
Any update on the state of progressive jxl decoding in chromium, <@795684063032901642> ? I suppose it is less urgent than making animation work (since it does not have impact on the final result), but is someone working on it?
|
|
|
Moritz Firsching
|
2021-05-10 10:51:40
|
working on animation right now..
|
|
|
Jake Archibald
|
2021-05-10 02:18:11
|
<@!794205442175402004> djxl wouldn't spit out a file until it had more than 50k of input. Does that seem correct?
|
|
|
|
veluca
|
2021-05-10 02:19:12
|
depends on the total size π
|
|
|
Jake Archibald
|
2021-05-10 02:19:20
|
Here's the full file
|
|
|
|
veluca
|
2021-05-10 02:19:27
|
seems a bit excessive
|
|
2021-05-10 02:19:35
|
how did you create it?
|
|
|
Jake Archibald
|
2021-05-10 02:19:43
|
https://squoosh.app
|
|
|
|
veluca
|
2021-05-10 02:19:52
|
I mean with what flags?
|
|
2021-05-10 02:20:47
|
depending on flags and the image itself, the DC preview will be available anywhere between 5-25% of the total size
|
|
|
Jake Archibald
|
2021-05-10 02:22:17
|
Quality 40, effort 4, progressive rendering on
|
|
2021-05-10 02:23:24
|
Edge filter on
|
|
|
|
veluca
|
2021-05-10 02:23:26
|
mhh, yeah, quality 40 will not be too good for getting DC early (effort 4 shouldn't change *too* much, but I believe progressive rendering mostly just increases file size if you're mostly interested in the DC)
|
|
|
Jake Archibald
|
2021-05-10 02:23:53
|
Ohh, so what would you recommend?
|
|
|
|
veluca
|
2021-05-10 02:24:48
|
I don't remember what squoosh's effort corresponds to in terms of cjxl speed
|
|
|
Jake Archibald
|
2021-05-10 02:25:01
|
Give me the JXL settings and I'll translate it
|
|
|
|
veluca
|
2021-05-10 02:25:28
|
try something like -q 70 to 90, -s 7
|
|
2021-05-10 02:25:33
|
and nothing else
|
|
|
Jake Archibald
|
2021-05-10 02:25:46
|
What about epf?
|
|
|
|
veluca
|
2021-05-10 02:25:52
|
default is good
|
|
|
Jake Archibald
|
2021-05-10 02:26:00
|
cool
|
|
2021-05-10 02:26:22
|
`-s 7` is the maximum speed, right?
|
|
|
|
veluca
|
2021-05-10 02:26:42
|
no
|
|
2021-05-10 02:26:45
|
maximum is -s 9
|
|
2021-05-10 02:27:00
|
well, -s 9 the *slowest*
|
|
2021-05-10 02:27:32
|
(yeah, those numeric values are weird)
|
|
|
Jake Archibald
|
2021-05-10 02:27:50
|
whoa, I think we've got these backwards on Squoosh
|
|
2021-05-10 02:28:07
|
I wonder if that explains why increasing effort sometime increases filesize
|
|
|
|
veluca
|
2021-05-10 02:28:09
|
-s 3 is the fastest, -s 9 is the slowest
|
|
2021-05-10 02:28:20
|
it absolutely would π
|
|
2021-05-10 02:28:57
|
-s 3 for lossless/delta palette in particular can be a huuuge blowup in size
|
|
|
_wb_
|
2021-05-10 02:30:13
|
we have a very confusing --speed where higher means slower
|
|
|
fab
|
2021-05-10 02:30:59
|
Higher should be always slower
|
|
2021-05-10 02:31:10
|
Wp2 is in this Way
|
|
|
Jake Archibald
|
2021-05-10 02:31:11
|
for _speed_?
|
|
|
fab
|
|
_wb_
|
2021-05-10 02:31:18
|
it's like the very confusing --cpu_used where lower number means more cpu used
|
|
2021-05-10 02:31:28
|
we should just rename --speed to --effort
|
|
|
Jake Archibald
|
2021-05-10 02:31:37
|
Yeah, we call it effort in Squoosh
|
|
|
fab
|
2021-05-10 02:32:36
|
Yes i fully agree
|
|
|
_wb_
|
2021-05-10 02:35:37
|
maybe let's start by adding --effort and keeping --speed as a deprecated synonym
|
|
|
fab
|
2021-05-10 02:37:56
|
Wp2 is -effort
|
|
2021-05-10 02:38:03
|
Not --effort
|
|
2021-05-10 02:38:27
|
And without =
|
|
|
_wb_
|
2021-05-10 02:40:03
|
gzip-style?
|
|
2021-05-10 02:40:30
|
to me that looks a bit weird
|
|
2021-05-10 02:42:09
|
single letter `-e 3` or long-form `--effort 3` (with or without an `=`) feels most 'conventional' to me, but of course that's all a matter of preference and habit
|
|
|
Jake Archibald
|
2021-05-10 02:43:37
|
`-s 7` seems to produce a bigger file than `-s 6` and `-s 8`
|
|
2021-05-10 02:44:28
|
I'll double check it's not just Squoosh
|
|
|
_wb_
|
2021-05-10 02:45:44
|
that can happen - more effort does not necessarily mean smaller file, it should mostly mean "better size/quality trade-off"
|
|
2021-05-10 02:45:59
|
(though the only thing it is really guaranteed to mean is "slower")
|
|
2021-05-10 02:47:08
|
for lossless of course it should be the case that more effort means smaller file (though even that isn't always true)
|
|
|
|
veluca
|
|
_wb_
(though the only thing it is really guaranteed to mean is "slower")
|
|
2021-05-10 02:48:04
|
I don't think even that is *fully* guaranteed xD
|
|
|
|
paperboyo
|
2021-05-10 02:52:08
|
Unrelated directly, but sometimes higher Effort in sqoosh gives me errors on both Firefox and Chrome (OSX&Win):
|
|
|
Jake Archibald
|
2021-05-10 02:53:08
|
I think we need to take a close look at our implementation. I'm getting different results between squoosh & the cli
|
|
2021-05-10 02:56:37
|
<@!179701849576833024> problem is, if I go for the higher quality settings, it's going to be much bigger than a jpeg of decent quality
|
|
|
|
veluca
|
2021-05-10 02:58:43
|
mhhh, perhaps our definition of "decent quality" differs then π
|
|
|
Jake Archibald
|
2021-05-10 02:59:10
|
hm maybe
|
|
|
|
veluca
|
2021-05-10 03:00:46
|
what happens if you recompress the JPEG?
|
|
2021-05-10 03:01:01
|
i.e. `cjxl image.jpeg image.jxl`
|
|
2021-05-10 03:01:38
|
(for that matter, where do you get the DC render for JPEG?)
|
|
|
Jake Archibald
|
2021-05-10 03:03:06
|
JPEG 302kB, JXL 270kB
|
|
2021-05-10 03:04:24
|
|
|
2021-05-10 03:04:28
|
Here's the JPG
|
|
2021-05-10 03:05:26
|
But here's a JXL that looks good to me too
|
|
|
|
veluca
|
2021-05-10 03:06:44
|
you're right, it looks surprisingly good for being quality 40
|
|
|
Jake Archibald
|
2021-05-10 03:07:07
|
I think there's a lot of grass and dirt that can take the noise
|
|
|
|
veluca
|
|
Jake Archibald
|
2021-05-10 03:08:08
|
the only dodgy bit is the around the bottom of the chiminea, but that _kills_ AVIF
|
|
2021-05-10 03:08:16
|
goes flat in a really ugly way
|
|
|
|
veluca
|
2021-05-10 03:09:04
|
given the quality etc, I'd expect that you get a decent preview at ~40 kB here
|
|
|
_wb_
|
2021-05-10 03:09:36
|
I suppose it also depends on whether you have a separate DC frame or not
|
|
|
Jake Archibald
|
2021-05-10 03:09:52
|
It doesn't seem to produce a seperate DC frame
|
|
|
_wb_
|
2021-05-10 03:10:02
|
without the separate DC frame there's also the AC metadata in the DC groups which might postpone the point where DC is complete
|
|
|
Jake Archibald
|
2021-05-10 03:10:11
|
50kB frame
|
|
2021-05-10 03:10:30
|
Which looks like DC plus some AC in the top left
|
|
|
_wb_
|
2021-05-10 03:11:11
|
with `cjxl --progressive_dc=1` you force a separate DC frame (that itself happens to be progressive, but you need djxl --allow_more_progression to see that)
|
|
|
|
veluca
|
|
Jake Archibald
50kB frame
|
|
2021-05-10 03:12:00
|
did you create this image with --progressive / --progressive_ac?
|
|
2021-05-10 03:12:48
|
the part with AC looks a bit bad to me
|
|
|
Jake Archibald
|
2021-05-10 03:13:02
|
`--progressive`
|
|
|
_wb_
|
2021-05-10 03:13:14
|
it looks like the first scan of progressive ac
|
|
2021-05-10 03:13:50
|
the first scan looks worse than the fancy-upsampled DC because it doesn't do any fancy upsampling anymore
|
|
2021-05-10 03:14:32
|
(might be better to treat it as 1:4 and do fancy 4x upsampling to it)
|
|
|
|
veluca
|
2021-05-10 03:14:36
|
try without, it should be a bit smaller π
|
|
2021-05-10 03:15:22
|
also try --progressive_dc=0, it can have some *weird* effects on file size (usually it makes it better, but not always...)
|
|
|
_wb_
|
2021-05-10 03:15:40
|
best to get DC fast and no extra AC scans should be `--progressive_dc=1 --progressive_ac=0`
|
|
2021-05-10 03:16:15
|
but default should not get DC that much later. It's a somewhat different image you get with progressive DC or not though
|
|
|
Jake Archibald
|
2021-05-10 03:17:54
|
```
----progressive_ac=0 didn't expect any argument passed to it.
Error parsing flag --progressive_ac=0
```
|
|
|
|
veluca
|
2021-05-10 03:18:34
|
I believe you can skip the flag and it's equivalent
|
|
|
Jake Archibald
|
2021-05-10 03:20:50
|
yeah, that worked, and it looks like DC then full squares
|
|
|
_wb_
|
2021-05-10 03:21:11
|
That's the progression I like most, tbh
|
|
2021-05-10 03:21:51
|
Clear when you have the full image, still good preview and indication of progress (because groups are popping in)
|
|
|
Jake Archibald
|
2021-05-10 03:53:07
|
I'll run with that then
|
|
|
raysar
|
|
Jake Archibald
`-s 7` seems to produce a bigger file than `-s 6` and `-s 8`
|
|
2021-05-10 09:11:23
|
Hello, i have a problème with squoosh options, why you don't use the same "effort" than cjxl encoder?
You use 0 to 6 numbers althought cjxl use 3 to 9.
It's not good at all for future user when they switch to cjxl. π
And you use -s 6 as default againt the real defaut -s 7. (I understand because it's too slow) But i think you need to write what is the real default param.
In cjxl patch are enable at -s 7 and no at -s 6, for screenshot size is very different without patches.
The epf param an gaborish param vary with quality, maybe it's why you have differences in squoosh?
|
|
|
_wb_
|
2021-05-10 09:13:27
|
The 3 to 9 thing in cjxl is a bit weird, but the reasoning is that maybe one day we'll have a 1 to 11 scale
|
|
2021-05-10 09:13:44
|
https://c.tenor.com/KzQ1LFMZMlQAAAAM/spinal-tap-clever-and-stupid.gif
|
|
2021-05-10 09:13:57
|
https://c.tenor.com/hLVZC4qxNBUAAAAM/these-go-to11-spinal-tap.gif
|
|
|
raysar
|
|
_wb_
The 3 to 9 thing in cjxl is a bit weird, but the reasoning is that maybe one day we'll have a 1 to 11 scale
|
|
2021-05-10 09:16:55
|
Yes but we need to have the same "number" for the same effort between squooth and cjxl. The world no need more complexity than it is π
|
|
|
Jake Archibald
|
2021-05-10 09:17:11
|
<@231086792315633664> see the discussion above
|
|
2021-05-10 09:17:27
|
https://github.com/GoogleChromeLabs/squoosh/compare/jxl-fix
|
|
|
raysar
|
|
Jake Archibald
https://github.com/GoogleChromeLabs/squoosh/compare/jxl-fix
|
|
2021-05-10 09:22:46
|
Ah sorry, i don't understand exactly the discussion but i read it before posting ^^, so it's a great comit π
|
|
|
Jyrki Alakuijala
|
|
_wb_
The 3 to 9 thing in cjxl is a bit weird, but the reasoning is that maybe one day we'll have a 1 to 11 scale
|
|
2021-05-11 08:06:30
|
going to 11 is a tradition by now: brotli goes to 11 and guetzli goes to --quality 110
|
|
|
_wb_
(might be better to treat it as 1:4 and do fancy 4x upsampling to it)
|
|
2021-05-11 08:08:21
|
do all the scans have x/y resolution asymmetry? Do we need a special 4x2 upsampler?
|
|
|
_wb_
|
|
Jyrki Alakuijala
do all the scans have x/y resolution asymmetry? Do we need a special 4x2 upsampler?
|
|
2021-05-11 08:12:54
|
I don't think that is really needed. In VarDCT scans you would normally use a resolution-symmetric scan script. In Squeeze scans you alternate between symmetric information available and 1:2 or 2:1 asymmetric information available, but there I would just skip the asymmetric intermediate results.
|
|
2021-05-11 08:42:02
|
wow <@!811568887577444363> , that "SIMDify upsampling" merge request does look impressive! π
|
|
2021-05-11 08:42:14
|
> 4x / 8x upsampling got 18-19 times faster (on 16-x float vector CPU).
> 2x upsampling got just 5.6x faster -> it seems there is still place for optimization.
|
|
2021-05-11 08:42:52
|
(it was quite slow to begin with, of course, but still)
|
|
2021-05-11 08:44:18
|
this should make the fancy DC upsampling in progressive rendering cheap enough, right?
|
|
|
Jyrki Alakuijala
|
|
_wb_
I don't think that is really needed. In VarDCT scans you would normally use a resolution-symmetric scan script. In Squeeze scans you alternate between symmetric information available and 1:2 or 2:1 asymmetric information available, but there I would just skip the asymmetric intermediate results.
|
|
2021-05-11 09:13:11
|
Thank you for clarifying
|
|
2021-05-11 09:14:54
|
I really like our 8x upsampling a lot -- I spent about a month tweaking it for pik possibly around 2017 and I believe that it is somewhat difficult to do better than that without using a priori info or very large supports
|
|
2021-05-11 09:15:44
|
adding a gentle amount of noise on it would improve the results further
|
|
2021-05-11 09:16:11
|
now one of the major differences is from going from "glossy" to "non-glossy" between the interpolated and the final image
|
|
2021-05-11 09:18:20
|
there is also some shift of brightness or contrast in some areas -- it might be possible to do better if we understand better what and why it is happening
|
|
2021-05-11 09:18:50
|
possibly it is the 3rd power vs. real gamma should be around 2.6 causing some averaging not to work that well
|
|
2021-05-11 09:21:56
|
my work back then was for a 4x4 upsampler that Moritz then resampled to be 2x2 and 8x8 by first applying my code twice into 16x16 resolution and then averaging down to 8x8 (and 2x2)
|
|
2021-05-11 09:24:33
|
the idea I explored with was to move pik's 8x8 DC into a 4x4 DC with great upsampling (for even higher quality of previews) and then codify the rest with a DCT
|
|
2021-05-11 09:25:02
|
it wasn't easy to get it working in a way that was competitive with the pik's current approach so I dropped the idea, but the upsampler survived into JPEG XL π
|
|
|
_wb_
|
|
Jyrki Alakuijala
possibly it is the 3rd power vs. real gamma should be around 2.6 causing some averaging not to work that well
|
|
2021-05-11 09:27:02
|
our 1:8 is effectively downsampled in a colorspace a gamma of ~3, while to avoid color shift you need to downsample in linear color (gamma 1). Not much can be done about that, the only way to avoid it is to do the DCTs in linear color but that would be a very bad idea.
|
|
|
Jyrki Alakuijala
|
2021-05-11 09:27:34
|
that would be horrible of course
|
|
2021-05-11 09:27:50
|
also, linear gamma downsampling is not what you always want
|
|
|
_wb_
|
2021-05-11 09:28:12
|
it's not always what you want, but it is the only 'correct' thing to do, physically speaking
|
|
|
Jyrki Alakuijala
|
2021-05-11 09:28:48
|
if we could estimate the variance of each 8x8 pixel based on the neighbourhood and do a pseudo gamma correction at around gamma 2, we'd have likely significantly better results
|
|
|
_wb_
|
2021-05-11 09:29:17
|
I do get customer complaints about linear downsampling, usually because it makes black text on a white background thinner than the too-bold-because-of-sRGB-downsampling they are used too (which is wrong but better for legibility)
|
|
|
Jyrki Alakuijala
|
2021-05-11 09:29:38
|
I think it depends on the resulting angular pixel size
|
|
2021-05-11 09:30:18
|
if pixels are smaller or larger than receptors
|
|
|
_wb_
|
2021-05-11 09:30:46
|
anyway, browsers also downscale in nonlinear color, just with the display transfer curve instead of the gamma ~3 we have
|
|
|
Jyrki Alakuijala
|
2021-05-11 09:30:48
|
if pixels are smaller than receptors, then they should work with photon-based physical modeling to produce the same experience
|
|
2021-05-11 09:32:00
|
if pixels are bigger than receptors, then they are already observed through compressed gamma and signals could be better averaged in the compressed space
|
|
2021-05-11 09:32:21
|
I believe that it is complicated, I think there is no one correct way there
|
|
|
_wb_
|
2021-05-11 09:36:07
|
yes, it is. for progressive previews I think what we have now is good enough though
|
|
2021-05-11 09:36:14
|
for the 1:8 preview at least
|
|
2021-05-11 09:36:37
|
if we want to go into 1:16 previews and other more blurhashy stuff, that's something else
|
|
2021-05-11 09:37:11
|
and the intermediate progressive passes for 1:4 or 1:2 - equivalent info, that's something else too
|
|
2021-05-11 09:38:12
|
currently the first progressive AC pass looks worse than the DC alone, which is an annoying nonmonotonicity of experience...
|
|
2021-05-11 09:39:23
|
(the same is true in the case of old JPEGs, btw. Once the DC goes from "fancy upsampled" to "blocky old DC" mode, things get worse before they get better again)
|
|
|
Jake Archibald
|
2021-05-12 08:05:27
|
Btw, Squoosh doesn't have the "effort" setting backwards, since we map to the "speed tier" enum, where higher numbers are faster (less effort), rather than cjxl's backwards speed π
|
|
2021-05-12 08:06:19
|
If cjxl renames to "effort", I'm happy to match the numbers up, but I definitely don't want to put a backwards speed setting on there
|
|
|
monad
|
2021-05-12 08:37:02
|
It was certainly interesting reading the code and seeing that, along with the fact speeds are referred to by their animal analogues.
|
|
|
190n
|
2021-05-12 08:41:21
|
anyone else getting
```
error while loading shared libraries: libIlmImf-2_5.so.25: cannot open shared object file: No such file or directory
```
when running either cjxl or djxl compiled from the AUR `libjpeg-xl` package (latest v0.3.7-1)? it doesn't seem like any package (official or AUR) provides that library, idk if it's supposed to be compiled along with libjxl or if i should get it somewhere else for now
|
|
|
Crixis
|
2021-05-12 08:42:41
|
i use AUR libjpeg-xl package, in what operation give this error?
|
|
|
190n
|
2021-05-12 08:43:02
|
any invocation of either of those binaries, even getting help or printing version doesn't work
|
|
|
Crixis
|
2021-05-12 08:43:06
|
no, i use libjpeg-xl-git sorry
|
|
|
190n
|
2021-05-12 08:43:22
|
hmm i'll try building that
|
|
2021-05-12 08:43:34
|
i _think_ i have libjpeg-xl on my laptop too and it works <:Thonk:805904896879493180>
|
|
|
Crixis
|
2021-05-12 08:43:38
|
I disabled test
|
|
2021-05-12 08:45:00
|
diff
|
|
2021-05-12 08:45:09
|
```
diff --git a/PKGBUILD b/PKGBUILD
index 4dcb98c..37c19e5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@
pkgbase=libjpeg-xl-git
pkgname=('libjpeg-xl-git' 'libjpeg-xl-doc-git')
-pkgver=0.3.7.r3.gab7c5e9
+pkgver=0.3.7.r5.g040eae8
pkgrel=1
pkgdesc='JPEG XL image format reference implementation (git version)'
arch=('x86_64')
@@ -58,15 +58,16 @@ build() {
export CC='clang'
export CXX='clang++'
cmake -B build -S jpeg-xl \
- -DCMAKE_BUILD_TYPE:STRING='None' \
+ -DCMAKE_BUILD_TYPE:STRING='Relase' \
-DCMAKE_INSTALL_PREFIX:PATH='/usr' \
+ -DBUILD_TESTING=OFF \
-DJPEGXL_ENABLE_BENCHMARK:BOOL='false' \
-DJPEGXL_ENABLE_FUZZERS:BOOL='false' \
-DJPEGXL_ENABLE_PLUGINS:BOOL='true' \
- -DJPEGXL_ENABLE_VIEWERS:BOOL='false' \
+ -DJPEGXL_ENABLE_VIEWERS:BOOL='true' \
-DJPEGXL_ENABLE_GIMP_SAVING:BOOL='ON' \
-DJPEGXL_FORCE_SYSTEM_BROTLI:BOOL='true' \
- -DJPEGXL_FORCE_SYSTEM_GTEST:BOOL='true' \
+ -DJPEGXL_FORCE_SYSTEM_GTEST:BOOL='false' \
-DJPEGXL_FORCE_SYSTEM_HWY:BOOL='true' \
-DJPEGXL_WARNINGS_AS_ERRORS:BOOL='false' \
-Wno-dev
```
|
|
|
190n
|
2021-05-12 08:53:25
|
ok it works now Β―\_(γ)_/Β―
|
|
|
Crixis
|
|
190n
ok it works now Β―\_(γ)_/Β―
|
|
2021-05-12 08:53:36
|
gg
|
|
|
190n
|
2021-05-12 08:53:54
|
tyty no idea why the other one didn't work tho
|
|
2021-05-12 08:54:22
|
well the old one linked against libIlmImf and this one doesn't
|
|
2021-05-12 08:54:26
|
dunno what changed tho
|
|
|
improver
|
2021-05-12 08:54:40
|
underlying lib changed soname
|
|
2021-05-12 08:54:51
|
so when you rebuilt it and relinked to new soname it just worked
|
|
2021-05-12 08:55:16
|
p usual issue, when you get these just rebuild relevant aur package
|
|
|
190n
|
2021-05-12 08:55:55
|
ah that makes sense
|
|
|
improver
|
2021-05-12 08:56:20
|
tbh maintainer should b making bumps for pkgrel when this happens but it's aur and if they arent aware it wont happen
|
|
|
spider-mario
|
2021-05-12 11:53:53
|
yeah, Ilm = Industrial Light & Magic, those originally behind EXR
|
|
|
diskorduser
|
|
190n
anyone else getting
```
error while loading shared libraries: libIlmImf-2_5.so.25: cannot open shared object file: No such file or directory
```
when running either cjxl or djxl compiled from the AUR `libjpeg-xl` package (latest v0.3.7-1)? it doesn't seem like any package (official or AUR) provides that library, idk if it's supposed to be compiled along with libjxl or if i should get it somewhere else for now
|
|
2021-05-12 12:43:20
|
I got that error after updating Arch. Rebuilding the package fixed it.
|
|
|
_wb_
|
2021-05-12 08:00:56
|
Yay repo sync!
|
|
|
Scope
|
2021-05-12 08:04:15
|
With fixed patches?
|
|
|
BlueSwordM
|
2021-05-12 08:09:45
|
Also, is it 0.3.8 or 0.4.0 <:Thonk:805904896879493180>
|
|
|
Scope
|
2021-05-12 08:09:53
|
<https://encode.su/threads/3564-JXL-version-0-3-released?p=69684&viewfull=1#post69684>
|
|
|
_wb_
|
2021-05-12 08:12:26
|
Patches should be fixed, yes
|
|
2021-05-12 08:15:41
|
I don't know what we are doing with the version numbering, you can consider this to be a 0.4.0rc1, I suppose
|
|
2021-05-12 08:16:20
|
It _should_ be a complete decoder now, that can handle all exotic corners of the spec
|
|
|
Pieter
|
2021-05-12 08:23:32
|
Are you working on a set of test vector images or so, to test compliance?
|
|
|
_wb_
|
2021-05-12 08:25:51
|
I have put a few examples here to test some common problems: https://github.com/libjxl/conformance
|
|
2021-05-12 08:27:09
|
We'll have to add a bunch more to cover everything that an alternative decoder could get wrong, but to test applications it's a start
|
|
|
Pieter
|
2021-05-12 08:27:29
|
I demand nested patches inside the DC component.
|
|
|
_wb_
|
|
Pieter
|
2021-05-12 08:28:12
|
And an image with a MA tree leaf for every pixel.
|
|
|
_wb_
|
2021-05-12 08:28:15
|
Creating those exotic bitstreams will be fun
|
|
|
|
veluca
|
2021-05-12 10:01:56
|
"fun"
|
|
|
_wb_
|
2021-05-12 10:09:32
|
Generalizing jxl_from_tree to also do VarDCT, patches, splines etc, will be tricky but Good For Art π
|
|
|
BlueSwordM
|
2021-05-12 10:42:29
|
What does MA mean?
|
|
|
improver
|
2021-05-12 11:17:55
|
meta-adaptive
|
|
|
Scope
|
2021-05-13 12:29:34
|
Manga set
```305 168 792 - previous build
305 419 668 - new build```
π€
|
|
2021-05-13 12:36:25
|
Better only on a few images with text (by 1-4%), on the rest worse or the same
|
|
|
|
veluca
|
2021-05-13 12:45:40
|
I suspect that for lossless the heuristics are not as well tuned as they should be
|
|
|
Pieter
|
2021-05-13 01:45:13
|
i assume that even though what was there is fixed, it's still not really usable in many images
|
|
|
_wb_
|
2021-05-13 05:14:07
|
For lossless the situation is much trickier than for lossy: for lossy it is likely going to be a win because you're using modular to encode something that likely encodes better with modular than with dct.
|
|
2021-05-13 05:14:54
|
For lossless, the question is if the signalling cost of patches is worth the saving, and it isn't always
|
|
|
Scientia
|
2021-05-13 05:23:29
|
you could have a flag to test savings in the meanwhile
|
|
2021-05-13 05:23:48
|
which would do two or more encodes but it would at least tell you if it was worth it
|
|
|
_wb_
|
2021-05-13 05:32:12
|
Yes, or take a corpus with images from Scope's test where it helps and where it doesn't, and try to improve the heuristics to make it help more and not-help less
|
|
|
Petr
|
2021-05-13 09:50:36
|
What's the use case for decode_oneshot and encode_oneshot? Does anyone use it in practice?
|
|
|
|
veluca
|
2021-05-13 09:52:14
|
the use case is giving an example of how to use the API
|
|
2021-05-13 09:52:15
|
π
|
|
|
Petr
|
2021-05-13 09:53:26
|
ah, ok π
|
|
|
lithium
|
2021-05-13 07:38:34
|
Hello, I get some build problem on windows-msys2-mingw64
```cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DCMAKE_C_COMPILER=clang.exe -DCMAKE_CXX_COMPILER=clang++.exe -G Ninja ..```
I think this probably a path problem, but i can't fix this, Could anyone can teach me how to fix this?
```Change Dir: C:/msys64/home/lee/Project/jpeg-xl/build/CMakeFiles/CMakeTmp
Run Build Command(s):C:/msys64/usr/bin/ninja.exe cmTC_1013d && [1/2] Building C object CMakeFiles/cmTC_1013d.dir/testCCompiler.c.obj
FAILED: CMakeFiles/cmTC_1013d.dir/testCCompiler.c.obj
C:\msys64\mingw64\bin\clang.exe -o CMakeFiles/cmTC_1013d.dir/testCCompiler.c.obj -c testCCompiler.c
/bin/sh: C:msys64mingw64binclang.exeοΌCommand not found
ninja: build stopped: subcommand failed.```
|
|
|
lithium
Hello, I get some build problem on windows-msys2-mingw64
```cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DCMAKE_C_COMPILER=clang.exe -DCMAKE_CXX_COMPILER=clang++.exe -G Ninja ..```
I think this probably a path problem, but i can't fix this, Could anyone can teach me how to fix this?
```Change Dir: C:/msys64/home/lee/Project/jpeg-xl/build/CMakeFiles/CMakeTmp
Run Build Command(s):C:/msys64/usr/bin/ninja.exe cmTC_1013d && [1/2] Building C object CMakeFiles/cmTC_1013d.dir/testCCompiler.c.obj
FAILED: CMakeFiles/cmTC_1013d.dir/testCCompiler.c.obj
C:\msys64\mingw64\bin\clang.exe -o CMakeFiles/cmTC_1013d.dir/testCCompiler.c.obj -c testCCompiler.c
/bin/sh: C:msys64mingw64binclang.exeοΌCommand not found
ninja: build stopped: subcommand failed.```
|
|
2021-05-13 08:19:59
|
ok, fixed
|
|
|
_wb_
|
2021-05-14 07:26:21
|
The Japanese national body of ISO is discovering some minor inconsistencies between the spec and the reference software, which we will have to resolve but which is also a very good sign because it likely means that camera manufacturers are working on a hardware encoder.
|
|
2021-05-14 07:34:10
|
No, we will fix the spec if fixing the code would break things.
|
|
2021-05-14 07:34:41
|
|
|
2021-05-14 07:35:31
|
PreviewHeader is something I don't think cjxl uses at all atm
|
|
2021-05-14 07:37:34
|
Yes we need to fix it before declaring a 0.4 release
|
|
2021-05-14 07:40:46
|
I don't think any existing bitstreams would break by fixing things
|
|
2021-05-14 07:53:24
|
National bodies have already reviewed the committee draft and the DIS. Now they are reviewing the FDIS but in principle it's just a binary "approved" or "not approved" at this ballot (the previous two ballots had the option of making comments, which we then had to reply to)
|
|
2021-05-14 07:54:37
|
Most comments in the past came from ANSI and DIN (the US and German national bodies).
|
|
2021-05-14 08:00:21
|
I hope the ballot results for Part 1 will be there by the July JPEG meeting, but I am not sure. When the FDIS ballot gets approved, it then takes a couple more weeks for ISO to do its thing and publish the actual IS.
|
|
2021-05-14 08:01:56
|
The big milestone was in January when JPEG approved the FDIS for submission to ISO, after that it should be OK since it was already approved by all relevant experts.
|
|
2021-05-14 08:03:23
|
So it is unlikely that at this point, the national bodies will vote "no" and block the standardization. It is more of a formality at this stage in the process, afaiu.
|
|
|
|
tufty
|
2021-05-14 05:25:56
|
hello everyone, oss-fuzz has found a jxl which locks up git master jxlinfo
http://www.rollthepotato.net/~john/clusterfuzz-testcase-minimized-thumbnail_fuzzer-6181430527918080
with git master jpeg-xl I see:
```
john@banana ~/pics/fuzz $ ~/GIT/jpeg-xl/build/examples/jxlinfo clusterfuzz-testcase-minimized-thumbnail_fuzzer-6181430527918080
xsize: 6008
ysize: 4807
have_container: 0
uses_original_profile: 0
bits_per_sample: 24
exponent_bits_per_sample: 7
intensity_target: 255.000000
min_nits: 0.000000
relative_to_max_display: 0
linear_below: 0.000000
have_preview: 0
have_animation: 0
orientation: 1
num_extra_channels: 0
alpha_bits: 0
alpha_exponent_bits: 0
alpha_premultiplied: 0
```
and the prompt never comes back.
djxl fails quickly, I suppose it sees the nonsense values in basic_info and gives up
vips sees basic-info, tries to get the next chunk, then (after >5s of cpu in JxlDecoderProcessInput()) sees an error
looking at the read()s it's doing, each 4kb read after basic_info gets slower and slower, it looks like on a quadratic scale
so perhaps there's some O(N^2) hole it's fallen into in the parser?
|
|
|
|
veluca
|
2021-05-14 05:27:32
|
that's absolutely possible, if perhaps a bit unlikely - can you open a bug?
|
|
|
|
tufty
|
2021-05-14 05:31:20
|
sure
would someone be able to very quickly test it before I open the bug? I don't want to make extra work
|
|
2021-05-14 05:41:36
|
issue opened
|
|
|
|
veluca
|
2021-05-14 05:43:51
|
I mean, I could verify it either before or after you make the issue π
|
|
2021-05-14 05:44:10
|
it's never a bad idea to file issues for such things
|
|
|
|
tufty
|
2021-05-14 05:45:46
|
hehe OK, well the issue is there now
|
|
|
|
veluca
|
2021-05-14 05:46:20
|
yup, I assigned it to a couple of people that I think are the best to figure it out π
|
|
|
KAGAMI
|
|
_wb_
I have put a few examples here to test some common problems: https://github.com/libjxl/conformance
|
|
2021-05-15 02:01:26
|
Are those examples all free to use? Probably good to add some license?
|
|
|
_wb_
|
2021-05-15 05:43:59
|
They should be free to use, but I should add the exact licenses I guess
|
|
2021-05-15 05:54:22
|
Yes, I need to check that
|
|
2021-05-15 05:56:14
|
Alpha triangles and sunset logo I made myself. They are CC0.
|
|
2021-05-15 06:00:05
|
Yes, see <#824000991891554375> π
|
|
2021-05-15 06:29:44
|
Well cwebp just silently ignores/strips ICC profiles, doesn't it? So if there is a performance bug in ICC handling, cwebp wouldn't trigger it because it doesn't even look at the ICC...
|
|
2021-05-15 06:37:29
|
cwebp always silently strips icc profiles afaik
|
|
2021-05-15 06:38:55
|
Yes, you have to use webpmux to explicitly add it
|
|
2021-05-15 06:39:38
|
And then dwebp will silently strip it again when you convert back to png π
|
|
2021-05-15 06:40:24
|
It's not exactly the greatest tooling in that respect if you ask me
|
|
2021-05-15 06:41:23
|
And the libwebp API is not much better: it's very convenient to get the decoded pixels, but to also get the color space they're in, you have to jump through some hoops
|
|
2021-05-15 06:43:48
|
Then again, with the 7.5-bit limitation of lossy webp, it's not really suitable for anything else than sRGB. Even P3 is already a bit of a stretch imo.
|
|
2021-05-15 06:46:13
|
Lossy webp uses TV range YCbCr, not full range like jpeg, so it's basically 7.5-bit and not 8-bit YCbCr, which means effectively in RGB it's 6.5 bits of R and B, 7.5 bits of G (plus chroma subsampling on top of that)
|
|
2021-05-15 06:48:02
|
Plus the minimum quantization (highest quality, what you get at q100 lossy) is not 1 like in jpeg but 4, iirc.
|
|
2021-05-15 06:48:27
|
(maybe that's only for chroma, I don't remember exactly)
|
|
2021-05-15 07:12:33
|
Must be some worst-case behavior of the icc compression
|
|
2021-05-15 07:15:55
|
In jxl we have a custom compression for icc profiles, yes
|
|
2021-05-15 07:16:56
|
Yes
|
|
2021-05-15 07:17:22
|
Annex B of the spec is just about icc compression
|
|
|
Scientia
|
2021-05-15 07:17:55
|
the profile is that large?
|
|
2021-05-15 07:17:58
|
interesting
|
|
|
Scientia
the profile is that large?
|
|
2021-05-15 07:18:26
|
by "that large" I mean large enough to care about designing a custom algo just for it
|
|
|
_wb_
|
2021-05-15 07:20:00
|
They can be quite huge in the case of CMYK. Typical profiles there are between 500 KB and 1 MB.
|
|
2021-05-15 07:20:52
|
For RGB the typical ones are not huge, usually a few kb
|
|
2021-05-15 07:21:17
|
Still large enough to care about compressing them though
|
|
2021-05-15 07:26:34
|
Lossless mode (including jpeg recompression) preserves the exact icc profile. In lossy mode we are a bit more free and replace known icc profiles with an equivalent shorter representation (equivalent in the color space it represents, not the exact icc profile bitstream)
|
|
2021-05-15 07:40:27
|
Yes, P3, Adobe RGB, sRGB etc can be expressed in the enum and use only a couple of bits
|
|
2021-05-15 07:41:45
|
The thing is, there is not just 1 sRGB profile. There are multiple variants, which are very slightly different (numbers are rounded differently, etc)
|
|
2021-05-15 07:42:03
|
In lossy mode we say "close enough" and use the enum anyway
|
|
2021-05-15 07:42:15
|
In lossless mode we don't do that
|
|
|
raysar
|
|
_wb_
Yes, P3, Adobe RGB, sRGB etc can be expressed in the enum and use only a couple of bits
|
|
2021-05-15 08:01:44
|
You are not including the bt2020 like P3? Seem to be the future color reference format.
|
|
|
_wb_
|
2021-05-15 08:08:10
|
Both DCI P3 and Display P3 can be done in the enum, also rec2020/rec2100 with PQ and HLG
|
|
|
raysar
|
|
_wb_
Both DCI P3 and Display P3 can be done in the enum, also rec2020/rec2100 with PQ and HLG
|
|
2021-05-15 09:22:59
|
You think to all π
|
|
2021-05-15 09:29:04
|
About icc, i do no not take time to do test but as i understand with 32bits fload internal jxl, record jxl in rec 2020 will not reduce precision in color for our 8 and 10bits display? It's only a bit slower decoding for display on srgb?
(I know it's bad i can test it :D)
|
|
|
_wb_
|
2021-05-15 09:39:10
|
In lossy/XYB, the internal color space is always the same absolute space, and the color space signaled in the header is just a suggestion for a target space to convert to after decoding (but you can also just directly convert to display space and ignore the header space)
|
|
2021-05-15 09:40:12
|
Only in non-XYB mode (lossless or lossless jpeg) does the header space actually matter to interpret the pixel data
|
|
|
|
tufty
|
2021-05-15 11:10:45
|
oss-fuzz has found a buffer overflow in git master libjxl, shall I open an issue?
(though it appears as Conditional jump or move depends on uninitialised value(s) in valgrind, mysteriously)
|
|
|
_wb_
|
2021-05-15 11:14:27
|
Better safe than sorry, better open an issue
|
|
|
|
tufty
|
2021-05-15 11:18:10
|
ok, issue opened, good luck!
|
|
|
|
veluca
|
|
tufty
oss-fuzz has found a buffer overflow in git master libjxl, shall I open an issue?
(though it appears as Conditional jump or move depends on uninitialised value(s) in valgrind, mysteriously)
|
|
2021-05-15 11:22:47
|
probably 'cause it reads a value-past-the-end which is of course not initialized
|
|
|
|
tufty
|
2021-05-15 11:35:53
|
yes, though you'd think valgrind would report that as a read beyond end of buffer, wouldn't you?
|
|
|
|
veluca
|
2021-05-15 11:37:16
|
maybe valgrind's malloc slightly overallocates it
|
|
|
spider-mario
|
|
raysar
You are not including the bt2020 like P3? Seem to be the future color reference format.
|
|
2021-05-15 01:15:23
|
also, even if Rec. 2020 hadn't been included specifically, it still doesn't require that many more bytes to use custom primaries
|
|
2021-05-15 01:15:46
|
it's especially LUT profiles that would be troublesome
|
|
2021-05-15 01:16:09
|
and for images, they're not that common
|
|
2021-05-15 01:16:21
|
(unlike display profiles)
|
|
|
_wb_
|
2021-05-15 01:18:03
|
I suppose LUT is used mostly when modeling real things like actual displays and printers
|
|
2021-05-15 01:29:03
|
Not sure, I would expect most scanners to do their own conversion and produce results in an idealized color space, but I don't know
|
|
|
diskorduser
|
2021-05-15 01:46:57
|
`cxl 1653x379.png 1653x379.jxl
J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: AVX2,SSE4,Scalar]
Read 2400x1080 image, 31.6 MP/s
Encoding [Container | VarDCT, d1.000, squirrel | 245-byte Exif], 2 threads.
/usr/src/packages/BUILD/libjpeg-xl/src/jpeg-xl/lib/jxl/fields.h:52: JXL_FAILURE: Value 4294967295 too large for 3 bits
/usr/src/packages/BUILD/libjpeg-xl/src/jpeg-xl/lib/jxl/fields.cc:563: JXL_RETURN_IF_ERROR code=1: ok_
/usr/src/packages/BUILD/libjpeg-xl/src/jpeg-xl/lib/jxl/fields.cc:720: JXL_RETURN_IF_ERROR code=1: CanEncode(fields, &extension_bits, &total_bits)
/usr/src/packages/BUILD/libjpeg-xl/src/jpeg-xl/lib/jxl/enc_file.cc:186: JXL_RETURN_IF_ERROR code=1: WriteImageMetadata(metadata->m, writer, kLayerHeader, aux_out)
/usr/src/packages/BUILD/libjpeg-xl/src/jpeg-xl/lib/jxl/enc_file.cc:203: JXL_RETURN_IF_ERROR code=1: WriteHeaders(metadata.get(), &writer, aux_out)
Failed to compress to VarDCT.`
|
|
|
|
veluca
|
2021-05-15 01:47:44
|
eh, sounds like a problem π can you share the file in an issue?
|
|
2021-05-15 01:47:59
|
does it fail if you strip exif too?
|
|
2021-05-15 01:48:07
|
(could be that there's an invalid exif orientation)
|
|
|
diskorduser
|
2021-05-15 01:48:58
|
I will check. It is a screenshot from the phone.
|
|
2021-05-15 01:51:09
|
It works fine after strip
|
|
|
|
veluca
|
2021-05-15 01:51:30
|
is it on the latest version of jxl?
|
|
|
diskorduser
|
2021-05-15 01:51:40
|
The screenshot is in landscape
|
|
|
|
veluca
|
2021-05-15 01:51:54
|
ah, might be that we didn't fix it for *png* input...
|
|
2021-05-15 01:51:59
|
<@!794205442175402004> might know
|
|
|
diskorduser
|
2021-05-15 01:52:34
|
No. I am running an aosp custom rom.
|
|
|
veluca
is it on the latest version of jxl?
|
|
2021-05-15 01:53:00
|
0.3.7 . 1 month old I think
|
|
2021-05-15 01:54:47
|
portraits screenshots work fine though
|
|
2021-05-15 01:57:12
|
The screenshot looks funny. I will send you in dm.
|
|
|
_wb_
|
2021-05-15 02:09:48
|
Should be fixed for all inputs, the exif is parsed later
|
|
2021-05-15 02:14:11
|
That should be the only place that looks at exif
|
|
|
Nova Aurora
|
2021-05-16 09:27:48
|
Does anyone else get a 'failed to read image' with this jpeg?
|
|
|
improver
|
2021-05-16 09:32:45
|
```
$ cjxl kX1HrJw.jpg kX1HrJw.jpg.jxl
J P E G \/ |
/\ |_ e n c o d e r [v0.3.7 | SIMD supported: SSE4,Scalar]
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/jxl/jpeg/enc_jpeg_data.cc:311: JXL_FAILURE: Cannot recompress JPEGs with neither 1 nor 3 channels
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/extras/codec_exr.cc:155: JXL_FAILURE: OpenEXR failed to parse input
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/extras/codec.cc:133: JXL_FAILURE: Codecs failed to decode
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/lib/extras/codec.cc:146: JXL_RETURN_IF_ERROR code=1: SetFromBytes(Span<const uint8_t>(encoded), io, pool, orig_codec)
Failed to read image kX1HrJw.jpg.
/home/anon/.cache/yay/libjpeg-xl-git/src/jpeg-xl/tools/cjxl_main.cc:68: JXL_RETURN_IF_ERROR code=1: LoadAll(args, &pool, &io, &decode_mps)
```
indeed
|
|
2021-05-16 09:33:40
|
```
$ file kX1HrJw.jpg
kX1HrJw.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=0], baseline, precision 8, 2941x2469, components 4
```
interesting
|
|
|
_wb_
|
2021-05-16 09:55:32
|
CMYK is not supported for jpeg recompression
|
|
|
Nova Aurora
|
|
_wb_
CMYK is not supported for jpeg recompression
|
|
2021-05-16 10:31:10
|
Weird, I didn't even know it was in that colorspace, so you have to convert to png then jxl even when not doing lossless recompression?
|
|
2021-05-16 10:32:07
|
Because it's not loading even if I specify -j for lossy conversion
|
|
|
|
veluca
|
2021-05-17 08:18:22
|
there's many ways you can do lz77
|
|
2021-05-17 08:18:31
|
slower and faster ones π
|
|
|
Robin_Watts
|
2021-05-17 04:09:27
|
Hi all, apologies if this is a dumb question, but I'm looking to maybe add jpeg xl support to MuPDF. I can't find any docs for driving libjxl as a simple decoder. Can anyone point me at a FM to R please? π
|
|
2021-05-17 04:13:50
|
doc/api.txt had me excited for a bit, but it's basically empty. Other stuff seems to want to talk about how the coding works, but I don't want that. I want "here's how you call the lib". And yes, if I'm being blind, please feel free to abuse me for that, but only after you tell me where to look π
|
|
|
BlueSwordM
|
2021-05-17 04:14:07
|
This is absolutely not a dumb question. However, I am not competent enough to respond to your question π
You will better be served by the devs here π
|
|
|
|
veluca
|
|
Robin_Watts
Hi all, apologies if this is a dumb question, but I'm looking to maybe add jpeg xl support to MuPDF. I can't find any docs for driving libjxl as a simple decoder. Can anyone point me at a FM to R please? π
|
|
2021-05-17 04:16:10
|
you can start looking at `examples/decode_oneshot.cc`
|
|
|
Robin_Watts
|
2021-05-17 04:17:19
|
Thanks.
|
|
2021-05-17 04:19:13
|
OK, so I need to call this from C. I can make a C -> C++ veneer I guess.
|
|
2021-05-17 04:20:46
|
I also need to ensure that all memory accesses go through my own callbacks, not to malloc/free. Presumably there is a mechanism for that too ?
|
|
2021-05-17 04:31:14
|
Ah, decode.h looks like a C api.
|
|
2021-05-17 04:35:52
|
Ooh, with a lovely mem_mgr thingy.
|
|
|
|
veluca
|
2021-05-17 04:52:56
|
to be honest - it won't be used everywhere
|
|
|
|
Deleted User
|
2021-05-18 10:01:06
|
From what I've seen, `djxl` with `--display_nits=X` and `--tone_map` options performs very crude tone-mapping by simply clamping values. Maybe use something just a little bit more advanced, like Reinhard operator used in JPEG XT for generating backwards-compatible LDR previews (I suggest applying it to the XYB channels instead of RGB for less washed-out look)?
|
|
|
|
veluca
|
2021-05-18 10:03:17
|
I thought we did some tonemapping in PQ that is more than just clamping
|
|
2021-05-18 10:03:24
|
<@!604964375924834314>
|
|
|
spider-mario
|
2021-05-18 10:03:58
|
yes, itβs not just clamping
|
|
2021-05-18 10:05:13
|
itβs https://www.itu.int/pub/R-REP-BT.2390-8-2020 pages 23-25
|
|
|
|
Deleted User
|
2021-05-18 10:05:33
|
Probably not for .PFM files as an input
|
|
|
spider-mario
|
2021-05-18 10:06:18
|
it should if the .pfm is normalized to at most 1 and --intensity_target set appropriately
|
|
2021-05-18 10:08:10
|
itβs global tone mapping, though
|
|
2021-05-18 10:08:14
|
(same curve applied to all pixels)
|
|
|
_wb_
|
2021-05-19 09:00:48
|
<@799692065771749416> we are going to relicense libjxl from Apache 2.0 to BSD 3-clause + separate Apache-style patent grant. Is that ok for you?
|
|
|
Pieter
|
2021-05-19 09:01:20
|
Haha, is there any code authored by me still in there?
|
|
2021-05-19 09:01:23
|
Go ahead.
|
|
|
_wb_
|
2021-05-19 09:01:49
|
I'm not sure actually, but maybe there are some FLIF remnants somewhere
|
|
2021-05-19 09:02:50
|
Probably everything has been edited or rewritten at some point by now, but I am not sure, and copyright-wise I guess it might still count as a derived work
|
|
2021-05-19 09:03:21
|
So to be sure I'm asking :)
|
|
|
|
Deleted User
|
|
_wb_
<@799692065771749416> we are going to relicense libjxl from Apache 2.0 to BSD 3-clause + separate Apache-style patent grant. Is that ok for you?
|
|
2021-05-19 10:13:50
|
Is this a good thing or not?
|
|
|
_wb_
|
2021-05-19 10:27:04
|
It doesn't change much
|
|
2021-05-19 10:27:25
|
Slightly more permissive license
|
|
2021-05-19 10:27:54
|
Depending on which lawyer you ask. Could also be just exactly the same license.
|
|
2021-05-19 10:28:59
|
|
|
2021-05-19 10:29:50
|
We are moving from Apache to BSD, which supposedly makes it compatible with GPLv2
|
|
2021-05-19 10:30:27
|
And with MPL, which might be relevant for firefox?
|
|
2021-05-19 10:33:54
|
FOSS license technicalities get complicated quickly, tl;dr we just want to make sure there are no license issues if you want to use libjxl in anything.
|
|
|
improver
|
2021-05-19 10:34:31
|
i dont think it matters with non-invasive licenses
|
|
2021-05-19 10:36:25
|
as in, yes apache2 has patent protection stuff gpl2 doesn't but if you were integrating with gpl2 then that stuff wouldn't be incompatible
|
|
2021-05-19 10:36:39
|
but i don't dislike the move
|
|
|
_wb_
|
2021-05-19 10:38:48
|
Yes, likely Apache2 was OK already, but some consider it problematic with gpl2/mpl, so just to be sure we are changing to BSD-3 which is uncontroversially compatible with any other FOSS license
|
|
|
Petr
|
2021-05-20 06:47:35
|
When will the change of the license happen?
|
|
|
_wb_
|
2021-05-20 06:48:22
|
Soon (tm)
|
|
2021-05-20 07:15:07
|
|
|
2021-05-20 07:15:16
|
big merge request, lol
|
|
2021-05-20 07:15:31
|
|
|
2021-05-20 07:18:01
|
same as before, irrevocable royalty-free with defensive clause (if you start patent trolling, you lose the grant)
|
|
2021-05-20 07:21:30
|
Yes. Currently you can point to the Apache 2.0 license file, which says the same thing, so no need to wait for the explicit PATENTS file...
|
|
|
|
veluca
|
2021-05-20 07:25:02
|
well, technically that only applies to the *code*, not to the format - I guess you can point them to the Type 1 declaration from ISO?
|
|
2021-05-20 07:26:28
|
<@!794205442175402004> I guess
|
|
|
_wb_
|
2021-05-20 07:28:11
|
ISOBMFF was never patented and it is in any case old enough to have all unknown patents expired (JPEG 2000 uses it, so it is at least 21 years old, probably older)
|
|
2021-05-20 12:54:55
|
a gif encoder is kind of out of the scope of the project, no?
|
|
2021-05-20 12:55:55
|
sure, feel free to quote me
|
|
|
fab
|
2021-05-20 12:55:58
|
honestly you should close the discussion
|
|
2021-05-20 12:56:06
|
you aren't a developer
|
|
2021-05-20 12:56:10
|
or a jxl developer
|
|
2021-05-20 12:56:21
|
why go in devs websites?
|
|
|
_wb_
|
2021-05-20 12:56:21
|
who should close what discussion?
|
|
2021-05-20 12:57:26
|
users can open or discuss issues, why not? there's no "dev certificate" needed to participate in FOSS projects π
|
|
|
fab
|
2021-05-20 12:57:53
|
i'm joking
|
|
|
_wb_
|
|
fab
|
2021-05-20 12:58:16
|
sorry i said wrong thing
|
|
|
_wb_
|
2021-05-20 12:58:29
|
one thing we should add (isn't there yet) is APNG output, so there is at least one animated output format
|
|
2021-05-20 12:58:42
|
at the moment djxl will just produce multiple outputs, one for every frame
|
|
|
|
veluca
|
2021-05-20 02:08:27
|
I don't think that's it
|
|
2021-05-20 02:08:32
|
but you can look say here: http://ds.jpeg.org/whitepapers/jpeg-xl-whitepaper.pdf
|
|
2021-05-20 02:08:54
|
The complete JPEG XL reference software is available under a free and open source, royalty-free license.
The contributors have also declared to ISO/IEC that according to the Common Patent Policy they are
offering a Type 1 Free of Charge patent grant.
|
|
2021-05-20 02:11:01
|
<@!794205442175402004>
|
|
|
_wb_
|
2021-05-20 02:11:35
|
Nokia is not involved in BMFF
|
|
2021-05-20 02:11:41
|
they are involved in HEIF
|
|
2021-05-20 02:12:23
|
and no, I wouldn't count ISOBMFF as a significant part of JXL, it's just a container convention that part 2 of the spec happens to follow
|
|
2021-05-20 02:14:52
|
AVIF is based on an AV1 codestream in a HEIF container which is based on MIAF which is based on ISOBMFF
JXL is a JXL codestream, optionally wrapped in an ISOBMFF container.
|
|
|
Robin_Watts
|
2021-05-20 04:54:27
|
Has anyone got a test suite of jxl images?
|
|
2021-05-20 04:54:44
|
(Or rather, is there a publicly accessible test suite anywhere)
|
|
|
Pieter
|
|
Robin_Watts
(Or rather, is there a publicly accessible test suite anywhere)
|
|
2021-05-20 04:59:12
|
https://github.com/libjxl/conformance ?
|
|
|
Robin_Watts
|
|
Pieter
https://github.com/libjxl/conformance ?
|
|
2021-05-20 05:00:07
|
Looks perfect! Thanks. Maybe add that link to the <#822120855449894942> ?
|
|
|
_wb_
|
2021-05-20 05:17:01
|
It's far from complete, but it's a start
|
|
|
|
veluca
|
2021-05-21 08:25:22
|
heh, I just replied
|
|
|
improver
|
2021-05-21 08:41:39
|
tbh normalized images to use as reference would be nice
|
|
2021-05-21 08:42:10
|
as in, srgb, prerotated, maybe dithered 8bit
|
|
2021-05-21 08:43:11
|
not reference to mechanically compare to but for human viewers to see how stuff is somewhat intended to look
|
|
|
_wb_
|
2021-05-21 08:57:00
|
input.jxl is the input, ref.* is the reference for humans
|
|
2021-05-21 08:58:33
|
the reference for machine comparison will be in a different format since we need something that can do 32-bit float, any number of channels, and animation, and such a thing does not exist in a widely-supported human-friendly file format.
|
|
2021-05-21 09:04:07
|
|
|
|
Petr
|
2021-05-21 09:04:39
|
If it doesn't exist then jxl is the king and doesn't need to compare to anythingβ¦ π
|
|
|
improver
|
2021-05-21 09:04:53
|
png rotation is p fucked in my experience, i think i tried that stuff some time ago but support was.. not good
|
|
|
_wb_
|
2021-05-21 09:10:50
|
by default, libjxl handles orientation for you
|
|
2021-05-21 09:11:52
|
so if it's wrong, it's either because you are explicitly asking libjxl _not_ to handle orientation and failing to do it yourself, or it's because you are doing orientation _again_ after libjxl already did it
|
|
2021-05-21 09:13:20
|
looks like in the digiKam case, it's asking libjxl to not handle orientation and then also not doing it itself
|
|
2021-05-21 09:13:53
|
(if it was done twice, you'd see an upside-down bench)
|
|
2021-05-21 09:14:31
|
(unless they messed up the "doing it twice" thing and do the orientation in the opposite direction)
|
|
2021-05-21 09:15:42
|
orientation and color profile handling are things that always tend to cause trouble, so that test image should help to find applications that don't do it correctly
|
|
|
|
veluca
|
|
_wb_
|
2021-05-21 10:55:51
|
I could make one but there's no software that will correctly render it, not even djxl π
|
|
2021-05-21 10:56:00
|
Level 5 does not allow CMYK
|
|
2021-05-21 10:57:40
|
(djxl does not implement color management for 4-channel color profiles, so it will decode the CMY correctly and have the K as an extra channel, but then doesn't really know what to do with those to convert it to an RGB png, for example)
|
|
2021-05-21 11:02:17
|
a lot of viewers also display CMYK JPEGs incorrectly
|
|
2021-05-21 11:02:34
|
e.g. all browsers except Safari, IIRC
|
|
|
improver
|
2021-05-21 11:05:55
|
how exactly incorrectly?
|
|
|
|
tufty
|
2021-05-21 11:10:27
|
Hello all, oss-fuzz has found an out of bounds write in libjxl github master
I've opened an issue
|
|
2021-05-21 11:17:20
|
Re. CMYK JPG viewing, there are some annoying problems around D50 / D65 white with CMYK JPGs
many viewers even ignore embedded profiles (!)
the whole business of visually matching an emissive display to ink on reflective paper is a nightmare, and it's very hard to set up a good viewing environment
(I spent years on that nonsense, sigh)
|
|
|
_wb_
|
|
improver
how exactly incorrectly?
|
|
2021-05-21 11:22:58
|
Not doing proper color management, or ignoring K and just rendering CMY as if it were sRGB
|
|
2021-05-21 11:26:09
|
I wonder how relevant CMYK will remain the future, now printers are starting to move to more-than-4-color processes...
|
|
2021-05-21 11:27:15
|
Likely just wide-gamut high-precision RGB, plus maybe some vector stuff in black, is a better approach than using CMYK workflows
|
|
|
|
tufty
|
2021-05-21 11:28:23
|
more-than-CMYK has been around since at least the 90s, I'd be surprised if CMYK went away soon
|
|
2021-05-21 11:29:46
|
friends tell me that sometimes you have to work in CMYK for control over actual ink on paper -- eg. I want no ink here, and I want 100% ink there
especially if you use spot colours as well
|
|
2021-05-21 11:33:24
|
the offset press market is a difficult business
when I started out I was full of enthusiasm for calibrating everything and getting perfect colour
I went on a factory visit to see the press we were working with and there was a man with a bucket of ink and a trowel walking along the top of the machine dropping ink on to rollers where he felt they looked a bit dry
calibration goals were scaled back after that field trip hehe
|
|
|
_wb_
|
2021-05-21 11:58:02
|
Lol
|
|
2021-05-21 11:59:58
|
Yes, I can see how controlling ink directly can be useful (especially for text, where you want to avoid using multiple inks if possible).
|
|