Compression, explained
Every stream you have ever watched was compressed. Here is what a codec actually throws away, why the damage lands in grain, gradients and shadows first, and how much of your export survives each platform's ladder.
No credit card required. Cancel any time.
Updated September 2026
The short version
A video codec shrinks footage by throwing away the picture information viewers are least likely to notice, then describing what survives in as few bits as possible. Three tools do almost all of the work: predicting frames from their neighbors, rounding away fine detail, and thinning out color.
Raw video is enormous, so every practical codec is lossy. The decoded picture does not precisely match the source, and as Mozilla’s codec guide puts it, the more compression you achieve, the more detail and fidelity you lose. Compression itself is not the villain: your camera compresses, your NLE export compresses, and Apple sells ProRes 422 HQ, a compressed codec, as visually lossless, spending about 220 Mbps at 1080p to earn that label.
What hurts is the second, far harsher pass that happens after upload, tuned to a platform’s bandwidth bill instead of your picture. The rest of this page walks through what each stage discards.
220 Mbps
Visually lossless
Apple's target rate for ProRes 422 HQ at 1080p, its own benchmark for compression you cannot see.
22 Mbps
Vimeo 4K ceiling
The maximum video bitrate in Vimeo's published 4K H.264 playback ladder.
8 Mbps
Netflix 4K average
Average top-rung bitrate across 100 titles after Netflix's per-shot encode optimization.
Prediction
Codecs almost never store a full picture for every frame. They store one complete image, an I-frame, self-contained like a JPEG, then describe the following frames as changes. P-frames borrow from the preceding I- or P-frame; B-frames borrow from both directions at once. Bitmovin’s worked example shows the payoff at 320 by 240: an I-frame averaged 14.8 KB on disk, a P-frame 6 KB, and a B-frame 765 bytes.
A run of frames starting with an I-frame is called a GOP, a group of pictures, and compressing whole GOPs instead of individual frames is where most of the bitrate savings come from. The cost is fragility: because each frame is built by applying changes to the previous one, errors compound over time, which is why a glitched stream smears and ghosts until the next full picture arrives.
Quantization
Inside every frame, the encoder converts blocks of pixels into frequency coefficients and then quantizes them: fine detail gets rounded toward zero to save bits. Blocks with lots of variation resist this and stay expensive; flat, smooth areas compress readily. That budget logic decides exactly where a starved encode falls apart first.
Film grain is the worst case. Grain is random, so there is no spatial or temporal redundancy to exploit, and Netflix flatly calls it notoriously difficult to compress. AV1’s answer is to remove the grain before encoding, transmit its parameters, and resynthesize it on the viewer’s device: across the Netflix catalog, that trick alone cut average bitrates by 36 percent at 1080p and above.
Random detail carries no redundancy, so encoders either spend a fortune on it or smear it away. Starved encodes turn clean grain into blotchy, crawling noise.
Coarse quantization collapses smooth transitions into false staircase edges. Netflix's banding research names skies, sunsets and flat backgrounds as the usual victims.
Dark regions get the fewest code values to begin with. Quantized harder, the falloff you graded turns into visible bands and blocky patches.
Color
Your eye resolves brightness far more finely than color, so codecs sample the two chroma channels at a lower rate than luma. In 4:4:4, every pixel keeps its own color sample. 4:2:2 halves the color resolution horizontally. 4:2:0, the format every consumer platform streams, halves it in both directions, keeping one color sample per four pixels.
For most shots the trick holds up. It fails at sharp color transitions: Netflix’s imaging team documented color bleeding and jagged edges from 4:2:0 exactly there, and found that with modern codecs, encoding full 4:4:4 is often the better deal anyway.
4:4:4
Every pixel keeps its own color sample. Mastering and VFX grade.
4:2:2
Color halved horizontally. The broadcast and ProRes HQ standard.
4:2:0
One color sample per 2 by 2 block, 75 percent of the color discarded. What every consumer platform streams.
Grey squares are pixels. A colored dot means that pixel carries its own color information; pixels without one borrow a neighbor’s.
Bit depth
Bit depth sets how many shades each channel can express: 256 in 8-bit, 1,024 in 10-bit. HDR delivery is 10-bit territory by rule, not preference; YouTube requires 10- or 12-bit color for HDR uploads. When too few code values meet too-coarse quantization, smooth falloffs shear into visible bands, and encoders fight back with dithering, deliberately applied noise that randomizes the error and hides the steps.
10-bit master
1,024 shades per channel. The night sky falls off smoothly, the way the camera saw it.
Crushed to 8-bit, then starved
256 shades, and aggressive quantization spends even fewer on dark areas. The falloff turns into visible bands.
Illustration rendered by your browser, exaggerated for visibility. The mechanism is real: fewer code values plus coarse quantization equals banding.
Codec generations
Each codec generation buys the same picture for fewer bits, at the price of more decode work. The efficiency claims below are the published ones, not folklore.
HEVC figure is the standard's stated design goal (ITU, 2013). AV1 figures are Facebook's measured BD-rate savings (2018) and Netflix production data (November 2025 snapshot). Sources below.
Delivery
Everything above happens twice: once in your export, under your control, and again after upload, when a platform re-encodes the file into its own bitrate ladder. The ceilings are public. Vimeo’s playback guidelines cap 4K H.264 at 22 Mbps. YouTube asks for 4K SDR uploads at 35 to 45 Mbps, then delivers 4K at about 13 Mbps by our measurement. Netflix, which controls its pipeline end to end, averages 8 Mbps on its top 4K rung.
The chart shows the gap. On uncompressed.io there is no ladder: the player streams the exact bytes you exported, so a 100 Mbps master plays at 100 Mbps in the client review room, and the full side-by-side lives on the Vimeo comparison page.
Your 4K master on uncompressed.io
Vimeo 4K ceiling
YouTube 4K
Netflix 4K, average top rung
Vimeo ceiling read from its published playback guidelines, September 2026, and matching our own measurement, August 2026. YouTube figure measured, August 2026. Netflix figure is its reported top-rung average after per-shot optimization. A 100 Mbps master is an ordinary high-quality 4K HEVC export; uncompressed.io streams whatever bitrate you upload.
The honest part
Compression built streaming. The same machinery that flattens your grade lets Netflix serve a 4K film over hotel Wi-Fi. The only real question is who controls the loss.
The honest trade
To go deeper: video bitrate, explained covers how many bits different delivery targets actually need, why your video looks worse after upload traces one file through a platform ladder artifact by artifact, and video hosting that does not compress is the buyer’s version of this page: how to verify a host leaves your file alone.
Questions
No. Every camera master and every export is already compressed, and done well the loss is invisible: Apple markets ProRes 422 HQ, a compressed codec, as visually lossless. Compression becomes a problem when a platform applies a second, much harsher pass after upload, tuned to its bandwidth costs rather than your picture.
Lossless compression, like a ZIP file, reconstructs the original exactly. Most video codecs are lossy: the decoded video does not precisely match the source, and more compression means more loss of detail. Practically all delivered video, from camera masters to streams, is lossy; what matters is how much loss, and who chose it.
The platform re-encoded it. Vimeo's published ladder caps 4K H.264 at 22 Mbps and we measured YouTube 4K delivery around 13 Mbps, so a high-bitrate export loses most of its data after upload. The loss lands first in grain, smooth gradients and shadows, which is exactly where a grade lives.
For YouTube, follow its upload guide: 35 to 45 Mbps for 4K SDR at standard frame rates, 8 Mbps for 1080p. For client review and approvals, export at the bitrate the picture needs and host it on a service that streams the file unchanged. Our video bitrate guide breaks down the numbers by format and destination.
Yes. Lossy passes stack: each one discards information the next pass cannot recover, so artifacts compound with every generation. Apple specifically rates ProRes 422 HQ for surviving many generations of decoding and re-encoding because generation loss is the norm elsewhere. Upload the graded master once and avoid intermediate re-encodes.
uncompressed.io streams the exact bytes you upload. No re-encode, no bandwidth caps, no platform branding, on every plan.