Link
Skip to main content

JDeli performance comparison

Below are all the performances comparisons we have done so far (as of 6th May 2026). We will regularly update and add new results.

How we tested

The speed figures were generated using jmh (as documented on our blog) with a standard set of images (also documented), and the quality tests for writing was determined testing SSIM(Structural Similarity Index). They should be easy to replicate if you wish to validate, the code is on GitHub.

Your figures may vary depending on system but the overall results should be comparable.


BMP

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 104.348 ± 4.024
ImageIO 624.638 ± 5.603
ImageIO/TwelveMonkeys 168.498 ± 1.825
JDeli 125.451 ± 1.465

See BMP reader

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 9.981 ± 0.317
ImageIO 5.692 ± 0.126
ImageIO/TwelveMonkeys 14.833 ± 0.744
JDeli 17.223 ± 0.064
ICafe 34.600 ± 0.969

Number of files: 166

Benchmark AVG Size unreadable output AVG SSIM score AVG Similarity
Apache 29.35KB 0 1.0 Identical or virtually identical
ImageIO 35.62KB 30 0.561341 Low similarity (significant differences)
ImageIO/TwelveMonkeys 0.68KB 83 0.233765 Very different
JDeli 29.77KB 0 0.978171 Very similar (high quality)
ICafe 30.77KB 0 0.968417 Very similar (high quality)

See BMP writer


GIF

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 4.380 ± 0.011
ImageIO 1.652 ± 0.011
JDeli 5.357 ± 0.140

See GIF reader

Writing

Benchmark Score Error
Apache 1.705 ± 0.251
ImageIO 4.713 ± 0.025
JDeli 0.538 ± 0.003

Number of files: 166

Benchmark AVG Size unreadable output AVG SSIM score AVG Similarity
Apache 3.554KB 0 0.8492693486300651 Moderately similar (visible differences)
ICafe 2.691KB 0 0.9113843372930903 Similar (noticeable but minor differences)
ImageIO 2.494KB 4 0.8834616780939093 Similar (noticeable but minor differences)
JDeli 4.349KB 0 0.9334679980045937 Similar (noticeable but minor differences)

See GIF writer


HEIC

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error Failed To read
Openize 0.040 ± 0.001 1 out of 11
JDeli 0.161 ± 0.003 0 out of 11

See HEIC reader


JPEG

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
ImageIO 0.143 ± 0.001
JDeli 0.162 ± 0.001
ICafe 0.198 ± 0.001

See JPEG reader

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
ImageIO 13.090 ± 0.046
ImageIO_high 9.844 ± 0.044
ImageIO_low 13.276 ± 0.147
JDeli 26.899 ± 0.237
JDeli_high 15.479 ± 0.125
JDeli_low 28.729 ± 0.260
ICafe 12.998 ± 0.522

Number of files: 166

Benchmark AVG Size unreadable output AVG SSIM score AVG Similarity
ImageIO 1.547KB 36 0.9848556782742076 Very similar (high quality)
ImageIO_high 7.097KB 36 0.9956989675945417 Identical or virtually identical
ImageIO_low 0.849KB 36 0.7523266496966906 Moderately similar (visible differences)
JDeli 1.397KB 0 0.9379582984498058 Very similar (high quality)
JDeli_high 8.945KB 0 0.9538428669497789 Very similar (high quality)
JDeli_low 0.796KB 0 0.7083322490195157 Moderately similar (visible differences)
ICafe 5.388KB 0 0.9394471069552716 Similar (noticeable but minor differences)

See JPEG writer


JPEG2000

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
ImageIO/JAI 48.971 ± 0.098
JDeli 123.793 ± 0.135

See JPEG2000 reader

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
ImageIO/JAI 2.306 ± 0.007
JDeli_JP2 6.226 ± 0.023
JDeli_JPX 6.228 ± 0.020

Number of files: 166

Benchmark Size unreadable output AVG SSIM score AVG Similarity
ImageIO/JAI 1,419.60KB 0 0.9659635878077559 Very similar (high quality)
JDeli JP2 288.66KB 0 0.8817187006016771 Similar (noticeable but minor differences)
JDeli JPX 277.31KB 0 0.8817187006016771 Similar (noticeable but minor differences)

See JPEG2000 writer


JPEG XL

Reading

See JPEG XL reader


PNG

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 1151.556 ± 12.405
ImageIO 296.915 ± 12.564
JDeli 2160.496 ± 43.874
ICafe 184.446 ± 0.917

