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:
- For 480p (Standard Definition): 200 kbps to 500 kbps. At these lower limits, VP8 videos become highly pixelated, whereas VP9 preserves text readability and facial features.
- For 720p (Half-HD): 500 kbps to 1000 kbps (1 Mbps). VP9 can deliver a watchable 720p stream at 600 kbps, a threshold where VP8 output experiences severe color banding and macroblocking.
- For 1080p (Full HD): 1000 kbps (1 Mbps) to 2000 kbps (2 Mbps). This is the most critical bracket for web streaming. VP9 achieves acceptable 1080p quality at just 1.5 Mbps, whereas VP8 requires at least 3 Mbps to achieve comparable visual fidelity.
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.