Core Image est une technologie de traitement d'image non destructive, en temps quasi réel et au pixel près, sous Mac OS X. Implémentée dans le cadre du framework QuartzCore de Mac OS X 10.4 et versions ultérieures, Core Image fournit une architecture basée sur des plugins pour appliquer des filtres et des effets dans la couche de rendu graphique Quartz . Le framework a ensuite été ajouté à iOS dans iOS 5. [
Aperçu
Core Image résume le processus de manipulation au niveau des pixels requis lors de l'application d'un filtre à une image, ce qui permet aux applications d'implémenter facilement des capacités de transformation d'image sans codage important. Dans une implémentation simple, Core Image applique un seul filtre d'image aux données de pixels d'une source donnée pour produire l'image transformée. Chaque filtre d'image spécifie une transformation ou un effet unique, intégré à Core Image ou chargé à partir d'un plug-in appelé Image Unit . Combiné à des paramètres d'entrée prédéfinis ou définis par l'utilisateur, le filtre peut être appliqué aux données de pixels d'origine sans les modifier, offrant ainsi une édition d'image non destructive.
Comme Photoshop , Core Image peut appliquer plusieurs filtres à la même source d'image. Au lieu d'appliquer une série de filtres individuellement, Core Image assemble un pipeline d'instructions dynamiques de sorte qu'un seul calcul doit être appliqué aux données de pixels pour obtenir un effet cumulatif. L'application des opérations de pixels associées à plusieurs filtres peut être réalisée simultanément et sans augmentation significative du temps de traitement. Quel que soit le nombre de filtres, Core Image assemble le code de ce pipeline d'instructions avec un compilateur juste-à-temps , qui est exécuté soit par le processeur, soit par le GPU de la carte graphique, selon celui qui peut effectuer le calcul le plus rapidement.
Les filtres sont écrits dans le langage Core Image Kernel Language , qui partage un sous-ensemble de commandes avec OpenGL Shading Language (GLSL) . Lorsqu'un GPU compatible est disponible, le compilateur Core Image écrit le pipeline d'instructions à l'aide de GLSL, en gérant les tampons et les états de manière transparente. Bien que le rendu GPU soit préféré , le compilateur peut fonctionner dans un mode de secours du processeur , en générant à la place des commandes adaptées à l'architecture actuelle du processeur. Le secours du processeur utilise les capacités de traitement vectoriel du ou des processeurs actuels, et il est compatible avec plusieurs processeurs. Ainsi, les performances de Core Image dépendent des capacités GLSL du GPU ou de la puissance de traitement du processeur. Avec un GPU pris en charge, la plupart des effets peuvent être rendus en temps réel ou en temps quasi réel.
Historique et mise en œuvre
Core Image a été introduit avec Mac OS X 10.4 . Les premiers exemples de son utilisation peuvent être trouvés dans l' effet d'entraînement de Dashboard et dans l'application de photographie numérique professionnelle d'Apple, Aperture . À partir de Mac OS X 10.5 , toute application qui implémente Image Kit peut utiliser Core Image. Preview et iPhoto sont des exemples courants.
En 2011, Apple a ajouté Core Image à iOS dans iOS 5.0.
Les outils Xcode incluent Core Image Fun House et Quartz Composer ; tous deux utilisent Core Image.
L'architecture du plugin Core Image a été inspirée par celle de Core Audio.
Précision des pixels
Tous les traitements de pixels fournis par une unité d'image sont effectués dans un espace colorimétrique alpha pré-multiplié ( RGBA ), qui stocke quatre canaux de couleur : rouge, vert, bleu et transparence ( alpha ). Chaque canal de couleur est représenté par un nombre à virgule flottante de 32 bits . Cela permet d'obtenir une profondeur de couleur exceptionnelle, bien supérieure à celle que peut percevoir l' œil humain , car chaque pixel est représenté par un vecteur de 128 bits (quatre canaux de couleur de 32 bits). Pour les espaces colorimétriques de profondeur de bits inférieure, le modèle de calcul à virgule flottante utilisé par Core Image offre des performances exceptionnelles, ce qui est utile lors du traitement de plusieurs images ou trames vidéo.
Processeurs graphiques pris en charge
Tout GPU programmable prenant en charge les commandes OpenGL Shader ( GLSL ) requises est compatible Core Image. Apple a utilisé les cartes graphiques suivantes pour prendre en charge le traitement GPU Core Image dans Mac OS X 10.4 et Aperture, la liste suivante peut donc être considérée comme un exemple de configuration minimale requise :
- ATI Mobility Radeon 9700 (Mobility Radeon 9600 est également compatible)
- ATI Radeon 9550, 9600, 9650, 9600 XT, 9600 Pro, 9700 Pro, 9800 XT et 9800 Pro
- ATI Radeon X600 XT, X600 Pro, X800 XT, X850 XT, X1600, X1900 XT
- Cartes graphiques ATI Radeon HD 2400 XT, HD 2600 Pro et HD 2600 XT
- NVIDIA GeForce FX 5200 Ultra, FX Go 5200
- Cartes graphiques NVIDIA GeForce 6600, 6600 LE, 6800 Ultra DDL et 6800 GT DDL
- NVIDIA GeForce 7300 GT, 7600 GT et 7800 GT
- Cartes graphiques NVIDIA GeForce 8600M GT et 8800 GT
- NVIDIA GeForce 9400M et 9600M GT
- NVIDIA GeForce GT 120 et GT 130
- Carte graphique NVIDIA GeForce GTX 285
- NVIDIA Quadro FX 4500 et FX 5600
- Carte graphique NVIDIA Quadro FX 4800
- Carte graphique NVIDIA Quadro 4000
- NVIDIA GeForce 320M
- Carte graphique NVIDIA GeForce GT 330M
- Carte graphique NVIDIA GeForce GT 640M
- Carte graphique NVIDIA GeForce GT 650M
- Carte graphique NVIDIA GeForce GTX 660M
- Carte graphique NVIDIA GeForce GTX 675M
- Carte graphique NVIDIA GeForce GTX 680MX
- Carte graphique NVIDIA GeForce GT 750M
- Carte graphique NVIDIA GeForce GT 755M
- Carte graphique NVIDIA GeForce GTX 775M
- Carte graphique NVIDIA GeForce GTX 780M
- Intel GMA 900 , GMA 950 ou GMA X3100
- Carte graphique Intel HD 3000 (Sandy Bridge)
- Carte graphique Intel HD 4000 (Ivy Bridge)
- Carte graphique Intel HD 5000 (Haswell)
- Processeur Intel Iris 5100 (Haswell)
- Processeur Intel Iris Pro 5200 (Haswell)
- Carte graphique Intel HD 5300 (Broadwell)
- Carte graphique Intel HD 6000 (Broadwell)
- Processeur Intel Iris 6100 (Broadwell)
Notez que tout GPU capable de gérer les instructions Core Image est également compatible avec Quartz Extreme . Les exigences pour Core Image sont supérieures à celles de Quartz Extreme.
Filtres intégrés

macOS comprend de nombreux filtres intégrés, notamment les suivants. Mac OS X 10.4 en a introduit plus de 100, et Mac OS X 10.5 en a ajouté d'autres à la liste.
- Flous, comme la médiane, la gaussienne, le mouvement et le bruit
- Réglages et effets de couleur, tels que l'exposition, le réglage gamma et le ton sépia
- Opérations de composition, comme les mélanges d'addition et de multiplication , ou la lumière dure
- Distorsions, comme Pinch, Circle Splash et Vortex
- Générateurs, comme Star Shine et Lenticular Halo
- Ajustements de géométrie, tels que le recadrage, l'échelle, la rotation et la transformation affine
- Filtres Demi-teintes, Mosaïque et Postérisation
- Transitions, telles que Dissoudre et Onduler