Kernbild

Core Image ist eine genaue, zerstörungsfreie Programmierschnittstelle für die Verarbeitung und Anzeige unter Mac OS X. Als Teil des QuartzCore- Frameworks erweitert es die Anzeigefunktionen von Quartz durch seine Plug- in-basierte Architektur zur Verwaltung von Filtern und anderen Effekten.

Einzelheiten

Core Image wurde entwickelt, um Bildmanipulationen von Software zu abstrahieren, ohne dass für jede Hardware dedizierter Code erforderlich ist. Core Image wendet die Verarbeitung einer (oder mehrerer) Bildeinheiten auf jedes Pixel eines Bildes an und erstellt so das Rendering eines neuen transformierten Bildes. Jede Bildeinheit definiert einen Filter, eine Transformation oder einen anderen Effekt, der auf das Pixel des Originalbilds angewendet werden kann, ohne die Anfangsdaten zu ändern. Auf diese Weise ermöglichen Bildeinheiten die zerstörungsfreie Bearbeitung von Bildern.

Wie bei Photoshop- Filtern kann eine Bildeinheit neben anderen angewendet werden. Core Image kann eine On-the-Fly- Verarbeitungswarteschlange einrichten, sodass nur eine Berechnung auf das Pixel angewendet wird, um die mehreren Effekte zu rendern. Infolgedessen können mehrere Bildeinheiten auf ein Bild angewendet werden, ohne dass zu viel zusätzliche Rechenzeit erforderlich ist. Core Image verwendet einen Just-in-Time- Compiler , um Code zu erstellen, der die Operationen ausführt, die einer oder mehreren Bildeinheiten jedes Pixels zugeordnet sind. Der Code wird dann entweder vom Zentralprozessor oder vom Prozessor der Grafikkarte ausgeführt, je nachdem, welcher Code am schnellsten ausgeführt werden kann.

Wenn ein kompatibler Grafikprozessor verfügbar ist, generiert der Core Image-Compiler Code mithilfe von Anweisungen aus der OpenGL-Sprache. Wenn die GPU diese Sprache unterstützt, wird sie von Core Image vorrangig verwendet. Wenn nicht, wird der Compiler unter Verwendung des Zentralprozessors im herabgesetzten Modus ausgeführt und generiert angemessene Anweisungen für den Computerprozessor. Diese Funktion nutzt die Vektorberechnungsfunktionen von Prozessoren (Grafik oder Zentral) und unterstützt Multiprozessoren. Die Leistung von Core Image hängt daher von der Verwaltungskapazität der OpenGL-Sprache des Grafikprozessors oder der Rechenleistung des Zentralprozessors ab. Mit einem unterstützten Grafikprozessor können die meisten Effekte in Echtzeit oder mit einer leichten Verzögerung gegenüber der Echtzeit gerendert werden.

Geschichte

Core Image ist seit Mac OS X 10.4 enthalten . Core Image Fun House und Quartz Composer , einschließlich Entwicklertools, verwenden es. Der Dashboard- Wassertropfeneffekt verwendet einen Core Image-Filter. Aperture ist eine Beispiel-App, die fast nur Core Image verwendet.

Zum Pixel

Die gesamte von einer Bildeinheit bereitgestellte Pixelverarbeitung wird in einem vormultiplizierten Alpha-Farbraum ausgeführt, in dem vier Farbkanäle gespeichert sind: Rot-, Grün-, Blau- und Alpha-Transparenz. Jeder Farbkanal wird durch einen Float von 32b dargestellt. Dies ermöglicht eine außergewöhnliche Farbtiefe, die viel größer ist als die, die das menschliche Auge sehen kann, wobei jedes Pixel durch einen Vektor von 128b (vier Kanäle von 32b) dargestellt wird. Für flachere Farbräume bietet das von Core Image verwendete Gleitkomma-Rechenmodell eine außergewöhnlich gute Leistung, was bei der Verarbeitung mehrerer Bilder (einschließlich Standbildern aus Videos) hilfreich ist.

Unterstützte Grafikprozessoren

Jeder Grafikprozessor, der die erforderlichen OpenGL-Befehle verarbeitet, kann Core Image-Anweisungen verarbeiten. Apple verwendete die folgenden Grafikkarten, um Core Image im Modus "OpenGL-Befehl" zu unterstützen:

Grafikprozessoren, die von Core Image verwendet werden können, können auch von Quartz Extreme verwendet werden . Die Anforderungen an das Kernbild sind höher als bei Quartz Extreme.

Bildeinheiten

Mac OS X 10.4 enthält standardmäßig rund 100 Bildeinheiten , darunter:

Verweise

  1. (in) "  Apple - Mac OS X - Core Image  " [ Archiv8. März 2007] (abgerufen am 9. März 2007 )
  2. (in) "  Apple - Entwickler - Core Image Programmierhandbuch - Core Image und die GPU  " (abgerufen am 17. April 2007 )
  3. (in) "  Apple - Entwickler - Entwickeln mit Core Image  " (abgerufen am 9. März 2007 )
  4. (in) "  ArsTechnica - Mac OS X 10.4 Tiger - Seite 15  " (abgerufen am 9. März 2007 )
  5. (in) "  Apple - Entwickler - Core Image Kernel Sprachreferenz - Einführung  " [ Archiv17. Mai 2008] (abgerufen am 17. April 2007 )
  6. (in) "  ArsTechnica - Mac OS X 10.4 Tiger - Seite 15  " (abgerufen am 17. April 2007 )
  7. (de) "  Apple - Mac OS X - Core Image  " [ Archiv von8. März 2007] (abgerufen am 18. April 2007 )
  8. (in) "  Apple - Aperture - Produktübersicht  " (abgerufen am 18. April 2007 )
  9. (in) "  Apple - Entwickler - Core Image Programming Guide - Farbkomponenten und vormultipliziertes Alpha  " (abgerufen am 9. März 2007 )
  10. (in) "  Apple - Mac OS X 10.4 - Anforderungen für Quartz Extreme und Core Image Graphics  " (abgerufen am 18. April 2007 )
  11. (in) "  Apple - Aperture - Tech Specs  " (abgerufen am 18. April 2007 )

Externe Links