VP8

Last updated
VP8
Vp8-logo-for-mediawiki.svg
Internet media type video/VP8
Developed by On2 Technologies, Google
Initial releaseSeptember 13, 2008
Type of format Video coding format
Contained by WebM, Matroska
Extended from VP7
Extended to VP9
Standard RFC   6386
Open format?Yes (specification under CC-by) [1]
Free format?See § History

VP8 is an open and royalty-free video compression format released by On2 Technologies in 2008.

Contents

Initially released as a proprietary successor to On2's previous VP7 format, VP8 was released as an open and royalty-free format in May 2010 after Google acquired On2 Technologies. Google provided an irrevocable patent promise on its patents for implementing the VP8 format, and released a specification of the format under the Creative Commons Attribution 3.0 license. [1] That same year, Google also released libvpx, the reference implementation of VP8, under the revised BSD license. [2]

Opera, Firefox, Chrome, Pale Moon, and Chromium support playing VP8 video in HTML video tag. [3] Internet Explorer officially supports VP8 if the user has the DirectShow filter installed. [4] [5] According to Google, VP8 is mainly used in connection with WebRTC and as a format for short looped animations, as a replacement for the Graphics Interchange Format (GIF). [6]

VP8 can be multiplexed into the Matroska-based container format WebM along with Vorbis and Opus audio. The image format WebP is based on VP8's intra-frame coding. VP8's direct successor, VP9, and the royalty-free AV1 codec from the Alliance for Open Media are based on VP8. [7]

Features

VP8 only supports progressive scan video signals with 4:2:0 chroma subsampling and 8 bits per sample. In its first public version, On2's VP8 implementation supports multi-core processors with up to 64 cores simultaneously. At least in the implementation (from August 2011), VP8 is comparatively badly adapted to high resolutions (HD). With only three reference frame buffers needed, VP8 enables decoder implementations with a relatively small memory footprint. The format features a pure intra mode, i.e. using only independently coded frames without temporal prediction, to enable random access in applications like video editing.

Technology

VP8 is a traditional block-based transform coding format. It has much in common with H.264, e.g. some prediction modes. [8] At the time of first presentation of VP8, according to On2 the in-loop filter [9] and the Golden Frames [10] were among the novelties of this iteration. The first definition of such a filter is already found in the H.263 standard, though, and Golden Frames were already in use in VP5 [11] and VP7. [12]

The discrete cosine transform (DCT) on 4×4 blocks and the Walsh–Hadamard transform (WHT) serve as basic frequency transforms. A maximum of three frames can be referenced for temporal prediction: the last Golden Frame (may be an intra frame), alternate reference frame, and the directly preceding frame. The so-called alternate reference frames (altref) can serve as reference-only frames for displaying them can be deactivated. In this case, the encoder can fill them with arbitrary useful image data, even from future frames, and thereby serve the same purpose as the b-frames of the MPEG formats. [13] Similar macroblocks can be assigned to one of up to four (even spatially disjoint) segments and thereby share parameters like the reference frame used, quantizer step size, or filter settings. VP8 offers two different adjustable deblocking filters that are integrated into the codec loops (in-loop filtering). Many coding tools use probabilities that are calculated continuously from recent context, starting at each intra frames. Macro blocks can comprise 4×4, 8×8, or 16×16 samples. Motion vectors have quarter-pixel precision.

History

VP8 was first released by On2 Technologies on September 13, 2008, as On2 TrueMotion VP8, replacing its predecessor, VP7. [14] [15]

After Google acquired On2 in February 2010, [16] calls for Google to release the VP8 source code were made. Most notably, the Free Software Foundation issued an open letter on March 12, 2010, asking Google to gradually replace the usage of Adobe Flash Player and H.264 on YouTube with a mixture of HTML5 and a freed VP8. [17]

Word of an impending open-source release announcement got out on April 12, 2010. [18] On May 19, at its Google I/O conference, Google released the VP8 codec software under a BSD-like license and the VP8 bitstream format specification under an irrevocable free patent license. [19] [20] [21] This made VP8 the second product from On2 Technologies to be opened, following their donation of the VP3 codec in 2002 to the Xiph.Org Foundation, [22] from which they derived the Theora codec.

