Repeatable browser benchmark

JPG vs WebP vs AVIF compression benchmark

Measure encoded file size, processing time and a documented quality proxy using your own image set. Your files and results stay in this browser.

What this benchmark answers

No image format wins in every browser and for every image. This test applies the same browser canvas pipeline and selected quality levels to each source, so you can compare results for your actual photographs, graphics or mixed corpus.

Processed locally

Run a benchmark

Select up to 500 images. Large runs can take several minutes and use substantial device memory.

Checking browser encoders…
Formats
Quality levels
No images selected.
Methodology

How the measurements are produced

  1. Each accepted source is decoded locally using the same decoder used by the image tools.
  2. The decoded pixels are drawn at their original dimensions to an HTML canvas.
  3. The browser encodes that canvas once for every selected format and quality combination. Unsupported encoders are reported, not silently substituted.
  4. Encode time uses the browser's high-resolution timer. File reduction compares output bytes with source-file bytes.
  5. For PSNR, source and encoded result are independently drawn to a maximum 256-pixel comparison canvas. Mean squared error is calculated over RGB channels; identical samples are reported as lossless.

Limitations

This measures your browser's canvas encoder, not every codec implementation. PSNR is a simple pixel-error proxy and does not perfectly represent human perception. Source bytes may include metadata that canvas exports omit. Downsampling can mask fine-detail differences. Device load affects timings. Results from different environments should not be merged without preserving environment fields.

Test conditions

The downloadable JSON records the test date, browser user agent, logical processor count, device-memory value when available, selected settings, failures and all raw observations. No benchmark data is transmitted by this page.

Technical basis: MDN Canvas toBlob() and MDN browser-compat-data.