Compression

Why Snow, Confetti and Grass Ruin Video Quality

By the FixPixelatedVideos team · Invalid Date · 12 min read

Flat gray frame beside a noisy frame with a chart showing bitrate rising from 27 kbps to 96 Mbps

Watch a wedding video where confetti is thrown at the couple. The bride and groom look fine. The confetti turns into a fizzing smear. Or film a football match and watch the grass turn into a green mush the moment the camera pans. Or any night scene with falling rain.

It is not that the video is badly made. It is that these things are the hardest thing a video encoder ever has to deal with. This article explains why, with numbers from a small test I ran, and then goes through what you can do about it as a person who films, edits or uploads video.

The core idea: codecs predict

A video codec saves space by not storing every frame in full. It stores one picture fully, and then for the next frames it describes what changed. “The same, but this block moved two pixels to the right.” “The same, but slightly brighter.” If most of the picture is the same or moves in a simple way, the description is tiny.

That is how a two hour movie fits in a few gigabytes. Most of what is on screen in any given frame was in the previous frame, a little to the left or right.

The trick breaks down when the picture contains lots of small detail that changes in an unpredictable way. A flat wall can be described in a few bytes. A field of random pixels cannot be described except by listing them. Confetti, snow, rain, sparkles, leaves in wind, a crowd, water ripples, film grain and sensor noise are all versions of the same problem. There is nothing to predict from.

When the encoder runs out of bits, it does the only thing it can: it simplifies. It merges small details into blocks, lowers precision, and leaves out what it cannot afford. That is where the pixelated look comes from. The blocks are the encoder’s way of saying “I did not have the budget for this”.

A demo you can understand in one table

To see how extreme the effect is, I ran a simple test. I made a flat gray 1080p video, 2 seconds long, and added increasing amounts of random noise to it. Then I encoded each version with x264 at CRF 23, the default quality setting, and looked at the bitrate the encoder chose.

This is a synthetic worst case, since real footage is never pure random noise, so treat the absolute numbers as an illustration and not a prediction for your video.

Noise added Bitrate at CRF 23
None (flat gray) 27 kbps
Very light 532 kbps
Light 725 kbps
Moderate 9.9 Mbps
Strong 95.9 Mbps

Same resolution, same frame rate, same quality setting. The only difference is how much random detail there is. The bitrate went from 27 kilobits per second to nearly 96 megabits per second, a factor of more than three thousand.

Now the other side. Suppose you do not have the budget and must live with 6 Mbps, which is a normal number for a 1080p upload. I encoded each noisy version at a fixed 6 Mbps and measured the quality against the source:

Noise added PSNR at 6 Mbps
None perfect (no difference)
Very light 47.4 dB
Light 41.5 dB
Moderate 35.3 dB
Strong 29.5 dB

So at the same bitrate, the clean video is perfect, the lightly noisy one is excellent, and the strongly noisy one is visibly degraded. Quality falls as the noise rises, because the fixed budget is spread across more information.

Real footage lives between these extremes. A typical outdoor shot with grass and trees might need 8 to 15 Mbps at 1080p to look clean, while an interview in a plain room is fine at 3 to 5. For reference, I measured the clip I use for most of my experiments, with fur, foliage and fast camera moves, at CRF 23, and it came out around 6 Mbps in every two-second segment. Busy, but not the worst case.

The usual suspects

Confetti, sparkles and glitter. Thousands of small, bright, random, fast-moving objects. A combination of noise and motion. Each piece moves differently, so motion prediction fails.

Snow and rain. The same, but on a dark background, where compression artifacts show more clearly. Rain on a window at night is a notorious killer.

Grass, foliage and gravel. Not random, but so detailed and so repetitive that the encoder cannot find a simple description. When the camera shakes or pans, every blade moves. Football pitches and golf courses are classic examples.

Water. Ripples and glints are random in shape and move continuously. Sunlight on water is one of the toughest scenes in all video.

Crowds. Many small faces and bodies moving independently.

Film grain and sensor noise. The same problem, built into the picture. High ISO footage is worse.

Fast pans and handheld shake. Everything moves. The encoder’s prediction needs a big search, and details are blurred by the motion.

Fireworks and light shows. High contrast, sparks, smoke, and a dark background.

Screen content with scrolling text. Sharp edges that move by whole pixels often compress well, but a scroll with anti-aliasing can be demanding.

