libvpx-vp9 vs libvpx-vp8 Bitrate Comparison

This article analyzes the specific target bitrates where the libvpx-vp9 encoder shows the most significant compression and quality improvements over its predecessor, libvpx-vp8. While VP9 generally outperforms VP8 across all resolutions, the most dramatic efficiency gains—often reaching up to a 50% reduction in file size for equivalent visual quality—are concentrated within low-to-medium bitrate ranges, specifically between 500 kbps and 2000 kbps for high-definition video.

The Sweet Spot: Low-to-Medium Bitrates

The libvpx-vp9 encoder delivers its most significant improvements over libvpx-vp8 at lower target bitrates where bandwidth is constrained. Under these conditions, VP8 quickly introduces blocky artifacts and loses structural detail, whereas VP9 maintains a much cleaner, sharper image.

The most pronounced visual and objective quality differences (measured via VMAF or SSIM) occur within the following target bitrate ranges:

Why VP9 Excels at These Bitrates

The performance gap at these specific bitrates is driven by architectural upgrades in the VP9 codec design:

Larger Superblocks

VP8 is limited to a maximum macroblock size of 16x16 pixels. When compressing low-bitrate video, this small block size forces the encoder to divide large, flat areas (like skies or walls) into tiny squares, resulting in visible grid-like distortion. VP9 introduces “superblocks” up to 64x64 pixels. At low bitrates, VP9 uses these larger blocks to encode flat areas extremely efficiently, saving precious bits for high-detail areas.

Advanced Intra-Prediction

VP9 features 10 intra-prediction modes compared to VP8’s simpler prediction set. This allows the encoder to more accurately predict pixel patterns within a single frame, significantly reducing the amount of data needed to render sharp edges and gradients at restricted bitrates.

Sharper Sub-pixel Interpolation

VP9 utilizes 8-tap sharp filters for sub-pixel interpolation, whereas VP8 relies on simpler filters. This allows VP9 to maintain image sharpness during camera pans and motion, even when restricted to a low target bitrate like 1.2 Mbps for a 1080p stream.