Perfectly Clear SDK Documentation  9.1.1.325
Requirements & Limitations

Color Management

The Perfectly Clear corrections assume that the image data is in the sRGB color space. For best image quality, be certain to convert any images in other spaces to sRGB before processing with this SDK. Images in Adobe RGB or ProPhoto or other wide-gamut color spaces can appear overly red and overly dark once corrected with Perfectly Clear. The PFCImageFile class can assist in this colorspace conversion.

Red Eye Correction

Our red-eye correction technology leads the industry in its speed and accuracy. It automatically detects eyes, determines if "red-eye" is present, and applied a very natural image correction to remove this unsightly camera artifact. As a fully-automatic correction, it can mis-identify red-eyes occasionally. One method to lower the frequency of this is for you to only enable Red-Eye corrections on images where a flash was used - as determined by the EXIF Flash tag.

Image Size Limits

  • Images smaller than 32 pixels on their smaller side will not be processed.
  • Images with an aspect ratio larger than 21:1 will be processed with limited corrections. Face Aware Exposure, Beautify, and RedEye corrections will be disabled.

Image Content & Format

  • Images must be in a RGB format to be processed by this SDK. CMYK and single-channel, monochrome images are not supported
  • "Clipart" and other non-photographic images are skipped and will not be processed. When using PFC_Calc(), you may choose to override this behavior by disableing the Clipart detection using the iRejectOption function argument.

System Requirements

  • 64-bit Operating Systems are now required on all non-mobile platforms. Win32 is provided, but speed optimization and support on older OS versions is not provided.
  • The minimum Mac OSX version is 10.6 (Snow Leopard).
  • The minimum Android version is v15 (v4.0.3 - Ice Cream Sandwich) for arm64-v8a and x86_64 architectures.

AVX Instruction Set Optimization

This SDK has been optimized for the "AVX" instruction set. This is supported on the majority of desktop computers made since about 2012. However, our sample code in all desktop platforms defaults to using the NON-OPTIMIZED DLL's, in order to ensure the broadest hardware support. If you are certain your usage will only be on newer computers that include AVX support, then you can safely use the libraries with the "AVX" label in their filename. This can provide up to a 50% performance increase.

Prerequisites

The Windows SDK has the following prerequisites:

  • vcruntime140.dll must be present and in the library search path. This is only required for the license protected SDK.

The Linux SDK has the following prerequisites:

  • liburl (v3 or v4 libraries are supported)
  • standard development tools like gcc, make

Not all of these will be needed in every use case, but to ensure the broadest capability, we recommend installing the development packages for each of these, with a command similar to:

Most Ubuntu versions and Debian 9 and older

sudo apt-get install --no-install-recommends libcurl3 build-essential

Debian 10 and newer

sudo apt-get install --no-install-recommends libcurl4 build-essential

NOTE: if your distro doesn't provide libcurl3, then install libcurl4. We provide 2 'libPFCAppTrack' libraries - to use the one that supports libcurl4, rename libPFCAppTrack4.so to libPFCAppTrack.so

Red Hat-based distros

sudo yum -y install gcc gcc-c++ make libcurl

Reduced Resolution Images in Calc

  • The PFC_Calc and PFC_AutoCorrect functions accept two images as the first two arguments; a full-sized image and a reduced resolution image. The full resolution image is required to run Calc for Noise Removal and Beautify; omitting this parameter will disable Noise and Beautify corrections.
  • Perfectly Clear Core and Red-eye corrections can run on a reduced resolution image, speeding the Calc processing time without compromising quality. The image should be no smaller than 1024 px on the longer edge, and ideally should be the larger of one-third of the original image or 1024 px (one the longer edge). If a reduced resolution image is not passed into the Calc function, the PFC library will create this for you, using the down-scaling mentioned above.
  • New in v8: Face Aware Exposure also performs a "Calc" phase, and this can run on a larger or smaller size image. A larger image (the default) will take longer to process, but can produce slightly more accurate auto-exposure corrections. A smaller image is significantly faster, but can miss locating faces in some images. We estimate this difference at about 1% to 2%. You may control which method is used by the FastFAE parameter for AutoCorrect or the FEATURE enum in PFC_Calc.