|
uis
|
|
Oleksii Matiash
I just wrote small python script that traverses files in the tree, and can call arbitrary number of cjxl (also takes a limiter from args, to avoid ram overflow, because my cpu has 16 physical cores). So it uses 100% of CPU until number of still-not-compressed files is lower than core count
|
|
2023-08-18 08:11:33
|
\*cough\* xargs \*cough\*
|
|
|
Traneptora
|
2023-08-19 02:35:41
|
or parallel
|
|
|
Oleksii Matiash
|
|
uis
\*cough\* xargs \*cough\*
|
|
2023-08-19 03:16:20
|
I'm on windows, and that script does not only what I described, so no, I believe there is no general solution for my requirements
|
|
|
Traneptora
|
2023-08-19 06:43:29
|
I think GNU parallel works on windows
|
|
|
Quackdoc
|
2023-08-19 06:52:15
|
I think it does too, but i've had better luck using mmsticks parallel or fd
|
|
|
spider-mario
|
|
Traneptora
I think GNU parallel works on windows
|
|
2023-08-19 08:35:22
|
it does
|
|
2023-08-19 08:35:27
|
`pacman -S parallel` in msys2 and you’re good to go
|
|
|
uis
|
|
Oleksii Matiash
I'm on windows, and that script does not only what I described, so no, I believe there is no general solution for my requirements
|
|
2023-08-19 12:26:26
|
If it does more, than you described, sounds like general solution to me
|
|
|
yoochan
|
2023-08-19 03:41:34
|
Pacman on windows? I'm lost 😅
|
|
2023-08-19 03:42:36
|
It seems that msys2 is a modified version of cygwin, I thought apt would be the package manager of choice
|
|
|
spider-mario
|
2023-08-19 03:49:23
|
nah, it’s pacman
|
|
2023-08-19 03:49:36
|
(or shall I say `pacman.exe`)
|
|
2023-08-19 03:50:41
|
|
|
2023-08-19 03:51:54
|
https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-libjxl/PKGBUILD
|
|
|
yoochan
|
2023-08-19 03:54:32
|
I'll have a try, next time I boot on win
|
|
|
Traneptora
|
|
yoochan
It seems that msys2 is a modified version of cygwin, I thought apt would be the package manager of choice
|
|
2023-08-19 04:21:21
|
nah, cygwin provides a translation layer for unix APIs, so code that makes calls to POSIX-specific code can be compiled directly for windows, with cygwin providing the translation layer
|
|
2023-08-19 04:24:37
|
msys2 is different - it provides a posix-like environment with all the tools, but the focus is about building native software with windows APIs
|
|
|
spider-mario
|
2023-08-19 05:22:15
|
that’s mingw, but msys2 does also have a cygwin-like environment
|
|
2023-08-19 05:22:34
|
the non-prefixed packages, like `parallel`, `pacman` itself, etc. run under that layer
|
|
2023-08-19 05:25:37
|
but yeah, the focus is on the prefixed (mingw64-[…], etc.) packages which do let you build native windows binaries
|
|
|
DZgas Ж
|
|
DZgas Ж
the best and fastest way to transcode 50 thousand jpeg to jxl images is to write a python/bash script?
cjxl, like all similar programs, accepts only single files for input?
|
|
2023-08-20 03:20:16
|
discord files moment. I wrote small script that reads the first bytes of the image to determine
|
|
|
diskorduser
|
2023-08-21 01:07:23
|
Show it or it doesn't exist 🙂
|
|
|
Traneptora
|
|
diskorduser
Show it or it doesn't exist 🙂
|
|
2023-08-21 04:00:41
|
why? it's easy to do
|
|
2023-08-21 04:00:58
|
`file --mime-type` is the easiest way
|
|
|
diskorduser
|
2023-08-21 04:01:10
|
I'm just joking
|
|
|
Quackdoc
|
2023-08-21 06:48:35
|
this is turning out ok
https://media.discordapp.net/attachments/615105639567589376/1143156986318430238/image.png
|
|
|
DZgas Ж
|
|
Traneptora
`file --mime-type` is the easiest way
|
|
2023-08-21 07:57:17
|
🙂
|
|
|
Traneptora
|
2023-08-21 07:59:17
|
I don't know why you'd need a script to do it
|
|
2023-08-21 07:59:21
|
reinventing the wheel
|
|
|
DZgas Ж
|
|
Traneptora
I don't know why you'd need a script to do it
|
|
2023-08-21 08:00:02
|
well
|
|
|
Traneptora
|
2023-08-21 08:01:46
|
why do the files have the wrong file extension in the first place
|
|
|
DZgas Ж
|
|
Traneptora
why do the files have the wrong file extension in the first place
|
|
2023-08-21 08:03:08
|
discord files moment.
|
|
|
Traneptora
|
2023-08-21 08:03:15
|
?
|
|
2023-08-21 08:03:28
|
what does that mean
|
|
|
DZgas Ж
|
|
Traneptora
reinventing the wheel
|
|
2023-08-21 08:04:10
|
such an expression of words is extremely contagious and carries the wrong message in any sphere. and of course it doesn't make sense
|
|
|
Traneptora
|
2023-08-21 08:04:32
|
what
|
|
2023-08-21 08:04:54
|
it means "there's no reason to try to invent something that has already been around for a very long time"
|
|
|
DZgas Ж
|
|
Traneptora
what does that mean
|
|
2023-08-21 08:04:57
|
this means that a file with any extension can have a different extension.
|
|
|
Traneptora
|
2023-08-21 08:05:14
|
discord preserves the file name of the file that was uploaded to it
|
|
2023-08-21 08:05:25
|
why was a file uploaded with the wrong extension in the first place
|
|
|
DZgas Ж
|
|
Traneptora
it means "there's no reason to try to invent something that has already been around for a very long time"
|
|
2023-08-21 08:05:43
|
no, it means, "why are you programming if you can find something ready, you're wasting your time"
|
|
|
Traneptora
|
2023-08-21 08:05:58
|
Yes, it also means that in this context
|
|
|
DZgas Ж
|
|
Traneptora
why was a file uploaded with the wrong extension in the first place
|
|
2023-08-21 08:06:45
|
I do not know, but about 20% of all files in discord have the wrong extension
|
|
|
Traneptora
|
2023-08-21 08:07:03
|
that is definitely not true
|
|
|
DZgas Ж
|
2023-08-21 08:09:02
|
perhaps the figure is over. but it's definitely a problem
|
|
|
Traneptora
|
2023-08-21 08:09:22
|
in either case, you can just do something like:
```sh
mv -vn "$input" "${input%.*}.$(file --brief --extension -- "$input")"
```
|
|
|
DZgas Ж
|
2023-08-21 08:09:33
|
> linux
|
|
|
Traneptora
|
2023-08-21 08:10:17
|
I'm sure an equivalent oneliner exists in Batch
|
|
|
DZgas Ж
|
|
Traneptora
reinventing the wheel
|
|
2023-08-21 08:10:42
|
because I'm a python programmer and I know how to use neural networks that generate code for me that I can read. so yes. it's definitely faster than searching for anything on the internet
|
|
|
Traneptora
|
2023-08-21 08:11:01
|
>I know how to use neural networks that generate code for me
so you're not a programmer, ok
|
|
|
DZgas Ж
|
|
Traneptora
>I know how to use neural networks that generate code for me
so you're not a programmer, ok
|
|
2023-08-21 08:12:23
|
I am definitely a programmer who makes python code, Or do you want to say that using a neural network makes my working code that solves problems -- bad?
|
|
|
Traneptora
|
2023-08-21 08:12:47
|
oh mb I thought you generate code with a bot
|
|
2023-08-21 08:13:06
|
if you're actually a programmer writing code yourself that's different, mb
|
|
|
DZgas Ж
|
|
Traneptora
if you're actually a programmer writing code yourself that's different, mb
|
|
2023-08-21 08:14:34
|
|
|
|
Traneptora
|
2023-08-21 08:17:20
|
this doesn't look like a python script to batch rename files
|
|
|
DZgas Ж
|
2023-08-21 08:18:11
|
I wrote the imageboard from scratch, in one self-written line database, without any other files or programs -- use gpt, and yet I worked for days for about a month. figuring out how best to write it in order stick to super-minimalism
|
|
|
Traneptora
|
2023-08-21 08:18:28
|
this is just a flask script
|
|
2023-08-21 08:18:35
|
for a web server Application
|
|
2023-08-21 08:18:43
|
this doesn't batch rename images
|
|
|
DZgas Ж
|
2023-08-21 08:18:46
|
pure python
|
|
2023-08-21 08:18:57
|
for flask server
|
|
2023-08-21 08:19:08
|
python flask server
|
|
|
Traneptora
this doesn't batch rename images
|
|
2023-08-21 08:19:46
|
|
|
|
Traneptora
|
2023-08-21 08:20:25
|
You read the entire file into memory in order to check the first few bytes? why?
|
|
|
DZgas Ж
|
2023-08-21 08:20:53
|
why not
|
|
|
Traneptora
|
2023-08-21 08:21:09
|
if you can't answer that yourself then I cannot help you
|
|
|
DZgas Ж
|
2023-08-21 08:21:12
|
read the BYTES so fast
|
|
|
Traneptora
|
2023-08-21 08:21:19
|
so fast!
|
|
|
DZgas Ж
|
|
Traneptora
so fast!
|
|
2023-08-21 08:27:50
|
I really can’t answer this question, this code was completely written by the neural network and it has already done its job and is completely unnecessary, I didn’t care about this line at all. Why do you ask such questions about the code that goes to the trash, I can not understand. data = open('file').read(10)
|
|
|
Traneptora
|
2023-08-21 08:28:41
|
maybe that's a clue
|
|
|
DZgas Ж
|
2023-08-21 08:28:58
|
maybe i am OmegaClueless
|
|
|
Traneptora
if you can't answer that yourself then I cannot help you
|
|
2023-08-21 08:33:21
|
$80 fell out of my pocket today, but all I to do tell myself - money comes and goes. All the best to whoever finds them. -- this made me think that the collection of porn that I have been collecting for 4 years is much more important than any money
|
|
|
Traneptora
|
|
DZgas Ж
|
|
|
Posi832
|
2023-08-21 08:34:35
|
This looks like a conversation between two chat bots X D
|
|
|
Quackdoc
|
2023-08-21 09:40:48
|
with any luck, I might have a build of aves with working jxl for android, it will be pretty rudimentary, and I won't support it for very long since aves doesn't accept PRs, and aves might treat it as an video, but it will with luck, work
|
|
|
|
axos
|
2023-08-26 05:55:31
|
Hey, anyone know how I could encode the color profile (ICC profile) directly into the png?
|
|
|
|
veluca
|
2023-08-26 06:18:32
|
what do you mean?
|
|
2023-08-26 06:18:52
|
what do you have in input, and what output do you want?
|
|
|
|
axos
|
2023-08-26 07:50:47
|
1st image: has the colour profile: "Colour LCD".
2nd image: has the colour profile embedded into the png.
3rd image: is stripped colour profile and has a discoloration effect.
1st img is the input image, the 2nd is the output I want and the 3rd is the output I get 😢
Exif between the 1st and 2nd: https://gist.githubusercontent.com/taosx/08d7cba93780dd47a829bbc9db87657e/raw/b571ed74a471268ba40c68d116f7805bbb5f6e81/md
|
|
|
w
|
2023-08-26 09:01:34
|
you want to convert it to srgb
|
|
2023-08-26 09:01:36
|
good luck
|
|
|
spider-mario
|
2023-08-26 09:06:51
|
that would be something like this then:
```bash
convert test-in-1.png -profile /usr/share/color/icc/colord/sRGB.icc -strip out.png
```
|
|
2023-08-26 09:07:00
|
(and then `optipng` or `advpng` or whatever)
|
|
|
|
axos
|
2023-08-26 09:39:32
|
Thank you w, spider-mario. I'm suspecting my decoder doesn't read the icc-profile info but at least I know what I need to do.
Edit: Solved it, basically I had to read and decode the icc profile of the current image and then transform it using sRGB.icc. The library I used was:
https://github.com/kornelski/rust-lcms2 in case someone needs something similar in rust.
|
|
|
bonnibel
|
2023-08-27 09:19:39
|
Saw a combined metric in some jpegli commits
butteraugli 3-norm + (100 - SSIMU2) x 0.04
How useful is it for things other than optimizing jpegli's quant tables?
|
|
|
_wb_
|
2023-09-01 10:33:39
|
https://entropymine.com/imageworsener/ interesting stuff
|
|
|
Traneptora
|
|
_wb_
https://entropymine.com/imageworsener/ interesting stuff
|
|
2023-09-01 10:36:33
|
surprised you haven't seen this before
|
|
|
Quackdoc
|
2023-09-01 10:44:55
|
oh boy, an srgb page
|
|
|
diskorduser
|
2023-09-02 04:15:44
|
https://discord.com/channels/794206087879852103/806898911091753051/1008897846193430561
|
|
|
yurume
|
2023-09-02 04:27:45
|
yeah it is a good trove for anyone working with images
|
|
2023-09-02 04:28:33
|
I only have one comment for this: https://entropymine.com/imageworsener/slowpow/
|
|
2023-09-02 04:28:42
|
> I am aware that transcendental functions like pow() are hard to calculate, but I find it difficult to believe that _this_ is the state of the art.
|
|
2023-09-02 04:29:57
|
unfortunately this is the SOTA. a correctly rounded math function is still an open problem. the actual problem is that we don't need a correctly rounded result for those cases and yet have to rely on the correct and slow `pow`!
|
|
|
bonnibel
|
|
bonnibel
Saw a combined metric in some jpegli commits
butteraugli 3-norm + (100 - SSIMU2) x 0.04
How useful is it for things other than optimizing jpegli's quant tables?
|
|
2023-09-03 10:08:11
|
No-one's stopped me so now I'm running a lot of libplacebo scalers through this (again)
|
|
2023-09-03 10:09:41
|
Unlike when I used just SSIMU2 the highest-scoring result no longer has obvious light halos, which is good
|
|
|
HCrikki
|
2023-09-05 02:07:39
|
about ios 17 current betas, can apps embed jxl images (like for interface, textures) that will then be viewable in-app without needing extra libraries ?
|
|
|
Traneptora
|
|
HCrikki
about ios 17 current betas, can apps embed jxl images (like for interface, textures) that will then be viewable in-app without needing extra libraries ?
|
|
2023-09-05 02:52:13
|
as far as I'm aware, yes, anything that relies on system libraries to decode should work
|
|
|
Jyrki Alakuijala
|
|
bonnibel
Unlike when I used just SSIMU2 the highest-scoring result no longer has obvious light halos, which is good
|
|
2023-09-07 07:04:38
|
in my experience it is safer to optimize against butteraugli if one has substantial interest for quality -- mixing in ssimulacra is imho more for the numbers than for eyes -- also nothing matches with human eyes, so it is good to look at the results by oneself, too
|
|
|
DZgas Ж
|
|
yoochan
|
|
Jyrki Alakuijala
in my experience it is safer to optimize against butteraugli if one has substantial interest for quality -- mixing in ssimulacra is imho more for the numbers than for eyes -- also nothing matches with human eyes, so it is good to look at the results by oneself, too
|
|
2023-09-07 08:09:23
|
You make it look like ssimulacra2 was useless...
|
|
|
Jyrki Alakuijala
|
2023-09-08 09:07:18
|
ssimulacra2 matches better with human raters at lower quality, but it may have corners that are not covered
|
|
2023-09-08 09:07:39
|
butteraugli I co-developed with guetzli, pik and jpeg xl (and some neural compression work)
|
|
2023-09-08 09:08:07
|
when the compressor found new ways to cheat butteraugli, I added those into the test corpus and hardened butteraugli against cheating compressors
|
|
2023-09-08 09:08:30
|
there are still issues, but much less than any other complex human vision inspired metric -- I think
|
|
2023-09-08 09:09:23
|
initially, butteraugli was answering one question only: can a human see a difference from a distance of 900 pixels or not (when in office conditions using a photo-editing quality monitor)
|
|
2023-09-08 09:09:52
|
the softer quality has been a bit of an after-thought
|
|
2023-09-08 09:11:05
|
I believe it is a valid use of ssimulacra2 to evaluate quality of compression systems, but possibly not equally valid to use it for making a lot of microlevel decisions -- there I'd rather use butteraugli
|
|
2023-09-08 09:11:36
|
in jpegli we wanted to improve performance around quality 70 -- there ssimulacra2 works possibly better than butteraugli
|
|
2023-09-08 09:12:11
|
also, in jpegli there cannot be a lot of microlevel trickery -- the format is too simple for optimizations to find such opportunity -- so the use of ssimulacra2 was both justified and relatively safe there
|
|
|
_wb_
|
2023-09-08 09:39:46
|
agreed
|
|
2023-09-08 09:42:13
|
ssimulacra2 could also be useful for d>3 jxl and/or for tweaking low-effort jxl encoding (including hw encoders). But to guide higher-effort encoding (which has more "microlevel trickery"), especially around d1, I think it's better to stick to butteraugli
|
|
|
yoochan
|
2023-09-08 01:36:33
|
thank you for your feedback, and the comprehensive answers. I perfectly understood the difference
|
|
|
username
|
2023-09-12 12:37:41
|
well apparently there's a way to test webkit on Windows: https://james.darpinian.com/blog/safari-on-windows
|
|
2023-09-12 12:38:05
|
it seems as though JXL progressive rendering is partially working?
|
|
2023-09-12 12:38:58
|
|
|
2023-09-12 12:41:21
|
JPEG progressive rendering works just fine but not JXL in webkit
|
|
|
gb82
|
2023-09-12 05:50:05
|
does it work fine in Safari on Mac?
|
|
|
username
|
2023-09-12 05:58:40
|
unsure, however HDR is also messing up and I know that works on Mac
|
|
|
quantefiant#4857
|
2023-09-12 03:04:36
|
reminds me; on the jxl test page for android ffox nightly I got errors with transparency, but better support for 16 bit colour depth than with png (and i don't have any idea how this screenshot would accurately capture that, but i think it does?). and the css dynamic range media query *doesn't* flag my device/UA as hdr...
i understand the three tests are tenuously, if at all, related in the backend. but it's still intrigued me
|
|
|
jonnyawsom3
|
2023-09-12 03:40:21
|
That's actually firefox incorrectly turning the HDR image into a normal one, the others are working correctly but your display can't show them
|
|
|
_wb_
|
2023-09-12 04:26:25
|
yeah on an sRGB display it's supposed to look just solid red
|
|
2023-09-12 04:26:40
|
(this is not HDR but just wide gamut)
|
|
|
bonnibel
|
|
bonnibel
No-one's stopped me so now I'm running a lot of libplacebo scalers through this (again)
|
|
2023-09-13 05:52:41
|
I'm using the RealSRv3 dataset (HR-LR image pairs obtained through analogue means and then digitally aligned), because with synthetic LR images the results seemed to pretty easily flip based on the downscaling method used
Does result in much higher scores though (butteraugli 3-norm mean around 5.5, p95 around 8)
|
|
|
gb82
|
|
quantefiant#4857
reminds me; on the jxl test page for android ffox nightly I got errors with transparency, but better support for 16 bit colour depth than with png (and i don't have any idea how this screenshot would accurately capture that, but i think it does?). and the css dynamic range media query *doesn't* flag my device/UA as hdr...
i understand the three tests are tenuously, if at all, related in the backend. but it's still intrigued me
|
|
2023-09-15 05:36:36
|
were these SSIMU2 tests done on the latest SSIMU2?
|
|
|
spider-mario
|
2023-09-18 11:37:53
|
reportedly, Apple has tuned the sharpening way down on the new iPhone 15 {,Pro,Plus,Pro Max}, and on the iPhone 14 Pro with the iOS 17 update, in “HEIF Max” (48MP) mode: https://9to5mac.com/wp-content/uploads/sites/6/2023/09/HEIF-iPhone.jpg
|
|
|
_wb_
|
2023-09-19 06:53:54
|
Nice. The unsharp masking on that image on the right is indeed quite heavy, can always do that later if you like it but I prefer captured images to be as unprocessed as possible — any baked-in 'enhancements' can only lose information...
|
|
|
spider-mario
|
2023-09-19 10:04:59
|
to me, excessive sharpening is the hallmark of the “smartphone look”, maybe even more so than excessive denoising
|
|
|
_wb_
|
2023-09-19 10:58:18
|
yeah, median blur and oversharpening - and sometimes also funky oversaturation
|
|
|
Demiurge
|
|
spider-mario
reportedly, Apple has tuned the sharpening way down on the new iPhone 15 {,Pro,Plus,Pro Max}, and on the iPhone 14 Pro with the iOS 17 update, in “HEIF Max” (48MP) mode: https://9to5mac.com/wp-content/uploads/sites/6/2023/09/HEIF-iPhone.jpg
|
|
2023-09-19 07:52:57
|
Holy crap that extreme ringing around the lettering...
|
|
2023-09-19 07:53:16
|
How is that ever acceptable?
|
|
2023-09-19 07:53:58
|
That looks like the world's crappiest sinc filter
|
|
|
quantefiant#4857
|
2023-09-19 10:44:17
|
philosophically, i think it's accepted for the same reason i was surprised other people could see better than me when i had my first optometrist appointment
|
|
|
diskorduser
|
2023-09-20 02:51:29
|
Is there any nomacs build for windows which supports jpegxl viewing? The one frtom github releases does not work.
|
|
|
_wb_
|
|
Demiurge
How is that ever acceptable?
|
|
2023-09-20 05:32:20
|
People have different tastes. What is an extreme ringing artifact to one person, is a nice edge contrast enhancement to another person. What is a blurry mess to one person, is a nice noise-free image to another person. To some extent image quality is a matter of personal taste...
|
|
|
novomesk
|
|
diskorduser
Is there any nomacs build for windows which supports jpegxl viewing? The one frtom github releases does not work.
|
|
2023-09-20 08:31:41
|
Did you try this one? https://github.com/nomacs/nomacs/releases/tag/3.17.2285
|
|
|
diskorduser
|
2023-09-20 08:34:46
|
no. i used stable release by downloading 3.16 from project page.
|
|
2023-09-20 08:41:05
|
beta works. thanks
|
|
|
a goat
|
2023-09-29 07:12:36
|
I'm interested in encoding all sRGB colors into a 16 bit space where the remaining 8 bits can be used to store information, looking just like a very mild amount of noise to the end user. To do this, I'd like to use a look up table that contains 2^16 values in it. How would I go about sorting all 2^24 sRGB colors into a 2^16 space where each color contains the most spread out sample range possible?
|
|
2023-09-29 07:15:48
|
Originally I considered using a 3 dimensional LAB grid to organize colors and then to find where the best boundaries were, but now I'm considering a XYB grid
|
|
|
spider-mario
|
|
a goat
I'm interested in encoding all sRGB colors into a 16 bit space where the remaining 8 bits can be used to store information, looking just like a very mild amount of noise to the end user. To do this, I'd like to use a look up table that contains 2^16 values in it. How would I go about sorting all 2^24 sRGB colors into a 2^16 space where each color contains the most spread out sample range possible?
|
|
2023-09-29 07:56:27
|
how about just using 5-6-5 encoding and mapping that to the corresponding 8-8-8 triplets?
|
|
2023-09-29 07:56:33
|
should be a decent first attempt
|
|
|
a goat
|
2023-09-29 08:02:17
|
That's a possibility, but I was wondering if there would be a more sophisticated way of doing it
|
|
|
|
veluca
|
2023-09-29 11:20:18
|
in first approximation, you could take xyb and intersect it with a grid of appropriate coarseness
|
|
|
Traneptora
|
2023-09-30 02:05:38
|
issue is that if you use stuff like XYB you end up with roundoff errors as it's not bitexact
|
|
2023-09-30 02:05:44
|
which could be an issue if the lower-order bits matter to be bitexact
|
|
|
_wb_
|
2023-09-30 07:22:29
|
I'd also just do RGB565, to keep it simple. If you use CIELab or XYB, you have to take into account that these spaces are not just cubes like RGB, but have a pretty irregular shape.
|
|
|
jonnyawsom3
|
2023-10-01 01:34:08
|
Ah, so it's the same as the libwebp vunerability from a few weeks ago, but reclassed
|
|
|
bonnibel
|
2023-10-01 06:19:28
|
Is there a "linear light XYB" (for resampling)?
As in, if you average _n_ pixels together, the average luminance remains the same
|
|
|
_wb_
|
2023-10-01 06:51:53
|
No, but for that you can just use linear RGB...
|
|
2023-10-01 06:53:00
|
The point of a perceptual space like XYB is to model the HVS, which is very much not linear...
|
|
2023-10-01 06:58:04
|
For ssimulacra2, I do the resampling in linear RGB while evaluating the SSIM heatmap in XYB. Means doing 33% more RGB2XYB conversions but I think it's worth it - for resampling the physics of light matters while for distortion perception matters...
|
|
|
bonnibel
|
|
_wb_
No, but for that you can just use linear RGB...
|
|
2023-10-01 07:07:31
|
I know, was just wondering if it existed to avoid going all the way back to linear RGB (though tbf that's not very intensive)
|
|
2023-10-01 07:19:28
|
I'm downsampling in linear and upsampling in sigmoid
|
|
2023-10-01 07:21:12
|
(iirc Robidoux was investigating replacing sigmoidization by resampling in 2 opposing gamma spaces and blending the results, I'll check that out too at some point)
|
|
|
diskorduser
|
2023-10-02 01:11:30
|
https://www.reddit.com/r/jpegxl/comments/16wwqwn/comment/k33y37d
this guy says his photos are not converted properly due to different color profiles. Is it a cjxl bug?
|
|
|
a goat
|
2023-10-03 06:53:00
|
Bit of a weird question, but is it possible for jpegxl to run a mixture of lossy and lossless layers? <@794205442175402004>
|
|
|
_wb_
|
2023-10-04 05:13:36
|
Yes, this is possible. VarDCT and Modular mode is a frame (layer) header choice, so you can mix VarDCT and Modular frames.
|
|
2023-10-04 05:15:00
|
XYB is a global choice though, so that's a bit of a limitation...
|
|
|
a goat
|
|
_wb_
Yes, this is possible. VarDCT and Modular mode is a frame (layer) header choice, so you can mix VarDCT and Modular frames.
|
|
2023-10-04 03:09:19
|
Is it also possible to apply a transform of some kind with modular mode on VarDCT data?
|
|
|
_wb_
|
2023-10-04 03:29:33
|
VarDCT data consists of the DC data which is modular encoded and the AC data which has its own specific encoding
|
|
2023-10-04 03:30:03
|
for the DC data you can apply any modular transforms, for the AC data you have to use the specific thing
|
|
|
a goat
|
2023-10-04 03:41:08
|
Oh! Nice
|
|
|
Demiurge
|
2023-10-04 06:09:35
|
It's kind of weird to call jpeg frequency bin coefficients DC and AC
|
|
|
lonjil
|
2023-10-04 06:27:08
|
one's constant the the others wobble like sine waves so it's apt
|
|
|
_wb_
|
2023-10-04 06:39:24
|
In the spec we call it LF and HF (low freq / high freq) since the DC/LF image also included some of the low freq wobbly coeffs when transforms bigger than 8x8 are used — e.g. when an 8x16 transform is used, it gives 1x2 pixels in the DC/LF image, based on the DC coefficient and the lowest freq AC coefficient (the one with the big vertical wobble)...
|
|
2023-10-04 06:40:43
|
But in the code we still call it DC and AC (which is technically only correct if only 8x8 is used)
|
|
2023-10-04 06:41:09
|
https://tenor.com/view/acdc-lightning-gif-acdc-acdc-white-lightning-gif-12034088
|
|
|
spider-mario
|
2023-10-04 06:42:41
|
it’s just DC from a not very stable source
|
|
2023-10-04 06:42:45
|
(say, a discharging battery)
|
|
|
monad
|
2023-10-05 01:25:02
|
Is that better than full HDR?
|
|
|
Quackdoc
|
|
monad
Is that better than full HDR?
|
|
2023-10-05 01:37:51
|
no its actually worse lol
|
|
|
HCrikki
|
2023-10-05 01:43:10
|
this is dead on arrival and a one-way vendorlock trap
|
|
|
Quackdoc
|
2023-10-05 01:56:28
|
i doubt it will be vendor lock, the spec seems open and easy to implement.
|
|
|
Jyrki Alakuijala
|
2023-10-05 09:18:55
|
HDR -> HDR+ --> HDR Ultra
|
|
2023-10-05 09:20:27
|
HDR10, HDR10+, Dolby Vision
|
|
2023-10-05 09:20:35
|
so many HDRs
|
|
|
VcSaJen
|
|
Quackdoc
i doubt it will be vendor lock, the spec seems open and easy to implement.
|
|
2023-10-05 10:20:16
|
So are MS Office formats, and yet nothing supports them fully.
|
|
|
w
|
2023-10-05 10:43:48
|
and psd
|
|
|
spider-mario
|
|
VcSaJen
So are MS Office formats, and yet nothing supports them fully.
|
|
2023-10-05 11:59:54
|
the spec for MS Office formats is thousands of pages long
|
|
2023-10-05 12:00:10
|
and has you reimplement bugs from 25-year-old Excel versions
|
|
|
gb82
|
|
Jyrki Alakuijala
HDR -> HDR+ --> HDR Ultra
|
|
2023-10-06 06:22:08
|
and HDR+ just being a bracketing technique to create SDR JPGs... lol it is a mess
|
|
|
a goat
|
2023-10-06 06:33:25
|
https://link.springer.com/article/10.1007/s11042-019-08371-w
|
|
2023-10-06 06:34:18
|
Has anyone read anything about RDgRb? It seems like a promising color space on paper, but I'm curious as to why it's so obscure
|
|
|
spider-mario
|
|
gb82
and HDR+ just being a bracketing technique to create SDR JPGs... lol it is a mess
|
|
2023-10-06 02:28:00
|
there hasn’t always been bracketing: https://blog.research.google/2021/04/hdr-with-bracketing-on-pixel-phones.html
|
|
|
Jyrki Alakuijala
|
|
gb82
and HDR+ just being a bracketing technique to create SDR JPGs... lol it is a mess
|
|
2023-10-06 03:01:28
|
I don't understand why they decided to call the SDR images (with nice local tone mapping) HDR. Marketing is difficult to understand. Engineering is easier.
|
|
2023-10-06 03:02:48
|
Maintaining clarity about consumer-facing terminology will help a field of technology in the future.
|
|
|
w
|
2023-10-06 03:05:00
|
vivid on by default
|
|
2023-10-06 03:05:49
|
actually I think google might have stopped doing that
|
|
2023-10-06 03:06:10
|
but people still pick vivid
|
|
|
Quackdoc
|
|
gb82
and HDR+ just being a bracketing technique to create SDR JPGs... lol it is a mess
|
|
2023-10-06 04:43:35
|
HDR in general is a mess and a terrible term
|
|
|
spider-mario
|
2023-10-06 04:51:43
|
the “merging several shots and tone-mapping them” approach to HDR has focused more on the capture side, in a sense
|
|
2023-10-06 04:51:52
|
it does allow the capture of scenes with a greater dynamic range
|
|
2023-10-06 04:52:20
|
but dedicating the term to that approach was a bit short-sighted in that it didn’t anticipate that the reproduction side would gain greater DR as well
|
|
|
gb82
|
2023-10-06 04:57:03
|
I actually like terms like Apple's "Deep Fusion" that don't necessarily illicit the imagery of any engineering terminology but are just a generic marketing term for what essentially just means "better photos by combining images"
|
|
2023-10-09 08:13:04
|
Do any of you know how flawed XPSNR is as a metric?
|
|
|
HCrikki
|
2023-10-13 05:36:59
|
quick question, how does progressive/streamed decoding work and can a decoder override its focus priority?
|
|
2023-10-13 05:37:45
|
curious about how jxl would fare with comics using really tall images (think 12000 pixels tall, 700width) and meant to be read scrolling down from top to bottom like youd do on a touch device. see webtoons for an idea about the use case
|
|
|
jonnyawsom3
|
2023-10-13 05:44:02
|
That's actually the default order of images encoded with cjxl, left to right, top to bottom in between 128 to 1024 pixel blocks depending on setting. The order is decided by the encoder, changing what block of pixels is received first by the decoder. If you already have the entire file, then you can choose what area of the image to decode without touching the rest, also known as cropped decode
|
|
|
bonnibel
|
|
_wb_
For ssimulacra2, I do the resampling in linear RGB while evaluating the SSIM heatmap in XYB. Means doing 33% more RGB2XYB conversions but I think it's worth it - for resampling the physics of light matters while for distortion perception matters...
|
|
2023-10-13 06:41:59
|
question that's again going to reveal how little i know:
everything I read only stresses the importance of linear light for resampling. In a colourspace where that's just a single channel, is there a property the chroma channels should have that'd be beneficial (like is done for gradient creation, which seems to be a similar problem), or should the entire space just be a linear transform of XYZ?
|
|
|
_wb_
|
2023-10-14 08:34:13
|
For gradient creation you should use a perceptual colorspace (XYB or Lab, for example), since you want the gradient to be perceptually nice.
For resampling, you basically want to simulate what would happen if the same photons would be captured from a further distance or with physically larger pixel buckets — and for that you need a linear colorspace or else you're doing the photon counting math wrong.
|
|
|
Quackdoc
|
2023-10-14 08:57:24
|
> For gradient creation you should use a perceptual colorspace (XYB or Lab, for example), since you want the gradient to be perceptually nice.
I never thought of this, I wonder if this could be used for sophisticated debanding
|
|
|
|
JendaLinda
|
2023-10-15 09:25:08
|
It seems that sRGB, Adobe RGB and Display P3 are all using the same response curve. So these color profiles should not make any difference in grayscale images, right? There is no color to begin with, so only the response curve is meaningful.
|
|
|
w
|
2023-10-15 09:26:58
|
gray is a whole other thing
|
|
|
|
JendaLinda
|
2023-10-15 09:41:32
|
I'm considering RGB encoded grayscale images, where RGB samples are equal, so could be reduced to single gray channel. I've came across such images with attached color profiles. After the reduction to gray the attached RGB profile becomes invalid. But that should not be a problem because the correct response curve would be used anyway.
|
|
|
w
|
2023-10-15 10:05:47
|
i think you'd still want to tag it
|
|
2023-10-15 10:05:59
|
especially if it's gray
|
|
2023-10-15 10:06:19
|
nothing can agree what default grayscale should be
|
|
|
Tirr
|
2023-10-15 10:12:25
|
white is also a color, so basically grayscale profile has two components: transfer function, and white point
|
|
2023-10-15 10:13:22
|
iirc sRGB, Adobe RGB and Display P3 all have same white point (D65)
|
|
|
Quackdoc
|
2023-10-15 10:13:30
|
mfw compression artifacts add color
|
|
|
|
JendaLinda
|
2023-10-15 11:01:09
|
Untagged images are generally considered to be sRGB, so tagging an image as sRGB seems redundant.
|
|
|
Quackdoc
|
2023-10-15 11:02:13
|
if its srgb it should be tagged as such, it reduces the chance of it being treated as a pure 2.2 transfer... a bit
|
|
|
|
JendaLinda
|
2023-10-15 11:13:51
|
Where can I come accross color compression artifacts? PNGs with equal RGB samples and JPEGs with blank CbCr channels have no color artifacts.
|
|
|
spider-mario
|
|
JendaLinda
It seems that sRGB, Adobe RGB and Display P3 are all using the same response curve. So these color profiles should not make any difference in grayscale images, right? There is no color to begin with, so only the response curve is meaningful.
|
|
2023-10-15 12:03:02
|
Adobe RGB's tone curve is different
|
|
|
|
JendaLinda
|
2023-10-17 07:47:05
|
Does have RGB encoded JPEG any disadvantages compared to YCbCr other than less efficient compression? The main concern is support in web browsers and image editing software.
|
|
|
spider-mario
|
2023-10-17 08:24:11
|
I would tend to expect compatibility to be better for YCbCr than RGB JPEG
|
|
2023-10-17 08:24:47
|
probably the overwhelming majority of JPEGs are YCbCr so that’s what most software would have been tested with
|
|
|
|
JendaLinda
|
2023-10-17 08:26:08
|
Modern software seems to be fine. The thing is that RGB encoding is not covered by JFIF standard, so the support is not guaranteed.
|
|
2023-10-17 08:31:43
|
YCbCr conversion may introduce some rounding errors so I can see where RGB encoding can be useful.
|
|
2023-10-17 10:26:57
|
MSIE 6 can read RGB encoded JPEG, so I can assume it should be supported pretty much everywhere.
|
|
|
Traneptora
|
2023-10-17 02:30:05
|
<@604964375924834314> remember the question about tagging av1 with yuv444p and matrix=GBR?
|
|
2023-10-17 02:30:06
|
https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libdav1d.c#L150
|
|
2023-10-17 02:30:21
|
and I said there was probably casework?
|
|
2023-10-17 02:30:23
|
it's here
|
|
2023-10-17 02:30:49
|
internally, av1 uses I444 and Matrix=GBR to flag itself as RGB (per spec)
|
|
2023-10-17 02:31:01
|
so if you set that explicitly at the container level things will get confused
|
|
|
spider-mario
|
2023-10-17 02:34:46
|
ooh
|
|
2023-10-17 02:34:51
|
thanks for the investigation
|
|
2023-10-17 02:35:21
|
so overall less trouble if I just use the Rec. 2020 matrix? 😁
|
|
2023-10-17 02:35:30
|
I wasn’t using av1, though
|
|
2023-10-17 02:35:54
|
but maybe there are similar shenanigans with whatever I was using (maybe h.264)
|
|
|
Traneptora
|
2023-10-17 02:35:55
|
wasn't this avif?
|
|
|
spider-mario
|
2023-10-17 02:36:20
|
I was outputting y4m from my program and piping it into ffmpeg for compression with (I think) libx264
|
|
|
Traneptora
|
2023-10-17 02:39:59
|
never mind then
|
|
|
spider-mario
I was outputting y4m from my program and piping it into ffmpeg for compression with (I think) libx264
|
|
2023-10-17 02:43:59
|
```
[2023-10-17_10:36:47] <Traneptora> Daemon404: so if the transfer isn't SRGB but the matrix is identity, and the pixel format is I444, it's an illegal file?
[2023-10-17_10:37:01] <Traneptora> and is this also true about H.264?
[2023-10-17_10:37:07] <Daemon404> it's not illegal but things wont pick it up as h264
[2023-10-17_10:37:10] <Daemon404> er
[2023-10-17_10:37:12] <Daemon404> brainfart
[2023-10-17_10:37:18] <Daemon404> things wont pick it up as rgb***
```
|
|
2023-10-17 02:44:36
|
Daemon404 is Derek Buitenhuis if you're familiar with him
|
|
2023-10-17 02:44:45
|
https://vimeo.com/554448617
|
|
2023-10-17 02:44:53
|
here he goes over reversible YCgCo
|
|
|
jonnyawsom3
|
2023-10-17 03:18:30
|
Huh, could've sworn I've seen him on this discord before, but I suppose not
|
|
|
|
Nourane
|
2023-10-19 03:57:07
|
hello, I'm trying to run these commands
cd libjxl
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF ..
cmake --build . -- -j$(nproc)
|
|
2023-10-19 03:57:16
|
I got these errors
|
|
2023-10-19 03:58:21
|
|
|
2023-10-19 03:58:42
|
how can I solve these issues?
|
|
|
MSLP
|
|
Nourane
hello, I'm trying to run these commands
cd libjxl
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF ..
cmake --build . -- -j$(nproc)
|
|
2023-10-19 04:52:54
|
if you're on system which ships lcms2 (LITTLE CMS) you can try using it - add `-DJPEGXL_ENABLE_SKCMS=false -DJPEGXL_FORCE_SYSTEM_LCMS2=true` to the to first cmake command ie.
`cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_SKCMS=false -DJPEGXL_FORCE_SYSTEM_LCMS2=true ..`
|
|
|
|
veluca
|
2023-10-21 08:33:46
|
pext is very very slow on my 3960x
|
|
|
username
|
2023-10-26 07:15:11
|
I just woke up and it seems like Discord is using this now: https://blurha.sh/
|
|
|
yurume
|
2023-10-26 07:45:43
|
FYI it's a simple DCT-based encoding, originally devised for Mastodon. https://github.com/woltapp/blurhash/blob/master/Algorithm.md
|
|
2023-10-26 07:46:57
|
the algorithm is fine, but I don't like how it is specified (for example, what happens when the "average color" exceeds 2^24 - 1? 😉
|
|
|
Jyrki Alakuijala
|
2023-10-27 04:07:11
|
jpeg xl would be better blurhash than blurhash
|
|
|
Tirr
|
2023-10-27 04:13:15
|
https://discord.com/channels/794206087879852103/1065165415598272582/1167390454715777046
|
|
|
username
|
2023-10-27 08:18:48
|
speaking of blurhash I just found this: https://evanw.github.io/thumbhash/
|
|
|
yurume
|
|
Jyrki Alakuijala
jpeg xl would be better blurhash than blurhash
|
|
2023-10-28 02:36:07
|
is it even possible? the maximum size of blurhash is less than 100 bytes (in terms of information entropy) and typically around 10 bytes (or <20 characters). unless jxl introduces a special headerless mode just for this use case I don't think it can do that.
|
|
|
username
speaking of blurhash I just found this: https://evanw.github.io/thumbhash/
|
|
2023-10-28 02:37:23
|
yeah, there are lots of ways to improve upon this
|
|
2023-10-28 02:37:54
|
I'm quite sure that every such solution would have to be a separate format besides from the "mainline" format due to severe constraints
|
|
|
username
|
|
yurume
is it even possible? the maximum size of blurhash is less than 100 bytes (in terms of information entropy) and typically around 10 bytes (or <20 characters). unless jxl introduces a special headerless mode just for this use case I don't think it can do that.
|
|
2023-10-28 03:03:19
|
from a pure data/file size per encoded thumbnail/placeholder standpoint JXL would not win however I do think JXL is a better solution complexity and performance wise since with something like blurhash or thumbhash from my understanding work with a javascript library that decodes their custom format and paints it to a canvas element then switches it out with the actual full image file once it's done downloading while with JXL everything would just be handled natively by the browser
|
|
|
yurume
|
2023-10-28 03:04:46
|
any such blurred thumbnail lacks high frequency contents so only a small canvas is needed, which can be enlarged by browsers.
|
|
|
Fraetor
|
2023-10-28 10:16:57
|
I think the nuance is that things like blurhash are included in the initial request for the content. So it is always going to beat an image format because it can skip the initial network round trip.
|
|
2023-10-28 10:19:59
|
But low res blurhash -> progressive JXL makes a lot of sense. Waiting for the full image before showing anything beyond the blurhash is a bit silly.
|
|
2023-10-28 10:22:45
|
This is also why being encoded as text is important, as else it can't be included in the initial JSON or HTML.
|
|
|
jonnyawsom3
|
2023-10-28 10:45:42
|
Technically, JXL from tree would solve that, but trying to output such a simple version and the processing might be more overhead than it takes for the image to load
|
|
|
|
veluca
|
|
Fraetor
I think the nuance is that things like blurhash are included in the initial request for the content. So it is always going to beat an image format because it can skip the initial network round trip.
|
|
2023-10-28 03:37:59
|
nothing stops you from using data URIs 🙂
|
|
|
Fraetor
|
2023-10-28 09:46:12
|
True actually.
|
|
|
lithium
|
2023-11-01 08:47:14
|
Hello, <@532010383041363969> Sorry to bother you,
New encoder quality PR look really great, Thank you for your work,
but I still have some questions about non-photo type image.
I understand pixel peek isn't a fair compare method,
so those sample just for explain my question,
not for quality compare or benchmark.
For those non-photo type image, I still can see some tiny artifacts,
I understand specific type image is really hard for DCT,
probably have better lossy strategy for non-photo type image?
like separate image(Jon PR1395) or jxl lossy palette?
|
|
2023-11-01 08:47:46
|
|
|
|
jonnyawsom3
|
2023-11-01 08:59:12
|
1395 is what I'd assume to be best, the issue is good heuristics to decide
|
|
|
HCrikki
|
2023-11-01 06:09:55
|
whats the ressource cost of serving a jxl as a reconstructed jpeg in a browser, compared to serving a normal jpeg of the same filesize directly? assuming the server itself can decode everything but a user's browser cant
|
|
2023-11-01 06:11:20
|
the bandwidth and storage savings need no further mention, wondering how ressource intensive itd be for say shared hosting, an imageboard or a website under slashdot effect to handle
|
|
|
Quackdoc
|
2023-11-01 06:16:05
|
IMO its too significant for people providing server themselves, better to use jxl wasm decoder probably.
|
|
|
Fraetor
|
2023-11-01 06:19:05
|
I can't really see a use case for decoding back to JPEG outside of very niche archival purposes. Generally the compute requirements would outweight the storage savings.
|
|
2023-11-01 06:20:14
|
Maybe in a world where 99% of clients can accept JXL, so its just done for out of data clients.
|
|
|
HCrikki
|
2023-11-01 06:34:03
|
storing everything internally on server as jxl is one. for example, allow upload of jpgs that get internally converted to jxl. the ability to serve the original jpegs if needed or desired (some clients or old devices may prefer consuming that or only being able to) was touted as a huge selling point to boost adoption
|
|
|
spider-mario
|
2023-11-01 07:06:02
|
depending on the website’s usage pattern, some caching could make sense
|
|
2023-11-01 07:06:58
|
like, automatically store an already-decoded jpeg of the most popular images, dropping som of them as popularity shifts
|
|
|
HCrikki
|
2023-11-01 07:56:17
|
id presume reconstructed jpeg present in some cache to be served at almost the same cost as regular jpeg, no surprise here. any idea what i should expect about uncached recjpegs, like for a page serving 30 ?
|
|
2023-11-01 07:59:07
|
i thought generating reconstructed jpegs as new files was different from loading them in memory, or was that the same and files were just cached then discarded after viewing ?
|
|
|
spider-mario
|
|
HCrikki
i thought generating reconstructed jpegs as new files was different from loading them in memory, or was that the same and files were just cached then discarded after viewing ?
|
|
2023-11-01 08:56:00
|
I’m not fully sure I understand the question – when you say “loading them in memory”, do you mean loading them as pixels for displaying?
|
|
2023-11-01 08:56:17
|
rendering them to pixels indeed sidesteps the generation of an actual JPEG bitstream
|
|
|
HCrikki
|
2023-11-01 08:58:24
|
displaying in a webpage without generating any .jpg files
|
|
|
Demiurge
|
|
Jyrki Alakuijala
jpeg xl would be better blurhash than blurhash
|
|
2023-11-01 11:02:46
|
Makes you wonder when discord will finally ditch webp and switch to jpegxl
|
|
|
lonjil
|
2023-11-01 11:17:06
|
at the rate at which they update Electron, maybe 10 - 20 years?
|
|
|
bonnibel
|
2023-11-02 01:36:02
|
officially a jxl contributor <-- committed a single character
|
|
2023-11-02 01:42:01
|
now i can tell my grandchildren that for every character of code i submitted i averaged 644 characters describing it
|
|
2023-11-02 01:43:43
|
i'm measuring a 1:1 ratio of characters of code written to CLAs signed. logically this trend will continue indefinitely if i ever submit more
|
|
|
Demiurge
|
2023-11-02 03:47:25
|
The CLA requirement is unfortunate... More unnecessary barriers to contributing...
|
|
2023-11-02 06:07:03
|
Would be a shame if someone forked libjxl and didn't require signing a contract with Google before accepting contributions... Maybe even refactoring the code in K&R C style along the way... That would be every developer's dream...
|
|
2023-11-02 06:09:32
|
I worry about how many talented individuals were discouraged from contributing
|
|
|
spider-mario
|
|
bonnibel
i'm measuring a 1:1 ratio of characters of code written to CLAs signed. logically this trend will continue indefinitely if i ever submit more
|
|
2023-11-02 07:41:52
|
https://xkcd.com/605/
|
|
|
Cacodemon345
|
2023-11-02 01:12:02
|
Can't unsee.
|
|
|
lonjil
|
|
Demiurge
Would be a shame if someone forked libjxl and didn't require signing a contract with Google before accepting contributions... Maybe even refactoring the code in K&R C style along the way... That would be every developer's dream...
|
|
2023-11-02 01:16:50
|
> Maybe even refactoring the code in K&R C style along the way... That would be every developer's dream...
I don't think that would be anyone's dream.
|
|
2023-11-02 01:17:13
|
If I were to write a JXL library in C, it'd be C23 with ALL the new features.
|
|
|
spider-mario
|
2023-11-02 02:08:35
|
K&R, as in, like this?
```c
main(argc, argv)
int argc;
char** argv;
{
/* ... */
}
```
|
|
|
yoochan
|
2023-11-02 02:18:34
|
that's some ugly code 😄
Nevertheless, C remain the only language which is able to easily compile a function under a symbol which have the same name! which is nice
|
|
|
lonjil
|
2023-11-02 02:26:05
|
fun fact: while K&R syntax has been deprecated, it has stayed valid, but this changed with C23, which has completely removed K&R syntax.
|
|
|
|
veluca
|
|
lonjil
fun fact: while K&R syntax has been deprecated, it has stayed valid, but this changed with C23, which has completely removed K&R syntax.
|
|
2023-11-02 03:01:58
|
'bout time too
|
|
2023-11-02 03:02:21
|
did you know that k&r syntax functions are not actually checked for argument mistakes?
|
|
2023-11-02 03:02:53
|
(well, perhaps they are, but they are not *required* to be)
|
|
|
Demiurge
|
|
spider-mario
K&R, as in, like this?
```c
main(argc, argv)
int argc;
char** argv;
{
/* ... */
}
```
|
|
2023-11-02 07:43:53
|
That's nethack style!
|
|
2023-11-02 07:44:50
|
Well they call that K&R style function declaration
|
|
2023-11-02 07:46:05
|
I guess every developer's dream would be KNF style
|
|
2023-11-02 07:46:20
|
https://man.openbsd.org/style
|
|
|
lonjil
|
2023-11-02 07:53:17
|
NetHack dropped K&R C support a while ago
|
|
|
Demiurge
|
2023-11-02 10:14:32
|
In the unreleased development branch, they are currently in the process of rewriting the function definitions to be ANSI style.
|
|
2023-11-02 10:15:55
|
On git. They haven't actually released a version of nethack that doesn't have k&r style functions yet. And it looks kind of quaint. :)
|
|
2023-11-02 10:16:16
|
Lets you know you're working on a project from another era
|
|
2023-11-02 10:16:40
|
Or, as they say, hacking
|
|
2023-11-02 10:17:49
|
Still... Would be nice to have an openBSD-ified libjxl :)
|
|
|
lonjil
|
2023-11-02 10:40:43
|
do you actually do any programming?
|
|
|
Demiurge
|
2023-11-02 11:36:05
|
I try to avoid it if I can. The best code seems to be no code at all.
|
|
|
yoochan
|
2023-11-03 01:26:54
|
when you have nothing to do, no code is perfect
|
|
|
Nova Aurora
|
|
yoochan
when you have nothing to do, no code is perfect
|
|
2023-11-03 04:54:46
|
<:YEP:808828808127971399> Nocode is perfect
https://github.com/kelseyhightower/nocode
|
|
|
Demiurge
|
2023-11-04 03:52:06
|
Hey, fewer LOC is less wasted time, and time is valuable...
|
|
2023-11-04 03:53:41
|
Obviously that can be taken to an extreme but, I feel like if you need to implement software, you should keep it as obvious and straightforward as possible, and keep the time spent monkeying with it to a minimum. But that's just obvious common sense.
|
|
2023-11-04 03:55:32
|
That's why I think C++ is such a terrible language. So much wasted time trying to understand the language itself rather than the actual thing you're working on.
|
|
|
Oleksii Matiash
|
|
Demiurge
That's why I think C++ is such a terrible language. So much wasted time trying to understand the language itself rather than the actual thing you're working on.
|
|
2023-11-04 07:38:25
|
I'd agree with it. I used to java/kotlin at Android, but month ago I finally decided to write small app for PC (actually rewrite my another python console app to GUI). The obvious choice for me was C#, and the prototype was ready soon, but it appeared much slower than the python version, because they used numpy (written in C, afaik) and .net analogue. So I decided to switch to QT and C++. And it is pain.. 😔
|
|
2023-11-04 08:45:50
|
Btw, can someone suggest lib to read DNG metadata? Preferably not exiv2
|
|
|
spider-mario
|
2023-11-04 11:38:58
|
https://www.reddit.com/r/photography/comments/17npmb4/tifu_shot_my_whole_vacation_in_jpg/
|
|
|
Oleksii Matiash
|
|
spider-mario
https://www.reddit.com/r/photography/comments/17npmb4/tifu_shot_my_whole_vacation_in_jpg/
|
|
2023-11-05 07:59:27
|
I'd be totally frustrated if this happened to me. Luckily my camera(s) don't have jpeg option, only raw, only hardcore 😅
|
|
|
diskorduser
|
|
Oleksii Matiash
I'd be totally frustrated if this happened to me. Luckily my camera(s) don't have jpeg option, only raw, only hardcore 😅
|
|
2023-11-05 12:06:19
|
What camera is that
|
|
|
Oleksii Matiash
|
|
diskorduser
What camera is that
|
|
2023-11-05 12:20:59
|
Various old digital backs
|
|
|
Traneptora
|
2023-11-05 10:37:29
|
personally I'm a fan of
|
|
2023-11-05 10:37:43
|
```c
int main(int argc, char **argv) {
// foo
}
```
|
|
2023-11-05 10:37:53
|
but most people prefer the `{` on a separate line
|
|
|
Pieter
|
|
Traneptora
```c
int main(int argc, char **argv) {
// foo
}
```
|
|
2023-11-05 10:57:01
|
Woooh, 3-space indendation?
|
|
|
Traneptora
|
2023-11-05 11:04:50
|
well, no, 4
|
|
2023-11-05 11:05:08
|
just made a typo there
|
|
|
MSLP
|
|
Traneptora
```c
int main(int argc, char **argv) {
// foo
}
```
|
|
2023-11-05 11:14:38
|
do you think `{` on separate line is a relic from K&R syntax?
|
|
|
spider-mario
|
2023-11-05 11:17:31
|
https://youtu.be/FdldD0-kEcc?t=2m14s well hello, 1931 xy chromaticity diagram, didn’t expect to see you there
|
|
2023-11-05 11:17:44
|
(okay, the thumbnail should have given it away)
|
|
2023-11-05 11:17:58
|
(although that looks more like the 1976 one)
|
|
|
lonjil
|
|
MSLP
do you think `{` on separate line is a relic from K&R syntax?
|
|
2023-11-05 11:25:31
|
it is, AFAIK
|
|
2023-11-05 11:25:56
|
I use separate line for functions and same line for everything else.
|
|
|
bonnibel
|
2023-11-05 11:51:06
|
i use one line per character and then just rotate my monitor sideways
|
|
|
|
afed
|
2023-11-06 12:04:49
|
av1 block copy is similar to jxl patches?
https://youtu.be/Z4DS3jiZhfo?t=3749
|
|
2023-11-06 12:05:08
|
|
|
2023-11-06 12:05:16
|
|
|
2023-11-06 12:10:48
|
and palette coding doesn't look very complicated and it seems to be enough for av1 to be so effective in lossy with lines and low-color images
|
|
2023-11-06 12:12:08
|
|
|
|
jonnyawsom3
|
2023-11-06 02:44:24
|
Seems similar, although he mentions in AV1 it's restricted to I-frames and roughly 50% of the picture
|
|
|
_wb_
|
2023-11-07 02:09:04
|
Yes, patches and intra block copy is similar, main difference being that patches are always taken from a _previous_ frame, not the current one. So repetitive patterns have to be stored in a separate invisible patch frame (like a sprite sheet) and then they can be used in the 'real' frame. Main advantage of this approach is that you can e.g. use Modular for the patch frame and VarDCT for the 'real' frame.
Probably there is room for generalizing our current patch detection by applying some of the tricks from video encoders...
|
|
2023-11-07 02:15:06
|
Palette in AV1 is quite limited, max 8 colors and I dunno how they encode the palettized block but probably in a relatively simple way (compared to jxl modular). In VarDCT JXL, there is no notion of a palette block and libjxl is currently not doing anything like that, but it would be possible to use patches to do something like that, but with more options (not limited to 8 colors, could use delta palette, etc) and with better entropy coding...
|
|
|
fab
|
2023-11-07 05:06:33
|
Where is the av2 part on that video?
|
|
|
Jyrki Alakuijala
|
2023-11-08 09:29:12
|
HE codec for h265 seems to do fuzzy block coding -- in one of the test images I had windows on a block building, one of the windows had a flower pot on the window sill before compression. Compression reused that window to another window, and another window got a flower, too. I just don't like this kind of stuff being done. Innocents will go to prison if such things are used as evidence.
|
|
|
jonnyawsom3
|
2023-11-08 05:05:33
|
Do you have the files?
|
|
|
MSLP
|
|
Jyrki Alakuijala
HE codec for h265 seems to do fuzzy block coding -- in one of the test images I had windows on a block building, one of the windows had a flower pot on the window sill before compression. Compression reused that window to another window, and another window got a flower, too. I just don't like this kind of stuff being done. Innocents will go to prison if such things are used as evidence.
|
|
2023-11-08 05:20:42
|
Similar to Xerox scannersJBIG2 problem? I hope some JPEG XL encoder in the future won't end up with the same issue using patches.
|
|
|
bonnibel
|
2023-11-08 06:44:28
|
btw running butteraugli on the cid22 validation set gets me loads of libpng warnings for "known incorrect sRGB profile", is that like. an issue
|
|
|
_wb_
|
|
bonnibel
btw running butteraugli on the cid22 validation set gets me loads of libpng warnings for "known incorrect sRGB profile", is that like. an issue
|
|
2023-11-09 08:39:49
|
you can ignore it, I dunno how this happened but all the images are supposed to be just sRGB
|
|
|
acedent
|
2023-11-09 12:04:24
|
Not sure if anyone is following the work on `png` v3 spec?
|
|
2023-11-09 12:04:38
|
Just posted an open question: Why? https://github.com/w3c/PNG-spec/issues/370
|
|
2023-11-09 12:05:21
|
There is a lot of work on color rendering, HDR, etc. .... all ultimately duplicating JXL ...!?
|
|
2023-11-09 12:05:58
|
At the risk of upsetting people, would love to understand the reasoning behind this endeavour ...?
|
|
2023-11-09 12:10:33
|
Wondered what the perspective is from the JXL side? 🤔
|
|
|
yoochan
|
2023-11-09 12:23:21
|
nice initiative
|
|
2023-11-09 12:27:51
|
it state : with the enormous installed base of PNG images is considered paramount, so non-backwards-compatible changes such as a better compression method, are out of scope in the charter. https://github.com/w3c/PNG-spec/blob/main/Third_Edition_Explainer.md
|
|
2023-11-09 12:28:28
|
I don't understand how they plan to add hdr with backward compatibility...
|
|
|
|
veluca
|
2023-11-09 12:49:30
|
I assume cICP chunk that overrides ICC and an ICC that does tonemapping
|
|
2023-11-09 12:49:36
|
that should give reasonable results
|
|
|
acedent
|
|
veluca
I assume cICP chunk that overrides ICC and an ICC that does tonemapping
|
|
2023-11-09 01:07:56
|
But... why? I 💙 png. But surely this is all covered by lossless JXL?...
|
|
|
|
veluca
|
2023-11-09 01:08:28
|
Backwards compatibility is kinda useful though
|
|
2023-11-09 01:08:34
|
As in, graceful degradation
|
|
2023-11-09 01:09:44
|
Also it's a much smaller change
|
|
2023-11-09 01:10:03
|
And it allows doing nice things such as decoding Jxl to an HDR png in a polyfill
|
|
|
acedent
|
|
veluca
Backwards compatibility is kinda useful though
|
|
2023-11-09 01:10:50
|
Perhaps more philosophical... I personally see it as the 'gambler's fallacy'... at some point, we need to adopt the new tech. Would you also advocate adding HDR to GIF...?
|
|
|
|
veluca
|
2023-11-09 01:11:11
|
Nah, one HDR format that is easy to use and generate is enough 😉
|
|
2023-11-09 01:11:23
|
And png is the obvious choice as it supports 16 bits
|
|
2023-11-09 01:11:41
|
And nothing else does
|
|
|
acedent
|
2023-11-09 01:11:51
|
PAM ...?
|
|
2023-11-09 01:11:54
|
😉
|
|
|
|
veluca
|
2023-11-09 01:12:11
|
*format decoded by a browser 😉
|
|
|
Quackdoc
|
2023-11-09 01:13:12
|
and here I was about to say exr :D
|
|
|
|
veluca
|
2023-11-09 01:13:42
|
As it stands, adding hdr-png support to chrome was a mostly uncontroversial 20 line change (or thereabouts)
|
|
2023-11-09 01:14:48
|
And now you can use wasm to convert a Jxl to a (a)png and display it as HDR without too much pain
|
|
2023-11-09 01:16:16
|
The only alternative IIRC would be HDR canvas, but that has its own problems - I believe they have been arguing on how to do that for a couple of years
|
|
|
Quackdoc
|
2023-11-09 01:17:51
|
well wasm will always be not fun, because browsers suck, just using the jxl wasm on a page that loads a lot of images is... well chrome will freeze the page, firefox will run willy nilly until it either crashes, or gets killed by something else
|
|
|
Cacodemon345
|
2023-11-09 01:45:05
|
I wish they also went for a chunk to indicate the 16-bpc data in PNG being not integers but half-floats.
|
|
2023-11-09 01:45:21
|
Although that would go against backwards compatibility.
|
|
|
_wb_
|
2023-11-09 02:50:13
|
there's not much difference imo between using integers + nonlinear transfer function and using floats + linear...
|
|
|
spider-mario
|
2023-11-09 03:20:20
|
in some cases, we could possibly even get away with 16-bit linear integers
|
|
2023-11-09 03:20:28
|
raw files typically have less than that
|
|
2023-11-09 03:21:27
|
(although fixing the upper bound to be 10000 cd/m² kind of works against that)
|
|
|
Traneptora
|
|
acedent
Just posted an open question: Why? https://github.com/w3c/PNG-spec/issues/370
|
|
2023-11-13 05:50:22
|
PNG has ubquitous support and is extraordinarily simple to decode, so adding metadata like cICP is fantastic for testing JXL decoders and other things
|
|
2023-11-13 05:50:39
|
since all the new additions are just extra metadata chunks
|
|
|
spider-mario
|
2023-11-13 09:11:22
|
yes, it’s been quite useful for us
|
|
2023-11-13 09:12:45
|
as a matter of fact, <@179701849576833024> and I have contributed to making Chrome read those metadata https://crrev.com/c/3705739 https://crrev.com/c/4748191
|
|
|
Traneptora
|
2023-11-14 03:36:39
|
and I added cICP support to FFmpeg in part to test the libjxl plugin
|
|
|
username
|
2023-11-14 11:49:51
|
would be nice if WebP had cICP, Is there anything preventing that from becoming a reality? unless I'm misunderstanding what RIFF is for or capable of?
|
|
2023-11-14 11:53:41
|
I haven't actually read the RIFF spec is it capable of storing arbitrary chunks?
|
|
|
CrushedAsian255
|
2023-11-15 10:09:28
|
does WebP use RIFF?
|
|
2023-11-15 10:11:23
|
oh so it does
|
|
2023-11-15 10:11:40
|
|
|
|
Jyrki Alakuijala
|
2023-11-17 01:22:15
|
if only cIPC would support XYB 🙂
|
|
2023-11-17 01:23:00
|
I think now we need to some conversions between colorspaces, only for further conversions to happen later -- unnecessary (minor) delays
|
|
2023-11-17 01:23:48
|
or have a full color ICC profile there
|
|
2023-11-17 01:24:38
|
(I don't know colorspace management -- I could be completely off here -- I just love XYB and that's it :-D)
|
|
|
Traneptora
|
2023-11-18 02:12:56
|
each cICP space is explicitly RGB or some matrix transform of RGB
|
|
2023-11-18 02:13:19
|
so nonlinear transforms of RGB won't work
|
|
2023-11-18 02:14:42
|
notably, XYB doesn't define primaries
|
|
2023-11-18 02:15:16
|
tho you could always use sRGB primaries, a custom TRC and a custom matrix
|
|
2023-11-18 02:15:46
|
but XYB explicitly defines how out of gamut colors behave
|
|
2023-11-18 02:16:07
|
and H.273 does not
|
|
|
Eugene Vert
|
2023-11-18 02:19:51
|
An interesting c++ DSL for image processing with separation of algorithm and schedule (order/vectorization/locality)
https://halide-lang.org/
|
|
|
HCrikki
|
2023-11-18 10:10:34
|
is there an online live comparator between formats that leverages recent jxl code? afaik Sqoosh and Eclipseo in particular still runs old jxl (0.3.7!) alongside other codecs and doesnt seem to be representative of current state and may contribute to misleading impressions about merits
|
|
|
|
afed
|
2023-11-20 11:12:16
|
<@794205442175402004> i saw a discussion about ssimulacra in OBS discord
in 2.1 version should always be 100 for the identical images/frames or there may be some rounding errors or color conversion errors in tools or avs implementation?
|
|
2023-11-20 11:12:35
|
<https://github.com/cloudinary/ssimulacra2/issues/10>
|
|
|
_wb_
|
2023-11-20 11:14:48
|
identical inputs should give a score of 100 in ssimulacra 2.1 — how are the inputs being passed and which implementation of ssimulacra 2.1 is this?
|
|
|
|
afed
|
2023-11-20 11:16:13
|
looks like this port
`Updated SSIMULACRA2 to 2.1.`
<https://github.com/Asd-g/AviSynthPlus-ssimulacra>
|
|
2023-11-20 11:17:39
|
but, the default settings are weird, there's even a mix of the two versions
|
|
|
_wb_
|
2023-11-20 11:20:54
|
I answered in the issue — looks like there's some issue with the port then...
|
|
|
|
afed
|
2023-11-20 12:29:06
|
seems something is wrong only for avs implementation:
ssimulacra2_rs
```ssimulacra2_rs image 284050535-1e1e600b-c154-40ca-8f07-acb1b628af9d.png 284050535-1e1e600b-c154-40ca-8f07-acb1b628af9d.png
Score: 100.00000000
ssimulacra2_rs image 284050536-b464d209-8359-41da-9da5-b3679d2b1b9d.png 284050536-b464d209-8359-41da-9da5-b3679d2b1b9d.png
Score: 100.00000000
ssimulacra2_rs image 284050537-441e867b-3a3c-4ff0-9cb0-7ca757a6b30c.png 284050537-441e867b-3a3c-4ff0-9cb0-7ca757a6b30c.png
Score: 100.00000000```
|
|
|
w
|
2023-11-20 01:06:26
|
vs users winning
|
|
|
Quackdoc
|
2023-11-20 06:37:05
|
ssimulacra2_rs has some inconsistencies with the C version. it's good to keep that in mind, however score is usually around an error of 1 or 2 points, worst case iirc was like 4 points
|
|
|
novomesk
|
2023-11-22 05:56:02
|
When some of the KDE apps are built for Windows, "Craft" build system is used ( https://community.kde.org/Craft#Setting_up_Craft ).
This build system uses some python scripts to build individual libraries. Example of the build script: https://invent.kde.org/packaging/craft-blueprints-kde/-/blob/master/libs/libidn/libidn.py
So far nobody contributed script for libjxl, that's why kimageformats is built without JXL.
Is someone with python (and/or Craft) knowledge willing to help to prepare the script?
|
|
|
Cacodemon345
|
2023-11-22 05:58:49
|
Imagine JXL support being exclusive to Steam Deck devices, lol.
|
|
|
MSLP
|
|
novomesk
When some of the KDE apps are built for Windows, "Craft" build system is used ( https://community.kde.org/Craft#Setting_up_Craft ).
This build system uses some python scripts to build individual libraries. Example of the build script: https://invent.kde.org/packaging/craft-blueprints-kde/-/blob/master/libs/libidn/libidn.py
So far nobody contributed script for libjxl, that's why kimageformats is built without JXL.
Is someone with python (and/or Craft) knowledge willing to help to prepare the script?
|
|
2023-11-22 06:54:29
|
Sorry, I don't know how to handle missing dependencies (libhighway) in craft, and don't have an environment to play with craft.
Maybe also libhighway package will need to be created
The build options provided are minimal
This is based on <https://invent.kde.org/packaging/craft-blueprints-kde/-/blob/master/libs/exiv2/exiv2.py>
|
|
2023-11-22 06:55:09
|
```python
import info
class subinfo(info.infoclass):
def setTargets(self):
for ver in ["0.8.2"]:
self.targets[ver] = f"https://github.com/libjxl/libjxl/archive/refs/tags/v{ver}.tar.gz"
self.archiveNames[ver] = f"v{ver}.tar.gz"
self.targetInstSrc[ver] = f"libjxl-{ver}"
self.targetDigests["0.8.2"] = (["c70916fb3ed43784eb840f82f05d390053a558e2da106e40863919238fa7b420"], CraftHash.HashAlgorithm.SHA256)
self.svnTargets["master"] = "https://github.com/libjxl/libjxl.git"
self.description = "a library for decoding/encoding JPEG XL (aka JXL) image format."
self.defaultTarget = "0.8.2"
def setDependencies(self):
#self.buildDependencies["libs/libhwy"] = None ## FIXME: libhighway is not provided by KDE craft system
self.runtimeDependencies["libs/brotli"] = None
self.runtimeDependencies["libs/lcms2"] = None ## FIXME: libjxl-0.8.2 require at least lcms2-2.13
self.runtimeDependencies["virtual/base"] = None
from Package.CMakePackageBase import *
class Package(CMakePackageBase):
def __init__(self, **args):
CMakePackageBase.__init__(self)
self.subinfo.options.configure.args += ["-DCMAKE_BUILD_TYPE=Release -DJPEGXL_FORCE_SYSTEM_LCMS2=1 -DJPEGXL_ENABLE_SKCMS=0 -DJPEGXL_ENABLE_SJPEG=0 -DJPEGXL_ENABLE_JPEGLI=0 -DJPEGXL_ENABLE_BENCHMARK=0 -DJPEGXL_ENABLE_DOXYGEN=0 -DJPEGXL_ENABLE_EXAMPLES=0 -DJPEGXL_ENABLE_JNI=0 -DJPEGXL_ENABLE_MANPAGES=0 -DJPEGXL_ENABLE_OPENEXR=0 -DJPEGXL_ENABLE_TOOLS=0 -DBUILD_TESTING=0"]
```
|
|
2023-11-22 06:56:18
|
also I'm not sure how to specify minimal dependencies in craft
|
|
2023-11-22 07:16:40
|
edit: added `self.runtimeDependencies["virtual/base"] = None` as many libraries seem to require it
|
|
|
Demiurge
|
|
Traneptora
notably, XYB doesn't define primaries
|
|
2023-11-23 02:46:26
|
I thought the primaries are supposed to be whatever your cone cells are supposed to respond to... but that probably varies from person to person...
|
|
|
Traneptora
|
|
Demiurge
I thought the primaries are supposed to be whatever your cone cells are supposed to respond to... but that probably varies from person to person...
|
|
2023-11-23 03:01:30
|
XYB is based on a transform of linear BT.709 but it's an absolute space
|
|
2023-11-23 03:01:50
|
since all linear RGB spaces are linear transforms of one another, it doesn't particularly matter that it uses the bt709 primaries
|
|
2023-11-23 03:02:38
|
my point was tho unlike RGB spaces, absolute spaces like xyY, XYZ, and XYB don't define primaries
|
|
2023-11-23 03:03:17
|
XYB isn't quite as absolute as XYZ though, as peak intensity must be defined separately
|
|
|
damian101
|
|
Demiurge
I thought the primaries are supposed to be whatever your cone cells are supposed to respond to... but that probably varies from person to person...
|
|
2023-11-23 01:07:52
|
cone cell responses overlap...
|
|
|
spider-mario
|
|
Traneptora
XYB isn't quite as absolute as XYZ though, as peak intensity must be defined separately
|
|
2023-11-23 04:26:54
|
it can be derived from the XYB signal
|
|
2023-11-23 04:27:06
|
the same luminance is always mapped to the same XYB value
|
|
2023-11-23 04:27:26
|
“the maximum ever in this image is 3000” is not strictly needed theoretically
|
|
2023-11-23 04:27:42
|
if anything, it’s arguably more absolute than XYZ, which is often relative to SDR white
|
|
|
Traneptora
|
|
spider-mario
it can be derived from the XYB signal
|
|
2023-11-23 04:28:28
|
I was under the impression that 1.0f wasn't always mapped to the same number of nits
|
|
|
spider-mario
|
2023-11-23 04:29:03
|
that’s true of the linear sRGB signal that comes back from decoding XYB in libjxl, but only because then we divide by intensity_target
|
|
|
Traneptora
|
2023-11-23 04:29:56
|
XYB = (0, 1.0f, 0) has a fixed number of nits it represents? interesting
|
|
|
spider-mario
|
2023-11-23 04:30:43
|
https://github.com/libjxl/libjxl/blob/ab5c248ff3127a2c9b623d15e3345684e85a9768/lib/jxl/opsin_params.cc#L42
|
|
|
Traneptora
|
2023-11-23 04:31:03
|
I know we divide by intensity target but I was under the impression that's why intensity target has to be defined separately
|
|
2023-11-23 04:31:36
|
iirc SDR white is typically 203 nits with a 1000:1 contrast ratio, so why do we use 255, anyway?
|
|
|
spider-mario
|
2023-11-23 04:33:15
|
203 is HDR “reference white”
|
|
2023-11-23 04:33:26
|
BT.2408 has a note that says:
> The signal level of “HDR Reference White” is not directly related to the signal level of SDR “peak white”.
|
|
2023-11-23 04:34:33
|
iirc, we use ~250 because that’s approximately the luminance of the monitor that was used to tune it? but <@532010383041363969> probably knows in more detail
|
|
2023-11-23 04:35:14
|
and then, I think we used specifically 255 because we encoded the linear signal between 0 and 255 at the time (as if it was 8-bit values, but floating-point) instead of 0-1, and at some point we thought “it would be nice to make this coincide with nits”
|
|
2023-11-23 04:37:31
|
around that time, I believe that we also had it not normalised by intensity_target, so it coincided with nits even with non-default intensity target
|
|
2023-11-23 04:37:42
|
(otherwise there would have been little point)
|
|
|
Demiurge
|
|
cone cell responses overlap...
|
|
2023-11-23 08:44:44
|
I know...
|
|
|
Jyrki Alakuijala
|
2023-11-26 05:34:06
|
The 2015 or so NEC photo monitor that I used to build butteraugli with had a max of 250 nits, so I used that for all experiments to have some coverage of HDR range
|
|
2023-11-26 05:35:44
|
When Jan was working on it, he "corrected" the 250 to 255 and I didn't think it was that big of a discrepancy to need fixing so it grew automatically from 250 to 255
|
|
2023-11-26 05:36:34
|
When Sami took over the responsibility for these things, I believe he returned the default to 250
|
|
|
Lemenus
|
2023-11-26 05:01:26
|
Hi, is there any way to make windows 10 use jxl pics as wallpapers?
|
|
|
Cacodemon345
|
2023-11-26 05:12:48
|
Nope.
|
|
|
VEG
|
2023-11-26 06:45:56
|
Maybe it will support it if a WIC codec is installed (just a guess)
|
|
|
username
|
|
Lemenus
Hi, is there any way to make windows 10 use jxl pics as wallpapers?
|
|
2023-11-26 07:02:49
|
Yes there is a way, First make sure you have [jxl-winthumb](https://github.com/saschanaz/jxl-winthumb) setup/registered and then use this .reg file and the option "Set as desktop background" will appear on JXL files
|
|
|
Cacodemon345
|
2023-11-26 07:03:17
|
You can't open it in Photos though.
|
|
|
username
|
2023-11-26 07:04:00
|
Photos app is bad though it doesn't allow the use of any third party WIC codecs at all
|
|
2023-11-26 07:04:19
|
I think it might also reject some first party WIC codecs as well but I don't remember
|
|
|
AAC (damywise.com) Compression
|
2023-11-27 03:32:31
|
Also HDR images look dull.
|
|
2023-11-27 03:33:06
|
*maybe only on non-hdr displays. I don't have one.
|
|
|
w
|
2023-11-27 03:33:31
|
the photos app is the only app that supports windows advanced color
|
|
2023-11-27 03:33:43
|
and also the only app that can do cross display color management
|
|
|
Quackdoc
|
2023-11-27 03:34:56
|
too bad windows advanced color isnt worth half a damn xD, there is a reason why people still rely on stuff like SDI cards for windows and linux. only osx has a platform level colormanagment solution that isnt a joke
|
|
|
w
|
2023-11-27 03:35:16
|
windows advanced color is great
|
|
|
Quackdoc
|
2023-11-27 03:37:20
|
windows advanced color can handle colorspace conversion only when it's in the same luminance type, it can't do tone mapping worth half a damn, so using it to consume HDR on SDR or SDR on HDR is bad
|
|
2023-11-27 03:37:41
|
even android can do tonemapping now lmao
|
|
|
w
|
2023-11-27 03:38:17
|
well tone mapping is completely subjective
|
|
2023-11-27 03:38:23
|
it's not correct
|
|
|
Quackdoc
|
2023-11-27 03:38:39
|
sure, but objectively any tonemapping is better then no tonemapping
|
|
2023-11-27 03:38:59
|
even if it's a dumb 1:203 tonemap
|
|
|
w
|
2023-11-27 03:39:10
|
umm sure
|
|
|
Quackdoc
|
2023-11-27 03:39:17
|
ofc we have standards like bt 2446a
|
|
|
w
umm sure
|
|
2023-11-27 03:39:45
|
a "white" srgb image designed for an 80 nit display, would blast 10000 nits of brightness at you without it on a "perfect" display
|
|
2023-11-27 03:39:57
|
it's not an optional thing, it's a requirement
|
|
|
w
|
2023-11-27 03:40:06
|
what are you talking about
|
|
|
Quackdoc
|
2023-11-27 03:40:47
|
SDR images on HDR display
|
|
|
AAC (damywise.com) Compression
|
|
AAC (damywise.com) Compression
Also HDR images look dull.
|
|
2023-11-27 03:41:32
|
Speaking of dull, I made a wrapper for jxl-oxide. Currently it looks like this (The colors are very off). What I did was applying saturation, exposure, and gamma to the decoded image. Any ideas on how to improve this?
(Left is from the wrapper with applied saturation/exposure/gamma,
Right is native apple jxl decoding)
|
|
|
Quackdoc
|
|
AAC (damywise.com) Compression
Speaking of dull, I made a wrapper for jxl-oxide. Currently it looks like this (The colors are very off). What I did was applying saturation, exposure, and gamma to the decoded image. Any ideas on how to improve this?
(Left is from the wrapper with applied saturation/exposure/gamma,
Right is native apple jxl decoding)
|
|
2023-11-27 03:42:21
|
can you elaborate a bit more?
|
|
2023-11-27 03:42:37
|
your pipeline I mean
|
|
|
AAC (damywise.com) Compression
|
2023-11-27 03:42:40
|
I can elaborate with a whole repository, if you want.
|
|
|
Quackdoc
|
2023-11-27 03:43:11
|
sure I guess but generally, what are you trying to accomplish, SDR on HDR? gamut mapping? etc
|
|
|
AAC (damywise.com) Compression
|
2023-11-27 03:43:56
|
I have no idea about any of those, I just want to load HDR image on a non-HDR display, but make it so it doesn't look dull.
|
|
|
Quackdoc
|
2023-11-27 03:44:46
|
ah I see, I think jxl-oxide has tonemapping support, but im not sure color conversion stuff is availible in jxl-dec
|
|
2023-11-27 03:45:29
|
are you working with jxl-oxide directly or jxl-dec?
|
|
|
AAC (damywise.com) Compression
|
2023-11-27 03:45:42
|
just jxl-oxide
|
|
|
Quackdoc
|
2023-11-27 03:47:00
|
ah sorry, I mean using the crate or the binary. if it's using the crate iirc you can do the color correction directly from jxl-oxide, if it's the binary... Im not too sure atm
|
|
|
AAC (damywise.com) Compression
|
2023-11-27 03:48:22
|
I'm using the crate currently, not sure what binary is, I'm very new to rust so, yeah that's that.
|
|
|
Quackdoc
|
2023-11-27 03:49:00
|
the crate means you are programming in rust and using jxl as a library, the binary means you compiled jxl-oxide directly and invoke it using jxl-dec
|
|
|
AAC (damywise.com) Compression
|
2023-11-27 03:49:31
|
I see, yeah I'm using the crate.
|
|
|
samOAK
|
2023-12-03 12:37:00
|
cool [repo review](https://githubnext.com/projects/repo-visualization): https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=libjxl%2Flibjxl
|
|
|
yurume
|
2023-12-03 04:27:40
|
continued from https://discord.com/channels/794206087879852103/804324493420920833/1180652506259411074: there does exist rapidgzip that works for virtually all reasonable deflate stream
|
|
2023-12-03 04:27:53
|
https://github.com/mxmlnkn/rapidgzip
|
|
2023-12-03 04:28:40
|
it doesn't support all possible streams, but it works for all streams that have been produced by reasonable or trivial compressors
|
|
2023-12-03 04:30:59
|
the main limitation AFAIK is that it speculatively starts at all possible bit position, so intermediate huffman trees should be optimal to filter enough false positives to be effective
|
|
|
damian101
|
2023-12-05 08:14:08
|
just make png the default ffs
|
|
|
|
veluca
|
2023-12-05 09:58:50
|
I am not sure why anybody would ever use AVIF lossless mode
|
|
|
Traneptora
|
|
just make png the default ffs
|
|
2023-12-05 10:46:15
|
png writing is pretty slow, doesn't make sense to use it as the default
|
|
2023-12-05 10:46:26
|
the default of legacy JPEG makes sense
|
|
|
jonnyawsom3
|
2023-12-05 11:02:26
|
Yesterday I noticed a friend uploaded a 50MB PNG to Discord, I asked them why they had it uncompressed and they said it was fast, I explained even a tiny bit would've massively decreased the size... An hour later they uploaded a 63MB PNG too...
|
|
|
username
|
|
Yesterday I noticed a friend uploaded a 50MB PNG to Discord, I asked them why they had it uncompressed and they said it was fast, I explained even a tiny bit would've massively decreased the size... An hour later they uploaded a 63MB PNG too...
|
|
2023-12-05 11:14:39
|
~~what software are they using that's pumping out PNGs of that size?~~ fast in what way? if they mean to create the PNGs files then that hurts to hear because taking a extra second to make something noticeably smaller is pretty important to me since I have lived my whole life with awful internet and can't even pay for a better plan because it's just not provided where I live.
Also I know that a lot of software exposes 9 levels of PNG compression and I have seen some people just move the slider in a random direction and then never touch it again without looking at how much it affects things
|
|
|
jonnyawsom3
|
|
username
~~what software are they using that's pumping out PNGs of that size?~~ fast in what way? if they mean to create the PNGs files then that hurts to hear because taking a extra second to make something noticeably smaller is pretty important to me since I have lived my whole life with awful internet and can't even pay for a better plan because it's just not provided where I live.
Also I know that a lot of software exposes 9 levels of PNG compression and I have seen some people just move the slider in a random direction and then never touch it again without looking at how much it affects things
|
|
2023-12-05 11:47:21
|
They were 4K 64bit, so uncompressed (or lowest compression) meant almost 64MB. I'll add there was no transparency in the image too...
No clue, I tried to ask but they just got confused and eventually said they have 3TB free so it doesn't matter to them
I even got the 64MB file down to 500KB by reducing it to 24bit, they said it was slightly brighter (As expected) but they couldn't tell the difference otherwise
|
|
2023-12-05 11:48:49
|
Ah, looking back at my conversation with them, I think it's a bad habit from using lossy compression. They said they set it low because they wanted to edit it later
|
|
2023-12-05 11:50:49
|
Oh, and they picked 64bit because they have a HDR display... Even though it's just a normal PNG, so it's actually the fact it's OLED and the background was black that did all the work
|
|
|
DZgas Ж
|
|
just make png the default ffs
|
|
2023-12-05 02:01:01
|
android has been using jpeg instead of png for a screenshot of the screen for a long time
it is for the reason that for a large screen it turned out to be much more profitable to use jpeg both in encoding speed and decoding speed, it is better than png
|
|
2023-12-05 02:02:58
|
🙂
especially I personally did tests for decoding giant images, and it turned out that the best solution is baseline jpeg
|
|
|
jonnyawsom3
|
2023-12-05 02:05:35
|
My phone still does PNG, though I noticed when directly sharing an image from telegram to discord via the apps, it seemed to re-compress Telegram's jpeg with nearest neighbour to 720p from 1080p and quality 40 encoding (Based on what Ssimulacra2 said comparing to the original)
|
|
|
Quackdoc
|
|
DZgas Ж
android has been using jpeg instead of png for a screenshot of the screen for a long time
it is for the reason that for a large screen it turned out to be much more profitable to use jpeg both in encoding speed and decoding speed, it is better than png
|
|
2023-12-05 02:05:58
|
This is something roms change, default is actually PNG in aosp
|
|
|
damian101
|
|
DZgas Ж
android has been using jpeg instead of png for a screenshot of the screen for a long time
it is for the reason that for a large screen it turned out to be much more profitable to use jpeg both in encoding speed and decoding speed, it is better than png
|
|
2023-12-05 02:08:37
|
over all the years I have used Android, screenshots were always PNG
|
|