this post was submitted on 11 Oct 2023
229 points (96.0% liked)

Ask Lemmy

26668 readers
1777 users here now

A Fediverse community for open-ended, thought provoking questions


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either !asklemmyafterdark@lemmy.world or !asklemmynsfw@lemmynsfw.com. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 1 year ago
MODERATORS
 

is it a formatting step that an image goes through when uploaded? I'm tired of converting image after image back into jpg, so if there's like a step I can take to avoid it being a webp, it would help to know

top 50 comments
sorted by: hot top controversial new old
[–] willya@lemmyf.uk 205 points 1 year ago* (last edited 1 year ago) (4 children)

The compression to quality ratio of webp is amazing, especially webm. Some instances have this conversion happen upon upload would be my guess to save a crazy amount of space.

[–] underisk@lemmy.ml 116 points 1 year ago (1 children)

Not just space, bandwidth.

[–] Piemanding@sh.itjust.works 20 points 1 year ago (1 children)

Bandwidth is just space across wires. Or maybe space per second.

[–] PainInTheAES@lemmy.world 12 points 1 year ago (1 children)

The diameter of the Internet pipe

[–] whaleross@lemmy.world 8 points 1 year ago

Well, the internet is a series of tubes.

[–] isVeryLoud@lemmy.ca 30 points 1 year ago (1 children)

Don't forget that JPEG-XL is better, yet Google refused to implement it in Chrome to push their own webp format so it's basically DOA.

[–] vanontom@lemmy.world 23 points 1 year ago* (last edited 1 year ago) (1 children)

It's super impressive, and not DOA. Apple (unbelievably) announced it will support JXL on Safari and all-the-things. I wish Mozilla would have led the way, but OK. Hopefully this finally pushes Microsoft and Google to support it.

I'm using XnView to easily batch convert (90-98 quality, 7-8 compression), and have been loving it. Just needs browser and OS support.

[–] isVeryLoud@lemmy.ca 6 points 1 year ago

Oh cool, all hope is not lost then!

[–] BorgDrone@lemmy.one 20 points 1 year ago (5 children)

WebP is a tiny bit better on small images and slightly worse overal than JPEG, when using a good encoder library (mozjpeg). It is better than standard libjpeg but that’s not really a fault of the format as much as of the specific encoder.

[–] MHLoppy@fedia.io 28 points 1 year ago* (last edited 1 year ago) (3 children)

It depends a lot on what's being encoded, which is also why different people (who've actually tested it with some sample images) give slightly different answers. On "average" photos, there's broadly agreement that WebP and MozJpeg are close. Some will say WebP is a little better, some will say they're even, some will say MozJpeg is still a little better. Seems to mostly come down to the samples tested, what metric is used for performance, etc.

