-
-
Save karthik20522/7605301 to your computer and use it in GitHub Desktop.
Gettyimage tech blog
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
For a company such as GettyImages with a complex image workflows involving ingestion of images, | |
preprocessing of images, generating asset packs of various image sizes and finally distributing | |
those images to 1000's of customers each expecting image sizes of various dimensions all in a | |
matter of seconds if not minutes; having an extremely fast and reliable image processing system | |
is critical to its business. While there are countless image processing tools and frameworks out | |
there that can be used for image processing, following benchmark is to determine the fastest resizer tool. | |
For this benchmark the following most widely used image processing libraries were considered. | |
Please note that resizing is one of the most widely performed operation while distributing images | |
to customers at Gettyimages, hence the following benchmark is based on image resizing. | |
- imagemagick [http://www.imagemagick.org/script/index.php] | |
- graphicsmagick [http://www.graphicsmagick.org/] | |
- epeg [https://github.com/mattes/epeg] | |
- opencv [http://opencv.org/] | |
- vips | |
Test environment: | |
Memory: 5.8 GB | |
Processor: Intel Xeon CPU W3530 @ 2.80Ghz x 4 Core | |
OS: Ubuntu 13.04 / 64 bit | |
Graphics: Gallium 0.4 on AMD Redwood | |
Original Image - 350KB - 3168x3168 pixels | Resized to 640x480 | |
imagemagick x 3.69 ops/sec ±2.27% (23 runs sampled) | |
gm x 5.03 ops/sec ±0.68% (29 runs sampled) | |
opencv x 19.18 ops/sec ±1.27% (49 runs sampled) | |
epeg x 35.49 ops/sec ±1.16% (60 runs sampled) | |
vips x 40.62 ops/sec ±5.01% (69 runs sampled) | |
Original Image - 1 MB - 3000x2000 | Resized to 640x480 | |
imagemagick x 4.97 ops/sec ±2.35% (29 runs sampled) | |
gm x 5.00 ops/sec ±0.54% (29 runs sampled) | |
opencv x 15.15 ops/sec ±1.36% (41 runs sampled) | |
epeg x 27.47 ops/sec ±0.98% (69 runs sampled) | |
vips x 36.26 ops/sec ±6.05% (89 runs sampled) | |
Original Image - 15MB - 5382x6254 pixels | Resized to 640x480 | |
imagemagick x 0.87 ops/sec ±1.20% (9 runs sampled) | |
gm x 0.87 ops/sec ±0.66% (9 runs sampled) | |
vips x 1.74 ops/sec ±0.43% (13 runs sampled) | |
opencv x 1.88 ops/sec ±4.09% (9 runs sampled) | |
epeg x 3.87 ops/sec ±0.78% (14 runs sampled) | |
From the above results, VIPS seems to be the fastest among all followed by epeg and opencv. | |
But one thing to consider is the features provided vs performance. Libraries such as VIPS | |
and EPEG are more optimized towards image resizing and image cropping while opencv, | |
graphicsmagick and imagemagick provides a slew of image processing and analysis features. | |
Code snippet for benchmarking: https://gist.github.com/karthik20522/7605083 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment