Chroma Subsampling: 4:2:0 vs 4:2:2 vs 4:4:4
Half of every video file is color your eyes can't fully see — so codecs throw much of it away. What the numbers mean, when it matters (green screens, grading, HDR), and the pixel-format fix for unplayable files.
The core idea: brightness matters more than color
Every pixel has luma (brightness) and chroma(color). Human vision resolves brightness detail far better than color detail — you'd notice a blurry edge instantly but not a slightly wrong shade. So codecs keep luma at full resolution and store chroma at reduced resolution. The J:a:b notation describes the ratio: luma samples : color samples (top row) : color samples (bottom row).
| Format | Color kept | Size vs 4:4:4 | Used for |
|---|---|---|---|
| 4:4:4 | Full — every pixel | 100% (baseline) | Graphics, text, VFX, screenshots, masters |
| 4:2:2 | Half horizontal | ~67% | Pro cameras, broadcast, green screens |
| 4:2:0 | Quarter (half each way) | ~50% | Streaming, Blu-ray, YouTube, all delivery |
When it actually matters (and when it doesn't)
Green screens & keying → 4:2:2 minimum
Keys cut by exact edge pixels; 4:2:0 averages edge color into mushy fringes. This is the #1 real-world reason to shoot above 4:2:0.
Color grading & HDR → 10-bit 4:2:2
Pushing exposure and saturation stretches thin color data until it breaks. 10-bit 4:2:2 (mirrorless sweet spot) survives grades that destroy 8-bit 4:2:0.
Delivery to viewers → 4:2:0, always
YouTube, streaming, phones: 4:2:0 8-bit is the universal assumption. Uploading 4:4:4 just gets converted down — after wasting your upload bandwidth.
Screenshots & text → 4:4:4 or PNG
Red text on black is the torture test for 4:2:0 (color bleed). Keep captures lossless until final export.
8-bit vs 10-bit in one paragraph
8-bit = 16.7M colors; 10-bit = 1B+. The visible difference is banding: skies and dark gradients stripe in 8-bit and blend in 10-bit. 10-bit is mandatory for HDR, costs ~20% more bitrate, and is invisible on content with no smooth gradients. Shoot 10-bit when grading or HDR; deliver 8-bit SDR without guilt.
The fix for “won't play” encodes
Screen recorders and PNG-sourced encodes often come out as 4:4:4 (yuv444p), which most players and editors reject. Force the universal format at encode time: -pix_fmt yuv420p in FFmpeg (add it to every command on our MKV conversion guide if uploads misbehave). On camera footage the visual cost is negligible.
Chroma & bit-depth FAQs
What does 4:2:0 mean?
Color stored at quarter resolution, brightness full — halves file size with barely visible difference. The delivery standard.
4:2:0 vs 4:2:2 vs 4:4:4?
Quarter vs half vs full color resolution. 4:2:0 delivery, 4:2:2 pro video/keys, 4:4:4 graphics and masters.
Why do green screens need 4:2:2+?
Keys cut by edge pixels; 4:2:0 averages edge color into fringes. Higher chroma = crisp keys.
8-bit vs 10-bit?
16.7M vs 1B+ colors. Difference is banding in gradients; 10-bit required for HDR, ~20% more bitrate.
yuv444 file won't play?
Re-encode with -pix_fmt yuv420p — the universal format every player accepts.
Record in 10-bit?
Yes for grading/log/HDR; unnecessary for straight-to-YouTube SDR. 10-bit 4:2:2 is the creator sweet spot.
Convert pixel formats without thinking about them?
Formatif Pro handles format, codec, and pixel-format conversion in batch — offline, with correct defaults like yuv420p for delivery. One-time license, 3-day free trial.