The Relationship Between AV1 and Early VP10
AOMedia Video 1 (AV1) is fundamentally built upon the architectural and source-code baseline of Google's experimental VP10 codec. This article details the structural relationship between the two formats, examining how the early VP10 development directly established the codebase, block partitioning schemes, and frame processing pipelines that formed the foundation of the AV1 standard.
Codebase Foundation and the Genesis of libaom
The structural connection between AV1 and VP10 began at the
source-code level. Google was developing VP10 within the open-source
libvpx repository as the direct successor to VP9. When the
Alliance for Open Media (AOMedia) formed in 2015, Google, Mozilla,
Cisco, and other industry partners agreed to pool their intellectual
property and experimental technologies into a single royalty-free
format.
To jumpstart development, AOMedia adopted Google’s ongoing VP10
project as the structural core. The official AV1 reference repository,
libaom, was created by branching the VP10 codebase out of
libvpx. As a result, early iterations of AV1 were
functionally identical to VP10, carrying forward its architectural
conventions, bitstream layout, and algorithmic design patterns.
Block Partitioning and Superblock Structure
AV1's spatial division framework is a direct evolution of VP10's experimental partition trees. VP9 was limited to a 64x64 superblock hierarchy with limited partition options (split, horizontal, vertical). Early VP10 introduced experiments that expanded the maximum superblock size to 128x128 pixels to better handle high-resolution 4K and 8K content.
Furthermore, VP10 experimented with recursive partitioning trees that introduced non-square, rectangular partition modes, including 1:4 and 4:1 aspect ratios, as well as T-shaped partitions. AV1 integrated this exact expanded tree hierarchy from VP10, making VP10's experimental partitioning mechanics the core organizational structure for how AV1 segments picture data.
Prediction Mechanics and Motion Vectors
The core intra- and inter-frame prediction architecture of AV1 originated in early VP10 research. VP10 sought to dramatically expand directional intra-prediction beyond the 10 basic modes of VP9, introducing fine-grained angle deltas that allowed intra-modes to match complex edges closely.
In inter-frame prediction, early VP10 laid the structural framework for advanced compound prediction—combining two reference blocks using flexible weightings rather than simple averaging. Techniques such as wedge-based prediction, smooth blending, and expanded reference frame buffers (increasing the active reference frames from three to seven) were prototyped in VP10 before being finalized within AV1.
Integration Point for External Technologies
While VP10 served as the primary skeleton, its structural framework was designed to be modular enough to ingest complementary technologies from other member codecs, specifically Mozilla's Daala and Cisco's Thor:
- Entropy Coding: Early AV1 prototypes maintained VP10's binary arithmetic coding engine before replacing it with a multi-symbol arithmetic coder derived from Daala.
- In-Loop Filtering: AV1's filtering pipeline layers Daala’s directional deringing filter and Thor’s Constrained Low-Pass Filter (CLPF) into what became the Constrained Directional Enhancement Filter (CDEF), all applied on top of the loop deblocking framework inherited from VP10.
- Transform Engine: VP10’s expanded discrete cosine transforms (DCT) and asymmetric discrete sine transforms (ADST) were merged with Daala’s identity and lapped transform research to form AV1's diverse transform library.
AV1 did not replace VP10; rather, AV1 represents the finalized, multi-party evolution of the VP10 baseline. Early VP10 provided the frame logic, software skeleton, and algorithmic backbone that enabled subsequent modern coding tools to be integrated into an interoperable standard.