|
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
|
|
RaveSteel
|
|
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_
|
|
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
|
|
_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
|
|
_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
|
|
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
|
|