VP9

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Lua error in package.lua at line 80: module 'strict' not found.

VP9
VP9 logo
Developed by Google
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
libvpx (VP9 codec library)[1][2]
Developer(s) Google
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.

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.

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 Green tickY Red XN
Intel Bay Trail[35] Green tickY Red XN
Intel Merrifield[36] Green tickY Red XN
Intel Moorefield[36] Green tickY Red XN
Intel Skylake[37][38][39] Green tickY Green tickY
Intel Kaby Lake[40][41] Green tickY Green tickY
Mediatek MT6795 Green tickY Red XN
NVIDIA GeForce GTX 750 SE/950/960 (GM206 GPU) Green tickY Red XN
NVIDIA GeForce GTX 1070/1080 (GP104 GPU) Green tickY Red XN
NVIDIA Tegra X1[42] Green tickY Red XN
Qualcomm SnapDragon 820[43] Green tickY ?
Rockchip RK3188 Green tickY Red XN
Samsung Exynos 7 Octa 7420[44] Green tickY Red XN
Samsung Exynos 8 Octa 8890 Green tickY ?

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

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Janko Roettgers (Gigaom), January 2, 2014: YouTube goes 4K, Google signs up long list of hardware partners for VP9 support
  4. 4.0 4.1 4.2 4.3 Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 5.2 5.3 5.4 Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. 7.0 7.1 7.2 7.3 Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Bug 833023 – (vp9) Implement VP9 video decoder in Firefox
  11. https://www.mozilla.org/en-US/firefox/28.0/releasenotes/
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. http://www.nvidia.com/object/tegra-x1-processor.html
  15. Joshua Ho, Ryan Smith (AnandTech), January 5, 2015: NVIDIA Tegra X1 Preview & Architecture Analysis
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. 18.0 18.1 Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. 23.0 23.1 23.2 Lua error in package.lua at line 80: module 'strict' not found.
  24. 24.0 24.1 24.2 24.3 Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. 32.0 32.1 Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.
  34. Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. 36.0 36.1 Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. Lua error in package.lua at line 80: module 'strict' not found.
  44. Lua error in package.lua at line 80: module 'strict' not found.
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. Michael Larabel (Phoronix.com), 17. August 2015: Google Starts Pushing Out VP10 Open-Source Code Into Libvpx
  47. http://www.winxdvd.com/resource/everything-about-vp10.htm
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. http://www.streamingmedia.com/Articles/Editorial/What-Is-.../What-Is-VP9-111334.aspx

External links

  • Official website
  • Lua error in package.lua at line 80: module 'strict' not found..