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

adoption

Adoption of jxl: what software supports jxl already, how to get more adoption?

spider-mario
2024-08-28 11:30:36
even then, I think the bright screen in the darkness might do better than the sheet of paper in sunlight
Demiurge
2024-08-28 11:31:15
The point is, paper DR scales. Screen DR does not. It's limited.
2024-08-28 11:31:53
The only limit of paper is the point where it ignites from too much light
spider-mario
2024-08-28 11:32:04
I’m not sure the DR scales; more incident light raises the higher bound but also the lower bound
Demiurge
2024-08-28 11:32:22
But the higher bound raises faster than the lower bounh
spider-mario
2024-08-28 11:32:26
well, does it?
2024-08-28 11:32:30
I doubt it
Demiurge
2024-08-28 11:32:49
That is the nature of ink
spider-mario
2024-08-28 11:33:19
that its reflectance varies with incident power?
Demiurge
2024-08-28 11:34:29
The amount of light absorbed by ink can be simplified as a percentage that mostly stays the same
spider-mario
2024-08-28 11:35:39
if that is the case (as I was implying) then DR would also stay the same
Demiurge
2024-08-28 11:36:01
Maybe so...
spider-mario
2024-08-28 11:36:07
if the white parts of the print reflect 100%, and the black parts reflect 1%, then DR will be 100 in an office and in direct sunlight
Demiurge
2024-08-28 11:36:53
Indeed...
spider-mario
2024-08-28 11:36:56
although there may well be perceptual effects that will still make it look better in sunlight
Demiurge
2024-08-28 11:37:24
Indeed again.
spider-mario
2024-08-28 11:38:06
(or the “office” DR gets more limited at the low end by “I can’t see that dark anyway”)
Demiurge
2024-08-28 11:38:51
I stand corrected. But yes that's exactly so.
lonjil
2024-08-29 05:10:30
PDF is good because everything else looks bad
2024-08-29 05:11:11
Formats that are just content which the viewing program does the layouting for never look as good
Demiurge
2024-08-29 07:16:59
What about .ps.bz2
2024-08-29 07:17:15
Does pdf have any advantage?
CrushedAsian255
2024-08-29 08:11:10
PDF really helps with making sure things look standardised
lonjil
Demiurge What about .ps.bz2
2024-08-29 08:32:00
Can a postscript file embed images and fonts?
CrushedAsian255
2024-08-29 08:32:23
isn't PDF based on postscript?
_wb_
2024-08-29 08:34:34
Both PDF and HTML suffer from feature bloat and are very nontrivial to implement completely. But there are subsets like PDF/A and EPUB that limit the bloat again.
CrushedAsian255
2024-08-29 08:35:42
format lifecycle New format, pretty simple More and more features Really bloated, hard to implement Stripped down version Old format, only some things support different parts Someone makes a new format to simplify this repeat until XKCD 927
_wb_
2024-08-29 08:37:48
Full PostScript is a programming language with branching and looping, which is a security issue (you can send PostScript printers in an infinite loop). In PDF, you can only use a subset of PostScript that is not a full programming language.
CrushedAsian255
2024-08-29 08:44:53
so PDF is a subset of PostScript?
Foxtrot
That one still says no access, but just searching "JXL" gave me this <https://aka.ms/AArzizt>
2024-08-29 09:40:39
wow, I tried your link and now I cant access it 😄 maybe its because of windows version? I have windows 10
_wb_
2024-08-29 10:19:42
PDF is a superset of a subset of PostScript 🙂
jonnyawsom3
Foxtrot wow, I tried your link and now I cant access it 😄 maybe its because of windows version? I have windows 10
2024-08-29 11:33:19
Also 10
Foxtrot
2024-08-29 01:07:22
Well, in that case it's just weird 😄
Geniusak
_wb_ PDF is a superset of a subset of PostScript 🙂
2024-08-29 08:00:36
every fact I learn about pdf just makes it worse :/
HCrikki
2024-08-30 12:12:54
imo some features' adoption should be individually tracked (like lossless transcoding from jpg since its a huge deal with quasi-instant conversions that require almost no system ressources to complete), as well as the quality of integration
2024-08-30 12:14:24
on an aside, updated adoption from **xnviewMP**. in 1.8.0, they updated libjxl from 0.8 to 0.10.3
jonnyawsom3
HCrikki on an aside, updated adoption from **xnviewMP**. in 1.8.0, they updated libjxl from 0.8 to 0.10.3
2024-08-30 04:01:04
Trying to find info about that I noticed they added jpegli in the last version, although people seem a bit confused about the 16bit input/10.5bit encoding https://newsgroup.xnview.com/viewtopic.php?p=197855#p197855
2024-08-30 04:01:51
If someone already has an account, might be worth mentioning you only get the benefits when decoding with jpegli too
Demiurge
lonjil Can a postscript file embed images and fonts?
2024-08-30 05:27:44
You know I'm not entirely sure...
HCrikki
2024-08-30 06:16:54
oXPS (incompatible upgrade to XPS, both from MS) can but it has like zero adoption. the usual readers decode it still but pdf is better, its just most still generate new docs in old versions as if its a guarantee of highest compatibility
CrushedAsian255
2024-08-31 06:48:27
problem with any new standard that is backwards compatible, everyone will just use the base standard for extra compatibility
2024-08-31 06:48:44
i would say this is one of the main reasons why JPEG XT pretty much got nowhere
Oleksii Matiash
2024-08-31 06:49:20
If only pdf was an archive with xml and all resources as files, like .docx and other ms office files are..
CrushedAsian255
2024-08-31 06:58:16
ah the good old "stuff a bunch of XML in a ZIP"
Demiurge
2024-08-31 07:06:12
Isn't odt the same way though? Literally just a zip
CrushedAsian255
Demiurge Isn't odt the same way though? Literally just a zip
2024-08-31 07:09:33
yeah
Oleksii Matiash
CrushedAsian255 ah the good old "stuff a bunch of XML in a ZIP"
2024-08-31 07:32:43
Right. I'm not so interested in xmls, but in all other files that are just streams inside pdf, and are extremely hard to operate
yoochan
2024-08-31 10:17:09
When you see how hard it is to layout a single font, you understand why pdf place letters one by one on the page in order to have guaranteed identical content on all readers
Oleksii Matiash
yoochan When you see how hard it is to layout a single font, you understand why pdf place letters one by one on the page in order to have guaranteed identical content on all readers
2024-08-31 10:27:41
If you responded to me, then I didn't get your point
yoochan
2024-08-31 10:36:10
Partially 😅 we were discussing how pdf don't always contains the text itself. I saw your wish for zipped xml instead of pdf as a way to get this: the ease to extract text. My point was that pdf can't be like docx and guaranteed identical everywhere I think...
Oleksii Matiash
yoochan Partially 😅 we were discussing how pdf don't always contains the text itself. I saw your wish for zipped xml instead of pdf as a way to get this: the ease to extract text. My point was that pdf can't be like docx and guaranteed identical everywhere I think...
2024-08-31 11:06:41
No, ease to extract (and place back) binary streams, especially images. I don't care about text, because it can be copied from pdf viewer, and, more important, text is not the thing that can be optimized externally
VcSaJen
2024-08-31 01:15:16
It's not much different than extracting (demuxing) subtitles and audio tracks from a mkv.
Oleksii Matiash
VcSaJen It's not much different than extracting (demuxing) subtitles and audio tracks from a mkv.
2024-08-31 01:35:39
Question is not only about extracting, but about replacing. Just for example - lossless jxl was created by somebody, who cares about speed only, and uses -e 1. It can be recompressed with lots of savings.
CrushedAsian255
2024-09-01 07:29:40
test if this works on a browser that doesn't support JXL, like stock Chromium or something
2024-09-01 07:29:46
it could be doing it on-browser
2024-09-01 07:29:58
although Meta is known to be a supporter of JXL so maybe it is serverside
VcSaJen
2024-09-01 08:52:54
Just tried, it just sends a file, no preview.
Demiurge
2024-09-01 08:57:39
If you upload it from the ios photo picker then I'm pretty sure the picker transcodes it to JPEG like it does with HEIC
HCrikki
2024-09-02 01:46:24
updated adoption? labconut's android gallery decodes jxl since 2.1 and 3.0 (with newer jxlcoder decode library from awxkee) went stable https://github.com/IacobIonut01/Gallery anyone can check how it works?
novomesk
2024-09-02 03:11:20
Dolphin is KDE's file manager ( https://apps.kde.org/dolphin/ ) can see JXL thumbnails even on Windows in latest release: https://cdn.kde.org/ci-builds/system/dolphin/release-24.08/windows/
Quackdoc
HCrikki updated adoption? labconut's android gallery decodes jxl since 2.1 and 3.0 (with newer jxlcoder decode library from awxkee) went stable https://github.com/IacobIonut01/Gallery anyone can check how it works?
2024-09-02 06:58:14
doesnt work for me, just crashes
HCrikki
2024-09-02 07:14:53
happened here too on android 14, thought it was an issue on my side
Quackdoc
2024-09-03 09:34:19
fossify gallery supports JXL now, should be next release
Cacodemon345
2024-09-03 09:42:56
Meanwhile Windows 11 still does not support JPEG XL.
RaveSteel
Quackdoc fossify gallery supports JXL now, should be next release
2024-09-03 10:04:07
Animations as well, or just still images?
HCrikki
2024-09-03 11:19:57
anyone built a nightly for fossify? could be handy getting any lowhanging fruit implementation quirks identified and resolved before a release
VcSaJen
HCrikki updated adoption? labconut's android gallery decodes jxl since 2.1 and 3.0 (with newer jxlcoder decode library from awxkee) went stable https://github.com/IacobIonut01/Gallery anyone can check how it works?
2024-09-03 04:41:03
I don't see any updates on F-Droid. Version from April is still broken (shows blur when opening jxl).
HCrikki
2024-09-03 04:53:31
lot of transitional adoption woes could be resolved with nightly binaries and unofficial builds - code going into upstream is only the ideal outcome but should not be the only way
2024-09-03 04:54:43
between no binaries and no sources of existing jxls ('generate your own') its an endless chicken-egg mess
Quackdoc
RaveSteel Animations as well, or just still images?
2024-09-03 05:43:34
stills
2024-09-03 05:43:52
I posted a build a while ago, on phone tho
HCrikki
Quackdoc I think you already have the apk but for anyone else https://files.catbox.moe/7dllzt.apk
2024-09-03 06:07:04
is this the same code? 2 month old build though iinm
Quackdoc
2024-09-03 06:08:03
yeah, it doesn;t have some of the newer commits, but they were all just translations updates
2024-09-03 06:08:25
well and one minor dep version bump
HCrikki
2024-09-03 06:09:01
i recall seeing a reference to jxlcoder 2.2, is 2.3 a negligible dep refresh?
Quackdoc
2024-09-03 06:21:54
I dont believe there was a bump in that, Im not seeing anything in the commit log
2024-09-03 06:24:20
ah the library itself had a bump, it didnt get pulled into fossify
2024-09-03 06:25:24
seems like a bump from libjxl 0.10.2 to 0.10.3
HCrikki
2024-09-03 06:25:30
on android10, builds loads in some way all jxls i had in a test folder (thumbnail and image, native jxl and reconstructible). rotating and resizing bring java error message or silently stop. alpha's fine, no animation. large images seem to not decode in full resolution (noticed jaggies in whats 20mp clean art)?
veluca
2024-09-03 08:12:59
https://github.com/mozilla/standards-positions/pull/1064
Quackdoc
2024-09-03 08:16:55
sooo, ~~jxl-oxide?~~
yoochan
2024-09-03 08:17:04
But a rust implementation already exists ! 😄
afed
2024-09-03 08:17:55
`Rust decoder from the original team`
Quackdoc
afed `Rust decoder from the original team`
2024-09-03 08:18:51
it seems like an odd distinction, but im assuming they simply want "officially supported" or something
HCrikki
2024-09-03 08:19:26
research before suggested a from scratch rust decoder would take no more than 2 months. starting with jxl-oxide would save lot of effort and time
yoochan
2024-09-03 08:19:54
if it just means "which have a seal of approval" from the main team, jxl oxide have it, let's go to production !
username
2024-09-03 08:21:00
lol immediately locked
HCrikki
2024-09-03 08:21:00
not a fan of conditioning adoption to rust code since a working integration of libjxl already exists that needs but a few patches added to nightly and enabled by default there
Quackdoc
username lol immediately locked
2024-09-03 08:21:32
they know lmao
HCrikki
2024-09-03 08:22:09
is it nobody talking or everyone silenced...
Quackdoc
2024-09-03 08:23:27
they locked it ahead of time
2024-09-03 08:24:15
realistically, I understand firefox not wanting any more C/C++ deps shipping, since firefox is already a massive security nightmare
Oleksii Matiash
Quackdoc they locked it ahead of time
2024-09-03 08:24:41
Because of lack of interest ©
_wb_
2024-09-03 08:25:25
Nice to see that this news is now out in the open, I was having a bit of a hard time keeping my mouth shut about it 🙂
username
2024-09-03 08:25:25
something I gotta wonder is if it's even worth it to write a new rust decoder or just use jxl-oxide since as far as I understand jxl-oxide is really mature
Quackdoc
_wb_ Nice to see that this news is now out in the open, I was having a bit of a hard time keeping my mouth shut about it 🙂
2024-09-03 08:25:50
haha I would assume
username
username something I gotta wonder is if it's even worth it to write a new rust decoder or just use jxl-oxide since as far as I understand jxl-oxide is really mature
2024-09-03 08:27:29
related: https://github.com/web-platform-tests/interop/issues/430#issuecomment-1776762287 https://github.com/web-platform-tests/interop/issues/430#issuecomment-1811972676
_wb_
2024-09-03 08:30:07
jxl-oxide is fine in terms of conformance, but I think <@179701849576833024> has some ideas to get better performance (ideas that also require some improvements to the Rust compiler, iirc)
Quackdoc
2024-09-03 08:34:00
interesting
veluca
_wb_ jxl-oxide is fine in terms of conformance, but I think <@179701849576833024> has some ideas to get better performance (ideas that also require some improvements to the Rust compiler, iirc)
2024-09-03 08:37:08
I mean it's not like my PRs are secret 😛 https://github.com/rust-lang/rust/pull/129881
_wb_
2024-09-03 08:47:24
Not sure if the license of jxl-oxide is compatible with the Mozilla license
veluca
2024-09-03 08:48:16
I am fairly sure it is, it uses the standard Apache+MIT that rust itself uses and that was set up by mozilla initially 😛
_wb_
2024-09-03 08:48:52
I forgot why we switched to BSD at some point, I guess it was not because of Mozilla then
Demiurge
_wb_ Not sure if the license of jxl-oxide is compatible with the Mozilla license
2024-09-03 08:49:09
Tirr's right here if anyone wants to ask about licensing. But if it's MIT license then it couldn't possibly be more permissive and unrestricted for anyone's needs
Quackdoc
2024-09-03 08:49:30
yeah jxl-oxide was critical to the rust ecosystem since the only maintained libjxl bindings/crate are gpl'd
afed
2024-09-03 08:49:50
<https://github.com/web-platform-tests/interop/issues/430#issuecomment-1776762287> so is the decoder already being developed for some time or just started right now, after approval from mozilla?
Demiurge
2024-09-03 08:50:35
I said this in the other channel already but mozilla's take seems really arbitrary. Why the specific qualifier "from the original team?" Why is rust more suitable compared to wuffs for example? https://github.com/google/wuffs
2024-09-03 08:51:37
A rust implementation would be less useful than a wuffs codec that compiles to C
2024-09-03 08:52:16
Yet another rust implementation, that is
Quackdoc
2024-09-03 08:52:22
firefox has been pivoting hard to implementing as much as they can in rust, they probably want some semblance of homogeneity in their codebase
Demiurge
2024-09-03 08:52:25
That's baffling that they want a second one
Quackdoc
Demiurge That's baffling that they want a second one
2024-09-03 08:52:45
I doubt firefox cares as long as it's "officially supported"
afed
2024-09-03 08:52:46
because mozilla uses and created rust and it's more widely used than wuffs
Demiurge
2024-09-03 08:52:47
C code would still give them homogeneity...
Quackdoc
Demiurge C code would still give them homogeneity...
2024-09-03 08:53:09
not really, the vast majority of firefox code is rust, and increasingly more so
veluca
2024-09-03 08:53:25
tldr on wuffs (at least IMO): I have not yet seen evidence of wuffs being a good language to write something more complex than PNG, and the safety properties of wuffs come from its compiler, which receives orders of magnitude less attention than the rust compiler
Demiurge
Quackdoc I doubt firefox cares as long as it's "officially supported"
2024-09-03 08:53:35
What's the difference between an official real certified person and a fake person?
Quackdoc
Demiurge What's the difference between an official real certified person and a fake person?
2024-09-03 08:53:59
one has a degree of certainty when it comes to support longevity
Demiurge
2024-09-03 08:54:25
I hope one day I get to be a real boy too
Quackdoc
2024-09-03 08:55:14
~~get a job as a rust dev and maybe they will consider you one eventually~~
2024-09-03 08:55:15
xD
Demiurge
2024-09-03 08:55:30
I wish I may I wish I might have this wish I wish tonight
2024-09-03 08:56:56
No, being a rust dev doesn't make you real enough cuz otherwise tirr would be real
2024-09-03 08:57:12
I think you need a fairy godmother
Quackdoc
2024-09-03 08:57:22
but yeah, in the end I don't blame them, I actually rather support it since media codecs have had a history of being a pain point for security, Im just curious what decoder will come out of this, jxl-oxide, a fork of jxl-oxide, or something new entirely, in any case, i'm fairly anticipating it
Demiurge No, being a rust dev doesn't make you real enough cuz otherwise tirr would be real
2024-09-03 08:57:47
in the end, they need the level of support behind it
afed
2024-09-03 08:58:31
most likely because it will be maintained by someone from google and the original creators of the format and not by some volunteers who do it for fun and may not have the interest or resources for further support or fixes
Quackdoc
2024-09-03 08:59:37
I know from previous jobs, that implementing something like jxl-oxide would be a hard sell unless I could convince management to sponsor tirr or someone else to work on it
CrushedAsian255
2024-09-03 08:59:46
JPEG XL
Demiurge
veluca tldr on wuffs (at least IMO): I have not yet seen evidence of wuffs being a good language to write something more complex than PNG, and the safety properties of wuffs come from its compiler, which receives orders of magnitude less attention than the rust compiler
2024-09-03 09:00:43
Wuffs seems to have more safety guarantees and it's unable to allocate memory for example. It's a lot more simple than rust so I don't think having less scrutiny is necessary a problem compared with rust. Although whether more complex codecs will be practical to implement, remains to be seen, as you say
2024-09-03 09:02:15
At the end of the day Google Research Zurich and Cloudinary could just add jxl-oxide to the libjxl project and source tree and say it's another reference decoder
Quackdoc
CrushedAsian255 JPEG XL
2024-09-03 09:02:21
ʲᵖᵉᵍ ˣˡ
CrushedAsian255
2024-09-03 09:03:58
-# jpeg xl
_wb_
2024-09-03 09:04:09
I don't think there are bad intentions on Mozilla's side here, it's just that they know there are libjxl core devs who would be willing to work on a high-performance Rust jxl decoder. Whether the best starting point for that is jxl-oxide or not is a technical question and doesn't really have any implications one way or the other for the merits of <@206628065147748352>'s work. It was an impressive accomplishment in any case to create the first fully conforming independent jxl implementation.
2024-09-03 09:06:18
We already added jxl-oxide to the official JPEG page on jxl: https://jpeg.org/jpegxl/software.html (that doesn't make it official reference software but it can be considered as a milestone in terms of conformance/completeness).
lonjil
2024-09-03 09:06:28
I comment I found elsewhere on the topic of the libjxl devs making a Rust impl 😄 > I just hope it will not be as hideously complex and unsafe as the C++ one if written by the same people
Quackdoc
2024-09-03 09:06:50
from a ex-corp standpoint, the issue is, if tirr goes offline for whatever reason, now we have to support it, and it's better to just not support it at all, ofc this is an issue with many libraries, but libraries developed by independents get scrutinized hard. "hobby" projects by independants are almost never used, "professionally developed" projects by independants are used, but hesitantly so
2024-09-03 09:08:13
ofc I can't say for sure this is moz's reasoning, but it's been the reasoning of pretty much everyone I have ever contracted with. so the pattern is strong
afed
2024-09-03 09:09:38
but at least this is some progress, even with a completely new decoder, also there are many other companies who think that something on rust is automatically good and safe
Quackdoc
2024-09-03 09:10:41
it may not be "automatically good and safe" but it is automatically better
lonjil
2024-09-03 09:11:03
If the Google team started officially contributing to jxl-oxide, then Mozilla would presumably accept it. So the question is simply whether that is desired. Is it the best option from a technical PoV? Is Tirr interested in being the maintainer for such a project, or to give the project to someone else? Etc.
Quackdoc
_wb_ jxl-oxide is fine in terms of conformance, but I think <@179701849576833024> has some ideas to get better performance (ideas that also require some improvements to the Rust compiler, iirc)
2024-09-03 09:11:46
well that comes back to if they even want to go that route. > jxl-oxide is fine in terms of conformance, but I think veluca has some ideas to get better performance (ideas that also require some improvements to the Rust compiler, iirc)
lonjil
2024-09-03 09:17:39
<@179701849576833024> so, friendly question, are the plan to have a nice and sound jxl decoder in rust, or to have something crazy unsafe and messy? :p
gb82
2024-09-03 09:17:48
Regarding recent Mozilla news - is jxl-oxide coming to Firefox?
Quackdoc
2024-09-03 09:18:05
dunno, read up,
veluca
lonjil <@179701849576833024> so, friendly question, are the plan to have a nice and sound jxl decoder in rust, or to have something crazy unsafe and messy? :p
2024-09-03 09:22:22
Guess 😛
lonjil
2024-09-03 09:23:22
Well, considering the fact that you seem like a competent Rust developer, I'm gonna say, probably very sound and nice?
2024-09-03 09:24:06
Probably a higher rate of unsafe blocks than most projects *if needed*, but presumably well checked.
veluca
2024-09-03 09:24:28
https://github.com/google/rbrotli-enc
2024-09-03 09:24:35
I'd expect not needed
2024-09-03 09:24:45
But working on it 😉
2024-09-03 09:25:23
(rbrotli-enc was sort of the first proof of concept that you didn't need that much unsafe for fast code)
Foxtrot
2024-09-03 09:27:19
I wonder if the reference jxl encoder/decoder was written in Rust if it would be more adopted nowadays.
CrushedAsian255
2024-09-03 09:28:42
https://tenor.com/view/rust-rust-lang-ferris-programming-jarvis-gif-7441835028842397805
Foxtrot
2024-09-03 09:29:07
I don't wanna look like some rust fan boy. It just seems that if anything is written in Rust it automatically means double the popularity
CrushedAsian255
2024-09-03 09:29:56
Is there no way to FFI c++ and rust?
Foxtrot
2024-09-03 09:30:25
There is, https://github.com/dtolnay/cxx
Demiurge
2024-09-03 09:30:33
The way people treat rust differently than C++ is kinda strange and silly. It's not really what guarantees the language make but what guarantees the programmer makes. The language can only help make that easier or harder, but doesn't change anything fundamentally
Quackdoc
CrushedAsian255 Is there no way to FFI c++ and rust?
2024-09-03 09:32:00
there is
Foxtrot I don't wanna look like some rust fan boy. It just seems that if anything is written in Rust it automatically means double the popularity
2024-09-03 09:34:06
yeah because lots of people adore rust, and less vulns is always a good thing
Foxtrot
2024-09-03 09:34:16
But either way I think making rust implementation will help popularity.
2024-09-03 09:34:55
The worst thing would be letting avif make rust version first and then Google will just say "we support avif because it's memory safe"
Quackdoc
2024-09-03 09:36:02
there is already a rust jxl decoder, and a rust av1 decoder
Foxtrot
2024-09-03 09:37:23
If i understand correctly what Mozilla said they want something made directly by jxl devs?
2024-09-03 09:39:44
I wonder if next time someone will demand also encoder to be made in Rust
w
2024-09-03 09:42:23
my company would rather have it c++ than rust
lonjil
veluca I'd expect not needed
2024-09-03 09:45:00
but wait, doesn't constructing those feature structs require at least a little unsafe? 🤔
Quackdoc
Foxtrot If i understand correctly what Mozilla said they want something made directly by jxl devs?
2024-09-03 09:45:02
I don't think that's what they said, but rather that they want x goals, and that the jxl devs are willing to help meet them
lonjil
CrushedAsian255 Is there no way to FFI c++ and rust?
2024-09-03 09:45:18
Firefox manages to do it
veluca
lonjil but wait, doesn't constructing those feature structs require at least a little unsafe? 🤔
2024-09-03 09:46:08
yeah, but you don't need *too much* of it
Quackdoc there is already a rust jxl decoder, and a rust av1 decoder
2024-09-03 09:46:39
no, there's a rust AV1 glue around a bunch of assembly AV1 code 🙂
Foxtrot
2024-09-03 09:47:09
So it's just marketing 😄
w
2024-09-03 09:47:19
It was always marketing
Quackdoc
veluca no, there's a rust AV1 glue around a bunch of assembly AV1 code 🙂
2024-09-03 09:47:25
[av1_kekw](https://cdn.discordapp.com/emojis/758892021191934033.webp?size=48&quality=lossless&name=av1_kekw) yes, indeed xD, though I do think rav1d can be compiled with no ASM, i dunno how usable it would be \
2024-09-03 09:47:30
I could test actually, after im done updating I think I will see how fast/slow it is
CrushedAsian255
2024-09-03 09:48:37
Pure ASM implementation of JXL?
Quackdoc
CrushedAsian255 Pure ASM implementation of JXL?
2024-09-03 09:51:31
now THAT would be fast
afed
2024-09-03 09:56:29
dav1d is exactly that (some c just as a wrapper), but jxl is mostly not slower even without a pure asm decoder <:KekDog:805390049033191445>
CrushedAsian255
2024-09-03 09:57:40
Could JXL get better performance if using pure ASM?
afed
2024-09-03 10:01:38
i think so, if optimized properly
Orum
2024-09-03 10:01:56
in theory nearly everything can, but it's typically not worth it except in performance-critical areas
2024-09-03 10:03:12
namely because it's challenging to write performant asm and even more of a pain to maintain it
afed
2024-09-03 10:03:16
https://youtu.be/a4uretCJh_4?t=120
jonnyawsom3
_wb_ Nice to see that this news is now out in the open, I was having a bit of a hard time keeping my mouth shut about it 🙂
2024-09-03 10:47:18
Odd timing too, since I mentioned it earlier today (Or at least the old offer about making a rust decoder within a few months for browser support)
monad
2024-09-03 10:53:07
with Luca doing it, it'll probably just be a couple weeks
Orum
2024-09-04 01:24:34
isn't there already a rust decoder?
2024-09-04 01:25:07
https://github.com/tirr-c/jxl-oxide
jonnyawsom3
2024-09-04 01:25:54
https://discord.com/channels/794206087879852103/803574970180829194/1280625902165819476
2024-09-04 01:26:12
Along with them wanting it from the original team instead of a single person
Orum
2024-09-04 01:27:40
well it's unlikely it's going to be rewritten from scratch, even if it is adopted by the <:JXL:805850130203934781> team
2024-09-04 01:28:01
and oxide has several contributors
2024-09-04 01:29:24
in any case I don't buy the whole "Oh we're lacking a rust-based decoder" or "the rust decoder isn't fast enough yet" argument
afed
2024-09-04 01:29:44
<https://github.com/web-platform-tests/interop/issues/430#issuecomment-1776762287>
Quackdoc
Orum in any case I don't buy the whole "Oh we're lacking a rust-based decoder" or "the rust decoder isn't fast enough yet" argument
2024-09-04 01:31:05
same thing I said here
Orum
2024-09-04 01:32:29
yeah, it feels like this is just another failed argument for the Mozilla team grasping at straws for reasons to not include JXL support
2024-09-04 01:32:45
then again, maybe we'll see it implemented in a couple months, who knows? 🤷‍♂️
Quackdoc
2024-09-04 01:33:07
no, this actually makes a lot of sense, realistically speaking, unless mozilla wants to invest in tirr or another contributor to maintain it full time, it's not viable for them to implement it
Orum
2024-09-04 01:34:21
well they've had more than a few offers of people willing to maintain it
Quackdoc
2024-09-04 01:35:50
well in the end, that's what this really boils down to, the jxl team has reputation and backing, so they can actually be relied on to deliver. whether it's a new implementation or jxl-oxide, they prolly don't care
afed
2024-09-04 01:43:04
at least it's moving forward and not something forever neutral and of unknown status
CrushedAsian255
2024-09-04 01:45:36
and i guess this is some more proof that the industry does actually care
2024-09-04 01:45:47
(if we needed any more)
Tirr
2024-09-04 02:15:44
wait mozilla what
afed
2024-09-04 02:16:15
https://canary.discord.com/channels/794206087879852103/803574970180829194/1280621586583654504
yurume
2024-09-04 02:19:15
while whether jxl-oxide or Rust version of libjxl would be used for firefox remains to be seen and/or determined, it's indeed very good news to hear as it means mozilla is actually willing to add JPEG XL on the reasonable condition
Tirr
veluca I mean it's not like my PRs are secret 😛 https://github.com/rust-lang/rust/pull/129881
2024-09-04 02:26:46
seems like this enables highway-style portable simd in Rust, am I getting it right
veluca
2024-09-04 04:51:36
That's the idea yep
_wb_
yurume while whether jxl-oxide or Rust version of libjxl would be used for firefox remains to be seen and/or determined, it's indeed very good news to hear as it means mozilla is actually willing to add JPEG XL on the reasonable condition
2024-09-04 05:28:25
Exactly. Conditioning jxl support on a reasonable technical condition is a huge step forward.
Orum
2024-09-04 05:39:50
well the extant rust JXL implementation is just a decoder (AFAIK)
2024-09-04 05:40:28
which is all Firefox needs, but as such it cannot replace all of libjxl
_wb_
2024-09-04 05:46:32
I guess in most applications where security is a big thing, a decoder is all you need.
Quackdoc
2024-09-04 05:47:43
in many cases yeah, it's not like encoders don't pose a risk, but does firefox even using any jxl encoding stuff in the first place?
2024-09-04 06:10:59
I guess if you want to return a jxl, zune-jpegxl could be a short term solution
2024-09-04 06:36:23
you know, I wouldnt be surprised if firefox's decision isn't the start of a lot of people choosing to implement reference software for things in rust
_wb_
2024-09-04 06:51:14
Browsers do need JPEG and PNG encoders because existing pages rely on that. For other formats they can add encoders if they want but I would not recommend doing that, or if you do, only something simple that only does fast lossless or something.
Quackdoc
2024-09-04 06:51:53
sounds like what zune-jpegxl is going for lol
CrushedAsian255
_wb_ Browsers do need JPEG and PNG encoders because existing pages rely on that. For other formats they can add encoders if they want but I would not recommend doing that, or if you do, only something simple that only does fast lossless or something.
2024-09-04 06:59:31
JXL -d 0 -e 1-3? Something like libhydrium?
Tirr
2024-09-04 07:01:09
d0e1 or d1e3 or something
2024-09-04 07:01:53
(I'd say d0e2 is also ok)
Quackdoc
2024-09-04 07:02:35
has anyone benched zune-jpegxl?
CrushedAsian255
2024-09-04 07:08:15
Are the “effort” levels standardised or are they a libjxl thing
yoochan
2024-09-04 07:10:15
I understand they are only a libjxl thing. Especially due to the fact libjxl itself don't uses somes features of the format yet. Nothing forbids a smart folk to do better **and** faster 😁
Quackdoc
2024-09-04 07:16:40
zune-jpegxl seems to be equivilent for cjxl -d 0 -e 1 ```ps ➜ zune-image git:(dev) ✗ hyperfine --runs 20 './target/release/zune --input ~/Pictures/ina4k.png --output-format jxl --out ina4k.zune.jxl' 'cjxl -d 0 -e 1 ~/Pictures/ina4k.png ina4k.cjxl.jxl' Benchmark 1: ./target/release/zune --input ~/Pictures/ina4k.png --output-format jxl --out ina4k.zune.jxl Time (mean ± σ): 375.4 ms ± 12.1 ms [User: 546.0 ms, System: 120.6 ms] Range (min … max): 359.7 ms … 409.0 ms 20 runs Benchmark 2: cjxl -d 0 -e 1 ~/Pictures/ina4k.png ina4k.cjxl.jxl Time (mean ± σ): 320.1 ms ± 18.0 ms [User: 302.4 ms, System: 99.5 ms] Range (min … max): 296.8 ms … 366.9 ms 20 runs Summary cjxl -d 0 -e 1 ~/Pictures/ina4k.png ina4k.cjxl.jxl ran 1.17 ± 0.08 times faster than ./target/release/zune --input ~/Pictures/ina4k.png --output-format jxl --out ina4k.zune.jxl ``````ps du -ba | sort | rg -i ina 8858079 ./ina4k.zune.jxl 8858246 ./ina4k.cjxl.jxl ``````ps ➜ zune-image git:(dev) ✗ ffmpeg -hide_banner -loglevel error -i ina4k.cjxl.jxl -c:v ppm -f image2pipe - | b3sum 91b60ec67970d1ab4d1c46da43f886d9f401ea0b1090f3b3c7f1494f46e735fa - ➜ zune-image git:(dev) ✗ ffmpeg -hide_banner -loglevel error -i ina4k.zune.jxl -c:v ppm -f image2pipe - | b3sum 91b60ec67970d1ab4d1c46da43f886d9f401ea0b1090f3b3c7f1494f46e735fa - ```
lonjil
Orum yeah, it feels like this is just another failed argument for the Mozilla team grasping at straws for reasons to not include JXL support
2024-09-04 09:34:04
I really doubt that considering they've been in contact with the libjxl team about it for months...
Quackdoc zune-jpegxl seems to be equivilent for cjxl -d 0 -e 1 ```ps ➜ zune-image git:(dev) ✗ hyperfine --runs 20 './target/release/zune --input ~/Pictures/ina4k.png --output-format jxl --out ina4k.zune.jxl' 'cjxl -d 0 -e 1 ~/Pictures/ina4k.png ina4k.cjxl.jxl' Benchmark 1: ./target/release/zune --input ~/Pictures/ina4k.png --output-format jxl --out ina4k.zune.jxl Time (mean ± σ): 375.4 ms ± 12.1 ms [User: 546.0 ms, System: 120.6 ms] Range (min … max): 359.7 ms … 409.0 ms 20 runs Benchmark 2: cjxl -d 0 -e 1 ~/Pictures/ina4k.png ina4k.cjxl.jxl Time (mean ± σ): 320.1 ms ± 18.0 ms [User: 302.4 ms, System: 99.5 ms] Range (min … max): 296.8 ms … 366.9 ms 20 runs Summary cjxl -d 0 -e 1 ~/Pictures/ina4k.png ina4k.cjxl.jxl ran 1.17 ± 0.08 times faster than ./target/release/zune --input ~/Pictures/ina4k.png --output-format jxl --out ina4k.zune.jxl ``````ps du -ba | sort | rg -i ina 8858079 ./ina4k.zune.jxl 8858246 ./ina4k.cjxl.jxl ``````ps ➜ zune-image git:(dev) ✗ ffmpeg -hide_banner -loglevel error -i ina4k.cjxl.jxl -c:v ppm -f image2pipe - | b3sum 91b60ec67970d1ab4d1c46da43f886d9f401ea0b1090f3b3c7f1494f46e735fa - ➜ zune-image git:(dev) ✗ ffmpeg -hide_banner -loglevel error -i ina4k.zune.jxl -c:v ppm -f image2pipe - | b3sum 91b60ec67970d1ab4d1c46da43f886d9f401ea0b1090f3b3c7f1494f46e735fa - ```
2024-09-04 09:36:24
I think zune-jpegxl is actually a port of the old fjxl code, so yeah
2024-09-04 10:28:12
<@179701849576833024> what are your thoughts on the portable-simd effort in Rust? Does struct target feature gating interact with it at all or do you intend on figuring out a portable SIMD story entirely separate from the portable-simd effort?
veluca
lonjil <@179701849576833024> what are your thoughts on the portable-simd effort in Rust? Does struct target feature gating interact with it at all or do you intend on figuring out a portable SIMD story entirely separate from the portable-simd effort?
2024-09-04 11:02:44
The second one! Portable-simd works well enough for common cases, but highway (and thus presumably highway-rs, when I'll get down to writing it) gives you more control... Also portable-simd doesn't really have a good dynamic dispatch solution as far as I can tell
lonjil
2024-09-04 11:03:11
alright 👍
2024-09-04 11:05:44
I wonder if someone who wants to do dynamic dispatch with portable-simd might just use the struct target feature thing. I can imagine an "all-the-simd" crate that takes your generic portable simd code and monomorphizes it for all simd targets rustc supports, and then gives you dynamic dispatch functions you can call.
veluca
2024-09-04 11:06:20
Yeah, that's definitely something you could do
2024-09-04 11:06:41
Good point actually, maybe I should use that to get some help from the portable-simd people
Demiurge
2024-09-04 12:00:08
That rust implementation of the brotli codec seems to be largely assembly or intrinsics. How exactly does the rust toolchain help with that? Wouldn't C do just as great of a job at being the glue code for optimized assembly?
Tirr
2024-09-04 12:01:49
at least you don't have to deal with cmake or something
CrushedAsian255
2024-09-04 12:06:53
cargo >> cmake
2024-09-04 12:07:04
so much better
lonjil
Demiurge That rust implementation of the brotli codec seems to be largely assembly or intrinsics. How exactly does the rust toolchain help with that? Wouldn't C do just as great of a job at being the glue code for optimized assembly?
2024-09-04 12:09:44
wrapping unsafe stuff like assembly inside sound interfaces makes your life much easier
Demiurge
2024-09-04 12:14:39
Who's forcing anyone to use cmake?
w
2024-09-04 12:14:57
cargo is bloat
2024-09-04 12:15:01
it's like npm
yurume
2024-09-04 12:15:59
much more reasonable than npm in that count, but if you don't npm for its general attitude towards dependencies, yeah you won't like cargo too
lonjil
2024-09-04 12:16:29
npm is a thought-terminating cliché, not useful in discussions
yurume
2024-09-04 12:16:35
(saying as someone who constantly battles with Rust dependencies at the day job)
Demiurge
2024-09-04 12:18:06
Just keep it simple and try not to overcomplicate. C can be as braindead simple as you want it to be, no one forces anyone to use Cmake instead of just plain make. Or anything in between.
lonjil wrapping unsafe stuff like assembly inside sound interfaces makes your life much easier
2024-09-04 12:19:07
Isn't the soundness of an interface up to the programmer and ultimately not the language?
lonjil
2024-09-04 12:20:33
The programmer needs to design a sound interface and implementation, but with Rust, the interface itself can enforce the contract needed to actually be safe.
Demiurge
2024-09-04 12:20:40
I am no rust expert but I don't know if learning rust magically teaches a programmer about sound interface design
lonjil
2024-09-04 12:21:06
In C, you design an implementation and an interface, but to actually be sound you need to provide a bunch of detailed information about the exact correct way to use it.
w
2024-09-04 12:21:09
common misconception
2024-09-04 12:21:17
rust you still end up with garbage
lonjil
2024-09-04 12:21:45
In Rust, something is called *sound* if it cannot be mis-used to create UB.
w
2024-09-04 12:22:00
and you can do the same in c++
Demiurge
2024-09-04 12:23:50
Rust has compiler time checks for things like pointer ownership, but based on my admittedly limited knowledge, I doubt that will make a programmer have any better foresight or skill at organizing and structuring a software project and designing reasonable interfaces.
lonjil
w and you can do the same in c++
2024-09-04 12:24:19
incorrect
Demiurge
2024-09-04 12:24:41
At the end of the day as far as I know a language can only help make your job easier or harder but it can't make people suddenly good at design...
lonjil
2024-09-04 12:24:54
You can certainly make things in C++ that have way fewer footguns than C, but it's never hard to end up with UB in C++.
w
2024-09-04 12:25:12
and i dont think it's hard for rust either
lonjil
Demiurge At the end of the day as far as I know a language can only help make your job easier or harder but it can't make people suddenly good at design...
2024-09-04 12:25:13
well no one said that
w and i dont think it's hard for rust either
2024-09-04 12:26:13
if you're using sound stuff, you have to use `usesafe {}` yourself to do it, which makes it pretty obvious you're doing something potentially dangerous.
Demiurge
2024-09-04 12:27:08
It's good for a language to have compile time checks and to help prevent accidental mistakes and make it harder to forget to dot your i's and cross your t's for example. But someone who has no skill at planning and organizing or what features an api/abi surface should have, won't magically have skills they had no talent in before
w
2024-09-04 12:27:18
I don't get the UB argument
2024-09-04 12:27:25
you can still end up with garbage even without unsafe
2024-09-04 12:27:51
from my limited time using rust it seemed the same as any other language
Demiurge
2024-09-04 12:28:07
UB is usually unintended and it's good for a toolchain to detect and alert the programmer about it
w
2024-09-04 12:28:07
hype appeared to be all marketing
yurume
w you can still end up with garbage even without unsafe
2024-09-04 12:28:42
probably not a good place to discuss that anyway, but you will need some concrete example to strongly say that
w
2024-09-04 12:28:55
i mean bad code in general
Demiurge At the end of the day as far as I know a language can only help make your job easier or harder but it can't make people suddenly good at design...
2024-09-04 12:30:02
this
yurume
2024-09-04 12:30:45
if I want to write a bad code I can do so for a very long time, but we normally don't bash a language for the reason that one can write some bad code; we bash that when I want to write a good code but language doesn't help me and keep me eventually writing a bad code
Demiurge
2024-09-04 01:09:39
Tools exist to help make our jobs easier. You still need to come up with the plan. Tools can't tell you the plan or make you better at constructing ideas, they can just make it easier for you along the way.
2024-09-04 01:10:54
A good programming language can only and only needs to make it more easy and convenient to debug software.
2024-09-04 01:16:10
C has a lot of shortcomings and let's say low-hanging fruit in that department, you can improve upon C but I would be surprised if a programming language could actually make programmers better at designing thoughtful and practical interfaces... Maybe if it required every possible error condition to be annotated and accounted for... undefined behavior, overflow, etc
2024-09-04 01:18:17
The main issues with designing an interface is handling errors and maybe reading/writing/(de)allocating ranges of memory
2024-09-04 01:19:36
But mostly it's the lack of explicitly knowing how every possible error condition will be handled
Foxtrot
2024-09-04 02:11:28
> Tools can't tell you the plan hey chatgpt, how should i plan this out? 😄
monad
Quackdoc has anyone benched zune-jpegxl?
2024-09-04 03:25:17
https://discord.com/channels/794206087879852103/803645746661425173/1246748206574993441
VcSaJen
Quackdoc from a ex-corp standpoint, the issue is, if tirr goes offline for whatever reason, now we have to support it, and it's better to just not support it at all, ofc this is an issue with many libraries, but libraries developed by independents get scrutinized hard. "hobby" projects by independants are almost never used, "professionally developed" projects by independants are used, but hesitantly so
2024-09-04 05:33:29
If that was true, the supply chain attacks from ... devs wouldn't have been an issue in npm.
CrushedAsian255 Are the “effort” levels standardised or are they a libjxl thing
2024-09-04 05:55:29
Effort is not standartized, but it's not a libjxl thing. Even PNG encoder in Photoshop have effort levels.
Cacodemon345
2024-09-04 05:55:42
Even "professionally-developed" libraries like OpenImageIO does not have basic stuff like animated PNG support.
Quackdoc
VcSaJen If that was true, the supply chain attacks from ... devs wouldn't have been an issue in npm.
2024-09-04 06:06:58
this is because npm is a cluster fuck of crappy intertwined dependencies.
2024-09-04 06:07:23
everyone I know is trying their damned hardest to avoid it like a plague
CrushedAsian255
VcSaJen Effort is not standartized, but it's not a libjxl thing. Even PNG encoder in Photoshop have effort levels.
2024-09-04 08:44:21
I know the concept of effort is not JXL only, I was specifically talking about the scale that libjxl uses
lambda
2024-09-05 03:21:24
> Over the past few months, we’ve had some productive conversations with the JPEG-XL team at Google Research around the future of the format in Firefox. Does this mean that eventually chromium might adopt JXL too?
Quackdoc
2024-09-05 03:22:22
they will eventually, but google research =/= chromium team
2024-09-05 03:22:51
with firefox supporting it, chrome will be the only major browser that doesn't, and that will force them to
Orum
2024-09-05 03:24:24
you say that like it doesn't have more than half of the browser market share: https://upload.wikimedia.org/wikipedia/commons/7/7f/StatCounter-browser-ww-monthly-202312-202312-bar.png
lambda
2024-09-05 03:24:33
yeah that's what i'm thinking
Orum
2024-09-05 03:25:29
Edge also doesn't support it and that has more market share than Firefox
Quackdoc
2024-09-05 03:29:14
doesn't really matter, yes, it's a "minority market share" but implying that firefox has no market power is wrong, I mean just look at how long chrome put off the manifest changes. they still have over 150'000'000 monthy users which is not insignificant no matter how much anyone wants to downplay it
Orum
2024-09-05 03:29:49
sure but Safari supporting it is still a way bigger deal, and that happened a while ago
Quackdoc
2024-09-05 03:30:49
safari can be ignored because apple is apple lol
Orum
2024-09-05 03:31:24
...it literally has more market share than Firefox, Edge, Opera, and "Samsung Internet" *combined*
Quackdoc
2024-09-05 03:32:18
doesn't matter, safari does have "sway" but no one cares if safari implements a feature that chrome doesn't
CrushedAsian255
2024-09-05 03:32:33
Apple does random stuff all the time
Orum
Quackdoc doesn't matter, safari does have "sway" but no one cares if safari implements a feature that chrome doesn't
2024-09-05 03:32:41
that's the whole problem
2024-09-05 03:33:24
what are the chances of Opera getting <:JXL:805850130203934781> support?
2024-09-05 03:35:32
...or Edge, for that matter?
Quackdoc
2024-09-05 03:35:39
no idea,
Orum
2024-09-05 03:36:08
I suspect Edge will only follow what Chrome does, so the odds are next to nil, but I could see Opera following Firefox if they implement it
Quackdoc
2024-09-05 03:37:04
possibly, but chrome really doesn't like it when people can go "oh this browser doesn't support X, just install this browser instead"
CrushedAsian255
2024-09-05 03:37:06
Brave might just to spite Google?
Orum
Quackdoc possibly, but chrome really doesn't like it when people can go "oh this browser doesn't support X, just install this browser instead"
2024-09-05 03:37:28
yeah but end users don't give a shit about JXL, present company excluded
CrushedAsian255
2024-09-05 03:37:51
And website will just fall back on AVIF or WebP
Quackdoc
Orum yeah but end users don't give a shit about JXL, present company excluded
2024-09-05 03:37:53
that's not true at all any more, my mom has been sent multiple jxl files from my sister lol
CrushedAsian255
2024-09-05 03:38:22
If it’s not more widely supported people will see it the same way as HEIC or WebP
2024-09-05 03:38:32
The format that you will just convert to something else
Orum
2024-09-05 03:38:36
okay well I'm sure your mom being sent JXLs from your sister will make Google implement JXL in Chrome...
Quackdoc
2024-09-05 03:38:41
people are now actually sharing jxl images now which is fairly important
Orum okay well I'm sure your mom being sent JXLs from your sister will make Google implement JXL in Chrome...
2024-09-05 03:38:47
literally both of them are normies
2024-09-05 03:38:57
the point is, normies are sharing JXL images now
2024-09-05 03:39:06
THAT will get chrome to implement JXL
Orum
Quackdoc literally both of them are normies
2024-09-05 03:39:13
Then why is your sister even using JXLs? Apple?
Quackdoc
2024-09-05 03:39:20
[av1_yep](https://cdn.discordapp.com/emojis/721359241113370664.webp?size=48&quality=lossless&name=av1_yep)
Orum
2024-09-05 03:39:32
they tried that with HEIC/HEIF
2024-09-05 03:39:39
look where it got them
Quackdoc
2024-09-05 03:39:44
heic was patented so no one could implement it
2024-09-05 03:39:52
well not without paying anyways
Orum
2024-09-05 03:40:01
true, but even without that hurdle I'm not sure Chrome's team will care
Quackdoc
2024-09-05 03:40:58
I doubt chrome even cares about cost, seeing as they did actually wind up implementing hevc support
CrushedAsian255
Orum look where it got them
2024-09-05 03:41:28
Also HEIC is the really only an Apple thing
Orum
2024-09-05 03:41:35
Firefox adding support will certainly help JXL's cause though, especially if it does get people to switch to Firefox over Chrome
CrushedAsian255
2024-09-05 03:41:38
More companies support JXL
Quackdoc
2024-09-05 03:41:40
but, well, *no one* outside of a few specifc apps really supported HEIC, practically everything outside of chrome and android are beginning to support it
CrushedAsian255
Orum Firefox adding support will certainly help JXL's cause though, especially if it does get people to switch to Firefox over Chrome
2024-09-05 03:41:58
Most people don’t really care about image format politics
Quackdoc
2024-09-05 03:42:07
~~inb4 windows support will never natively land~~
Orum
CrushedAsian255 Most people don’t really care about image format politics
2024-09-05 03:42:30
no, but if apple users send you images and you have to view them in Firefox instead of Chrome, it's possible it would get them to switch browsers
2024-09-05 03:42:51
and nothing annoys Google more than ~~adblockers~~ people leaving Chrome for other browsers
jonnyawsom3
Orum ...it literally has more market share than Firefox, Edge, Opera, and "Samsung Internet" *combined*
2024-09-05 03:43:57
Edge and Opera are both Chromium, so they might as well just fall under Chrome too
Quackdoc
2024-09-05 03:44:00
speaking of adblockers, watching everyone leave chrome, haha flag go brr
Orum
2024-09-05 03:44:23
ah yeah, then Opera would only get it along with Edge and Chrome
jonnyawsom3
2024-09-05 03:45:19
I did consider messaging their slighly insane social media guy but doubt it would do anything
Orum
2024-09-05 03:46:19
well, probably not anything productive
VcSaJen
Orum you say that like it doesn't have more than half of the browser market share: https://upload.wikimedia.org/wikipedia/commons/7/7f/StatCounter-browser-ww-monthly-202312-202312-bar.png
2024-09-05 04:04:46
With firefox and safari, it would be 66% of all active browser engines supporting JPEG XL.
Orum I suspect Edge will only follow what Chrome does, so the odds are next to nil, but I could see Opera following Firefox if they implement it
2024-09-05 04:07:36
Edge does different stuff than Chrome sometimes. So the chance is not zero. Meanwhile, Opera, Vivaldi, etc, are all zero percent chance.
Demiurge
2024-09-05 06:15:56
I love how google chrome is pouring gasoline on themselves with the whole manifest v3 fiasco
2024-09-05 06:16:15
Gives me warm and fuzzy feelijgs inside :)
CrushedAsian255
2024-09-05 07:08:24
they took down LTT's de-google your life part 2 video
Oleksii Matiash
Demiurge I love how google chrome is pouring gasoline on themselves with the whole manifest v3 fiasco
2024-09-05 07:10:18
I'm fingers crossed that ff will not do the same, just as they do with everything from chrome
Quackdoc
Demiurge I love how google chrome is pouring gasoline on themselves with the whole manifest v3 fiasco
2024-09-05 07:10:40
the funniest part about this is you get another year via corporate flag, easy to toggle, and it's not like mv2 code is going to get nuked any time soon
Oleksii Matiash I'm fingers crossed that ff will not do the same, just as they do with everything from chrome
2024-09-05 07:11:10
not me, I want both firefox and chrome to crash and burn as soon as possible so stuff like servo can get more support
Oleksii Matiash
Quackdoc not me, I want both firefox and chrome to crash and burn as soon as possible so stuff like servo can get more support
2024-09-05 07:11:40
There will be years of no-internet then
CrushedAsian255
Oleksii Matiash There will be years of no-internet then
2024-09-05 07:11:53
webkit?
Orum
CrushedAsian255 they took down LTT's de-google your life part 2 video
2024-09-05 07:12:08
why?
CrushedAsian255
2024-09-05 07:12:18
it talked about adblockers
2024-09-05 07:12:25
there's a reupload though
Orum
2024-09-05 07:12:28
that's prohibited on YT?
Oleksii Matiash
CrushedAsian255 webkit?
2024-09-05 07:12:34
What browsers are based on it?
Quackdoc
Oleksii Matiash There will be years of no-internet then
2024-09-05 07:12:37
nah, alternatives are remarkably close
CrushedAsian255
2024-09-05 07:12:44
<https://www.youtube.com/watch?v=edbaR-HWVXA>
Orum
2024-09-05 07:12:53
I don't actually want to watch it
2024-09-05 07:13:02
just curious what excuse they used to take it down
CrushedAsian255
2024-09-05 07:13:08
"Community Guidelines"
Orum
2024-09-05 07:13:18
but I don't recall that being prohibited on YT 🤔
CrushedAsian255
2024-09-05 07:13:18
so "we don't like it"
Orum but I don't recall that being prohibited on YT 🤔
2024-09-05 07:13:53
technically ad-block is against YT's ToS so showing people how to adblock may fall under the same category?
Quackdoc
Orum but I don't recall that being prohibited on YT 🤔
2024-09-05 07:14:11
im pretty sure adblock stuff is against their stuff
Orum
2024-09-05 07:14:32
sure but I didn't think it was in the ToS
2024-09-05 07:15:01
I mean, on the one hand, I hate LTT, on the other, it's still a bullshit reason to remove a video
CrushedAsian255
2024-09-05 07:15:07
i need sleep
Orum
2024-09-05 07:15:14
same 👋
CrushedAsian255
2024-09-05 07:15:42
gonna get my computer to batch convert JXLs overnight tonight
Oleksii Matiash
Oleksii Matiash What browsers are based on it?
2024-09-05 07:16:13
Well, it seems that only Safari is using it. So no, it is not a replacement for ff for me
Quackdoc
2024-09-05 07:16:22
speaking of that, I updated my mock up for a "gui batch converter", this time i pretty much just redid it entirely in slint's new gui editor, almost
2024-09-05 07:16:49
https://cdn.discordapp.com/attachments/673202643916816384/1281042859562242079/clipboard.png?ex=66da47a2&is=66d8f622&hm=d66f53f81f93c6e694769d864a175432611d16397935db064cac904a400f7fbf&
2024-09-05 07:17:03
only required a bit of code to actually get vscode to recognize it as a slint file
2024-09-05 07:21:21
am I missing anything important? if not I think ill try to make a python and a rust backend to this for fun
A homosapien
Quackdoc am I missing anything important? if not I think ill try to make a python and a rust backend to this for fun
2024-09-05 09:06:55
A faster decompression setting and maybe a check box for `--brotli_effort=11`
yoochan
2024-09-05 09:20:46
For me, a good batch convertor would make a clear separation between lossy / lossless / jpeg conversion. And offer very different options depending on this preliminary choice (including the type of files to process)
2024-09-05 09:22:03
for example if you select jpeg conversion, you get almost no choice, the batch apply on .jpg by default, no quality settings, etc.
Quackdoc
A homosapien A faster decompression setting and maybe a check box for `--brotli_effort=11`
2024-09-05 07:37:28
yeah I was thinking about that, also having a tickbox for `progressive_dc=1`
jonnyawsom3
2024-09-05 07:42:36
Maybe have a warning about higher memory usage at e10, progressive_dc, jpeg reconstruction, ect. When lossless is chosen those disable the chunked encoding
VcSaJen
2024-09-06 09:54:31
For lossless jpeg-to-jxl it's important to verify by converting it backwards then comparing file hashes, especially if the original is being deleted
CrushedAsian255
2024-09-06 09:57:19
especially since it takes basically no cpu time to do so
2024-09-06 09:57:24
it's like why wouldn't you
𐑛𐑦𐑕𐑣𐑸𐑥𐑩𐑯𐑦 | 最不調和の伝播者 | 異議の元素
Oleksii Matiash What browsers are based on it?
2024-09-06 04:35:30
Safari, GNOME Web
Oleksii Matiash
𐑛𐑦𐑕𐑣𐑸𐑥𐑩𐑯𐑦 | 最不調和の伝播者 | 異議の元素 Safari, GNOME Web
2024-09-06 04:40:26
Well, both are not usable for me
username
2024-09-06 05:03:45
I could use some help here maybe https://github.com/nginx/nginx/pull/125 just keep in mind this is related to web servers and web browsers so **please** don't list off random unrelated software or hardware that has JXL support
jonnyawsom3
2024-09-06 05:26:12
> Thanks for the submission. However it's not clear whether the format is widely supported by browsers. Wikipedia says this: > > Support for JPEG XL in Chromium and Chrome web browsers was introduced for testing April 1, 2021[72] and **removed** on December 9, 2022 - with support removed in version 110.[73][74] The Chrome team cited a **lack of interest from the ecosystem**, insufficient improvements, and a wish to focus on improving existing formats as reasons for removing JPEG XL support. I did say we should update the Wiki page with all the recent info... Especially moving the Apple support into the same section as the Chrome removal, since currently you see the removal first and assume it's dead without expanding the category below it
spider-mario
2024-09-06 05:28:59
why is there even such a high bar for adding a single line corresponding to an officially registered mime type
2024-09-06 05:29:31
the cost of merging this seems minimal
2024-09-06 05:30:23
I mean, bmp is in there
2024-09-06 05:30:38
who uses bmp on the web??
jonnyawsom3
2024-09-06 05:39:17
Thinking about it, would a JXL being served with a PNG MIME impact progressive loading at all? Yesterday I was trying to view some of the old HDR test files in Waterfox and noticed they were almost all popping in instead of acting like the transcoded Jpegs they are, opening the inspector revealed them flagged as image/png instead of JXL *but at least not octet-stream*
Demiurge
> Thanks for the submission. However it's not clear whether the format is widely supported by browsers. Wikipedia says this: > > Support for JPEG XL in Chromium and Chrome web browsers was introduced for testing April 1, 2021[72] and **removed** on December 9, 2022 - with support removed in version 110.[73][74] The Chrome team cited a **lack of interest from the ecosystem**, insufficient improvements, and a wish to focus on improving existing formats as reasons for removing JPEG XL support. I did say we should update the Wiki page with all the recent info... Especially moving the Apple support into the same section as the Chrome removal, since currently you see the removal first and assume it's dead without expanding the category below it
2024-09-06 06:50:57
The avif/webp team
jonnyawsom3
Demiurge The avif/webp team
2024-09-06 07:00:43
Yeah, what about them?
2024-09-06 07:01:42
That was a quote from the Github issue
Demiurge
2024-09-06 07:06:06
People don't realize its not even the "chrome" team but specifically the "chrome codec team" aka the on2 vpx team or the webp/avif team who is claiming that there's "not enough interest" in jxl... as if they held webp or avif to the same standard.
2024-09-06 07:06:52
The staggering absurdity and hypocrisy is missed when just calling them "the chrome team"
HCrikki
2024-09-06 08:06:09
servers dont serve to just browsers but nowadays predominantly to 'apps' (if just through cdns). even if browsers ceased to exist, server software should still support notable mime since it will be consumed directly without a browser middleman
2024-09-06 08:12:47
about browsers, there's Cromite
2024-09-06 08:13:23
cromite is the continuation of Bromite and more popular than thorium
Quackdoc
HCrikki about browsers, there's Cromite
2024-09-06 08:13:33
didnt cromite remove support temporarily?
HCrikki
2024-09-06 08:13:44
temporarilly, doesnt change the support
Quackdoc
2024-09-06 08:14:06
well, if it's indefinitely temporarily it does
HCrikki
2024-09-06 08:14:25
lot of stuff is disabled for a while until upstream's change is researched some more
username
2024-09-06 08:15:26
I felt worried it could be used as auguring point if Cromite was looked into by the nginx folks and they found JXL support disabled which is why I didn't mention it
HCrikki
2024-09-06 08:15:36
afaik one can build cromite himself with jxl on, its just the official distribution that temp disabled in its own builds
2024-09-06 08:16:22
the app support doc needs massive updating. its nuts to require a cla and email made public for mentioning adoptions
2024-09-06 08:19:18
about support on *mobile* (as tracked by caniuse), the 4 biggest mobile markets (us, uk, can, japan) have 30-39% support now (from iso and macos alone)
2024-09-06 08:20:51
mobile per country is a meaningful stat worth keeping an eye on as those are large markets with strong domestic web ecosystems (ie regional sites or apple-dominated workflows)
2024-09-06 08:22:14
modern formats are mainly consumed through a cdn anyway (nobody ever uploads webps after all lol)
Demiurge
2024-09-06 08:22:44
There's absolutely no reason for nginx to refuse to add a mime type for jxl. It's absurd. They have a mime type for google earth and rar, but not jxl?
2024-09-06 08:23:03
That's insane
HCrikki
2024-09-06 08:23:59
main dev/founder who did all the carrying recently left. freenginx and derivatives would likely add it with no issue
Demiurge
2024-09-06 08:24:46
image/x-jng is there too
2024-09-06 08:25:09
I have never in my life ever seen a JNG file
HCrikki
2024-09-06 08:25:28
apps like shopify could probably benefit from mime addition too - servers dont serve just browsers and the average netizen uses multiple on every device they own
username
2024-09-06 08:26:27
Shopify already has their servers properly configured with the JXL MIME type from what I understand
HCrikki
2024-09-06 08:28:31
maybe it fails to serve jxl in priority in some circumstances (does it serve jxl to its own app?)? personally i think jxl should always be the highest priority when decode capability exists, then other formats. change begins with helpful defaults - if everyone always served webp as the first format, no other format would ever get a chance at reach
username
2024-09-06 08:31:25
nginx adding JXL to their default config would just benefit servers that don't manually add JXL to their config (which is a lot of servers). some examples being jpegxl.info and jpeg.org
HCrikki
2024-09-06 08:31:51
iinm 'lemmy-powered' websites support jxl through pict-rs since v5 iinm. theres a few hundreds of those born from reddit sucking
2024-09-06 08:32:14
only a few lemmy apps decode jxl for now, others dont load a fallback
2024-09-06 08:32:43
lemme confirm
VcSaJen
2024-09-07 05:04:39
I understand the hesitation when it was provisional, but now it is as official as it gets. Is there any reason to not add an official image/* IANA media type (that's not prefixed with "vnd.")?
CrushedAsian255
2024-09-07 05:56:13
image/jxl is what most things use
2024-09-07 05:56:43
Not sure what’s wrong wit it
2024-09-07 06:00:41
It’s official, https://www.iana.org/assignments/media-types/image/jxl
2024-09-07 06:00:47
What reason not to add
Demiurge
2024-09-07 07:32:55
It has `application/java-archive`, `application/x-stuffit`, `video/x-mng` and even `application/vnd.google-earth.kmz`
2024-09-07 07:34:31
Not having `image/jxl` actually breaks websites, unlike those other ones.
2024-09-07 07:35:14
Well, maybe "break" is too strong a word for this. But it's certainly more consequential.
_wb_
2024-09-07 09:55:44
The most annoying thing is that if you do "open image in new tab", it will just download the file instead of showing the image
HCrikki
2024-09-08 04:43:02
is there a way for interested parties like companies to obtain some form of commercial support? like participating in large migrations, adding decode support to specific apps
CrushedAsian255
2024-09-08 04:43:28
Isn’t this FOSS?
2024-09-08 04:43:46
Why would they need a commercial ?
HCrikki
2024-09-08 04:44:08
asking not for myself but similar concerns pop up. its a very new format almost noone is familiar with or integrates properly
CrushedAsian255
2024-09-08 04:44:40
Cough cough, adobe
HCrikki
2024-09-08 04:45:01
well i said commercial since its a familiar method of guaranteeing progress. also its libjxl and other libraries thats foss, jxl is a spec and image format
CrushedAsian255
2024-09-08 04:45:35
Oh I misread, commercial **support**
HCrikki
2024-09-08 04:46:24
adobe has dng sdk but i doubt they bother with but the biggest customers. even samsung botched its dng1.7 support in gallery and cameraraw
2024-09-08 04:47:58
what i meant was, whats the solution if anyone wants some form of guaranteed support in their apps thats not 'figure it out on your own'
jonnyawsom3
CrushedAsian255 Cough cough, adobe
2024-09-08 06:43:35
> integrates properly
Quackdoc
CrushedAsian255 Why would they need a commercial ?
2024-09-08 11:10:14
foss is funded by commercial entities. FOSS is free, work is not
jonnyawsom3
2024-09-09 11:21:06
Also <@198765865494118401>, since we share the server, I made an issue a few months ago :P https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/1562
frep
Also <@198765865494118401>, since we share the server, I made an issue a few months ago :P https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/1562
2024-09-09 11:21:47
awesomesauce :>
Quackdoc
2024-09-11 02:54:42
https://review.lineageos.org/c/LineageOS/android_packages_apps_Glimpse/+/392231?tab=comments > We will think about this once Aperture gains JPEG-XL support (we're waiting for Google)
2024-09-11 02:54:44
well this sucks
CrushedAsian255
2024-09-11 02:55:13
also still obsessed with that damned hyphen!
Quackdoc
2024-09-11 02:57:09
xD
2024-09-11 02:58:03
can we take a second to appreciate "we want our own apps so we aren't tied down by google, but we are going to wait for google for everything regardless"
CrushedAsian255
2024-09-11 02:59:54
i guess it proves "industry adoption" ?
2024-09-11 03:00:02
it's a FOSS format, shouldn't they be all for it?
Meow
CrushedAsian255 also still obsessed with that damned hyphen!
2024-09-11 05:58:28
Seems the source of spreading that hyphen is Apple
CrushedAsian255
2024-09-11 06:04:06
The WebKit team knew what they were talking about
2024-09-11 06:04:10
username
username I could use some help here maybe https://github.com/nginx/nginx/pull/125 just keep in mind this is related to web servers and web browsers so **please** don't list off random unrelated software or hardware that has JXL support
2024-09-11 07:26:50
update on this. it seems like nginx is now planning on having **all** IANA media types which includes `image/jxl`, so uh I guess JPEG XL support is planned on coming to nginx after all? although due to them trying to include every single MIME type they are now getting conflicts between some of them and are unsure of what to do exactly yet. https://github.com/nginx/nginx/pull/145 (this pull request is official and not from someone random)
2024-09-11 07:28:49
so uh nice to see them trying to do something about missing media types although this kinda seems like a brute force approach
2024-09-11 07:30:30
although if they sort out how to deal with the conflicts then this would mean nginx will support whatever media type you can think of as long as it's registered with IANA
Quackdoc
2024-09-11 07:42:07
neat I guess
VcSaJen
username update on this. it seems like nginx is now planning on having **all** IANA media types which includes `image/jxl`, so uh I guess JPEG XL support is planned on coming to nginx after all? although due to them trying to include every single MIME type they are now getting conflicts between some of them and are unsure of what to do exactly yet. https://github.com/nginx/nginx/pull/145 (this pull request is official and not from someone random)
2024-09-11 08:14:16
Is it based on file extension, or magic number?
_wb_
2024-09-11 01:36:30
https://github.com/nginx/nginx/pull/145#issuecomment-2343697998
gb82
2024-09-11 04:31:44
https://www.macrumors.com/2024/09/09/iphone-16-pro-supports-jpeg-xl-format/
2024-09-11 04:31:51
Not sure if posted already
2024-09-11 04:32:07
But I guess the code is still there
lonjil
2024-09-11 04:34:26
<@703028154431832094> https://discord.com/channels/794206087879852103/822105409312653333/1283141538708455465
Oleksii Matiash
2024-09-11 05:28:32
Second half of 2024, PTGui is introducing... JPEG2000 🤦‍♂️
spider-mario
2024-09-11 06:01:13
after JPEG XL! https://ptgui.com/versionhistory.html#:~:text=Version%2012.24%20(5,LightRoom%20and%20Photoshop%2E
Oleksii Matiash
spider-mario after JPEG XL! https://ptgui.com/versionhistory.html#:~:text=Version%2012.24%20(5,LightRoom%20and%20Photoshop%2E
2024-09-11 06:05:36
Only jxl-in-dng, because otherwise they will immediately fail on new ACR\LR files. Jxl as input\output format.. maybe in 2034
2024-09-11 06:07:48
I'm really curious, who decided to use jpeg2000 now?
HCrikki
2024-09-11 06:10:35
maybe jp2 codecs improved to the point it makes more sense to implement now
monad
2024-09-11 11:05:25
I still see jp2 distributed in pdf
Oleksii Matiash
monad I still see jp2 distributed in pdf
2024-09-12 06:37:57
Yes, because there is no choice for color images, only jpeg, jpeg2000, or 'png'. But for application that is not limited by format specs starting using jpeg2000 in 2024 is.. strange for me.
CrushedAsian255
2024-09-12 06:38:37
jpeg 3000 when?
Oleksii Matiash
CrushedAsian255 jpeg 3000 when?
2024-09-12 06:44:05
It would be from google, anything to not implement jxl
Meow
2024-09-12 08:05:34
XL is 40 in Roman numeral so JPEG 2000 should be much more advanced
monad
2024-09-12 08:11:32
but 2000 in decimal is 54, so not too much advanced
Meow
2024-09-12 08:26:48
So someone got the idea much earlier
strawberry pie
2024-09-12 08:43:29
https://github.com/apache/httpd/commit/b5e9884a48f72cdfeddc60b121a24560ef8b88a9
2024-09-12 08:43:41
Merged into Apache
CrushedAsian255
2024-09-14 09:48:22
im guessing this has probably been posted before
2024-09-14 09:48:23
<message deleted>
Demiurge
2024-09-14 10:44:34
I just want to add, that although Mozilla says they are worried about multithreaded c++, there is no reason for them to use libjxl's multithreaded code, since I _think_ the threaded stuff is separate, and there's almost no reason for a web browser to use more than 1 thread per image anyways
2024-09-14 10:48:42
Browsers are more likely to decode multiple images in parallel, one thread per image, rather than a single image in parallel, with each image hogging all cores
2024-09-14 10:49:02
Less RAM use that way too
spider-mario
2024-09-14 10:49:40
our multithreading is also quite straightforward, basically a “parallel map” that is used where appropriate and which has been thoroughly tested by now
2024-09-14 10:49:58
it’s quite unlikely that we have race conditions in there
2024-09-14 10:50:35
it’s not like we’re using manual threads everywhere with inappropriate use of shared memory
veluca
2024-09-14 11:34:43
tbh threads are not the part that scare me in ~any compression-related C++ codebase
HCrikki
2024-09-15 07:49:08
fossify gallery updated its jxlcoder integration to 2.3.0 - no newer stable build yet, anyone got a nightly apk built ?
Crite Spranberry
2024-09-16 04:51:09
This was another hard release, it took a while. So I'll send here. ~~Mostly just me being a dumbass that is too busy~~ https://github.com/Eclipse-Community/r3dfox/releases/tag/v130.0.1rc
Meow
2024-09-16 01:37:52
Oh I suddenly thought of Windows Vista or newer
2024-09-17 05:19:41
Seems Photos in iOS 18 can display JXL with no background correctly, but the File app embed it with a black background
AccessViolation_
2024-09-17 02:29:35
Do you think we'll see phone camera apps getting an option to shoot in (non-raw) JPEG XL any time soon?
2024-09-17 02:30:54
I sort of expect Google Camera (the one used on Pixel devices) to be one of the first to support it, as they've been pushing innovation in their camera app pretty well
w
2024-09-17 02:32:38
that one is going to be avif
username
2024-09-17 02:33:15
or just gainmapped JPEGs
w
2024-09-17 02:34:16
(it's over)
AccessViolation_
2024-09-17 02:34:49
I haven't really heard much about interest in AVIF for general photography, mostly just web delivery, but I could be wrong
2024-09-17 02:35:11
JPEG with gain maps is what they currently do for HDR yeah
w
2024-09-17 02:35:21
google camera.... android...
2024-09-17 02:35:25
they HATE jxl
2024-09-17 02:35:35
they will do anything to avoid it
A homosapien
username or just gainmapped JPEGs
2024-09-17 02:35:42
I already have a ton of these gainmapped jpegs on my phone already
jonnyawsom3
2024-09-17 02:35:48
Android support ticket https://issuetracker.google.com/issues/259900694
A homosapien
2024-09-17 02:35:52
Just thinking about converting these jpegs to a proper HDR format is giving me a headache
2024-09-17 02:35:59
As far as I know, there's no software for that, future proofing be damned
AccessViolation_
2024-09-17 02:36:31
Do they hate JXL? Google is the king of "the left hand doesn't know what the right hand is doing" and it seems like only Google Chrome doesn't like JPEG XL, the rest of google likes it from what I can tell? Or at least doesn't dislike it
w
2024-09-17 02:37:33
isnt media codecs team the same one for android and chrome
jonnyawsom3
2024-09-17 02:37:39
The only sides we've heard from are Google Zurich Research (The devs here), and the Chrome Codec team who removed it from Chrome
A homosapien
2024-09-17 02:37:54
> "The left hand doesn't know what the right hand is doing" That's honestly a perfect description of what's going on right now
AccessViolation_
A homosapien As far as I know, there's no software for that, future proofing be damned
2024-09-17 02:39:22
If it's any consolidation I believe Google's gain mapped JPEGs are in the process of being standardized. Downside is, that isn't going to accelerate JXL support