Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

jlp2097 writes "As reported by Heise, Mozilla has introduced a new JPEG encoder (German [Google-translated to English]) called mozjpeg. Mozjpeg promises to be a 'production-quality JPEG encoder that improves compression while maintaining compatibility with the vast majority of deployed decoders.' The Mozilla Research blog states that Mozjpeg is based on libjpeg-turbo with functionality added from jpgcrush. They claim an average of 2-6% of additional compression for files encoded with libjpeg and 10% additional compression for a sample of 1500 jpegs from Wikipedia — while maintaining the same image quality."

Yes, and he's pointing out that the exact thing the parent said as an advantage for PNG is also its disadvantage.

A lossless compression format cannot compete with a good lossy compression format in terms of file sizes for arbitrary content, even though it wins by definition in terms of fidelity. The web, even today, is very bandwidth constrained and thus file sizes are one of the most important things to optimize against, for both the client and the server. Fidelity is often not a very important considera

But why have the many successors to jpg that provide better lossy compression not caught on?

Without getting into a full-blown Doctoral Thesis, it's usually because either they suffer performance issues, or don't do nearly as good a job of preserving the visual integrity of the source image. JPG is a good balance of speed, quality preservation, and size of the compressed file.

Nah, I think it's mostly because JPEG is good enough. JPEG2000, for example, also provides perfectly acceptable performance and quality, with significantly-reduced file sizes. But unlike JPEG, JPEG2000 decoders aren't already available everywhere. The slightly-reduced file size isn't sufficient justification for the risk that some users might not be able to see the photo. An improved JPEG encoder helps (a little) with file size without incurring the need for a new decoder, so it's immediately useful.

I think it's mostly because JPEG is good enough. JPEG2000, for example, also provides perfectly acceptable performance and quality, with significantly-reduced file sizes. But unlike JPEG, JPEG2000 decoders aren't already available everywhere.

It's the fax-machine effect, JPEG will be around forever because everything, and I mean everything, that creates, processes, manipulates, and displays images, speaks JPEG. If Jobs was still alive and decided that from now on iWhatever's were only going to do JPEG2000 (and it's not just for file size reasons, image quality is also vastly improved [fnordware.com]), you can bet that we'd have a surge in JPEG2000 adoption as soon as the first JPEG2000-only iWhatever was released.

JPEG XR is actually quite good and is now an open standard. I recently did an extensive evaluation of JPEG 2000 vs. JPEG XR. While JPEG 2000 has slightly better compression quality (less visible artifacts) at the same file sizes it’s decode performance is substantially slower than JPEG XR (the same is true for encode performance, but decode is much more important). In my testing, one of the fastest JPEG 2000 libraries, Kakadu, is anywhere from 1.8 to 2x slower than JPEG XR at decoding files. Kakadu is

While JPEG 2000 has slightly better compression quality (less visible artifacts) at the same file sizes itâ(TM)s decode performance is substantially slower than JPEG XR (the same is true for encode performance, but decode is much more important).

How much of this is due to hardware support for core JPEG operations in GPUs and (to a lesser extent) CPUs? If wavelet-based JPEG took off, would it just be a matter of time before hardware vendors added explicit support for it to their instruction sets, at which point the speed difference would vanish?

If you're talking about simple web graphics, then yes, PNG is often a good choice. Lossy compression simply makes more sense for photos, as the compression ratio is that much better. Always using PNG is idiotic, as is always using JPEG. JPEG2000 is not our saviour.

It's a shame JPEG2000 debuted dead on arrival thanks to patent encumbrances. Creation of a superior open lossy image compression standard seems to have been left behind in favor of video. We have PNG and Theora, but nothing free that improves on jpeg.

I don't think patents are the problem. I would say it's more that jpeg2000 is slow as molasses, is trying to be lossless and lossy at the same time and failing at both - lossless is way larger than png, lossy throws away the advantage of downsampled YCbCr colorspace that jpeg has. It's not clearly superior to preexisting stuff, except for people with strange needs. Who in fact are using it. It just never went mainstream.

Yeah, lots of universities use it for a lot of things, like scientific and cultural heritage images... they serve the images up, if need be, through the proprietary lurawave image server... not a great solution from a systems perspective, but it's what they like.

Personally, I think the lack of widespread adoption makes it a serious preservation concern.

1) PNG8 can support full alpha transparency.2) PNG is better with fewer colours And blocks of one shade, as it compresses by merging close shades. JPEG is better to compress With lots of different colours like photos as it merges neighbouring pixels.

