Benchmark · measured 5 and 9 October 2026

Image compressor benchmark: Smol’s AVIF was 22 to 26% smaller than JPEG at the same quality

This image compressor benchmark ran Smol 1.0.35, ImageOptim, Apple’s sips, Squoosh and Caesium on the 24 Kodak test images, each tuned to the same SSIMULACRA2 quality score. Smol’s AVIF needed 15 to 21% fewer bytes than Apple’s AVIF encoder and 20 to 22% fewer than ImageOptim’s lossy JPEG. It was not the fastest tool, it has no lossless mode, and it lost several comparisons, listed below.

Image compressor benchmark results at a glance

Results at a glance: Smol against each tool on the 24 Kodak images at the same SSIMULACRA2 score
ComparisonResult
Smol AVIF against Smol JPEGAVIF 22 to 26% smaller
Smol AVIF against Smol WebPAVIF 21 to 24% smaller
Smol WebP against Smol JPEGWebP from 3% larger to 6% smaller
Smol AVIF against Apple sips AVIFSmol 15 to 21% smaller
Smol AVIF against Squoosh AVIFSmol 15.2% smaller by SSIMULACRA2; Squoosh 4.2% smaller by SSIM
Smol JPEG and WebP against SquooshLevel: the same bytes for the same score
Smol AVIF against ImageOptim lossy JPEGSmol 20 to 22% smaller
Smol JPEG against ImageOptim lossy JPEGLevel: Smol 1% smaller to ImageOptim 4% smaller
SpeedA sips loop was about 13 times faster; ImageOptim about 8 times faster on JPEGs
LosslessImageOptim has one; Smol does not

Smol made this benchmark, so do not take our word for it: the raw data and scripts are on this page, the test images are public, and every tool except Smol is free.

Bytes needed for the same quality, all 24 Kodak images

Shorter is better. Every encoder tuned to the same SSIMULACRA2 score of 70 on each image.

  • AVIF
  • WebP
  • JPEG
Total bytes each encoder needs to reach SSIMULACRA2 70 on all 24 Kodak images
Format and toolTotal bytes
AVIF · Smol922 KB
AVIF · sips (Apple)1,161 KB
JPEG · Smol1,189 KB
WebP · Smol1,220 KB
JPEG · sips (Apple)1,327 KB
JPEG · Caesium1,349 KB

AVIF vs WebP vs JPEG: which format is smallest at the same quality?

AVIF, by a wide margin. Smol’s AVIF was 21 to 24% smaller than its WebP and 22 to 26% smaller than its JPEG at the same score. WebP against JPEG was close: from 3% larger to 6% smaller, depending on the score.

Smol's AVIF, WebP and JPEG compared by total bytes at the same SSIMULACRA2 score, all 24 Kodak images
ComparisonScore 70Score 75Score 80
AVIF against JPEGAVIF 22.5% smallerAVIF 24.1% smallerAVIF 26.4% smaller
AVIF against WebPAVIF 24.5% smallerAVIF 23.2% smallerAVIF 21.4% smaller
WebP against JPEGWebP 2.6% largerWebP 1.2% smallerWebP 6.3% smaller

These are one encoder’s three formats on film scans. Browser support, editing apps and upload limits decide which format you can ship; the full encoder-by-encoder table is below.

How many bytes does each image compressor need for the same quality?

A compressor can always make a smaller file by keeping less of the picture, so file size alone says nothing. Each encoder was run at several settings on every image, each output was scored against its original, and we then worked out how many bytes each encoder needs to reach the same score. Totals are bytes for all 24 images; the percentage is the gap to Smol’s AVIF.

