CompressDog

How to Reduce JPEG File Size Without Losing Quality

A practical guide to shrinking JPEGs while keeping the detail that matters, including the one encoder setting most online tools get wrong.

Almost every "compress your image" tool makes the same silent trade: it throws away half of your colour information and hopes you will not notice. You can usually spot the result on skin tones, red flowers, thin coloured text, and any photo with strong colour edges. Quality sliders do not fix it, because it is not a quality problem.

What actually makes a JPEG big

A JPEG stores brightness at full resolution and colour at reduced resolution. The ratio is called chroma subsampling:

Many cameras and image generators export 4:4:4. Many encoders, when asked for a "web" or "compressed" JPEG, quietly convert to 4:2:0. That conversion is irreversible: the colour detail is discarded before any quality slider is consulted.

We measured this on 323 images, re-encoded at the same quality with only the sampling changed. SSIMULACRA2 fell from a mean of 87.8 to 82.7 — every single image got worse, 47% of them by more than 5 points, and the worst by 17. Raising the JPEG quality does not recover it. The full measurement has the method and the numbers.

The quality number is not a percentage

A JPEG "quality" of 80 does not mean "80% of the original". It is an index into a table of quantization steps that was defined in 1992 and has no physical meaning. Two encoders both claiming quality 80 can differ in file size by 40% at the same visual quality.

Practical ranges for photographic content:

What this tool does differently

We read the chroma subsampling out of your file's header before touching it, and keep it unchanged. If your image is 4:4:4, it stays 4:4:4. Most tools cannot tell you what your file used; we show it on every image before you compress.

We also refuse to spend your quality for nothing. If your file is already compressed (say an earlier export at q70), re-encoding it at q80 makes the file larger while looking no better — the encoder is spending bits describing compression artifacts. We detect that case and, instead of guessing, run a lossless pass: the entropy coding is rewritten, the image data is left bit-for-bit identical. On baseline JPEGs that typically saves about 4%.

A workflow that works

Everything runs in your browser. Your images are never uploaded.

Open the compressor