| Mac OS X graphics model | |
| Rendering | |
| QuickDraw • Core OpenGL • Quartz 2D • Core Image Core Animation • Core Video • ColorSync • QuickTime |
|
| Compositing | |
|
This box: view • talk • edit
|
|
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 |
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 uses 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 uses 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]
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, uses 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]
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]
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]:
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]
Mac OS X 10.4 includes 100 standard Image Units, including the following[15]:
|
|||||
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History