Total bytes each encoder needs to reach the same SSIMULACRA2 score on all 24 Kodak images
EncoderScore 70Score 75Score 80Score 85
Smol, AVIF921,5501,141,2161,491,137n/a (2 of 24)
sips (Apple), AVIF1,160,621 (+26%)1,398,567 (+23%)1,760,869 (+18%)n/a (12 of 24)
Smol, JPEG1,188,611 (+29%)1,503,919 (+32%)2,026,085 (+36%)3,040,283
Smol, WebP1,219,939 (+32%)1,485,640 (+30%)1,897,776 (+27%)n/a (19 of 24)
Caesium, WebP1,218,859 (+32%)1,473,826 (+29%)1,875,732 (+26%)2,599,531
sips (Apple), JPEG1,326,624 (+44%)1,619,680 (+42%)2,069,111 (+39%)2,864,112
Caesium, JPEG1,348,596 (+46%)n/a (2 of 24)n/a (24 of 24)n/a (24 of 24)

SSIMULACRA2 is a perceptual quality metric from Cloudinary that ships with the JPEG XL reference software; its authors’ README describes a score of 70 as high quality, 80 as very high quality and 90 as visually lossless. “n/a (2 of 24)” means none of the settings we ran reached that score on 2 of the 24 images, so no fair total exists. Caesium’s WebP is level with Smol’s; its totals differ slightly because we ran it at more settings, which gives the interpolation more points and a wider range.

The older SSIM metric tells a flatter story. By SSIM the two AVIF encoders are 2% apart, and Apple’s JPEG encoder beats Smol’s:

Total bytes each encoder needs to reach the same SSIM score on all 24 Kodak images
EncoderScore 0.95Score 0.96
Smol, AVIF1,292,8331,579,742
sips (Apple), AVIF1,318,673 (+2%)1,611,629 (+2%)
Smol, JPEG2,185,464 (+69%)2,771,104 (+75%)
Smol, WebP1,499,206 (+16%)n/a (2 of 24)
Caesium, WebP1,488,156 (+15%)1,806,224 (+14%)
sips (Apple), JPEG2,102,574 (+63%)2,540,271 (+61%)
Caesium, JPEGn/a (23 of 24)n/a (23 of 24)

Smol vs Squoosh: which makes smaller files?

Squoosh is the free reference most people compare against, and for two of three formats there is nothing to separate them: on JPEG and on WebP the two need the same bytes for the same score. Smol is not ahead of Squoosh on either. What it adds is a whole folder at once.

AVIF differs. We ran Squoosh’s AVIF at its default setting only, then found the bytes Smol’s AVIF needs to match each file’s score:

Smol AVIF against Squoosh AVIF at its default setting, matched image by image
Matched onImages comparableSquoosh AVIFSmol AVIFResult
SSIMULACRA217 of 24666,265565,101Smol 15.2% smaller, on 17 of 17
SSIM23 of 24779,699813,952Squoosh 4.2% smaller, on 23 of 23

The two metrics disagree, and we report both. An image is “comparable” when Squoosh’s score falls inside the range of settings we ran for Smol.

Smol vs ImageOptim: which makes smaller files?

Added 9 October 2026. ImageOptim is the free Mac optimizer most lists still recommend first, so it gets its own test. It keeps whatever format it is given and writes neither AVIF nor WebP, so we ran version 1.9.3 from two starting points: the 24 original PNGs (15,394,305 bytes) and the same images saved as JPEG with sips at quality 90 (4,082,179 bytes). Its default is lossless; its lossy mode is a switch in Preferences with quality 80 as the default. Scores are against the original PNG in every case.

ImageOptim 1.9.3 and Smol 1.0.35 on the same 24 images, at fixed settings
Tool and settingTotal bytesSavedMean scoreTime
JPEG in: ImageOptim, default (lossless)3,718,3748.9%Unchanged0.9 s
JPEG in: ImageOptim, lossy on at 801,477,76263.8%74.30.9 s
JPEG in: Smol, default (JPEG at 75)1,252,71669.3%71.17.1 s
JPEG in: Smol, AVIF at 651,229,67169.9%75.67.2 s
PNG in: ImageOptim, default (lossless)14,727,2054.3%Unchanged21.4 s
PNG in: ImageOptim, lossy on at 805,470,86164.5%81.816.9 s
PNG in: Smol, default (PNG at 75)4,745,99469.2%77.69.5 s
PNG in: Smol, AVIF at 651,218,46592.1%76.68.7 s

