Back

JPEG XL Test Page

242 points16 daystildeweb.nl
senfiaj16 days ago

Starting from v145 Chrome supports JXL.

There is also an extension for this: https://chromewebstore.google.com/detail/jpeg-xl-viewer/bkhd...

pkulak16 days ago
Santosh8316 days ago

Wonderful. Allow an "unmonitored" extension from a random stranger on the Internet have access to "all data for all websites" just to support an image format for which Mozilla should have long built in native support...

Vinnl16 days ago

Security concerns are exactly the reason the format doesn't have native support yet. However: https://github.com/mozilla/standards-positions/pull/1064

+2
bmacho16 days ago
mikae114 days ago

This...

I would not install non-recommended Firefox addons for things that can be achieved in about:config.

Just do set image.jxl.enabled flag in about:config to true.

iam-TJ16 days ago

Firefox Nightly v149 has added experimental support via Settings > Firefox Labs:

  Webpage Display
  Media: JPEG XL
  With this feature enabled, Nightly supports the JPEG XL (JXL) format. This is an enhanced image file format that supports lossless transition from traditional JPEG files. See bug 1539075 for more details.
breve16 days ago

It's a good use case for WebAssembly. For browsers that don't yet support JPEG XL natively the page could provide a wasm decoder.

Like this demo page: https://bevara.github.io/Showcase/libjxl/

thisislife216 days ago

Also checkout - https://jpegxl.info/resources/jpeg-xl-test-page

Works great on PaleMoon, one of the earliest browsers to support JPEG XL and "Global Privacy Control" ( https://globalprivacycontrol.org/ ).

demetris16 days ago

I published some benchmarks recently:

https://op111.net/posts/2025/10/png-and-modern-formats-lossl...

I compare PNG and the four modern formats, AVIF, HEIF, WebP, JPEG XL, on tasks/images that PNG was designed for. (Not on photographs or lossy compression.)

tasty_freeze16 days ago

It seems like the natural categories are (1) photographs of real things, (2) line art, (3) illustrator images, (4) text content (eg, from a scanned document).

Is there a reason you used only synthetic images, ie, nothing from group 1?

demetris16 days ago

Hey, tasty_freeze!

The motivation behind the benchmarks was to understand what are the options today for optimizing the types of image we use PNG for, so I used the same set of images I had used previously in a comparison of PNG optimizers.

The reason the set does not have photographs: PNG is not good at photographs. It was not designed for that type of image.

Even so, the set could do with a bit more variety, so I want to add a few more images.

enimodas16 days ago

Would be nice to also see decompression speed and maybe a photo as a bonus round.

demetris16 days ago

Yeah.

Numbers for decompression speed is one of the two things I want to add.

The other is a few more images, for more variety.

tedd4u15 days ago

Max memory required during decompression is also important. Thanks for sharing this research.

gcr16 days ago

One thing I like about JPEG-XL is that it supports all kinds of weird image formats.

For example, I used to work with depth data a lot, which is best expressed as monochrome 16-bit floating point images. Previously, TIFF was the only format that supported this. Many shops would instead save depth images as UINT16 .PNG files, where the raw pixel intensity maps to the camera distance in mm. The problem with this is that pixels more than 65.535 meters away aren't representable. (Hot take: I personally think this is one reason why nobody studies depth estimation for outdoor scenes.)

JPEG-XL supports more weird combinations here, e.g. storing greyscale float32 images (with alpha even! you can store sparse depth maps without needing a separate mask!)

It's like, uniquely suited to these sorts of 3D scene understanding challenges and I really hope people adopt the format for more scientific applications.

GuB-4216 days ago

> One thing I like about JPEG-XL is that it supports all kinds of weird image formats.

And it is probably the reason why browser vendors disliked it. Lots of complexity, it means a big library, which is high maintenance with a big attack surface. By comparison, webp is "free" if you have webm, as webp is essentially a single frame video.

edflsafoiewq15 days ago

AFAIK browsers do not reuse any VP8 codepath for WebP, they just use libwebp, which decodes lossy images in software. WebP has a non-VP8 lossless mode too. The concern about image format attack surface is also probably because of the recent exploit in libwebp.

somat16 days ago

On the subject of tiff, why is it not used more? I mean, it is more or less really a container format right. Why are we not using it all over the place but with modern compression methods?

jasomill16 days ago

It is used quite a bit.

As just one of innumerable examples, it's the basis for Adobe's DNG raw photo format and many proprietary raw formats used by camera manufacturers (Nikon NEF, Canon CRW and CR2, etc.).

Speaking as an outside observer, the ISO Base Media File Format seems to have more mindshare for newer applications, presumably on account of its broader scope and cleaner design.

JBorrow16 days ago

There is also FITS, but that is mainly for astronomical applications (and is in general an insane and terrible format). But it supports tons of types!

p_ing16 days ago

Orion, and presumably other Webkit-based browsers that are actually up-to-date, can also see the image.

Hopefully my photo processor will accept JPEG XL in the near future!

nine_k16 days ago

Chromium 143 (the latest available in Void Linux, a rolling-release distro) still can't.

The chrome://flags/#enable-jxl-image-format is not even found in the build :(

RicoElectrico16 days ago

> Hopefully my photo processor will accept JPEG XL in the near future!

Aren't print shops, machining shops, other small manufacturers etc. ones that always lag behind with emerging technologies?

sanjit16 days ago

Designers might also be hesitant to use an untested file format for print, too.

If there’s a large amount of paper that’s been purchased for a job, I definitely wouldn’t want to be the one who’s responsible for using JPEG XL and – for whatever reason – something going wrong.

Pixels are cheaper than paper or other physical media :)

