Jump to content

libvpx

From Wikipedia, the free encyclopedia

libvpx
Original author(s)On2 Technologies/Google
Developer(s)Alliance for Open Media
Initial releaseMay 19, 2010;14 years ago(2010-05-19)[1][2]
Stable release
1.14.1[3]Edit this on Wikidata / 21 May 2024;4 months ago(21 May 2024)
Repository
Written inC,assembly
Operating systemUnix-like(includingLinux,FreeBSDandMac OS X),Windows
TypeVideo encoder and decoder
LicenseNew BSD license
Websitewww.webmproject.org/tools/

libvpxis afree softwarevideo codeclibraryfromGoogleand theAlliance for Open Media(AOMedia). It serves as thereference software implementationfor theVP8andVP9video coding formats, and forAV1a specialforknamedlibaomthat was stripped of backwards compatibility.

As free software it is published also insource codeunder the terms of the revisedBSD license.It ships with thecommandlinetoolsvpxenc/aomencandvpxdec/aomdecthat build on its functionality.

History

[edit]

libvpx originates from the video codec companyOn2 Technologiesthat sold its first software codec in mid-90s.

libvpx was released as free software by Google on May 19, 2010, after the acquisition of On2 Technologies for an estimate of over 120 million US dollars.[2][4]

In June 2010, Google amended the VP8 codec software license to the3-clause BSD license[5][6][7] after some contention over whether the original license was actuallyopen source.[8][9][10]

Google was criticised for dumping untidy code with bad documentation for the initial release of libvpx and developing behind closed doors without involving the community in the process.[11] The development process was opened after the release of VP9.

Preliminary support for VP9 was added to libvpx on June 17, 2013. It was officially introduced with the release of version 1.3 on December 2, which also supportslossless compression.[12]

In April 2015, Google released a significant update to its libvpx library, with version 1.4.0 adding support for encoding VP9 with 10-bit and 12-bitbit depth,4:2:2 and 4:4:4chroma subsampling(VP9 profiles 1, 2, and 3), and VP9 multithreaded decoding/encoding.[13]

Versions 1.5 (November 2015), 1.6 (July 2016), 1.7[14](January 2018), and 1.8[15](February 2019) delivered significant speedups, both for encoding and decoding.

Features

[edit]

libvpx implements single-pass andtwo-pass encoding modes,with either bitrate or quality target settings.

libvpx offers an asymmetric codec – with encoding taking much longer than decoding – and options for configuring encoding expense independently from decoding complexity. A lookahead of up to 25 frames can be configured, which improves compression efficiency but introduces latency and thereby hurts real-time performance.

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.

libvpx supportsRec. 601,Rec. 709,Rec. 2020,SMPTE-170,SMPTE-240,andsRGBcolor spaces.

Performance

[edit]

At high resolutions (e.g.,UHD) VP9 encoded by libvpx for VOD applications provides a significant improvement overH.264encoded byx264.[16]HEVCencoded byx265may achieve even better quality,[16]but the royalty-free nature of VP9 makes it a compelling option for delivering high resolution video on supported platforms.

Decoding performance is relatively slow, partially in order to keep the code base easier to maintain.[17] Compared to the initial release of libvpx, ffvp8 from the FFmpeg project improved performance by 22 to over 66%.[11]In 2016, alternative VP9 decoders still achieved 25–50% faster decoding.[18][19]

Technology

[edit]

libvpx is written inCandassembly language.It does not have completeSIMDcoverage as of 2015.[17]

Usage

[edit]

libvpx is used by majorOTT video servicesincludingYouTube,Netflix,Amazon,JW Player,Brightcove,andTelestream,among which are the biggest sources of internet traffic with Netflix alone accounting for nearly a third of all internet traffic in the United States as of 2017.[20][21]

There are alternatives for decoding VP8 and VP9, both commercial and closed source as well as open source. For encoding there are only commercial alternatives and some unfinished experimental software for VP8 including xvp8 as of 2016.

References

