Open, reproducible benchmark

How well does our in-browser image compressor actually work?

Run the production compressor against a memorable pelican test image and ten licensed CID22 references. The benchmark reports whether each file reaches 50KB, 100KB, and 200KB targets, what dimensions survive, how long encoding takes, and a disclosed scaled RGB PSNR estimate.

Pelican riding a bicycle beside a 20KB to 1MB sign, designed as an image compression torture test
The PrivateBrowserTools pelican test image

Two complementary test sets

The showcase makes artifacts easy to discuss. The CID22 subset prevents one hand-picked image from deciding the result.

The recognizable showcase

A purpose-built pelican scene containing smooth sky gradients, individual feathers, bicycle spokes, text, foliage, reflections, and saturated flowers.

The credible public dataset

Ten references selected from CID22's 49-image validation set to cover photography, text, graphics, texture, motion, architecture, portraiture, and transparency.

Live reproducible test

Run the actual in-browser compressor

This runs the same compression function used by the target-KB tools. Nothing is uploaded. Results vary by browser because JPG and WebP encoding are browser APIs.

Algorithm v2 · Chromium · July 2026

The target-aware search uses substantially more of the quality budget

The original fixed-step optimizer accepted the first encode under the limit. The current optimizer searches quality and, when necessary, dimensions to find a better result without crossing the maximum.

Targets reached60 / 60
Mean target distance17.0%
Previous distance42.9%
Mean scaled RGB PSNR42.7 dB
TargetJPG before → afterWebP before → afterInterpretation
50KB44.2KB → 49.2KB37.1KB → 48.8KBBoth formats now finish close to the cap.
100KB66.0KB → 95.2KB50.6KB → 83.5KBQuality search recovers much of the unused budget.
200KB70.7KB → 147.8KB55.5KB → 99.3KBSome maximum-quality outputs are naturally below 200KB; the tool does not upscale them just to add bytes.

Mean encode time increased from about 17ms to 156ms because the optimizer performs a bounded search. Environment: Chromium-based in-app browser on macOS. These values are a published baseline, not universal browser results; use the live runner above for the current device.

Benchmark corpus

Pelican on a bicycle: Showcase torture test
Pelican on a bicycleShowcase torture test · PrivateBrowserTools
Star trails: Smooth gradient and low light
Star trailsSmooth gradient and low light · CID22
Pasta: Food and fine detail
PastaFood and fine detail · CID22
Fibres: Dense repeating texture
FibresDense repeating texture · CID22
Football action: Motion and mixed texture
Football actionMotion and mixed texture · CID22
Recommendation screen: Text and saturated graphics
Recommendation screenText and saturated graphics · CID22
Architecture: Hard edges and geometry
ArchitectureHard edges and geometry · CID22
Portrait: Face, fabric, and background detail
PortraitFace, fabric, and background detail · CID22
Report page: Small text, lines, and chart
Report pageSmall text, lines, and chart · CID22
City logo: Logo, flat color, and transparency
City logoLogo, flat color, and transparency · CID22
Macro insect: Macro detail and shallow depth of field
Macro insectMacro detail and shallow depth of field · CID22

Methodology and limitations

  1. Every source begins as a lossless PNG and is processed by the same compressImageToTarget function used on this site.
  2. Each image is encoded as JPG and WebP toward 50KB, 100KB, and 200KB, starting at 92% encoder quality.
  3. The current optimizer binary-searches JPG or WebP quality first, then searches dimensions when the quality floor cannot meet the target. PNG uses dimension search because browser PNG encoders ignore quality controls.
  4. Scaled RGB PSNR is calculated after both images are rendered at the same 192px reference width. It is useful for local regression checks, but it is not SSIMULACRA 2, does not fully measure detail lost through dimension reduction, and is not a substitute for human judgment.
  5. Encoding is performed by the current browser, so byte sizes and timings can differ between browser engines, versions, devices, and operating systems.

Version 1.1 · Updated July 2026. Future optimizer changes should rerun the same corpus rather than replacing difficult images.

Dataset license and attribution

The ten CID22 images are adapted from the Cloudinary Image Dataset ’22 validation references by Jon Sneyers, Elad Ben Baruch, and Yaron Vaxman, licensed under CC BY-SA 4.0. The pelican showcase image was created for PrivateBrowserTools.