p_ing16 days ago

Yes, because those systems cost gobs of money. You don't replace them just for the hot new thing.

Dylan1680716 days ago

Replace? Why bring that up?

The company that owns whatever system can and should be able to convert formats.

+1
p_ing16 days ago
pkulak16 days ago

Yup, Gnome Web loads it just fine! Man, it really is a great browser. I try to switch to it every 6 months, but then I remember that it doesn't support extensions at all. I could give up everything, but not 1Password. Nothing is worth copy/pasting credentials and losing passkeys entirely.

encrypted_bird16 days ago

Have you tried KeePassXL with SyncThing? I've heard good things about that setup.

Dylan1680716 days ago

For what purpose? While it's a perfectly good password manager, when used with Gnome Web it also means copy/pasting passwords and losing passkeys. Doesn't it?

encrypted_bird15 days ago

When I commented that, I did not realize Gnome Web was a web browser (I'd never heard of it frankly), let alone a non-Firefox-based browser. Lol.

numbers16 days ago

I'm seeing the image on zen which is a firefox fork but not on firefox itself :/

even with `image.jxl.enabled` I don't see it on firefox

capitainenemo16 days ago

Checking the Firefox bugs on this, it seems they decided to replace the C++ libjxl with a rust version which is a WIP, to address security concerns with the implementation. All this started a few months ago.

Maybe the zen fork is a bit older and still using the C++ one?

capitainenemo16 days ago

... update. after reading the comments in the rust migration security bug, I saw they mentioned "only building in nightly for now"

I grabbed the nightly firefox, flipped the jxl switch, and it does indeed render fine, so I guess the rust implementation is functioning, just not enabled in stable.

... also, I see no evidence that it was ever enabled in the stable builds, even for the C++ version, so I'm guessing Zen just turned it on. Which... is fine, but maybe not very cautious.

awestroke16 days ago

zen browser is pretty much vibe coded

+1
nar00116 days ago
bpbp-mango16 days ago

good. image parsing has produced so many bad RCEs.

rkangel16 days ago

Google Chrome is using a Rust implementation. The existence and sufficient maturity of it is the reason they were willing to merge support in the first place.

illiac78615 days ago

Hmmm, check the jxl-rs repository. I wouldn’t call it mature. Not to say it’s buggy, but most of its code is very fresh.

dietr1ch16 days ago

Flipping `image.jxl.enabled` made it work for me after refreshing the page. I'm using Librewolf 146.0.1-1, but I guess it works just fine in firefox 146

ChrisArchitect16 days ago

Related:

Chromium Has Merged JpegXL

https://news.ycombinator.com/item?id=46597927

rhdunn16 days ago

Works in ladybird as well.

jiggawatts16 days ago

Support is not a boolean.

A proper test page should have HDR images, images testing if 10-bit gradients are posterised to 8-bit or displayed smoothly, etc...

iOS for example can show a JPEG XL image, but can't forward it in iMessage to someone else.

MrDrone16 days ago

There have been a few other test pages posted in the comments with varying degrees of additional context.

https://jpegxl.info/resources/jpeg-xl-test-page https://caniuse.com/jpegxl

mort9616 days ago

HDR support is an anti-feature. Nobody want a part of a website to suddenly be 10x as bright as pure white.

uyzstvqs16 days ago

JPEG XL is also good, but why not use AVIF? It's widely supported by browsers, and rivals JPEG XL in being the best lossy image format.

judah16 days ago

Jake Archibald has an excellent post about progressive image rendering, including some metrics on JPEG XL compared to AVIF[0].

> "I was also surprised to see that, in Safari, JPEG XL takes 150% longer (as in 2.5x) to decode vs an equivalent AVIF. That's 17ms longer on my M4 Pro. Apple hardware tends to be high-end, but this could still be significant. This isn't related to progressive rendering; the decoder is just slow. There's some suggestion that the Apple implementation is running on a single core, so maybe there's room for improvement.

> JPEG XL support in Safari actually comes from the underlying OS rather than the browser. My guess is that Apple is considering using JPEG XL for iPhone photo storage rather than HEIC, and JPEG XL's inclusion in the browser is a bit of an afterthought. I'm just guessing though.

> The implementation that was in Chromium behind a flag did support progressive rendering to some degree, but it didn't render anything until ~60 kB (39% of the file). The rendering is similar to the initial JPEG rendering above, but takes much more image data to get there. This is a weakness in the decoder rather than the format itself. I'll dive into what JPEG XL is capable of shortly.

> I also tested the performance of the old behind-a-flag Chromium JPEG XL decoder, and it's over 500% slower (6x) to decode than AVIF. The old behind-a-flag Firefox JPEG XL decoder is about as slow as the Safari decoder. It's not fair to judge the performance of experimental unreleased things, but I was kinda hoping one of these would suggest that the Safari implementation was an outlier.

> I thought that "fast decoding" was one of the selling points of JPEG XL over AVIF, but now I'm not so sure.

> We have a Rust implementation of JPEG XL underway in Firefox, but performance needs to get a lot better before we can land it."

[0]: https://jakearchibald.com/2025/present-and-future-of-progres...

jomohke16 days ago

Strange, as Cloudinary's test had the opposite conclusion -- jpegxl was significantly faster to decode than avif. Did the decoders change rapidly in a year, or was it a switch to new ones (the rust reimplementation)?

https://cloudinary.com/blog/jpeg-xl-and-the-pareto-front

If decode speed is an issue, it's notable that avif varied a lot depending on encode settings in their test:

> Interestingly, the decode speed of AVIF depends on how the image was encoded: it is faster when using the faster-but-slightly-worse multi-tile encoding, slower when using the default single-tile encoding.

N19PEDL215 days ago

>> My guess is that Apple is considering using JPEG XL for iPhone photo storage rather than HEIC, and JPEG XL's inclusion in the browser is a bit of an afterthought.

This would be great.

quentindanjou16 days ago

I am curious, isn't AVIF also taking advantage of the hardware decoding democratized by AV1?

michaelt16 days ago

Taking advantage of hardware decoding is generally like pulling teeth.

For video you can't avoid it, as people expect several hours of laptop battery life while playing video. But for static images - I'd avoid the pain.

F3nd016 days ago

Because JPEG XL is the first format to actually bring significant improvements across the board. In some aspects AVIF comes close, in others it falls far behind, and in some it can’t even compete. There’s just nothing else like JPEG XL and I think it deserves to be supported everywhere as a truly universal image codec.

Socket-23216 days ago

Why use AVIF when JPEG XL is much better and in a few weeks almost universally supported?

dlcarrier16 days ago

Are there any up-to-date WebKit browsers for Android? The best I could find was Lightning, but it hasn't been updated in years.

Edit: I found A Lightning fork called Fulguris. It didn't work with the JPEG XL test image, but I really like the features and customizability. It's now my default browser on Android.

zamadatix16 days ago

The closest thing I know of is Igalia has a project trying to port https://wpewebkit.org/ to Android https://github.com/Igalia/wpe-android and they have a minibrowser example apk in the releases of the current state (but I wouldn't call it a Chrome drop in replacement or anything at the moment - just the closest thing I know on Android).

TingPing16 days ago

WPE can be built for Android, but it’s not a user facing browser.

cubefox16 days ago

According to CanIUse, no browser implementation currently supports progressive decoding [1]. This is unfortunate, since progressive decoding theoretically is a major advantage of JPEG XL over AVIF, which doesn't allow it in principle, even though ordinary JPEG allows it. But apparently even a default (non-progressive) JPEG XL allows some limited form of progressive decoding [2]. It's unclear whether browsers support it though.

1: https://caniuse.com/jpegxl

2: https://youtube.com/watch?v=inQxEBn831w

samtheDamned16 days ago

A rare win for gnome web over firefox here

blell16 days ago

Alright, that image made be really miss Lenna as an example image.

volemo16 days ago

I understand why people avoid it now; however, having not seen the uncropped version for a long time initially, I have only warm associations.

reef_sh16 days ago

On Waterfox. Image displays fine.

hotsalad16 days ago

I enabled image.jxl.enabled in LibreWolf and works. It doesn't work in Firefox Beta, though?

Frenchgeek16 days ago

There's a jpeg xl viewer extension available for firefox.

antonyh16 days ago

Epiphany (aka Gnome Web) on Linux shows this correctly, as expected for a Webkit-based browser.

gary_016 days ago

If I download the image, Fedora KDE shows it properly in Dolphin and Gwenview.

ajdude16 days ago

> this means only Safari will display the image, as far as I know.

Works fine for me in Orion on both desktop and mobile ( https://orionbrowser.com ).

seanclayton16 days ago

Which makes sense as Orion uses the same engine as Safari.

bigbuppo16 days ago

Looks like the sort of person that would create a superior image file format.

Incipient15 days ago

Very good benchmark. Concise yet detailed. I like the selection of images. I wanted to see at least one actual camera photo however, for comparison.

unglaublich16 days ago

I think JPEG XL's naming was unfortunate. People want to associate new image formats with leanness, lightness, efficiency.

fleabitdev16 days ago

There was a constraint - since 2009, the Joint Photographic Experts Group had published JPEG XR, JPEG XT and JPEG XS, and they were probably reluctant to break that naming scheme.

They're running out of good options, but I hope they stick with it long enough to release "JPEG XP" :-)

jonsneyers16 days ago

JPEG XP would have been a nice name for a successor of JPEG 2000, I suppose :)

There's also a JPEG XE now (https://jpeg.org/jpegxe/index.html), by the way.

spider-mario16 days ago

Incidentally, JPEG Vista would be thematically appropriate.

extraduder_ire16 days ago

They can tack on more letters, or increment the X, as required.

nocman16 days ago

Good one - made me and a coworker both LOL (in the literal sense) :D

lencastre16 days ago

JPEG ME

snowram16 days ago

Considering "jpeg" has become the shorthand for "digital picture", it would be a shame not to capitalise on it.

flexagoon16 days ago

I feel like "jpeg" has generally become a shorthand for "low quality compressed digital picture"

goda9016 days ago

Hence the meme response "Needs more jpeg" https://old.reddit.com/r/explainlikeimfive/comments/2ct3ax/e...

benbristow16 days ago

In the photography world it's shorthand for "photo unedited straight from the camera". Popular with Fujifilm cameras especially due to their 'film simulation' modes which apply basically a filter to the image.

+1
doubletwoyou16 days ago
dylan60416 days ago

I feel like you need to find better places on the internet. It's no longer 1997 downloading from dial up.

notatoad16 days ago

What makes jpeg compression bad isn’t low bandwidth. It’s really good at compressing an image for that.

What makes jpeg bad is that the compression artifacts multiply when a jpeg gets screen captured and then re-encoded as a jpeg, or automatically resized and recompressed by a social media platform. And that definitely isn’t a problem that has gone away since dialup, people do that more than ever.

flexagoon15 days ago

I'm not saying it's true, I obviously understand that not all jpegs are low quality and over compressed. That's just how the word is generally used by people, especially those outside of tech who aren't well versed in different image formats.

dgan16 days ago

"diJital PEGchure"

dlcarrier16 days ago

Is it pronounced jay-peg or gee-peg?

bigbuppo16 days ago

Nah, that's WEBP, the most hated file format.

zamadatix16 days ago

JPEG XS :D

YakBizzarro16 days ago
recursive16 days ago

Excess?!? I certainly don't want any of that in my image encoding formats!

jonsneyers16 days ago

Exactly. Image compression should excel at avoiding excess.

Though maybe some people think the JPEG committee is now creating spreadsheet formats...

F3nd016 days ago

It seems to me this point of discussion always tends to get way too much focus. Should it really raise concern?

Of all the people who interact with image formats in some way, how many do even know what an image format is? How many even notice they’ve got different names? How many even give them any consideration? And out of those, how many are immediately going to think JPEG XL must be big, heavy and inefficient? And out of those, how many are going to stop there without considering that maybe the new image format could actually be pretty good? Sure, there might be some, but I really don’t think it’s a fraction of a significant size.

Moreover, how many people in said fraction are going to remember the name (and thus perhaps the format) far more easily by remembering it’s got such a stupid name?

bobmcnamara16 days ago

I found it unfortunate because it's not a JPEG.

Dwedit16 days ago

It has an operation mode where it can losslessly and reversibly compress a JPEG further, and "not a jpeg" wouldn't cover that.

dragonwriter16 days ago

JPEG XL is the thing that makes your JPEG smaller?

Dwedit16 days ago

JPEG XL is basically 4 codecs in one...

* A new lossy image Codec

* A lossless image codec (lossless modular mode)

* An alternative lossy image codec with different kinds of compression artifacts than those typically seen in JPEG (lossy modular mode)

* JPEG packer

Because it includes a JPEG packer, you can use it as such.

edflsafoiewq16 days ago

Just call it JXL.

ziml7716 days ago

Pronounced jixel?

spider-mario16 days ago

Pronounced like French « j’excelle » (I excel).

(Kidding.)

ziml7716 days ago

Kidding? But I actually kinda like it!

greenavocado16 days ago

Yes, and JAY EXCEL for the savages like me

formerly_proven16 days ago

Nobody can keep you from forking the spec and calling yours JPEG SM.

12_throw_away16 days ago

> Nobody can keep you from forking the spec

ISO: "Challenge accepted." [1]

[1] https://www.iso.org/standard/85066.html

kps16 days ago

Shouldn't that be JPEG℠ vs JPEG™?

OscarTheGrinch16 days ago

Crappy as a .jpg, only bigger.

Actually, I remember when JPEG XL came out, and I just thought: cool, file that one away for when I have a really big image I need to display. Which turned out to be never.

Names have consequences.

gcr16 days ago

I regularly work with images larger than 65,535px per side.

WEBP can only do 16,383px per side and the AVIF spec can technically do 65,535, but encoders tap out far before then. Even TIFF uses 32-bit file offsets so can't go above 4GB without custom extensions.

Guess which format, true to its name, happens to support 1,073,741,823px per side? :-)

