|Initial release||December 13, 2012|
|Type of format||Compressed video|
|Contained by||WebM, IVF|
VP9 is a successor to VP8 and competes with MPEGs High Efficiency Video Coding (HEVC/H.265). At first, VP9 was mainly used on Google's popular video platform YouTube. The emergence of the Alliance for Open Media and it supporting the ongoing development of the successor AV1 led to growing interest in the format.
The combination of VP9 video and Opus audio in the WebM container, as served by YouTube, is supported by a majority of popular HTML5 video capable web browsers, at an estimated 76% of browser usage as of November 2016. There are two notable exceptions, Internet Explorer (prior to Edge) and Safari (desktop and mobile versions) (see HTML5 video).
Parts of the format are covered by patents held by Google. The company grants free usage of related own patents based on reciprocity, i.e. as long as the user doesn't engage in patent litigations.
In Netflix's "Large-Scale Video Codec Comparison of x264, x265 and Libvpx for Practical VOD applications", libvpx came out 30% more efficient than x264 and 20% less efficient than x265 by Netflix's own VMAF metric. The comparison evaluated the slowest encoding speeds available for each encoder. The disparity between libvpx and x265 was much less on the SSIM metric (3%), which is consistent with previous findings that showed x265 to narrowly beat libvpx at the very highest quality (slowest encoding) whereas libvpx was superior at any other encoding speed, by SSIM.
In a subjective quality comparison conducted in 2014 featuring the reference encoders for HEVC (HM 15.0), MPEG-4 AVC/H.264 (JM 18.6), and VP9 (libvpx 1.2.0 with preliminary VP9 support), VP9, like H.264, required about two times the bitrate to reach video quality comparable to HEVC, while with synthetic imagery VP9 was close to HEVC. By contrast, another subjective comparison from 2014 concluded that at higher quality settings HEVC and VP9 were tied at a 40 to 45% bitrate advantage over H.264.
An encoding speed versus efficiency comparison of the reference implementation in libvpx, x264 and x265 was made by an FFmpeg developer in September 2015: By SSIM index, libvpx was mostly superior to x264 across the range of comparable encoding speeds, but the main benefit was at the slower end of x264@veryslow (reaching a sweet spot of 30–40 % bitrate improvement within twice as slow as this), whereas x265 only became competitive with libvpx around 10 times as slow as x264@veryslow. It was concluded that libvpx and x265 were both capable of the claimed 50% bitrate improvement over H.264, but only at 10–20 times the encoding time of x264. Judged by the objective quality metric VQM in early 2015, the VP9 reference encoder delivered video quality on par with the best HEVC implementations.
A decoder comparison by the same developer showed 10% faster decoding for ffvp9 than ffh264 for same-quality video, or "identical" at same bitrate. It also showed that the implementation can make a difference, concluding that "ffvp9 beats libvpx consistently by 25–50 %".
Another decoder comparison indicated 10–40 percent higher CPU load than H.264 (but does not say whether this was with ffvp9 or libvpx), and that on mobile, the Ittiam demo player was about 40 percent faster than the Chrome browser at playing VP9.
There are several variants of the VP9 format, the so-called coding profiles, that successively allow more features, starting from the basic version, the profile 0 (minimum for hardware implementations), up to profile 3:
- profile 0
- color depth: 8 bit/sample, chroma subsampling: 4:2:0
- profile 1
- color depth: 8 bit, chroma subsampling: 4:2:0, 4:2:2, 4:4:4
- profile 2
- color depth: 10–12 bit, chroma subsampling: 4:2:0
- profile 3
- color depth: 10–12 bit, chroma subsampling: 4:2:0, 4:2:2, 4:4:4
VP9 is a traditional block-based transform coding format. The bitstream format is relatively simple compared to formats that offer similar bitrate efficiency like HEVC.
VP9 has many design improvements compared to VP8. Its biggest improvement is support for the use of coding units of 64×64 pixels. This is especially useful with high-resolution video. Also the prediction of motion vectors was improved. In addition to the VP8's four modes (average/"DC", "true motion", horizontal, vertical), VP9 supports six oblique directions for linear extrapolation of pixels in intra-frame prediction.
New coding tools also include:
- eighth-pixel precision for motion vectors,
- three different switchable 8-tap subpixel interpolation filters,
- improved selection of reference motion vectors,
- improved coding of offsets of motion vectors to their reference,
- improved entropy coding,
- improved and adapted (to new block sizes) loop filtering,
- the asymmetric discrete sine transform (ADST),
- larger discrete cosine transforms (DCT, 16×16 and 32×32), and
- improved segmentation of frames into areas with specific similarities (e.g. fore-/background)
In order to enable some parallel processing of frames, video frames can be split along coding unit boundaries into up to four rows of 256 to 4096 pixels wide evenly spaced tiles with each tile column coded independently. This is mandatory for video resolutions in excess of 4096 pixels. A tile header contains the tile size in bytes so decoders can skip ahead and decode each tile row in a separate thread. The image is then divided into coding units called superblocks of 64×64 pixels which are adaptively subpartitioned in a quadtree coding structure. They can be subdivided either horizontally or vertically or both; square (sub)units can be subdivided recursively down to 4×4 pixel blocks. Subunits are coded in raster scan order: left to right, top to bottom.
Starting from each key frame, decoders keep 8 frames buffered to be used as reference frames or to be shown later. Transmitted frames signal which buffer to overwrite and can optionally be decoded into one of the buffers without being shown. The encoder can send a minimal frame that just triggers one of the buffers to be displayed ("skip frame"). Each inter frame can reference up to three of the buffered frames for temporal prediction. Up to two of those reference frames can be used in each coding block to calculate a sample data prediction, using spatially displaced (motion compensation) content from a reference frame or an average of content from two reference frames ("compound prediction mode"). The (ideally small) remaining difference (delta encoding) from the computed prediction to the actual image content is transformed using a DCT or ADST (for edge blocks) and quantized.
Something like a b-frame can be coded while preserving the original frame order in the bitstream using a structure named superframes. Hidden alternate reference frames can be packed together with an ordinary inter frame and a skip frame that triggers display of previous hidden altref content from its reference frame buffer right after the accompanying p-frame.
VP9 enables lossless encoding by transmitting at the lowest quantization level (q index 0) an additional 4×4-block encoded Walsh–Hadamard transformed (WHT) residue signal.
In container formats VP9 streams are marked with the FourCC
VP90 (or in the future possibly
VP91, ...) or
In order to be searchable, raw VP9 bitstreams have to be contained either in Googles Matroska-derived WebM format (.webm) or the older minimalistic Indeo video file (IVF) format which is traditionally supported by libvpx.
Adobe Flash, which traditionally used VPx formats up to VP7, was never upgraded to VP8 or VP9, but instead to H.264. Therefore, VP9 often penetrated corresponding web applications only with the gradual shift from Flash to HTML5 technology, which was still somewhat immature when VP9 was introduced. Trends towards UHD resolutions, higher color depth and wider gamuts are driving a shift towards new, specialized video formats. With the clear development perspective and support from the industry demonstrated by the founding of the Alliance for Open Media, as well as the pricey and complex licensing situation of HEVC it is expected that users of the hitherto leading MPEG formats will often switch to the royalty-free alternative formats of the VPx/AVx series instead of upgrading to HEVC.
Another is Wikipedia (specifically Wikimedia Commons, which hosts multimedia files across Wikipedia's subpages and languages). Wikipedia endorses open and royalty-free multimedia formats. As of 2016, the 3 accepted video formats are VP9, VP8 and Theora.
VP9 is implemented in the webbrowsers
- Chromium and Google Chrome (usable by default since version 29 from May and August 2013, respectively),
- Opera (since version 15 from July 2013),
- Mozilla Firefox (since version 28 from March 2014),
- Microsoft Edge (as of summer 2016).
The two widespread browsers Internet Explorer and Apple Safari are missing VP9 support completely. In March 2016 an estimated 65 to 75% of webbrowsers in use on desktop and notebook systems were able to play VP9 videos in HTML5 webpages, based on data from StatCounter.
Since 2016 a series of cloud encoding services (Amazon, Brightcove, castLabs, JW Player, Telestream, Wowza) offer VP9 encoding.
Android has had VP9 software decoding since version 4.4 "KitKat". For a list of consumer electronics with hardware support, including TVs, smartphones, set top boxes and game consoles, see webmproject.org's list.
Hardware encoding/decoding support
|Bristol Ridge||FX 9800P/A12-9700P||N|
|Imagination||PowerVR Series6||Apple iPhone 6/6s||N|
|Skylake||Intel Core i7 6700|
|Kaby Lake||Intel Core i7 7700|
|NVIDIA||Maxwell GM206||GTX 950/960/750v2||N|
|Qualcomm||SnapDragon 820/821||OnePlus 3, Samsung Galaxy S7,
LG G5, Google Pixel
|Samsung||Exynos 7 Octa 7420||N|
|Exynos 8 Octa 8890|
This is not a complete list. Further SoCs, as well as hardware IP vendors can be found at webmproject.org.
The reference implementation from Google is found in the free software programming library
It has a single-pass and a two-pass encoding mode, whereas the single-pass mode is considered broken and doesn't offer effective control over the target bitrate.
- ffvp9 (FFmpeg)
- Ittiam's consumer decoder
FFmpeg's VP9 decoder takes advantage of a corpus of SIMD optimizations shared with other codecs to make it fast. A comparison made by an FFmpeg developer indicated that this was faster than libvpx, and compared to FFmpeg's h.264 decoder, "identical" performance for same-bitrate video, or about 10% faster for same-quality video.
VP9 is the last official iteration of the TrueMotion series of video formats that Google bought in 2010 for 134 million dollars together with the company On2 Technologies that created it. The development of VP9 started in the second half of 2011 under the development names of Next Gen Open Video (NGOV) and VP-Next. The design goals for VP9 included reducing the bit rate by 50% compared to VP8 while maintaining the same video quality, and aiming for better compression efficiency than the MPEG High Efficiency Video Coding (HEVC) standard. In June 2013 the "profile 0" of VP9 was finalized, and two months later Google's Chrome browser was released with support for VP9 video playback. In October of that year a native VP9 decoder was added to FFmpeg, and to Libav six weeks later. Mozilla added VP9 support to Firefox in March 2014. In 2014 Google added two high bit depth profiles: profile 2 and profile 3.
In 2013 an updated version of the WebM format was published, featuring support for VP9 together with Opus audio.
In March 2013, the MPEG Licensing Administration dropped an announced assertion of disputed patent claims against VP8 and its successors after the United States Department of Justice started to investigate whether it was acting to unfairly stifle competition.
Throughout, Google has worked with hardware vendors to get VP9 support into silicon. In January 2014, Ittiam, in collaboration with ARM and Google, demonstrated its VP9 decoder for ARM Cortex devices. Using GPGPU techniques, the decoder was capable of 1080p at 30fps on an Arndale Board. In early 2015 Nvidia announced VP9 support in its Tegra X1 SoC, and VeriSilicon announced VP9 Profile 2 support in its Hantro G2v2 decoder IP.
In April 2015 Google released a significant update to its libvpx library, with version 1.4.0 adding support for 10-bit and 12-bit bit depth, 4:2:2 and 4:4:4 chroma subsampling, and VP9 multithreaded decoding/encoding.
In December 2015, Netflix published a draft proposal for including VP9 video in an MP4 container with MPEG Common Encryption.
Successor: from VP10 to AV1
On September 12, 2014, Google announced that development on VP10 had begun and that after the release of VP10 they plan to have an 18-month gap between releases of video formats. In August 2015, Google began to publish code for VP10.
However, Google decided to incorporate VP10 into AOMedia Video 1 (AV1). The AV1 codec will use elements of VP10 as well as the experimental formats Daala (Xiph/Mozilla) and Thor (Cisco). Accordingly, Google has stated that they will not deploy VP10 internally or officially release it, making VP9 the last of the VPx-based codecs to be released by Google.
- Janko Roettgers (Gigaom), January 2, 2014: YouTube goes 4K, Google signs up long list of hardware partners for VP9 support
- Alex Converse (Google), 19 September 2015: New video compression techniques under consideration for VP10 – presentation at the VideoLAN Dev Days 2015 in Paris
- Anja Schmoll-Trautmann (CNET), April 8, 2015: Youtube: Kompression mit Codec VP9 gestartet (german)
- "caniuse.com: WebM". 16 November 2016. Retrieved 16 November 2016.
- VP8 Bitstream Specification License
- "Add slightly more colorspace variations". Chromium (web browser). Google. 2013-06-07. Retrieved 2013-06-19.
- "Change the use of a reserved color space entry". Chromium (web browser). Google. 2014-11-06. Retrieved 2014-11-07.
- "HDR Video Playback". Android. Retrieved 2016-09-23.
- Ramus Larsen (2016-09-07). "Android TV 7.0 supports Dolby Vision, HDR10 and HLG". flatpanelshd. Retrieved 2016-09-23.
- "Netflix finds x265 20% more efficient than VP9". streamingmedia.com. 2016-09-02. Retrieved 2016-09-02.
- "SPIE Royalty-Free Video". 2016-08-31. Retrieved 2016-09-02.
- Ronald S. Bultje (September 28, 2015). "VP9 encoding/decoding performance vs. HEVC/H.264". Retrieved June 5, 2016.
x265/libvpx are ~50 % better than x264, as claimed. But, they are also 10–20x slower.
- Řeřábek, Martin; Ebrahimi, Touradj (2014), "Applications of Digital Image Processing XXXVII", Proceedings of the SPIE, Applications of Digital Image Processing XXXVII, 9217: 92170U, Bibcode:2014SPIE.9217E..0UR, doi:10.1117/12.2065561
- Iain Richardson, Abharana Bhat, September 5, 2014: How to stream better quality video: Part 3 – Ultra High Definition, 4K and next generation video codecs
- Jan Ozer, April 2015: The Great UHD Codec Debate: Google's VP9 Vs. HEVC/H.265
- Bultje, Ronald S. (22 February 2014). "The world's fastest VP9 decoder: ffvp9". Retrieved 14 May 2016.
So how does VP9 decoding performance compare to that of other codecs? There's basically two ways to measure this: same-bitrate, or same-quality (…) We did same-quality measurements, and found: ffvp9 tends to beat ffh264 by a tiny bit (10 %) (…) we did some same-bitrate comparisons, and found that x264 and ffvp9 are essentially identical in that scenario
- Jan Ozer, Juni 2016: VP9 Finally Comes of Age, But Is it Right for Everyone?
- "VP9 Bitstream & Decoding Process Specification" (PDF). 2016-03-31. Retrieved 2016-11-09.
- Romain Bouqueau, July 12, 2016: A view on VP9 and AV1 part 1: specifications
- Pieter Kapsenberg (2013-10-08). "How VP9 works, technical details & diagrams". Doom9's Forum. Retrieved 2014-03-31.
- "VP-Next Overview and Progress Update" (PDF). WebM Project. Google. Retrieved 2012-12-29.
- Adrian Grange. "Overview of VP-Next" (PDF). Internet Engineering Task Force. Retrieved 2012-12-29.
- Max Sharabayko (2013-10-22). "Next Generation Video Codecs: HEVC, VP9, Daala" (in German). Retrieved 2015-08-09.
- Sharabayko, Maxim P.; Ponomarev, Oleg G.; Chernyak, Roman I. (2013), "Intra compression efficiency in VP9 and HEVC" (PDF), Applied Mathematical Sciences (in German), Ruse: HIKARI Ltd., 7: 6803–6824, doi:10.12988/ams.2013.311644
- Akramullah, Shahriar (2014), "Video Coding Standards", Digital Video Concepts, Methods, and Metrics, pp. 55–100, doi:10.1007/978-1-4302-6713-3_3, ISBN 978-1-4302-6712-6
- Christopher Montgomery (2013-08-12). "Introducing Daala part 3: Time/Frequency Resolution Switching". Monty's demo pages. Xiph.Org, Red Hat Inc. Retrieved 2016-07-19.
We submitted this WHT plus a few variants to Google for use in VP9's lossless coding mode; they chose one of the alternate versions of the WHT illustrated above.
- Kilroy Hughes, David Ronca, 2015: Draft: VP Codec ISO Media File Format Binding
- Jan Ozer, 12. April 2016: A Progress Report: The Alliance for Open Media and the AV1 Codec
- "Commons:Video". Retrieved 2016-09-19.
- "Help:Converting video". Retrieved 2016-09-19.
- "[chrome] Revision 172738". Src.chromium.org. Retrieved 2016-09-27.
- Ed Hewitt (Ohso Ltd.), 21. Februar 2013: Google Chrome hits 25
- Volker Zota (2013-06-18). "Googles Web-Videocodec VP9 auf der Zielgeraden" (in German). Heise Newsticker. Retrieved 2014-11-01.
- "Firefox Release 28.0". Mozilla. 2014-03-18. Retrieved 2016-06-19.
new VP9 video decoding implemented
- Peter Bright (2016-04-18). "Windows 10 Anniversary Update: Google's WebM and VP9 codecs coming to Edge". Ars Technica.
- "Release Notes – 0.28". 11 April 2016. Retrieved 23 April 2016.
- "android supported media formats". Retrieved 9 September 2015.
- "SoCs Supporting VP8/VP9 – wiki". wiki.webmproject.org. Retrieved 2016-01-18.
- "Radeon™ Pro WX series, the first Polaris architecture-based workstation products". amd.com. 2016-07-25. Retrieved 2016-07-26.
- "AMD Launches the Radeon Rebellion with the Radeon™ RX 480 Graphics Card, Available Now". amd.com. 2016-06-29. Retrieved 2016-07-26.
- "Processors for Laptops - 7th Generation AMD A-Series APUs". amd.com. Retrieved 2016-11-30.
- "Anandtech forums: AMD Bristol/Stoney Ridge Thread". 2016-06-04. Retrieved 2016-11-30.
- "ARM announces Egil video processor for next-gen mobiles – CPU – News – HEXUS.net". hexus.net. Retrieved 2016-06-15.
- "Imagination makes efficient VP9 video decode a reality for all mainstream devices". Imagination Blog. Retrieved 2016-09-28.
- "Compatible chipsets". kodi.wiki. Retrieved 2016-08-05.
- "Advanced VP9 decoder now available for Imagination's PowerVR Series6 GPUs". Imagination Blog. Retrieved 2016-01-18.
- "New Intel IGP drivers add H.265, VP9 hardware decode support". The Tech Report. Retrieved 2016-01-18.
- "vaapi/intel-driver". cgit.freedesktop.org. Retrieved 2016-04-19.
- "intel-hybrid-driver". github.com. Retrieved 2016-04-19.
- "VP9 Encode Support Added To VA-API – Phoronix". www.phoronix.com. Retrieved 2016-05-27.
- "Helio X20 / X25 | MediaTek". Retrieved 9 June 2016.
- "MediaTek Launches Helio X30 with Cortex A73, 10nm Node and PowerVR GPU". Retrieved 2016-09-28.
- "Codec Support Matrix". nvidia.com. Retrieved 2016-07-27.
- "NVIDIA Tegra X1 Preview & Architecture Analysis". www.anandtech.com. Retrieved 2016-08-07.
- "Snapdragon 820 Processor Product Brief | Qualcomm". Qualcomm. Retrieved 2016-01-18.
- "Experience the Amazing Exynos by Visiting Samsung Exynos Website.". www.samsung.com. Retrieved 2016-01-18.
- "Supported codecs on Exynos variant of the Galaxy S7". imgur.com. Retrieved 2016-07-06.
- Grois, Dan; Marpe, Detlev; Nguyen, Tung; Hadar, Ofer (2014), "Applications of Digital Image Processing XXXVII", Proceedings of the SPIE, Applications of Digital Image Processing XXXVII, 9217: 92170Q, Bibcode:2014SPIE.9217E..0QG, doi:10.1117/12.2073323
- "Ittiam's VP9 product page". Retrieved 28 May 2016.
- BoF meeting on the IETF85 conference in Atlanta, USA with a presentation on VP-Next. Audio recording (MP3, ~60 MiB), Präsentationsfolien (PDF, ~233 kiB)
- "Next Gen Open Video (NGOV) Requirements" (PDF). WebM Project. Google. Retrieved 2012-12-29.
- Paul Wilkins (2013-05-08). "VP9 Bitstream finalization update". WebM Project. Google. Retrieved 2013-05-17.
- "VP9 profile 0 release candidate". Chromium (web browser). Google. 2013-06-11. Retrieved 2013-06-19.
- "Native VP9 decoder is now in the Git master branch". Launchpad. 2013-10-03. Retrieved 2013-12-08.
- "Update on WebM/VP9". Google Developers. 2014-06-25. Retrieved 2014-06-28.
- "Remove experimental-bitstream flag for profiles>0". Chromium (web browser). Google. 2014-10-03. Retrieved 2015-03-02.
- Press release from 7 March 2013: Google and MPEG LA Announce Agreement Covering VP8 Video Format
- Thomas Catan (2011-03-04). "Web Video Rivalry Sparks U.S. Probe". The Wall Street Journal. Dow Jones & Company, Inc. Retrieved 2011-12-31.
- Cheng, Jacqui (2011-03-04). "Report: DoJ looking into possible anti-WebM moves by MPEG LA". Ars Technica. Condé Nast Digital. Retrieved 2011-12-31.
- "Ittiam and ARM are the first to efficiently bring Google's VP9 to mobile devices". ARM Community. 2014-01-07. Retrieved 2013-07-04.
- "Ittiam's H.265 and VP9 Solutions to Have Widespread Coverage at CES 2014". ARM Community. 2014-01-07. Retrieved 2013-07-04.
- "NVIDIA Tegra® X1". nVIDIA. January 2015. Retrieved 2016-06-19.
H.265, VP9 4K 60 fps Video
- Joshua Ho, Ryan Smith (AnandTech), January 5, 2015: NVIDIA Tegra X1 Preview & Architecture Analysis
- "VeriSilicon Introduces Hantro G2v2 Multi-format Decoder IP with VP9 Profile 2 to Support 10-bit Premium Internet Content". Business Wire. 2015-03-02. Retrieved 2015-03-02.
- Michael Larabel (2015-04-03). "libvpx 1.4.0 Brings Faster VP9 Encode/Decode". Phoronix. Retrieved 2015-04-03.
- Jan Ozer (May 24, 2016). "Netflix Discusses VP9-Related Development Efforts". streamingmedia.com. Retrieved June 4, 2016.
- "A High Performance, OpenCL-Based VP9 Encoder". phoronix.com. 12 January 2016. Retrieved 12 January 2016.
- Stephen Shankland (September 12, 2014). "Google's Web-video ambitions bump into hard reality". CNET. Retrieved September 13, 2014.
- Michael Larabel (Phoronix.com), 17. August 2015: Google Starts Pushing Out VP10 Open-Source Code Into Libvpx
- "The Alliance for Open Media Welcomes New Members and Announces Availability of Open Source Video Codec Project". Alliance for Open Media. 2016-04-05. Retrieved 2016-04-07.
- Jan Ozer (2016-04-12). "A Progress Report: The Alliance for Open Media and the AV1 Codec". StreamingMedia.com. Retrieved 2016-04-13.
[...] code from VP10, by far the most mature of the three, will dominate.
- Jan Ozer (2016-05-15). "What is VP9". StreamingMedia.com. Retrieved 2016-06-19.
|Wikimedia Commons has media related to VP9.|
- Official website
- "WebM and the New VP9 Open Video Codec", I/O (YouTube) (video), Google, 2013.
- Bitstream Overview
- Jan Ozer (Streaming Media Magazine), Juni 2016: VP9 Finally Comes of Age, But Is it Right for Everyone?