In February 2011, MPEG LA invited patent holders to identify patents that may be essential to VP8 in order to form a joint VP8 patent pool. As a result, in March the United States Department of Justice (DoJ) started an investigation into MPEG LA for its role in possibly attempting to stifle competition. [23] [24] In July 2011, MPEG LA announced that 12 patent holders had responded to its call to form a VP8 patent pool, without revealing the patents in question, [25] and despite On2 having gone to great lengths to avoid such patents. [26]

In November 2011, the Internet Engineering Task Force published the informational RFC 6386, VP8 Data Format and Decoding Guide.

In March 2013, MPEG LA announced that it had dropped its effort to form a VP8 patent pool after reaching an agreement with Google to license the patents that it alleges "may be essential" for VP8 implementation, and granted Google the right to sub-license these patents to any third-party user of VP8 or VP9. [27] [28] This deal has cleared the way for possible MPEG standardisation as its royalty-free internet video codec, after Google submitted VP8 to the MPEG committee in January 2013. [29]

In March 2013, Nokia asserted a patent claim against HTC and Google for the use of VP8 in Android in a German court; [30] however, on August 5, 2013, the webm project announced that the German court has ruled that VP8 does not infringe Nokia's patent. [31]

Nokia has made an official intellectual property rights (IPR) declaration to the IETF with respect to the VP8 Data Format and Decoding Guide listing 64 granted patents and 22 pending patent applications. [32]

Implementations

libvpx

The reference implementation of a VP8 (and VP9) codec is found in the programming library libvpx which is released as free software. It has a mode for one-pass and two-pass encoding, respectively, while the one-pass mode is known as being broken and not offering effective control over the target bitrate. [33] [ failed verification ] [34] [ failed verification ]

Currently, libvpx is primary software library capable of encoding VP8 video streams, [35] but at least one independent implementation exists in ffvp8enc.

Encoding

A Video for Windows wrapper of the VP8 codec based on the Google VP8 library (FourCC: VP80) is available. [36]

The WebM Project hardware team in Finland released an RTL hardware encoder for VP8 that is available at no cost for semiconductor manufacturers. [37] [38]

The Nvidia Tegra mobile chipsets have full VP8 hardware encoding and decoding (since Tegra 4). [39]

Nexus 5 could use hardware encoding [40]

Decoding

libvpx is capable of decoding VP8 video streams. [41]

On July 23, 2010, Fiona Glaser, Ronald Bultje, and David Conrad of the FFmpeg Team announced the ffvp8 decoder. Through testing, they determined that ffvp8 was faster than Google's own libvpx decoder. [42] The WebM Project hardware team released an RTL hardware decoder for VP8, that is releasable to semiconductor companies at zero cost. [38] [43] TATVIK Technologies announced a VP8 decoder that is optimized for the ARM Cortex-A8 processor. [44] Marvell's ARMADA 1500-mini chipset has VP8 SD and HD hardware decoding support (used in Chromecast). [45] Intel has full VP8 decoding support built into their Bay Trail chipsets. [46] Intel Broadwell also adds VP8 hardware decoding support. [47]

Operating system support

VP8 support by different operating systems
Microsoft Windows macOS BSD / Linux Android OS iOS
Codec supportYesYesYesYesYes
Container supportOn Windows 10 Anniversary Update (1607):
WebM (.webm is not recognised; requires pseudo extension)
Matroska (.mkv)
On Windows 10 October 2018 Update (1809):
WebM (.webm is recognised officially)
WebM (.webm)
- Introduced in macOS 11.3
WebM (.webm)
Matroska (.mkv)
WebM (.webm)
Matroska (.mkv)
WebM (.webm)
- Introduced in iOS 17.4
NotesOn Windows 10 :
- On Anniversary Update (1607), limited support is available in Microsoft Edge (via MSE only) and Universal Windows Platform apps.
- On April 2018 Update (1803) with Web Media Extensions preinstalled, Microsoft Edge (EdgeHTML 17) supports VP8 videos embedded in <video> tags.
- On October 2018 Update (1809), VP9 Video Extensions is preinstalled. It enables encoding of VP8 and VP9 content on devices that don't have a hardware-based video encoder. [48]
-- Support introduced in Android 2.3.3+
- Streamable in Android 4.0+