Note that in paletted png files transparency is always handled by specifying alpha values for palette entries. Even if you are only doing simple binary transparencys so on a format level there is no real difference, it's just that some old browsers can't handle partially transparent palette values correctly.

It can mean8-bit indexed PNG with binary transparency, or it can mean 8-bit indexed PNG withfull transparency.

IIRC in the format itself there isn't really a distinction, PNG transparency for indexed images is always handled by specifying alpha values for palette entries. It's just old versions of IE fail to handle them correctly.

Often the simplest solution doesn't cover the real world. Even with pngquant, a large photograph will be three times as large or more in PNG24 than JPEG. 300KB vs 100KB is nothing to sneeze at when you're on a mobile device and on the edge of cell coverage.

A mess.
Google refuses to have anything to do with APNG, preferring MNG instead. Firefox and Opera (up to v12) support APNG - but not MNG. Safari and IE supports neither.General image software support is poor for both.

Because truecolor PNG images are much larger (usually at least twice as large, often closer to 4 times larger) than a properly encoded JPG counterpart, and you can't see the difference with your naked eye.

Seriously, try this yourself. Take a digital camera RAW and encode it with JPEG at reasonable settings (80 quality or so) and then compress it with truecolor PNG. Compare the file sizes. Now take a script that puts them up side by side and choose the better image. It should be the PNG right, because JPEG is lossy? I'd bet you would be hard pressed to beat random chance.

Now that's not to say you should use JPEG absolutely everywhere. Stuff like computer generated images with 1 pixel lines or text loo

But you are still talking about LOOKING at that photographic image. If it needs manipulated, you are doing yourself a large disservice by starting out with a JPEG source. Even as something as simple as scaling/zooming will wreak havoc on the outcome. Need to lighten it? Sharpen or blur some lines? AND THEN resave it? No sir. Not good

And this is relevant to this discussion because... why, exactly? We're talking about Mozilla's JPEG encoder generating smaller files, and we're talking about it in terms of bandwidth and transfer times. To me, that spells "will be displayed on a webpage", rather than "will be edited and re-saved, possibly through multiple generations". Of course you won't use this for your originals; JPEG should be considered an output format, not an archival or intermediary format, just like any other lossy format for any

Since I started looking at web pages with JPEG images, the speed of my internet connection has increased by roughly 345,000%, the size of my hard disk by 200,000%. Why is a 300% increase in image size a concern?

Since I started looking at web pages with JPEG images, my internet connection has almost doubled in speed and now there are pages that are basically unviewable.Many locations don't have any other option then dial up and many more have various caps on the amount you're allowed to download before charges increase.

