Q: Perfectly Clear LAB & SDK Speed Performance
Processing speed is highly dependent on 3 factors:
- 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.
- Correction parameters used, and as such also on image content. Many of the PfC corrections are image-content aware. For example, our noise correction will only apply noise correction when a) noise correction is enabled and b) noise is detected in the source image. Thus, turning on Noise 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.
- Computer specifications – the more RAM, cores, and the more powerful your CPU is, the faster your throughout will be.
Data gathered in March, 2016
Perfectly Clear LAB Performance Data
Perfectly Clear LAB data includes file I/O, JPEG de-compression and compression and thus shows the true processing throughput you can expect from Perfectly Clear LAB.
Testing was run using Perfectly Clear LAB v5.2 on an Intel Core i7-3536QM Ivy Bridge processor at 2.4GHz, with 8GB ram running on Windows 7 with a solid-state hard drive. Images were processed using LAB’s “Details” preset.
Assuming 10 megapixel images, using the hardware outlined above, and using our Details preset – you can expect to process 2,500 – 8,500 images /hour per copy of Perfectly Clear LAB.
(This data was collected on a computer with four CPU cores, so the increase from 4 to 8 threads shows lower speed advantage that you would achieve on a system with 8 hardware cores.)
Assuming 10 megapixel images, using the hardware outlined above, and using our Details preset, the chart to the right shows the processing time per megapixel which you can use to estimate your speed requirements.
Processing time per megapixel decreases with the number of threads used. The system we tested with has 4 hardware cores and 4 “hyperthread” cores. As such, a much more dramatic speed gain is achieved on 2, 3, and 4 thread usage. Using more threads than you have hardware cores still achieves additional throughput, but at a diminishing return.
Perfectly Clear SDK Performance Data – SDK v7 (Win/Mac/Linux)
The API 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 an Intel Core i7-3536QM Ivy Bridge processor at 2.4GHz, with 8GB ram running on Windows 7 with a solid-state hard drive. Images were processed using LAB’s “Details” preset.
The amount of images per hour that you can process depends on how you implement our SDK. Using the hardware outlined above, and using our Details preset, the graph to the right shows you what you can expect from a single instance. As our SDK is tread-safe, you can run several instances in parallel on one computer to get faster speeds.
Processing time varies with image size, but for images over 3 to 4 megapixels in size, the processing time is quite linear. On this system, it was about 0.1 seconds per megapixel – with a single instance – see above section.
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