Core Image

Core Image
Mac OS X graphics model
Core Image
Rendering
QuickDraw • Core OpenGL
Quartz 2D • Core Image
Core Animation • Core Video
ColorSync • QuickTime
Compositing
Quartz Compositor

This box: view · talk · edit

Core Image is a pixel-accurate, near-realtime, non-destructive image processing technology in Mac OS X. Implemented as part of the QuartzCore framework of Mac OS X 10.4 and later, Core Image provides a plugin-based architecture for applying filters and effects within the Quartz graphics rendering layer.[1]

Contents

Overview

Core Image abstracts the pixel-level manipulation process required when applying a filter to an image, making it simple for applications to implement image transformation capabilities without extensive coding. In a simple implementation, Core Image applies a single Image Filter to the pixel data of a given source to produce the transformed image. Each Image Filter specifies a single transform or effect, either built into Core Image or loaded from a plugin called an Image Unit. Combined with preset or user-defined input parameters, the filter can be applied to the original pixel data without modifying it, thereby providing non-destructive image editing.[2][3]

Like Photoshop, Core Image can apply multiple filters to the same image source. Instead of applying a series of filters individually, Core Image assembles a dynamic instruction pipeline so that only one calculation needs to be applied to the pixel data to achieve a cumulative effect. Applying the pixel operations associated with multiple filters can be achieved simultaneously and without a significant increase in processing time. Regardless of the number of filters, Core Image assembles the code for this instruction pipeline with a just-in-time compiler, which is executed by either the CPU or graphics card's GPU, whichever can perform the calculation faster.[4]

Filters are written in the Core Image Kernel Language, which shares a subset of commands with OpenGL Shading Language (GLSL).[5] When a compatible GPU is available, the Core Image compiler writes the instruction pipeline using GLSL, handling buffers and states transparently. Although GPU rendering is preferred[citation needed], the compiler can operate in a CPU fallback mode, generating commands suitable for the current CPU architecture instead.[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]

History & Implementation

Core Image was introduced with Mac OS X 10.4.[8] Early examples of its use can be found in the ripple effect in Dashboard, and Apple's professional digital photography application, Aperture.[9] Starting with Mac OS X 10.5, any application that implements Image Kit can utilize Core Image.[10] Preview and iPhoto are common examples.

The Xcode Tools include Core Image Fun House and Quartz Composer; both utilize Core Image.

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.[11][12]

Supported Graphics Processors

Any programmable GPU that supports the required Open GL Shader (GLSL) commands is Core Image capable. Apple has used the following graphics cards to support Core Image GPU processing in Mac OS X 10.4 and Aperture, so the following list could be considered an example of minimum requirements:[13][14]

  • ATI Mobility Radeon 9700 (Mobility Radeon 9600 is also capable)
  • 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
  • ATI Radeon HD 2400 XT, HD 2600 Pro, and HD 2600 XT
  • NVIDIA GeForce FX 5200 Ultra, FX Go 5200
  • NVIDIA GeForce 6600, 6600 LE, 6800 Ultra DDL, and 6800 GT DDL
  • NVIDIA GeForce 7300 GT, 7600 GT, and 7800 GT
  • NVIDIA GeForce 8600M GT & 8800 GT
  • NVIDIA GeForce 9400M & 9600M GT
  • NVIDIA GeForce GT 120 & GT 130
  • NVIDIA GeForce GTX 285
  • NVIDIA Quadro FX 4500 & FX 5600
  • NVIDIA Quadro FX 4800
  • NVIDIA Quadro 4000
  • NVIDIA GeForce 320M
  • NVIDIA GeForce GT 330M
  • Intel GMA 900, GMA 950, or GMA X3100

Note that 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.[15]

Built-in Filters

Wikipedia Logo with "Color Monochrome", "Parallelogram Tile", and "Pinch Distortion" Image Units applied

Mac OS X includes many built-in filters, including the following ones. Mac OS X 10.4 introduced over 100 of them, and Mac OS X 10.5 has added to the list.[16][17]

  • Blurs, like Median, Gaussian, Motion, and Noise
  • Color Adjustments & Effects, like Exposure, Gamma Adjust, and Sepia Tone
  • Composition Operations, like Addition and Multiply Blends, or Hard Light
  • Distortions, like Pinch, Circle Splash, and Vortex
  • Generators, like Star Shine and Lenticular Halo
  • Geometry Adjustments, such as Crop, Scale, Rotate, and Affine transformation
  • Halftone, Tile, and Posterize filters
  • Transitions, such as Dissolve and Ripple

See also