“Unchanged” means lossless: a pixel comparison found no differences in any of the 48 files. Left at its defaults ImageOptim took 8.9% off the JPEGs and 4.3% off the PNGs. Times are the mean of three runs, listed in the README.

Fixed settings do not say which tool is more efficient, so here is the same-quality comparison, with ImageOptim’s lossy mode on and both tools run at several settings:

Bytes needed for the same SSIMULACRA2 score: ImageOptim with lossy mode on against Smol
Input and scoreSmol outputImages comparableImageOptimSmolResult
JPEG in, score 65Smol AVIF22 of 24967,767753,881Smol 22.1% smaller
JPEG in, score 70Smol AVIF24 of 241,239,182961,632Smol 22.4% smaller
JPEG in, score 75Smol AVIF24 of 241,557,5421,210,605Smol 22.3% smaller
JPEG in, score 80Smol AVIF21 of 241,790,6901,425,458Smol 20.4% smaller
JPEG in, score 65Smol JPEG22 of 24967,767967,330Level
JPEG in, score 70Smol JPEG24 of 241,239,1821,222,985Smol 1.3% smaller
JPEG in, score 75Smol JPEG24 of 241,557,5421,573,959ImageOptim 1.0% smaller
JPEG in, score 80Smol JPEG21 of 241,790,6901,863,615ImageOptim 3.9% smaller
JPEG in, score 65Smol WebP15 of 24587,773623,163ImageOptim 5.7% smaller
JPEG in, score 70Smol WebP24 of 241,239,1821,291,763ImageOptim 4.1% smaller
JPEG in, score 75Smol WebP24 of 241,557,5421,633,849ImageOptim 4.7% smaller
JPEG in, score 80Smol WebP17 of 241,533,4401,611,325ImageOptim 4.8% smaller
PNG in, score 75Smol AVIF14 of 242,403,961575,635Smol 76.1% smaller
PNG in, score 80Smol AVIF20 of 244,351,5471,254,773Smol 71.2% smaller
PNG in, score 75Smol JPEG14 of 242,403,961759,960Smol 68.4% smaller
PNG in, score 80Smol JPEG20 of 244,351,5471,695,522Smol 61.0% smaller
PNG in, score 75Smol PNG13 of 242,237,9552,248,093ImageOptim 0.5% smaller
PNG in, score 80Smol PNG14 of 242,912,3462,900,592Smol 0.4% smaller

Kept in the same format, the two are level: JPEG to JPEG runs from Smol 1% smaller to ImageOptim 4% smaller, and lossy PNG to lossy PNG is within 0.5%. The gap is the format. Smol’s AVIF needed 20 to 22% fewer bytes than ImageOptim’s JPEG and 71 to 76% fewer than its PNG, and ImageOptim cannot write AVIF. By SSIM the AVIF gap from JPEG is 34 to 35%, and JPEG to JPEG tilts to ImageOptim, whose files are 1 to 8% smaller. Smol’s WebP was 4 to 6% larger than ImageOptim’s JPEG at the same SSIMULACRA2 score.

On speed the result splits. ImageOptim finished the JPEGs about 8 times faster than Smol. On PNGs, Smol at the setting that matches ImageOptim’s lossy output in size and score (PNG at 90, 5,444,974 bytes at 81.7) took about 10.4 seconds, which is 1.6 times faster than ImageOptim’s lossy mode. ImageOptim’s own pull request #466, merged in July 2026 and not yet released, describes the shipping app pinning its work to Apple Silicon efficiency cores; we tested the released build and not the fix. What this means when choosing between the two is on the ImageOptim alternative page.

Is Smol faster than sips, Caesium or ImageOptim?

Wall-clock time to convert all 24 PNGs to one format, on an M2 Pro.

