Benchmarks · 1002 images · Real vips

Real numbers.
No placeholders.

1002 JPG and PNG images from Wikimedia Commons (Category:Images BFS, 23 subcats, PNG-first 400 + 5MB cap) compressed locally with vips at quality 85 balanced. No upload, no dry heuristic — real `heifsave`/`jpegsave`/`webpsave`.

Generated 2026-08-26 · 1002 files · 1.6GB · 1 failed file excluded
57.8% jpg→jpg avg84.5% png→webp avg70.9% jpg→webp avg1.6GB dataset
Summary

Overall — jpg→jpg keep at 85

Primary config: recompress JPG keep at quality 85 balanced (456 JPG files, 1285.7 MB → 542.5 MB).

57.8%
Avg saved

Peak 92.4% · 779.3 MB saved

1285.7 MB
Before

456 JPG files

542.5 MB
After

1 failed file excluded

Avg saving 57.8% 57.8% avg at quality 85 keep — real vips, not dry estimate.
By format

JPG vs PNG

Same quality, different source. PNG converts to WebP for maximum.

57.8%
JPG → JPG

457 JPG · keep · 1285.7 MB

84.5%
PNG → WebP

545 PNG · to webp · 247.9 MB → 40.4 MB

70.9%
JPG → WebP

457 JPG · to webp · 70.9% avg

5MB
Cap

Files >5MB excluded

Input → OutputFilesAvgPeak
jpg → jpg (keep 85)45657.8%92.4%
png → webp (85)54584.5%99.8%
jpg → webp (85)45670.9%97.3%
Configs

Three representative configs

Three configs, each filtered by input extension. The full 8-config matrix (quality × engine × output) is available in stats.json.

LabelInputOutputFilesAvg
jpg→jpgjpgkeep45657.8%
png→webppngwebp54584.5%
jpg→webpjpgwebp45670.9%

Per config: files filtered by input extension, averages from successful files only, per-format aggregates from the full file list.

Methodology

How it was measured

Reproducible on your own machine — same app, same engine, no cloud.

Dataset

1002 images · 1.6GB

1002 public-domain images from Wikimedia Commons (23 categories, PNG-first sample, 5MB per-file cap). 545 PNG / 457 JPG, avg 1.6MB per file. One unreadable file excluded.

Wikimedia · 23 categories
Engine

Real engine runs, not estimates

Every number comes from a real compression run through the same engines the Windows app uses — mozjpeg for JPG, libwebp for WebP — at 4 threads, quality 85, balanced.

vips · mozjpeg · libwebp
Real files, real sizes — before/after measured on disk per file, averages from successful runs only.
Per-config filtering — each config counts only files matching its input format, so JPG and PNG results never mix.
Metadata stripped — savings include EXIF/ICC removal, same as the app default.
Failed files excluded — one unreadable source skipped, never counted as a saving.

Source: 1002 Wikimedia test images, measured 2026-08-26. Raw per-file data in data/stats.json.

Samples

Before → After

Samples from the measured run (full per-file data in stats.json).

FileBeforeAfterSaved
!-tylewice-wiatrak…jpg3.4 MB2.0 MB41.7%
123inkt_logo…png15 KB3 KB80%
Android_15_Logo.png568 KB89 KB84.3%

Full per-file results live in data/stats.json.

FAQ

Benchmarks — FAQ

Why only 3 configs?

These three cover the common paths: JPG recompression, PNG→WebP conversion, and JPG→WebP conversion, all at quality 85 balanced. The app supports the full matrix — quality 40–95, three engines, keep or convert output.

Why is png→webp 84.5% vs jpg→jpg 57.8%?

PNG is largely uncompressed source, so converting to WebP shrinks it dramatically. JPG recompression at the same quality still saves ~58% thanks to mozjpeg plus metadata stripping.

Can I reproduce these numbers?

Yes. Download the app, point it at your own folder, quality 85 balanced — you should see savings in the same ballpark. Your images never leave your PC.

Benchmarks

Numbers you can reproduce.

1002 real images, real compression engines, per-format results, failed files excluded.

Real engine · 1002 images · 3 configs