References

  1. ^ "Mac Dev Center - Introduction to Core Image Programming Guide". http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_intro/ci_intro.html. Retrieved 2009-09-20. 
  2. ^ "Apple - Developer - Developing with Core Image". http://developer.apple.com/macosx/coreimage.html. Retrieved 2009-09-20. 
  3. ^ "Mac Dev Center - Introduction to Core Image Programming Guide - Filter Clients and Filter Creators". http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_concepts/ci_concepts.html#//apple_ref/doc/uid/TP30001185-CH202-BCIHDIEG. Retrieved 2009-09-20. 
  4. ^ "ArsTechnica - Mac OS X 10.4 Tiger - Page 15". http://arstechnica.com/reviews/os/macosx-10-4.ars/15. Retrieved 2009-09-20. 
  5. ^ "Mac Dev Center - Core Image Kernel Language Reference - Introduction". http://developer.apple.com/mac/library/documentation/GraphicsImaging/Reference/CIKernelLangRef/Introduction/Introduction.html. Retrieved 2009-09-20. 
  6. ^ "Mac Dev Center - Core Image Programming Guide - Core Image Concepts - Core Image and the GPU". http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_concepts/ci_concepts.html#//apple_ref/doc/uid/TP30001185-CH202-SW2. Retrieved 2009-09-20. 
  7. ^ "ArsTechnica - Mac OS X 10.4 Tiger - Page 15". http://arstechnica.com/reviews/os/macosx-10-4.ars/15. Retrieved 2007-04-17. 
  8. ^ "Mac Dev Center - Core Image Programming Guide - Core Image Concepts". http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_concepts/ci_concepts.html#//apple_ref/doc/uid/TP30001185-CH202-TPXREF101. Retrieved 2009-09-20. 
  9. ^ "Apple - Aperture - Tech Specs". http://www.apple.com/aperture/specs/. Retrieved 2009-09-20. 
  10. ^ "Mac Dev Center - Image Kit Programming Guide - Introduction to Image Kit Programming Guide". http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/ImageKitProgrammingGuide/Introduction/Introduction.html. Retrieved 2009-09-20. 
  11. ^ "Apple - Developer - Developing with Core Image". http://developer.apple.com/macosx/coreimage.html. Retrieved 2009-09-20. 
  12. ^ "Mac Dev Center - Core Image Programming Guide - Core Image Concepts - Color Components and Premultiplied Alpha". http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_concepts/ci_concepts.html#//apple_ref/doc/uid/TP30001185-CH202-BCIDAIEJ. Retrieved 2009-09-20. 
  13. ^ "Mac OS X 10.4 - Requirements for Quartz Extreme and Core Image Graphics". http://support.apple.com/kb/HT1582. Retrieved 2009-09-20. 
  14. ^ "Apple - Aperture - Tech Specs". http://www.apple.com/aperture/specs/. Retrieved 2009-09-20. 
  15. ^ "Mac OS X 10.4 - Requirements for Quartz Extreme and Core Image Graphics". http://support.apple.com/kb/HT1582. Retrieved 2009-09-20. 
  16. ^ "Mac Dev Center - Core Image Filter Reference". http://developer.apple.com/mac/library/documentation/GraphicsImaging/Reference/CoreImageFilterReference/Reference/reference.html. Retrieved 2009-09-20. 
  17. ^ "Apple - Developer - Developing with Core Image". http://developer.apple.com/macosx/coreimage.html. Retrieved 2009-09-20. 

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Core Image — est une interface de programmation précise et non destructive dédiée au traitement et à l affichage dans Mac OS X. Faisant partie du framework QuartzCore, il étend les capacités d affichage de Quartz avec son architecture à base de plugiciels… …   Wikipédia en Français

  • Core image — Architecture Graphique de Mac OS X Affichage QuickDraw • Core OpenGL • Quartz 2D Core Image • Core Animation • Core Video ColorSync • QuickTime Composition …   Wikipédia en Français

  • Core Image — ist eine Bildverarbeitungs API in Mac OS X. Als ein Bestandteil der QuartzCore Bibliothek, erweitert es die Darstellungsfunktionen von Quartz mit einer Plugin basierten Architektur für Filter und Effekte. Inhaltsverzeichnis 1 Überblick 2… …   Deutsch Wikipedia

  • Core Animation — (Графическая модель Mac OS X) Тип System Utility Разработчик Apple Inc. Операционная система Mac OS X Лицензия Проприетарн …   Википедия

  • Core Data — Developer(s) Apple Inc. Stable release 3.2.0 Operating syst …   Wikipedia

  • Core Audio — Developer(s) Apple Inc. Stable release 3.2.6 Operating system Mac OS X, iOS …   Wikipedia

  • Core Foundation — (also called CF) is a C application programming interface (API) in Mac OS X iOS, and is a mix of low level routines and wrapper functions. Apple releases most of it as an open source project called CFLite that can be used to write cross platform… …   Wikipedia

  • Core Video — est le composant de traitement vidéo utilisé par QuickTime dans Mac OS X pour s interfacer avec les couches de rendu et de composition dans son architecture graphique. Il fournit les images issues de QuickTime et des autres sources aux autres… …   Wikipédia en Français

  • Core Animation — est une interface de programmation de visualisation de données utilisée par Mac OS X v10.5 et l iPhone pour produire des interfaces utilisateurs animées[1]. Sommaire 1 Détails 2 Histoire …   Wikipédia en Français

  • Core Text — is a Core Foundation style API in Mac OS X, first introduced in Mac OS X 10.4 Tiger, made public in Mac OS X 10.5 Leopard, and introduced for the iPad with iPhone SDK 3.2. Exposing a C API, it replaces the text rendering abilities of the now… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”