WebP: Difference between revisions
Sfan00 IMG (talk | contribs) No edit summary |
→Support: unified Browser/Web browser |
||
Line 237: | Line 237: | ||
| Yandex || Browser || Win / OSX |
| Yandex || Browser || Win / OSX |
||
|- |
|- |
||
| Android Browser || |
| Android Browser || Browser || Android > 4 |
||
|- |
|- |
||
| Maxthon || Browser || Win |
| Maxthon || Browser || Win |
||
Line 243: | Line 243: | ||
| UC Browser || Browser || Symbian / Java / Android / BlackBerry |
| UC Browser || Browser || Symbian / Java / Android / BlackBerry |
||
|- |
|- |
||
| NetSurf || |
| NetSurf || Browser || experimental - RISC OS - Amiga, Atari and other exotic |
||
|- |
|- |
||
| Apple Safari || |
| Apple Safari || Browser || OSX - using plugin |
||
|- |
|- |
||
| mod_pagespeed || Apache module || web server |
| mod_pagespeed || Apache module || web server |
||
Line 367: | Line 367: | ||
! Software !! Type !! Platform / description |
! Software !! Type !! Platform / description |
||
|- |
|- |
||
| Konqueror || |
| Konqueror || Browser || (Linux KDE) |
||
|- |
|- |
||
| Mozilla Firefox || |
| Mozilla Firefox || Browser || (Win/Linux/OSX/Mobile) |
||
|- |
|- |
||
| Epiphany || |
| Epiphany || Browser || (Linux GNOME) |
||
|- |
|- |
||
| Linux KDE || Desktop/app platform || |
| Linux KDE || Desktop/app platform || |
Revision as of 08:47, 1 May 2013
Filename extension |
.webp[1] |
---|---|
Internet media type |
image/webp (unofficial) |
Magic number | WEBP |
Developed by | |
Initial release | 30 September 2010[2] |
Type of format | Image format Lossless/lossy compression algorithm |
Contained by | Resource Interchange File Format (RIFF)[3] |
Free format? | Yes[4] |
Website | developers |
WebP (pronounced "weppy")[5][6] is an image format that employs both lossy[7] and lossless compression. It is developed by Google, based on technology acquired with the purchase of On2 Technologies.[8] As a derivative of the video format VP8, it is a sister project to the multimedia container format WebM.[9] WebP related software is released under a BSD license. [10]
The format was first announced in 2010 and is presented by the developer 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.[11] On October 3, 2011 Google announced WebP support for animation, ICC profile, XMP metadata and tiling (compositing very large images from max. 16384×16384 tiles).[12] On November 18, 2011 Google began to experiment with lossless compression and support for transparency (alpha channel) in both lossless and lossy modes; support has been enabled by default in libwebp 0.2.0 (August 16, 2012).[13][14] According to Google's earlier measurements, a PNG to WebP conversion results in a 45% reduction in file 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.[15]
Technology
WebP's lossy compression algorithm is based on the intra-frame coding of the VP8 video format[16] and the classical Resource Interchange File Format (RIFF) as a container format.[2] 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 (YCbCr 4:2:0).[17] Without further content the mandatory RIFF container leads to an overhead of only twenty bytes and can hold additional metadata.[2] The side length of WebP images is limited to 16383 pixels (14 bits).[4]
WebP is based on block prediction. Each block is predicted on the values from three blocks above it and from one block left of it (block decoding is done in raster-scan order: left to right and top to bottom). There are four basic modes of block prediction: horizontal, vertical, DC (one color), and TrueMotion. Mispredicted data and non-predicted blocks are compressed in a 4×4 pixel sub-block with Discrete cosine transform and (rare) Walsh–Hadamard transform. Both transforms are done with fixed-point arithmetic to avoid rounding errors. The output is compressed with entropy encoding.[17] WebP also has explicit support for parallel decoding.[17]
The free reference implementation consists of a converter software in the form of a command-line program for Linux (webpconv) 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.[18]
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.[14]
Support
Amongst web browsers, Google Chrome and Opera natively support WebP.[19][20] All WebM-compatible browsers may also display WebP via a JavaScript shim.[21][22] WebP can also be displayed in all major browsers using WebPJS JavaScript library (IE6+ support is achieved by using Flash).[23]
Amongst the graphics software, Picasa (from version 3.9),[24] Pixelmator,[25] ImageMagick,[26] ReaConverter,[27] Konvertor,[28] XnView,[29][30] IrfanView[31] and GDAL [32] all natively support WebP. Telegraphics has released a free plug-in that enables WebP support in Adobe Photoshop CS5 and earlier.[33] GIMP 2.6 supports WebP via a plugin.[34] Google has also released a plug-in for Microsoft Windows that enables WebP support in Windows Photo Viewer, Microsoft Office 2010, and any other application that uses Windows Imaging Component.[35]
Gmail and Picasa Web Albums (both Google web applications) 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.[36] Android 4.0 supports encoding and decoding WebP images (via bitmap and Skia).[37] SDL_image supports the format since 1.2.11.
Below is the list of actual (Jan/2013) software implementations that support WebP:
Software | Type | Platform / description |
---|---|---|
Google Chrome | Browser | Win / OSX / Android / Linux |
Opera | Browser | Win / OSX / Android / Linux / Mobile / Mini |
Yandex | Browser | Win / OSX |
Android Browser | Browser | Android > 4 |
Maxthon | Browser | Win |
UC Browser | Browser | Symbian / Java / Android / BlackBerry |
NetSurf | Browser | experimental - RISC OS - Amiga, Atari and other exotic |
Apple Safari | Browser | OSX - using plugin |
mod_pagespeed | Apache module | web server |
imageresizing.net | IIS module | web server |
Google Picasa | Website | Photography |
Google Image Search | Website | search engine |
Google Plus | Website | Social network |
Gmail | Website | Email service |
Torbis | Website | Optimizer service |
Word Press | Website | Blog (plugin script) |
Magento | Website | open source E-Commerce solution |
Drupal | Website | CMS |
Joomla | Website | CMS |
Website | Social network (upload only - using Easy Photo Uploader) | |
Memecenter.com | Website | Meme creator and sharing site. |
Google Chromium | OS | (libwebp) |
Windows | OS | (Google Codec) |
Linux with GNOME | OS | (GNOME/GTK codec) |
Apple OSX | OS | (QuickTime codec) |
iOS | OS | libwebp |
Android | OS | (ndk) |
Windows Photo Viewer | image viewer | (Windows codec) |
Microsoft Office 2010 | office suite | (Windows codec) |
Java | Platform | (ImageIo) |
.NET | Platform | (GitHub/CodePlex imagewebp wrapper) |
JavaScript | Platform | (WEBPJS) |
Flash | Platform | (swf webp-plugin) |
Python | Language | (pywebp) |
Ruby | Language | (ruby-webp) |
PHP | Language | (php 5.4 gd extension) |
Google App Engine | Cloud / Web platform | |
Acorn | Image editor | |
Adobe Photoshop | Image editor | (plugin) |
Corel Photopaint | Image editor | (plugin) |
GIMP | Image editor | (plugin) |
GraphicConverter | Image editor | |
Paint.Net | Image editor | (plugin) |
ImageMagick | Image editor | |
Pixelmator | Image editor | |
RealWorld Paint | Image editor | |
Graphviz | Graph visualization | |
FileOptimizer | Tool | |
PentaSuite | PDF creation suite | |
XnView | Image viewer | |
IrfanView | Image viewer | |
gThumb | Image Viewer | |
Tautology Image Viewer | Image Viewer | |
Konvertor | Image converter | |
ReaConverter | Image converter | |
Cocos2d-X | Game library - C++ | |
SDL Library | library | |
Google libwebp | C/C++ Library | |
javavp8decoder | Java library | |
javavp8encoder | Java library | |
GDAL | GIS | |
SimpleCV | Machine vision library | |
OpenCV | Machine vision library | |
WebKit | Framework | |
OpenMAX IL 1.2 | Multimedia Language/API | Khronos specification |
Ongoing Implementations:
Software | Type | Platform / description |
---|---|---|
Konqueror | Browser | (Linux KDE) |
Mozilla Firefox | Browser | (Win/Linux/OSX/Mobile) |
Epiphany | Browser | (Linux GNOME) |
Linux KDE | Desktop/app platform | |
Wikimedia/Wikipedia | Website | (bug opened - a user script already implemented) |
Restrictions
As VP8, WebP support only format 8-bit YUV 4:2:0,[38] which may cause color loss on images with thin contrast elements (such as in pixel art and computer graphics) and ghosting in anaglyph.
Criticism
Jason Garrett-Glaser, a developer of the x264 encoder, criticized WebP in September 2010,[16] when WebP was in its infancy. Using a comparison of different encodings (JPEG, x264, and WebP) of a reference image, he stated that the quality of the WebP-encoded result was the worst of the three, mostly because of blurriness on the image. His 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" (peak signal-to-noise ratio), arguing instead that "good psy[cho-visual] optimizations are more important than anything else for compression."[16] Since that time, Pascal Massimino, developer of the cwebp encoder, improved the encoder, and fixed most of the reported defects, invalidating the points above[citation needed]. Jason Garrett-Glaser points out that H.264 intra-frame algorithm gives better results than VP8, but is patent encumbered, while VP8 is not.
See also
- WebM, a multimedia container format introduced by Google earlier in 2010, on which WebP is based
- 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
- Portable Network Graphics, lossless bitmap image format
References
- ^ "WEBP file extension". DotWhat.net. Retrieved 2010-10-01.
- ^ a b c Rabbat, Richard (2010-09-30). "WebP, a new image format for the Web". Chromium Blog. Google. Retrieved 2010-10-01.
- ^ "RIFF Container". Google Code. Google. Retrieved 2010-10-01.
- ^ a b "WebP FAQs". Google Code. Google. Retrieved 2010-10-06.
- ^ "WebP Home ("Did you know? WebP is pronounced "weppy". /(wĕpˈē)/ ")". Retrieved 2010-08-02.
- ^ Chapman, Stephen (2010-10-04). "Google's New WebP Image Standard Is All About SEO". ZDNet. Retrieved 2010-10-06.
- ^ Calore, Michael (2010-10-01). "Meet WebP, Google's New Image Format". Wired. Retrieved 2010-10-05.
- ^ Shankland, Stephen (2010-09-30). "Google offers JPEG alternative for faster Web". CNET News. CBS Interactive. Retrieved 2010-10-01.
- ^ Paul, Ryan (2010-10-02). "Google's new VP8-based image format could replace JPEG". Ars Technica. Retrieved 2010-10-05.
- ^ Rabbat, Richard (2010-10-03). "License/Patent clarification". Retrieved 2011-03-11.
- ^ "Comparative Study of WebP, JPEG and JPEG 2000". Google Code. Google. Retrieved 2010-10-01.
- ^ WebP-Mux (RIFF based container) framework
- ^ WebP v0.2.0 decoder and encoder source tree
- ^ a b Google Developers Blog: Lossless and Transparency Modes in WebP
- ^ Google Code blog: Lossless and transparency encoding in WebP
- ^ a b c Garrett-Glaser, Jason (2010-09-30). "H.264 and VP8 for still image coding: WebP?". Diary Of An x264 Developer. Retrieved 2010-10-01.
- ^ a b c "VP8 Data Format and Decoding Guide" (PDF). Google. 2010-09-23. Retrieved 2010-10-02.
- ^ "WebP for .NET". Codeplex. Microsoft. 2010-10-01.
- ^ Metz, Cade (2010-09-30). "Google open sources JPEG assassin". The Register. San Francisco. Retrieved 2010-10-03.
- ^ Ødegaard, Ruarí (2011-03-15). "CSS gradients, WebP, and Declarative UI". Opera Desktop Team. Opera Software ASA. My Opera. Retrieved 2011-03-15.
- ^ "Weppy Demo: WebP in modern browsers today". GitHub. Retrieved 2010-10-11.
- ^ "Weppy: Javascript Shim for WebP on Chrome 6 and Firefox 4.0". Blog: this title probably isn't very original. antimatter15.com. 2010-10-03. Retrieved 2011-05-24.
- ^ "WebPJS - Google's new image format WebP for not supported browsers (with alpha-channel)". Retrieved 2011-11-20.
- ^ Picasa and Picasa Web Albums Release Notes
- ^ David, Chartier (2010-10-04). "Pixelmator to Add Support for Google's WebP Image Format". PC World. IDG. Retrieved 2010-10-05.
- ^ "ImageMagick Image Formats". ImageMagick.org. ImageMagick Studio LLC. Retrieved 2011-05-24.
- ^ "ReaConverter WebP support". ReaConverter.com. ReaSoft Development. Retrieved 2011-11-21.
- ^ "Konvertor: Images Formats (v 4.06 Build 11)". Logipole. Retrieved 2011-05-23.
- ^ XnView • View topic - WebP support
- ^ "XnView Software - All Supported Formats". xnview.com. Pierre-Emmanuel Gougelet. Retrieved 2012-02-17.
- ^ History of IrfanView changes
- ^ "GDAL supported formats". gdal.org. GDAL - Geospatial Data Abstraction Library. Retrieved 2011-11-30.
- ^ "WebP Format". Free plugins for Photoshop & Illustrator. Telegraphics. Retrieved 2011-05-23.
- ^ "GIMP Plugin Registry "WebP Import / Export" ". Retrieved 2012-01-10.
- ^ "WebP Codec for Windows". WebP website. Google Code. Retrieved 2011-05-24.
- ^ "The Chromium Blog: WebP in Chrome, Picasa, Gmail With a Slew of New Features and Improvements". Google. 2011-05-21. Retrieved 2011-05-20.
- ^ Android 4.0 Platform Highlights
- ^ http://tools.ietf.org/html/rfc6386#section-2
External links
- Official website
- Windows codec
- WebP for .NET
- Bugzilla@Mozilla: 600919 - (WebP) Implement WebP image support
- IMG2WebP.net: an online image conversion tool for WebP
- URLToWebP: an online screenshot tool that outputs WebP