Banding is a video quality artifact in which a smooth gradient, such as a sky, a studio backdrop or a dark vignette, is reproduced as a series of visible flat steps instead of a continuous transition. It is also called contouring or posterization when severe, and it belongs to the most common artifacts in video quality assessment because the eye is highly sensitive to small, regular edges in otherwise smooth areas.
Banding appears when a signal has too few distinct code values across a gradient, either because of limited bit depth, because processing has discarded precision, or because a lossy encoder has flattened subtle variations to save bitrate.
Why banding appears in a gradient
A digital video sample can take only a fixed number of values. An 8-bit signal offers 256 code values per component, and in standard limited-range video luma uses only 220 of them (16 to 235). A gradient that changes slowly across a wide area must therefore repeat each value over many pixels, creating flat zones separated by one-step edges.
Whether those edges are visible depends on the step size relative to the eye’s contrast threshold. Human vision detects relative luminance differences of roughly one percent or less in mid-tones, and the eye is especially good at spotting long, straight or curved contours. Steps that are invisible in a busy texture become obvious in a clean, low-texture gradient.
The following table shows how bit depth determines the number of available steps.
| Bit depth | Code values per component | Limited-range luma steps | Banding risk in gradients |
|---|---|---|---|
| 8-bit | 256 | 220 | High in skies and dark scenes |
| 10-bit | 1,024 | 876 | Low in SDR, moderate in HDR |
| 12-bit | 4,096 | 3,504 | Very low |
HDR makes the problem harder. The PQ transfer function spreads a luminance range of up to 10,000 nits across the code values, so each step covers more brightness change than in SDR. This is why HDR10 and Dolby Vision delivery require at least 10-bit encoding.
Sources of banding in the video chain
Banding can be introduced at any stage that reduces precision, and it often results from several small losses adding up. Identifying the stage is the first step to a fix.
| Stage | Mechanism | Typical situation |
|---|---|---|
| Capture | 8-bit recording with a log profile | Strong grading stretches few code values |
| Color grading | Large contrast or saturation changes | A flat sky pushed into deep blue |
| Bit-depth reduction | Truncation to 8-bit without dither | Export from a 10-bit timeline |
| Lossy encoding | Quantization removes low-amplitude detail | Streaming at low bitrate |
| Display | Panel or processing with limited precision | Inexpensive 8-bit or 6-bit panels |
Encoding is the most frequent cause in delivered video. Codecs such as H.264, HEVC and AV1 transform blocks into frequency coefficients and quantize away small values. In a gradient, the fine variations that would hide steps are exactly those small coefficients, so the encoder produces large flat blocks whose boundaries line up into bands.
Banding compared with related artifacts
Banding is easily confused with neighboring compression artifacts. Its distinguishing feature is that the edges follow the shape of the gradient, not a block grid or an object outline.
| Artifact | Appearance | Main cause |
|---|---|---|
| Banding | Smooth curves or rings of flat color | Too few tonal levels in a gradient |
| Blocking artifacts | Square grid of tiles | Coarse quantization per coding block |
| Posterization | Strong, few-color look across the image | Extreme level reduction |
| Ringing | Halos next to sharp edges | Lost high-frequency coefficients |
| Chroma bleeding | Color spreading past edges | Chroma subsampling and quantization |
Objective metrics handle banding poorly. PSNR and SSIM may report high scores for a banded frame because the numerical error per pixel is tiny, and even VMAF is not tuned specifically for it. Dedicated banding detectors and careful visual review on a calibrated display remain necessary.
Preventing and reducing banding
The most effective prevention is to keep precision high until the last step and to add a small amount of noise before the final reduction. Each measure addresses a different source.
- Record in 10-bit or higher whenever grading or HDR delivery is planned.
- Grade in a 32-bit float or at least 16-bit working space.
- Apply dither when converting from 10-bit to 8-bit, so steps become fine noise instead of edges.
- Add subtle grain to large gradients; the encoder must then preserve texture that masks the steps.
- Encode in 10-bit even for SDR; 10-bit HEVC or AV1 bands less at the same bitrate.
- Use encoder tuning such as adaptive quantization that protects flat areas.
Grain and dither involve a bitrate trade-off. Noise is expensive to encode, so at very low bitrates it can be destroyed by the encoder or cause other artifacts. Some modern codecs, notably AV1, offer film grain synthesis, which removes grain before encoding and re-creates it in the decoder.
| Situation | Recommended remedy | Reason |
|---|---|---|
| Banded sky in 8-bit source | Debanding filter plus grain in grading | Restores smoothness, masks steps |
| Clean master, banded stream | Higher bitrate or 10-bit encode | Encoder is the cause |
| Banding after export only | Enable dither in export settings | Truncation is the cause |
| HDR delivery | 10-bit end to end, never 8-bit | PQ steps are larger |
A plain-language summary
Banding is what happens when a smooth color fade turns into stripes. Picture a sunset sky that should glide from orange to dark blue, but instead looks like a set of painted stripes, each a slightly different shade.
It occurs because digital video has only a limited number of shades to choose from, and compression can throw away the tiny differences that would hide the steps. More shades, careful processing and a little added fine noise keep gradients smooth.
An example from practice
A documentary team films a sunrise over the sea in 8-bit 4:2:0 with a log profile. In grading, the editor increases contrast and saturation in the sky, and the export for an online platform at about 8 Mbit/s in 1080p shows clear rings around the sun.
The colorist reworks the shot in a 32-bit float timeline, applies a light debanding filter to the sky, adds fine grain across the frame and exports a 10-bit HEVC master before the platform’s own encode.
The delivered stream still uses the platform’s bitrate, but the added texture survives compression well enough to break up the contours. Viewers see a smooth sunrise, and the editor adopts 10-bit recording for future shoots with strong gradients.