Perfectly Clear SDK Speed Performance

This FAQ will explain the main factors that affect the performance of Perfectly Clear SDK.

Perfectly Clear SDK Performance Data

 Processing speed is highly dependent on 3 factors:

  1. Image size. Processing time is roughly linear with regards to image size for images over about 3 megapixels: a 10 megapixel image takes roughly half the time as a 20 megapixel image.
  2. Correction parameters used, and image content. Many of the Perfectly Clear corrections are image-content aware. For example, our noise correction will only apply noise correction when both noise correction is enabled and noise is detected in the source image. Thus, turning on the noise correction tool isn’t always a performance cost, but when noise is present in the images, the incremental processing time can be significant. This applies to the Beautify corrections, Red-eye removal, Tint correction, and to a lesser degree to many of the individual PfC core corrections.
  3. Computer specifications – the more RAM, cores, and the more powerful your CPU is, the faster your throughout will be.

Perfectly Clear SDK Performance Data – SDK v8

The SDK data excludes I/O and JPEG compression – as our SDK is typically embedded within applications that are already handing these tasks. Thus, the SDK data is a good indication of the incremental processing required when adding the Perfectly Clear SDK to an existing application or platform.

Testing was run on a modern notebook computer using the Intelligent Auto preset.

The actual performance you can expect will depend on the specs of the computer you use, the image size and content, and the corrections applied.

Processing time varies with image size, but for images over about 4 megapixels in size, the processing time is quite linear.

Image Correction Parameters

The graph to the right shows how processing time is affected by the various correction parameters.

There are three major components of the Perfectly Clear SDK:
1) Common – which includes necessary “overhead” for all images.
2) Core corrections – include exposure, tint, vibrancy, sharpening, contrast, skin tone, skin bias correction, color fidelity and light diffusion.
3) Beautify includes all the skin and eye enhancements and red-eye removal.
4) Noise Removal

Computer Specifications

In order to perform an easily repeatable test, we have run the following tests on an Amazon EC2 Linux c5d.2xlarge instance.  This uses an Intel Xeon 8124M CPU with 8 cores at 3.0 GHz, 16 GB RAM, and uses high performance SSD’s.  At the time of writing this instance costs roughly $0.25 per hour  (with over 20,000 images per hour, that results in $0.0000188 per image).

It is recommended to have 2GB RAM per CPU core.

Data gathered in July, 2019

Keep Reading