JPEG XL

Info

rules 57
github 35276
reddit 647

JPEG XL

tools 4225
website 1655
adoption 20712
image-compression-forum 0

General chat

welcome 3810
introduce-yourself 291
color 1414
photography 3435
other-codecs 23765
on-topic 24923
off-topic 22701

Voice Channels

General 2147

Archived

bot-spam 4380

on-topic

Whatever else

JendaLinda
2023-04-09 06:11:17
If they did any tests, they'd figure out that just re-saving a PNG will do absolutely nothing.
username
2023-04-09 06:14:22
anyone here have a good real world example of a greyscale image?
2023-04-09 06:14:34
maybe something like the page of a comic or manga
2023-04-09 06:15:02
I want to gather some examples of discord making images way less optimized
JendaLinda
2023-04-09 06:18:15
That's true. Grayscale images would bloat significantly.
2023-04-09 06:20:24
I suppose 16bpc PNG may be lossily compressed. Need to test that.
improver
2023-04-09 06:26:37
matrix evangelism start making a bit of sense huh
JendaLinda
2023-04-09 06:34:32
2023-04-09 06:35:34
This was 16bit gray
username
2023-04-09 06:37:21
what does exiftool say it is now?
JendaLinda
2023-04-09 06:39:03
It's 8bit grayscale now.
2023-04-09 06:47:33
What about indexed color?
2023-04-09 06:48:44
Yeah that doesn't work correctly.
2023-04-09 06:52:29
What about grayscale, but it's indexed with gray palette - very common case.
2023-04-09 06:53:30
There we have it, 24bpp.
spider-mario
2023-04-09 07:04:57
amazing game
2023-04-09 07:05:38
seeing this makes the title music automatically play in my head 😂
2023-04-09 07:05:51
_wb_
2023-04-09 07:06:23
https://twitter.com/jonsneyers/status/1645135201419374594?t=4aQdjoi6Q9P0RjHKDNgWtA&s=19 calling them out on the bird app, no idea if they care about that
spider-mario amazing game
2023-04-09 07:13:01
I remember being very impressed by its graphics, especially the fluidity of the character movement. Most contemporary games used much simpler sprites with way fewer frames in their movements. The jumping towards a platform, grasping the edge and pulling himself up! It was spectacular back then.
jonnyawsom3
_wb_ https://twitter.com/jonsneyers/status/1645135201419374594?t=4aQdjoi6Q9P0RjHKDNgWtA&s=19 calling them out on the bird app, no idea if they care about that
2023-04-09 07:14:59
Unfortunately social media people don't tend to be technical people too, probably see it's complex and just move on, assuming they see it in the first place
_wb_
2023-04-09 07:17:14
https://youtu.be/ZW_eExHpTZI
Demez
2023-04-09 07:18:27
maybe something could be done here? https://support.discord.com/hc/en-us/community/topics
spider-mario
_wb_ https://youtu.be/ZW_eExHpTZI
2023-04-09 07:19:41
also don’t miss https://youtu.be/sw0VfmXKq54
_wb_
Unfortunately social media people don't tend to be technical people too, probably see it's complex and just move on, assuming they see it in the first place
2023-04-09 07:21:08
Yeah, oh well, I just hope someone at discord cares and can maybe use my tweet to at least make things a bit less bad. If they just want to save some storage/bandwidth costs, there are better things they could do (for one, I wonder how they sync the chat itself but it feels like they could do that with less bandwidth than what they do now, judging by how poorly it works when I am on a slow 3G network)
jonnyawsom3
2023-04-09 07:22:42
I recall I was on my phone using mobile data once, opened discord a single time, checked maybe 3 DMs and somehow that used over half a gig of data. God knows what it was doing, but they seem to have fixed that slight hiccup since
spider-mario
2023-04-09 07:22:51
so does that mean that Twitter has better image quality than Discord now?
2023-04-09 07:23:11
albeit with the constraints to preserve that quality being slightly more annoying to fulfil by hand
2023-04-09 07:25:01
(especially the width and height having to be multiples of 16)
2023-04-09 07:26:05
I have a script that prepares an image so that it satisfies the requirements at https://twitter.com/NolanOBrien/status/1281639466688380928
2023-04-09 07:26:14
(it resizes to the nearest multiples of 16)
2023-04-09 07:27:11
except the 5MB requirement, which I leave to my other script which I also use for imgur and discord
2023-04-09 07:28:10
_wb_
2023-04-09 07:29:48
https://twitter.com/ProgramMax/status/1645146238952562689?t=fhfsqmEE7rxz_S2rfUZUDw&s=19 does anyone know what he means by "acropylipse response"?
gameplayer55055
spider-mario
2023-04-09 07:30:03
perl
username
_wb_ https://twitter.com/ProgramMax/status/1645146238952562689?t=fhfsqmEE7rxz_S2rfUZUDw&s=19 does anyone know what he means by "acropylipse response"?
2023-04-09 07:30:52
https://www.da.vidbuchanan.co.uk/blog/exploiting-acropalypse.html
_wb_
2023-04-09 07:31:26
Oh that, I didn't know they gave a silly name to that
spider-mario
2023-04-09 07:31:27
wasn’t that PNG-specific?
2023-04-09 07:31:34
ah, maybe not
username
2023-04-09 07:32:40
also a funny workaround one of my friends found to make discord not mess with JPEGs or PNGs is to just rename them to .webp
Demez
2023-04-09 07:32:49
yeah
2023-04-09 07:32:56
renaming to gif also works
username
2023-04-09 07:33:14
also I know I said that discord has been messing with images ever since sometime this week
2023-04-09 07:33:26
but I don't actually know how long they have been doing this for
2023-04-09 07:33:38
I know it has been for less then a month
2023-04-09 07:33:50
but I don't know how long exactly
2023-04-09 07:38:23
I have just confirmed that discord has been doing this to images since at least april 3rd
JendaLinda According to IrfanView, the compressed JPEGs are 4:2:0 @ q=75, welcome to 1995.
2023-04-09 08:14:40
I don't know how to use IrfanView how did you get this information out of it?
JendaLinda
username I don't know how to use IrfanView how did you get this information out of it?
2023-04-09 08:25:18
Image->Information or just press I
username
2023-04-09 08:28:02
thanks
_wb_
2023-04-09 09:02:25
https://twitter.com/devsnek/status/1645163667397443584?t=Xkm4WmUu58dPa7uFUvSU3g&s=19
Demez
2023-04-09 09:07:55
there seems to be hope after all
veluca
2023-04-09 09:13:29
ohhh always nice to give "who cares about color profiles" people some XYB JPEGs 😛
username
2023-04-09 09:15:44
also some art/drawing programs like Krita output images with color profiles by default
JendaLinda
2023-04-09 09:22:31
Some programs use different color profiles by default for some reason. Artists often have no idea that color profiles are a thing and they're wondering why the colors look off after uploading images to web. Who can blame artists, they're not software engineers.
veluca
2023-04-09 09:28:35
I am still amazed that some camera specification somewhere says: oh, if your filename starts with \_, it's actually AdobeRGB
Demez
2023-04-09 09:29:53
that sounds really dumb lol
veluca
2023-04-09 09:34:39
yeah well, not the worst thing I found out about my camera 😛
2023-04-09 09:34:54
let's just say I am not going to connect it to untrusted wifi networks anytime soon
gameplayer55055
JendaLinda Some programs use different color profiles by default for some reason. Artists often have no idea that color profiles are a thing and they're wondering why the colors look off after uploading images to web. Who can blame artists, they're not software engineers.
2023-04-10 06:13:04
use srgb because only rare people have something better?
JendaLinda
2023-04-10 06:51:41
Using sRGB would be sensible, it's good enough for most use cases and works everywhere. However some programs default to other color profiles like Display P3 or so and people using this software have no clue they should switch it to sRGB.
_wb_
2023-04-10 06:56:45
Does anyone have some statistics on the gamuts and nits of screens currently sold?
2023-04-10 06:57:53
I would expect P3 to be more common than sRGB in currently sold screens, but I don't have hard data on this
JendaLinda
2023-04-10 07:16:14
It's not that long when IPS panels become standard in laptops. Poor quality TN panels were extremely common. I wanted to say, let's keep sRGB as the default, the safe option. Advanced users can always switch to wider color space if they know how to use it properly.
_wb_
2023-04-10 07:17:57
2023-04-10 07:18:54
This is what I see when I try to buy a monitor in a popular shop in my country.
JendaLinda It's not that long when IPS panels become standard in laptops. Poor quality TN panels were extremely common. I wanted to say, let's keep sRGB as the default, the safe option. Advanced users can always switch to wider color space if they know how to use it properly.
2023-04-10 07:20:45
sRGB is not really the 'safe option'. It is the lowest common denominator of what current cameras and displays can do. Reducing everything to that is a pity imo, since many can do better than that.
JendaLinda
2023-04-10 07:21:58
Yes, but sRGB is a better option than wrongly rendered wide color spaces.
_wb_
2023-04-10 07:22:54
Sure. Doing standard gamut right is better than doing wide gamut wrong.
2023-04-10 07:24:18
But converting anything to sRGB is not 'safe', it is a lossy operation that is good for consistency of experience but bad for fidelity, since it clamps the gamut to something smaller than what many screens can do...
JendaLinda
2023-04-10 07:24:38
Speaking of buying monitors, many people would just go for the cheap one, or for high refresh rate. Ordinary people just have no idea about color spaces.
_wb_
2023-04-10 07:26:22
It's quite similar to converting images to 256-color gifs in the early 1990s: sure, many screens could only display 256-color palette images anyway, but I wouldn't say that converting all photos to the "web safe" palette is a "safe" thing to do 🙂
2023-04-10 07:28:41
Many of them, I think. iPhone uses P3 for capture for a long time now.
JendaLinda
2023-04-10 07:29:18
That's fair, but I was considering those hobbyist or self-educated artist's who would create their work in sRGB directly.
2023-04-10 07:30:29
Everything they ever need is their work rendering consistently.
gb82
_wb_ Many of them, I think. iPhone uses P3 for capture for a long time now.
2023-04-10 07:33:55
I believe they started with the iPhone 7. So if you’re an iPhone user who’s taken pictures with an iPhone since 2016, you have P3 photos
w
2023-04-10 07:35:25
i think it's safe to say all current ips sold is 95% p3
2023-04-10 07:36:12
i believe they are all of the pfs phosphor wled family
JendaLinda
2023-04-10 07:38:14
Cheap IPS are still 6bit dithered though.
_wb_
JendaLinda Everything they ever need is their work rendering consistently.
2023-04-10 07:41:25
Sure, but there is no need to restrict yourself to the lowest common denominator (which is even smaller than sRGB if you're also targeting print). You can create things in wide gamut and even hdr, and then for every display/printer just try to reproduce it as correctly as possible within the limitations of the device.
JendaLinda
_wb_ Sure, but there is no need to restrict yourself to the lowest common denominator (which is even smaller than sRGB if you're also targeting print). You can create things in wide gamut and even hdr, and then for every display/printer just try to reproduce it as correctly as possible within the limitations of the device.
2023-04-10 07:45:37
That's true, as I said, advanced users can take advantage of wide color spaces, if they know how to use them.
gb82
2023-04-10 08:16:54
So, 18%?
gameplayer55055
_wb_
2023-04-10 08:34:29
btw how to set up color profiles in windowns
Traneptora
gameplayer55055 btw how to set up color profiles in windowns
2023-04-10 08:50:26
if you know the color profile of your monitor, you can search "Color Management" in the start menu
2023-04-10 08:50:33
and select the color profile
2023-04-10 08:50:43
it's usually something you can find on your manufacturer's website
spider-mario
gameplayer55055 btw how to set up color profiles in windowns
2023-04-10 09:30:56
perhaps a good starting point if you don’t have a colorimeter: install DisplayCAL, open it, go to “File” -> “Create profile from extended display identification data…”, save it somewhere (the default path it shows you is fine), and when it asks you “Do you want to install the profile ‘(profile name)’ and make it the default for display ‘(display name)’?”, click “Install profile”
2023-04-10 09:37:24
mine seems about right
gameplayer55055
2023-04-10 09:40:22
installed manufacturers .icm
2023-04-10 09:40:49
nothing changed, does it mean its alr ok?
Traneptora
2023-04-10 10:12:36
it's very possible that your display is just sRGB
2023-04-10 10:12:51
in which case nothing will change
gameplayer55055
Traneptora it's very possible that your display is just sRGB
2023-04-10 10:16:32
no, now its surely srgb
w
2023-04-10 10:16:57
how are you checking
spider-mario
2023-04-10 10:17:05
only color-managed applications will use the profile
gameplayer55055
w how are you checking
2023-04-10 10:17:16
nohow, just used the manufacturers rom
spider-mario
2023-04-10 10:17:39
Chrome will use the primaries, but will assume sRGB for the transfer function
gameplayer55055
2023-04-10 10:17:42
and some websites + compared image with macbook in srgb
w
2023-04-10 10:18:00
you can check here https://grass.moe/useful_stuff/ scroll down to the greens, they should be different green
gameplayer55055
gameplayer55055 no, now its surely srgb
2023-04-10 10:19:00
because ive seen laptops where color are obviously different
2023-04-10 10:19:23
and modern monitors have some strange Movie/Gaming/Adaptive modes that change colors
2023-04-10 10:20:05
was useful only in one game where caves are very dark and i had no torch in inventory
Dolphin
2023-04-11 08:50:22
Is there a way to force cjxl to encode lossless using just bare ANS and single distribution/histogram for everything? Constructing MA trees at e9 take really long.
jonnyawsom3
2023-04-11 09:19:25
I think if you check `cjxl -v -v -h` then there are options to disable most methods
_wb_
Dolphin Is there a way to force cjxl to encode lossless using just bare ANS and single distribution/histogram for everything? Constructing MA trees at e9 take really long.
2023-04-11 09:44:10
I think you're describing e1 🙂
2023-04-11 09:44:31
well no, e1 uses prefix coding
2023-04-11 09:45:10
e2/e3 use ANS with fixed MA trees, not single histogram but no MA tree learning either
Dolphin
2023-04-11 09:51:31
Well, yes, but for the images I'm working on jxl outperforms png only on e8/9 and still it's a little worse than the entropy of the whole image
2023-04-11 09:54:14
e2 gives me 12MB vs e9 with -I 0 and -P 0 gives me 7.6MB which is just shy of 7.38MB for regular e9
DZgas Ж
2023-04-12 07:15:29
<:ReeCat:806087208678588437> <:ReeCat:806087208678588437> <:ReeCat:806087208678588437> <:ReeCat:806087208678588437> <:ReeCat:806087208678588437> <:ReeCat:806087208678588437>
2023-04-12 08:19:23
wait
2023-04-12 08:21:28
for some reason, the 7tv website thinks that my browser does not support animated AVIF, although it does, and I am watching it
username
2023-04-12 10:13:37
does anyone have good test images for aCropalypse? both PNGs and JPEGs
2023-04-12 10:14:11
I am able to make some with the windows 10 snip and sketch but I don't have any proper phone setup to make any
2023-04-12 10:14:28
I need test cases for aCropalypse
Jyrki Alakuijala
2023-04-12 10:27:12
Go deeper: They could make a new image format by taking a keyframe of the animated AVIF image format?!
username
_wb_ https://twitter.com/jonsneyers/status/1645135201419374594?t=4aQdjoi6Q9P0RjHKDNgWtA&s=19 calling them out on the bird app, no idea if they care about that
2023-04-12 11:10:58
it seems like this tweet made them increase the default quality for re-encoded JPEGs to 100 however not much else is changed. this is why I need test cases for aCropalypse since I want to go up to discord and give them a solution that is many times better then re-encoding images
2023-04-12 11:11:31
so if anyone is able to provide test cases from google markup it would be helpful
_wb_
Jyrki Alakuijala Go deeper: They could make a new image format by taking a keyframe of the animated AVIF image format?!
2023-04-12 11:13:10
Or wait, let's make a new video format called "motion AVIF" that is a container for multiple AVIF files, which get displayed in a sequence. The container has a 128-byte field to store the framerate (very accurately and with 96 padding zero bytes for future extensions), plus a variable-sized text field to indicate if it is looping or not; if it loops, it contains the plaintext string `urn:mpeg:mpegB:cicp:systems:auxiliary:animation:playback:iterations:looping:true`, if not, it should contain that string but ending with `:none` but for best interoperability it should also redundantly contain that string ending in `:False` (with a capital F), otherwise some viewers will show the animation 0 times, i.e. not at all.
username it seems like this tweet made them increase the default quality for re-encoded JPEGs to 100 however not much else is changed. this is why I need test cases for aCropalypse since I want to go up to discord and give them a solution that is many times better then re-encoding images
2023-04-12 11:15:38
I don't have test cases, but both JPEG and PNG have explicit "end of image" markers so in principle it shouldn't be too hard to parse them enough to find that marker and then strip any tail data, right?
username
2023-04-12 11:18:33
huh well if that's the case then that means the images I made with windows should be fine enough to confirm whether or not something is able to remove the extra data at the end
2023-04-12 11:19:19
I tested a PNG optimizer and a JPEG optimizer that works in a lossless way and they both stripped all the extra data in my test images
_wb_
2023-04-12 11:20:31
something like optipng and jpegtran should do the job indeed — just make sure to not accidentally strip icc/exif/xmp
username
2023-04-12 11:24:36
I used oxipng as opposed to optipng but for both oxipng and jpegtran icc is not stripped and metadata is retained in most cases
2023-04-12 11:25:27
I'm only really worried about icc currently though since discord has stripped metadata for years at this point and I don't think they plan on stopping
2023-04-12 11:26:38
also since optimizer programs strip unused data at the end that means discord could probably change their re-encoding servers into optimizing servers
2023-04-12 11:42:13
it seems like in most optimizer programs ICC profiles are only kept if the program is set to keep all metadata
2023-04-12 11:42:28
which means discord will probably need a 2-step process
2023-04-12 11:43:05
first is to put a image through a optimizer then to strip the metadata except the ICC
Kampidh
Demez unrelated, but that reminds me of kritas broken lossless webp export, in which it is always lossy or something
2023-04-13 12:44:51
found this bug for quite some time, should be fixed on the next release though https://invent.kde.org/graphics/krita/-/merge_requests/1785
Demez
Kampidh found this bug for quite some time, should be fixed on the next release though https://invent.kde.org/graphics/krita/-/merge_requests/1785
2023-04-13 04:08:15
nice
spider-mario
2023-04-14 12:19:37
https://petapixel.com/2023/04/04/gen-z-discovers-modern-digital-cameras-are-better-than-iphones/
jonnyawsom3
2023-04-14 12:57:00
Unfortunately the price and convenience can't be beaten for me, and at least RAW means it isn't overexposed constantly
diskorduser
2023-04-16 02:11:04
1EP = how much MP?
DZgas Ж
2023-04-16 02:15:17
1MP = the number of pixels divided by 1.000.000 because MEGApixels and the word MEGA is a prefix, which means a million times more in SI system - the same as a megabyte
diskorduser
2023-04-16 02:16:04
ok ok. thanks
DZgas Ж
diskorduser 1EP = how much MP?
2023-04-16 02:17:22
👍
_wb_
2023-04-16 02:21:41
diskorduser
spider-mario https://petapixel.com/2023/04/04/gen-z-discovers-modern-digital-cameras-are-better-than-iphones/
2023-04-16 02:24:08
I have a 3600$ ish camera at my workplace. A smartphone takes better photos(dynamic range). Maybe I don't know to use it properly.
2023-04-16 02:26:28
I think it needs manual processing. jpeg coming from it is not so good compared to smartphones.
jonnyawsom3
diskorduser I think it needs manual processing. jpeg coming from it is not so good compared to smartphones.
2023-04-16 03:30:29
Assuming it outputs a RAW and a jpeg, the jpeg is likely just for preview purposes to know what raw file you want
diskorduser
2023-04-17 03:38:02
Does the latest libjxl can decode jpg files?
Traneptora
diskorduser Does the latest libjxl can decode jpg files?
2023-04-17 05:23:31
not at the moment
jonnyawsom3
2023-04-17 05:25:20
It was discussed for xyb jpeg to png conversion without jxl as an intermediate
Traneptora
2023-04-17 05:32:11
once they fix that bug in libplacebo (pending) it'll be doable with FFmpeg one command line
_wb_
2023-04-17 02:11:00
JPEG XT is basically just (the de facto subset of) JPEG plus extensions that are added in such a way that existing JPEG decoders just ignore them
2023-04-17 02:11:45
JPEG XL bitstreams are never compatible with existing JPEG decoders — the bitstream is completely different, there is no way to produce something that decodes with existing JPEG decoders
2023-04-17 02:13:47
The "backwards compatibility" JPEG XL has is only semantically, not syntactically: all JPEG files can be represented in JPEG XL (as in: the exact same image data, and with jbrd even the exact same file can be reconstructed), but the syntax is different and existing JPEG decoders cannot handle it.
jonnyawsom3
2023-04-17 03:14:25
The idea was to have widespread JXL support and transcode back to JPEG for legacy devices/browsers
_wb_
2023-04-17 03:24:53
Yes, that can be done, in particular for already existing jpeg files or for newly encoded ones where you stay within the subset of jxl that can be converted back to jpeg
2023-04-17 03:27:20
At some point we thought about adding JPEG XT-style app markers to represent some jxl extensions (like gaborish/epf or fancy dequant) that can be ignored by legacy jpeg decoders but improve things for decoders that know about it. But we ended up not doing that, since upgrading jpeg decoders to handle jxl-specific extensions is not really any easier than just adding full jxl support
2023-04-17 03:28:21
(in the current version of the jxl white paper, that diagram was simplified a bit to drop that thing we didn't end up doing anyway)
jonnyawsom3
_wb_ Yes, that can be done, in particular for already existing jpeg files or for newly encoded ones where you stay within the subset of jxl that can be converted back to jpeg
2023-04-17 03:29:51
Hmm, that last part about staying in the subset of jpeg made me think of having the -j parameter do exactly that when set to 1 with a non-jpeg input
2023-04-17 03:34:57
Current default behaviour is to transcode when possible, so it's only used to disable that anyway, makes me wonder why it's not just a flag rather than a parameter in the first place
_wb_
2023-04-17 03:43:59
we currently don't have the concept of staying within the jpeg subset as part of the libjxl encode api, but it would definitely make sense to add that. I suppose we should then also write some dummy `jbrd` so it can be 'reconstructed' to a jpeg even if it never actually was a jpeg in the first place — we can just make everything as default as possible so the `jbrd` can be very small
VcSaJen
2023-04-22 11:53:40
WebP, AVIF, AVIF2... soon we would have to install K-lite MEGA Image Codec Pack just to view images normally.
DZgas Ж
2023-04-23 11:19:47
jxl is last codec in the world<:FeelsSadMan:808221433243107338>
diskorduser
2023-04-23 11:20:23
I see both packages are installed in opensuse. Does x86_64-v3 files takes higher priority automatically?
2023-04-23 01:14:49
Thank you. I have already visited that site last month and completely forgotten it.
Husam
2023-04-26 08:10:13
<@263300458888691714> (Continuing from <#809126648816336917>.) What’s an MA tree?
_wb_
2023-04-26 09:00:24
it's a decision tree used to describe a Meta-Adaptive context model for entropy coding in JPEG XL's modular mode.
2023-04-26 09:00:51
the concept is derived from the MA trees in FLIF (and extended in interesting ways)
2023-04-26 09:04:44
before FLIF, context models were static: the same model is used for all images. Meta-adaptive context modeling makes it dynamic: different models can be used for different images, so the model itself (not just the parameters of the model, e.g. the histograms or huffman tables) can adapt to the data too.
2023-04-26 09:09:37
The simplest form of entropy coding is just to use fixed codes (e.g. this is what cameras do to produce jpeg images). You can make it adaptive by signaling the codes themselves so they can be made optimal for the actual data (this is what optimized huffman tables in jpeg does). You can also add context modeling and use different codes in different contexts, for even better compression (this is what most modern codecs do, with usually some simple fixed context model) And then you can make things meta-adaptive by signaling also the context model itself, for even better compression (this is what only FLIF and JPEG XL do, though you could say that the context clustering in brotli and pik is also a form of this).
2023-04-26 09:12:54
the MA tree describes the context model in the form of a decision tree that gets signaled in the bitstream, and that has the effect of assigning a context to every entropy-coded symbol (in this case these are pixel sample values or auxiliary bitstream values) depending on its local properties (things like the value of neighboring pixels, differences between neighboring pixels, the x,y coordinates, channel number, etc). The entropy codes _and_ the predictor to be used can be different in every context.
2023-04-26 09:15:50
<#824000991891554375> is the special artificial case where the entire image is described by the MA tree in the sense that every context has only 1 symbol to be encoded (the zero symbol) so it can use an entropy code that requires zero bits per symbol and the actual entropy-coded stream is just the empty stream, which is what makes the bitstreams so tiny.
username
_wb_ https://twitter.com/jonsneyers/status/1645135201419374594?t=4aQdjoi6Q9P0RjHKDNgWtA&s=19 calling them out on the bird app, no idea if they care about that
2023-04-26 09:29:03
I have good news! Discord now no longer ruins images!
2023-04-26 09:29:27
it doesn't recompress anything anymore and it also doesn't lose ICC profiles
2023-04-26 10:17:36
I think your tweets pushed them in the right direction
diskorduser
2023-04-26 10:21:04
Which tweet
username
diskorduser Which tweet
2023-04-26 10:23:24
https://twitter.com/jonsneyers/status/1645135201419374594
2023-04-26 10:24:00
a Discord dev actually ended up seeing this and responded
2023-04-26 10:24:31
and a few weeks later (aka this week) they fully fixed their system
2023-04-26 10:25:10
they didn't announce this anywhere however every few days I would test to see if Discord's image system changed
2023-04-26 10:25:26
and I just tested a few hours ago and everything is working now!
_wb_
2023-04-26 10:27:21
Cool! Nice that my tweet led to change, I think it shows that we shouldn't attribute malevolence to cases that are better explained by incompetence, and simply explaining the issue can actually help in those cases...
afed
2023-04-26 11:26:39
hmm, the full source image was always untouched, at least it was for most of my images xyb jpegs also worked before, but not for previews
username
2023-04-26 12:09:50
before aCropalypse that was the case however once aCropalypse was discovered Discord quickly made a system where all PNGs and JPEGs where re-encoded at default settings
2023-04-26 12:10:20
but now it's like the old system where images where barely touched besides removing metadata
2023-04-26 12:11:10
and I went and tested and this new fixed system that's like the pre aCropalypse system and it takes care of aCropalypse images
Demez
2023-04-26 12:32:38
so it only reencodes aCropalypse images? I see, maybe the reencoding was a temporary solution until they found that method?
username
2023-04-26 12:49:46
no?
2023-04-26 12:49:57
no images are re-encoded now
2023-04-26 12:50:35
and aCropalypse images just have their invalid ending data removed
Demez
2023-04-26 01:10:58
oh, well that's one way to do it with messing with the images the least
monad
Husam <@263300458888691714> (Continuing from <#809126648816336917>.) What’s an MA tree?
2023-04-26 03:54:32
Read through that link I shared for more specific details. (<https://jxl-art.surma.technology/wtf.html>) You can play around by manually describing bitstream properties here: <https://jxl-art.surma.technology/>
MSLP
Husam <@263300458888691714> (Continuing from <#809126648816336917>.) What’s an MA tree?
2023-04-26 04:18:28
Also, for someone interested in math images this example of MA tree would be a good starting point: https://discord.com/channels/794206087879852103/824000991891554375/844164924527476757
Traneptora
username it doesn't recompress anything anymore and it also doesn't lose ICC profiles
2023-04-26 09:53:18
wait really?
2023-04-26 09:53:40
2023-04-26 09:53:44
nope
username
2023-04-26 09:53:50
that's the thumbnail
Traneptora
2023-04-26 09:53:58
looks like it doesn't *strip* it but it still won't use it for the thumbnail
2023-04-26 09:54:12
open in browser works
username
2023-04-26 09:57:17
Discord will display the full image when you click on it without opening it in browser depending on the resolution of the open Discord window
Traneptora
2023-04-26 09:59:14
doesn't work here
2023-04-26 09:59:20
1920x1080 or slightly lower cause menubars
2023-04-26 09:59:43
linux thing?
username
2023-04-26 10:01:59
my monitor is 4K
2023-04-26 10:03:04
also what do you mean by "menubars"?
MSLP
Traneptora linux thing?
2023-04-26 10:06:15
for me it opens scaled-down discolored image when opening with menubars, and original when if fullscreen (F11) mode on 1920x1200, but I'm on linux too
_wb_
2023-04-26 10:20:24
2023-04-26 10:20:40
2023-04-26 10:22:35
that's the old discord behavior again: thumbnails ignore icc, original is fine
2023-04-26 10:23:24
Discord
2023-04-26 10:23:49
on the mobile app on my android phone actually even the preview looks ok now
2023-04-26 10:24:31
which is I think better than how it used to be, I remember seeing wrong previews and even if you click on it it was wrong on mobile, until you open it in browser
username
2023-04-26 10:25:59
anytime discord does something that involves re-encoding it always ends up ignoring ICC profiles among other things
2023-04-26 10:27:29
It would be nice if the encoded thumbnails took into account stuff like ICC profiles however as long as the original full image isn't messed up then it isn't too big of a problem just a little annoying
2023-04-26 10:31:05
something interesting to note is Discord stores profile pictures in multiple resolutions as both PNG and lossy WebP and it prefers to show the lossy WebPs which means that HDR profile pictures will probably not work at all unless you force Discord to show the full res PNG
2023-04-26 10:32:38
If I where to guess the downscaled versions of the profile pictures probably don't take stuff like bit-depth into account which means that even if discord just showed PNGs for profile pictures instead of WebP then you still probably won't see them in HDR
jonnyawsom3
2023-04-27 08:33:33
If we're being honest, is a 128 pixel profile picture really going to look any different in HDR?
_wb_
2023-04-27 08:53:02
for specifically profile pics, maybe it's OK to not allow them to be brighter than SDR white — it would be pretty annoying if people would use an avatar that is blindingly bright
w
2023-04-27 03:53:16
https://tenor.com/view/cat-flashbang-gif-25002731
Jim
2023-04-28 10:53:56
*everyone changes their avatars to whiter than white*
190n
2023-04-28 11:40:40
HDR profile pictures <:monkaMega:809252622900789269><:monkaMega:809252622900789269><:monkaMega:809252622900789269>
Traneptora
2023-04-29 11:19:29
ten thousand nit HDR pfps
spider-mario
2023-04-29 11:43:42
how else am I going to feel important
monad
2023-04-29 05:01:52
Jokes on you all, I have pfps disabled.
190n
2023-04-29 11:29:26
HDR username colors
monad
username and a few weeks later (aka this week) they fully fixed their system
2023-05-01 06:47:03
They now truncate animated PNG.
username
2023-05-01 06:51:48
darn I had the feeling something was gonna be lost
2023-05-01 06:52:24
although it's a wayyyy better system then the one they originally made for aCropalypse
Traneptora
2023-05-01 08:15:12
discord never supported apng tho
2023-05-01 08:15:29
but they really should look for the IEND chunks
jonnyawsom3
2023-05-01 08:23:31
It was how the whole "Don't open this image in your browser thing started", as in the joke one not the "Or you'll get hacked!" one :P
derberg🛘
Traneptora discord never supported apng tho
2023-05-05 11:16:31
It was funny when people were able to set animated profile pics (and pics showing something different when a user clicked on the profile) by using a APNG created in a certain way.
jonnyawsom3
2023-05-07 01:23:18
Can't remember who said about Waifu2X for purely denoising, but I just dusted off my copy from 2019, lo and behold it works wonders in only a few seconds
DZgas Ж
Can't remember who said about Waifu2X for purely denoising, but I just dusted off my copy from 2019, lo and behold it works wonders in only a few seconds
2023-05-07 05:43:37
It's not even for noise reduction, but only for removing artifacts. The latest version of "cunet" does just magic.
2023-05-07 06:02:23
2023-05-07 06:04:32
It's just perfect. But most importantly it works this way - if you give him an already perfect jpeg image, for example q100, the algorithms will not make it smoothed out. It won't do anything because It will '"see'" that everything is still perfect. -- I was amazed by this.
2023-05-09 10:08:40
◻️ When do hard compression, visible artifacts come inside the block. The question is, if 40% of the blocks are a monotone color(like border), then which color will be the best to hide the artifacts?⬛
Demez
2023-05-13 11:23:31
funny
Arioch
2023-05-14 01:52:16
jxl art page seems broken "ruby vase" seems to have empty img tag
_wb_
2023-05-14 06:35:03
That image uses a big spline. We only recently standardized the exact limits on spline usage. Old versions of libjxl (any recent release) use different/stricter limits than what we ended up putting in the standard, so they refuse to decode the image...
Arioch
2023-05-14 09:05:30
well, still has to be either removed form ther list, or added to the page
jonnyawsom3
2023-05-14 09:29:31
Or just add a disclaimer until the next version release
DZgas Ж
2023-05-14 12:39:22
<:Thonk:805904896879493180> wh
veluca
2023-05-14 12:40:21
it's wrong, but it's also surprisingly close
_wb_
2023-05-14 12:41:48
It's plausible but wrong, exactly what you can expect from an autocomplete on steroids...
DZgas Ж
2023-05-14 12:48:39
☝️ just
2023-05-14 12:49:31
it really doesn't know the code, just assumes. And it assumes better than it is actually done 🙂
2023-05-14 12:50:56
who would think that it is necessary to write this: {2, 0, 0},{3, 0, 0},{4, 0, 0},{5, 0, 0},{6, 0, 0},{7, 0, 0},{8, 0, 0},
MSLP
_wb_ yes we should get out of that provisional list and in the real list
2023-05-21 12:00:30
Digging out the old topic of IANA media type registration. Was the formal [Application for a Media Type](https://www.iana.org/form/media-types) been sent to IANA? eg. in [JPEG XR specification](https://www.itu.int/ITU-T/recommendations/rec.aspx?id=13914) there's an "Annex E: Media type specification for the Annex A tag-based file format" which contains what was submitted to IANA media type registry.
spider-mario
2023-05-23 11:28:52
https://static.digitecgalaxus.ch/Files/7/5/0/1/1/1/6/8/nokia-c12-testfoto_sonne-und-rasen.jpg not great photo quality from the nokia c12, it seems
diskorduser
2023-05-24 09:21:28
Looks like a water painting
Traneptora
2023-05-24 05:12:40
that's real bad, lmao
_wb_
2023-05-24 06:07:23
Is that like a crop from a much larger photo or something?
spider-mario
2023-05-24 06:08:23
no, it’s the full photo
2023-05-24 06:09:54
here is the article: original german: https://www.digitec.ch/de/page/wie-viel-muss-ein-smartphone-kosten-das-nokia-c12-bietet-zu-viel-retro-feeling-27536 (human) english translation: https://www.digitec.ch/en/page/how-much-should-a-smartphone-cost-the-nokia-c12-feels-too-retro-27536
DZgas Ж
2023-05-24 10:44:19
The photo is so bad that I can say that the neural network will generate better.
Jyrki Alakuijala
2023-05-25 11:20:28
c12 -- could it be that the pic is upscaled with a very simple neural approach internally in the phone
jonnyawsom3
2023-05-25 11:56:47
Just looks like a poor quality sensor to me that's oversmoothing noise. Certainly sounds like e-waste reading the performance and specs
Jyrki Alakuijala
2023-05-25 01:19:16
Nokia used to be able to build amazing cameras. Sad what C12 is doing.
diskorduser
2023-05-25 02:01:55
My nokia phone from the year 2009 takes better pictures than this.
derberg🛘
2023-05-27 01:38:47
The specs would have been okay if it was competing with the Pinephone and the software made up for the specs
2023-05-27 01:39:13
At least they make it easier to replace batteries again
2023-05-27 01:54:18
But yeah tbh the last good smartphone I saw was the X3 NFC. Regarding the amount of stuff it had. Nowadays it's hard to find a phone that has all of those four basic things even: microSD slot, audio jack, notification LED and FM/UKW radio. Notification LED can be simulated on AMOLED screens but eh.. the additional app draws unnecessary power.
jonnyawsom3
2023-05-27 02:06:50
I'd never had a notification LED until my current phone, and kept forgetting it was there. But having been in Do Not Disturb for about 3 years now, it's very handy for seeing when something is waiting
2023-05-27 02:09:32
Radio I could take or leave, can just download music in most cases nowdays. Audio jack... I was annoyed at first since mine is missing it, but I never really used earphones anyway and don't have anything Bluetooth so just forget about it completely. MicroSD though? God I miss it... I've been juggling the last 20/128GB free for about a year just because no new phones take my interest, at least no reputable ones
2023-05-27 02:11:56
This, however, got my interest... Just don't know if I'd want to risk the investment on poor support (Not that I have any with my current phone anyway...) https://youtu.be/4002_MqVNfY
derberg🛘
Radio I could take or leave, can just download music in most cases nowdays. Audio jack... I was annoyed at first since mine is missing it, but I never really used earphones anyway and don't have anything Bluetooth so just forget about it completely. MicroSD though? God I miss it... I've been juggling the last 20/128GB free for about a year just because no new phones take my interest, at least no reputable ones
2023-05-27 03:28:30
You can put a programmable button into the audio port btw. Cost is < 1 $ from china (search term: "Smart Key 3.5 mm")
jonnyawsom3
2023-05-27 04:01:57
Yeah I know about them, just can't think of a use case for me and the bottom of the phone isn't ideal for easy access
w
2023-05-27 11:35:13
last real flagship with most of the features is the s10e
2023-05-27 11:35:23
thinking of getting an extra one
BlueSwordM
w last real flagship with most of the features is the s10e
2023-05-28 04:13:19
Not true.
2023-05-28 04:13:24
You have Sony phones these days 🙂
w
2023-05-28 04:13:32
but sony software is ass
2023-05-28 04:13:47
you get like 2 months of updates and the phone is useless
2023-05-28 04:15:04
the last sony that was decent in its generation was the z5
2023-05-28 04:16:53
sony phones always have some weird issue/quirk
2023-05-28 10:04:20
i forgot, sony the type of company to put nfc logo on all of their devices while they can't figure out how to get it to work properly
spider-mario
2023-05-28 10:09:25
my Sony XZ2 Compact worked well until a major Android update made it painfully slow/buggy, and then they stopped providing security updates, less than two years after I bought it
2023-05-28 10:10:39
in contrast, Apple is still providing security updates to the iPhone 7, released in September 2016
2023-05-28 10:27:58
I was very happy with my XZ2 Compact for a year or so (2019)
2023-05-28 10:28:03
too bad that couldn’t be sustained
190n
2023-05-29 03:34:08
is it possible to simulate colorblindness by adding a color profile without changing any pixel data
_wb_
2023-05-29 06:04:46
I think so, yes
spider-mario
2023-05-29 06:05:00
a small piece of libjxl history: a draft of the UI for the comparison tool before it was implemented
2023-05-29 06:05:07
(not sure if I’ve posted this before)
DZgas Ж
2023-05-29 08:29:24
✍️ <:SadCheems:890866831047417898>
spider-mario
2023-05-29 08:53:55
(if you look closely, you’ll see “artifacts” on the flower on the left side of the central band)
DZgas Ж
2023-05-30 10:59:03
wow wtf
2023-05-30 11:01:27
579 bytes, effort: 10 Compressed to 662 bytes
jonnyawsom3
2023-05-30 11:03:17
It's so efficient it went backwards
DZgas Ж
2023-05-30 11:15:20
this is clearly not a matter of service data because when compressing 2x2 pic - JXL it turns out almost 2 times less 25 bytes jxl 40 bytes webp
2023-05-30 11:16:07
inefficient use of the data structure is possible
2023-05-30 11:18:30
I have conducted a lot of similar tests, but never with such small pictures, for the first time I see that JXL worked worse than PNG (I would also like to say that this is some very strong bruteforce PNG because I can't compress to such a weight either through optipng or through pngout, perhaps what that's another PNG software.)
_wb_
2023-05-30 11:59:49
Probably doing something silly like making a palette or something
Foxtrot
spider-mario my Sony XZ2 Compact worked well until a major Android update made it painfully slow/buggy, and then they stopped providing security updates, less than two years after I bought it
2023-05-30 02:38:19
I had exactly the same experience. But since there is no other similarly sized phone I decided to root it and install LineageOS and it works very well now.
2023-05-30 02:39:33
I fear if it ever breaks because there simply isnt alternative compact phone. (not counting iPhone)
w
2023-05-30 05:36:21
take a look at the s10e
Wolfgang
2023-05-30 06:10:22
Good afternoon I hate 1366×768
Traneptora
2023-05-30 09:16:33
fake 16 by 9
gb82
Wolfgang Good afternoon I hate 1366×768
2023-05-31 12:11:26
Real
2023-06-01 10:18:33
The AV1 Community is working on a Multimedia Wiki (currently titled AV1 Wiki) right now. The Wiki is up at https://av1-community-contributors.github.io/av1-wiki.github.io/. Domain is subject to change. Help wanted for contributions, as everything on there currently is written by Simulping & we'd like it to come off more professional as time goes on. See https://github.com/av1-community-contributors/av1-wiki.github.io/tree/main to contribute. DM me your Github if you'd like to be added to the av1-community-contributors org to help this project out!
diskorduser
Wolfgang Good afternoon I hate 1366×768
2023-06-02 03:48:44
Who doesn't
Jyrki Alakuijala
spider-mario a small piece of libjxl history: a draft of the UI for the comparison tool before it was implemented
2023-06-02 09:00:25
real design artefact ❤️
derberg🛘
BlueSwordM You have Sony phones these days 🙂
2023-06-04 11:53:46
I wish. But sadly no, they cut on important features.
w last real flagship with most of the features is the s10e
2023-06-04 12:00:20
Yeah, well... No notification LED and FM radio as well...
w
2023-06-04 12:00:44
notification led can be replaced with oled screen
2023-06-04 12:01:00
i used to be into it with my bacon
derberg🛘
2023-06-04 12:02:56
Partially yes but only when the phone is booted up and you need an extra app which draws power (or you have root permissions or custom ROM/OS).
w
2023-06-04 12:03:13
booted up?
2023-06-04 12:03:16
i mean in general the usage
2023-06-04 12:03:25
just have notifications always show or something like that
2023-06-04 12:03:29
or tap it once to flash it
2023-06-04 12:04:00
i used to be into the idea of rgb led
2023-06-04 12:04:08
and then i outgrew it
2023-06-04 12:05:48
also technically draws less power than the larger led
derberg🛘
2023-06-04 12:05:53
For me it is more about charging indication which could be done by using extra hardware but eh.
w
2023-06-04 12:06:22
these phones have that by default
2023-06-04 12:06:33
on the oled screen
derberg🛘
2023-06-04 12:06:48
And what when the phone doesn't show anything on the display?
w
2023-06-04 12:07:07
yeah when screen off
derberg🛘
2023-06-04 12:07:13
Or broken
w
2023-06-04 12:07:33
if you have a broken screen then you have bigger problems
2023-06-04 12:07:52
some notification led isn't gonna save that
derberg🛘
2023-06-04 12:08:12
It's helpful for debugging
w
2023-06-04 12:08:39
umm sure
2023-06-04 12:09:43
not like any of those old phones with notification LEDs were programmed in hardware
2023-06-04 12:10:02
(my bacon wasn't)
derberg🛘
2023-06-04 12:12:51
Yeah, depends on the phone what is possible...
BlueSwordM
derberg🛘 I wish. But sadly no, they cut on important features.
2023-06-04 04:33:52
Like what?
2023-06-04 04:34:06
They're better than all other relevant brands.
derberg🛘
2023-06-04 04:34:25
The two I mentioned
2023-06-04 04:34:30
At least important to me
w
2023-06-04 11:15:59
blue they are not better than most relevant brands
Traneptora
2023-06-05 04:21:29
is FM radio really that important of a feature
w
2023-06-05 05:11:39
it's as important as an ir blaster
2023-06-05 05:12:20
actually no, ir blaster can be useful
derberg🛘
Traneptora is FM radio really that important of a feature
2023-06-05 11:00:04
Requires no internet to listen to news and music
2023-06-05 11:01:01
I don't pay for mobile data. Usually I put some videos on a phone before leaving the house for a longer time but FM radio comes in handy in the worst case.
w actually no, ir blaster can be useful
2023-06-05 11:07:37
Yeah, don't have much use of it currently but it's nice to have. Also nice to have would be support for controlling things via 433 MHz but I have yet to find a commercial smartphone that supports that.
username
2023-06-09 01:50:14
<@184373105588699137> I noticed you pointed someone on Phoronix to Librewolf as a browser that supports JXL but I have to warn you that there are no versions of Librewolf that support JXL as they removed the patches from the build process right after they added them https://gitlab.com/librewolf-community/browser/source/-/commit/29964a30ff7a4f859dac34610d0a532855f2b8ae
Quackdoc
2023-06-09 01:50:38
wait really? dang
2023-06-09 01:51:29
ofc its 'jxl' and not 'jpegxl' so it didn't come up in search 🤦‍♂️
username
2023-06-09 01:52:23
hopefully they change their mind now that Apple/Safari support JXL
2023-06-09 01:53:03
although they might just sit around and wait to see what Mozilla does.
MSLP
username <@184373105588699137> I noticed you pointed someone on Phoronix to Librewolf as a browser that supports JXL but I have to warn you that there are no versions of Librewolf that support JXL as they removed the patches from the build process right after they added them https://gitlab.com/librewolf-community/browser/source/-/commit/29964a30ff7a4f859dac34610d0a532855f2b8ae
2023-06-09 02:36:56
They support it at the level of firefox nightly - so it's disabled by default (has to be enabled in about:config), hdr and animations are not supported. The patches mentioned enchance the support (hdr + animations works) and make support enabled by default.
username
2023-06-09 02:39:00
there aren't any patches that make HDR work for firefox/gecko
2023-06-09 02:39:55
it's just for alpha channel, progressive decoding, animations and color profiles
MSLP
2023-06-09 02:41:08
Ah, I thought the color profiles enable hdr support
Quackdoc
2023-06-09 02:41:37
I mean they kinda do? it's super buggy though
2023-06-09 02:41:48
firefox it'self has really bad hdr support
diskorduser
2023-06-09 04:28:52
jxl test page looks funny on mercury browser
acedent
2023-06-10 06:24:47
Howdy! I've been experimenting with png optimization for ~20 years (e.g. `pngslim`)... now interested in lossless jxl. I'm curious if I have an 8x8px monotone pattern (64 bits)... how compactly that can be represented?... Was contemplating reading the spec to make a very specific encoder... perhaps that's crazy? 😅
2023-06-10 06:26:22
(Source material I plan to encode is at ~ http://8x8.me)
veluca
2023-06-10 06:33:04
that's an interesting question!
2023-06-10 06:33:26
perhaps unsurprisingly, most of the encoder was never optimized for this use case 😛
acedent
veluca perhaps unsurprisingly, most of the encoder was never optimized for this use case 😛
2023-06-10 06:33:47
That's what makes it fun 😄
2023-06-10 06:36:18
I'm curious if the predictors can be given repeating byte values based on some modulo of position...?
2023-06-10 06:37:10
So, in cpp we do a little hack using string literals: ```cpp "\1\2\3\4\5\6\7\8"[x%8] ```
veluca
2023-06-10 06:38:10
so with an unmodified encoder, on the entire 8x8 repo, I get the following stats: ``` count bytes 1 17 1 19 1 25 5 26 273 27 1 28 ```
2023-06-10 06:39:42
it might be possible to squeeze another byte or two, but I am not sure it is worth it
acedent
2023-06-10 06:39:47
So, that's the majority of patterns can be encoded in ~27 bytes + ~23 byte header?
veluca
2023-06-10 06:39:55
no, just 27 bytes
2023-06-10 06:40:11
all of those are valid jxl files 🙂
acedent
2023-06-10 06:40:24
WHAT! No way... what's the header size fo jxl!?
veluca
2023-06-10 06:40:44
variable 😄 but can be \<= 17 bytes apparently 😉
acedent
2023-06-10 06:41:44
Wow. Ok. Excitement for jxl just went to 11.
2023-06-10 06:42:09
I thought I read a header cost was ~23 bytes. (vs ~67 for a minimal png).
veluca
2023-06-10 06:43:02
nah, if you don't use the container format (and here you likely don't need to), the header is 8 to 16 bytes or so
username
acedent WHAT! No way... what's the header size fo jxl!?
2023-06-10 06:43:22
there is a slide here that shows some header size comparisons: https://docs.google.com/presentation/d/1LlmUR0Uoh4dgT3DjanLjhlXrk_5W2nJBDqDAMbhe8v8/edit#slide=id.gde87dfbe27_0_43
_wb_
2023-06-10 06:43:53
I think I made a valid jxl file in 12 bytes once
acedent
veluca nah, if you don't use the container format (and here you likely don't need to), the header is 8 to 16 bytes or so
2023-06-10 06:44:43
So Windows BMP (oldest, still acceptable IBM OS/2 v1.x format) – was the smallest bitmap file - with a header of 24 bytes...
_wb_
2023-06-10 06:46:01
Yes, 12 bytes: https://twitter.com/jonsneyers/status/1452727349405966341?t=F5Ilyl1rHRPR9Ab1TNbMDA&s=19
acedent
veluca nah, if you don't use the container format (and here you likely don't need to), the header is 8 to 16 bytes or so
2023-06-10 06:46:09
Without a container? Is that like jpeg vs jfif?
2023-06-10 06:46:17
Is it likely to be supported in browsers?
_wb_
2023-06-10 06:46:25
That's header + data
2023-06-10 06:46:40
Yes, a raw codestream is a valid jxl
veluca
2023-06-10 06:47:31
PPM is probably smaller no? header is "P4\\n8 8\\n" (I *think*, I never remember 😛) + followed by 8 bytes of data
2023-06-10 06:47:51
so you'd be able to represent everything with 15 bytes
2023-06-10 06:47:58
of course most browsers don't read that
acedent
2023-06-10 06:48:38
In shock and awe! Humbled!... perhaps I've wasted years pushing png... 😅
_wb_ Yes, a raw codestream is a valid jxl
2023-06-10 06:51:45
Don't you just love when the base64 encoding gives you a message~ "yAY"! ❤️
veluca so with an unmodified encoder, on the entire 8x8 repo, I get the following stats: ``` count bytes 1 17 1 19 1 25 5 26 273 27 1 28 ```
2023-06-10 06:53:31
What encoder binary and parameters were using to get these? Cheers 🙂
veluca
2023-06-10 06:54:37
`cjxl v0.8.1 c27d4992`
2023-06-10 06:55:04
`cjxl -e 10 -d 0 --patches=0 <INPUT> <OUTPUT> --allow_expert_options`
_wb_
2023-06-10 07:01:00
Another interesting question is how small a large tiled version of such a pattern can be
2023-06-10 07:03:11
With handcrafting you could make manual patches and do it that way
acedent
2023-06-10 07:03:22
Yes. I was hoping to encode the `preview` images.
2023-06-10 07:03:33
They are 4 tiles wide x 2 high.
2023-06-10 07:03:51
And then scaled 2x to show off pixel goodness...
2023-06-10 07:05:03
(Part of my interest was to enter some jxl-art for the upcoming 'Nova' demoparty in the UK...)
_wb_
2023-06-10 07:05:18
Another option that might be cheaper (to avoid patch signaling cost) is to define a redundant palette of 64 colors in such a way that the index image is very predictable
2023-06-10 07:07:57
A custom 2x upsampling that is NN instead of the smooth default thing, that shouldn't have too much signaling overhead, right <@179701849576833024> ? Might be worth adding that as an option for pixel art...
veluca
_wb_ A custom 2x upsampling that is NN instead of the smooth default thing, that shouldn't have too much signaling overhead, right <@179701849576833024> ? Might be worth adding that as an option for pixel art...
2023-06-10 07:09:06
mhhhh, I think that'd be pretty expensive, relatively speaking - somewhere in the ballpark of 30 bytes?
2023-06-10 07:10:02
(15 f16s for the matrix)
acedent
2023-06-10 07:19:30
Tried the larger, tiled preview images, e.g. 111 byte png --> 74 byte jxl.
2023-06-10 07:20:36
I sense there's a rich amount of hidden levers that can be tweaked...
2023-06-10 07:22:05
Hopefully I can explore this... is the ISO draft the best place to start?
veluca
2023-06-10 07:23:07
probably not
veluca `cjxl -e 10 -d 0 --patches=0 <INPUT> <OUTPUT> --allow_expert_options`
2023-06-10 07:23:23
I'd begin by running it through this and seeing what happens
acedent
2023-06-10 07:27:09
Thanks <@179701849576833024> <@794205442175402004> for your help!
_wb_
veluca mhhhh, I think that'd be pretty expensive, relatively speaking - somewhere in the ballpark of 30 bytes?
2023-06-10 07:35:02
Yeah I mean for bigger, higher-entropy pixel art
veluca
2023-06-10 07:35:21
ah fair
2023-06-10 07:35:34
30 bytes would be worth it 😄
jonnyawsom3
acedent (Part of my interest was to enter some jxl-art for the upcoming 'Nova' demoparty in the UK...)
2023-06-10 10:15:33
Huh, currently on a train from London, I might have a look into that when I'm home. And I was going to mention the JXL art site, seemed perfect for manually making tiny files, but it seems the encoder is already quite good
_wb_ A custom 2x upsampling that is NN instead of the smooth default thing, that shouldn't have too much signaling overhead, right <@179701849576833024> ? Might be worth adding that as an option for pixel art...
2023-06-10 10:18:29
I was also going to mention the upsample command, but nearest neighbour would be much better, maybe a few different upsample/scaling options if you're already allocating the byte for changing it, could apply to downsampling too
yurume
acedent In shock and awe! Humbled!... perhaps I've wasted years pushing png... 😅
2023-06-11 01:30:59
did you ever consider gif? in this 8x8 space the compression method doesn't really matter much and metadata overhead and packing method matters more, and gif is better at that than png in general.
acedent
Huh, currently on a train from London, I might have a look into that when I'm home. And I was going to mention the JXL art site, seemed perfect for manually making tiny files, but it seems the encoder is already quite good
2023-06-11 11:44:52
Yes- I was expecting a bunch of effort (/fun!) hand tweaking... but the encoder does a *remarkable* job as standard!
yurume did you ever consider gif? in this 8x8 space the compression method doesn't really matter much and metadata overhead and packing method matters more, and gif is better at that than png in general.
2023-06-11 11:51:14
Perhaps I have an ideological issue with gif!... 😆 It's a good idea with the smaller header, but can be beaten by v1.0 BMP, which AFAIK is still widely supported. (gif ~35 bytes vs bmp ~24 bytes + 8 bytes uncompressed bitmap data).
_wb_ Another option that might be cheaper (to avoid patch signaling cost) is to define a redundant palette of 64 colors in such a way that the index image is very predictable
2023-06-11 11:54:03
What a neat idea to achieve tiling! (store the tile as the palette). Q. Are JXL palettes compressed at all? I presume there's no gui tools around for such low level tinkering? 😅 ...
2023-06-11 12:01:28
I like Ange (Corkami) approach of coding image data with an assembler (e.g. NASM). ~ https://speakerdeck.com/ange/no-more-dumb-hex?slide=74
_wb_
acedent What a neat idea to achieve tiling! (store the tile as the palette). Q. Are JXL palettes compressed at all? I presume there's no gui tools around for such low level tinkering? 😅 ...
2023-06-11 12:30:38
Yes, they are compressed, as a nb_colors x nb_channels channel though, so no 2D prediction...
acedent
_wb_ Yes, they are compressed, as a nb_colors x nb_channels channel though, so no 2D prediction...
2023-06-11 12:41:53
Thanks. The only doc detailing the bitstream is the ISO standard?
_wb_
2023-06-11 12:48:05
You can find drafts in <#1021189485960114198>
Nova Aurora
2023-06-12 07:31:18
Stupid question: would it be possible to take advantage of svgs Turing-completeness to create an svg that just embeds a JXL, however, if JXL decoding isn't supported, downloads the polyfill itself, to create an image encoded in JXL that loads on unsupported browsers?
2023-06-12 07:32:47
There would be no practical purpose, as it would probably have little to no benefit over using a supported image type, but the important part is it would be funny
yurume
2023-06-12 08:17:04
there are some existing formats that this is indeed possible, most notably RAR (!)
2023-06-12 08:17:35
(also happens to be one of primary sources of RAR vulnerabilities)
_wb_
2023-06-12 10:50:58
svg does allow javascript so I guess you could put some js code in it that loads a wasm decoder if needed
Traneptora
2023-06-12 11:06:18
that sounds like a security issue
2023-06-12 11:06:31
allowing arbitrary JS execution in images
_wb_
2023-06-12 11:09:32
yes, it is
2023-06-12 11:10:40
this is why svg is such a pain. The only way you can render an arbitrary svg is by running a headless browser, with sandboxing and with a timeout.
lonjil
2023-06-12 11:11:05
JS is not allowed in SVGs in img elements
2023-06-12 11:11:23
So SVGs used on the web don't require JS to render.
_wb_
2023-06-12 11:12:46
even without JS it's complicated from a security pov — it's still Turing complete without JS, and it can reference external resources like CSS or external images iirc
2023-06-12 11:13:00
PDF has similar issues
spider-mario
2023-06-12 11:15:20
even without any JS or CSS, just by virtue of being XML, it can be used for the billion laughs attack
2023-06-12 11:17:36
over 10 years ago, some people I know on IRC used that to make a few, but not all, threads mysteriously crash on a certain forum by having such an SVG in their signature… 😂
Jyrki Alakuijala
2023-06-12 03:33:48
if something allows for wasm, perhaps wasm by itself would be more natural -- how large in bytes (with brotli compression) would be the smallest wasm that renders some graphics
acedent Don't you just love when the base64 encoding gives you a message~ "yAY"! ❤️
2023-06-12 03:35:00
ops, what a lost opportunity in designing the header text -- to think what it should look like in base64
_wb_
2023-06-12 03:43:43
semi-human-readable base64 header would be nice — or at least something that spells fun words in common cases 🙂
spider-mario
2023-06-12 04:17:33
can jxl be embedded in SVG the same way that JPEG can, actually?
2023-06-12 04:18:19
and can JS in SVG detect whether it works? (to include the fallback if not)
_wb_
2023-06-12 04:30:25
> Conforming SVG viewers need to support at least PNG, JPEG and SVG format files. https://www.w3.org/TR/SVG2/embedded.html#ImageElement
2023-06-12 04:31:04
so PNG and JPEG are guaranteed to work, but if you try anything else, it will likely also work if the browser supports it
2023-06-12 04:39:21
to detect whether it works, I suppose the JS could check the `width` and `height` attributes, since in combination with `preserveAspectRatio`, those would become different only if the intrinsic dimensions of the image are known, which would only be the case if the viewer can decode it https://www.w3.org/TR/SVG2/embedded.html#InterfaceSVGImageElement
2023-06-12 04:44:09
> Additionally SVG allows embedded content using HTML 'video', 'audio', 'iframe' and 'canvas' elements.
2023-06-12 04:44:54
so basically you can make an SVG that is just a web page (an iframe)
2023-06-12 04:46:23
basically SVG is just a variant of HTML where you can do everything HTML can do plus you can draw paths and shapes
Jyrki Alakuijala
2023-06-12 06:17:07
😄
yurume
_wb_ semi-human-readable base64 header would be nice — or at least something that spells fun words in common cases 🙂
2023-06-13 01:46:24
oh I totally did this for some formats I've designed myself, it's really fun.
lonjil
2023-06-15 05:14:58
Does anyone have manga scans in high quality? All I have are jpegs of questionable quality, not suitable to the testing I want to do.
spider-mario
2023-06-15 05:33:04
is Scrooge McDuck ok?
lonjil
2023-06-15 05:40:09
yeah
spider-mario
2023-06-15 05:43:07
2023-06-15 05:43:34
not sure if this is roughly what you are looking for
lonjil
2023-06-15 05:46:22
zoomed in an artefacting seems low so it's close to perfect
2023-06-15 05:48:02
thanks :)
derberg🛘
lonjil Does anyone have manga scans in high quality? All I have are jpegs of questionable quality, not suitable to the testing I want to do.
2023-06-15 09:32:06
Do you also need B/W manga (most manga is B/W)?
lonjil
derberg🛘 Do you also need B/W manga (most manga is B/W)?
2023-06-15 09:40:10
yeah
Quackdoc
lonjil Does anyone have manga scans in high quality? All I have are jpegs of questionable quality, not suitable to the testing I want to do.
2023-06-15 09:57:55
I just rip from mangadex, or if you want raw, itazuraneko
lonjil
2023-06-15 09:58:10
👍
2023-06-16 03:21:00
I found a conversation elsewhere from three years ago where people where complaining about this image format being called "JPEG" XL, and I apparently responded > maybe the name JXL will catch on
gb82
2023-06-17 06:37:57
https://jpegxl.info/comparison.png
2023-06-17 06:38:02
Doesn't AVIF support 12 bit?
2023-06-17 06:40:44
Also: https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types > WebP offers much better compression than PNG or JPEG with support for **higher color depths**, animated frames, transparency etc. This is just ... wrong, right?
2023-06-17 06:42:09
Oh I see, so he's sticking with the baseline profile because of the potential for support to be exclusive to that. Got it
_wb_
2023-06-17 07:31:00
It was just a guess of what the de facto avif would be. The bitstream limitations themselves are different from the actual limitations in practice: hevc can do 16-bit 444 but Apple's implementation of heic can only do 10-bit 420 so in practice that's the limit. JPEG can do 12-bit and lossless, but most implementations cannot do that so in practice it's limited to 8-bit and lossy. With avif they were talking a lot about hardware encode/decode, and I think those are mostly limited to 10-bit, so I put that as the "de facto" limit for avif. But for now, most deployments are still software and they can do 12-bit fine of course...
VcSaJen
2023-06-17 03:13:34
<@245794734788837387> <@146411656174501888> It seems like Waterfox tab crashes when trying to open this image: https://github.com/libjxl/conformance/raw/adc72250a19a735fe8dd2dfed22db64f87ce5448/testcases/cmyk_layers/input.jxl
spider-mario
2023-06-17 11:32:57
https://youtu.be/-UjJqwwMJc8 the animation in the first 15 seconds, to show a barchart of the results of a poll, is so over the top
2023-06-17 11:33:04
I love it
username
VcSaJen <@245794734788837387> <@146411656174501888> It seems like Waterfox tab crashes when trying to open this image: https://github.com/libjxl/conformance/raw/adc72250a19a735fe8dd2dfed22db64f87ce5448/testcases/cmyk_layers/input.jxl
2023-06-18 01:05:04
yeah CMYK JXLs have been crashing Waterfox for a while I assume it's due to a outdated version of libjxl which should be hopefully not be a problem any more in a month or so when ESR 115 of Firefox comes out
2023-06-18 01:06:07
if it isn't solved by that then something might be messed up with their compile process?
Traneptora
spider-mario https://youtu.be/-UjJqwwMJc8 the animation in the first 15 seconds, to show a barchart of the results of a poll, is so over the top
2023-06-18 01:12:07
professional animator go brrrrr
VcSaJen
username yeah CMYK JXLs have been crashing Waterfox for a while I assume it's due to a outdated version of libjxl which should be hopefully not be a problem any more in a month or so when ESR 115 of Firefox comes out
2023-06-18 02:37:08
It also crashes on this file. Pale Moon and Basilisk do not crash, but they mostly don't do any color management.
username
VcSaJen It also crashes on this file. Pale Moon and Basilisk do not crash, but they mostly don't do any color management.
2023-06-18 02:58:25
the fork of firefox here https://grass.moe/firefox/ doesn't have the crashing problems which is why I think it's just an issue with an outdated version of libjxl
spider-mario
spider-mario https://youtu.be/-UjJqwwMJc8 the animation in the first 15 seconds, to show a barchart of the results of a poll, is so over the top
2023-06-18 08:31:37
so many /r/ConfidentlyIncorrect comments (/r/SubredditsAsHashTags) trying to defend PNG
2023-06-18 08:31:48
> PNG can capture this (you call it "exposure") data as well, but the image format needs to support far more than just 8 bits per color channel, and 8bpc is what most tools default to if you are using PNG. Fortunately, PNG supports up to 64 bits per channel.
2023-06-18 08:32:21
> The only reason that your PNG format was clamping and not retaining the exposure is because it was set to 8bit while your EXR was set to 32. Both of this formats can handle 16 bit (way more than enough for anything you might want to do on a render, unless you need to work with data passes), which means that you can use png instead of exr.
2023-06-18 08:39:27
> The difference is 8bit vs 16bit files. The default PNG is set to 8bit which doesn't support values brighter than 1. > If you render 16bit PNG files, you can get the same results as with EXR.
_wb_
2023-06-18 09:14:37
Kind of cringe
Traneptora
2023-06-18 09:18:55
isn't the issue that EXR is fundamentally HDR
2023-06-18 09:19:18
also PNG doesn't support 64 bits per channel
_wb_
2023-06-18 09:42:11
EXR is float, which allows it to go out of 0..1 range; PNG is uint and is always implicitly in 0..1 range
2023-06-18 09:43:17
EXR has premultiplied alpha so you can have light-emitting pixels (RGB > A), PNG is always non-premultiplied
2023-06-18 09:45:17
16-bit int is probably enough precision even when using linear RGB, but it might be a bit tight when not using some tf to boost the dynamic range
2023-06-18 09:45:35
While floats kind of have an exponential tf built-in
spider-mario
2023-06-18 10:18:20
there is a very slight exception to “PNG is 0-1” and that’s if there is a cICP chunk signalling the use of narrow-range, in which case some overshoot is possible
2023-06-18 10:18:44
but that’s independent from 8- versus 16-bit, and my reaction in either case is “hell no”
jonnyawsom3
2023-06-18 11:08:32
I think the issue is people are misinterpreting the total bit depth as per channel, since if you choose 16 bit, then do RGBA, Windows will say it's a '64 bit PNG'
_wb_
2023-06-18 11:51:18
Yes, the confusion between bits per sample and bits per pixel is annoying
2023-06-18 11:52:00
8-bit PNG can mean 8-bit palette (8 bits per pixel) or 8-bit RGB (24 bits per pixel)
spider-mario
2023-06-18 11:53:37
I thought the former was mainly referred to as “indexed PNG”
jonnyawsom3
2023-06-18 12:09:56
Ohh, right, so that's what it means. I noticed indexed png on Krita but it just says "reduces size if supported" with no explanation
Traneptora
2023-06-18 02:26:46
if I hear 8-bit PNG I assume 8-bit-per-sample, unless someone explicitly says "indexed color" or "palette" or something of that form
_wb_
2023-06-18 02:41:52
Me too, but "PNG8" means indexed to me.
jonnyawsom3
2023-06-18 02:45:53
At the end of the day I check the file and try to figure it out myself
VEG
2023-06-18 08:54:23
Yeah, PNG8 usually means indexed PNG
_wb_
2023-06-19 05:53:19
https://twitter.com/dtinth/status/1670438696871501825?t=m5_PHiywxr37B2NknVVGDg&s=19
w
2023-06-19 06:00:12
flashbang is real
Quackdoc
_wb_ https://twitter.com/dtinth/status/1670438696871501825?t=m5_PHiywxr37B2NknVVGDg&s=19
2023-06-19 06:00:51
I hate stuff like this, while it's a neat usability gimmick, they can also be used to cause some serious pain, imagine on a display that can produce 1000+ nits, it's dark you have the lights off, and some page has a massive bright white image that tries to peak the display's brightness. this used to be really bad on ipads since it would blast the full 1.2k brightness at you regardless, now it's not so bad since it does get limited to a degree depending on the current brightness setting, but it's still in uncomfortable territory
w
2023-06-19 06:03:25
there are many other ways to make a visually painful website so I don't think this is that bad
_wb_
2023-06-19 06:03:37
if I would have designed QR codes, I would have made them invariant to flipping all bits, i.e. make inverted QR codes ("dark mode") also work. That should help to make it less bright
Quackdoc
w there are many other ways to make a visually painful website so I don't think this is that bad
2023-06-19 06:05:35
visually painful yes, but this was bad enough that it would cause lasting headaches on at least 3 people I know who tried it. I don't know if there is any potential for short term damage level, but it's certainly one of the worst gimmicks around
2023-06-19 06:05:45
well, eye aches
2023-06-19 06:07:12
and ofc, as displays try to push more and more nits, it can be worse and worse results if not properly dealt with
w
2023-06-19 06:07:55
I consider it one of the best gimmicks, to be able to reproduce light as it was recorded
Quackdoc
2023-06-19 06:09:48
I mean being able to exceed graphics white during normal use. I think when handled properly it will be fine, but until you fine tune normalization, I really don't think you should be able to randomly trigger HDR
2023-06-19 06:10:17
maybe even just one of those prompts in the webbrowser (IE. same as asking for recording perms)
w
2023-06-19 06:11:02
yeah but how else will you create an experience where everyone sees the exact same thing
Quackdoc
2023-06-19 06:12:41
I would consider not being able to cause physical harm to someone to a degree which justifies the use of painkillers far more important, I would go so far as to say the ability to do so is completely unacceptable. it;s not like this is a "stare at the webpage for 5 min and get a minor headache" this is a "I clicked one wrong button and in an instant I got flashed enough that I need to take painkillers to deal with the pain"
2023-06-19 06:12:53
it can actually hurt a lot
w
2023-06-19 06:14:08
what's more harmful is using low brightness dark mode lights off phone in bed
2023-06-19 06:14:44
and hdr bright seems to only be bad for this group
Quackdoc
2023-06-19 06:15:15
while I can't say much on that, it's still an extremely common use case.
2023-06-19 06:16:40
I would much prefer have a good normalization setup by default, and whenever content necessitates being able to play unrestricted (IE. focusing an image or playing a fullscreen video) it's warned at least on first time