Getting the Best Performance

On both iOS and OS X, Core Image provides many options for creating images, contexts, and rendering content. How you choose to accomplish a task depends on:

You should read over the performance best practices to ensure your app runs as efficiently as possible.

Performance Best Practices

Follow these practices for best performance:

Does Your App Need Color Management?

By default, Core Image applies all filters in light-linear color space. This provides the most accurate and consistent results.

The conversion to and from sRGB adds to filter complexity, and requires Core Image to apply these equations:

rgb = mix(rgb.0.0774, pow(rgb*0.9479 + 0.05213, 2.4), step(0.04045, rgb))
rgb = mix(rgb12.92, pow(rgb*0.4167) * 1.055 - 0.055, step(0.00313, rgb))

Consider disabling color management if:

To disable color management, set the kCIImageColorSpace key to null. If you are using an EAGL context, also set the context colorspace to null when you create the EAGL context. See “Creating a Core Image Context on iOS When You Need Real-Time Performance.”