What you can do while filming

The cheapest fix is to reduce the problem before the camera records it.

Avoid very fast shutter speeds. A fast shutter freezes each raindrop and confetti piece sharply, which gives the encoder more detail to struggle with. A slower shutter, around 1/50 to 1/60 at 24 to 30 fps, adds natural motion blur and makes busy motion easier to compress. It is a subtle trade-off: too slow looks smeary.

Lower the ISO. More light means less sensor noise. Add light, open the aperture, or use a better camera.

Use a shallower depth of field. A blurred background has less detail to encode. That is a fair part of why the cinematic look compresses well.

Avoid frames filled with grass or foliage. If you can compose the shot with sky or a plain wall in part of the frame, the encoder has an easier time.

Do not over-sharpen in camera. Many phones add sharpening that enhances noise and fine texture, then the encoder struggles. If your camera lets you lower sharpness, try it.

What you can do while editing

Denoise grainy shots. I measured a 21 percent drop in size for a light denoise and 43 percent for a stronger one, on a clip with artificial noise. Those bits go to real detail. The noise reduction article has the numbers and settings.

Avoid stacking sharpening and clarity effects. Each one raises the fine-detail energy the encoder has to handle.

Use slightly softer effects on busy overlays. If you add particle effects, snow or confetti overlays on top of footage, reduce their intensity or add a very small blur. A subtle softness often looks better after compression than razor-sharp particles that turn into blocks.

Cut the number of cuts and dissolves in the busiest sections. Transitions confuse prediction and need more bits.

Reduce the resolution for very busy sections? In an editor you cannot easily do this per clip, but at export you can choose 1080p instead of 4K when your bitrate budget is limited. At a fixed bitrate, a smaller frame leaves more bits per pixel.

What you can do while exporting

Raise the bitrate. This is the main lever. For busy 1080p footage, aim for 16 to 25 Mbps for an upload to a platform. The bitrate article has more numbers.

Use a quality-based mode. CRF adapts bits to the content, giving the busy scenes what they need. CRF explained.

Use a slower encoder preset. Better prediction means more efficient use of bits.

Use two-pass VBR if your encoder offers it. The first pass finds the hard scenes, the second gives them extra bits.

Make sure the maximum bitrate is generous. If the peak is capped too low, hard scenes starve. A maximum of 1.5 to 2 times the target is a good start.

Why dark scenes make everything worse

Busy detail is bad, and busy detail in the dark is worse. There are three reasons.

First, dark footage is noisy. The camera boosts a weak signal, and the boost carries noise, so a dark scene is a busy scene even if nothing moves. A candlelit room that looks calm to the eye is a field of random speckles to the encoder.

Second, encoders allocate fewer bits to dark areas on purpose. Human vision is less sensitive to detail in shadows, so the encoder’s models spend less there. That works well when the shadows are clean, and poorly when they contain noise or a gradient, because the lack of bits shows up as banding and blocks.

Third, your display makes it obvious. A bright, saturated image hides compression artifacts. A dark one, especially on a good screen with deep blacks, shows every block. Many people who think their video is “pixelated at night” would have no complaint if they watched the same file in daylight.

The remedy is the same as above, with an extra step. Brighten and denoise before export if the shot is underexposed, add a little bitrate, and consider a touch of fine grain to mask banding in smooth dark gradients. Fine grain sounds like the opposite of what I have been saying, but a very small, deliberate amount breaks up banding more effectively than leaving a clean gradient that the encoder turns into stripes. It is a trade-off, and you should try it on a test clip.

Typical scenes and what they need

I do not have a measurement for each of these, so treat the ranges as starting points drawn from the experiments above and the usual guidance for 1080p H.264, then check them on your own footage.

Scene Difficulty Starting bitrate for 1080p at 30 fps
Talking head, plain background Easy 4 to 6 Mbps
Slides or screen recording Easy to medium 5 to 8 Mbps
Indoor event, steady camera Medium 8 to 12 Mbps
Travel footage, handheld Medium to hard 12 to 16 Mbps
Sports, grass, fast pans Hard 16 to 25 Mbps
Concert, lights, crowd Hard 16 to 25 Mbps
Rain, snow, confetti, fireworks Very hard 20 to 30 Mbps

