|
|
veluca
|
2021-05-10 04:20:59
|
(but djxl is *not* part of the core libjxl library anyway :P)
|
|
|
_wb_
|
2021-05-10 04:25:41
|
What's the reason for not putting dithering in the uint8 output path of libjxl?
|
|
|
|
Deleted User
|
2021-05-10 04:26:27
|
What is "core libjxl library" then?
|
|
|
_wb_
What's the reason for not putting dithering in the uint8 output path of libjxl?
|
|
2021-05-10 04:27:31
|
Weren't you included in those discussions? π
|
|
|
veluca
does it? IIRC it suports dithering to lower-than-8-bit output
|
|
2021-05-10 04:28:40
|
lower-than-8-bit back than is like lower-than-16-bit now ;)
|
|
|
spider-mario
|
|
What is "core libjxl library" then?
|
|
2021-05-10 04:29:05
|
just the C library that does the decoding
|
|
2021-05-10 04:29:12
|
of just jxl
|
|
2021-05-10 04:29:27
|
`djxl` can have more dependencies, e.g. a CMS, and code to write to various formats
|
|
|
|
veluca
|
|
_wb_
What's the reason for not putting dithering in the uint8 output path of libjxl?
|
|
2021-05-10 04:29:49
|
that you can implement it with the callback-float-output, and that often you'd need to do it *after* a CMS, say...
|
|
|
_wb_
|
2021-05-10 04:30:31
|
Why have a uint8 output at all then?
|
|
2021-05-10 04:30:48
|
Can also implement that with the float output, after all
|
|
|
|
Deleted User
|
2021-05-10 04:31:10
|
<:This:805404376658739230> π
|
|
|
|
veluca
|
2021-05-10 04:33:31
|
eh, because we didn't have callbacks
|
|
2021-05-10 04:33:32
|
xD
|
|
|
_wb_
|
2021-05-10 04:33:46
|
Presumably, if you do uint8 output, it's either because you're planning to reencode to some 8-bit format (or 8-bit mode in a format that could also do higher bit depth), or because you hope to get things in the display space and can just blit them to the screen without color management
|
|
|
|
veluca
|
2021-05-10 04:33:52
|
also, because I didn't want to discuss too much
|
|
2021-05-10 04:34:15
|
it's not going to be used in Chrome anyway, and currently we're focusing on that
|
|
|
_wb_
|
2021-05-10 04:35:34
|
Sure but for viewing apps that use the uint8 output (and for djxl) it would be quite useful to avoid banding
|
|
|
|
veluca
|
2021-05-10 04:36:20
|
let me rephrase my statement: we are not going to add dithering to libjxl *now*
|
|
|
_wb_
|
2021-05-10 04:36:22
|
I think we should either get rid of the uint8 output, or do the best possible uint8 output (or at least some fast approximation if the best possible thing)
|
|
2021-05-10 04:36:49
|
Ok, not doing it now I can live with π
|
|
|
|
Deleted User
|
2021-05-10 04:37:50
|
Me too, but I will keep being sceptical about how much control Chrome has over JXL...
|
|
|
|
veluca
|
2021-05-10 04:38:07
|
ideally at some point we'll add a wrapper around libjxl to which you tell your display color profile and that wrapper takes care of things for you
|
|
|
Me too, but I will keep being sceptical about how much control Chrome has over JXL...
|
|
2021-05-10 04:38:16
|
how so?
|
|
|
_wb_
|
2021-05-10 04:39:11
|
Yes, a convenience libjxl-with-cms sounds like a really good idea to make it easier for applications to avoid messing up
|
|
2021-05-10 04:40:14
|
(of course there will still be applications that are too lazy to figure out the display space and just claim to be sRGB all the time, but we cannot really stop that)
|
|
2021-05-10 04:41:00
|
(unless we find a portable way to get the display space and use that by default)
|
|
|
|
veluca
|
2021-05-10 04:42:40
|
haha
|
|
2021-05-10 04:42:45
|
nice joke, that one
|
|
|
|
Deleted User
|
|
veluca
how so?
|
|
2021-05-10 04:42:50
|
You are paid by Google. <:YEP:808828808127971399>
|
|
|
|
veluca
|
2021-05-10 04:43:51
|
indeed, but I don't quite understand what exactly you are skeptical about π
|
|
2021-05-10 04:43:57
|
(Jon isn't, FWIW)
|
|
|
|
Deleted User
|
2021-05-10 04:45:29
|
Yes, but he's the only one from externally and apparently also wasn't considered in all decisions. π
|
|
|
_wb_
|
2021-05-10 04:46:20
|
Nothing was decided except what the google folks are going to work on this week, afaiu
|
|
2021-05-10 04:46:43
|
Which is fine, I am not their manager π
|
|
|
|
veluca
|
2021-05-10 04:47:12
|
yes π
|
|
|
|
Deleted User
|
2021-05-10 04:47:45
|
So all this fuss for nothing? π
|
|
|
|
veluca
|
2021-05-10 04:48:20
|
the code is there, we know it works, at some point when we're less on fire we'll think about what to do for it exactly π
|
|
|
_wb_
|
2021-05-10 04:48:30
|
It would have been nicer if more people were involved in jxl development; maybe when we have moved to a public dev repo that will get better
|
|
2021-05-10 04:49:05
|
Originally the chair of the jxl AHG was a Netflix guy, btw
|
|
|
|
veluca
|
2021-05-10 04:49:07
|
(another argument against dithering in the core libjxl is: why *that* dithering and not *that other one*?)
|
|
|
_wb_
|
|
veluca
(another argument against dithering in the core libjxl is: why *that* dithering and not *that other one*?)
|
|
2021-05-10 04:49:59
|
Sure, but "no dithering" is also a kind of dithering, namely the worst kind π
|
|
|
|
veluca
|
2021-05-10 04:50:28
|
eh but that's a weaker argument π
|
|
|
_wb_
|
2021-05-10 04:55:21
|
Anyway, for now people can do djxl --bits_per_sample 16 and do whatever dithering they like. We can later figure out a good dithering to do by default for uint8 output, and add it to both the end of the chrome/firefox/viewers' rendering pipelines (after color management and rescaling), and to djxl with 8-bit output.
|
|
|
|
veluca
|
2021-05-10 04:56:39
|
after rescaling in chrome/ff: yeah, no
|
|
|
_wb_
|
2021-05-10 04:57:17
|
It's not the most urgent thing, but by the examples I saw I do think it can help to get more out of the 8-bit displays that are currently still very much the norm. Especially now they're moving to wider gamuts...
|
|
|
|
veluca
|
2021-05-10 04:58:00
|
image decoders give you u8s or f16s, at the original resolution, and the scaling is somewhere deep in the guts of the possibly-GPU-accelerated page rendering
|
|
|
_wb_
|
2021-05-10 04:58:00
|
I suppose after color management things go to the gpu as 8-bit RGBA?
|
|
|
|
veluca
|
|
_wb_
|
2021-05-10 04:59:41
|
Yeah so if there's not much rescaling happening, the info is already lost
|
|
|
|
Deleted User
|
2021-05-10 05:00:03
|
<@!794205442175402004> I guess it's not possible to fix every mistake of the past. ;)
|
|
|
BlueSwordM
|
2021-05-10 05:02:02
|
Actually, it is possible.
Windows 11: 10-bit minimum display spec in 2035 π€£
|
|
|
|
veluca
|
2021-05-10 05:03:03
|
the problem of 8-bit buffers is that having "deeper" buffers actually costs a nontrivial amount of memory
|
|
|
_wb_
|
2021-05-10 05:03:27
|
If there's enough downscaling, then dithering can still be done even if the source is already 8-bit, but not going to happen/controllable if hw rescalers are used...
|
|
|
fab
|
2021-05-10 05:04:35
|
<@!111445179587624960> do you please have 9a8f5195 generic builds? thanks. i want to test how it add sharpness to image
|
|
2021-05-10 05:04:56
|
now i'm testing contrast with the one more recent
|
|
|
_wb_
|
2021-05-10 05:05:00
|
10-bit RGBA could theoretically be done in 5 bytes per pixel, costing only 20% more...
|
|
2021-05-10 05:05:18
|
How is it done for HDR?
|
|
|
|
veluca
|
2021-05-10 05:05:51
|
you take the hit of 8 bytes per pixel π
|
|
|
_wb_
|
2021-05-10 05:06:13
|
The displays are only 10-bit though
|
|
|
|
veluca
|
2021-05-10 05:06:16
|
as for 10-bit: then you get funny alignment issues, and I have no idea how much GPUs actually like that
|
|
2021-05-10 05:06:21
|
nah, f16 for those
|
|
2021-05-10 05:06:48
|
at leas in chrome
|
|
|
_wb_
|
2021-05-10 05:06:54
|
Maybe the driver wants f16, but the displays themselves take 10-bit PQ or HLG, afaik
|
|
|
|
veluca
|
|
_wb_
If there's enough downscaling, then dithering can still be done even if the source is already 8-bit, but not going to happen/controllable if hw rescalers are used...
|
|
2021-05-10 05:08:21
|
btw, did you know that now you can have *lossy compression* between your video card and your display? π
|
|
|
_wb_
|
2021-05-10 05:14:00
|
Does HDMI have lossy modes?
|
|
|
|
veluca
|
2021-05-10 05:23:13
|
apparently yes
|
|
2021-05-10 05:24:31
|
https://vesa.org/vesa-display-compression-codecs/ They provide efficient compression and **visually lossless** quality for consumer and professional products.
|
|
|
_wb_
|
2021-05-10 05:26:14
|
8bpp and 6bpp π€
|
|
2021-05-10 05:26:42
|
That is possibly quite lossy
|
|
2021-05-10 05:27:08
|
I mean there must be patterns where it is not visually lossless
|
|
2021-05-10 05:27:36
|
Because of pigeon holes and stuff
|
|
2021-05-10 05:27:48
|
π
|
|
2021-05-10 05:30:31
|
If it's a fixed bpp that means it is probably like those texture formats
|
|
2021-05-10 05:32:19
|
The "download the spec" doesn't seem to have a link though
|
|
|
spider-mario
|
2021-05-10 05:32:51
|
ah, yes, just the text βDownload Nowβ
|
|
2021-05-10 05:32:55
|
almost as if an instruction
|
|
2021-05-10 05:33:29
|
β Download Now!
β Butβ¦ butβ¦ I donβt know where!
β I SAID
|
|
|
_wb_
|
2021-05-10 05:33:38
|
https://glenwing.github.io/docs/VESA-DSC-1.2a.pdf
|
|
2021-05-10 05:33:42
|
Found something
|
|
2021-05-10 05:33:54
|
(not on that page though)
|
|
2021-05-10 05:37:51
|
It's fancier than what I expected, even has a little color cache thing like webp!
|
|
2021-05-10 05:42:38
|
Does encode 3 pixels per group (which gets encoded to exactly 3 bytes, so 8bpp)
|
|
2021-05-10 05:45:34
|
Would be fun to make a noise image that has some low freq thing visible when seen uncompressed that disappears when using DSC 1.2a
|
|
2021-05-10 05:46:34
|
Maybe some of the <#824000991891554375> already has that property π
|
|
|
eddie.zato
|
2021-05-13 03:08:12
|
cjxl.exe v0.3.7-6-g30ea86a
The problem with temp jpeg files not being deleted still persists.
|
|
|
improver
|
2021-05-18 06:58:40
|
how do i force jpg -> modular encode?
|
|
|
Scientia
|
2021-05-18 06:59:01
|
-j -m right?
|
|
|
|
veluca
|
2021-05-18 06:59:06
|
I think so
|
|
|
improver
|
2021-05-18 06:59:10
|
oh `-j`
|
|
2021-05-18 06:59:15
|
forgot about that one
|
|
2021-05-18 06:59:32
|
sorta expected `-m` to already assume that
|
|
|
|
veluca
|
2021-05-18 07:00:21
|
I'll tell you a secret: the cjxl command line is a mess π
|
|
|
improver
|
2021-05-18 07:00:40
|
heh yeah `-m` ended up smaller
|
|
|
Scientia
|
2021-05-18 07:00:49
|
Really?
|
|
|
|
veluca
|
2021-05-18 07:00:54
|
must be one weird JPEG
|
|
|
Scientia
|
2021-05-18 07:00:58
|
Using lossless modular?
|
|
2021-05-18 07:01:03
|
Or lossy
|
|
|
improver
|
2021-05-18 07:01:11
|
kinda funny how some pixiv jpegs are so quality that they compress better with modular
|
|
2021-05-18 07:01:21
|
lossless
|
|
|
Scientia
|
2021-05-18 07:01:25
|
~~time for more heuristics~~
|
|
|
|
veluca
|
2021-05-18 07:01:35
|
can you share?
|
|
|
improver
|
2021-05-18 07:01:52
|
uhh id have to find another one this one is lewd
|
|
2021-05-18 07:02:27
|
but i wouldnt be surprised that a lot of stuff if encoded with jpeg q 100 would result in something like this
|
|
|
Scientia
|
2021-05-18 07:02:52
|
But legitimately, it may be nice to have a heuristic when you tell cjxl to compress a jpeg and remove metadata/reconstruction data that can tell you if it would compress better with modular or lossless jpeg
|
|
2021-05-18 07:03:25
|
Since you're already removing the reconstruction data
|
|
|
|
veluca
|
2021-05-18 07:03:26
|
is it anime-ish?
|
|
|
Scientia
|
2021-05-18 07:03:35
|
Ohhh
|
|
2021-05-18 07:03:42
|
That's why it's working
|
|
2021-05-18 07:03:52
|
He said it was from pixiv
|
|
2021-05-18 07:04:02
|
Essentially exclusively anime
|
|
|
improver
|
2021-05-18 07:04:27
|
yeah definitely anime-ish
|
|
|
Scientia
|
2021-05-18 07:04:30
|
Japanese art site
|
|
|
|
veluca
|
2021-05-18 07:05:20
|
ok, then I'm not surprised π
|
|
2021-05-18 07:05:44
|
wonder if it's an RGB or YCbCr JPEG...
|
|
|
Scientia
|
2021-05-18 07:05:49
|
Can cjxl transcode from jxl to jxl?
|
|
|
|
veluca
|
|
Scientia
|
2021-05-18 07:06:13
|
That would be useful in the future
|
|
2021-05-18 07:06:21
|
Especially when we have files from now
|
|
2021-05-18 07:07:12
|
In the future when cjxl gets more improvements it would be useful to take an older jxl and transcode it to give it the new improvements in coding
|
|
|
_wb_
|
2021-05-18 07:07:31
|
For lossless you can do that, for lossy not really
|
|
|
|
veluca
|
2021-05-18 07:07:43
|
ehhhh, takes more wok than we have time ATM π
|
|
|
Scientia
|
2021-05-18 07:07:55
|
Lossless is mainly my goal
|
|
2021-05-18 07:08:17
|
Lossy yeah you can't retrieve data that's already been thrown away to do a better encode
|
|
|
_wb_
|
2021-05-18 07:09:02
|
Main priority right now is making browsers decode all kinds of jxl as well as possible
|
|
|
Scientia
|
2021-05-18 07:09:19
|
Seems to be going well
|
|
|
_wb_
|
2021-05-18 07:09:32
|
Then I guess we'll turn to support in viewers and authoring tools
|
|
|
Scientia
|
2021-05-18 07:09:41
|
I think adoption is faster than avif was originally
|
|
2021-05-18 07:10:19
|
Maybe similar
|
|
|
_wb_
|
2021-05-18 07:11:02
|
Avif stopped at the "decode once full bitstream is available" stage, which is reasonably easy to implement
|
|
2021-05-18 07:11:42
|
Since today we have incremental decode too, which is already an improvement.
|
|
2021-05-18 07:12:20
|
Progressive would be even better, but is some more implementation effort.
|
|
|
improver
|
2021-05-18 07:13:05
|
<https://www.pixiv.net/en/artworks/89893232> happens with this one too
|
|
2021-05-18 07:13:12
|
|
|
2021-05-18 07:13:46
|
from something i can't post on discord to something i almost could
|
|
|
Scope
|
2021-05-18 07:19:26
|
Btw, about improving image compression and progression is not needed in today's world
|
|
2021-05-18 07:19:30
|
|
|
2021-05-18 07:19:56
|
|
|
2021-05-18 07:20:18
|
|
|
|
improver
|
2021-05-18 07:21:51
|
that was faster for me but wasn't unnoticeable either
|
|
|
Scope
|
2021-05-18 07:40:55
|
Yep, not all sites have CDNs around the world or good speed and transport routes to every client
|
|
|
improver
|
2021-05-18 07:45:40
|
though i could squeeze it down to fit but i guess that aint going to happen
```
8.5M 89893232_p0.jpg.s9e3i1m.jxl
```
|
|
|
|
veluca
|
2021-05-18 07:46:00
|
that's going to be pretty slow to decode...
|
|
2021-05-18 07:46:25
|
rule of thumb: VarDCT images will decode 20x faster or more than modular images
|
|
|
improver
|
2021-05-18 07:46:38
|
it was really (like really really) slow to encode so I wouldn't be surprised
|
|
|
_wb_
|
2021-05-18 08:06:14
|
Well decode speed should still be a lot better than that encode speed, lol
|
|
2021-05-18 08:08:16
|
Could also do slightly lossy vardct encode, -d 0.5 or so
|
|
2021-05-18 08:08:47
|
Probably smaller than modular, and not much more lossy
|
|
2021-05-18 08:09:27
|
(decoding jpeg to pixels and encoding those pixels losslessly is a slightly lossy thing to do anyway)
|
|
|
improver
|
2021-05-18 08:19:54
|
not that much more lossy than decoding jpeg to pixels on the screen
|
|
2021-05-18 08:21:01
|
but yes somewhat
|
|
|
Petr
|
|
veluca
I'll tell you a secret: the cjxl command line is a mess π
|
|
2021-05-19 06:38:29
|
Someone should submit an issue "Decrease cjxl command line mess", right? π
|
|
|
|
veluca
|
|
fab
|
2021-05-19 07:18:16
|
you will not get smaller anyway than for %i in (C:\Users\User\Documents\xs3*.png) do cjxl -s 6 -q 63.52 --epf=2 -p --gaborish=1 --patches=0 --dots=1 --use_new_heuristics %i %i.jxl
|
|
2021-05-19 07:18:38
|
modular is less efficient
|
|
2021-05-19 07:18:45
|
for jpegs
|
|
2021-05-19 07:18:59
|
and do too much research
|
|
|
diskorduser
|
2021-05-19 08:58:37
|
Why do you want to use modular for jpeg.
|
|
|
fab
|
2021-05-19 09:07:24
|
me not
|
|
|
Nova Aurora
|
|
Petr
Someone should submit an issue "Decrease cjxl command line mess", right? π
|
|
2021-05-19 02:51:37
|
Someone should submit a PR <:Poggers:805392625934663710>
|
|
|
diskorduser
|
2021-05-19 04:18:33
|
Nooo. I like having more flags
|
|
|
|
veluca
|
2021-05-22 01:15:36
|
it's for the third image, if you pass one
|
|
2021-05-22 01:16:47
|
mmmmmhhhh, if I remember correctly that's an annoyance of compiling compare_images with skcms instead of lcms
|
|
2021-05-22 01:17:47
|
I *think* you can fix it by passing -DJPEGXL_ENABLE_SKCMS=Off to cmake
|
|
2021-05-22 01:18:18
|
but I'm not sure
|
|
2021-05-22 01:18:20
|
<@!604964375924834314>
|
|
2021-05-22 01:50:26
|
I do wonder what is wrong with using skcms, but I fear we have more pressing concerns that that xD
|
|
2021-05-22 01:51:54
|
making sure our decoding lib is as good as it could be in the next 3 weeks
|
|
2021-05-22 01:52:14
|
(mostly in terms of memory usage and proper support for progressive decoding)
|
|
2021-05-22 01:53:58
|
v0.4 is what we have today, basically
|
|
2021-05-22 01:54:33
|
it's feature-complete, bitstream-wise, but the quality of the implementation of some features... let's say could be improved
|
|
2021-05-22 01:56:34
|
0.4.x is mostly 0.4.0 but without a bugfix or two
|
|
|
spider-mario
|
2021-05-22 02:09:34
|
I had come across that bug with compare_images+skcms but hadnβt figured out the causeβ―ββ―after all, itβs fine in djxl
|
|
2021-05-22 02:09:41
|
itβs rather puzzling
|
|
2021-05-22 02:10:23
|
maybe Iβll investigate deeper at some point
|
|
2021-05-22 02:10:46
|
possibly some slightly negative value that wrecks havoc somewhere (wrapping?)
|
|
|
lithium
|
2021-05-23 02:27:57
|
<@!416586441058025472> jpegxl-44778c69-master [v0.3.7 | SIMD supported: AVX2,SSE4,Scalar]
|
|
|
fab
|
|
lithium
<@!416586441058025472> jpegxl-44778c69-master [v0.3.7 | SIMD supported: AVX2,SSE4,Scalar]
|
|
2021-05-23 02:31:14
|
do you have also 100e3c7e
|
|
2021-05-23 02:31:23
|
please
|
|
2021-05-23 02:31:33
|
i will not look into actual difference
|
|
2021-05-23 02:31:42
|
i will only convert a photo
|
|
|
lithium
|
2021-05-23 02:34:11
|
<@!416586441058025472> I find a old cjxl on my Program Files 20210520 create,
I can't guarantee this version is 100e3c7e.
|
|
2021-05-23 02:34:28
|
old cjxl
|
|
|
|
veluca
|
2021-05-23 02:41:28
|
100e3c7e is older, use 44778c69
|
|
|
fab
|
2021-05-23 02:42:06
|
ligcc compiler i don't have
|
|
2021-05-23 02:42:15
|
sorry for the font
|
|
2021-05-23 02:42:18
|
i did wrong
|
|
2021-05-23 02:42:27
|
i'm thinking of -q 70,05 --epf=1 --dots=0 --resampling_2
|
|
2021-05-23 02:44:20
|
i need like mozjpeg q 32 and separate chroma quality 15
|
|
2021-05-23 02:44:44
|
but in higher fidelity
|
|
2021-05-23 02:45:05
|
i want to distort image on purpose
|
|
2021-05-23 02:45:13
|
to look better on the selfie
|
|
2021-05-23 02:45:37
|
i did photo with a flash and hdr and with a sony dsc wx60
|
|
2021-05-23 02:45:44
|
2013 camera
|
|
2021-05-23 02:46:15
|
why is giving that error?
|
|
|
lithium
|
2021-05-23 02:46:24
|
you can try jpeg xl 44778c69, I think this sync don't have much quality change.
|
|
|
fab
|
2021-05-23 02:46:31
|
ah it was compiled in windows 10
|
|
|
lithium
|
2021-05-23 02:46:51
|
I using windows 10 64bit
|
|
|
fab
|
2021-05-23 02:47:15
|
but is relative to windows 10 or because it's compiled using newer version of compilers?
|
|
2021-05-23 02:47:27
|
is fault of windows 10 or of the version of the compiler?
|
|
|
lithium
|
2021-05-23 02:51:49
|
msys2-64 mingw64 clang
|
|
2021-05-23 02:52:37
|
mingw-w64-x86_64-clang 11.0.0-8
|
|
|
fab
|
2021-05-23 02:54:49
|
i downloaded another person build
|
|
2021-05-23 02:54:55
|
and is not starting
|
|
2021-05-23 02:55:02
|
same error
|
|
|
lithium
|
2021-05-23 02:57:17
|
You using windows 7 32bit or 64bit?
|
|
|
fab
|
2021-05-23 02:59:02
|
64 bit
|
|
2021-05-23 02:59:12
|
but i do not have any compiler installed
|
|
2021-05-23 02:59:19
|
no msys
|
|
2021-05-23 02:59:27
|
i uninstalled them
|
|
|
lithium
|
2021-05-23 03:01:49
|
I think you can try Scope avx only version?
https://encode.su/threads/3564-JXL-version-0-3-released?p=69684&viewfull=1#post69684
|
|
|
fab
|
2021-05-23 03:15:15
|
ok i did
|
|
2021-05-23 03:15:17
|
for %i in (C:\Users\User\Documents\67\*.jpg) do cjxl -j -q 91.832 -s 8 --faster_decoding=7 --dots=1 --gaborish=0 --patches=1 -p --epf=2 --use_new_heuristics %i %i.jxl
|
|
2021-05-23 03:15:29
|
and now i open squoosh and i do avif q 16
|
|
2021-05-23 03:15:42
|
with default effort and settings and that encoder
|
|
|
_wb_
|
2021-05-23 03:22:37
|
no idea what that combination of options actually ends up doing
|
|
2021-05-23 03:24:06
|
it's a combination that does not make a huge amount of sense to me β why epf 2 but gaborish 0?
|
|
|
lithium
|
2021-05-23 03:24:18
|
jpeg xl encoder fuzz test?
|
|
|
_wb_
|
2021-05-23 03:26:55
|
it's good to find bugs there in the sense of combinations that make cjxl crash or do something wildly bad
|
|
|
|
veluca
|
2021-05-23 03:27:39
|
pretty sure dots and patches do nothing with the new heuristics either
|
|
|
_wb_
|
2021-05-23 03:27:43
|
but for quality comparisons please don't use weird non-default options, it is likely not to give good results
|
|
|
|
veluca
|
2021-05-23 03:27:50
|
-s 8 likely doesn't do much too
|
|
2021-05-23 03:28:10
|
faster_decoding=7 doesn't mean anything different from =4 π
|
|
2021-05-23 03:28:33
|
and I don't know if you can even disable gaborish with the new heuristics...
|
|
2021-05-23 03:28:48
|
probably yes
|
|
|
fab
|
2021-05-23 03:30:49
|
i used 12052021
|
|
2021-05-23 03:31:01
|
to convert a selfie
|
|
2021-05-23 03:31:06
|
that i compressed with avif q 16
|
|
2021-05-23 03:31:22
|
i got a 16 mpx 31,6 kb AVIF image
|
|
|
diskorduser
|
|
fab
i want to distort image on purpose
|
|
2021-05-23 03:40:21
|
Use image editing programs then.
|
|
|
Lastrosade
|
|
eddie.zato
cjxl.exe v0.3.7-6-g30ea86a
The problem with temp jpeg files not being deleted still persists.
|
|
2021-05-26 08:16:26
|
its a bit of a problem
|
|
|
|
veluca
|
2021-05-26 08:25:44
|
I have no idea what may cause it, honestly... I don't recall any part of our encoder that creates jpeg files π€
|
|
|
Scope
|
2021-05-26 08:29:49
|
Probably libjpeg(-turbo)
|
|
|
Lastrosade
|
2021-05-26 08:30:49
|
We get these tmp files
|
|
2021-05-26 08:31:15
|
They are basically the source images
|
|
|
Scope
|
2021-05-26 08:35:42
|
<https://github.com/libjpeg-turbo/libjpeg-turbo/blob/main/example.txt>
> * If the compressor requires full-image buffers (for entropy-coding
> * optimization or a multi-scan JPEG file), it will create temporary
> * files for anything that doesn't fit within the maximum-memory setting.
> * (Note that temp files are NOT needed if you use the default parameters.)
> * On some systems you may need to set up a signal handler to ensure that
> * temporary files are deleted if the program is interrupted. See libjpeg.txt.
|
|
|
Lastrosade
|
2021-05-26 08:37:20
|
So this could come from ffmpeg when decoding jpegs ?
|
|
|
Scope
|
2021-05-26 08:39:30
|
I don't know, but maybe from libjpeg-turbo or some other libs
|
|
|
eddie.zato
|
2021-05-27 02:30:03
|
So we just need the encoder to call libjpeg-turbo with some parameters that don't create tmp-files, or at least have libjpeg-turbo clean up after itself.
Dunno, maybe this "maximum memory setting" is set to zero. π
|
|
|
Lighthouse
|
2021-05-31 04:36:04
|
Hello! Multithreaded optimization for cjxl seems to be... just average I guess. I am currently converting very large files in lossless (modular) mode and I noticed at best one or just two threads are being used. Is there any plan for further optimizations?
|
|
2021-05-31 04:41:52
|
also it would be great if I can convert tiff files to jxl directly instead of using png as interim format.
|
|
|
_wb_
|
2021-05-31 05:25:15
|
More optimization is possible, but note that to some extent, optimal encoding has inherently sequential parts. Fast, non-optimal encoding is easier to parallelize. So the difference between -s 2 and -s 9 will be quite large.
|
|
|
monad
|
|
Lighthouse
also it would be great if I can convert tiff files to jxl directly instead of using png as interim format.
|
|
2021-05-31 05:35:02
|
ImageMagick should support this.
|
|
|
_wb_
|
2021-05-31 05:51:46
|
We are not aiming to read all possible input formats, cjxl is not ImageMagick
|
|
2021-05-31 05:52:25
|
The input formats that are there, are there because we needed some kind of input for testing that we couldn't get from other formats
|
|
2021-05-31 05:56:17
|
For basic still images, PNG input is ok. Or JPEG for lossless jpeg recompression. PPM can do non-power-of-two bitdepths. PFM can do floats. EXR can do half-floats. GIF can do animation. APNG can do it with full color and alpha. PSD can do layers, cmyk, and spot colors. Y4M can do yuv444/422/420.
|
|
|
|
veluca
|
|
Lighthouse
Hello! Multithreaded optimization for cjxl seems to be... just average I guess. I am currently converting very large files in lossless (modular) mode and I noticed at best one or just two threads are being used. Is there any plan for further optimizations?
|
|
2021-05-31 07:35:56
|
if you're a programmer, and want to speed this up, you could take a shot at parallelizing tree learning π
|
|
|
_wb_
|
2021-05-31 08:37:14
|
Not sure if that's the best place to start when you're new to libjxl and want to make a contribution π
|
|
|
|
veluca
|
2021-05-31 09:00:41
|
it should actually be relatively self-contained xD
|
|
2021-05-31 09:00:55
|
but I might have a weird perception here
|
|
|
Lighthouse
|
|
veluca
if you're a programmer, and want to speed this up, you could take a shot at parallelizing tree learning π
|
|
2021-05-31 01:18:47
|
Well speaking about parallelzing by non-programmer the closest would be setting up multiple docker containers. Though this will require tons of RAM.
|
|
|
raysar
|
|
Lighthouse
Well speaking about parallelzing by non-programmer the closest would be setting up multiple docker containers. Though this will require tons of RAM.
|
|
2021-05-31 01:20:53
|
Easy way is to encode 2 or more file in the same time (i will create a powershell script for that). Other way, encoding file with DCT -s7 is multithreaded.
|
|
|
Lighthouse
|
2021-05-31 01:24:10
|
I see. Thank you for the comments folks.
|
|
|
eddie.zato
|
2021-05-31 02:06:27
|
With Powershell 7
```Powershell
ls *.jpg | % -ThrottleLimit 2 -Parallel { cjxl $_ "$($_.Basename).jxl" }
```
|
|
|
BlueSwordM
|
|
veluca
if you're a programmer, and want to speed this up, you could take a shot at parallelizing tree learning π
|
|
2021-05-31 03:13:17
|
If efficiency wasn't much of an issue, would doing independent tiles on large images with overlap compensation be possible?
|
|
|
|
veluca
|
2021-05-31 03:13:43
|
overlap compensation?
|
|
|
BlueSwordM
|
|
veluca
overlap compensation?
|
|
2021-05-31 03:15:48
|
I may have worded it poorly based on previous experience, but block overlap compensation essentially means you do some mild blurring and filtering on the edges of a block/tile to make the separation considerably less obvious.
|
|
|
|
veluca
|
2021-05-31 03:17:56
|
ah, we don't need that π our decoder handles cross-tiles data the proper way
|
|
|
spider-mario
|
2021-06-30 07:38:49
|
somehow I hadnβt noticed https://github.com/fish-shell/fish-shell/pull/7673
|
|
|
diskorduser
|
2021-06-30 08:17:52
|
Is there something for zsh
|
|
|
Scope
|
2021-07-08 01:13:29
|
<https://github.com/tachiyomiorg/tachiyomi>
https://github.com/jobobby04/TachiyomiSY/
|
|
2021-07-08 01:13:54
|
<https://github.com/jobobby04/TachiyomiSYPreview/releases>
|
|
|
raysar
|
|
Scope
<https://github.com/jobobby04/TachiyomiSYPreview/releases>
|
|
2021-07-08 01:31:29
|
Yes ! π you are fast, the commit is here 13 hours ago π We only need to wait the compilation apk π
First ever jxl viewer on Android!
|
|
|
fab
|
2021-07-08 01:41:33
|
for Android 6.0 and above. no galaxy s4 i need to wait another week
|
|
2021-07-08 02:15:46
|
indeed my galaxy s4 refuses this app
|
|
2021-07-08 02:27:44
|
(Android 6 users using v0.10.12 will need to manually download the APK and update due to a bug, sorry!)
|
|
2021-07-08 02:29:01
|
this isn't a jpeg xl viewer
|
|
2021-07-08 02:29:04
|
false claim
|
|
2021-07-08 02:29:16
|
is a manga viewer it doesn't open jxl photos
|
|
|
improver
|
2021-07-08 02:35:31
|
this is actually from <https://github.com/tachiyomiorg/image-decoder/pull/1> and <https://github.com/tachiyomiorg/tachiyomi/pull/5512>
|
|
2021-07-08 02:35:45
|
should've probably been posted in adoption
|
|
2021-07-08 02:38:55
|
I'm not interested in proving you anything
|
|
|
fab
|
2021-07-08 02:39:03
|
this app doesnt' work
|
|
2021-07-08 02:39:14
|
don't display anything
|
|
2021-07-08 02:40:24
|
nobody haa sent a screenshot of their phone here
|
|
|
improver
|
2021-07-08 02:43:23
|
I personally use only tachiyomi, not its forks, so I'll wait for official release with that enabled to start testing
|
|
2021-07-08 02:43:35
|
but additions to the code are exciting nevertheless
|
|
|
Scope
|
2021-07-08 02:52:12
|
<https://github.com/tachiyomiorg/tachiyomi-preview/releases>
|
|
|
raysar
|
|
improver
should've probably been posted in adoption
|
|
2021-07-08 03:01:54
|
Ah ok i don't see it, so it's great there are preview apk
I do test now and it works, but there are posterisation :/
|
|
2021-07-08 03:02:05
|
|
|
2021-07-08 03:07:35
|
Ah i find in option an "32 bits" decoding. It's not enabled by default ...
So it's not a bug it's a feature ...
|
|
2021-07-08 03:11:20
|
It's a cool software, but it only read files in specific folders with chapters or zip.
|
|
|
improver
|
|
Scope
<https://github.com/tachiyomiorg/tachiyomi-preview/releases>
|
|
2021-07-08 03:20:49
|
nice. maybe ill try this if i have time.
|
|
|
improver
nice. maybe ill try this if i have time.
|
|
2021-07-08 03:50:24
|
|
|
2021-07-08 03:50:28
|
works
|
|
|
fab
|
2021-07-08 04:58:12
|
do you have android 6.0 and up
|
|
2021-07-08 04:58:35
|
the screenshot appears to be 18:9
|
|
|
improver
|
2021-07-08 04:58:53
|
I have "up"
|
|
2021-07-08 04:59:29
|
also yes that's my phone's aspect ratio
|
|
|
w
|
|
diskorduser
|
|
fab
the screenshot appears to be 18:9
|
|
2021-07-09 03:07:27
|
It's 21:9. Not 18:9.
|
|
|
|
Deleted User
|
2021-07-09 08:11:48
|
Why not simply say 7:3 and 2:1? π€¨
|
|
|
spider-mario
|
2021-07-09 08:15:15
|
because you can compare them without having to bring them back to the same denominator again
|
|
2021-07-09 08:15:29
|
I suppose
|
|
|
improver
|
|
diskorduser
It's 21:9. Not 18:9.
|
|
2021-07-09 08:22:14
|
yes im bad at remembering numbers it's sony xperia 5 ii
|
|
|
Troc
|
|
raysar
Yes ! π you are fast, the commit is here 13 hours ago π We only need to wait the compilation apk π
First ever jxl viewer on Android!
|
|
2021-07-10 12:42:21
|
Finally!
|
|
|
|
Deleted User
|
2021-07-10 12:55:57
|
What about non-anime-oriented Android <:JXL:805850130203934781> viewers?
|
|
|
w
|
2021-07-10 02:48:31
|
once I'm done with icc profiles for tachiyomi I might just get it fixed for jxl in firefox
|
|
2021-07-10 02:58:48
|
I've been working on it for all of today (the embedded icc part not the display profile part)
|
|
2021-07-10 02:59:04
|
How did you profile your phone?
|
|
2021-07-10 02:59:24
|
I have a colorimeter aswell but didn't know Android supports profiling, android 11
|
|
2021-07-10 03:00:39
|
or do you just generate an icm independent of the os?
|
|
2021-07-10 03:02:56
|
so you don't install the profile?
|
|
2021-07-10 03:04:35
|
hmm guess I'll spend tomorrow calibrating my phone
|
|
2021-07-10 03:05:24
|
<:KanataOyasumi1:754561613930954764>
|
|
|
Troc
|
2021-07-12 08:09:23
|
Yo, how do I change associated editing application of ImageGlass?
|
|
|
frank cilantro
|
2021-07-24 05:12:48
|
How can I make those graphics that display the varDCT blocks that were created for an input image?
|
|
|
_wb_
|
2021-07-24 06:40:38
|
benchmark_xl has an option to save debug images
|
|
2021-07-24 06:40:54
|
That's one of those
|
|
|
frank cilantro
|
2021-07-24 08:48:39
|
thanks π
|
|
|
eclipseo
|
2021-07-28 07:56:58
|
For those looking for a Windows build of the latest GIT tip: https://www.dropbox.com/s/bpog8d4ca2j02dk/jxl_20210728.zip?dl=0 <@!416586441058025472>
|
|
|
fab
|
2021-07-28 08:05:31
|
amazing
|
|
2021-07-28 08:05:37
|
thanks
|
|
|
|
Deleted User
|
2021-07-29 01:13:12
|
I know, I know, mental shorcut π
(I've been on a vacation, I'm catching up on the messages)
|
|
|
improver
|
2021-08-01 07:00:34
|
https://github.com/SoftCreatR/imei this looks handy
|
|
|
Michael
|
2021-08-13 07:23:24
|
Does the current wasm implementation support converting from jpeg/png/gif to jxl?
Since the conversion requires libjpeg, libgif etc.
<@!439539398657441832>
|
|
|
_wb_
|
2021-08-13 08:10:51
|
Libjxl itself only does encoding/decoding from/to pixel buffers (plus optionally encoding jpeg bitstreams exactly and reconstructing them again)
|
|
2021-08-13 08:12:54
|
If you want a wasm build of cjxl/djxl, you'll indeed also need wasm builds of the dependencies (which are all optional iirc)
|
|
|
Michael
|
|
_wb_
If you want a wasm build of cjxl/djxl, you'll indeed also need wasm builds of the dependencies (which are all optional iirc)
|
|
2021-08-13 08:27:25
|
Okay, thanks for the answer.
But as I understood currently there is now way to set path to library dependencies for wasm build.
|
|
|
_wb_
|
2021-08-13 08:29:41
|
I haven't tried wasm builds myself. <@710762823986446367> or <@228116142185512960> likely know more about how to get it done
|
|
2021-08-13 08:30:19
|
Which reminds me: does squoosh already have v0.5?
|
|
|
|
veluca
|
|
_wb_
Which reminds me: does squoosh already have v0.5?
|
|
2021-08-13 09:28:40
|
there: https://github.com/GoogleChromeLabs/squoosh/pull/1120
|
|
|
fab
|
2021-08-14 05:50:04
|
link for the jxl decoder february 09th
https://mega.nz/file/fA8CnAIT#FZiMDYy1tEqDhDFy6ZL5hixvSug1lxpEEk229L2THu4
|
|
|
diskorduser
|
2021-08-14 05:59:06
|
W t needs older binaries
|
|
|
fab
|
2021-08-14 06:25:57
|
it has no virus i just installed now from a new formatted computer;windows 7 though is not in good state;the speed is good
|
|
2021-08-14 06:26:56
|
and is from my account; someone uploaded in discord jpeg xl
|
|
|
|
veluca
|
2021-08-14 07:28:53
|
why wouldn't you just use the daily builds at http://artifacts.lucaversari.it/libjxl/libjxl/latest ?
|
|
|
Scope
|
2021-08-14 07:31:33
|
Easy ways and simple solutions are not for Fabian
|
|
|
_wb_
|
2021-08-14 07:42:35
|
February 9th 2021 was a good vintage for jxl encoders, any jxl sommelier will confirm that.
|
|
|
fab
|
2021-08-14 08:38:49
|
decoder wic
|
|
2021-08-14 08:38:56
|
this is the original by mirillis
|
|
2021-08-14 08:39:03
|
but the original is djxl
|
|
2021-08-14 08:39:11
|
i think is a library
|
|
2021-08-14 08:39:13
|
don't know
|
|
2021-08-14 08:39:26
|
a windows thumbnail decoder is described as
|
|
2021-08-14 08:39:58
|
jxl winthumb is newer but throws error 0x80004005 on windows 7
|
|
2021-08-14 08:40:05
|
Questo problema puΓ² verificarsi se un file necessario per l'Attivazione di un prodotto Windows (WPA) risulta danneggiato o mancante. Un'utilitΓ di backup o un programma antivirus di terze parti interferisce con l'installazione di Windows XP. ...
|
|
2021-08-14 08:40:14
|
basically my windows isn't regularly paid
|
|
2021-08-14 08:40:19
|
that's the issue
|
|
|
w
|
2021-08-15 12:18:23
|
things work differently in fabianland
|
|
|
diskorduser
|
|
fab
Questo problema puΓ² verificarsi se un file necessario per l'Attivazione di un prodotto Windows (WPA) risulta danneggiato o mancante. Un'utilitΓ di backup o un programma antivirus di terze parti interferisce con l'installazione di Windows XP. ...
|
|
2021-08-15 04:24:10
|
Install windows 10
|
|
2021-08-15 04:24:17
|
Or 11
|
|
|
monad
|
2021-08-15 05:35:19
|
I'd guess Win 7 is less annoying and resource hungry than Win 10 on an old machine.
|
|
|
190n
|
|
w
things work differently in fabianland
|
|
2021-08-15 07:50:33
|
the word is italy
|
|
|
fab
|
2021-08-15 08:20:57
|
i don't even know what is genuine windows anyway it's a different discussion than jxl tools
|
|
|
diskorduser
|
|
monad
I'd guess Win 7 is less annoying and resource hungry than Win 10 on an old machine.
|
|
2021-08-15 08:41:34
|
I believe there are some tools to remove unneeded components and services from official windows iso 10. Those installations are lighter like w7.
|
|
|
fab
|
2021-08-15 08:47:52
|
don't know i don't installed myself plus i don't have original cd
|
|
2021-08-15 08:47:56
|
i'm being honest
|
|
2021-08-15 08:48:04
|
don't debate more it should be present
|
|
2021-08-15 08:48:24
|
last time i formatted was may 2018
|
|
|
diskorduser
Install windows 10
|
|
2021-08-15 08:49:22
|
windows 10 can't open programs without direct x 11 even the task manager
|
|
2021-08-15 08:49:34
|
i have direct x 7 i tried in 2017 this
|
|
2021-08-15 08:49:36
|
so i know
|
|
|
diskorduser
|
2021-08-15 08:50:11
|
It comes directx inbuilt.
|
|
|
fab
|
2021-08-15 08:50:47
|
in fact but my driver don't support it
|
|
2021-08-15 08:50:55
|
and my graphic card
|
|
|
diskorduser
|
2021-08-15 08:51:08
|
You don't need directx11 graphic card to run programs
|
|
|
fab
|
|
diskorduser
|
2021-08-15 08:52:18
|
You need only dx9 for w10
|
|
2021-08-15 08:53:20
|
Even w11 runs fine on dx9 gpu
|
|
|
fab
|
2021-08-15 09:23:28
|
probably my driver is ancient
|
|
|
Crixis
|
|
190n
the word is italy
|
|
2021-08-15 10:06:20
|
No
|
|
|
diskorduser
|
|
fab
probably my driver is ancient
|
|
2021-08-15 10:09:26
|
I run w11 in 2009 desktop. What are you .....
|
|
|
|
veluca
|
2021-08-15 10:40:19
|
pretty sure "regularly" = "properly" in that sentence π might be an Italian phrasing...
|
|
|
Eugene Vert
|
2021-08-17 06:28:47
|
Do the jxl animations work anywhere?
|
|
|
Scope
|
2021-08-17 06:32:01
|
At least in Chrome/Chromium
|
|
|
Fraetor
|
2021-08-17 07:52:46
|
So cjxl does encode animated gifs then?
|
|
|
_wb_
|
2021-08-17 08:03:42
|
It does, but it's a part of the encoder that hasn't gotten much attention yet
|
|
2021-08-17 08:04:19
|
I.e. we can very likely do a lot better than what we have now
|
|
2021-08-17 08:04:46
|
Then again, jxl will never come close to real video codecs like avif
|
|
2021-08-17 08:05:47
|
So imo it's a bit pointless to make a great encoder for animated jxl, it makes more sense to use av1 for animations
|
|
|
Eugene Vert
|
2021-08-17 08:33:35
|
And it seems that using lossless webp for pixel art animation would be a better choice?
|
|
|
_wb_
|
2021-08-17 08:40:05
|
not sure - for now maybe yes (considering encode speed etc), but I think jxl should generally be able to beat lossless webp, bitstream-wise
|
|
|
|
Deleted User
|
2021-08-17 08:45:41
|
Did browsers and other programs support animated WebP right when they deployed their WebP support?
|
|
|
_wb_
|
|
Scope
|
2021-08-17 09:17:03
|
There were no animations and lossless when WebP appeared, they were added to the format much later, after more than a year of WebP's existence
|
|
|
Michael
|
2021-08-22 03:52:46
|
Hi. What is difference between jxl::ConvertFromExternal and jxl::SetFromBytes which check input data codec ?
|
|
|
spider-mario
|
2021-08-22 04:36:46
|
ConvertFromExternal takes raw pixel data
|
|
2021-08-22 04:36:57
|
it doesnβt do any decoding beyond that
|
|
2021-08-22 04:37:11
|
SetFromBytes takes PNGs, JPEGs, that sort of stuff
|
|
|
Michael
|
|
spider-mario
SetFromBytes takes PNGs, JPEGs, that sort of stuff
|
|
2021-08-22 05:58:37
|
So before using ConvertFromExternal image should be converted to raw pixel data? And does SetFromBytes do it conversion?
Thanks for the answer.
|
|
|
spider-mario
|
2021-08-22 05:59:36
|
yes, however those are internal APIs
|
|
2021-08-22 05:59:40
|
what are you trying to do?
|
|
|
Michael
|
|
spider-mario
what are you trying to do?
|
|
2021-08-22 06:01:09
|
Actually just found code of using JXL convetor with ConvertFromExternal. But it does not use OpenEXR, JPEG etc. libs. I wondered how this could be.
|
|
2021-08-22 06:01:57
|
Now I understand that they do format conversions somewhere earlier, before calling jxl.
Am I right?
|
|
|
_wb_
|
2021-08-22 06:10:40
|
libjxl is only meant to encode/decode jxl from/to uncompressed pixel buffers
|
|
2021-08-22 06:11:40
|
(and maybe between jpeg bitstreams and lossless recompressed jxl)
|
|
|
Michael
|
|
_wb_
libjxl is only meant to encode/decode jxl from/to uncompressed pixel buffers
|
|
2021-08-22 06:12:32
|
Okay. Thanks. It make sense for me.
|
|
|
|
Deleted User
|
2021-08-27 12:45:08
|
What do you think about that?
https://deploy-preview-1136--squoosh.netlify.app/
|
|
2021-08-27 12:45:49
|
It's made from this PR and it FINALLY WORKS!
https://github.com/GoogleChromeLabs/squoosh/pull/1136
|
|
|
Traneptora
|
2021-09-04 10:53:07
|
can I make `cjxl` read from stdin and write to stdout?
|
|
2021-09-04 10:53:31
|
`cjpeg` can do it
|
|
2021-09-04 11:12:55
|
doing `cjxl /dev/stdin /dev/stdout <input.png >output.jxl` seems clunky
|
|
2021-09-04 11:13:20
|
(these might not be files on disk at some point)
|
|
2021-09-04 11:14:25
|
ideally it should accept `-` as an alias for stdin/stdout like most tools
|
|
2021-09-04 11:14:51
|
or do stdin-to-stdout if filenames are omitted completeley
|
|
2021-09-04 11:14:56
|
(like cjpeg)
|
|
|
Fraetor
|
2021-09-04 11:20:10
|
I think there is an open issue for it.
|
|
|
Traneptora
|
2021-09-04 11:21:15
|
while we're talking about cli parsing, is there a `--` to force cjxl to interpret all remaining arguments as filenames?
|
|
|
Fraetor
|
|
Traneptora
|
|
Fraetor
|
2021-09-04 11:21:32
|
Added a few weeks ago
|
|
|
Traneptora
|
2021-09-04 11:21:33
|
essential scripting convenience tool
|
|
|
Fraetor
|
2021-09-04 11:21:45
|
So I don't know if it is in the release yet
|
|
2021-09-04 11:21:49
|
But it is on main
|
|
|
Traneptora
|
2021-09-04 11:21:53
|
good enough for me
|
|
2021-09-04 11:21:57
|
since I can build from master in the shorterm
|
|
|
Fraetor
|
|
Fraetor
I think there is an open issue for it.
|
|
2021-09-04 11:27:22
|
I can't see and open issue for it on either the Gitlab or GitHub, so I'll open one.
|
|
|
Traneptora
|
|
diskorduser
|
2021-09-08 12:40:54
|
Oh it is me.
|
|
|
Fraetor
|
2021-09-08 01:39:37
|
Sorry, I missed that because I was searching for stdin / standers input
|
|
|
spider-mario
|
2021-09-08 03:50:05
|
does using `/dev/stdin` / `/dev/stdout` work for this?
|
|
2021-09-08 03:50:22
|
let me try
|
|
|
_wb_
|
2021-09-08 03:53:51
|
Probably not because we check if it's a regular file and we want to know its size
|
|
2021-09-08 03:54:04
|
/dev/stdout probably works
|
|
|
spider-mario
|
2021-09-08 03:54:37
|
βFailed to read image /dev/stdin.β
|
|
|
_wb_
|
2021-09-08 03:54:49
|
I made a pull request to make it work for stdin with `-`
|
|
2021-09-08 03:55:27
|
https://github.com/libjxl/libjxl/pull/554
|
|
|
eddie.zato
|
2021-09-08 03:55:40
|
Are there any tools to write exif comments to a jxl file?
I can read the exif with `exiftool`, but I can't write with it.
|
|
|
_wb_
|
2021-09-08 03:56:06
|
We're working on it
|
|
2021-09-08 03:56:49
|
We first have to decide on the api, then we'll likely make a demo tool that uses the api to do container manipulation
|
|
2021-09-08 03:57:22
|
And then it will be up to exiftool, exiv2 etc to implement full support
|
|
|
|
xiota
|
2021-09-08 03:57:48
|
If you create the jxl file with a container (`cjxl --container`) exiftool can write metadata to it. But `djxl` seems to ignore the metadata when decoding. It might also interfere with jpeg reconstruction.
|
|
|
eddie.zato
|
2021-09-08 04:00:55
|
For now, I just write a comment to the source file and then `cjxl` transfers it to the resulting jxl. But looking forward to the implementation.
|
|
|
_wb_
|
2021-09-08 04:02:10
|
djxl should write exif/xmp to at least png output and reconstructed jpegs
|
|
|
|
Deleted User
|
|
_wb_
https://github.com/libjxl/libjxl/pull/554
|
|
2021-09-08 04:02:44
|
Wow, that was a *fast* merge... ~1.5 hours since its creation!
|
|
2021-09-08 04:02:57
|
Is there any PR that was merged quicker?
|
|
|
eddie.zato
|
|
xiota
If you create the jxl file with a container (`cjxl --container`) exiftool can write metadata to it. But `djxl` seems to ignore the metadata when decoding. It might also interfere with jpeg reconstruction.
|
|
2021-09-08 04:03:10
|
Hey, it works!
|
|
|
_wb_
|
2021-09-08 04:03:37
|
When https://github.com/libjxl/libjxl/pull/544 lands, it will also work with newly encoded jpg output
|
|
|
Is there any PR that was merged quicker?
|
|
2021-09-08 04:05:00
|
Yes, when someone happens to check the code quickly and there are no remarks, things have been merged within minutes
|
|
2021-09-08 04:06:17
|
Dealing better with the container format is something we need to get done, there's stuff in the file format spec we're not yet properly implementing
|
|
2021-09-08 04:06:33
|
In particular compressed exif/xmp
|
|
2021-09-08 04:08:11
|
It should help quite a bit to get better recompression of jpegs that contain big exif/xmp, like produced by some cameras that have lots of makernotes or Adobe products that put lots of stuff there
|
|
2021-09-08 04:08:55
|
But we need to get our implementation in shape to properly decompress metadata when needed, and then we need to get it in exiftool/exiv2 too
|
|
2021-09-08 04:09:29
|
Because currently no tools know what to do with compressed metadata
|
|
|
|
veluca
|
|
Is there any PR that was merged quicker?
|
|
2021-09-08 04:11:05
|
there's quite a few with <10m merge time I think π but most of those are tiny
|
|
|
|
xiota
|
|
eddie.zato
Hey, it works!
|
|
2021-09-08 04:14:27
|
If you have problems, try using `exiftool -wm w` to make exiftool only modify existing tags, without creating any new ones.
|
|
|
eddie.zato
|
2021-09-08 04:16:31
|
But by adding an `EXIF:XPComment`, I'm literally creating a new one, right? π
|
|
|
|
xiota
|
2021-09-08 04:18:45
|
If the original didn't already have a comment tag. The problem with creating new tags is djxl and other tools might not be able to read the exif anymore. Until everyone is on the same page, it's probably better to do what you've been doing... write the tag to the original file before encoding to jxl.
|
|
|
eddie.zato
|
2021-09-08 04:22:51
|
Yeah, it's safer for now.
|
|
|
|
xiota
|
|
eddie.zato
Yeah, it's safer for now.
|
|
2021-09-08 04:23:29
|
You can backup tags to a sidecar too: `exiftool -tagsfromfile image.ext image.ext.xmp`
|
|
|
|
Deleted User
|
2021-09-08 04:37:11
|
By the way: what do you think about my PR #1136 for Squoosh? I changed it a bit since the last time.
See what happens if you turn the quality slider between >=7 and <7. Do you think it's user friendly?
https://deploy-preview-1136--squoosh.netlify.app/
|
|
|
July
|
|
_wb_
https://github.com/libjxl/libjxl/pull/554
|
|
2021-09-08 05:59:39
|
Is specifying output format so djxl can go to stdout being considered?
|
|
|
_wb_
|
2021-09-08 06:00:15
|
Not sure what to do with animation frames
|
|
|
July
|
2021-09-08 06:04:27
|
Allow specifying the frame maybe? Seems like too useful a feature to not have
|
|
|
Romao
|
2021-09-08 06:07:31
|
I agree, my whole system already supports jxl but some things rely on temporary files to read this format. Being able to use stdout would be quite useful.
|
|
|
|
xiota
|
|
Romao
I agree, my whole system already supports jxl but some things rely on temporary files to read this format. Being able to use stdout would be quite useful.
|
|
2021-09-08 06:09:14
|
JPG is a temporary file to go from digital camera to JXL π
|
|
|
Eugene Vert
|
2021-09-08 06:09:30
|
imagemagick have something like `convert '{}' png:-` / `convert '{}' ppm:-` for stdout output
|
|
|
Romao
|
|
Eugene Vert
imagemagick have something like `convert '{}' png:-` / `convert '{}' ppm:-` for stdout output
|
|
2021-09-08 06:11:22
|
I don't know why but my imagemagick is not recognizing jxl files, even though it's updated π©
|
|
|
spider-mario
|
|
Eugene Vert
imagemagick have something like `convert '{}' png:-` / `convert '{}' ppm:-` for stdout output
|
|
2021-09-08 06:12:20
|
also for non-stdout output, in case you specifically want an 8-bit RGB PNG and not a grayscale one for example: `convert input.ppm PNG24:output.png`
|
|
|
Romao
|
2021-09-08 06:12:30
|
btw, would it be too hard to implement stdout to APNGs if it's an animation?
|
|
|
Traneptora
|
2021-09-10 10:53:39
|
instead of prefixing it you could just add `--output-format` or something
|
|
2021-09-10 10:53:53
|
"force output format instead of choosing by filename"
|
|
2021-09-10 10:53:57
|
it's a fairly common way to do it
|
|
|
|
Deleted User
|
2021-09-10 04:03:32
|
Just like `-f` output option in FFmpeg
|
|
|
Romao
|
2021-09-10 04:43:57
|
would nice to also have standard formats defined for the output in case `-f` is omitted, like
- jpeg if it was first encoded from jpeg without `--strip`
- apng for animated pictures
- png for everything else
|
|
|
_wb_
|
2021-09-10 04:52:12
|
when piping stuff, I would assume that for the same reason you want to avoid intermediate files, you also want to avoid intermediate encoding effort
|
|
2021-09-10 04:52:26
|
i.e. uncompressed output likely makes most sense in most cases
|
|
2021-09-10 04:53:03
|
reconstructing a jpeg is not really encode effort (it's probably less effort than decoding it to pixels, or about the same)
|
|
2021-09-10 04:53:17
|
but producing apng/png is often taking more time than the decode itself
|
|
2021-09-10 04:53:45
|
(well we don't produce apng atm but it will be the same as png)
|
|
|
Traneptora
|
2021-09-10 08:03:23
|
my personal take is that the user must request the output file format
|
|
2021-09-10 08:03:38
|
if explicitly, then use that one
|
|
2021-09-10 08:03:49
|
if not requested explicitly via an option, then implied by filename
|
|
2021-09-10 08:04:07
|
if the output format was not requested and not implied then the CLI should just refuse to do anything IMO
|
|
2021-09-10 08:04:09
|
rather than guess
|
|
2021-09-10 08:04:39
|
I like this since script writers tend to force formats and end users tend to give things filenames that mean things
|
|
|
_wb_
but producing apng/png is often taking more time than the decode itself
|
|
2021-09-10 08:06:16
|
you can produce a PNG extremely quickly by setting the filter to the identity filter and zlib's settings to be uncompressed
|
|
2021-09-10 08:06:18
|
which apparently is legal zlib
|
|
2021-09-10 08:06:57
|
```c
#define ZLIB_NO_COMPRESSION 0
```
|
|
2021-09-10 08:07:24
|
but I still hold the above stance
|
|
2021-09-10 08:07:36
|
where if the output format cannot be determined one way or another, cjxl should refuse rather than guess
|
|
|
_wb_
|
|
Traneptora
you can produce a PNG extremely quickly by setting the filter to the identity filter and zlib's settings to be uncompressed
|
|
2021-09-10 08:12:43
|
Yeah I know but then it's basically a PPM with checksums and an icc profile
|
|
2021-09-10 08:13:03
|
Which is cool
|
|
|
Traneptora
|
2021-09-10 08:13:15
|
png doesn't even need iCC does it?
|
|
|
_wb_
|
2021-09-10 08:13:17
|
But people might get upset if we produce decoded pngs that large
|
|
2021-09-10 08:13:30
|
Yeah it's optional in png
|
|
2021-09-10 08:13:48
|
We always produce a png that is well-defined in terms of colorspace though
|
|
|
Traneptora
|
2021-09-10 08:14:03
|
yea, just pointing it out
I think it still makes more sense to me to just refuse to produce a file if the format cannot be determined
|
|
2021-09-10 08:14:05
|
rather than guessing
|
|
|
|
veluca
|
|
_wb_
We always produce a png that is well-defined in terms of colorspace though
|
|
2021-09-10 08:14:29
|
the question is what other applications will think its colorspace is... π
|
|
|
_wb_
|
2021-09-10 08:15:21
|
Yeah, I think we should stop producing technically-correct-but-firefox-and-many-viewers-get-it-wrong-anyway pngs
|
|
|
Traneptora
|
2021-09-10 08:15:48
|
ah, you mean, you produce files with the right colorspace
|
|
2021-09-10 08:15:55
|
but since that colorspace is not sRGB
|
|
2021-09-10 08:16:00
|
and that field is ignored by many renderers
|
|
|
_wb_
|
2021-09-10 08:16:28
|
The thing with png is: you can do three things to define a colorspace
|
|
2021-09-10 08:17:05
|
ICC profile is one of them, and that now works in most self-respecting viewers and in all browsers
|
|
2021-09-10 08:17:15
|
sRGB chunk is another thing
|
|
2021-09-10 08:17:23
|
gAMA is another thing
|
|
|
|
veluca
|
2021-09-10 08:17:35
|
many programs disagree on what happens if you have both gAMA and sRGB IIRC
|
|
|
Traneptora
|
2021-09-10 08:18:46
|
spec is very clear
|
|
2021-09-10 08:18:49
|
> An sRGB chunk or iCCP chunk, when present and recognized, overrides the gAMA chunk.
|
|
2021-09-10 08:18:56
|
but that doesn't mean implementations adhere
|
|
|
_wb_
|
2021-09-10 08:19:09
|
The confusing thing is that sRGB is not a gamma curve, but you are still recommended to use both the sRGB chunk and the gAMA chunk, and the sRGB chunk takes precedence but viewers that understand gAMA but not sRGB (viewers from the 90s I guess) still do something reasonable
|
|
2021-09-10 08:19:29
|
So that is mostly fine
|
|
|
Traneptora
|
2021-09-10 08:20:02
|
as far as I'm aware that's in the name of compatibility
PNG spec requires decoders to ignore chunks they do not recognize to preserve forwards compatibility of the format
|
|
|
_wb_
|
2021-09-10 08:20:11
|
But now if you have gAMA but no sRGB, with the gAMA value set to 2.2
|
|
2021-09-10 08:20:32
|
Then many viewers will assume you actually meant sRGB
|
|
2021-09-10 08:20:43
|
While that's not what it is
|
|
|
Traneptora
|
2021-09-10 08:20:48
|
Ah, the correct thing to do be to do gamma=2.2 by spec
|
|