Posted
by
Soulskillon Friday November 18, 2011 @01:18PM
from the more-cat-pictures-per-gigabyte dept.

New submitter more writes with news that Google has added to its WebP image format the ability to losslessly compress images, and to do so with a substantial reduction in file size compared to the PNG format. Quoting:
"Our main focus for lossless mode has been in compression density and simplicity in decoding. On average, we get a 45% reduction in size when starting with PNGs found on the web, and a 28% reduction in size compared to PNGs that are re-compressed with pngcrush and pngout. Smaller images on the page mean faster page loads."

But extensions are good for adding information, not removing it. You could probably implement whatever compression enhancements Google made to WebP in PNG through extensions, but probably not in a way that makes old versions of libpng still produce usable results while still having a reduced filesize. At which point it doesn't really matter if you add it to WebP or PNG, the backward compatibility benefit of PNG extensions can't be exploited either way

If it truly is a significant innovation, it should sail through the standards approval process as a recognized extension.

Which is not actually that helpful, because then you have tons of PNG-capable applications that can't read PNGs. TIFF used to be this way, where TIFF actually means it can be compressed like ten different ways and support was very mixed. If you have a significant new non-backwards compatible format, just releasing it as a new format is maybe just as easy.

Which is not actually that helpful, because then you have tons of PNG-capable applications that can't read PNGs. TIFF used to be this way, where TIFF actually means it can be compressed like ten different ways and support was very mixed.

Only ten different ways? Back in the early 90s I was creating TIFF files that I doubt anyone can display these days; we had our own TIFF tags assigned and could compress files however we wanted to.

This is why TIFF was:

1. Very useful for app developers.2. A total disaster for interoperability.

Was interoperability a real goal of the complete standards set though?

I can see for some antitampering features for support files for software user interfaces, using a quasi-standard format that makes development less expensive but makes it harder for users to screw up would actually be a good thing in some situations.

TIFF used to be this way, where TIFF actually means it can be compressed like ten different ways and support was very mixed.

TIFFs still are this way, it just seems like everything is "all better" because people throw up their hands and use libtiff, which actually handles a large fraction of the weird shit that's out there. If there were not a peculiar group of masochists who decided this was something worth tackling things would seem quite different. If you wanted to sit down and write a TIFF library yourself that was actually capable of loading a majority of TIFF files out there, you'd spend years doing it.

If you don't believe me, look inside libtiff. "Initialize Thunderscan! To the turrets!"

The new chunks will be ignored by legacy software, but they'll be able to still display the "lossfull" image using the bits they understand. Newer software will be able to read the whole image in its full glory.

One of the key design features of PNG was that any PNG should be able to be read by any decoder. That is why PNG has relatively few options on how the core data is encoded*

Adding optional stuff is ok (unless it's animation......) but if you want to make a key change to the core of the format I suspect the PNG guys would tell you to go make your own format based on PNG but with it's own specification, file extension and "magic number" (as was done for MNG, and JNG).

* a handful of filter types all of which are easy to implement, one compression algorith, one byte order standard, 15 allowed color/bitdepth combintions (the majority of which represent very comon combinations and all of which can be easilly mapped to 24-bit RGB).

WebP lossy may not catch on, but it isn't pointless. Compared to JPEG, in return for a muddier image (to my eyes, at least) you get alpha support. As Google is one of the biggest distributors of images on the Internet, I think the real purpose is to pay less for licensing JPEG.

JPEG XR produces images similar to JPEG-2000 while having complexity similar to JPEG, supports transparencies, requires support for lossless compression (unlike JPEG) since lossless is just a quantizer setting, and it's already supported by IE9.

That last bit is probably the most important part. IE's marketshare is shrinking, but it's still big enough that any format it doesn't support is unlikely to see widespread support as the only format available for a site. I doubt IE will ever support WebP, and as such, no website will ever really be able to use WebP. Not unless they do browser detection, and most sites won't bother with multiple image compression formats, they're going to pick the best common one they can, which is currently PNG or JPEG.

Big ones might. But a lot of people aren't bandwidth limited, or won't think it's worth the effort of converting all their images, storing it in multiple formats, and then writing code to dynamically change which images are fed back based on the browser.

The savings for most sites would likely be minimal anyhow: images get cached. If you're a site like Slashdot, for example, loading the front page will get you the cast majority of images, loading subsequent pages will likely not have much images to download.

The images you get from Image Search are Google's version of the image which have been resized to fit the search layout. I would still be surprised if that made Google the number 1, I would have thought Akamai would be the top slot, or Facebook.

Google has open-sourced the WebP code and utilities, so (I think) this format will not be encumbered by patents or licensing issues. That is a great contribution in itself. I continue to be amazed by Google and its ability to make money while giving stuff away.

Not as opposed to PNG and JPEG, simply as a (possibly superior) alternative. JPEG did have some patent issues which fortunately have been resolved (google "jpeg patent"). Probably every graphical format that is successful will attract the attention of lawyers of patent holders and patent trolls. Hopefully Google has thoroughly vetted this technology. Pretty pathetic the hoops one has to jump through these days to create something as abstract as a computer image standard.

I'm not saying that it is patent encumbered, but just pointing out the flaw in your assumption. So long as there is a guarantee that it will be free to use forever, I see no reason why modern browsers shouldn't implement it. What's the downside?

open source != free for a reason...If they license the patents involved together with the source code in a FOSS compatible way, good.If they won't try to pull an android and divide users into the group with the latest and greatest implementation (chrome users) and the others, great.I should not be criticizing them ahead of time, so let's see.

It's interesting how successful they are at dominating/directing so many areas of the Internet, but they seem so ineffectual in other areas like this and the video format they are trying to get the world to switch to.

They are converting all of youtube to WebM, and it is the only royalty free web video codec. I'm pretty sure they will beat h.264 in the long run because free wins in the end.
The fact the encoding is behind the scenes doesn't matter. In a decade html5 video will be defined by webm because no one wants to license h.264 for encoding products.

If you played WoW you would know. ICC is Ice Crown Citadel, home of the Lich King formerly known as Prince Arthas. What an outdated dungeon in an MMO has to do with Chrome displaying a new image format I'm unsure of.

Just because you've applied a 500kb colour profile to your image and your image program can understand it, does not mean a web browser needs to support such pointless user desires. The internet does not want to waste 50-500kb per image on colour profiles just so the image can print out a tiny bit more evenly on expensive high end printers. If it ever happens you can be happy living in a world where agenda driven lobby groups can make life more annoying for everyone just to make a few bucks. Should Chrome su

I assume this would be useful for correcting for differences in displays?

Not just displays, cameras, scanners and printers also use ICC profiles to compensate for the fact that they all capture and reproduce colours slightly differently. This is a good place to read some basics [drycreekphoto.com].

...doesn't anyone think it might be time to revisit fractal image compression [ucsd.edu] and maybe look at ways of improving iterated function systems and their associated algorithms (I might give Mike Barnsley a call and ask him how his IFS patents are developing if you're nice and mod me up)?

