Compression, explained

What is video compression?
How codecs shrink your footage.

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.

Start free, 1 GB, no credit card

No credit card required. Cancel any time.

Updated September 2026

The short version

The 30-second answer

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

Most frames are predictions
Only a few are full pictures.

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.

Ifull imageBborrowsBborrowsPchanges onlyBborrowsBborrowsPchanges onlyIfull imageOne full image every half second or so. Everything between it is a prediction.

Quantization

The lossy step
Where the damage lands.

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.

Grain and noise

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.

Gradients and skies

Coarse quantization collapses smooth transitions into false staircase edges. Netflix's banding research names skies, sunsets and flat backgrounds as the usual victims.

Shadows and dark scenes

Dark regions get the fewest code values to begin with. Quantized harder, the falloff you graded turns into visible bands and blocky patches.

Color

Chroma subsampling
Color goes first.

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 and banding
Why skies turn into stripes.

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

H.264, HEVC, AV1
Same job, fewer bits each time.

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.

H.264 / AVC
HEVC / H.265
AV1
Efficiency
The reference pointfor both successors.
Half the bitrate of H.264for the same quality:the standard's design goal.
50.3% less bitrate thanx264 main profile inFacebook's measured test.
Proof at scale
What YouTube's uploadguide recommendsyou feed it.
What Vimeo uses for HDRand above-4K streams.
About 30% of all Netflixviewing; one-third lessbandwidth than AVC or HEVC.
Film grain
Struggles: grain israndom and eats bitrate.
Same struggle,smaller bill.
Film Grain Synthesis:36% average bitrate cutat 1080p+ (Netflix).
In yourbrowser
Streams byte for byteon uncompressed.io.
Byte for byte, including10-bit 4:2:2, onuncompressed.io.
Streams byte for byteon uncompressed.io.

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

What platforms actually deliver
Your export meets the ladder.

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

100 Mbps, byte for byte

Vimeo 4K ceiling

22 Mbps max

YouTube 4K

13 Mbps

Netflix 4K, average top rung

8 Mbps
0255075100Mbps, 4K video

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

When compression is fine
And when it is the enemy.

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

Done well, platform compression is impressive engineering: Netflix’s AV1 rollout delivers higher measured quality with one-third less bandwidth and 45 percent fewer buffering interruptions. If your goal is reach, take that deal. It becomes the enemy when the file is the deliverable: a grade review, a festival screener, a master handoff. Then the compression decision belongs in your export, once, and nowhere else. Streaming untouched bytes has its own honest cost: on a slow connection, our player buffers instead of swapping in a mushy low-bitrate rung. For approvals, that is the right failure mode.

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

Frequently asked

Is video compression always bad?

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.

What is the difference between lossless and lossy compression?

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.

Why does my export look great but the upload look worse?

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.

What bitrate should I export at?

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.

Does re-encoding a video twice hurt quality?

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.

Host your work at full bitrate

uncompressed.io streams the exact bytes you upload. No re-encode, no bandwidth caps, no platform branding, on every plan.

What Is Video Compression? How Codecs Work | uncompressed.io