Seconds to convert the 24 Kodak PNG files
ToolJobRuns (seconds)Mean
SmolJPEG, quality 757.2, 7.2, 7.57.3 s
SmolJPEG, quality 807.3, 7.47.3 s
SmolAVIF, quality 658.2, 7.47.8 s
SmolWebP, quality 826.7, 6.56.6 s
sipsJPEG, formatOptions 50, shell loop0.63, 0.54, 0.540.57 s
caesiumcltJPEG, quality 900.21, 0.19, 0.190.20 s

Smol is the slowest of the three by a wide margin, and we did not measure where the time goes. Squoosh is not in this table because it has no batch mode. ImageOptim’s times are in its own section, because it was run on a different day and on two kinds of input.

Does Smol have a lossless mode?

The 24 source PNGs are 15,394,305 bytes. Smol has no lossless mode, so it is absent here. ImageOptim’s row is from the 9 October test.

Lossless PNG optimization of the 24 Kodak files
ToolTotal bytesSaved
Caesium, lossless PNG14,709,2184.5%
Squoosh, OxiPNG default14,768,0174.1%
ImageOptim 1.9.3, default14,727,2054.3%

Where Smol did not win

  • Speed. A sips loop was about 13 times faster and caesiumclt about 37 times faster.
  • JPEG at high quality. At a SSIMULACRA2 score of 85, Apple’s JPEG encoder needed 5.8% fewer bytes than Smol’s. By SSIM, Apple’s JPEG was smaller at both scores we matched.
  • AVIF, by SSIM. Squoosh’s default AVIF was 4.2% smaller than Smol’s at the same SSIM, on every comparable image.
  • Lossless. Smol always re-encodes. For pixel-identical output use ImageOptim, OxiPNG or Caesium’s lossless mode.
  • JPEG and WebP against Squoosh. A tie, not a win: the same bytes for the same score.
  • JPEG speed against ImageOptim. ImageOptim processed 24 JPEGs in about 0.9 seconds; Smol took about 7.1.
  • Same format against ImageOptim. By SSIMULACRA2, JPEG to JPEG and PNG to PNG are ties, with ImageOptim’s JPEG 4% smaller at a score of 80, and Smol’s WebP was 4 to 6% larger than ImageOptim’s JPEG at the same score. By SSIM, ImageOptim’s JPEG was 1 to 8% smaller than Smol’s.

Method

  • Images. The 24 images of the Kodak Lossless True Color Image Suite, 768 × 512 pixels each, 15,394,305 bytes of PNG in total. They are public, so anyone can repeat this.
  • Machine. Apple M2 Pro, 16 GB, macOS 27.0.
  • Tools. Smol 1.0.35 driven through its MCP server; sips-316 (built into macOS); caesiumclt 1.5.0; squoosh.app in headless Chrome 154; Zipic 1.10.2 on its free tier, which allowed three images and no AVIF.
  • Settings. Each encoder at four to ten quality settings per format, except Squoosh’s AVIF (default only). 1,335 output files in all.
  • Scoring. Every output against its original PNG with SSIMULACRA2 (libjxl 0.11.2) and SSIM (11-tap Gaussian window, sigma 1.5, mean of the red, green and blue channels).
  • Matching. For each image and encoder, the bytes needed to hit a target score are interpolated in log-bytes between the two nearest settings measured, then summed over the 24 images. If any image cannot reach the score, no total is reported.
  • Timing. Wall-clock seconds for the whole folder, two or three runs each, all listed above.
  • ImageOptim, 9 October 2026. ImageOptim 1.9.3 run from its command-line binary on copies of the files, on the same machine under macOS 27.0.1, at its defaults and with lossy mode on at JPEG quality 60, 70, 80 and 90 and PNG quality 60, 80 and 90. Smol 1.0.35 was run on the same inputs; its JPEG, WebP and AVIF curves from the PNG originals are the 5 October rows, made with the same version. 696 more output files, scored and matched the same way, over the images both tools reach at each score. ImageOptim’s times include launching the app; Smol’s run from the job being accepted, with the app already open.