crazygringo16 days ago

> Crappy as a .jpg, only bigger.

Honestly, that's exactly what it sounds like to me too. I know it's not, but it's still what it sounds like. And it's just way too many letters total. When we have "giff" and "ping" as one-syllable names, "jay-peg-ex-ell" is unfortunate.

Really should have been an entirely new name, rather than extending what is already an ugly acronym.

sillysaurusx16 days ago

I’ll never not say pee-en-gee. You’re right though.

NekkoDroid16 days ago

I always have called it PNG pee-en-ji, and JPEG XL for me has p much all the time been jay-x-el.

bigbuppo16 days ago

It's JPEG Extra Lovely.

catskull16 days ago

μJPEG

bigbuppo16 days ago

And yet WEBP decided to associate itself with urine, which google then forced on everyone using their monopoly power.

DominoTree16 days ago

JPEG 15 Pro Max

Almondsetat16 days ago

Do you have anything to back this up?

sailfast16 days ago

Works on FireFox Focus on mobile, FWIW. (Latest iOS)

cdmckay16 days ago

That’s because it uses the WebKit renderer built in to iOS

ivanjermakov16 days ago

https://caniuse.com/jpegxl

Surprised to see it working on iOS 17.

mattlondon16 days ago

Presumably the "January 2027" statement is a typo, ...or is that when it is slated to launch in safari?

