638.imagick_s
SPEC CPU2017 Benchmark Description

Benchmark Name

638.imagick_s

Benchmark Authors

ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.

Benchmark Program General Category

Image Manipulation.

Benchmark Description

ImageMagick is a software suite to create, edit, compose, or convert bitmap images. The SPEC CPU2017 benchmark version uses the convert component of ImageMagick to perform various transforms on input images.

Input Description

Inputs to the benchmark are an image and a list of operations to perform on that image. The image output from the convert step is used as input to an image comparison program that calculates structural similarity (SSIM) values relative to a "reference" output image.

Reference Inputs

Both the rate mode reference workload (refrate) and the speed mode reference workload (refspeed) operate on a 2068x1380 pixel uncompressed 24-bit TARGA format image cropped from a photo.

The refrate workload performs the following operations in the following order on the input image:

  1. -edge 41 (edge detection)
  2. -resample 181% (increase image size to 3469x5199)
  3. -emboss 31 (highlighting detected edges)
  4. -colorspace YUV (conversion to YUV color space)
  5. -mean-shift 19x19+15% (perturbation of the colors in the image)

Output from this step is a 3469x5199 24-bit TARGA image.

The refspeed workload performs the following operations in the following order on the input image:

  1. -resize 817% (increase image size to 11275x16896)
  2. -rotate -2.76 (deskew the image)
  3. -shave 540x375 (crop to middle 10195x16146 of image)
  4. -alpha remove (discard internal alpha channel data)
  5. -auto-level (normalize colors)
  6. -contrast-stretch 1x1% (increase contrast)
  7. -colorspace Lab -channel R -equalize +channel +channel (equalize contrast in Lab color space)
  8. -colorspace sRGB (convert to sRGB colorspace)
  9. -define histogram:unique-colors=false (speed up histogram-based operations)
  10. -adaptive-blur 0x5 (smooth the image)
  11. -despeckle (remove speckles left after smoothing)
  12. -auto-gamma (adjust the image gamma so that the mean color is at 50% intensity)
  13. -adaptive-sharpen 55 (sharpen the image)
  14. -enhance (filter noise from image)
  15. -brightness-contrast 10x10 (adjust brightness and contrast by around 10%)
  16. -resize 30% (shrink the image to 3299x5002 for output)

Output from this step is a 3299x5002 24-bit TARGA image.

Training Inputs

The input image for the feedback training workload (train) is a 10x10 pixel uncompressed 24-bit TARGA format image of a blue dot.

The train workload performs the following operations in the following order on the input image:

  1. -resize 320x240
  2. -shear 31 (shear the image horizontally by 31 degrees)
  3. -edge 140 (edge detection)
  4. -negate (replace each color with its complement)
  5. -flop (mirror the image)
  6. -resize 900x900
  7. -edge 10 (edge detection)

Output from this step is a 900x900 24-bit TARGA image.

Test Inputs

The input image for the test workload is a 10x10 pixel uncompressed 24-bit TARGA format image of a blue dot.

The test workload performs the following operations in the following order on the input image:

  1. -shear 25 (shear the image horizontally by 25 degrees)
  2. -resize 640x480
  3. -negate (replace each color with its complement)
  4. -alpha Off (disable alpha channel)

Output from this step is a 640x480 24-bit TARGA image.

Output Description

The output is compared using the SPEC utility imagevalidate, which calculates the Structural SIMilarity (SSIM) index over 8x8 pixel areas between the benchmark-produced image and a SPEC-provided expected image. SSIM indexes range from -1 (maximally different) to 1 (identical) for each of those regions.

If the images are too different, the image comparison program will issue an error. This is accomplished by specifying a threshold SSIM value, and if more than 0.1% of samples go below the threshold, the comparison is stopped and the benchmark does not pass validation. For test, train, and refrate the threshold SSIM value is 0.95; for refspeed it is 0.90. The refspeed threshold is lower because the image it operates on is much larger and individual differences, even when quite extreme, are very difficult to actually see.

In all cases, the expected output from imagevalidate is

  <filename>: AVG SSIM = 1.000000000
  

which is then checked by specdiff to verify that the overall average of SSIM values is at least 0.99.

Programming Language

ANSI C

Known portability issues

None.

Sources and Licensing

The benchmark is based on ImageMagick 6.8.9-1, under the ImageMagick License.

Please see details in the document SPEC CPU2017 Licenses.

References

Last updated: $Date: 2017-05-01 13:34:29 -0400 (Mon, 01 May 2017) $