Limits of this test

  • Twenty-four small film scans are not your photo library. Phone photos, screenshots and product shots on white will give different numbers.
  • A quality metric is a model of what people see, not people. SSIMULACRA2 and SSIM disagree in places, which is why both are shown.
  • One machine, one version of each tool, one day. Smol’s JPEG output changed between versions 1.0.34 and 1.0.35, and other tools change too.
  • Squoosh’s AVIF was measured at one setting and Zipic on three images, so those comparisons are narrower than the rest.
  • ImageOptim was tested four days after the other tools, and its JPEG inputs were made by us from the PNG originals. A camera’s own JPEGs will behave differently in detail.
  • We make one of the products tested. The data and scripts below exist so the result does not depend on trusting us.

Raw data and scripts

For what the numbers mean when you are choosing a tool, including four compressors we assessed without measuring, read the best image compressors for Mac. Found a mistake? Tell us and we will correct it.

What to read next

Questions this answers

Is Smol the best image compressor for Mac?

It depends on what you measure. For the smallest file at a given quality, Smol's AVIF output was the smallest we measured: 15 to 21% fewer bytes than Apple's AVIF encoder, 22 to 26% fewer than the best JPEG encoder and 20 to 22% fewer than ImageOptim's lossy JPEG, at the same SSIMULACRA2 score on the 24 Kodak images. For raw speed a sips or Caesium script is more than ten times faster, and for lossless optimization ImageOptim is the right tool, because Smol has no lossless mode.

Is Smol better than ImageOptim?

For file size at the same quality, yes, because Smol writes AVIF and ImageOptim does not. Measured on 9 October 2026 with ImageOptim 1.9.3 and its lossy mode on, Smol's AVIF needed 20 to 22% fewer bytes than ImageOptim's JPEG output and 71 to 76% fewer than its PNG output at the same SSIMULACRA2 score. Kept in the same format the two are level. ImageOptim was about 8 times faster on JPEGs, and it has a lossless mode, which Smol does not.

Is Smol better than Squoosh?

For JPEG and WebP there is nothing between them: the two need the same bytes for the same quality score. The difference is that Smol does a whole folder at once and Squoosh does one image at a time. For AVIF, Smol's files were 15.2% smaller than Squoosh's default AVIF at the same SSIMULACRA2 score, and 4.4% larger at the same SSIM.

How much smaller is AVIF than JPEG at the same quality?

In this test, 22 to 26% smaller: Smol's AVIF against the best JPEG output we measured, at SSIMULACRA2 scores of 70, 75 and 80, summed over 24 images.

Is Smol faster than sips?

No. Converting the 24 test images took Smol about 7.3 seconds, a sips shell loop 0.6 seconds and caesiumclt 0.2 seconds on the same M2 Pro.

AVIF vs WebP vs JPEG: which gives the smallest file at the same quality?

AVIF. At SSIMULACRA2 scores of 70, 75 and 80, Smol's AVIF was 21 to 24% smaller than Smol's WebP and 22 to 26% smaller than its JPEG. WebP against JPEG was close, from 3% larger to 6% smaller depending on the score. Totals are for 24 Kodak images.

What is the best AVIF encoder?

Of the three we measured, Smol's was smallest by SSIMULACRA2: 15 to 21% fewer bytes than Apple's sips and 15.2% fewer than Squoosh's default. By SSIM the result flips against Squoosh, whose files were 4.2% smaller, and the Apple gap shrinks to 2%. Pick the metric you trust.

ImageOptim vs Squoosh: which compresses better?

We did not run them against each other. Each was measured against Smol. Squoosh's JPEG and WebP need the same bytes as Smol's. ImageOptim's lossy JPEG is level with Smol's JPEG, but it writes neither AVIF nor WebP. Squoosh writes AVIF but handles one image at a time, and ImageOptim handles a folder.