See PNG reader

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 5.100 ± 0.018
ImageIO 4.845 ± 0.034
ImageIO_fast 5.529 ± 0.115
ImageIO_max_comp 3.512 ± 0.008
JDeli 5.383 ± 0.033
JDeli_quantised 1.192 ± 0.001
JDeli_fast 13.061 ± 0.026
JDeli_compressed 5.402 ± 0.027
JDeli_uncompressed 12.985 ± 0.088

Number of files: 166

Benchmark Size unreadable output AVG SSIM score AVG Similarity
Apache 16.129KB 0 0.9437771308658404 Similar (noticeable but minor differences)
ICafe 10.731KB 0 0.9397287642484 Similar (noticeable but minor differences)
ImageIO_fast 16.926KB 0 1.0 Identical or virtually identical
ImageIO_max_comp 16.174KB 0 1.0 Identical or virtually identical
JDeli_compressed 16.172KB 0 1.0 Identical or virtually identical
JDeli_fast 16.924KB 0 1.0 Identical or virtually identical
JDeli_quantised 3.170KB 0 0.9588066625523578 Very similar (high quality)
JDeli_uncompressed 16.924KB 0 1.0 Identical or virtually identical

See PNG writer


TIFF

Reading

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 85.484 ± 1.042
ICafe 53.449 ± 0.256
ImageIO/JAI 202.655 ± 10.778
ImageIO/TwelveMonkeys 136.411 ± 2.603
JDeli 95.312 ± 4.090

See TIFF reader

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
Apache 4.129 ± 0.077
ICafe 6.276 ± 0.108
ImageIO/JAI_Deflate 5.573 ± 0.797
ImageIO/TwelveMonkeys_Deflate 6.672 ± 0.368
ImageIO/JAI_JPEG 7.313 ± 0.337
ImageIO/TwelveMonkeys_JPEG 6.984 ± 0.347
ImageIO/JAI_LZW 4.957 ± 0.291
ImageIO/TwelveMonkeys_LZW 5.067 ± 0.178
JDeli_better_comp 5.361 ± 0.105
JDeli_better_speed 12.906 ± 0.125
JDeli_deflate 6.290 ± 0.034
JDeli_jpeg 26.629 ± 0.425
JDeli_LZW 9.393 ± 0.039

Number of files: 166

Benchmark Size unreadable output AVG SSIM score AVG Similarity
Apache 11.243KB 0 0.9662085194307032 Very similar (high quality)
ICafe 11.243KB 0 0.9397287642483998 Similar (noticeable but minor differences)
ImageIO/JAI_deflate 12.038KB 0 1.0 Identical or virtually identical
ImageIO/TwelveMonkeys_Deflate 11.924KB 0 1.0 Identical or virtually identical
ImageIO/JAI_jpeg 5.325KB 0 0.9964492586342384 Identical or virtually identical
ImageIO/TwelveMonkeys_jpeg 5.876KB 0 0.9964492586342384 Identical or virtually identical
ImageIO/JAI_lzw 10.870KB 0 0.37968285428198995 Very different
ImageIO/TwelveMonkeys_lzw 10.870KB 0 0.9662085194307032 Very similar (high quality)
JDeli_better_comp 16.354KB 0 1.0 Identical or virtually identical
JDeli_better_speed 17.101KB 0 1.0 Identical or virtually identical
JDeli_deflate 16.359KB 0 1.0 Identical or virtually identical
JDeli_jpeg 1.575KB 0 0.8720826599375827 Similar (noticeable but minor differences)
JDeli_lzw 23.880KB 0 1.0 Identical or virtually identical

See TIFF writer


WEBP

Writing

Mode: Throughput Count: 25 Units: ops/s

Benchmark Score Error
ImageIO/darkxanter_lossy 6.374 ± 0.233
ImageIO/darkxanter_lossless 1.141 ± 0.029
JDeli_lossy 3.640 ± 0.021
JDeli_lossless 4.477 ± 0.110

Number of files: 166

Benchmark Size unreadable output AVG SSIM score AVG Similarity
ImageIO/darkxanter_lossy 0.568KB 28 0.976483 Very similar (high quality)
ImageIO/darkxanter_lossless 8.860KB 28 0.982474 Very similar (high quality)
JDeli lossy 0.534KB 0 0.953926 Very similar (high quality)
JDeli lossless 9.076KB 2 0.968417 Very similar (high quality)

See WEBP writer


Why JDeli?

  • Support image formats such as AVIF, HEIC and JPEG XL that are not supported in Java.
  • Process images up to 3x faster than ImageIO and alternative Java image libraries.
  • Prevent JVM crashes caused by native code in other image libraries such as ImageIO.
  • Handle JPEG, PNG, TIFF image file formats fully in Java.
  • Keep your Image files secure as JDeli makes no calls to any external system or third party library.

Learn more about JDeli

Start Your Free Trial