libvpx is a
free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
video codec
library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
from
Google
Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
and the
Alliance for Open Media
The Alliance for Open Media (AOMedia) is a non-profit industry consortium that develops open, royalty-free technology for multimedia delivery headquartered in Wakefield, Massachusetts. It uses the ideas and principles of open web standard develo ...
(AOMedia). It serves as the
reference software implementation for the
VP8
VP8 is an open and royalty-free video compression format released by On2 Technologies in 2008.
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 Goo ...
and
VP9
VP9 is an open and royalty-free video coding format developed by Google.
VP9 is the successor to VP8 and competes mainly with MPEG's High Efficiency Video Coding (HEVC/H.265).
At first, VP9 was mainly used on Google's video platform YouTube. ...
video coding formats, and for
AV1
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 ...
a special
fork
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ei ...
named libaom that was stripped of backwards compatibility.
As free software it is published also in
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
under the terms of the revised
BSD license
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
. It ships with the
commandline
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
tools
vpxenc
/
aomenc
and
vpxdec
/
aomdec
that build on its functionality.
History
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.
In June 2010, Google amended the VP8 codec software license to the
3-clause BSD license
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
after some contention over whether the original license was actually
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
.
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.
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
Lossless compression is a class of data compression that allows the original data to be perfectly reconstructed from the compressed data with no loss of information. Lossless compression is possible because most real-world data exhibits statistic ...
.
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
Chroma subsampling is the practice of encoding images by implementing less resolution for chroma information than for luma information, taking advantage of the human visual system's lower acuity for color differences than for luminance.
It is us ...
(VP9 profiles 1, 2, and 3), and VP9 multithreaded decoding/encoding.
Versions 1.5 (November 2015, 1.6 (July 2016), 1.7 (January 2018), and 1.8 (February 2019) delivered significant speedups, both for encoding and decoding.
Features
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
ITU-R Recommendation BT.601, more commonly known by the abbreviations Rec. 601 or BT.601 (or its former name CCIR 601) is a standard originally issued in 1982 by the CCIR (an organization, which has since been renamed as the Internatio ...
,
Rec. 709
Rec. 709, also known as Rec.709, BT.709, and ITU 709, is a standard developed by ITU-R for image encoding and signal characteristics of high-definition television.
The most recent version is BT.709-6 released in 2015. BT.709-6 defines the P ...
,
Rec. 2020,
SMPTE-170,
SMPTE-240, and
sRGB
sRGB is a standard RGB (red, green, blue) color space that HP and Microsoft created cooperatively in 1996 to use on monitors, printers, and the World Wide Web. It was subsequently standardized by the International Electrotechnical Commission ( ...
color space
A color space is a specific organization of colors. In combination with color profiling supported by various physical devices, it supports reproducible representations of colorwhether such representation entails an analog or a digital represent ...
s.
Performance
At high resolutions (e.g.,
UHD) VP9 encoded by libvpx for VOD applications provides a significant improvement over
H.264
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 distr ...
encoded by
x264
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.
History ...
.
HEVC
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 (AVC, H.264, or MPEG-4 Part 10). In compari ...
encoded by
x265
x265 is a software codec 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 ...
may achieve even better quality,
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.
Compared to the initial release of libvpx, ffvp8 from the FFmpeg project improved performance by 22 to over 66%.
In 2016, alternative VP9 decoders still achieved 25–50% faster decoding.
Technology
libvpx is written in
C and
assembly language
In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
. It does not have complete
SIMD
Single instruction, multiple data (SIMD) is a type of parallel processing in Flynn's taxonomy. SIMD can be internal (part of the hardware design) and it can be directly accessible through an instruction set architecture (ISA), but it should ...
coverage as of 2015.
Usage
libvpx is used by major OTT video services including
YouTube
YouTube is a global online video platform, online video sharing and social media, social media platform headquartered in San Bruno, California. It was launched on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim. It is owned by ...
,
Netflix
Netflix, Inc. is an American subscription video on-demand over-the-top streaming service and production company based in Los Gatos, California. Founded in 1997 by Reed Hastings and Marc Randolph in Scotts Valley, California, it offers a fil ...
,
Amazon
Amazon most often refers to:
* Amazons, a tribe of female warriors in Greek mythology
* Amazon rainforest, a rainforest covering most of the Amazon basin
* Amazon River, in South America
* Amazon (company), an American multinational technology c ...
,
JW Player
JW Player is a New York based company that has developed a video player software of the same name. The player, for embedding videos onto web pages, is used by news, video hosting companies, and for self- hosted web videos. The company has also cr ...
,
Brightcove
Brightcove, Inc. () is a Boston, Massachusetts–based software company that produces an online video platform.
History
Brightcove was founded in 2004 by Jeremy Allaire, who served as Executive Chairman until April 2016, and Bob Mason. The c ...
, and
Telestream
Telestream, Inc. is an American privately held computer software company.
History
The company, founded in 1998, is headquartered in Nevada City, California with personnel in France, Germany, Sweden, Poland, Canada and the UK.
Telestream prov ...
, 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.
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
External links
*
{{Google FOSS
Free video codecs
C (programming language) libraries
Free software programmed in C
Free computer libraries
Google software