WebM

Also on May 19, 2010, the WebM Project was launched, featuring contributions from "Mozilla, [49] Opera, [50] [51] Google [52] and more than forty other publishers, software and hardware vendors" in a major effort to use VP8 as the video format for HTML5. [53] In the WebM container format, the VP8 video is used with Vorbis or Opus audio. [54] [55] Internet Explorer 9 will support VP8 video playback if the proper codec is installed. [5] Android is WebM-enabled from version 2.3 - Gingerbread. [56] Since Android 4.0, VP8 could be read inside mkv [57] and WebM could be streamed. [58] Adobe also announced that the Flash Player will support VP8 playback in a future release. [59]

WebP

On September 30, 2010, Google announced WebP, their new image format, on the Chromium blog. [60] WebP is based on VP8's intra-frame coding and uses a container based on Resource Interchange File Format (RIFF).

Comparison with H.264

While H.264/MPEG-4 AVC contains patented technology and requires licenses from patent holders and limited royalties for hardware, Google has irrevocably released the VP8 patents it owns under a royalty-free public license. [19] [61]

According to a comparison of VP8 (encoded with the initial release of libvpx) and H.264 conducted by StreamingMedia, it was concluded that "H.264 may have a slight quality advantage, but it's not commercially relevant" and that "Even watching side-by-side (which no viewer ever does), very few viewers could tell the difference". They also stated that "H.264 has an implementation advantage, not a technology advantage." [62]

Google claims that VP8 offers the "highest quality real-time video delivery" [63] and Libvpx includes a mode where the maximum CPU resources possible will be used while still keeping the encoding speed almost exactly equivalent to the playback speed (realtime), keeping the quality as high as possible without lag. On the other hand, a review conducted by streamingmedia.com in May 2010 concluded that H.264 offers slightly better quality than VP8. [64]

In September 2010 Fiona Glaser, a developer of the x264 encoder, gave several points of criticism for VP8, claiming that its specification was incomplete, and the performance of the encoder's deblocking filter was inferior to x264 in some areas. [65] In its specification, VP8 should be a bit better than H.264 Baseline Profile and Microsoft's VC-1. Encoding is somewhere between Xvid and VC-1. Decoding is slower than FFmpeg's H.264, but this aspect can hardly be improved due to the similarities to H.264. Compression-wise, VP8 offers better performance than Theora and Dirac. According to Glaser, the VP8 interface lacks features and is buggy, and the specification is not fully defined and could be considered incomplete. Much of the VP8 code is copy-pasted C code, and since the source constitutes the actual specification, any bugs will also be defined as something that has to be implemented to be in compliance.

In 2010, it was announced that the WebM audio/video format would be based on a profile of the Matroska container format together with VP8 video and Vorbis audio. [55]

See also

Related Research Articles

Theora is a free lossy video compression format. It was developed by the Xiph.Org Foundation and distributed without licensing fees alongside their other free and open media projects, including the Vorbis audio format and the Ogg container.

<span class="mw-page-title-main">FFmpeg</span> Multimedia framework

FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing video and audio files. It is widely used for format transcoding, basic editing, video scaling, video post-production effects, and standards compliance.

<span class="mw-page-title-main">Advanced Video Coding</span> Most widely used standard for video compression

Advanced Video Coding (AVC), also referred to as H.264 or MPEG-4 Part 10, is a video compression standard based on block-oriented, motion-compensated coding. It is by far the most commonly used format for the recording, compression, and distribution of video content, used by 91% of video industry developers as of September 2019. It supports a maximum resolution of 8K UHD.

<span class="mw-page-title-main">On2 Technologies</span> American video technology company

On2 Technologies, formerly known as The Duck Corporation, was a small publicly traded company, founded in New York City in 1992 and headquartered in Clifton Park, New York, that designed video codec technology. It created a series of video codecs called TrueMotion.

x264 is a free and open-source software library and a command-line utility developed by VideoLAN for encoding video streams into the H.264/MPEG-4 AVC video coding format. It is released under the terms of the GNU General Public License.

