Skip to content

What is color banding in video (and how to fix it)

Notice stripes in skies and shadows? Learn what causes color banding in video, how 10-bit sources prevent it, and how debanding filters work on Mac.

In short

  • Color banding (posterization) occurs when smooth color gradients break into visible stepped stripes and contour lines.
  • Banding happens when step deltas between digital code values exceed the human eye's 1% Barten contrast sensitivity threshold.
  • Low 8-bit precision and heavy streaming compression are the primary culprits behind banded skies, sunsets, and dark shadows.
  • Modern 10-bit video, GPU debanding shaders, and temporal dithering smooth out stepped gradients during real-time playback.
On this page
  1. The science of banding: why your eyes see stripes
  2. The three main causes of color banding in video
  3. How to get rid of color banding: four proven fixes
  4. Quick troubleshooting checklist for banded video

Color banding—also known as posterization—is a visual artifact that occurs when smooth color and brightness gradients break into visible stepped stripes and harsh contour lines. Instead of a smooth transition across a twilight sky or a shadowy wall, you see distinct concentric rings resembling a topographical map.

Banding happens whenever the digital step between adjacent brightness values exceeds the human eye’s natural contrast detection threshold. While 8-bit video encoding and low streaming bitrates frequently create banding, software video players that truncate color buffers can introduce banding even on high-end Mac screens. Understanding what causes banding and how modern debanding filters operate allows you to restore smooth, film-like fidelity to your movies.

The science of banding: why your eyes see stripes

Human vision does not perceive brightness along a linear scale. As established in the Barten contrast sensitivity model standardized in SMPTE ST 2084, the human eye can distinguish brightness differences between adjacent surfaces as small as 1 percent (a change in luminance divided by luminance of about 0.01).

If the step change between two adjacent digital brightness levels is less than 1 percent, your brain blends them into a continuous, unbroken gradient. But if the difference between two steps exceeds 1 percent, your eye immediately detects the sharp boundary between the steps.

Try it

Why skies band: the same gradient at 6, 8 and 10 bits

256 levels per color channel · 16.7 million colors

Magnified: each strip is a narrow slice of brightness stretched wide, so the steps a codec stores become visible. Every two extra bits give four times as many steps; at 10 bits the steps are smaller than the eye can see.

This biological limit explains why standard 8-bit video is so vulnerable to banding:

  • 8-bit digital limits: In 8-bit video, each color channel (Red, Green, Blue, or Luma) is restricted to 256 integer values (from 0 to 255). In limited-range video standardized by ITU-R BT.709, luma is further constrained to just 220 steps (values 16 to 235).
  • The pixel span problem: Imagine a 4K movie frame featuring a slow dusk gradient that stretches across 1,920 horizontal pixels, but the lighting change across that entire distance only spans 10 discrete 8-bit brightness values.
  • The resulting stripes: Each digital value must be repeated across roughly 192 consecutive pixels. Instead of a smooth taper, you get ten wide, flat blocks of solid color sitting side by side. Because the jump between each block exceeds your eye’s 1 percent contrast threshold, you see distinct stripes.

To understand the mathematical leap between bit depths, read our foundational comparison on 8-bit vs 10-bit color.

The three main causes of color banding in video

Color banding can be introduced at three distinct stages of the video production and playback pipeline:

1. Bit depth limitations (8-bit vs 10-bit)

The most common cause of banding is low bit depth. Standard Dynamic Range video has been distributed in 8 bits for decades. While 8 bits can adequately represent flat, textured surfaces, it lacks the numerical density required for gradual light fades, underwater sequences, and night skies.

By contrast, 10-bit video provides 1,024 values per channel—a fourfold increase in precision yielding over one billion distinct colors. In 10-bit video, the step change between code values drops to roughly 0.25 percent, well below the Barten threshold. At 10 bits, gradients appear smooth because individual steps are too tiny for human vision to resolve.

2. Heavy video compression and low bitrate

Even if a film is mastered in 10-bit color, aggressive video compression can reintroduce severe banding.

Modern video encoders—including H.264, HEVC, and AV1—use spatial Discrete Cosine Transforms (DCT) and quantization matrices to compress video. When bandwidth is constrained, the encoder’s rate-control algorithm simplifies subtle gradations in dark areas or background skies to save bits for moving characters in the foreground.

The encoder quantizes subtle color differences into coarse blocks, discarding fine variations. This compression banding is common on commercial streaming services, where 4K streams are heavily compressed down to 10 to 15 Mbps. To explore how data rates dictate image fidelity, consult our guide on what is bitrate.

