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

coverage

Post links to articles, blog posts, reddit / hackernews / forum posts, media coverage about or related to JXL here!

Demiurge
2024-08-27 11:39:09
In the long run I think the avif format has a lot less potential.
CrushedAsian255
username there's a crowd of anti-JXL people who are like "You won't take away my PNGs and JPEGs!", do they realize that if it's not JXL then it's going to be something worse like WebP or AVIF?
2024-08-27 11:39:12
why do they still want to keep their JPEGs and PNGs, do they like having a full hard drive?
Demiurge In the long run I think the avif format has a lot less potential.
2024-08-27 11:39:22
JPEG XL's bitstream has more oppertunities for expansion
2024-08-27 11:39:42
also AVIF is fundamentally burdened by being a video delivery format first and foremost
Demiurge
2024-08-27 11:41:02
avif has a lot of disadvantages that in my opinion outweigh this, and a lot less potential for future improvement imo as well. But the fact is, as of right now, avif can make your images smaller while at the same time looking better than jxl at the same bitrate.
2024-08-27 11:41:12
At least, in my experience.
2024-08-27 11:41:49
In the long run jxl has a lot more advantages and potential though.
CrushedAsian255
Demiurge avif has a lot of disadvantages that in my opinion outweigh this, and a lot less potential for future improvement imo as well. But the fact is, as of right now, avif can make your images smaller while at the same time looking better than jxl at the same bitrate.
2024-08-27 11:42:14
i guess it's the whole "appeal" vs "fidelity" thing
Demiurge
2024-08-27 11:42:21
and avif is not designed for the future at all. Just like webp, it's thoughtless and sloppy
username
Demiurge Everyone hates new formats being introduced without good reason too. Plus recent versions of libaom have made some strides, and preserve details and colors much better than recent versions of libjxl in my experience, so that doesn't help things.
2024-08-27 11:42:53
a friend and I discovered that AVIF ends up tinting images red or green (commonly red) with the only found solution to encode AVIFs as 10-bit even if it's 8-bit content
Demiurge
2024-08-27 11:42:53
It's just video frames in an MP4 container
CrushedAsian255
Demiurge It's just video frames in an MP4 container
2024-08-27 11:43:14
which is worse, HEIC or AVIF?
Demiurge
CrushedAsian255 which is worse, HEIC or AVIF?
2024-08-27 11:43:25
It's the same thing.
CrushedAsian255
Demiurge It's the same thing.
2024-08-27 11:43:34
not quite
2024-08-27 11:43:37
HEIF is the base format
2024-08-27 11:43:41
HEIC is HEVC in HEIF
2024-08-27 11:43:45
AVIF is AV1 in HEIF
Demiurge
2024-08-27 11:44:07
you can use libheif for them all
2024-08-27 11:44:58
it's like asking me what's worse, jxl modular or jxl vardct
CrushedAsian255
2024-08-27 11:45:25
libheif needs bindings with the other formats
2024-08-27 11:45:46
``` > heif-dec --list-decoders HEIC decoders: - libde265 = libde265 HEVC decoder, version 1.0.15 VVIC decoders: AVIF decoders: - aom = AOMedia Project AV1 Decoder 3.9.1 <snip> ```
Demiurge
2024-08-27 11:45:48
sure, you need a codec library for whatever codec you're using
HCrikki
2024-08-27 11:45:57
worse is "lots of hardware supports avif!" shilling boys, av1 support doesnt bring avif or get avif accelerated at all. almost nothing uses hardware decoders for images due to latency
2024-08-27 11:46:10
heif is mostly a single frame of hevc. when used for lossy compression, it discards less detail than jpg
Demiurge
2024-08-27 11:46:56
yeah, avif decoding is done by a separate library...
username
2024-08-27 11:47:00
uh maybe y'all should make a thread or move to https://discord.com/channels/794206087879852103/805176455658733570 ?
Demiurge
2024-08-27 11:47:03
and usually using dav1d
username
username uh maybe y'all should make a thread or move to https://discord.com/channels/794206087879852103/805176455658733570 ?
2024-08-27 11:47:12
KKT
2024-08-27 06:34:50
This is kind of important in coverage though too. One of the reasons I was pushing for a new site was that we don't do a good job of marketing JXL as a solution. If anyone feels like writing an article or something about the issues with other options, this makes great content…
Meow
KKT This is kind of important in coverage though too. One of the reasons I was pushing for a new site was that we don't do a good job of marketing JXL as a solution. If anyone feels like writing an article or something about the issues with other options, this makes great content…
2024-08-27 07:26:30
We will see if Apple wants to do that marketing next month
CrushedAsian255
2024-08-27 09:05:43
Common misconceptions: "JPEG XL's spec is being sold" -> "JPEG XL is proprietary / non-free" "rANS may have been patented by Microsoft" -> "JPEG XL is owned by Microsoft" "AVIF is sometimes better than JPEG XL, notably for lower quality image" -> "JPEG XL is useless crud, we all should adopt AVIF" "JPEG XL is still new, so there isn't that much support" -> "nOT eNoUGh iNTeResT fRoM thE EcOSySteM"
2024-08-27 09:06:02
the last one is specifically targeted towards Google's Chrome Codec team
spider-mario
2024-08-27 09:35:01
people also seem to deny the support that is there
2024-08-27 09:35:14
I’ve seen this with webp, with some people claiming they haven’t seen any non-browser app support webp
2024-08-27 09:35:19
they clearly haven’t been paying attention
RaveSteel
2024-08-27 09:35:57
Does the default windows gallery support webp nowadays?
2024-08-27 09:36:06
Because that is what most people are using lol
CrushedAsian255
2024-08-27 09:40:04
MacOS supports it natively
2024-08-27 09:40:19
So does any competent system made after 2018
RaveSteel
2024-08-27 09:40:32
Yes, but we are talking about Windows here lmao
spider-mario
2024-08-27 10:40:25
yes, added last year to Windows 11
RaveSteel
2024-08-27 10:48:12
Nice. What about AVIF?
jonnyawsom3
2024-08-28 12:03:27
Both WebP and AVIF assuming you download the media packs from the store, but the imlementations are pretty damn slow...
Meow
2024-08-28 03:37:30
Clip Studio Paint finally supports WebP since version 3. It may support JPEG XL after 2035
2024-08-28 05:59:54
I don't know who the hell spread "JPEG-XL" from the beginning
2024-08-28 06:01:49
And then every other media who copied that all used it
CrushedAsian255
Meow And then every other media who copied that all used it
2024-08-28 07:26:29
I just call it JXL most of the time
Oleksii Matiash
CrushedAsian255 I just call it JXL most of the time
2024-08-28 07:43:13
Never 'jpeg xl'
CrushedAsian255
2024-08-28 07:43:43
Well “image.jpeg xl” is a bit wordy
Demiurge
2024-08-28 07:44:06
lossy jxl has a bad reputation especially in the anime community, I think every new release of libjxl should make a conscious point of highlighting any lossy quality improvements, with before-and-after pictures if possible even, to raise awareness that the codec is continually improving and the fidelity is getting better and the problems are getting fixed with smudging and color distortion.
CrushedAsian255
2024-08-28 07:44:54
For something like anime, wouldn’t lossy modular work better?
Demiurge
2024-08-28 07:45:08
That way it also gets picked up by tech news reporting on the update. If quality improvements are highlighted front and center in the release notes of every major release that is what the news outlets will report on.
CrushedAsian255
Demiurge That way it also gets picked up by tech news reporting on the update. If quality improvements are highlighted front and center in the release notes of every major release that is what the news outlets will report on.
2024-08-28 07:47:57
That sounds like a good idea
2024-08-28 07:48:05
More positive media the better
Demiurge
CrushedAsian255 For something like anime, wouldn’t lossy modular work better?
2024-08-28 07:51:53
of course modular is better for anime, but by default libjxl only uses modular for things like patches and DC I think.
CrushedAsian255
2024-08-28 07:52:39
Well they go insane with AV1 options, maybe there should be some kind of document explaining the best options for different images
2024-08-28 07:53:12
Maybe the people from <#840831132009365514> can help
HCrikki
Meow Clip Studio Paint finally supports WebP since version 3. It may support JPEG XL after 2035
2024-08-28 09:16:25
doubt. jxl as a format covers so much niceties i instead expect their inhouse format will switch to being jxl-based at some point. jxl itself is also ideal for webtoon-type comics (either sides can be reaaly long and it does progressive from at least top blocks to bottom if specific regions arent focused on first for decoding - ideal kind of lazyloading for such images)
_wb_
CrushedAsian255 I just call it JXL most of the time
2024-08-28 10:34:20
"JPEG XL" is the full name, but often spaces are inconvenient and shorter names are nicer, so then JXL or jxl works better. The IANA media type is `image/jxl` and the recommended filename extension is `.jxl` because having spaces or long strings for those things is not a good idea. It's a bit like "JPEG 2000" and J2K or j2k (except there they made it a bit messy with `jp2` and `jpx` and `j2k`).
spider-mario
2024-08-28 10:44:01
yeah, and jp2 sounds more like “JPEG 2” than “JPEG 2000”
2024-08-28 10:44:38
should the next format be called JPEG XL 3000? 🤔
Oleksii Matiash
2024-08-28 10:57:47
> JPEG XL 3000 ... Pro Max when impemented by Apple
Meow
2024-08-28 11:08:22
I'm waiting for JPEG Ultra
Cacodemon345
2024-08-28 11:11:58
The problem with JXL's niceties is that it winds up significantly reducing its appeal to lite-dependency programs. PNG retained its stronghold by being lossless by design and being easy to roll out custom implementations for decoding easily.
2024-08-28 11:12:51
JPEG XL is not very likely to break that stronghold for once.
_wb_
spider-mario yeah, and jp2 sounds more like “JPEG 2” than “JPEG 2000”
2024-08-28 11:24:57
J2K *is* kind of JPEG 2, in the sense that it was the second major codec by the JPEG committee.
CrushedAsian255
2024-08-28 11:33:13
is JPEG XL kinda JPEG 4? XR would probably be JPEG 3, XT is kinda JPEG 1 rev. 2 and XS is it's own thing entirely (JPEG - LD (Low anyone?)
2024-08-28 11:33:42
or in USB speech, JPEG 1 is JPEG 1.1 Gen 1 and JPEG XT is Jpeg 1.1 Gen 2
RaveSteel
2024-08-28 11:36:26
Please not the USB nomenclature smh xd
Oleksii Matiash
CrushedAsian255 or in USB speech, JPEG 1 is JPEG 1.1 Gen 1 and JPEG XT is Jpeg 1.1 Gen 2
2024-08-28 11:36:45
Oh, please, no, do not start this USB versioning 🤦‍♂️ USB 3.0 rev 2, USB 3.1, etc
2024-08-28 11:37:14
Only the SD naming could be worse than USB
CrushedAsian255
2024-08-28 11:37:23
JPEG XL is now JPEG 2.4 Gen 4x8 Rev. 2.1
RaveSteel
2024-08-28 11:37:32
Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
CrushedAsian255
2024-08-28 11:37:44
who doesn't love some terrible naming conventions
Oleksii Matiash
CrushedAsian255 JPEG XL is now JPEG 2.4 Gen 4x8 Rev. 2.1
2024-08-28 11:37:55
XC UHS-1 V30
RaveSteel
2024-08-28 11:37:57
Tech companies certainly do lmao
CrushedAsian255
2024-08-28 11:38:56
me when C10 V10 U1
2024-08-28 11:39:08
they're EXACTLY THE SAME THING
2024-08-28 11:39:09
arghh
Oleksii Matiash
CrushedAsian255 they're EXACTLY THE SAME THING
2024-08-28 11:40:45
Instead of 2 (3) clear numbers that immediately tells everything about card speed
CrushedAsian255
2024-08-28 11:42:31
after all why not? why don't we need ~~3~~ 4 (5?) different ways of indicating speed
2024-08-28 11:42:57
SD express 4.0 x2 have a max of 3,938 MB/s
2024-08-28 11:43:03
why not just an SSD at this point
RaveSteel
CrushedAsian255 why not just an SSD at this point
2024-08-28 11:43:18
They are connected via PCIe
CrushedAsian255
RaveSteel They are connected via PCIe
2024-08-28 11:43:23
i know
RaveSteel
2024-08-28 11:43:30
Not the SSDs I mean, but the memory cards
CrushedAsian255
2024-08-28 11:43:40
that's what the "express" means
RaveSteel
2024-08-28 11:43:53
Some guy on DPreview.com connected an 8TB nvme ssd to his camera lol
CrushedAsian255
2024-08-28 11:43:55
i'm saying if the SD card is connecting over PCIe, why not just use an SSD
RaveSteel Some guy on DPreview.com connected an 8TB nvme ssd to his camera lol
2024-08-28 11:44:24
i would prefer that over an 8tb microSD-UC Express
RaveSteel
2024-08-28 11:45:07
Software RAID in cameras when?
CrushedAsian255
2024-08-28 11:45:56
nah, im putting 4 sd cards in my camera and RAID 5 ing them
RaveSteel
2024-08-28 11:46:33
RAID0 or bust
CrushedAsian255
2024-08-28 11:46:44
imagine a RAID 0 of 128 drives
2024-08-28 11:46:52
no erasure coding, nothing
2024-08-28 11:46:57
just pure raid 0
RaveSteel
2024-08-28 11:47:02
Who needs data security anyways
CrushedAsian255
2024-08-28 11:47:22
i bet the ssd is faster, more reliable, and in general better
RaveSteel
2024-08-28 11:47:53
The portable Sandisks on the right have a rather high failure rate it seems
CrushedAsian255
2024-08-28 11:48:17
umm, i have one
2024-08-28 11:48:18
uhh
RaveSteel
2024-08-28 11:48:21
Same lol
CrushedAsian255
2024-08-28 11:48:23
lemme go run a backup
jonnyawsom3
spider-mario should the next format be called JPEG XL 3000? 🤔
2024-08-28 11:48:34
JPEG XL with 3000 Xs
CrushedAsian255
2024-08-28 11:48:38
also fine take a samsung
2024-08-28 11:48:43
RaveSteel
JPEG XL with 3000 Xs
2024-08-28 11:48:47
JPEG XXL
CrushedAsian255 just pure raid 0
2024-08-28 11:49:30
CrushedAsian255
2024-08-28 11:49:35
JPEG's official merchandise sizes: XS and XL
RaveSteel
2024-08-28 11:50:23
just use a raid 6, PLEASE
2024-08-28 11:50:37
the 25% storage capacity downgrade is so much better
2024-08-28 11:51:02
or some other thing idk storage best practice
2024-08-28 11:51:14
i just have my computer backup to raid1 NAS and cloud
2024-08-28 11:51:25
raid1 nas has 2 drives
RaveSteel
2024-08-28 11:51:34
If it doesn't make your heart beat at unhealthy speeds every time you think about it then I don't want it <:kekw:808717074305122316>
CrushedAsian255
2024-08-28 11:51:58
i have a bunch of old USB sticks
2024-08-28 11:52:02
just slap them into a RAID 0
jonnyawsom3
RaveSteel If it doesn't make your heart beat at unhealthy speeds every time you think about it then I don't want it <:kekw:808717074305122316>
2024-08-28 11:52:18
That's my GPU currently, fan bearing is shot so if it goes above idle it vibrates my computer apart
CrushedAsian255
2024-08-28 11:52:22
like a pack of 5 8gb from 5 years ago
RaveSteel
CrushedAsian255 just slap them into a RAID 0
2024-08-28 11:52:29
LTT once made a video about MicroSD card RAID lol
CrushedAsian255
RaveSteel LTT once made a video about MicroSD card RAID lol
2024-08-28 11:52:36
i think i remember that
RaveSteel
2024-08-28 11:52:41
Was (very obviously) not viable lmao
CrushedAsian255
2024-08-28 11:52:44
imagine the failure rate
2024-08-28 11:52:57
swapping cards every few days i would imagine
RaveSteel
2024-08-28 11:53:10
SMART is overrated anyways, no one needs that for SD cards, for sure
CrushedAsian255
2024-08-28 11:53:43
why is it called SMART? it pretty DUMB
2024-08-28 11:53:46
LMAO GOTTEM
RaveSteel
2024-08-28 11:53:48
trueeeeeeeeeee
CrushedAsian255 like a pack of 5 8gb from 5 years ago
2024-08-28 11:54:57
I had around 800 2GB usb sticks at my disposal once, but those thing literally had a 30% of not working straight out of the box
CrushedAsian255
2024-08-28 11:55:15
im getting ChatGPT to write the worst possible backup plan
2024-08-28 11:55:17
just to see what happens
RaveSteel
2024-08-28 11:55:57
Encode your data in QR codes as stickers and slap them redundantly in multiple places in your city lmao
2024-08-28 11:56:28
Encrypted of course, wouldn't want random people to get your data [BigBrain](https://cdn.discordapp.com/emojis/615775892177944627.webp?size=128&quality=lossless&name=BigBrain)
jonnyawsom3
2024-08-28 11:56:53
Raid 0 QR code storage
CrushedAsian255
2024-08-28 11:57:16
Certainly! Here's a single paragraph that combines all the worst practices into one epic disaster of a backup plan: In the ultimate terrible backup setup, your primary data and sole backup are stored on the same aging, unreliable hard drive, which you never replace or upgrade. The backup is additionally recorded on a worn-out floppy disk, left openly on your desk, and uploaded to a public cloud service without encryption. The backup process is managed manually every five years, using a drag-and-drop method that often misses important files and overwrites data. You also back up files while they’re actively being edited, leading to corrupted and incomplete backups. Neither the hard drive nor the floppy disk is protected by a UPS, so power outages or surges risk data corruption. The floppy disk is further outdated by being accompanied by a VHS tape backup that you can’t even access due to a lack of a working VHS player. No checks or verifications are performed on any of the backups, and the setup is vulnerable to malware because the backup program doesn’t scan for viruses, meaning any infection on your primary system is copied to the backup. To top it all off, only the most recent versions of files are kept, erasing all previous versions and making it impossible to recover older data. Everything is stored in the same open drawer, exposing it to physical damage, theft, or spills.
Raid 0 QR code storage
2024-08-28 11:57:58
in all seriousness i have my master password on a laminated QR code somewhere that i'm not saying for obvious reasons
jonnyawsom3
2024-08-28 11:58:26
But anyway, maybe a bit <#806898911091753051>
CrushedAsian255
2024-08-28 11:58:30
yeah
RaveSteel
2024-08-28 11:58:33
yeah
CrushedAsian255
2024-08-28 11:58:35
everyone to <#806898911091753051>
_wb_
2024-08-28 02:02:50
I still don't actually know who came up with the name JPEG XL originally. I think it was just an "engineer joke" to contrast with JPEG XS, where the S is for Speed but also for Small in the sense of "low circuit complexity" and "simple" (i.e. sacrificing compression and features for latency/speed), while JPEG XL would be allowed to be a "big" codec with many coding tools and features and the best possible complexity. But people have also told me the L is for "long-term", as in "a successor for JPEG 1 that will last another 30+ years". Fact is that the name was already there before there was a call for proposals and before I got involved.
jonnyawsom3
2024-08-28 02:41:47
I mean if <@162416815530704896> feels like making a follow-up with new info that we can provide, like the patches and splines, JXL art, mixed lossless/lossy images based on content, ect then going through the various meanings of the name could be something to talk about
3kliksphilip
2024-08-28 02:42:14
what's the software I should use to convert JPEG's to JXL's and back again
2024-08-28 02:42:25
and which best represents JXL's compression capabilities?>!?!?!?!?
jonnyawsom3
2024-08-28 02:43:38
Currently that would be cjxl from the Github https://github.com/libjxl/libjxl/releases/tag/v0.10.3
2024-08-28 02:43:54
Although there should be a 0.11 release when people are back from holidays
username
2024-08-28 02:48:21
cjxl is just the encoder so you would need *both* cjxl and djxl to convert between JPEG and JXL, also they are CLI based tools but if you fancy a GUI there is this https://github.com/kampidh/jxl-batch-converter
jonnyawsom3
2024-08-28 02:51:45
The issue with most software like photoshop, ect is that they decode the jpegs to pixels, when for the direct transcode, JXL needs the raw jpeg data instead
3kliksphilip
2024-08-28 03:05:26
what's the best way of viewing jpegxl files in windows?
username
2024-08-28 03:09:03
in what form? like what software opens/renders them the best or what integrates the best with Windows?
2024-08-28 03:09:12
ill go make a quick list of some options
LMP88959
2024-08-28 03:12:53
iirc irfanview on windows has a jxl plugin
username
2024-08-28 03:21:28
- [jxl-winthumb](https://github.com/saschanaz/jxl-winthumb): a WIC codec for Windows which makes any software that loads system installed third party WIC codecs receive JXL viewing/opening support such as the classic Windows Photo Viewer (the modern app refuses to load other WIC codecs so that doesn't work and sadly the classic viewer suffers from some weird issue of making dark areas that look fine in other JXL software look bad). - [JPEGView](https://github.com/sylikc/jpegview): a image viewer with support for a bunch of image formats including JXL. note you might have to enable `UseEmbeddedColorProfiles` or something in the .ini for stuff to look correct. - [Thorium](https://thorium.rocks/): This is a fork of Chromium with JXL support fully restored and it's your best bet for viewing JXL files (especially HDR ones) if you don't care about opening a whole browser just to view images.
2024-08-28 03:26:31
feel free to ask any other questions!
jonnyawsom3
LMP88959 iirc irfanview on windows has a jxl plugin
2024-08-28 03:27:32
<https://www.irfanview.com/> Although color management isn't enabled by default either, so you'd probably want to check that in the settings
Oleksii Matiash
<https://www.irfanview.com/> Although color management isn't enabled by default either, so you'd probably want to check that in the settings
2024-08-28 03:37:55
It does not work if jxl is in anything but srgb. For avif's it works even worse, though
RaveSteel
2024-08-28 03:45:56
nomacs for Windows has jxl support I believe
HCrikki
3kliksphilip what's the best way of viewing jpegxl files in windows?
2024-08-28 05:55:29
xnviewmp. enable color management, associate files and youre set. usable for exporting too (jxl library soon to be updated for big gains)
Geniusak
3kliksphilip what's the best way of viewing jpegxl files in windows?
2024-08-28 09:17:57
https://imageglass.org/ is nice photo viewer
KKT
2024-08-30 02:30:18
Accidental Tech Podcast just did a whole section on JPEG XL: https://atp.fm For those of you not Apple fans, this is probably the most influential podcast on the subject… I have some connections so I'll see if I can follow up with them.
RaveSteel
KKT Accidental Tech Podcast just did a whole section on JPEG XL: https://atp.fm For those of you not Apple fans, this is probably the most influential podcast on the subject… I have some connections so I'll see if I can follow up with them.
2024-08-30 07:02:41
Timestamp?
_wb_
2024-08-30 07:23:45
1h02m30s is where the bit on jxl starts, I just found it 🙂
RaveSteel
2024-08-30 07:58:53
Thanks
CrushedAsian255
2024-08-30 09:48:16
https://www.cultofmac.com/news/jpeg-xl-iphone-new-photo-format-explained Kinda nonstandard to say Apple added support in the camera app when it’s just a Rumour
RaveSteel
KKT Accidental Tech Podcast just did a whole section on JPEG XL: https://atp.fm For those of you not Apple fans, this is probably the most influential podcast on the subject… I have some connections so I'll see if I can follow up with them.
2024-08-30 10:12:14
It would be quite nice if JXL replaced HEIF, this format is barely supported outside of MacOS
Meow
RaveSteel It would be quite nice if JXL replaced HEIF, this format is barely supported outside of MacOS
2024-08-30 10:23:05
Safari even wasn't able to open .heic until version 17
RaveSteel
2024-08-30 10:24:54
It is/was essentially a DOA format with no adoption, which hasn't changed in the last few years
lonjil
RaveSteel It would be quite nice if JXL replaced HEIF, this format is barely supported outside of MacOS
2024-08-30 10:27:45
Most Android phones support it
RaveSteel
2024-08-30 10:31:46
While that may be the case, where are you going to get an HEIF image from? They have no presence in the web and Android camera apps do not produce HEIF. And iPhones (correct me if I'm worng here) automatically converts heic to jpg if sent over a messenger, while bluetooth does not work at all for sending from iOS to Android.
2024-08-30 10:39:31
I just had a look at some heic files from an iPhone and it seems the iPhone exclusively produces yuvj420 heic files?
lonjil
2024-08-30 10:39:52
Samsung's camera app can save HEIF files
RaveSteel
2024-08-30 10:41:22
Huh, you are right. I never noticed because I exclusively shoot in pro mode, where heif is not supported
Meow
RaveSteel While that may be the case, where are you going to get an HEIF image from? They have no presence in the web and Android camera apps do not produce HEIF. And iPhones (correct me if I'm worng here) automatically converts heic to jpg if sent over a messenger, while bluetooth does not work at all for sending from iOS to Android.
2024-08-30 11:13:02
https://formulae.brew.sh/formula/libheif <:PepeOK:805388754545934396>
2024-08-30 11:14:53
jonnyawsom3
KKT Accidental Tech Podcast just did a whole section on JPEG XL: https://atp.fm For those of you not Apple fans, this is probably the most influential podcast on the subject… I have some connections so I'll see if I can follow up with them.
2024-08-30 11:40:48
Hearing them say "It needs to get on MacOS" having already been added for a year hurt a little. Maybe we should look into restructuring the Wikipedia page. Moving the Apple support into the history section where the Chrome removal is listed
RaveSteel
Meow https://formulae.brew.sh/formula/libheif <:PepeOK:805388754545934396>
2024-08-30 11:45:12
Some interesting options in libheif ``` -A, --avif encode as AVIF (not needed if output filename with .avif suffix is provided) --vvc encode as VVC (experimental) --jpeg encode as JPEG --jpeg2000 encode as JPEG 2000 (experimental) --htj2k encode as High Throughput JPEG 2000 (experimental) ```
sklwmp
RaveSteel While that may be the case, where are you going to get an HEIF image from? They have no presence in the web and Android camera apps do not produce HEIF. And iPhones (correct me if I'm worng here) automatically converts heic to jpg if sent over a messenger, while bluetooth does not work at all for sending from iOS to Android.
2024-08-31 02:47:09
When I transfer files via cloud storage because I insist on the highest quality, I'm pretty thankful that Google Photos can load HEIF files from iOS, though it is a bit slow to process.
2024-08-31 02:47:32
Hope this pushes Android into supporting JXL as well
CrushedAsian255
2024-08-31 04:00:41
it's google so im not holding my breath personally
Quackdoc
2024-08-31 04:02:16
start reporting issues to your phone manufacturers that you can't view the images your family and friends are sending you
HCrikki
2024-08-31 11:42:26
decoding jxl is a safe feature to add for preinstalled phone gallery apps
jonnyawsom3
2024-08-31 02:55:25
Just a tweet, but it's something https://x.com/t3dotgg/status/1829361633614840168
Meow
Just a tweet, but it's something https://x.com/t3dotgg/status/1829361633614840168
2024-08-31 03:04:39
Comments are more interesting
2024-08-31 03:07:04
Just found that's a 10-bit image
CrushedAsian255
Meow Just found that's a 10-bit image
2024-08-31 03:08:01
Probably helps with the internal gradients being more smooth
Meow Comments are more interesting
2024-08-31 03:08:28
“AVIF might be even tinier”
2024-08-31 03:09:21
Also that guy saying “WRONG” when they downloaded it as a PNG
RaveSteel
2024-08-31 03:09:30
Clown fr
CrushedAsian255
2024-08-31 03:10:09
Because we all know PNG has an equally powerful MA predictive tree
Fox Wizard
2024-08-31 03:10:15
Sometimes it feels like reading Twitter comments is the best way to speedrun losing brain cells
CrushedAsian255
2024-08-31 03:10:56
Mainly because these people have no idea what they’re actually talking about
2024-08-31 03:11:11
“that can't be true because i screenshotted the image and its definitely more than 34 bytes”
Fox Wizard
2024-08-31 03:11:29
I think that one's meant to be a joke <:KekDog:884736660376535040>
Meow
2024-08-31 03:12:30
Unfortunately Squoosh can't decode that JXL
CrushedAsian255
2024-08-31 03:12:42
Also this guy has never ever heard of the term “procedural generation”
Meow
2024-08-31 03:14:45
Oops
2024-08-31 03:15:37
Oh it can still be opened correctly
CrushedAsian255
2024-08-31 03:16:06
MacOS crapping it’s pants with AVIF?
Meow
2024-08-31 03:16:23
djxl generated a 16-bit PNG, and avifenc generated a 12-bit AVIF from it
2024-08-31 03:19:21
Funny that heif-enc turned it back to 10-bit
CrushedAsian255
2024-08-31 03:20:52
Does HEIC support 12 bit?
username
2024-08-31 03:21:19
iirc HEIC only goes up to 10 bit
Meow
2024-08-31 03:21:26
I meant from 16-bit PNG to 10-bit HEIC
damian101
CrushedAsian255 Does HEIC support 12 bit?
2024-08-31 05:52:05
yes
_wb_
2024-08-31 06:59:18
Technically, it's a bit ambiguous what exactly "HEIC" means
2024-08-31 07:00:21
The file extension .heic and media type image/heic can be either the heic brand or the heix brand.
2024-08-31 07:01:40
The heic brand is only 8-bit 4:2:0. The heix brand can go up to 16-bit 4:4:4.
2024-08-31 07:02:35
I don't think Apple devices support the heix brand though. I think they're restricted to the heic brand.
lonjil
2024-08-31 07:08:44
but everyone calls the format HEIF anyway
spider-mario
2024-08-31 07:38:11
which technically encompasses AVIF
Meow
_wb_ Technically, it's a bit ambiguous what exactly "HEIC" means
2024-08-31 07:59:24
What does that "any" mean?
Quackdoc
2024-08-31 08:00:35
any means any
2024-08-31 08:00:46
~~dump whatever cursed format you want into it~~
_wb_
2024-08-31 09:02:49
HEIF can contain hevc, but also h264, jpeg, JPEG 2000, AV1, etc.
Quackdoc
2024-08-31 09:04:24
\> vp9 heif
2024-08-31 09:04:26
[av1_monkastop](https://cdn.discordapp.com/emojis/720662879367332001.webp?size=48&quality=lossless&name=av1_monkastop)
2024-08-31 09:04:51
a truly cursed combo
_wb_
2024-08-31 09:13:12
I have on a few occasions had to decline the proposal to define a jxl payload for HEIF. It would be a silly extra container with no new functionality, so it would be pointless, and it would just add confusion.
lonjil
2024-08-31 09:17:40
why is the format called "C" and the container called "F"? :(
spider-mario
2024-08-31 09:19:39
I suspect they consider the container the “format”, and then “C” for “codec”
_wb_
2024-08-31 10:19:42
I always assumed the C came from hevC
CrushedAsian255
_wb_ I always assumed the C came from hevC
2024-09-01 01:32:26
That’s what I thought as well
Meow
_wb_ I have on a few occasions had to decline the proposal to define a jxl payload for HEIF. It would be a silly extra container with no new functionality, so it would be pointless, and it would just add confusion.
2024-09-01 04:23:36
JXL disguised as .heic looks innovative
_wb_
2024-09-01 04:24:49
Well it would be .heif, or maybe .heixl or whatever. Anyway, it's a bad idea.
Quackdoc
Meow JXL disguised as .heic looks innovative
2024-09-01 04:27:32
this ought to be classified as a crime against humanity
CrushedAsian255
2024-09-01 04:37:18
sounds like something Apple would do
_wb_ Well it would be .heif, or maybe .heixl or whatever. Anyway, it's a bad idea.
2024-09-01 04:44:31
`.hexl`?
Demiurge
2024-09-01 05:37:35
Would HEIF be a good way for a phone to store multiple versions of the same file? Like when you crop/edit an image and you have the option to revert edits.
2024-09-01 05:37:49
Is that a valid use of HEIF container on JXL?
_wb_
2024-09-01 06:43:58
You can in principle do reversible cropping in jxl directly too, by just manipulating the headers.
jonnyawsom3
2024-09-01 07:29:16
Or storing the original as an extra layer. Although that reminded me of the idea of adding disable options to djxl, for things like ISO noise, so you can get the clean pixels back out
CrushedAsian255
Or storing the original as an extra layer. Although that reminded me of the idea of adding disable options to djxl, for things like ISO noise, so you can get the clean pixels back out
2024-09-02 05:13:33
is ISO noise deterministic or random?
2024-09-02 05:13:40
as in does it decode the same each time?
monad
2024-09-02 05:15:07
that's a philosophical question
CrushedAsian255
2024-09-02 05:15:16
to decode or not to decode
2024-09-02 05:15:18
that is the question
monad
2024-09-02 05:20:38
theoretically it's deterministic as defined in the spec
Tirr
2024-09-02 05:27:13
it uses pseudo RNG and its state is encoded in the bitstream
CrushedAsian255
2024-09-02 05:31:44
That makes sense
2024-09-02 05:32:21
So the whole decode process is deterministic?
2024-09-02 05:32:46
As in the same JXL will always decode to the same ppm/whatever?
Tirr
2024-09-02 05:38:44
it's allowed to have slightly different decoded images within error margin defined by the spec, but basically yes
CrushedAsian255
2024-09-02 06:01:50
So excluding floating point nonsense, it’s the same, also is this only for VarDCT?
Tirr
2024-09-02 06:06:10
yeah, lossless should be lossless
CrushedAsian255
2024-09-02 06:18:38
What about lossy modular?
2024-09-02 06:18:56
Or is that still considered “lossless”
Demiurge
_wb_ You can in principle do reversible cropping in jxl directly too, by just manipulating the headers.
2024-09-02 06:41:05
Not exactly. Let's say you store edits on a separate layer, or crop certain layers. Is there a way to mark/distinguish those changes as "post-edits" that make sense to change/revert/remove, rather than image coding tools that form an essential part of the image (like patches etc)
CrushedAsian255
2024-09-02 06:42:10
Maybe as another box?
2024-09-02 06:42:20
<:JXL:805850130203934781> 📦
Demiurge
2024-09-02 06:47:21
There would have to be a way to distinguish post-editing from essential image data in order for the edits to be reverted, and I think it would be ambiguous since the format encourages the use of image decomposition with splines, patches, modular layers, etc
CrushedAsian255
2024-09-02 06:52:31
Is there any room in the code stream for extra signalling?
2024-09-02 06:53:02
If so , you could tag a layer as “finalised original” and all edits on top could be patches or something
2024-09-02 06:53:35
Or have some kind of edit list in the metadata
Demiurge
2024-09-02 06:55:44
Unless there's a better way, there's always a vendor specific box for designating optional image data and un-cropping instructions
2024-09-02 06:56:27
It's called the whatever-you-feel-like vendor box
CrushedAsian255
2024-09-02 07:04:49
Only thing with vendor specific is that it’s not standardised
2024-09-02 07:06:38
Are there no clipping bounds defined in the codestreams?
_wb_
2024-09-02 09:40:45
Layers can have names, I guess you could use a naming convention to distinguish "post-edit" layers
2024-09-02 09:43:08
There are the image dimensions in the image header, and then there is the frame dimension and crop offset defined in the frame header (by default the same as the image dimensions and no offset). You can keep the frame data intact and do a crop by changing the image header and the crop offset.
Reclezon
_wb_ Technically, it's a bit ambiguous what exactly "HEIC" means
2024-09-02 09:07:26
... Wdym? Is it not actually "High Efficiency Image Codec"? I swear I saw that in a few articles...
CrushedAsian255
2024-09-03 02:33:58
https://youtu.be/pFNmS_HZ2Zs?si=QbN6q9Yt-qSMahAB
2024-09-03 02:36:18
Umm what
2024-09-03 02:36:21
2024-09-03 02:36:34
So guys modular mode has been snapped of the face of the earth I’m afraid
2024-09-03 02:38:37
Phew someone corrected him
Quackdoc
CrushedAsian255
2024-09-03 02:39:45
thanos why [pepehands](https://cdn.discordapp.com/emojis/1075509930502664302.webp?size=48&quality=lossless&name=pepehands) this is not the balance we needed
CrushedAsian255
2024-09-03 02:40:16
A lot of hot takes in general
jonnyawsom3
Just a tweet, but it's something https://x.com/t3dotgg/status/1829361633614840168
2024-09-03 02:41:39
He might wanna get that amnesia checked out
CrushedAsian255
2024-09-03 02:46:41
His whole argument is “JPEG XL uses too much CPU”
jonnyawsom3
2024-09-03 02:49:38
Skipped to the end to see his full comparison
2024-09-03 02:50:24
Would've at least given it some dashes instead of crosses
CrushedAsian255
2024-09-03 02:54:52
Also JPEG XL is not just for web delivery
username
2024-09-03 02:56:55
he also falls into the trap of thinking Google is a hivemind
Quackdoc
Skipped to the end to see his full comparison
2024-09-03 02:56:56
bro is just like me and testing JXL on a 2000 era dual core 1ghz netbook
jonnyawsom3
2024-09-03 02:58:14
I should go dig up the results of that again
2024-09-03 02:59:37
The funny thing is, as I try to fullscreen the video, the AV1 decoding is so CPU intensive that it takes a few seconds for the UI to load
CrushedAsian255
2024-09-03 03:04:44
Also I bet the CPU behind all the crap bloat websites have probably outweighs the CPU cost of any image format
jonnyawsom3
2024-09-03 03:05:54
He seems to understand the mistakes he's making, but puts no effort into correcting them. As he puts SVG as an entry he says "This one's gonna be kinda weird to put in..."
CrushedAsian255
2024-09-03 03:06:45
Vector vs raster is such an apples to oranges thing to do
username
2024-09-03 03:07:25
I watched the majority of the video (start to end at 1.5x speed while skipping forward) and it's pretty much just him just making assumptions about a bunch of stuff while reading off of articles and comments
CrushedAsian255
2024-09-03 03:08:05
Also not quite actually understanding the tech
username
2024-09-03 03:08:40
the video started off strong with him stating that AVIF is awful or something and then the rest is just a edited down livestream that feels like it goes nowhere
CrushedAsian255
2024-09-03 03:09:18
Also JPEG XL has —faster_decoding
2024-09-03 03:09:22
If that’s such a big problem
2024-09-03 03:09:32
(But it’s not really)
jonnyawsom3
2024-09-03 03:09:48
It's a livestream made to look professional, so you belive the facts when they're actually just comments and ideas
lonjil
CrushedAsian255 https://youtu.be/pFNmS_HZ2Zs?si=QbN6q9Yt-qSMahAB
2024-09-03 03:41:05
> Theo - t3.gg Oh this person... His whole job is having uninformed tech takes
monad
2024-09-03 04:08:18
lossy
username
2024-09-03 04:09:22
lossy PNG is kind of a made up thing though
monad
2024-09-03 04:09:25
only by interpretation
CrushedAsian255
2024-09-03 04:14:42
Lossy PNG is more like near lossless WebP IIRC
monad
2024-09-03 04:14:59
it can be as lossy as you want
2024-09-03 04:15:56
as in, throw out as much data as you want before losslessly encoding the remaining data
_wb_
2024-09-03 06:45:08
Some non-technical people use the word "compression" for "introduces artifacts". I guess they might be thinking of electric guitar effect pedals.
2024-09-03 07:12:26
I had to stop watching this video. First part is OK, but when he goes to the codec benchmarks done by the AVIF team (which are flawed to begin with already) and then adds a solid dose of extra confusion and misinterpretation to those already-flawed plots, it got too cringe for me to keep watching.
yoochan
2024-09-03 07:21:52
don't you want to partner with a famous youtuber and brief him BEFORE he make the video instead of after 😄
_wb_
2024-09-03 07:27:49
It's kind of nuts how he is just assuming that jxl decoding comes at a huge CPU cost just because the compression rate of jxl art is insane so the amount of work the decoder has to do per compressed byte must be enormous.
2024-09-03 07:33:21
If you want to make decode speed the main point of criticism, then at least do a proper speed benchmark. Then you'll see that for web images, basically jpeg, webp, avif and jxl all decode fast enough even on relatively old hardware - even old phones can easily decode a few screenfulls of image data in the blink of an eye, in any of those formats. It's just not a big issue.
CrushedAsian255
_wb_ Some non-technical people use the word "compression" for "introduces artifacts". I guess they might be thinking of electric guitar effect pedals.
2024-09-03 07:56:05
dynamic range compression?
Oleksii Matiash
yoochan don't you want to partner with a famous youtuber and brief him BEFORE he make the video instead of after 😄
2024-09-03 07:56:42
If famous youtuber does not bother understanding what he is talking about, I believe it is not worth it
CrushedAsian255
2024-09-03 07:57:09
so yeah, technically JPEG XL does use "more CPU" but in the grand scheme of things, a few million extra calculations on multi-gigaherz + multicore + pipelineing CPUs really means nothing, oh no my image took 53 microseconds longer
Oleksii Matiash If famous youtuber does not bother understanding what he is talking about, I believe it is not worth it
2024-09-03 07:57:25
famous youtuber loves making hot takes without understanding them
_wb_
Skipped to the end to see his full comparison
2024-09-03 07:58:53
Putting an X at "Performant (CPU wise)" for jxl is the only major problem I have with this diagram. That and making all the fields just binary, which doesn't really help. I would say general software support for jxl is not that bad, all things considered, and for lossless and lossy compression you can bring a lot more nuance if you don't just consider them boolean things that a codec can either do or not.
CrushedAsian255
2024-09-03 07:59:45
like yes, JPEG and AVIF can both do "compression"
2024-09-03 07:59:48
what the heck is that meant to mean though
Oleksii Matiash
CrushedAsian255 famous youtuber loves making hot takes without understanding them
2024-09-03 08:00:02
It is his own choice, but it also forces me to ignore him 🤷‍♂️
yoochan
Oleksii Matiash It is his own choice, but it also forces me to ignore him 🤷‍♂️
2024-09-03 08:04:21
you ignore him but many don't and the information spread (even if biased of false) will be spread farther and faster than any truth... that's why we could/should preemptively communicate at large scale
CrushedAsian255
2024-09-03 08:04:36
JPEG XL doesn't need more anti-jxl media, google's doing enough of that
monad as in, throw out as much data as you want before losslessly encoding the remaining data
2024-09-03 08:05:06
it's not only lossless, but I removed the noise as well!
_wb_
CrushedAsian255 so yeah, technically JPEG XL does use "more CPU" but in the grand scheme of things, a few million extra calculations on multi-gigaherz + multicore + pipelineing CPUs really means nothing, oh no my image took 53 microseconds longer
2024-09-03 08:06:11
You can use a subset of jxl (say, effort 3 vardct) that has the exact same computational complexity as jpeg, except it can be decoded with multithreading. Of course you can also use fancier coding tools and make a jxl that will require more CPU to decode than jpeg, but it will be hard to get cjxl to create a vardct image that fits on your screen and takes a noticeable time to decode.
CrushedAsian255
2024-09-03 08:07:00
im guessing there is no `--slower_decode` option
2024-09-03 08:07:08
as that would just be dumb
_wb_
2024-09-03 08:09:24
You can do lossless at high effort with -E 3 -g 3, that will be about as slow as it gets and that can get in the range where it takes a full second to decode a screenfull of image. But just don't put something like that on your webpage.
2024-09-03 08:52:15
Did a quick and dirty speed comparison (just one image, similar quality across codecs, default encode settings): https://docs.google.com/spreadsheets/d/1U4VZzbLQJuEa4iRk52pFLkWnBIRlUIQw7paBQNjq-RU/edit?usp=sharing
2024-09-03 08:52:28
CrushedAsian255
2024-09-03 08:57:03
is this MPx / s
_wb_
2024-09-03 08:57:11
yes
username
2024-09-03 09:06:16
eh while "JPEG-XL" *technically* isn't correct I believe it is the least of our worries
CrushedAsian255
2024-09-03 09:06:52
fair
_wb_
2024-09-03 09:14:57
This is on my laptop — on a phone it will be slower of course, on a desktop machine it will be faster. Point is: for web images all these codecs are fast enough, and if you're going to say "webp > jxl" because the decode speed of webp is better, then that's a pretty misleading if not just wrong thing to say. Yes, single-thread webp decode is somewhat faster than single-core jxl decode. The difference doesn't matter in practice though. And when using more than one thread, jxl is faster to decode than the other new codecs — and can get even faster than progressive jpeg, if you throw in enough threads. Even low-end phones and budget laptops have 6 or 8 cores nowadays so talking about decode speed without looking at parallelization potential really doesn't make sense anymore.
lonjil
Oleksii Matiash If famous youtuber does not bother understanding what he is talking about, I believe it is not worth it
2024-09-03 09:21:44
this particular youtuber doesn't bother to understand *anything* he talks about
_wb_ This is on my laptop — on a phone it will be slower of course, on a desktop machine it will be faster. Point is: for web images all these codecs are fast enough, and if you're going to say "webp > jxl" because the decode speed of webp is better, then that's a pretty misleading if not just wrong thing to say. Yes, single-thread webp decode is somewhat faster than single-core jxl decode. The difference doesn't matter in practice though. And when using more than one thread, jxl is faster to decode than the other new codecs — and can get even faster than progressive jpeg, if you throw in enough threads. Even low-end phones and budget laptops have 6 or 8 cores nowadays so talking about decode speed without looking at parallelization potential really doesn't make sense anymore.
2024-09-03 09:24:07
on phones it might be better to figure out MPix/joule
_wb_
2024-09-03 09:26:57
https://x.com/jonsneyers/status/1830900176430477407
yoochan
2024-09-03 09:31:23
_wb_
lonjil on phones it might be better to figure out MPix/joule
2024-09-03 09:35:12
I guess if you do that, you should also include the energy required for transfer, as well as energy wasted by the user waiting for an image to load to make a navigation decision (e.g. a progressive preview could be help to make a navigation decision 0.1 seconds earlier, which means 0.1 seconds of powering the display can be saved, etc). As Jyrki likes to put it, human time >> screen > radio (transfer) > cpu, i.e. it is a bit silly to zoom in on just the energy going to cpu without looking at the things that are more costly/valuable.
Quackdoc
2024-09-03 09:37:23
I have a rooted axon 7 if someone wanted to do tests on it [av1_dogelol](https://cdn.discordapp.com/emojis/867794291652558888.webp?size=48&quality=lossless&name=av1_dogelol) the battery on it is shot tho
lonjil
2024-09-03 09:38:49
I wonder if I could hook up my old Samsung to an external power supply with a high speed power meter
2024-09-03 09:39:25
It also has a shot battery, but crucually, it's from before the era where they started gluing phones shut, so I can get at the power pins in the battery compartment.
Quackdoc
2024-09-03 09:40:24
bench power supplies can often track usage over time,
2024-09-03 09:40:42
but yeah it's pretty easy, just need to do the sense pin
frep
_wb_ This is on my laptop — on a phone it will be slower of course, on a desktop machine it will be faster. Point is: for web images all these codecs are fast enough, and if you're going to say "webp > jxl" because the decode speed of webp is better, then that's a pretty misleading if not just wrong thing to say. Yes, single-thread webp decode is somewhat faster than single-core jxl decode. The difference doesn't matter in practice though. And when using more than one thread, jxl is faster to decode than the other new codecs — and can get even faster than progressive jpeg, if you throw in enough threads. Even low-end phones and budget laptops have 6 or 8 cores nowadays so talking about decode speed without looking at parallelization potential really doesn't make sense anymore.
2024-09-03 09:41:24
making the argument that WebP is better than JPEG XL right now is very easy, though at a features level WebP is clearly amazingly inferior
lonjil It also has a shot battery, but crucually, it's from before the era where they started gluing phones shut, so I can get at the power pins in the battery compartment.
2024-09-03 09:41:54
still hate that non-replaceable batteries are THE standard now...
Quackdoc
2024-09-03 09:45:37
I don't really care one way or the other since I have the tools, I just don't want to buy a replacement battery for it, could be nice for testing stuff like jxl tho
_wb_
frep making the argument that WebP is better than JPEG XL right now is very easy, though at a features level WebP is clearly amazingly inferior
2024-09-03 09:47:28
If you factor in browser support, then of course webp is better than jxl, since "works anywhere" is obviously better than "works only in safari". That's the only argument in favor of webp though, imo. Well, maybe also speed of 8-bit lossless, where webp can still be on the Pareto front at least for some types of image content. But I don't think it won't take long before the limitation to 8-bit becomes too much of a limitation, at some point it will be considered as "lossless" as GIF...
frep
2024-09-03 09:49:22
oh maan the number of gifs i've seen with flickery colors, it's too much
Quackdoc
2024-09-03 09:49:37
oh I need to test the 0.10 series libjxl on my netbook, i forgot about that
frep
frep oh maan the number of gifs i've seen with flickery colors, it's too much
2024-09-03 09:49:49
"256 colors ought to be enough for everyone" :P
RaveSteel
frep "256 colors ought to be enough for everyone" :P
2024-09-03 09:51:08
even with modern tools like [gifski](https://gif.ski/) it still is not comparable to modern formats. Gifski does produce nice*r* looking GIFs though
CrushedAsian255
2024-09-03 09:51:11
and all the other ones where it's complete banding city
RaveSteel even with modern tools like [gifski](https://gif.ski/) it still is not comparable to modern formats. Gifski does produce nice*r* looking GIFs though
2024-09-03 09:51:22
that's the one i use
frep
RaveSteel even with modern tools like [gifski](https://gif.ski/) it still is not comparable to modern formats. Gifski does produce nice*r* looking GIFs though
2024-09-03 09:51:46
i keep forgetting about that one, thx
RaveSteel
2024-09-03 09:52:10
I have seen pixel art artists that only use a dozen colours or so, making GIF viable for them [BigBrain](https://cdn.discordapp.com/emojis/615775892177944627.webp?size=128&quality=lossless&name=BigBrain)
frep
2024-09-03 09:53:12
xd they might actually not save much more space by using PNG due to the header size... idk
RaveSteel
2024-09-03 09:53:30
Ah sorry, I meant for animations xd
frep
2024-09-03 09:55:14
ah! yeah ig that works fine. low-palette stuff can still benefit from APNG but GIF is widely supported sooo...
RaveSteel
2024-09-03 09:55:16
ImageMagick uses palettes when converting to GIF by default while ffmpeg hast to be given many parameters. If done right ffmpeg's output does look better than ImageMagicks though
2024-09-03 09:55:21
At least from my limited testing
frep
RaveSteel ImageMagick uses palettes when converting to GIF by default while ffmpeg hast to be given many parameters. If done right ffmpeg's output does look better than ImageMagicks though
2024-09-03 09:55:50
mostly comes down to using palettegen creating a new palette for every frame iirc
2024-09-03 09:55:57
makes filesize HUGE though
2024-09-03 09:56:34
i've taken to using imagemagick for gifs as of late and it's been pretty nice
RaveSteel
2024-09-03 09:56:54
It works well enough, yes
2024-09-03 09:57:13
Pixel peeping required, but ffmpeg's output with palette has less banding than IM
CrushedAsian255
2024-09-03 09:58:51
ffmpeg without palette is hideous
RaveSteel
2024-09-03 09:58:56
indeed
CrushedAsian255
2024-09-03 09:59:07
its just treating it as rgb8 i think
2024-09-03 09:59:08
fixed palette
RaveSteel
2024-09-03 10:00:01
Most programs nowadays thankfully use palettes, but some pixel art I've seen gets absolutely butchered, probably due to old programs being used by artists
frep
RaveSteel Pixel peeping required, but ffmpeg's output with palette has less banding than IM
2024-09-03 10:00:04
oh, maybe imagemagick is not using local colormaps as i thought? that's a lot of banding
RaveSteel
frep oh, maybe imagemagick is not using local colormaps as i thought? that's a lot of banding
2024-09-03 10:00:30
It still looks completely fine at 100%, but pixel peeping shows the difference
frep
RaveSteel Most programs nowadays thankfully use palettes, but some pixel art I've seen gets absolutely butchered, probably due to old programs being used by artists
2024-09-03 10:00:46
pixel art as gif with fixed palette and floyd-steinberg diffusion :P
CrushedAsian255
2024-09-03 10:01:05
ffmpeg may be using better dithering
RaveSteel
2024-09-03 10:02:12
If you want to create this comparison yourself: ``` palette="./palette.png" ffmpeg -i FFmpeg_Logo_original.png FFmpeg_Logo_default.gif ffmpeg -i FFmpeg_Logo_original.png -vf "palettegen" -y $palette ffmpeg -i FFmpeg_Logo_original.png -vf "scale=-1:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -y FFmpeg_Logo_proper.gif magick FFmpeg_Logo_original.png FFmpeg_Logo_magick.gif magick FFmpeg_Logo_magick.gif -background white -gravity north -splice 0x60 -fill black -pointsize 48 -font Impact -gravity north -annotate +0+0 "ImageMagick" FFmpeg_Logo_magick_v2.png magick FFmpeg_Logo_proper.gif -background white -gravity north -splice 0x60 -fill black -pointsize 48 -font Impact -gravity north -annotate +0+0 "FFmpeg with palette" FFmpeg_Logo_proper_v2.png magick FFmpeg_Logo_default.gif -background white -gravity north -splice 0x60 -fill black -pointsize 48 -font Impact -gravity north -annotate +0+0 "FFmpeg without palette" FFmpeg_Logo_default_v2.png magick FFmpeg_Logo_original.png -background white -gravity north -splice 0x60 -fill black -pointsize 48 -font Impact -gravity north -annotate +0+0 "Original" FFmpeg_Logo_original_v2.png montage FFmpeg_Logo_original_v2.png FFmpeg_Logo_magick_v2.png FFmpeg_Logo_default_v2.png FFmpeg_Logo_proper_v2.png -background None -tile 2x2 -geometry +0+0 FFmpeg_Comparison.png ```
2024-09-03 10:02:20
You just need to download FFmpeg_Logo_original.png lol
username
_wb_ https://x.com/jonsneyers/status/1830900176430477407
2024-09-03 11:16:35
I tried to look into the article where he was getting the idea that AVIF is faster then JXL and it's an article from the AVIF team where in the same article they also claim that libaom is faster then SVT-AV1 and are doing their testing by forcing 96 threads on a 32 core server CPU https://web.dev/articles/avif-updates-2023
2024-09-03 11:19:11
like I'm not going crazy this article is completely insane right?‽ like isn't SVT-AV1 widely recognized to be faster then libaom even back in 2023? and correct me if I'm wrong but isn't forcing 96 threads on a 32 core CPU like not make any sense??
afed
2024-09-03 11:20:18
`Test set: Kodak (24 images of 768x512)`
HCrikki
2024-09-03 11:21:09
theyll try and lie using specially picked files until the results fit the wishlisted conclusion that was decided in advance. shameful given how harmful unintended avif adoption would be for websites and webhosts (even cloudflare generates webp instead of avif at sizes higher than 1-2 megapixels due to the ressource consumption)
2024-09-03 11:55:46
about that youtuber video's chart, adding to chromium pushes it 70% overnight and with safari to almost 90%. if jxl stayed in chromium the derivatives wouldve had it enabled for sure since the upkeep cost would be shared at upstream. still, even 98% support wont mean anyone use whatever's pushed by the folks gatekeeping the monoculture
jonnyawsom3
Quackdoc oh I need to test the 0.10 series libjxl on my netbook, i forgot about that
2024-09-03 11:59:47
You reminded me, I was going to check if there's been much of a decoding speed increases across releases
Demiurge
_wb_ Layers can have names, I guess you could use a naming convention to distinguish "post-edit" layers
2024-09-03 12:16:57
wow, I didn't know that. named layers... That's pretty useful. It's like it's designed for image editors... I assume there must be a limit on the number of layers to prevent making a DoS bomb, or some complexity limit of some kind. Otherwise, you could even store undo history by putting each change in a separate named layer...
_wb_
username like I'm not going crazy this article is completely insane right?‽ like isn't SVT-AV1 widely recognized to be faster then libaom even back in 2023? and correct me if I'm wrong but isn't forcing 96 threads on a 32 core CPU like not make any sense??
2024-09-03 12:17:14
That article makes little sense in general. That chart of encoding speeds is as useless and confusing as a chart can get. Yes, when doing multithreaded s9 avif encoding it is slightly faster than jxl, webp or mozjpeg encoding — so what? With that setting it also compresses worse than libjpeg-turbo, while still being a lot slower. So why would anyone bother with that? Also default effort cjxl is basically as good as slowest-setting cjxl (for lossy), while there is a substantial gap in compression performance between s6 and s0 avif encoding. Comparing encode speed in isolation from compression performance is kind of ridiculous.
Demiurge
2024-09-03 12:18:13
And the image crop vs frame crop thing seems useful too. Maybe there's some corner case that I can't think of right now where it might be ambiguous... but otherwise, I can totally see that working as a way to revert a crop on a phone gallery app.
_wb_
Demiurge wow, I didn't know that. named layers... That's pretty useful. It's like it's designed for image editors... I assume there must be a limit on the number of layers to prevent making a DoS bomb, or some complexity limit of some kind. Otherwise, you could even store undo history by putting each change in a separate named layer...
2024-09-03 12:18:48
There are limits in the profiles and levels on the number of pixels that effectively need to be decoded per rendered frame — not really a limit on the number of layers (you can have some number of full-sized layers or a larger number of smaller layers)
2024-09-03 12:22:36
We did design jxl for a broad range of use cases, not just web delivery (like webp and avif, which were basically designed by browser devs). Getting a good compressed format for authoring workflows, something that can replace TIFF basically, and that can be used as an interoperable subset of PSD/XCF/etc (image editor internal formats), was one of the goals. Web delivery was always the primary use case, but photography and image authoring were also big ones.
CrushedAsian255
2024-09-03 12:25:30
How would vector layers work? Would they just be rasterised
Demiurge
2024-09-03 12:25:43
TIFF is really useful for multi page scans where each page can be a different size and dimensions... I don't entirely understand how good jxl is at that kinda thing.
2024-09-03 12:26:28
jxl doesn't have vector layers.
2024-09-03 12:26:34
it's a raster format.
CrushedAsian255
2024-09-03 12:26:45
I know
2024-09-03 12:26:53
That’s why I’m asking
Demiurge
2024-09-03 12:27:29
Most raster graphics editors don't have vector layers either.
CrushedAsian255
2024-09-03 12:28:10
Smart objects?
Oleksii Matiash
Demiurge TIFF is really useful for multi page scans where each page can be a different size and dimensions... I don't entirely understand how good jxl is at that kinda thing.
2024-09-03 12:29:11
Few days ago I saw a question on one tech forum, asking how to split such tiffs, because PS does not understand it, and IrfanView reduces 16 bpc to 8 bpc. So I doubt multipage tiff is __really__ useful
Demiurge
2024-09-03 12:31:43
I'm more worried about the possibility that, for imageboards and other servers, a maliciously crafted file designed to take a near-infinite amount of time to decode or process is a common concern... Ideally, there should be a very easy way to set time/CPU/memory allocation limits when initializing the decoder/encoder, to make secure handling of jxl files easy for people so that the library (or worse the format) doesn't get a reputation for bringing servers to their knees.
_wb_
2024-09-03 12:31:49
Anything fancy like layers with text or vector graphics, or layer effects, or any of the funkier Photoshop stuff would have to go in some proprietary boxes that get ignored by normal jxl decoders — the main jxl file would just contain rasterized layers.
Demiurge
2024-09-03 12:32:43
Yeah, non-raster stuff ought to be kept out of a jxl file or it's no longer a decodeable jxl file.
2024-09-03 12:33:05
splines are considered to be raster still, too, right?
CrushedAsian255
2024-09-03 12:33:08
So maybe Affinity could replace the internal storage format from PNG to JXL but keep everything else the same?
2024-09-03 12:33:25
As in the container .afphoto format
_wb_ Anything fancy like layers with text or vector graphics, or layer effects, or any of the funkier Photoshop stuff would have to go in some proprietary boxes that get ignored by normal jxl decoders — the main jxl file would just contain rasterized layers.
2024-09-03 12:34:18
And the layer names I guess could store a GUID that points to data in the external box?
2024-09-03 12:34:35
And supporting software can see that and relink the information
_wb_
Demiurge I'm more worried about the possibility that, for imageboards and other servers, a maliciously crafted file designed to take a near-infinite amount of time to decode or process is a common concern... Ideally, there should be a very easy way to set time/CPU/memory allocation limits when initializing the decoder/encoder, to make secure handling of jxl files easy for people so that the library (or worse the format) doesn't get a reputation for bringing servers to their knees.
2024-09-03 12:34:35
That's why we defined Level 5: it has limits on the number of layers / channels / splines etc to keep the decode effort per pixel reasonable. E.g. on the web it would be reasonable for a browser to reject jxl files that don't conform to Level 5.
Demiurge
2024-09-03 12:37:55
As long as it's easy to enable that protection in libjxl when initializing an encoder/decoder instance
_wb_
CrushedAsian255 And the layer names I guess could store a GUID that points to data in the external box?
2024-09-03 12:38:33
Layer names are allowed to be up to 1 kb large (1071 bytes is the maximum allowed by the frame header syntax), which should be plenty for some naming convention that includes whatever you need. It should even be enough room to store things like font details+text to store simple text layers in a way that allows an editor like Gimp or Photoshop to make it editable.
CrushedAsian255
2024-09-03 12:39:04
Does it have to be UTF-8?
2024-09-03 12:39:10
Or can it be arbitrary bytes
Demiurge
2024-09-03 12:39:38
As long as libjxl provides an easy way to enable protection from maliciously crafted files, no one can get angry at libjxl for not doing their own due diligence
_wb_
2024-09-03 12:40:00
The bytes can be arbitrary but the spec says they are interpreted as an UTF-8 encoded string.
Tirr
2024-09-03 12:41:17
(jxl-oxide rejects non-utf-8 layer names)
CrushedAsian255
2024-09-03 12:41:30
So probably want to use some kind of XML?
2024-09-03 12:41:48
Or possibly base64 compressed brotli compressed xml
Demiurge
2024-09-03 12:41:59
I personally think there ought to be some kind of watchdog that tries to detect if the decoder or encoder is not passing control back to the caller for too long or if memory usage is ballooning past a configurable limit.
CrushedAsian255
2024-09-03 12:42:10
Agreed
2024-09-03 12:42:34
If I max out a level 5 bitstream how much processing does it need?
Demiurge
2024-09-03 12:42:54
It's just nice to have guarantees when it comes to worst case scenarios.
2024-09-03 12:43:01
especially for an image codec
CrushedAsian255
2024-09-03 12:43:26
Due to all the complex extra coding modes, it’s way easier to craft deliberately slow bitstream
2024-09-03 12:43:31
Versus something like JPEG
2024-09-03 12:43:46
where decoding speed is roughly related to just the size of the image
2024-09-03 12:44:21
Can I just make every pixel use all the coding tools, enable all post processing and have a bunch of 64-nested MA nodes?
_wb_
Demiurge I personally think there ought to be some kind of watchdog that tries to detect if the decoder or encoder is not passing control back to the caller for too long or if memory usage is ballooning past a configurable limit.
2024-09-03 12:44:48
Chrome just gives every tab its own process with some memory limit, and if image decoding takes more than that it just crashes the tab. That kind of works well enough in practice, imo.
2024-09-03 12:46:34
These are the limits currently defined. So you can't have arbitrarily large MA trees or anything like that.
Oleksii Matiash
_wb_ Chrome just gives every tab its own process with some memory limit, and if image decoding takes more than that it just crashes the tab. That kind of works well enough in practice, imo.
2024-09-03 12:46:35
But it would lead to inaccessible forum\imageboard pages?
Demiurge
2024-09-03 12:49:21
Chrome is... extremely unusual to say the least, with it's very sophisticated and mature sandbox design. When other projects begin to adopt libjxl, it might be embarrassing or create regrettable first impressions if the integration of libjxl results in an entire computer and every program running on it freezing and becoming unusable because of runaway memory use. Most processes do not have any protection from infinite memory use like Chrome does.
2024-09-03 12:51:05
If there's a nice and easy way to set certain guarantees during library initialization, then at least no one can blame the library for not doing due diligence and providing a way to prevent that.
_wb_
Oleksii Matiash But it would lead to inaccessible forum\imageboard pages?
2024-09-03 12:52:00
anything that allows user uploaded images should do some input sanitizing anyway — generally you'll decode images in a sandboxed environment, downscale them if the dimensions are too large, strip exif etc (which could create privacy issues if it contains things like GPS coordinates), and re-encode them in some format browsers support. If you have a forum/imageboard that allows users to just upload whatever they want and other users get to see that in an <img> tag, that's not very secure at all...
Demiurge
2024-09-03 12:52:53
I guess writing a simple malloc wrapper that limits memory use could arguably be considered easy but it's still something that I don't see most projects looking to integrate libjxl likely doing.
2024-09-03 12:54:24
But also some sort of time limit would be nice too, to detect if libjxl is hanging and not passing control back to the caller by returning an error or a partial decode in a reasonable response time.
_wb_
2024-09-03 12:56:03
There's this (the fuzzer uses that): https://github.com/libjxl/libjxl/blob/main/tools/tracking_memory_manager.h
CrushedAsian255
_wb_ There's this (the fuzzer uses that): https://github.com/libjxl/libjxl/blob/main/tools/tracking_memory_manager.h
2024-09-03 12:58:04
How much overhead does this entail? If not significant , maybe it should become default? If a lot, nevermind
Demiurge
2024-09-03 12:59:38
You have to benchmark to be sure but probably close to no overhead at all.
2024-09-03 01:01:03
Unless multiple threads are allocating at the same time. Then it will have a lot of overhead.
2024-09-03 01:02:50
You could avoid that overhead though, if the encoder/decoder was aware of the limit you want to enforce. Because then it could split the limit up across multiple threads.
2024-09-03 01:03:18
Having the caller enforce the limit is not as efficient as having the codec enforce it.
2024-09-03 01:04:07
If the caller enforces it by wrapping malloc then every call to malloc needs to be serialized instead of parallel.
2024-09-03 01:05:02
sadface
CrushedAsian255
Demiurge You could avoid that overhead though, if the encoder/decoder was aware of the limit you want to enforce. Because then it could split the limit up across multiple threads.
2024-09-03 01:05:57
Another solution could be making the threads allocate bigger blocks and reusing them instead of allocating / reallocating them
Oleksii Matiash
_wb_ anything that allows user uploaded images should do some input sanitizing anyway — generally you'll decode images in a sandboxed environment, downscale them if the dimensions are too large, strip exif etc (which could create privacy issues if it contains things like GPS coordinates), and re-encode them in some format browsers support. If you have a forum/imageboard that allows users to just upload whatever they want and other users get to see that in an <img> tag, that's not very secure at all...
2024-09-03 01:06:54
Yes, that's why I'm thinking about some limitation to the browser image decoder that aborts when memory consumption is larger than some defined limit, and does not crash whole tab
2024-09-03 01:07:56
Because imageboard's users will definitely post such files
CrushedAsian255
2024-09-03 01:08:59
Or a CLICK THIS LINK FOR FREE whatever, which sends you to a malicious JXL
2024-09-03 01:09:17
we certainly don’t want another android wallpaper crash or ForcedEntry
Demiurge
2024-09-03 01:09:20
If libjxl calls malloc from multiple threads in parallel, then libjxl needs to be aware of and enforce the memory limit. Otherwise, you lose parallel malloc.
2024-09-03 01:11:09
Maybe there's a clever way to avoid serializing malloc that I'm not aware of.
_wb_ anything that allows user uploaded images should do some input sanitizing anyway — generally you'll decode images in a sandboxed environment, downscale them if the dimensions are too large, strip exif etc (which could create privacy issues if it contains things like GPS coordinates), and re-encode them in some format browsers support. If you have a forum/imageboard that allows users to just upload whatever they want and other users get to see that in an <img> tag, that's not very secure at all...
2024-09-03 01:16:36
decode in a sandboxed environment, yes... image editors, vips, and other projects and libraries that want to integrate libjxl, and even operating systems, don't always have access to a convenient sandbox and personally I think it's always nice when these sort of things are made more convenient for people to avoid any manner of ugly situations.
_wb_
2024-09-03 01:16:47
what do browsers currently do if they get a png that decodes to a huge image?
Oleksii Matiash
CrushedAsian255 Or a CLICK THIS LINK FOR FREE whatever, which sends you to a malicious JXL
2024-09-03 01:16:55
It is far less destructive, because if that malicious jxl is just part of a page, browser will try to show it without any action from user
Demiurge
_wb_ what do browsers currently do if they get a png that decodes to a huge image?
2024-09-03 01:18:46
I think they just keep going until the computer or browser process dies... But I haven't tested.
CrushedAsian255
2024-09-03 01:19:26
Ooh, a png zip bomb
Oleksii Matiash
2024-09-03 01:19:40
Just curious if it is possible to ask libjxl to use as much ram as <some value> and just exit if it is impossible to decode image using this limitation
CrushedAsian255
2024-09-03 01:20:21
Is it possible to tune the decoder to slow down but use less memory if it gets close to the RAM limit?
Demiurge
2024-09-03 01:21:16
I just think it's always nice, in a warm and fuzzy sort of way, when security is made obvious and straightforward and convenient. in practice what ends up happening is it's inconvenient and forgotten until it seriously causes problems and big drama.
CrushedAsian255
2024-09-03 01:22:10
Like if it’s a simple “pass True for extra security” vs “if you want security you need to implement these 5 interfaces yourself”
Demiurge
2024-09-03 01:22:15
It's refreshing when you use something that's designed with limits and guarantees and stuff like that in mind from the beginning in a convenient and obvious way
_wb_
2024-09-03 01:23:02
there are a lot of ways to make a web page that will use a lot of resources or crash the browser tab — I'd say javascript is a bigger risk in that regard than image decoding. With the new "no-abort" updates in libjxl, you should see a broken image icon instead of a crashed browser tab when there's an image that causes OOM during decode.
Demiurge
2024-09-03 01:24:31
Oh yeah, totally. I've said multiple times on this server already that I believe it's really bad that Javascript is not designed to ask for permission first for 99% of what it does.
2024-09-03 01:25:11
I'm not worried about browsers because they have very robust sandboxing and isolation for everything these days
_wb_
CrushedAsian255 Is it possible to tune the decoder to slow down but use less memory if it gets close to the RAM limit?
2024-09-03 01:25:29
The jxl decoder memory usage is more or less proportional to the number of threads and to some extent the image dimensions.
Demiurge
2024-09-03 01:27:33
I'm more worried about the random open source coder that decides to integrate libjxl into their image library project or image gallery/editor, and one day an image comes along that causes everyone's computer and every process on it to suddenly freeze for 20 minutes
2024-09-03 01:30:37
Yeah, I'm sad that not enough people are aware that it's literally just 1 guy and his team, the lead tech of the webp project, who unilaterally told the entire world to our faces that there's just "not enough interest from the boader ecosystem to justify including jxl"
2024-09-03 01:31:34
To Apple's face, to Google's face, Meta, Shopify, Intel, and all the other giant firms in the comments sections before he said that
2024-09-03 01:32:55
It's so outstandingly, cartoonishly ludicrous that it makes me sad that almost no one seems to know the actual story
_wb_
2024-09-03 01:33:12
It's weird how people keep saying that that Microsoft patent is probably a problem for jxl even though Microsoft never claimed it owns any patents relevant for jxl. Meanwhile, for av1/avif there are actual claims by a patent troll (https://www.sisvel.com/licensing-programmes/audio-and-video-coding-decoding/video-coding-platform-av1/#tab-licence-terms) but everyone seems to completely ignore that and considers it not a problem at all.
CrushedAsian255
2024-09-03 01:33:25
Hopefully the Apple cameraJXL rumours come true
Demiurge
_wb_ It's weird how people keep saying that that Microsoft patent is probably a problem for jxl even though Microsoft never claimed it owns any patents relevant for jxl. Meanwhile, for av1/avif there are actual claims by a patent troll (https://www.sisvel.com/licensing-programmes/audio-and-video-coding-decoding/video-coding-platform-av1/#tab-licence-terms) but everyone seems to completely ignore that and considers it not a problem at all.
2024-09-03 01:34:27
Yeah, I remember seeing a web page selling AV1 patent licenses for an AV1 patent pool... Maybe this is the one I remember...
2024-09-03 01:35:12
AV1 has an actual patent pool selling licenses to use AV1...
CrushedAsian255
2024-09-03 01:35:55
What the heck
2024-09-03 01:35:56
…..
_wb_
Demiurge It's so outstandingly, cartoonishly ludicrous that it makes me sad that almost no one seems to know the actual story
2024-09-03 01:36:07
Some day there should be a Netflix documentary about this or something, it's a pretty funky story as far as tech / office politics stories go
Demiurge
2024-09-03 01:36:56
You're right, that is pretty ridiculous that the same people saying not to use jxl because of patents are saying to use AVIF instead... There has never been anything even remotely close to a patent claim or question on jxl
CrushedAsian255
_wb_ It's weird how people keep saying that that Microsoft patent is probably a problem for jxl even though Microsoft never claimed it owns any patents relevant for jxl. Meanwhile, for av1/avif there are actual claims by a patent troll (https://www.sisvel.com/licensing-programmes/audio-and-video-coding-decoding/video-coding-platform-av1/#tab-licence-terms) but everyone seems to completely ignore that and considers it not a problem at all.
2024-09-03 01:38:39
Is this enforced at all?
_wb_
2024-09-03 01:43:00
Anyway I don't think the sisvel nonsense should be a reason to consider av1/avif non-royalty-free or anything like that, I don't want to spread FUD about it. Patent trolling is annoying enough as it is, no need to feed the trolls. But I'm just saying, the situation for jxl is basically as good as it gets, nobody is making any claims (fingers crossed that it stays that way), yet people keep speculating that this is secretly the big reason for Chrome's decision. If this was really a concern, I'm pretty sure the avif proponents at Chrome would have been happy to have an actual valid argument to remove jxl, instead of having to come up with excuses.
CrushedAsian255 Is this enforced at all?
2024-09-03 01:45:56
No idea. They claim 62 companies are paying them royalties for VP9 and/or AV1. No idea if that's true. I'm sure that if they would ask Cloudinary to pay, we would just call their bluff, let them litigate and make sure they lose. But not all companies take principled positions on these things, since it can often be cheaper to just pay some license fees than to pay the lawyers.
VcSaJen
_wb_ It's weird how people keep saying that that Microsoft patent is probably a problem for jxl even though Microsoft never claimed it owns any patents relevant for jxl. Meanwhile, for av1/avif there are actual claims by a patent troll (https://www.sisvel.com/licensing-programmes/audio-and-video-coding-decoding/video-coding-platform-av1/#tab-licence-terms) but everyone seems to completely ignore that and considers it not a problem at all.
2024-09-03 01:51:04
Microsoft did not ignore it
2024-09-03 01:51:42
That's why AVIF support was years late
Demiurge
_wb_ Anyway I don't think the sisvel nonsense should be a reason to consider av1/avif non-royalty-free or anything like that, I don't want to spread FUD about it. Patent trolling is annoying enough as it is, no need to feed the trolls. But I'm just saying, the situation for jxl is basically as good as it gets, nobody is making any claims (fingers crossed that it stays that way), yet people keep speculating that this is secretly the big reason for Chrome's decision. If this was really a concern, I'm pretty sure the avif proponents at Chrome would have been happy to have an actual valid argument to remove jxl, instead of having to come up with excuses.
2024-09-03 02:07:26
I agree with that too. I don't think anyone should take it seriously, but it's certainly a lot more serious than whatever people are imagining for JPXL...
2024-09-03 02:19:47
Patents are a really bad and really ridiculous idea to begin with. I don't usually like getting this political, but I think it's pretty sad that it's even a thing.
_wb_
2024-09-03 02:51:57
Patents used to be a good thing, back in the 18th century when it was a balanced trade-off: companies could turn their innovative trade secrets into publicly available information in return for a limited-time monopoly — 20 years was a reasonable time window back in the days when the inventions were things like the steam engine. Now it is just a tool companies use to make more profit while society doesn't really gain anything (patents are formulated in obfuscated, very generic legalese that doesn't really help anyone understand the actual ideas) and innovation effectively gets stiffled instead of promoted — not to mention that 20 years is a crazy long time window in a modern economy, in particular in the software industry.
yoochan
2024-09-03 03:04:53
I don't even know if companies still make profits with patents... lawyers and consulting firms do (and patent offices too 😆 )
RaveSteel
2024-09-03 03:05:43
Some countries, like france, do at least not acknowledge patents on software, which is good
_wb_
yoochan I don't even know if companies still make profits with patents... lawyers and consulting firms do (and patent offices too 😆 )
2024-09-03 03:21:52
The patent troll companies get money from royalties so presumably it is directly profitable. For most companies, patents are not for making profits directly but to have ammo to kill small competitors and/or to defend themselves against big competitors trying to kill them. But yes, it's mostly lawyers who benefit from the whole thing.
2024-09-03 07:30:58
https://www.frandroid.com/produits-android/2324474_jpeg-xl-cette-image-ne-pese-que-quelques-octets-et-pourtant-lavenir-de-son-format-est-incertain
2024-09-03 07:32:07
https://www.macg.co/logiciels/2024/09/le-jpeg-xl-permet-de-faire-de-lart-avec-quelques-octets-145763
2024-09-03 08:21:33
https://github.com/mozilla/standards-positions/pull/1064
Demiurge
2024-09-03 08:37:11
> A safe, fast, and battle-tested Rust decoder from the original team could make Why do they qualify this with "from the original team?"
2024-09-03 08:43:04
Are they specifically trying to imply that tirr's jxl-oxide is somehow inadequate or not good enough? It's good enough the author of jxl-winthumb prefers it over libjxl
2024-09-03 08:44:40
Also, why rust? Why not something like https://github.com/google/wuffs
2024-09-03 08:45:14
Mozilla's take seems kind of arbitrary
_wb_
2024-09-03 08:45:35
Let's continue in <#803574970180829194> to avoid doubling the discussion
jonnyawsom3
_wb_ https://www.frandroid.com/produits-android/2324474_jpeg-xl-cette-image-ne-pese-que-quelques-octets-et-pourtant-lavenir-de-son-format-est-incertain
2024-09-03 11:46:27
Of all the images to see in an article, I didn't expect that one
w
2024-09-04 01:06:40
LOL
jonnyawsom3
2024-09-04 01:12:44
Reminds me of
w
2024-09-04 01:12:49
https://tenor.com/view/aqours-rikakoaida-lovelive-gif-19343056
2024-09-04 01:13:34
eternal bullying
yoochan
Demiurge Mozilla's take seems kind of arbitrary
2024-09-04 06:55:00
Wuffs don't document well enough the language to write a decoder, and the main team have no plan to implement jxl in a foreseeable future. They prefer to capitalize on their existing decoders https://github.com/google/wuffs/tree/main/std
2024-09-04 06:56:06
And even if it shouldn't be a practical limit for web images, wuffs can not handle buffers bigger than max uint16 pixels
_wb_
2024-09-04 06:58:23
I think it is designed for simpler things than something like the jxl codec.
yoochan
2024-09-04 07:01:24
Do you think it would be impossible to express a decoder in the wuffs language? Might be
_wb_
2024-09-04 07:27:37
Impossible probably not, but at first glance it seems more suitable for relatively simple things like lzw or qoi. But also: in terms of ecosystem size / amount of scrutiny / maturity, Rust seems like a better choice than Wuffs which is still in 0.x and has this disclaimer on its front page: "The compiler undoubtedly has bugs. Assertion checking needs more rigor, especially around side effects and aliasing, and being sufficiently well specified to allow alternative implementations. Lots of detail needs work, but the broad brushstrokes are there."
spider-mario
w https://tenor.com/view/aqours-rikakoaida-lovelive-gif-19343056
2024-09-04 09:52:40
is this the original or is it like https://x.com/trumpdraws ?
w
2024-09-04 09:53:00
that's the original
afed
2024-09-04 11:01:43
https://www.phoronix.com/news/Mozilla-Interest-JPEG-XL-Rust
2024-09-04 11:03:07
JPEG**-**XL <:PeepoDiamondSword:805394101340078092>
CrushedAsian255
2024-09-04 11:03:43
JPEG + XL
2024-09-04 11:06:45
does Jon Sneyers work for google
2024-09-04 11:06:47
or cloudinary?
2024-09-04 11:06:50
i can't remember
yoochan
2024-09-04 11:06:54
cloudinary
CrushedAsian255
2024-09-04 11:07:00
makes sense
2024-09-04 11:07:06
<:Cloudinary:806630933242445904>
username
2024-09-04 11:14:38
honestly I think "JPEG-XL" looks cooler then "JPEG XL" so I don't mind too much, also it seems to be something that some people have done in the past when talking prior JPEG standards as well so this isn't exclusive to JPEG XL