Flash Video is a container file format used to deliver digital video content over the Internet using Adobe Flash Player version 6 and newer. Flash Video content may also be embedded within SWF files. There are two different Flash Video file formats: FLV and F4V. The audio and video data within FLV files are encoded in the same way as SWF files. The F4V file format is based on the ISO base media file format, starting with Flash Player 9 update 3. Both formats are supported in Adobe Flash Player and developed by Adobe Systems. FLV was originally developed by Macromedia. In the early 2000s, Flash Video was the de facto standard for web-based streaming video. Users include Hulu, VEVO, Yahoo! Video, metacafe, Reuters.com, and many other news providers.

libavcodec is a free and open-source library of codecs for encoding and decoding video and audio data.

MPEG LA was an American company based in Denver, Colorado that licensed patent pools covering essential patents required for use of the MPEG-2, MPEG-4, IEEE 1394, VC-1, ATSC, MVC, MPEG-2 Systems, AVC/H.264 and HEVC standards.

The following is a list of H.264/MPEG-4 AVC products and implementations.

High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2, is a video compression standard designed as part of the MPEG-H project as a successor to the widely used Advanced Video Coding. In comparison to AVC, HEVC offers from 25% to 50% better data compression at the same level of video quality, or substantially improved video quality at the same bit rate. It supports resolutions up to 8192×4320, including 8K UHD, and unlike the primarily 8-bit AVC, HEVC's higher fidelity Main 10 profile has been incorporated into nearly all supporting hardware.

HTML video is a subject of the HTML specification as the standard way of playing video via the web. Introduced in HTML5, it is designed to partially replace the object element and the previous de facto standard of using the proprietary Adobe Flash plugin, though early adoption was hampered by lack of agreement as to which video coding formats and audio coding formats should be supported in web browsers. As of 2020, HTML video is the only widely supported video playback technology in modern browsers, with the Flash plugin being phased out.

WebM is an audiovisual media file format. It is primarily intended to offer a royalty-free alternative to use in the HTML video and the HTML audio elements. It has a sister project, WebP, for images. The development of the format is sponsored by Google, and the corresponding software is distributed under a BSD license.

libvpx Codec library implementing VP8 and VP9 encoders and decoders

libvpx is a free software video codec library from Google and the Alliance for Open Media (AOMedia). It serves as the reference software implementation for the VP8 and VP9 video coding formats, and for AV1 a special fork named libaom that was stripped of backwards compatibility.

<span class="mw-page-title-main">Chips&Media</span> Intellectual property provider

Chips&Media, Inc. is a provider of intellectual property for integrated circuits such as system on a chip technology for encoding and decoding video, and image processing. Headquartered in Seoul, South Korea.

A video coding format is a content representation format of digital video content, such as in a data file or bitstream. It typically uses a standardized video compression algorithm, most commonly based on discrete cosine transform (DCT) coding and motion compensation. A specific software, firmware, or hardware implementation capable of compression or decompression in a specific video coding format is called a video codec.

<span class="mw-page-title-main">VP9</span> Open and royalty-free video coding format released by Google in 2013

VP9 is an open and royalty-free video coding format developed by Google.

OpenH264 is a free software library for real-time encoding and decoding video streams in the H.264/MPEG-4 AVC format. It is released under the terms of the Simplified BSD License.

<span class="mw-page-title-main">AV1</span> Open and royalty-free video coding format developed by the Alliance for Open Media

AOMedia Video 1 (AV1) is an open, royalty-free video coding format initially designed for video transmissions over the Internet. It was developed as a successor to VP9 by the Alliance for Open Media (AOMedia), a consortium founded in 2015 that includes semiconductor firms, video on demand providers, video content producers, software development companies and web browser vendors. The AV1 bitstream specification includes a reference video codec. In 2018, Facebook conducted testing that approximated real-world conditions, and the AV1 reference encoder achieved 34%, 46.2%, and 50.3% higher data compression than libvpx-vp9, x264 High profile, and x264 Main profile respectively.

