TinySquish

Benchmark: how much smaller, at what quality

Measured on 2026-10-09 with the live app engine (commit 56812e2, Chromium 148.0.7778.96).

Key results

  • Photos: WebP at 75% made the Kodak photos 92.3% smaller than the lossless PNG originals (mean PSNR 35.09 dB); JPEG at 75%: 89.6% (34.52 dB).
  • Screenshots: palette PNG at 75% saved 58% at 58.24 dB, visually identical; JPEG saved only 21.6% and blurred text.
  • Max size: with a 50 KB limit every photo fit (largest 49.9 KB); 4 of 24 needed smaller dimensions.
  • Where it doesn't help: lossless PNG saved 0% on the photos, whose PNG files were already tightly compressed, so TinySquish kept the originals.

Kodak photo suite (24 ร— 768ร—512 PNG photos)

SettingTotal sizeSmaller byMedian per imageMean PSNR
Keep PNG, quality 75% (256-color palette)14.68 MB โ†’ 5.32 MB63.8%63.7%39.56 dB (min 35.32)
Keep PNG, quality 95% (lossless)14.68 MB โ†’ 14.68 MB0%0%lossless
Convert to JPEG, quality 75%14.68 MB โ†’ 1.52 MB89.6%90.5%34.52 dB (min 30.51)
Convert to WebP, quality 75%14.68 MB โ†’ 1.13 MB92.3%92.9%35.09 dB (min 33.01)
Convert to JPEG, max size 50 KB14.68 MB โ†’ 1.13 MB92.3%92%32.77 dB (min 24.6) ยท 4 resized

UI screenshots (4 PNG screenshots of this site)

SettingTotal sizeSmaller byMedian per imageMean PSNR
Keep PNG, quality 75% (256-color palette)432.6 KB โ†’ 181.9 KB58%58.2%58.24 dB (min 55.81)
Keep PNG, quality 95% (lossless)432.6 KB โ†’ 360.0 KB16.8%17%lossless
Convert to JPEG, quality 75%432.6 KB โ†’ 339.1 KB21.6%22.1%37.55 dB (min 35)
Convert to WebP, quality 75%432.6 KB โ†’ 198.2 KB54.2%54.6%40.38 dB (min 38.32)
Convert to JPEG, max size 50 KB432.6 KB โ†’ 199.0 KB54%54.2%29.64 dB (min 25.67) ยท 3 resized

Method

The benchmark drives the real app in headless Chromium, so it measures exactly the code visitors run. Each image is added through the file picker, compressed with the setting shown, and downloaded as a ZIP. Size reduction compares output bytes with the input PNG. PSNR (peak signal-to-noise ratio, higher is better; above about 40 dB differences are very hard to see) is computed over RGB after both files are decoded by the browser; outputs that were resized are scaled back up first, so the score includes the lost resolution.

Photos: the 24 images of the Kodak Lossless True Color Image Suite, a standard test set for image compression. Screenshots: four PNG screenshots of tinysquish.com rendered by the benchmark script. Raw per-image results: results.json. Run it yourself with tools/benchmark.js from the source repository.