[edit]
  1. ^"CHANGELOG - webm/libvpx - Git at Google".chromium.googlesource.com.Archivedfrom the original on October 26, 2016.RetrievedMarch 14,2019.
  2. ^ab"Introducing WebM, an open web media project".blog.webmproject.org.May 19, 2010.Archivedfrom the original on March 21, 2019.RetrievedMarch 14,2019.
  3. ^"refs/tags/v1.14.1 - webm/libvpx - Git at Google".RetrievedMay 31,2024.
  4. ^"Google Closes On2 Technologies Acquisition".investor.google.com.Archived fromthe originalon June 5, 2010.RetrievedJuly 24,2017.
  5. ^"Changes to the WebM Open Source License".Archivedfrom the original on October 4, 2010.RetrievedJune 4,2010.
  6. ^"Software License".Archivedfrom the original on June 11, 2010.RetrievedJune 4,2010.
  7. ^Koleszar, John (June 4, 2010)."LICENSE: update with latest text".WebM VCS repository.Archivedfrom the original on June 29, 2012.RetrievedOctober 1,2020.
  8. ^Kerner, Sean Michael (May 25, 2010),Is VP8 open source?,InternetNews,archivedfrom the original on May 28, 2010,retrievedAugust 11,2016
  9. ^Metz, Cade (May 24, 2010),Google open codec 'not open,' says OSI man,The Register,archivedfrom the original on July 7, 2017,retrievedAugust 10,2017
  10. ^Phipps, Simon (May 24, 2010),WebM: Missing The Assurances Open Source Needs?,ComputerworldUK[permanent dead link]
  11. ^abFiona Glaser, July 23, 2010:Announcing the world's fastest VP8 decoder: ffvp8
  12. ^Michael Larabel (Phoronix), 28. November 2013:Libvpx 1.3.0 "Forest" Supports VP9. New Enhancements
  13. ^Michael Larabel (April 3, 2015)."libvpx 1.4.0 Brings Faster VP9 Encode/Decode".Phoronix.Archivedfrom the original on April 7, 2015.RetrievedApril 3,2015.
  14. ^"V1.7.0 - webm/Libvpx - Git at Google".Archivedfrom the original on June 29, 2020.RetrievedJune 29,2020.
  15. ^"Refs/Tags/V1.8.0 - webm/Libvpx - Git at Google".Archivedfrom the original on June 30, 2020.RetrievedJune 29,2020.
  16. ^abCock, Jan De; Mavlankar, Aditya; Moorthy, Anush; Aaron, Anne (September 27, 2016). Tescher, Andrew G (ed.)."A large-scale video codec comparison of x264, x265 and libvpx for practical VOD applications".Applications of Digital Image Processing XXXIX.9971.International Society for Optics and Photonics: 997116.Bibcode:2016SPIE.9971E..16D.doi:10.1117/12.2238495.S2CID63431190.Archivedfrom the original on December 22, 2017.RetrievedDecember 20,2017.{{cite journal}}:Cite journal requires|journal=(help)
  17. ^abRonald Bultje (FFmpeg):VP9 encoding/decoding performance vs. H.264/HEVCArchivedJune 7, 2016, at theWayback Machine,presentation from theVideoLANDev Days 2015 in Paris, France
  18. ^Jan Ozer, Juni 2016:VP9 Finally Comes of Age, But Is it Right for Everyone?ArchivedAugust 11, 2016, at theWayback Machine
  19. ^"The world's fastest VP9 decoder: ffvp9 - Ronald S. Bultje".blogs.gnome.org.Archivedfrom the original on October 26, 2016.RetrievedAugust 11,2016.
  20. ^Jan Ozer (May 24, 2016):Netflix Discusses VP9-Related Development EffortsArchivedOctober 1, 2020, at theWayback Machine
  21. ^Spangler, Todd (June 22, 2016)."Netflix Chews Up Less Bandwidth, as Amazon Video Streaming Surges".Variety.Archivedfrom the original on December 22, 2017.RetrievedDecember 20,2017.
[edit]