VP9
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
Lua error in package.lua at line 80: module 'strict' not found.
![]() |
|
Developed by | |
---|---|
Initial release | December 13, 2012 |
Type of format | Compressed video |
Contained by | WebM, Matroska |
Extended from | VP8 |
Extended to | VP10 |
Open format? | Yes |
Website | webmproject.org/vp9 |
Developer(s) | |
---|---|
Development status | Active |
Written in | C |
Operating system | Unix-like (including GNU/Linux, FreeBSD and Mac OS X), Windows |
Type | Video codec |
License | New BSD license |
Website | webmproject.org |
VP9 is an open and royalty free[3] video coding format developed by Google. VP9 had earlier development names of Next Gen Open Video (NGOV) and VP-Next. VP9 is a successor to VP8. Its own successor, VP10, is currently under development. Chromium, Chrome, Firefox, and Opera support playing VP9 video format in the HTML5 video tag.
Contents
History
The development of VP9 started in the second half of 2011.[4][5] 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.[6][5] 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.[7][8] In October of that year a native VP9 decoder was added to FFmpeg,[9] and to Libav six weeks later. Mozilla added VP9 support to Firefox in March 2014.[10][11]
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.[12][13] 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.[14][15][16]
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.[17]
Microsoft announced in September 2015 that their Microsoft Edge browser will add VP9 support in future release.[18]
In January 2016, Ittiam demonstrated an OpenCL based VP9 encoder.[19] The encoder is targeting ARM Mali mobile GPUs and was demonstrated on a Samsung Galaxy S6.
Technical details
VP9 has many design improvements compared to VP8.[4][5] VP9 supports the use of superblocks[20] of 64x64 pixels.[4][5] A quadtree coding structure will be used with the superblocks.[4][5]
The VP9 format supports the following color spaces: Rec. 601, Rec. 709, Rec. 2020, SMPTE-170, SMPTE-240, and sRGB.[21][22]
Profiles
The VP9 format defines four profiles: profile 0, profile 1, profile 2, and profile 3.[7][23] Profile 0 allows for a bit depth of 8-bits per sample and supports 4:2:0 chroma subsampling.[7][23][24] Profile 1, which is optional for hardware, adds support for 4:2:2 chroma subsampling, 4:4:4 chroma subsampling, alpha channel support, and depth channel support.[7][23] Google later developed two high bit depth profiles: profile 2 and profile 3.[25][24][26] Profile 2 allows for a bit depth of 10-bits to 12-bits per sample and supports 4:2:0 chroma subsampling.[24] Profile 3 adds support for 4:2:2 chroma subsampling, 4:4:4 chroma subsampling, and alpha channel support.[24]
Adoption
Lua error in package.lua at line 80: module 'strict' not found.
- YouTube offers several resolutions of VP9 video, with Opus audio in the WebM file format, through DASH streaming, including 720p and 1080p,[27] and is now also using VP9 for 4K resolution content.[28]
- Some smart TVs support VP9.
- Android supports decoding VP9, from version 4.4 "KitKat" and newer.[29]
- In September 2015, Microsoft announced the Edge browser in Windows 10 will add support for WebM/VP9.[18][30]
- On April 11, 2016, full VP9 support was announced in the newest MythTV version (0.28).[31]
Software implementations
Encoding
- libvpx – the reference encoder
- Eve – a commercial encoder
- Ittiam's encoder products (OTT, broadcast, consumer) [32]
Decoding
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.[33]
Hardware Encoding/Decoding Support
The following chips, CPUs, GPUs and SoCs[34] provide hardware acceleration of VP9.
Chip | VP9 decoding | VP9 encoding |
---|---|---|
AllWinner A80 | ![]() |
![]() |
Intel Bay Trail[35] | ![]() |
![]() |
Intel Merrifield[36] | ![]() |
![]() |
Intel Moorefield[36] | ![]() |
![]() |
Intel Skylake[37][38][39] | ![]() |
![]() |
Intel Kaby Lake[40][41] | ![]() |
![]() |
Mediatek MT6795 | ![]() |
![]() |
NVIDIA GeForce GTX 750 SE/950/960 (GM206 GPU) | ![]() |
![]() |
NVIDIA GeForce GTX 1070/1080 (GP104 GPU) | ![]() |
![]() |
NVIDIA Tegra X1[42] | ![]() |
![]() |
Qualcomm SnapDragon 820[43] | ![]() |
? |
Rockchip RK3188 | ![]() |
![]() |
Samsung Exynos 7 Octa 7420[44] | ![]() |
![]() |
Samsung Exynos 8 Octa 8890 | ![]() |
? |
VP10
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
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.[45] In August 2015, Google began to publish code for VP10.[46]
VP10 is supposed to be released end of 2016.[47]
AOMedia Video, also called AV1, will use elements of VP10.[48][49]
Google has stated that they will not deploy VP10 internally or release it publicly, making VP9 the last of the VPX-based codecs to be released by Google.[50]
See also
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
External links
- Official website
- Lua error in package.lua at line 80: module 'strict' not found..
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Janko Roettgers (Gigaom), January 2, 2014: YouTube goes 4K, Google signs up long list of hardware partners for VP9 support
- ↑ 4.0 4.1 4.2 4.3 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 5.0 5.1 5.2 5.3 5.4 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 7.0 7.1 7.2 7.3 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Bug 833023 – (vp9) Implement VP9 video decoder in Firefox
- ↑ https://www.mozilla.org/en-US/firefox/28.0/releasenotes/
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://www.nvidia.com/object/tegra-x1-processor.html
- ↑ Joshua Ho, Ryan Smith (AnandTech), January 5, 2015: NVIDIA Tegra X1 Preview & Architecture Analysis
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 18.0 18.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 23.0 23.1 23.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 24.0 24.1 24.2 24.3 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 32.0 32.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 36.0 36.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Michael Larabel (Phoronix.com), 17. August 2015: Google Starts Pushing Out VP10 Open-Source Code Into Libvpx
- ↑ http://www.winxdvd.com/resource/everything-about-vp10.htm
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://www.streamingmedia.com/Articles/Editorial/What-Is-.../What-Is-VP9-111334.aspx