WebP is an image format employing both lossy and lossless compression.
It is currently developed by Google, based on technology acquired with the purchase of
On2 Technologies.
As a derivative of the VP8 video format, it is a sister project to the WebM multimedia
container format.
WebP-related software is released under a BSD license.
The format was first announced in 2010 as a new open standard for lossily compressed
true-color graphics on the web, producing smaller files of comparable image quality
to the older JPEG scheme.
On October 3, 2011 Google announced WebP support for animation, ICC profile, XMP metadata and
tiling.
On November 18, 2011 Google began to experiment with lossless compression and support for
transparency in both lossless and lossy modes; support has been enabled by default in libwebp
0.2.0.
According to Google's measurements, a conversion from PNG to WebP results in a 45% reduction
in file size when starting with PNGs found on the web, and a 28% reduction compared to
PNGs that are recompressed with pngcrush and pngout.
Google has proposed using WebP for animated images as an alternative to the popular GIF
format, citing the advantages of 24-bit color with transparency, combining frames with lossy
and lossless compression in the same animation, and as well as support for seeking to specific
frames.
Google reports a 64% reduction in file size for images converted from animated GIFs to
lossy WebP, and a 19% reduction when converted to lossless WebP.
Technology WebP's lossy compression algorithm is based
on the intra-frame coding of the VP8 video format and the Resource Interchange File Format
as a container format.
As such, it is a block-based transformation scheme with eight bits of color depth and
a luminance-chrominance model with chroma subsampling by a ratio of 1:2.
Without further content, the mandatory RIFF container has an overhead of only twenty bytes,
though it can also hold additional metadata.
The side length of WebP images is limited to 16383 pixels.
WebP is based on block prediction.
Each block is predicted on the values from the three blocks above it and from one block
to the left of it.
There are four basic modes of block prediction: horizontal, vertical, DC, and TrueMotion.
Mispredicted data and non-predicted blocks are compressed in a 4×4 pixel sub-block with
a discrete cosine transform or a Walsh–Hadamard transform.
Both transforms are done with fixed-point arithmetic to avoid rounding errors.
The output is compressed with entropy encoding.
WebP also has explicit support for parallel decoding.
The reference implementation consists of converter software in the form of a command-line program
for Linux and a programming library for the decoding, the same as for WebM.
The open source community quickly managed to port the converter to other platforms,
such as Windows.
WebP’s lossless compression uses advanced techniques such as dedicated entropy codes
for different color channels, exploiting 2D locality of backward reference distances and
a color cache of recently used colors.
This complements basic techniques such as dictionary coding, Huffman coding and color
indexing transform.
Support Amongst web browsers, Google Chrome and Opera
natively support WebP.
All WebM-compatible browsers can also display WebP via a JavaScript shim.
WebP can also be displayed in all major browsers using the WebPJS JavaScript library, although
support in Internet Explorer 6 and above is achieved using Flash).
Amongst graphics software, Picasa, PhotoLine, Pixelmator, ImageMagick, Konvertor, XnView,
IrfanView and GDAL all natively support WebP.
Telegraphics has released a free plug-in that enables WebP support in Adobe Photoshop.
GIMP and Paint.NET support WebP via plugins.
Google has also released a plug-in for Microsoft Windows that enables WebP support in Windows
Photo Viewer, Microsoft Office 2010, FastPictureViewer, and any other application that uses Windows
Imaging Component.
FFmpeg linked with libvpx can extract VP8 key frames from WebM media and a script can
then add the WebP RIFF header and the NUL pad byte for odd frame lengths.
Gmail and Picasa Web Albums support WebP.
Support for WebP is also planned for Google App Engine.
The Instant Previews feature of Google Search currently uses WebP internally to reduce disk
space used by previews.
Android 4.0 supports encoding and decoding WebP images.
SDL_image supports the format since 1.2.11.
Below is a list software implementations that support WebP as of January 2013:
Ongoing Implementations: Restrictions
Like VP8 on which it is based, lossy WebP only supports 8-bit YUV 4:2:0 format, which
may cause color loss on images with thin contrast elements and ghosting in anaglyph.
Criticism In September 2010, Fiona Glaser, a developer
of the x264 encoder, wrote a very early critique of WebP.
Comparing different encodings of a reference image, she stated that the quality of the
WebP-encoded result was the worst of the three, mostly because of blurriness on the image.
Her main remark was that "libvpx, a much more powerful encoder than ffmpeg's jpeg encoder,
loses because it tries too hard to optimize for PSNR", arguing instead that "good psy[cho-visual]
optimizations are more important than anything else for compression."
Pascal Massimino, developer of the cwebp encoder, reports improvements to the WebP encoder with
a number of defects resolved since the preview releases.
As WebP is an open-source format under active development, issues can be expected to both
resolve and regress as they are addressed on an ad-hoc basis.
In October 2013, Josh Aas from Mozilla Research published a comprehensive study of current
lossy encoding techniques and was not able to conclude WebP outperformed JPEG by any
significant margin.
Based on this, they concluded effort in adding support for WebP was better invested in an
improved JPEG encoder, which they went on to publish.
See also JPEG, an image format used for lossy compression
on the Web, which WebP lossy is comparable to
PNG, an image format used for lossless compression on the Web, which WebP lossless is comparable
to GIF, used for animated images on the Web,
which animated WebP images are intended to replace
MNG and APNG, another animated image format, related to PNG
JPEG 2000, an improvement intended to replace the older JPEG by the JPEG committee, introduced
in 2000 JPEG XR, an alternative to JPEG 2000 supporting
HDR and wide gamut color spaces, introduced in 2009
References
External links Official website
Windows codec libwebp for .NET
Bugzilla@Mozilla: 600919 - Implement WebP image support
Bugzilla@Mozilla: 856375 - Implement WebP image support, take 2