How Did libaom Evolve From VP9?
The transition from the VP9 video codec to the Reference Software for AV1, known as libaom, represents a monumental shift in the history of open-source video compression. Developed by the Alliance for Open Media (AOMedia), libaom was built directly upon the architectural foundations of Google’s VP9, incorporating advanced coding tools to meet the demands of modern high-definition and 4K streaming. This article explores the historical evolution of libaom, tracing its lineage from VP9, the formation of AOMedia, and the technological leaps that allowed it to achieve vastly superior compression efficiency over its predecessor.
The Foundation: Google’s VP9 Codec
Before libaom and the AV1 codec existed, Google developed VP9 as a royalty-free, open-source video coding format to succeed VP8. Released in 2013, VP9 was designed to compete directly with the proprietary HEVC (H.265) standard. It introduced several crucial features to open-source video compression:
- Larger Block Sizes: Support for prediction blocks up to 64x64 pixels, which greatly improved compression efficiency for high-resolution video.
- Sharper Intra-Prediction: Enhanced spatial prediction modes to better compress static images within a video stream.
- Widespread Web Adoption: VP9 became the backbone for massive streaming platforms like YouTube and gained substantial support in web browsers.
Despite its success, the rapid rise of 4K resolution, High Dynamic Range (HDR), and wider color gamuts meant that the industry quickly required an even more efficient codec.
The Catalyst: Formation of AOMedia
While Google was planning a successor called VP10, other tech giants were working on their own proprietary or open-source compression technologies. Cisco was developing Thor, and Mozilla/Xiph.Org were working on Daala.
Recognizing that a fractured ecosystem of competing open-source codecs would hinder widespread adoption, these companies joined forces. In 2015, Google, Cisco, Mozilla, Microsoft, Amazon, Netflix, and Intel formed the Alliance for Open Media (AOMedia). The goal was to combine the best elements of VP10, Thor, and Daala into a single, next-generation, royalty-free video format: AV1 (AOMedia Video 1). The official repository and reference software library created to encode and decode this new format was named libaom.
Architectural Evolution: VP9 to libaom
Because VP10 served as the primary baseline for AV1, libaom inherited the core codebase and structural philosophy of VP9. However, libaom evolved the technology through massive computational and algorithmic upgrades:
Coding Block Structure
While VP9 maxed out at 64x64 superblocks, libaom expanded this to 128x128 superblocks. Furthermore, libaom introduced a much more flexible, recursive partitioning tree. Instead of the rigid 4-way splitting of VP9, libaom allows blocks to be split horizontally or vertically into T-shaped or non-square configurations, allowing the encoder to adapt much more precisely to complex visual textures.
Enhanced Prediction Techniques
libaom significantly expanded the tools used to predict video frames:
- Intra-prediction: Increased the number of directional intra-prediction angles from VP9’s 8 modes to 56 modes, allowing for smoother gradients and sharper edges.
- Inter-prediction: Introduced advanced motion compensation frameworks, including overlapped block motion compensation (OBMC) and warped motion compensation, which allow the encoder to track complex camera movements like rotation and zooming far better than VP9 could.
Transform and Entropy Coding Upgrades
VP9 relied on standard discrete cosine (DCT) and discrete sine transforms (DST). libaom expanded this toolkit to include identity transforms and asymmetric combinations, choosing from a pool of up to 16 different transform options for smaller blocks. For entropy coding, libaom replaced VP9’s token-based binary arithmetic coder with a multi-symbol arithmetic coder derived from the Daala project, drastically speeding up the data processing pipeline at the bitstream level.
The Result of the Evolution
Through this aggressive evolution of the VP9 framework, libaom successfully delivered the AV1 standard. It achieved roughly a 30% to 40% bit-rate reduction over VP9 at equivalent visual quality. While this evolution initially came at the cost of vastly higher computational complexity and longer encoding times, subsequent updates to libaom have optimized the codebase, solidifying it as the modern standard for open-source, next-generation video streaming.