I remember that. I was not at all surprised that Microsoft, in the hunt for a compression format they didn't have to pay royalties on (ISI was a community project back then), literally stole the idea of using lossy compression, texturing and wavelets to cram as much image information as they possibly could onto one CD. They took IFS young, as I remember, because the resultant images were unusable anywhere but a 14" CRT. If they'd waited a year they'd've had to have paid royalties to Mike but at least they w

How about you calm down there, buddy? I was commenting most on the fact that Analytics is a little slow. Also for your information on where it goes, I can say with certainty that when I did it, all the help files said to put it at top. They've since changed it (probably because they too realize it holds up page loading). I'm not claiming I've invented some genius process...most people that know anything about web pages would have figured out that trick in the 3 seconds it took me. You're a bit combativ

Most modern screens can't display deep colour. My Dell U2711 can do it, but you really have to buy a high-end or professional display like it to get 10-bit colour support. Since most displays can't show it, there's not all that much demand to support it.

Giving WebP support for HDR won't break out of the loop, so the answer is "make HDR displays".

There are existing formats that support deep colour, and there are existing applications (like Photoshop) that can take advantage of it, but HDR displays are still rare. Adding support for HDR to WebP, a format that nobody uses, won't change anything.

You need an HDR display to view HDR images, otherwise you're just doing tonal mapping. The examples show in that wiki are not HDR images, they're tonal mapped images. Their dynamic range is exactly the dynamic range of all the other pictures you've seen today, 3 color channels, 256 bits per color channel. High dynamic range displays require br

As someone who would love to use variable transparency (translucency) pictures on my own website, this story is very cool news. For one thing, it allows pictures to have drop shadows on varied backgrounds, without having to be forced to save as full 32bit PNG.

I'm now somewhat disappointed PNG didn't get this far sooner. It's served its purpose well over time, but I didn't realize there was still so much room for compression.

Congrats to Google, and I hope the other browser quickly adopt this apparently great picture format. I wonder how its animation side compares to APNG or MNG. The PC has always been gasping for decent lossless animation support, even though the Amiga 20 years ago had seemingly a dozen animation formats to choose from. Also, web browsers have (or at least had) great difficulty in playing animations at higher than around 16-25fps (apart from flash). It's a pretty sad state of affairs all round really.

CSS3 will soon eliminate the need for rounded corner images and gradient backgrounds, and even smartphone bandwidth is increasing to reasonable speeds. Most ads these days are displayed with flash, and the quality of thumbnail images really isn't that important either

If all you want is single-radius rounded corners on rectangles, yes. While this fits most design processes, it falls well short of the flexibility offered by an alpha channel. On the up side, it's independent of image resolution (in the case of bitmaps) so the rounded corners are nice and smooth no matter the zoom level.

and gradient backgrounds

Again, only for simple gradients - yes, you can stack multiple divs together to get something more complex

