Original author(s) | On2 Technologies / Google |
---|---|
Developer(s) | Alliance for Open Media |
Initial release | May 19, 2010 [1] [2] |
Stable release | |
Repository | |
Written in | C, assembly |
Operating system | Unix-like (including Linux, FreeBSD and Mac OS X), Windows |
Type | Video encoder and decoder |
License | New BSD license |
Website | www |
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.
As free software it is published also in source code under the terms of the revised BSD license. It ships with the commandline tools vpxenc
/aomenc
and vpxdec
/aomdec
that build on its functionality.
libvpx originates from the video codec company On2 Technologies that 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 the 3-clause BSD license [5] [6] [7] after some contention over whether the original license was actually open 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 supports lossless 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-bit bit depth, 4:2:2 and 4:4:4 chroma 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.
libvpx implements single-pass and two-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 supports Rec. 601, Rec. 709, Rec. 2020, SMPTE-170, SMPTE-240, and sRGB color spaces.
At high resolutions (e.g., UHD) VP9 encoded by libvpx for VOD applications provides a significant improvement over H.264 encoded by x264. [16] HEVC encoded by x265 may 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]
libvpx is written in C and assembly language. It does not have complete SIMD coverage as of 2015. [17]
libvpx is used by major OTT video services including YouTube, Netflix, Amazon, JW Player, Brightcove, and Telestream, 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.
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.
Dirac is an open and royalty-free video compression format, specification and software video codec developed by BBC Research & Development. Dirac aimed to provide high-quality video compression for Ultra HDTV and competed with existing formats such as H.264.
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.
On2 TrueMotion VP3 is a (royalty-free) lossy video compression format and video codec. It is an incarnation of the TrueMotion video codec, a series of video codecs developed by On2 Technologies.
On2 TrueMotion VP6 is a proprietary lossy video compression format and video codec. It is an incarnation of the TrueMotion video codec, a series of video codecs developed by On2 Technologies. This codec is commonly used by Adobe Flash, Flash Video, and JavaFX media files.
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.
libavcodec is a free and open-source library of codecs for encoding and decoding video and audio data.
Α video codec is software or a device that provides encoding and decoding for digital video, and which may or may not include the use of video compression and/or decompression. Most codecs are typically implementations of video coding formats.
VP8 is an open and royalty-free video compression format released by On2 Technologies in 2008.
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.
WebP is a raster graphics file format developed by Google intended as a replacement for JPEG, PNG, and GIF file formats. It supports both lossy and lossless compression, as well as animation and alpha transparency.
x265 is an encoder for creating digital video streams in the High Efficiency Video Coding (HEVC/H.265) video compression format developed by the Joint Collaborative Team on Video Coding (JCT-VC). It is available as a command-line app or a software library, under the terms of GNU General Public License (GPL) version 2 or later; however, customers may request a commercial license.
Intel Quick Sync Video is Intel's brand for its dedicated video encoding and decoding hardware core. Quick Sync was introduced with the Sandy Bridge CPU microarchitecture on 9 January 2011 and has been found on the die of Intel CPUs ever since.
VP9 is an open and royalty-free video coding format developed by Google.
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.