3. Media player truncation and rendering bottlenecks

Surprisingly, the source video and your Mac screen may both support 10 bits, but your media player may still produce banding.

Many legacy media players decode 10-bit HEVC or AV1 files on the CPU, but during window compositing, they truncate the decoded video buffer down to 8 bits to reduce GPU shader load. By dropping the two least significant bits, the player strips away 75 percent of the color gradations, creating artificial banding right on your display.

How to get rid of color banding: four proven fixes

Eliminating banding requires addressing both the video source and the playback pipeline:

1. Watch native 10-bit video sources

Whenever possible, choose video files encoded in 10-bit color (such as 10-bit HEVC, 10-bit AV1, or ProRes). 10-bit encoding reduces quantization banding at the source. Encoding standard 8-bit video into a 10-bit container during compression can also reduce banding because the encoder can calculate intermediate motion vectors with higher precision.

2. Real-time GPU debanding shaders

When you are watching older 8-bit video or heavily compressed streaming files, you cannot retrieve discarded bits from the file. However, your video player can use real-time debanding filters.

Modern debanding algorithms, such as those implemented in libplacebo, operate directly on the GPU in real time:

  1. Gradient detection: A pixel shader analyzes a neighborhood of pixels (typically a 16-pixel kernel) to identify flat color plateaus separated by sharp stepped transitions.
  2. Edge preservation: The shader checks high-contrast boundaries to ensure it does not blur sharp object outlines, text, or hair strands.
  3. Smart interpolation: Across the flat stepped zones, the filter calculates smooth intermediate color values, reconstructing the original slope of the gradient.

3. Dithering

Debanding filters work hand in hand with dithering. Dithering is the mathematical technique of introducing microscopic, imperceptible random noise patterns across adjacent pixels.

Instead of displaying a sharp boundary between step 100 and step 101, dithering alternates pixels from both steps in a stochastic pattern along the edge. The human eye optically blends these alternating pixels together, creating the perception of a continuous, fluid gradation.

4. Maintain a 10-bit end-to-end rendering pipeline

To prevent your media player from causing banding, ensure your software keeps 10-bit precision throughout its entire rendering chain: from the VideoToolbox hardware decoder, through Metal pixel buffers, to the macOS display compositor.

Keeping a high-precision pipeline from decode to display presentation ensures that subtle gradations remain smooth without softening fine film grain. To learn how MacLC handles older SDR files, read our guide on SDR to HDR.

Quick troubleshooting checklist for banded video

If you notice banding on your Mac right now, run through these diagnostic steps:

Diagnostic Check What to Look For How to Fix It
Inspect file bit depth Open the file in MediaInfo; check if Video Bit depth is 8 bits or 10 bits. Prioritize 10-bit sources for smooth gradients.
Check player color pipeline See if your player truncates buffers or lacks Metal rendering. Use a native Apple Silicon player like MacLC that renders full 10-bit frames.
Enable debanding filters Turn on debanding in player preferences for compressed 8-bit content. Eliminates stepped stripes in skies and anime scenes.
Check external display bit depth In System Settings › Displays, verify if your monitor is receiving 10-bit or 8-bit color. Use DisplayPort or HDMI 2.1 rather than bandwidth-limited HDMI 1.4 cables.

Color banding should never distract you from a cinematic sunset or dramatic night scene. By choosing 10-bit sources, utilizing GPU debanding filters, and ensuring your player respects high-precision color buffers, you can experience smooth gradients on your Mac. For related display issues, check our guide on why HDR looks washed out on Mac and learn how to tell if a video is really HDR.

Questions people ask

Why do skies and sunsets look striped in movies?

Skies look striped when an 8-bit video lacks enough digital code values to represent a smooth transition. With only 256 steps per color channel, a wide sunset across thousands of pixels forces multiple pixels into the same color, creating visible bands.

Does a 10-bit display eliminate color banding?

A 10-bit screen provides 1,024 levels per channel, making transitions smooth. However, if the source video was compressed in 8 bits or truncated by your media player, banding will still be visible on a 10-bit screen.

What does a debanding filter actually do?

A debanding filter uses GPU shaders to detect unnatural stepped gradients, interpolate subtle intermediate color values across the steps, and add microscopic dithering noise to fool your eye into seeing a continuous blend.

Can color banding damage my screen?

No. Color banding is purely a digital compression and quantization artifact; it causes no physical harm to LCD, mini-LED, or OLED panels.

Before you download

MacLC is free. If it is useful to you, a gift helps it skip “Open Anyway” and funds the next release.