References

  1. 1 2 "VP8 Bitstream Specification License". WebM Project. Retrieved 30 January 2012.
  2. "Changes to the WebM Open Source License" . Retrieved 2010-06-04.
  3. "Nokia lines up patents against VP8 video codec". Archived from the original on 28 May 2013. Retrieved 2013-03-25.
  4. kragil (2010-05-19). "Microsoft: Internet Explorer 9 To Support VP8 – OSnews". www.osnews.com. Retrieved 2022-10-22.
  5. 1 2 Dean Hachamovitch (Microsoft) on March 16, 2011 on IEBlog: HTML5 Video Update—WebM for IE9
  6. Alex Converse (Google), September 19, 2015: New video compression techniques under consideration for VP10 – presentation at the VideoLAN Dev Days 2015 in Paris
  7. Zimmerman, Steven (15 May 2017). "Google's Royalty-Free Answer to HEVC: A Look at AV1 and the Future of Video Codecs". XDA Developers. Archived from the original on 14 June 2017. Retrieved 10 June 2017.
  8. "On2 VP8 - MultimediaWiki". wiki.multimedia.cx.
  9. "Loop Filter". Archived from the original on September 18, 2008. Retrieved February 22, 2010.
  10. "Golden Frames". Archived from the original on October 22, 2008. Retrieved February 22, 2010.
  11. description of VP5 on MultimediaWiki
  12. "On2's TrueMotion VP7 Video Codec". July 11, 2008. Archived from the original on March 23, 2010. Retrieved May 29, 2010.
  13. Yaowu Xu, 27. Mai 2010: Inside WebM Technology: The VP8 Alternate Reference Frame
  14. Glen Dickson (2008-09-16). "IBC2008: On2 Touts New Codec for Web Video". Broadcasting & Cable. Retrieved 2009-09-11.
  15. "On2 Technologies Unveils New Advanced Video Compression Format". Digital TV News. 2008-09-13. Retrieved 2012-01-30.
  16. "Google Closes On2 Technologies Acquisition" (Press release). Mountain View, California, USA: Google Inc. 2010-02-19. Retrieved 2013-03-22.
  17. Wilson, Holmes (2010-03-12). "Open letter to Google: free VP8, and use it on YouTube". Free Software Foundation.
  18. Lawler, Ryan (2010-04-12). "Google to Open-source VP8 for HTML5 Video". NewTeeVee.com. Archived from the original on 2010-04-16.
  19. 1 2 "Additional IP Rights Grant (Patents)" . Retrieved 2010-06-04.
  20. "The WebM Project - Licenses". www.webmproject.org.
  21. Parr, Ben (2010-05-19), Google Makes Major Announcements at Google I/O, mashable.com
  22. The Free Library (2002-08-01) On2 Signs Pact With Xiph.org to Develop/Support VP3, Retrieved on 2009-08-16
  23. Catan, Thomas (4 March 2011), Web Video Rivalry Sparks U.S. Probe, The Wall Street Journal
  24. Cheng, Jacqui (4 March 2011). "Report: DoJ looking into possible anti-WebM moves by MPEG LA". Ars Technica . Condé Nast Digital. Retrieved 8 March 2011.
  25. Jan Ozer (2011-07-26). "WebM Patent Fight Ahead for Google?". StreamingMedia.com.
  26. Daffara, Carlo (25 May 2010), An analysis of WebM and its patent risk – updated, carlodaffara.conecta.it
  27. "Google and MPEG LA make a deal over VP8 codec - Update". The H. Archived from the original on 8 December 2013. Retrieved 10 March 2013.
  28. "Google and MPEG LA Announce Agreement Covering VP8 Video Format" (PDF). 7 March 2013. Archived from the original (PDF) on 5 March 2016. Retrieved 10 March 2013.
  29. "VP8 could become MPEG standard". The H. Archived from the original on 8 December 2013. Retrieved 10 March 2013.
  30. "Patent clouds remain over VP8: Google points to FRAND option, Nokia alleges infringement in court". 2013-03-08.
  31. "Good News from Germany". 2013-08-05. Retrieved 2013-08-19.
  32. "Setback for Google's VP8: Nokia refuses to commit patents to royalty-free or FRAND licensing". www.fosspatents.com.
  33. Grois, Dan; Marpe, Detlev; Nguyen, Tung; Hadar, Ofer (2014), Tescher, Andrew G (ed.), "Comparative assessment of H.265/MPEG-HEVC, VP9, and H.264/MPEG-AVC encoders for low-delay video applications", Proceedings of SPIE – Applications of Digital Image Processing XXXVII, Applications of Digital Image Processing XXXVII (in German), vol. 9217, San Diego, California, pp. 92170Q, Bibcode:2014SPIE.9217E..0QG, doi:10.1117/12.2073323, S2CID   16598590
  34. Jan Ozer, June 2016: VP9 Finally Comes of Age, But Is it Right for Everyone?
  35. WebM VP8 Encoder [VP8 SDK], The WebM Project
  36. "Google VP8 Video For Windows codec". Optima SC Inc. Retrieved 2 September 2011.
  37. Introducing "Anthill," the First VP8 Hardware Encoder IP Release, WebM Project
  38. 1 2 WebM Video Hardware RTLs, WebM Project
  39. NVIDIA Tegra 4 Family GPU Architecture (PDF)
  40. "Sign in - Google Accounts". accounts.google.com.
  41. VP8 SDK - WebM VP8 Decoder, WebM Project
  42. Glaser, Fiona (2010-07-23), Diary Of An x264 Developer: Announcing the world's fastest VP8 decoder, archived from the original on 2010-09-30, retrieved 2012-01-04
  43. Availability of WebM (VP8) Video Hardware IP Designs, WebM Project
  44. Tatvik Announces High Performance VP8 Video Decoder Optimized For Cortex-A8 Using ARM NEON Technology, tatvik.com, 2011-03-09
  45. "Marvell flaunts its Armada 1500-mini CPU powering Chromecast, lists codecs". 31 July 2013.
  46. Lal Shimpi, Anand; Klug, Brian. "The Bay Trail Preview: Intel Atom Z3770 Tested".
  47. "VA-API 1.3 Readies Broadwell Support, Adds VP8 Decoding - Phoronix". www.phoronix.com.
  48. "HTML5 + <audio> & <video>". alltomwindows.se (in Swedish). 11 June 2010.
  49. Blizzard, Christopher (2010-05-19), Firefox, YouTube and WebM, Mozilla
  50. Lie, Håkon Wium (2010-05-19), Welcome, WebM <video>!, Opera, archived from the original on 2011-03-21, retrieved 2014-10-30
  51. Mills, Chris (2010-05-19), Opera supports the WebM video format, Opera
  52. Bankoski, Jim (2010-05-19), WebM and VP8 land in Chromium
  53. "WebM Code - Build Prerequisites" . Retrieved 2010-06-02.
  54. Xiph.Org (2010-05-19). "Xiph.Org announces support for the WebM open media project" . Retrieved 2010-05-20.
  55. 1 2 WebM Project (2015-09-01). "WebM FAQ" . Retrieved 2016-08-07.
  56. "The platform now offers built-in support for the VP8 open video compression format and the WebM open container format". Android Developers. Archived from the original on 27 January 2012. Retrieved 16 January 2011.
  57. "Ice Cream Sandwich - Android Developers". Android Developers.
  58. "Supported media formats - Android Developers". Android Developers.
  59. Perkins, Michelle (2010-05-19), Flash Player Will Support VP8, Adobe
  60. Rabbat, Richard (2010-09-30). "WebP, a new image format for the Web". Chromium Blog. Retrieved 2010-10-01.
  61. Metz, Cade (20 May 2010), Google backs open codec against patent trolls, The Register
  62. Ozer, Jan (2010). "VP8 vs. H.264" (PDF). streamingmedia.com. Retrieved 2011-03-08.
  63. "Benefits of WebM" . Retrieved 2011-02-13.
  64. "First Look: H.264 and VP8 Compared". streamingmedia.com. 20 May 2010. Retrieved 2011-02-13.
  65. Glaser, Fiona (2010-07-13). "First Look: H.264 and VP8 Compared". Diary Of An x264 Developer. Archived from the original on 2015-03-01. Retrieved 2013-07-01. I expect a spec will eventually be written, but it was a bit obnoxious of Google — both to the community and to their own developers — to release so early that they didn't even have their own documentation ready.

Further reading