De-banding and fixing compression artifacts

Banding and compression artifacts are among the most common quality problems in digital photography: well understood, entirely preventable, and still routinely introduced by export workflows that haven't been thought through. This covers what causes them and the practical options for fixing them when they appear.

What is banding

Banding is the visible stepping between tones in what should be a smooth gradient. It looks like stripes, usually running parallel to the gradient direction. Here is the example:

The cause is bit depth. An 8-bit channel has 256 steps. For most photographic content that's enough: faces, textures, foliage all have enough local contrast that the steps are invisible. But a clear blue sky, a softly lit wall, or the feathered rolloff of a flash exposure can have a tonal range that stretches across only 40 or 50 of those 256 steps. Compress that into a JPEG and those steps become visible jumps.

The frustrating part is that banding is often introduced by the export, not the capture. A RAW file or a 16-bit TIFF has 65,536 steps per channel; the same gradient spreads across thousands of values and looks perfectly smooth. The moment you flatten to 8-bit and apply lossy compression, the steps collapse together and the stripes appear.

Shooting in a high-humidity haze, into strong backlighting, or in any situation where you're recovering a lot of sky detail in post will make this worse. The more aggressive the tonal move in Lightroom, the fewer steps remain after the conversion.

Why are there compression artifacts

JPEG compression works by dividing the image into 8×8 pixel blocks and discarding frequency information the algorithm predicts you won't notice. At high quality settings (90+), the discarded detail is genuinely invisible. Lower quality settings discard more, and you start to see the blocks, especially around sharp edges and in uniform areas. That blocky look, and the halos that form around high-contrast edges, are artifacts.

Two things make this worse in practice.

First, re-saving. JPEG is lossy on every encode. Save the same file three times at 80% quality and the artifacts from each pass stack. The third generation looks measurably worse than the first. A lot of photographers introduce this by doing a "quick export" to send a proof, making corrections, exporting again from the same JPEG, and so on. Always go back to the source file.

Second, aggressive sharpening before a low-quality export. Sharpening increases local contrast at edges. JPEG then treats those edges as important high-frequency content, but at low bitrates can't preserve them cleanly. You get pronounced ringing around everything. If you're exporting for web at moderate quality, apply sharpening after you know the output quality, or dial it back.

How to fix banding and artifacts manually

There are several approaches, and they're not mutually exclusive. Which one you reach for depends on how severe the problem is and whether you want to fix it in the source file or on the export.

Option 1: Add noise to break up the stepping (Photoshop)

This is the fastest fix and works well on mild to moderate banding. Create a new layer above the banded area, fill it with 50% grey, set the blend mode to Overlay, and run Filter > Noise > Add Noise at 1–3%, Gaussian, Monochromatic. Add a mask and paint it out everywhere except the banded area. The noise interrupts the regular pattern of the steps and the eye stops reading them as stripes. It's not actually removing the banding, but it's disguising it.

Option 2: Surface Blur + Noise (Photoshop)

More thorough than noise alone. Duplicate the layer, apply a Surface Blur (radius 3–6, threshold 8–12) to soften the tonal steps without destroying edges, then run Add Noise at 0.5–1.5% over the result. This genuinely smooths the gradient before the noise is applied, so it holds up better at larger print sizes. Mask it to the affected area and adjust opacity until it blends naturally.

Option 3: Gradient Map to reconstruct the gradient

On a sky that's visibly stepped across its entire range, sometimes the cleanest fix is to replace the gradient entirely. Sample the lightest and darkest tones from the affected area, create a Gradient Map adjustment layer using those colours, and mask it to the banded region. You lose whatever local tonal variation was there, but a smooth sky with no banding often looks more believable than a banded sky with detail.

Option 4: Work upstream — fix it before the export

If you're still in Lightroom and haven't exported yet, the Noise Reduction panel's Luminance slider will smooth gradients and reduce banding. It's blunt, it also softens real texture nearby, but applied at low values (15–25) with a radial or linear mask over just the sky or gradient area, it can reduce the stepping enough to survive the JPEG conversion cleanly.

A related upstream fix: if you know a gradient area will be problematic, export that specific file at a higher quality setting (90–95) rather than your standard batch setting. The quality cost in file size is worth it for a key image.

What doesn't work

A few things people try that don't help:

  • Sharpening makes artifacts worse, not better. More local contrast gives the compression more to get wrong.
  • Increasing saturation in the banded area makes the steps more visible, not less.
  • Re-exporting at higher quality from an already-damaged JPEG. The artifacts are baked in. Higher quality on re-export just preserves them more faithfully. You need the original source.

Preventing it next time

The only reliable prevention is keeping 16-bit files through your entire editing pipeline and exporting to JPEG once, at the end, at 85 quality or higher. For images with large smooth gradients, like architectural interiors with painted walls or outdoor shots with clear skies, bump that to 90–95. The file size difference is marginal, but the quality difference is real.