If you shoot at 60 fps, increase those numbers by about half. If you are limited by file size, drop the resolution to 720p rather than lowering the bitrate for these categories.

A short story about a typical failure

A common pattern goes like this. Someone films a child’s birthday with confetti poppers, exports at the default 5 Mbps from their phone editor, and sends the result to relatives over a chat app. The app compresses the video again to around 2 Mbps. By the time the relatives watch it, the confetti is a smear of colored blocks and the child’s face is soft.

Where could it have gone better? At each step there was a cheap improvement. A slightly slower shutter would have softened the confetti. An export at 12 Mbps would have kept the first generation clean. Sending the file as a document, or as a link to a cloud copy, would have avoided the second compression altogether. None of these steps requires special skill, only the knowledge that busy scenes need more bits and that every generation of compression costs something.

Test your own hardest shot

You do not need to trust a table. Find the busiest five seconds of your video, the one that makes you wince when you watch the export. Export just that range three times: at your current settings, at double the bitrate, and at double the bitrate with a light denoise first. Compare the three at full screen.

Usually one of the last two fixes it. If neither does, the problem is likely upstream, in the original footage, and the only remaining option is to soften it, reduce the resolution, or accept it. Knowing that is worth the ten minutes.

Display and viewing size change what you notice

One more factor is where the video will be watched. A busy scene on a phone held at arm’s length hides a great deal of compression damage, because the whole frame subtends a small angle and the eye cannot resolve the blocks. The same file on a 32 inch monitor at desk distance shows every one of them. If you are delivering to phones, which is true for most social platforms, you can often get away with a lower bitrate than the table suggests. If the video will be shown on a projector at an event, or on a large television, treat the busy scenes as the hardest case and give them the most room.

It also helps to remember that compression artifacts are more visible in motion than in a paused frame, but only up to a point. On a paused frame, blocks have time to be noticed. On a pan, the eye follows the motion and the smear is forgiven. The dangerous case is a static shot with a small busy region, such as a still camera on a fountain, where nothing distracts you from the shimmer.

What platforms do to busy scenes

When you upload to YouTube or social apps, you lose control. They re-encode at their own bitrate, and for busy scenes it is often not enough. That is why uploads of fireworks and snow always look worse than the original. Giving the platform a higher-quality upload helps, because it can compress from a better starting point. Best export settings for YouTube covers it in detail.

Can you fix it afterward?

If you only have the compressed file, the blocks are baked in. What you can do is soften the effect: deblock to round off the hard edges of the squares, apply a light denoise, and scale with a good filter. The result looks calmer and more natural, even though no detail is restored. For confetti and snow it often helps, because the mind fills in what the eye cannot see.

You can try this on your own clip with the free preview, which shows you the cleanup on the first 12 seconds without asking for payment.

Summary

Codecs work by predicting, and random small detail cannot be predicted. In my demo, adding noise to a flat gray frame took the bitrate at the same quality setting from 27 kbps to almost 96 Mbps, and at a fixed 6 Mbps the quality dropped from perfect to 29.5 dB. Real footage is milder, but the pattern holds for snow, confetti, grass, water and grain. Give busy scenes more bitrate, reduce unnecessary noise before you export, and set expectations: some scenes are simply expensive.

Got a pixelated video right now?

Upload it and see a free before and after preview in about a minute.

Fix my video

Frequently asked questions

Why do snow, rain and confetti look so bad in compressed video?

Video codecs save space by predicting each frame from the last one. Random small moving detail cannot be predicted, so the encoder must either spend a huge number of bits or throw detail away.

Why does grass look blocky in my video?

Grass is a dense field of tiny, similar edges that move slightly with every camera shake. It has a lot of real detail and no easy pattern, so it needs a high bitrate to look clean.

Does a higher resolution make busy scenes worse?

A higher resolution has more detail to describe, but the viewing size is usually larger too. At a fixed bitrate, lowering the resolution often looks cleaner for busy scenes.

How do I make busy footage look better after YouTube compresses it?

Upload at a higher bitrate, avoid extra sharpening, denoise grainy shots lightly, and consider a slight blur on the very busiest backgrounds.

Can I fix a video where confetti turned into blocks?

You can soften the blocks with deblocking and denoising, but the original detail is gone. A re-export from the project at a higher bitrate is the real fix.

Keep reading

Step-by-step guides · All articles · Pixelated video fixer