Where artefacts come from
JPEG divides the image into 8x8 pixel blocks and converts each into frequency components — a few describing broad tonal shape, many describing fine detail. It then rounds those components off, aggressively for the fine ones and lightly for the broad ones.
Rounding is where all the damage originates. Every artefact is a visible consequence of that rounding being too coarse for the content it was applied to.
The block structure is why the damage has a characteristic look. Each 8x8 block is processed independently, so errors do not blend smoothly across the image the way blur would.
Blocking
The classic one: the image visibly breaks into 8x8 squares, most obvious in areas of smooth tone like a sky, a wall, or a face in soft light.
It happens when the quality setting is low enough that the fine detail within each block is rounded away entirely, leaving each block as a flat patch of its average colour. Neighbouring blocks land on slightly different averages, so the boundaries become visible.
This is the artefact that says the quality setting was too low. It is not fixable after the fact — the within-block detail is gone. A mild blur can hide the boundaries at the cost of overall sharpness, which is usually a bad trade.
Ringing, or mosquito noise
A shimmer of light and dark speckling that clusters around high-contrast edges — text on a plain background is the textbook case, and so is a dark branch against a bright sky.
A hard edge is a very high-frequency feature. Representing it with a small number of frequency components produces overshoot on either side, the same way a sharp step function reconstructed from limited harmonics produces overshoot. The result is a halo of oscillation around the edge.
This is why JPEG is the wrong format for screenshots and line art. No quality setting eliminates it entirely, and at typical web settings it is clearly visible around small text.
Banding
Smooth gradients break into visible steps — a sunset sky becomes a series of stripes, a studio backdrop becomes concentric bands.
The gradient's tonal variation is subtle enough that quantisation rounds neighbouring values onto the same level, collapsing a smooth ramp into discrete plateaus. It is made worse by 8-bit colour depth, which only has 256 levels per channel to begin with.
Banding is where WebP and AVIF beat JPEG most clearly, because their prediction-based encoding handles smooth ramps far better. If your images band consistently, changing format helps more than raising quality.
Colour fringing
Coloured edges look smeared or misregistered, most visibly on saturated text — a red heading on white developing a magenta or orange halo.
The cause is chroma subsampling rather than quantisation. JPEG usually stores colour at half resolution in each direction, because human vision resolves brightness far better than colour. On photographs this is genuinely invisible; on saturated graphics it is not.
Unlike the others, this one has a straightforward fix if your encoder exposes it: disable subsampling, usually labelled 4:4:4. The file grows but coloured edges stay clean.
Generation loss looks different again
An image re-saved many times develops a distinctive muddiness — detail flattens, colours drift, and the block structure becomes faintly visible everywhere rather than only in smooth areas.
Each save re-quantises an already-quantised image, and because the block grid stays aligned, errors reinforce rather than cancel. It is a slow accumulation that is unnoticeable for two or three generations and unmistakable by ten.
This is the artefact most likely to be present without anyone realising, because it accumulates through ordinary workflows — every crop, every app that re-compresses on upload, every forwarded copy.
What can actually be repaired
Very little, honestly. All four artefacts are the result of information having been discarded, and no filter recovers discarded information.
Mild denoising can reduce the visibility of ringing at the cost of sharpness. A gentle blur can soften block boundaries at the cost of overall detail. Adding a small amount of noise can mask banding by breaking up the plateaus, which is a trick borrowed from audio dithering and works better than it sounds.
All three are cosmetic mitigations that trade one kind of degradation for another. They can make an image more pleasant to look at; they do not restore it.
Preventing them
Match the format to the content. Photographs to JPEG or WebP, graphics and text to PNG or lossless WebP. Most severe artefacting is a format mismatch rather than a settings problem.
Stay at quality 80 or above for anything that will be looked at properly, and above 85 for content with smooth gradients.
Keep a lossless master and export once per destination. Generation loss is entirely preventable and is the most common cause of images that look bad for no obvious reason.
Resize before compressing, not after. Compressing first and resizing second resamples the artefacts into a fine texture that the next encode then has to describe as if it were real detail.
Frequently asked questions
Why does my image look blocky?
Quality was set low enough that detail within each 8x8 block was rounded away, leaving flat patches with visible boundaries. It is not recoverable.
What causes the speckling around text in a JPEG?
Ringing, sometimes called mosquito noise. Hard edges are high-frequency features and representing them with limited components produces overshoot. Use PNG for text instead.
Why does my sky have stripes?
Banding. Subtle gradients get rounded onto the same quantisation level, collapsing a smooth ramp into steps. WebP and AVIF handle gradients much better.
Can JPEG artifacts be removed?
Not really. Denoising, gentle blur, and added noise can mask them, but all trade one degradation for another. The discarded information is gone.
Why does my red text look fringed?
Chroma subsampling stores colour at half resolution. Disable it — usually labelled 4:4:4 — if your encoder allows, or use a lossless format for graphics.
Does re-saving make artifacts worse?
Yes. Each save re-quantises an already-quantised image and errors reinforce because the block grid stays aligned. Keep a lossless master.