VP9 Chroma Subsampling Formats Supported by libvpx

This article outlines the specific chroma subsampling formats fully supported by the libvpx-vp9 encoder. We will examine how different VP9 profiles enable support for 4:2:0, 4:2:2, and 4:4:4 chroma subsampling, along with their respective pixel depths, helping you configure your video encoding pipeline correctly.

The libvpx-vp9 encoder, the reference software encoder for the VP9 video coding format, fully supports four primary chroma subsampling configurations. These configurations are mapped across four different VP9 profiles (Profile 0 to Profile 3) and support 8-bit, 10-bit, and 12-bit color depths.

Supported Chroma Subsampling Formats

1. 4:2:0 Subsampling

This is the standard format used for consumer video, web streaming, and digital TV. It discards half of the vertical and horizontal color information to save bandwidth while maintaining high perceived visual quality. * VP9 Profiles: Profile 0 (8-bit) and Profile 2 (10-bit / 12-bit). * FFmpeg Pixel Formats: yuv420p (8-bit), yuv420p10le (10-bit), and yuv420p12le (12-bit).

2. 4:2:2 Subsampling

Commonly used in professional video production, editing, and broadcasting. It retains full vertical color resolution but halves the horizontal color resolution, which helps reduce color bleeding on sharp edges. * VP9 Profiles: Profile 1 (8-bit) and Profile 3 (10-bit / 12-bit). * FFmpeg Pixel Formats: yuv422p (8-bit), yuv422p10le (10-bit), and yuv422p12le (12-bit).

3. 4:4:4 Subsampling

This format retains full color resolution both horizontally and vertically with no chroma subsampling applied. It is ideal for screen recordings, video game footage, graphics-heavy content, and high-fidelity archiving. * VP9 Profiles: Profile 1 (8-bit) and Profile 3 (10-bit / 12-bit). * FFmpeg Pixel Formats: yuv444p (8-bit), yuv444p10le (10-bit), and yuv444p12le (12-bit).

4. 4:0:0 (Monochrome)

Used for grayscale video delivery where color data is completely omitted. * VP9 Profiles: Profile 0 (8-bit). * FFmpeg Pixel Format: yuv400p.

Summary of VP9 Profile Support

To ensure successful encoding, the chosen chroma subsampling and bit depth must align with the correct VP9 profile:

VP9 Profile Bit Depth Supported Chroma Subsampling
Profile 0 8-bit 4:2:0, 4:0:0
Profile 1 8-bit 4:2:2, 4:4:4
Profile 2 10-bit / 12-bit 4:2:0
Profile 3 10-bit / 12-bit 4:2:2, 4:4:4