robertoandred16 days ago

Safari started supporting it over two years ago.

roywashere16 days ago

yeah, it's a typo :-)

PlatoIsADisease16 days ago

Yep, doesnt work on firefox or chrome.

nticompass16 days ago

Works in Zen 1.17.15b (aka Firefox 146.0.1) on Linux.

paularmstrong16 days ago

Same for me, Zen 1.17.15b on Mac

Imustaskforhelp16 days ago

Same I am using Zen 1.17.15b on Mac too and it works for me too

_grilled_cheese16 days ago

Working fine on Firefox for me

Firefox version 146.0.1 on Windows 11

WithinReason16 days ago

https://caniuse.com/jpegxl

I have the flag enabled but it's still broken in FF, needs to be a nightly build to work

nor-and-or-not16 days ago

Same here, doesn't work, FF 148.0b5

jbverschoor16 days ago

Cannot see it with lockdown mode iOS

Imustaskforhelp16 days ago

On zen. It works.

Redster16 days ago

I can see the image just fine on Thorium!

jiehong16 days ago

> more or less means only Safari will display the image

Who is going to take the bait, and say that Safari isn't like IE?

oldcoot16 days ago

Looks like it works in Brave

mdasen16 days ago

Weird, doesn't work in Brave (macOS) for me. Did you enable a setting? Brave says it's up to date when I check.