I (re)compress a lot of digital art, and WebP does really well most of the time there. Its compression artifacts are (subjectively) less perceptible at the level of quality I compress at (fairly high quality settings), and it can typically achieve slightly-moderately better compression than MozJpeg in doing so as well. Based on my results, it seems to come down to being able to optimize for low-complexity areas of the image much more efficiently, such as a flatly/ evenly shaded area (which doesn't happen in a photo).

One thing WebP really struggles with by comparison is the opposite: grainy or noisy images, which I believe is a big factor in why different sets of images seems to produce different results favoring either WebP or JPEG. Take this (PNG) digital artwork as an extreme example: https://www.pixiv.net/en/artworks/111638638

This image has had a lot of grain added to it, and so both encoders end up with a much higher file size than typical for digital artwork at this resolution. But if I put a light denoiser on there to reduce the grain, look at how the two encoders scale:

  • MozJpeg (light denoise, Q88, 4:2:0): 394,491 bytes (~10% reduction)
  • WebP (light denoise, Picture preset, Q90): 424,612 bytes (~29% reduction)

Subjectively I have a preference for the visual tradeoffs on the WebP version of this image. I think the minor loss of details (e.g., in her eyes) is less noticeable than the JPEG version's worse preservation of the grain and more obvious "JPEG compression" artifacts around the edges of things (e.g., the strand of hair on her cheek).

And you might say "fair enough it's the bigger image", but now let's take more typical digital art that hasn't been doused in artificial grain (and was uploaded as a PNG): https://www.pixiv.net/en/artworks/112049434

Subjectively I once again prefer the tradeoffs made by WebP. Its most obvious downside in this sample is ~~on the small red-tinted particles coming off of the sparkler being less defined,~~ [see second edit notes] probably the slightly blockier background gradient, but I find this to be less problematic than e.g., the fuzz around all of the shooting star trails.. and all of the aforementioned particles.

Across dozens of digital art samples I tested on, this paradigm of "WebP outperforms for non-grainy images, but does comparable or worse for grainy images" has held up. So yeah, depends on what you're trying to compress! I imagine grain/noise and image complexity would scale in a similar way for photos, hence some of (much of?) the variance in people's results when comparing the two formats with photos.


Edit: just to showcase the other end of the spectrum, namely no-grain, low complexity images, here's a good example that isn't so undetailed that it might feel contrived (the lines are still using textured [digital] brushes): https://www.pixiv.net/en/artworks/112404351

I quite strongly prefer the WebP version here, even though the JPEG is 39% larger!

Edit2: I've corrected the example with the sparkler - I wrote the crossed out section from memory from when I did this comparison for my own purposes, but when I was doing that I was also testing MozJpeg without chroma subsampling (4:4:4 - better color detail). With chroma subsampling set to 4:2:0, improved definition of the sparkler particles doesn't really apply anymore and is certainly no longer the "most obvious" difference to the WebP image!

[–] willya@lemmyf.uk 6 points 1 year ago

Awesome write up!

load more comments (2 replies)
[–] idunnololz@lemmy.world 28 points 1 year ago* (last edited 1 year ago) (2 children)

JPEG compression is standardized. The only part of the algorithm that is configurable is the quantization matrix which is essentially a control of what information to throw away and how much. So unless you are throwing away a huge amount of information (really shitty image), there is no way a different library will somehow save you a bunch of space.

[–] phiresky@lemmy.world 17 points 1 year ago* (last edited 1 year ago)

That is exactly what's happening :) better quantization matrix results in 25% smaller files with the same perception-based q which makes webp kinda useless often https://siipo.la/blog/is-webp-really-better-than-jpeg

Try jpeg-xl though. it's amazing.

[–] BorgDrone@lemmy.one 5 points 1 year ago

Mozjpeg performs 2 tricks to improve compression:

[–] ezchili@iusearchlinux.fyi 15 points 1 year ago (2 children)

You must be talking about a kind of jpg I haven't heard of then

load more comments (2 replies)
[–] damian101@discuss.tchncs.de 14 points 1 year ago

Webm is just a video container, not a format. WebP uses quite outdated image compression from the VP8 video codec, which may perform quite a bit better than JPEG at very low quality, but at near-transparent quality, which images are usually encoded to, it very often doesn't even beat JPEG.

[–] Chronographs@lemmy.zip 84 points 1 year ago (1 children)

If something doesn’t support webp you should really be converting it to png not jpg so it doesn’t get more degraded

[–] JohnDClay@sh.itjust.works 16 points 1 year ago (8 children)

Isn't jpg more efficient for pictures, whereas png is better for graphics type elements with defined colors and edges?

[–] Chronographs@lemmy.zip 41 points 1 year ago (3 children)

Jpg is lossy and throws away information every time it is used, that’s why you get the “deep fried effect” when you re-encode something repeatedly. PNG is lossless so it’s a perfect replica of whatever image you encode with it. It does take up more space however.

[–] LillyPip@lemmy.ca 15 points 1 year ago* (last edited 1 year ago) (1 children)

Minor niggle: the ‘deep fried effect’ isn’t because jpg throws away information every time, it’s because the compression algorithm averages pixel boundaries, and that averaging multiplies with each compression pass.

It can actually bloat the size of the file by adding information – adding data to previously null pixels, whereas png would keep them clean.

e: it achieves this through pixel averaging (fuzzing), which is why you’ll see grey artefacts bleeding into the pixels around line art. This is magnified with each compression.

[–] Slotos@feddit.nl 18 points 1 year ago (2 children)

You’re conflating “data” with “information”.

Repeated re-encoding loses information. “The compression algorithm averages pixel boundaries” is a perfect example of losing information.
That it sometimes results in more bits of data is a separate phenomenon altogether.

[–] MutilationWave@lemmy.world 9 points 1 year ago

Thank you I learned something today.

load more comments (1 replies)
load more comments (2 replies)
[–] Granixo@feddit.cl 35 points 1 year ago* (last edited 1 year ago) (1 children)

JPEG is for real life photos and document scans, using it for anything else is just lossy compression.

load more comments (1 replies)
[–] Max_P@lemmy.max-p.me 27 points 1 year ago

whereas png is better for graphics type elements with defined colors and edges?

The reason for that is rather surprising, but PNGs are basically zipped BMPs with an optional filter step to arrange the pixels in a way that compresses better.

And that's why if you give it a photo with lots of details, it's not very effective and just gives you a rather big file. PNG barely does anything compared to JPEG and other formats. That's also why it's great for small things like icons: it decompresses fast and still manages a fairly good compression ratio when a good chunk of the image is transparent or flat background.

[–] dyc3@lemmy.world 15 points 1 year ago

Jpg is better for photographs. Png is better when there are a lot of homogeneous pixels, like cartoons or rasterized vector graphics.

[–] amio@kbin.social 9 points 1 year ago (2 children)

PNG is lossless and JPEG is not. JPEG is about a sliding scale of "quality" (at the cost of file size) and minimizing how much it fucks with the visual end result.

load more comments (2 replies)
[–] eerongal@ttrpg.network 7 points 1 year ago

Jpg is really bad for anything with sharp lines, such as text. It also doesn't support alpha channel (transparency) which is reasonably important in modern web design.

PNG is loseless, which is great for... anything other than storage/bandwidth due to file size. There's even an animated PNG standard, similar to animated GIF, but you never see that used anywhere.

load more comments (2 replies)
[–] harmonea@kbin.social 45 points 1 year ago (10 children)

if there’s like a step I can take to avoid it being a webp

Formats are chosen by the uploaders and hosts, not the end user.

For easy conversion of images from the web, I recommend the FF addon Save webP as PNG or JPEG. Anytime you open an image in its own tab, it pops up with a menu that gives you a quick button to choose the format you'd like to save it in.

load more comments (10 replies)
[–] Kwdg@discuss.tchncs.de 28 points 1 year ago (8 children)

Why do you need to convert to jpg?

[–] JackbyDev@programming.dev 48 points 1 year ago (26 children)

A lot of apps don't support webp yet. Facebook Messenger is a good example. If I want to share a meme that was webp it says "GIF" in the gallery and says it can't upload images in that format.

[–] boletus@sh.itjust.works 23 points 1 year ago (1 children)

So sad that the poor management at Meta can't find the money to add webp support to one of the most used chatting apps in the world 🥺

[–] xigoi@lemmy.sdf.org 8 points 1 year ago

They still haven't managed to find a way they could make $$$ out of supporting WebP.

[–] jacktherippah@lemmy.world 9 points 1 year ago

Wanna hear something funny? So iirc webp is a Google format. The other day I was preparing slides for class with my friends. Anyway, we were on Google slides. I tried to upload this image, but it says it's unsupported. So i checked the format and whaddaya know? webp. So a Google service doesn't even support a Google file format. LOL

load more comments (24 replies)
load more comments (7 replies)
[–] Quackdoc@lemmy.world 12 points 1 year ago (1 children)

it got shoved down our faces

[–] PixxlMan@lemmy.world 13 points 1 year ago (2 children)

I hate when a new, efficient, fast image format is used by viscous developers to make their evil website load faster and use less bandwidth

GRRRR

Yes, JpegXL would've been even better, but WebP is good too.

[–] float@feddit.de 5 points 1 year ago (1 children)

I still hoping JpegXL will get some traction. The fact that it was removed from Chrome looks bad but they'll most likely add it again if it does. It's by far the best of all of them.

load more comments (1 replies)
load more comments (1 replies)
load more comments
view more: next ›