Find out what is wrong with the picture, then fix that

The quality report opens first: each reading in its own unit, a verdict, and the control that addresses it. The after column is measured on the corrected pixels.

Corrected on your own machine — we never get a copy.
No photograph openCorrected on your own machine — we never get a copy.
One press

Drop a dull photo here and we'll take a first pass at it.

Drop a dull photo here and we'll take a first pass at it.
A forwarded JPEG, a dim phone photo or a screenshot are the usual cases. JPG, PNG, WebP, AVIF, BMP and HEIC open here.
Nothing has been measured yet, so there is nothing for the save control to write.

Why a report comes before a button

“Improve image quality” covers at least five different faults that need five different fixes. A dull frame needs light; a yellow one needs its illuminant removed; a grainy one needs its noise kept away from the sharpening; a blocky one was compressed too hard somewhere upstream; a small one simply has too few pixels. A single enhance button applies one blend of all of them to every picture, which is why it so often makes a good photograph worse and a bad one only differently bad.

So this page measures first. The readings are separate on purpose and each one is in the unit it is measured in — levels, kelvin, code values, a quality figure, a ratio, pixels — with a band printed beside it. Where the studio can do something about a reading, the row carries a button that does exactly that and nothing else. Where nothing can be done, the row says so and says why.

The bands the verdicts use

Every threshold, as the code holds it
ReadingFineWorth fixing
Median brightness0.4–0.56outside that band
Colour of the lightwithin 900 K of daylightmore than 900 K away
Grain σ (luma)under 2over 6, or over 2 in a dark frame
Edge energyat least 4under 4, or edges wider than 2.5 px
JPEG quality85 and upunder 60
8×8 blockingratio up to 1.15over 1.15
Clipped highlightsunder 0.5%can't fix — detail is gone
Resolutionlong edge 1,080 px and upunder 1,080 px

These are first estimates, set against drawn test images and the published behaviour of the methods, and they are versioned with the engine so a change is never silent. They are the same constants the panel reads, so this table and the verdicts cannot disagree.

How the readings are taken

Brightness and range come from a 256-bin histogram of luminance. The colour of the light is the correlated colour temperature of the frame’s average colour over its mid-tones, in linear light. Grain is Immerkær’s estimate: a three-by-three filter that cancels flat tone and straight edges, leaving the random part, summarised by a median so a few busy edges cannot inflate it. Edge energy is the mean gradient on luminance; edge width is the ten-to-ninety per cent rise distance measured across the strongest edges in the frame.

JPEG quality is read from the file itself — its quantisation tables, in the first bytes of the file already in your browser — and the blocking ratio compares the step across every eighth pixel boundary with the step inside the blocks. The blocking grid only exists at the file’s own scale, so on a picture larger than the working copy that row says it was not measured rather than guessing from a resampled copy.

What it will not claim

  • We can't rebuild a blown highlight. Where the sensor clipped to pure white there's no detail left in the file, and no amount of correction invents it — what we can do is stop the rest of the photo from suffering for it.
  • A reading is a measurement, not a verdict on whether the photograph is good. A deliberately dark night scene measures as dark; the pass notices real highlights in it and goes gently, and the row is still there for you to overrule.
  • Sharpening adds contrast at edges; it does not add detail. Motion blur and a badly missed focus cannot be undone here, and the report says so rather than offering a button that pretends.

Questions people ask

What does σ mean in the grain row?
It is the standard deviation of the noise, in 8-bit code values, estimated with Immerkær's method: a small filter that cancels smooth tone and edges and leaves the random part, then a robust median over the frame. Below 2 you will not see grain at normal size; above 6 it shows everywhere; between the two it shows in dark frames once their shadows are lifted, which is why the report weighs it against the median brightness. Luminance grain and colour grain are measured separately, because colour speckle is the one that looks worst and is the easier one to hide.
How can you tell my JPEG's quality without the camera settings?
Every JPEG carries its own quantisation tables — the numbers that decide how coarsely each frequency was rounded away. Most encoders build them by scaling one standard table by a quality setting, so the page reads the file's table, finds the quality whose scaled table matches it most closely, and prints that. When a camera or phone wrote its own non-standard table the figure is still close, and the row says approximate. The reading comes from the first bytes of the file already in your browser; nothing is sent anywhere.
Why won't it fix my blown-out sky?
Because the detail is not in the file. A pixel that reached 255 in a channel recorded only "at least this bright", and every pixel in that patch recorded the same thing. The report marks clipped highlights as can't fix whenever more than 0.5% of the frame sits there, and the pass protects everything around them instead of pretending. Pulling the brightness down only turns flat white into flat grey.
Is there an overall quality score?
No, deliberately. A photograph can be sharp and noisy, or clean and soft, and a single number out of a hundred would average away exactly the thing you need to know. Each reading stays in its own unit with its own verdict, and the after column is measured again on the corrected pixels rather than assumed from the settings.
Does improving quality make the file bigger?
Usually a little. Correcting light and colour does not add pixels, but saving at a high quality setting keeps more of what is there, and the save card prints the exact number of bytes written. If the report suggests local AI for a small or blocky picture, that step doubles the width and height, so the file grows roughly fourfold.

Where the fixes live