There are services (Opera's work quite well, Google has one too) that will re-compress any images to lower quality lossy formats and into a single response to avoid round-trips. I don't think big image files are really the main problem for people still on dialup.

Are they all on a north face of a mountain? Because if there's a tall building in the way, the area is probably urban enough to get DSL or DOCSIS, and if there isn't a mountain in the way, it can more than likely get satellite.

Because you are not only one in this world, you are probably in the 0.01 percentile of fast connections.

A lot of people like me have slow connections, so I *hate* big images, and particularly sites which put images everywhere.I'm in a rural region, so I don't expect a faster connection anytime soon. And moving is not an option either.

There is a proverb that says that a picture is worth a thousand words, but it's not true with the Internet.

There are plenty of services like Opera Turbo that will recompress all images as smaller lossy images. Why should all users get a degraded experience when those on slow connections have options to automatically recompress images to be better suited for their connections?

I don't see what javascript and computer upgrades have to do with PNG. Heck, the point of Opera's stuff was to run on lower-end devices. It was intended for use on mobile originally. And it still supports javascript.

It would help if many paint programs had a default JPEG quality level higher than 70%. That's okay when dealing with 10 megapixel photos that are only shown on the screen or destined for 4x6 prints. Not so nice when dealing with large prints or artwork. I hate seeing Death by JPEG on sites like DeviantArt all the time.

Seems like a negligible improvement. I mean really. With hard drive space plentiful, and bandwidth faster than most users can use at any given moment, saving 20-60Kb on a 1Mb file is like a fart in the wind, even for mobile users.

I'm with the AC in the first post, I use PNG for 90% of my images, since it supports transparency. The file may be slightly bigger, but who cares.

I found switching large photographs on my site from png to jpeg led to a noticeable loadtime increase. It's not a lot, but it is noticeable. However, I'm sticking to PNG for any non-photographic images.

It also reduces the time it takes to write the file out to disk or memory card. That could have a small knock on effect in a number of areas like the burst length on cameras and battery life on mobile devices (assuming that the new codec isn't much more CPU intensive). If the extra 10% compression improvement mentioned in the summary is from photographic images rather than illustrations then that could be quite a significant difference.

A few KB saved by an end user on a high speed connection isn't much, but...A few KB multiplied by millions of users accessing a single site soon adds up.And it's also of benefit to those on slow or metered connections.

Seems like a negligible improvement. I mean really. With hard drive space plentiful, and bandwidth faster than most users can use at any given moment, saving 20-60Kb on a 1Mb file is like a fart in the wind, even for mobile users.

I'm with the AC in the first post, I use PNG for 90% of my images, since it supports transparency. The file may be slightly bigger, but who cares.

Seems like a negligible improvement. I mean really. With hard drive space plentiful, and bandwidth faster than most users can use at any given moment, saving 20-60Kb on a 1Mb file is like a fart in the wind, even for mobile users.

I'm with the AC in the first post, I use PNG for 90% of my images, since it supports transparency. The file may be slightly bigger, but who cares.

Slightly better? For full color photographs, PNG is *much* bigger. Anyone that's serving up a lot of images to users cares because of bandwidth and storage costs.

Has anyone actually tried their code to see how effective it is? I don't have a system to compile it on at the moment.

Seems to work as advertised, if you don't care how long it takes to convert an image.

I compiled their source and ran their cjpeg against/usr/bin/cjpeg already installed on my system, and it did create jpegs that are 6 - 10% smaller in filesize with the same apparent image quality (I just zoomed in and eyeballed them side by side, I didn't do any extensive analysis).

However, at a quality level of 75, the Mozilla code took 10 times longer to run, while at a quality level of 90, the Mozilla code took nea

Personally, for archive-stuff, I wouldn't go lower then quality=95 which would probably be around a 14MB file (at a guess). Quality of 85-90 is fine for most websites, but you should really archive at 95-98 level.

Thumbnails can sometimes be pushed as low as 75-80 quality, but you start to notice the JPEG artifacts.

You start to care once you multiply those 2% across millions of users. Any savings at such basic level are multiplied by how often the resource is used. So no you don't care about this for your CRUD web application, but wikipedia saving 2% bandwidth translates in one less datacenter required which means thousands of dollars.

One folder of mixed JPGs and PNGs with a total of 169 MBs was converted to webp. the total size of all contents of the folder ("directory", whatever you want to call it) was 6.44 MBs. I was so impressed that I kept records of the results.

Not only would this be HUGE for sites like Wikipedia, but it also significantly decreased the amount of space that I was using in my cloud storage account.

Honestly for all of their PR about a better, more open web, all we really get is the same old politics and attempts at controlling what is and is not the standards. They still behave like children. Mozilla, Google, I'm not taking sides. They're both at fault.

It would help to know mor about your experiment. I can get quite big size improvements here by recompressing my camera's (Canon EOS) Jpeg files to... Jpeg! And with no visible quality difference either. They go from 6.7MB for the Canon file, to 3.1MB for quality 90 in imagemagick, 1.7MB for 75 and 1.4MB for 65. And ni your experiment the WebP quality scale may not exactly match the Jpeg one which makes comparisons even harder.

One of the problems with JPEG is that it works (caveat about luma/chroma subsampling) on 8x8 pixel blocks. This is great for medium-resolution images (e.g. 72-200dpi range), but not so great for high-resolution (e.g. 1200dpi).

I grabbed a 3032x1986 image [wordpress.com] (warning: large image), and here's what I got.

..... a new format that doesn't seem like it will ever be feature-complete.

What features do you see WebP lacking. It uses the RIFF container format that allows XMP metadata, which itself can include EXIF data. It includes lossless and lossy modes, animation [gstatic.com] and alpha channel (transparency) [google.com]. What do you think is missing?

So the price wouldn't be a limitation of the Ferrari? Well, it's up to you to ignore what most would consider the first limitation of the object... but still...

If WebP was available in all browsers like GIF, PNG and JPG, I would've had a deeper look into it. It's not. I couldn't care less about this file format. What use could I possibly find for it? What purpose does it serve for anyone? If you need lossy, go JPG. If you need lossless, go PNG. WebP doesn't fit any scenario...

This is not for the benefit of the users but for webmasters.If you have a site with any decent amount of traffic, you pay for bandwidth and you have a content delivery network. 10% smaller images translates into 10% savings.Moreover, Google takes site speed into account when ranking sites.

Seems like a negligible improvement. I mean really. With hard drive space plentiful, and bandwidth faster than most users can use at any given moment, saving 20-60Kb on a 1Mb file is like a fart in the wind, even for mobile users.

It would not be worth the effort for one website or even ten. But what is proposed is an improvement to the most commonly used JPEG implementation in the world. The cost will be amortized over millions of websites as software is upgraded over the next few years.

To see how this works, let's make up some numbers. Lets say that the whole effort will consume $100,000 worth of labor. Let's guess that within five years it will be installed on one million websites. That means it will cost $0.10 per website. Is it

For most, bandwidth is cheap and change is expensive in many ways, but a 10% difference is decent. I think people forget how useful periodic increases in efficiency is quite useful in the long run. So much of what we obsess about is not being more efficient, but faster. A 10% increase in efficiently for CPUs is easy to appreciate for less power usage, but bandwidth is much harder.

If your bandwidth as a provider of content is costing you 400K and you can reduce it by 1% by just using a new image standards, that's a nice 4K saving per year just on service. Now you have to decide if saving 4K will cost you more than 4K. In some cases it's not about saving money but rather avoiding the need to upgrade hardware and infrastructures.

Something to watch for with jpeg, "arithmetic coding" reduces your filesize compared to "huffman coding" but it also reduces compatibility. It caused me a fair bit of head scratching trying to work out why pdflatex wouldn't accept the jpegs that came out of jpegcrop (which started using arithmetic coding by default).

Its also worth to remember than for congested systems, a single percentage reduction in traffic will yield a significantly higher percentage improvement in service speed. 90% congestion to 85% congestion gives a huge reduction to average waiting times.

My digital camera has horrible compression. I can load and save the pictures with pretty much any application, and the size of the files is reduced significantly without any noticeable image quality reduction. (And yes, I am saving it in the original size.) Maybe it's just my old Sony camera, but it's likely a common issue--I expect embedded compression in consumer devices worries more about simple and fast than best quality for the file size.

Do you know that the quality isn't being reduced? An image manipulation program like the GIMP may not make it too clear that it's redoing the lossy part and further reducing quality even if asked to save at the same quality,

jpegtran is a command line tool that can recompress a jpeg image without changing the quality. If the original compression was poorly done, jpegtran will shrink the file. If jpegtran can shrink your camera's photos, then you know your old camera does a hasty job on the compression.

The resistance [mozilla.org] to support WebP [google.com] in Mozilla seems to be more politically motivated than technical.

Why not add JPEG-XR as well?

https://en.wikipedia.org/wiki/JPEG_XR

"JPEG XR[3] (abbr. for JPEG extended range[4]) is a still-image compression standard and file format for continuous tone photographic images, based on technology originally developed and patented by Microsoft..."

That a software license covering a reference software implementation that Microsoft provided, not a patent license. They've made the patents freely available to implementers since 2007 as part of their Microsoft Open Specification Promise:

Microsoft has patents on the technology in JPEG XR. A Microsoft representative stated in a January 2007 interview that in order to encourage the adoption and use of HD Photo, the specification is made available under the Microsoft Open Specification Promise, which asserts that Microsoft allows implementation of the specification for free, and will not file suits on the patented technology for its implementation,[39] as reportedly stated by Josh Weisberg, director of Microsoft's Rich Media Group. As of 15 August 2010, Microsoft made the resulting JPEG XR standard available under its Community Promise.

The resistance [mozilla.org] to support WebP [google.com] in Mozilla seems to be more politically motivated than technical.

AMEN!!!! WebP is modern. JPEG, GIF and PNG are all older than most pop stars. Why do we use the image compression equivalent of MPEG1 still?

Seriously, this is so dumb. I continue using Firefox for two specific reasons (tagged bookmarks and Pentadactyl) but Vimperator and Pocket are making Chrome more tempting. I choose WebP (using the official encoder I build directly from Google's repository) for my online photo storage. Decades of photos and scans I would estimate occupy about 1/8th the space of JPE

2) Patents on enhancements to JPEG from minor obvious ones to significant compatibility breakers prohibit improvements. JPEG's final compression step was poor from the beginning and the better stuff was patented and unused. At least a decade ago StuffIt used modern binary compression to replace the final phase, which was exempt from existing patents; however, StuffIt pate

Where in the article are you getting anything about patents? The innovation here is to try multiple orders of sending the DCT coefficients ("figuring out which progressive coding configuration uses the fewest bits").

I didn't want to get into details, but over here semi-private hotspots are popular and pretty ubiquitous (a significant subset of ISP provided routers double as a secure hotspot that doesn't interfere with the main user's home network). You them need codes related to the ISP at hand (some login/password). The use cases are if your DSL/broadband is down, or if your are on the move, or for "unofficial" use.

So that works in urban areas actually. Wifi isn't necessarily great if you connect to some router in the