Core Image
From Wikipedia, the free encyclopedia
| Mac OS X graphics model | |
| Rendering | |
| QuickDraw • Core OpenGL • Quartz 2D • Core Image Core Animation • Core Video • ColorSync • QuickTime |
|
| Compositing | |
Core Image is a pixel-accurate, non-destructive image processing and rendering framework for Mac OS X. As part of the QuartzCore framework, it extends the rendering capabilities of Quartz with its plugin-based architecture for applying filters and effects. [1][2]
Contents |
[edit] Overview
Core Image is designed to abstract the pixel-level image manipulation process, making it available to applications without requiring the addition of hardware-specific code. Core Image works by applying an Image Unit to the pixel data of a given image, resulting in the creation of a new image. Each image unit specifies a filter, transform, or other effect which can be applied to the original pixel data without modifying the original data. In this way, Image Units provide non-destructive image editing.[3]
Like Photoshop filters, one Image Unit can be applied in conjunction with others. Core Image can assemble an instruction pipeline on the fly so that only one calculation needs to be applied to the pixel data to achieve the effect of applying multiple units. The result is that multiple Image Units can be applied to an image without requiring a significant increase in processing time. Core Image utilizes a just-in-time compiler for creating the code which performs the pixel operations associated with one or more Image Units. The code is then executed by either the CPU or graphics card's GPU, whichever can perform the calculation faster.[4]
When a compatible GPU is available, the Core Image compiler generates commands using a subset of the OpenGL Shading Language (GLSL).[5] If the GPU supports the shading language, it will be the preferred renderer for Core Image. If such a GPU is not present, the compiler will work in CPU fallback mode, generating commands suitable for the current CPU architecture.[6] CPU fallback utilizes the vector processing capabilities of the current CPU or CPUs, and it is multi-processor aware. Thus, Core Image performance depends on the GLSL capabilities of the GPU or the processing power of the CPU. With a supported GPU, most effects can be rendered in realtime or near-realtime.[7]
[edit] History
Mac OS X v10.4 introduced Core Image.[8] Both the Core Image Fun House and Quartz Composer applications, included with the Xcode 2.0 Tools, utilize it. The ripple effect in Dashboard also uses a Core Image filter. Aperture is an example of an application that relies almost exclusively on Core Image.[9]
[edit] Pixel Accuracy
All pixel processing provided by an Image Unit is performed in a pre-multiplied alpha (RGBA) color space, storing four color channels: red, green, blue, and transparency (alpha). Each color channel is represented by a 32-bit, floating point number. This provides exceptional color depth, far greater than can be perceived by the human eye, as each pixel is represented by a 128-bit vector (four 32-bit color channels). For color spaces of lower bit-depth, the floating-point calculation model employed by Core Image provides exceptional performance, which is useful when processing multiple images or video frames.[10][11]
[edit] Supported Graphics Processors
Any programmable GPU that supports the required Open GL Shader (GLSL) commands is capable of rendering Core Image instructions. Apple has used the following graphics cards to support Core Image GPU processing[12][13]:
- ATI Mobility Radeon 9600, 9700, or X1600
- ATI Radeon 9550, 9600, 9650, 9600 XT, 9600 Pro, 9700 Pro, 9800 XT, and 9800 Pro
- ATI Radeon X600 XT, X600 Pro, X800 XT, X850 XT, X1600, X1900 XT
- NVIDIA GeForce FX 5200 Ultra, 6600, 6600 LE, 6800 Ultra DDL, and 6800 GT DDL
- NVIDIA GeForce 7300 GT, 7600 GT, and 7800 GT
- NVIDIA Quadro FX 4500
- Intel GMA 950.
- Intel GMA X3100
Any GPU capable of handling Core Image instructions is also Quartz Extreme capable. The requirements for Core Image are greater than those of Quartz Extreme.[14]
[edit] Image Units
Mac OS X 10.4 includes 100 standard Image Units, including the following[15]:
- Median, Gaussian, Motion and Zoom blurs
- Noise Reduction
- Color adjustment: Exposure, gamma, hue, and white point
- Distortions: Pinch, hole, displacement, glass, torus Lens, twirl, vortex, circle splash and circular warp
- Generators: Star shine, sunbeams, checkerboard and lenticular halo
- Color blends: burn, darken, difference, exclusion, hard light, hue, lighten, luminosity, multiply, overlay, saturation, screen, soft light
- Geometry: Crop, scale, rotation, Affine transformation
- Halftone, tile, and style filters
- Transitions: Swipe, flash, page curl, copy machine, disintegrate, and dissolve
[edit] References
- ^ Apple - Mac OS X - Core Image. Retrieved on 2007-03-09.
- ^ Apple - Developer - Core Image Programming Guide - Core Image and the GPU. Retrieved on 2007-04-17.
- ^ Apple - Developer - Developing with Core Image. Retrieved on 2007-03-09.
- ^ ArsTechnica - Mac OS X 10.4 Tiger - Page 15. Retrieved on 2007-03-09.
- ^ Apple - Developer - Core Image Kernel Language Reference - Introduction. Retrieved on 2007-04-17.
- ^ Apple - Developer - Core Image Programming Guide - Core Image and the GPU. Retrieved on 2007-04-17.
- ^ ArsTechnica - Mac OS X 10.4 Tiger - Page 15. Retrieved on 2007-04-17.
- ^ Apple - Mac OS X - Core Image. Retrieved on 2007-04-18.
- ^ Apple - Aperture - Product Overview. Retrieved on 2007-04-18.
- ^ Apple - Developer - Developing with Core Image. Retrieved on 2007-03-09.
- ^ Apple - Developer - Core Image Programming Guide - Color Components and Premultiplied Alpha. Retrieved on 2007-03-09.
- ^ Apple - Mac OS X 10.4 - Requirements for Quartz Extreme and Core Image Graphics. Retrieved on 2007-04-18.
- ^ Apple - Aperture - Tech Specs. Retrieved on 2007-04-18.
- ^ Apple - Mac OS X 10.4 - Requirements for Quartz Extreme and Core Image Graphics. Retrieved on 2007-04-18.
- ^ Apple - Mac OS X - Core Image. Retrieved on 2007-04-18.
[edit] See also
- Aperture
- Core Image Fun House
- Quartz Composer
- NodeBox
- Naked light
- Pixelmator
- ChocoFlop
- LiveQuartz
- Acorn
- Iris
[edit] Other image processing frameworks
[edit] External links
- Core Image overview on Apple's web site
- Core Image kernels: Some examples for beginners
|
|||||

