Google last fall announced a complement to its WebM video encoder called “WebP”, destined for photos. Similar to WebM, Google looked to make WebP a much more efficient codec to JPEG – one that offers equal or better quality at a smaller file size. Since Google hosts billions of JPEGs, it’s no surprise why it’s interested in doing what it can to save on space.
Since its original announcement, WebP hasn’t exactly been dominating the headlines, but Google over the weekend posted to its Chromium blog to give some updates. There, even more before/after photos can be found (JPEG vs. WebP converted), and at the same time, new features have been discussed, such as upscaling and compression by segment.
The first feature, upsampling, is the improvement of jagged edges, or reduction of aliasing. Images saved in WebP should have cleaner lines regardless of the compression compared than JPEG, though it may take a keen eye to spot the differences. The other feature, compression by segment, allows the encoder to split a photo in (up to) 4 segments, where it will use a different level of compression for each. Essentially, this method would be used to give more bits to the segment that needs it the most, while scaling back on the segments that don’t (think sky, grass or other areas where lower compression won’t be noticed).
A major complaint about WebP has been the lack of transparency, but according to the blog post, it’s in the works. There are some initial samples provided, but unless you are fluent with the command-line, checking them out will be tedious. Regardless, transparency is going to be imperative for a format that has hopes of becoming a dominant format, so it’s good to hear it’s being worked on.
Not everyone is sold on WebP so far, though, and simply reading the comments for any article discussing it proves that. Many are wondering why Google simply didn’t opt for JPEG XR support instead, since it does many of the same things as WebP. But, I think the answer boils down to one simple thing – when is the last time Google didn’t want its name on everything?
We also introduced the ability to incrementally decode the data as your computer downloads it from the web, a feature that allows the browser to display images without having to wait for the whole file to download. This feature is already enabled in Chrome 12. On the encoding side, to further improve quality, we focused on segmenting the picture into areas with similar compressibility. For each of these segments, we tune the amount of compression and filtering differently, and bits are redistributed where they are most useful.