theandrewbailey16 days ago

Doesn't work in Brave. (Using v1.86.139)

iberator16 days ago

Doesn't work for me on Brave on Android

jordemort16 days ago

Works in Waterfox (6.6.8)

billynomates16 days ago

Unrelated but I read "it did not saw" and immediately thought, this person is Dutch. Then I saw the .nl domain. Not sure if this double-conjugation mistake is common in other ESL speakers but I hear it a lot living in the Netherlands.

thatgerhard16 days ago

Is the selectable text a safari thing or a JPEG XL thing?

Alcor16 days ago

"Live Text" is a iOS/macOS feature. Works in Safari, camera, photos.app, etc…

adzm16 days ago

Honestly I was hoping for a page showing off more of jpeg xl features rather than just a single image

wmwragg16 days ago

You probably want the JPEG XL Info[1] site then. A nice site outlining what JPEG XL actually is.

[1] https://jpegxl.info/

amarant16 days ago

While I get why, it bugs me that they have comparison images between jxl and other formats, yet it doesn't actually use jxl, as evidenced by all images displaying correctly on my chrome browser.

kps16 days ago

It uses jxl if the browser supports it, using <picture>¹.

¹ https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...

jomohke16 days ago

This is standard practice. They need to use current lossless formats to display examples to people who don't have the format yet. They are still showing accurate examples of compression artifacts. I'm not sure what else you'd expect them to do.

gforce_de16 days ago

can you please:

* add an correct HTML image alt information

* compress your HTML and CSS with brotli (or gzip)

thanks!

russiancupid16 days ago

[dead]

davidhyde16 days ago

Works with Waterfox on macOS but curiously not Firefox. I wonder if their search deal with Google included keeping the image.jxl.enabled setting off.

F3nd016 days ago

That’s an interesting speculation, but I’m inclined to believe their official reasoning. (That being they just didn’t really care about the format and/or went with whatever Chrome said at first. A year or so later they changed their mind and said they wanted an implementation in a memory-safe language, which prompted the JXL team to work on it.)

quaintdev16 days ago

Works on Zen as well.