WebP was proposed as an alternative to JPEG, with 25–34% better compression compared to JPEG images at equivalent SSIM index.

and

Our main focus for lossless mode has been in compression density and simplicity in decoding. On average, we get a 45% reduction in size when starting with PNGs found on the web, and a 28% reduction in size compared to PNGs that are re-compressed with pngcrush and pngout. Smaller images on the page mean faster page loads

So their aim is to reduce bandwidth, which is admirable, yet the video side of Google is choosing to avoid H.264 which, AFAIU, has been shown to be better "bang for the bit" than VP8, and surely video is a far bigger consumer of bandwidth these days. (I'm not sure the unencumbered argument would stand up to close scrutiny).

As someone who rooted for the adoption of JPEG2000, I wonder, have we reached the point where the existing major image formats are 'good enough' and so established that new standards are unlikely to unseat them?

As someone who rooted for the adoption of JPEG2000, I wonder, have we reached the point where the existing major image formats are 'good enough' and so established that new standards are unlikely to unseat them?

It doesn't have to unseat anything. Google is in the interesting position of having some websites with a significant amount of traffic and a web browser with a significant number of users. All they have to do is have Chrome send it in the Accept header and have their sites pay attention to that header. Instant n% reduction of bandwidth used by images.

Right there, technological progress can stop and Google still comes out ahead. (Ignoring what they've paid to people to come up with WebP.) No rival has to be unseated.

OTOH, once your site starts receiving a significant number of image/webp (or whatever they're using) in the Accept headers from Chrome (and Opera!) users, you have incentive to reconsider taking advantage, and the network effect has started, bouncing back'n'forth between site developers and browser developers.

JPEG2000 didn't go this way because of the patent issue; from the very get-go, everyone knew they weren't allowed to use it. With WebP, it's either a mystery (if you're cautious) or allowed (because you trust that Google did a good patent search). Unlike JPEG2000, nobody has stepped forth and shown for sure that the tech needs to be sequestered for a couple decades. The default assumption about its legality is different.

Then linked from the original article is the study is basing it on. http://code.google.com/speed/webp/docs/webp_lossless_alpha_study.html [google.com]It's essentially saying that nearly the entire reason it's a fraction smaller in lossless mode is because there's no alpha support. Combining it the "optional" alpha mode with the "optional" lossless mode merely makes it near-identical in size to PNG, according to them.

The more features you take out, and the more you degrade the pictures, the smaller they are in comparison to the original. Is this somehow surprising?

I didn't realize it was even possible to make such a big improvement in lossless image compression.

You falsely assume that PNG was state-of-the-art in lossless compression. PNG took a great idea (filter the image and take advantage of the 2-D correlation present in most real-world images) and coupled with it a terrible idea (zlib for the back-end compression of the filter output). You're supposed to do order-0 compression (ie. statistical, like Huffman coding) on the filter residuals, not pattern-match searching (zlib). zlib is a great piece of software, but like all tools, there are things it is very well-suited for and others it is not well-suited for. This was a misstep by the PNG team.

The choice the PNG people made was fueled by the Unisys GIF/LZW patent of the time, and at that time IBM also had a patent on range coders. So I guess it's understandable why they didn't use those order-0 methods on the filter residuals. But it was a huge mistake to knee-jerk away from ALL statistical methods and choose zlib as the back-end. They could have used basic Huffman; not sure why they didn't.

That seems like an oversimplification since the DEFLATE algorithm includes a huffman encoding step, and it is within the specs for the compressor to simply never emit back-references. It would be a horrible bug in the implementation of zlib to have worse compression performance than a basic huffman encoding.

That seems like an oversimplification since the DEFLATE algorithm includes a huffman encoding step, and it is within the specs for the compressor to simply never emit back-references. It would be a horrible bug in the implementation of zlib to have worse compression performance than a basic huffman encoding.

(DEFLATE doesn't use Huffman, it uses Shannon-Fano as it's entropy encoding step.) While zlib can be configured to not emit back-references and just entropy-encode the input, PNG does not use this mode. I suspect it was because they were trying to stay as far away from the Unisys patent as possible (meaning, "image -> entropy" (GIF) and "image -> filter -> entropy" (PNG) might have seemed too similar/infringing).

zlib can not only compress worse than just entropy; if unchecked, it could actually output "compressed" data that is larger than the original. This happens when you give it uncompressable data and it tries to match patterns anyway. Of course it has a check for this; if the output is larger than the input, it just stores the input uncompressed. 7-ZIP LZMA doesn't have this, so that's why 7-ZIP's output can sometimes be larger than the input. (They fixed that in LZMA2.)

I think there may be some confusion over mathematically lossless verses practically lossless, as there is a DCT involved here. If you do the math, then you can prove that it is lossless. But computers don't do the math that well - they introduce rounding errors in intermediate steps. This loss of information is often overlooked, as it isn't readily apparent in a purely mathematical analysis.