Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Core Image
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== 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.<ref name="developer.apple.com">{{cite web | title=Apple - Developer - Developing with Core Image | url=https://developer.apple.com/macosx/coreimage.html | access-date=September 20, 2009 | archive-date=October 6, 2009 | archive-url=https://web.archive.org/web/20091006120044/http://developer.apple.com/macosx/coreimage.html}}</ref><ref>{{cite web | title=Mac Dev Center - Introduction to Core Image Programming Guide - Filter Clients and Filter Creators| url=https://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_concepts/ci_concepts.html#//apple_ref/doc/uid/TP30001185-CH202-BCIHDIEG | access-date=September 20, 2009}}</ref> 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 compilation|just-in-time compiler]], which is executed by either the CPU or graphics card's GPU, whichever can perform the calculation faster.<ref>{{cite web | title=ArsTechnica - Mac OS X 10.4 Tiger - Page 15 | date=April 28, 2005 | url=https://arstechnica.com/reviews/os/macosx-10-4.ars/15 | access-date=September 20, 2009}}</ref> Filters are written in the ''Core Image Kernel Language'', which shares a subset of commands with [[OpenGL Shading Language| OpenGL Shading Language (GLSL)]].<ref>{{cite web | title=Mac Dev Center - Core Image Kernel Language Reference - Introduction | url=https://developer.apple.com/mac/library/documentation/GraphicsImaging/Reference/CIKernelLangRef/Introduction/Introduction.html | access-date=September 20, 2009}}</ref> 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|reason=False to the best of my knowledge, GPU isn't accurate enough so some calculations always go to the CPU|date=June 2010}}, the compiler can operate in a ''CPU fallback'' mode, generating commands suitable for the current CPU architecture instead.<ref>{{cite web | title=Mac Dev Center - Core Image Programming Guide - Core Image Concepts - Core Image and the GPU | url=https://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_concepts/ci_concepts.html#//apple_ref/doc/uid/TP30001185-CH202-SW2 | access-date=September 20, 2009}}</ref> 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.<ref>{{cite web | title=ArsTechnica - Mac OS X 10.4 Tiger - Page 15 | date=April 28, 2005 | url=https://arstechnica.com/reviews/os/macosx-10-4.ars/15 | access-date=April 17, 2007}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)