Core Image es una tecnología de procesamiento de imágenes no destructiva, casi en tiempo real y con precisión de píxel en Mac OS X. Implementada como parte del marco QuartzCore de Mac OS X 10.4 y versiones posteriores, Core Image proporciona una arquitectura basada en complementos para aplicar filtros y efectos dentro de la capa de renderizado gráfico Quartz . [ 1 ] El marco se agregó posteriormente a iOS en iOS 5. [ 2 ]
Descripción general
Core Image abstrae el proceso de manipulación a nivel de píxel necesario al aplicar un filtro a una imagen, lo que facilita que las aplicaciones implementen capacidades de transformación de imágenes sin necesidad de una programación extensa. En una implementación simple, Core Image aplica un único filtro de imagen a los datos de píxeles de una fuente dada para producir la imagen transformada. Cada filtro de imagen especifica una única transformación o efecto, ya sea integrado en Core Image o cargado desde un complemento llamado Image Unit . Combinado con parámetros de entrada preestablecidos o definidos por el usuario, el filtro se puede aplicar a los datos de píxeles originales sin modificarlos, lo que proporciona una edición de imagen no destructiva. [ 3 ] [ 4 ]
Al igual que Photoshop , Core Image puede aplicar múltiples filtros a la misma imagen. En lugar de aplicar una serie de filtros individualmente, Core Image crea una secuencia de instrucciones dinámica , de modo que solo se necesita aplicar un cálculo a los datos de píxeles para lograr un efecto acumulativo. La aplicación de las operaciones de píxeles asociadas a múltiples filtros se puede realizar simultáneamente y sin un aumento significativo en el tiempo de procesamiento. Independientemente del número de filtros, Core Image compila el código para esta secuencia de instrucciones con un compilador justo a tiempo , que es ejecutado por la CPU o la GPU de la tarjeta gráfica, según cuál pueda realizar el cálculo más rápido. [ 5 ]
Los filtros se escriben en el lenguaje de kernel de Core Image , que comparte un subconjunto de comandos con el lenguaje de sombreado de OpenGL (GLSL) . [ 6 ] Cuando hay una GPU compatible disponible, el compilador de Core Image escribe la canalización de instrucciones usando GLSL, manejando los búferes y estados de forma transparente. Aunque se prefiere la renderización por GPU , el compilador puede operar en un modo de reserva de CPU , generando comandos adecuados para la arquitectura de CPU actual. [ 7 ] La reserva de CPU utiliza las capacidades de procesamiento vectorial de la CPU o CPUs actuales y es compatible con multiprocesadores. Por lo tanto, el rendimiento de Core Image depende de las capacidades GLSL de la GPU o de la potencia de procesamiento de la CPU. Con una GPU compatible, la mayoría de los efectos se pueden renderizar en tiempo real o casi en tiempo real. [ 8 ]
Historia e implementación
Core Image se introdujo con Mac OS X 10.4 . [ 9 ] Los primeros ejemplos de su uso se pueden encontrar en el efecto de onda en Dashboard y en la aplicación de fotografía digital profesional de Apple, Aperture . [ 10 ] A partir de Mac OS X 10.5 , cualquier aplicación que implemente Image Kit puede utilizar Core Image. [ 11 ] Vista Previa e iPhoto son ejemplos comunes.
En 2011, Apple añadió Core Image a iOS en iOS 5.0. [ 2 ]
Las herramientas de Xcode incluyen Core Image Fun House y Quartz Composer ; ambas utilizan Core Image.
La arquitectura de los plugins de Core Image se inspiró en la de Core Audio. [ 12 ]
Precisión de píxeles
Todo el procesamiento de píxeles proporcionado por una unidad de imagen se realiza en un espacio de color alfa premultiplicado ( RGBA ), almacenando cuatro canales de color: rojo, verde, azul y transparencia ( alfa ). Cada canal de color está representado por un número de punto flotante de 32 bits . Esto proporciona una profundidad de color excepcional, mucho mayor de la que puede percibir el ojo humano , ya que cada píxel está representado por un vector de 128 bits (cuatro canales de color de 32 bits). Para espacios de color con menor profundidad de bits, el modelo de cálculo de punto flotante empleado por Core Image proporciona un rendimiento excepcional, lo que resulta útil al procesar múltiples imágenes o fotogramas de vídeo. [ 3 ] [ 13 ]
Procesadores gráficos compatibles
Cualquier GPU programable que admita los comandos OpenGL Shader ( GLSL ) necesarios es compatible con Core Image. Apple ha utilizado las siguientes tarjetas gráficas para admitir el procesamiento de GPU de Core Image en Mac OS X 10.4 y Aperture, por lo que la siguiente lista podría considerarse un ejemplo de requisitos mínimos: [ 10 ] [ 14 ]
- ATI Mobility Radeon 9700 (también es compatible con Mobility Radeon 9600)
- ATI Radeon 9550, 9600, 9650, 9600 XT, 9600 Pro, 9700 Pro, 9800 XT y 9800 Pro
- ATI Radeon X600 XT, X600 Pro, X800 XT, X850 XT, X1600, X1900 XT
- ATI Radeon HD 2400 XT, HD 2600 Pro y HD 2600 XT
- NVIDIA GeForce FX 5200 Ultra, FX Go 5200
- NVIDIA GeForce 6600, 6600 LE, 6800 Ultra DDL y 6800 GT DDL
- NVIDIA GeForce 7300 GT, 7600 GT y 7800 GT
- NVIDIA GeForce 8600M GT y 8800 GT
- NVIDIA GeForce 9400M y 9600M GT
- NVIDIA GeForce GT 120 y GT 130
- NVIDIA GeForce GTX 285
- NVIDIA Quadro FX 4500 y FX 5600
- NVIDIA Quadro FX 4800
- NVIDIA Quadro 4000
- NVIDIA GeForce 320M
- NVIDIA GeForce GT 330M
- NVIDIA GeForce GT 640M
- NVIDIA GeForce GT 650M
- NVIDIA GeForce GTX 660M
- NVIDIA GeForce GTX 675M
- NVIDIA GeForce GTX 680MX
- NVIDIA GeForce GT 750M
- NVIDIA GeForce GT 755M
- NVIDIA GeForce GTX 775M
- NVIDIA GeForce GTX 780M
- Intel GMA 900 , GMA 950 o GMA X3100
- Gráficos Intel HD 3000 (Sandy Bridge)
- Gráficos Intel HD 4000 (Ivy Bridge)
- Gráficos Intel HD 5000 (Haswell)
- Intel Iris 5100 (Haswell)
- Intel Iris Pro 5200 (Haswell)
- Gráficos Intel HD 5300 (Broadwell)
- Gráficos Intel HD 6000 (Broadwell)
- Intel Iris 6100 (Broadwell)
Tenga en cuenta que cualquier GPU capaz de manejar instrucciones de Core Image también es capaz de ejecutar Quartz Extreme . Los requisitos para Core Image son mayores que los de Quartz Extreme. [ 14 ]
Filtros incorporados

macOS incluye muchos filtros integrados, entre ellos los siguientes. Mac OS X 10.4 introdujo más de 100 de ellos, y Mac OS X 10.5 añadió más a la lista. [ 3 ] [ 15 ]
- Desenfoques, como el de mediana, gaussiano, de movimiento y de ruido.
- Ajustes y efectos de color, como exposición, ajuste gamma y tono sepia.
- Operaciones de composición, como la adición y la multiplicación de mezclas , o luz dura.
- Distorsiones, como Pellizco, Salpicadura circular y Vórtice
- Generadores como Star Shine y Lenticular Halo
- Ajustes geométricos, como recorte, escalado, rotación y transformación afín.
- Filtros de semitonos, mosaicos y posterización
- Transiciones, como Dissolver y Ondular
Véase también
- Acorn (software)
- Abertura
- Core Image Fun House
- GEGL , una biblioteca de programación utilizada por GIMP.
- improvisado
- LiveQuartz
- Pixelmator
- Compositor de cuarzo
- Componente de imágenes de Windows , un componente de Windows con un diseño de API similar pero con menos operaciones de imagen compatibles.
Referencias
- ↑ "Mac Dev Center - Introducción a la guía de programación de imágenes principales" . Consultado el 20 de septiembre de 2009 .
- 1 2 "Diferencias de la API de iOS 5.0" . Consultado el 14 de septiembre de 2012 .
- 1 2 3 "Apple - Desarrollador - Desarrollo con Core Image" . Archivado del original el 6 de octubre de 2009. Recuperado el 20 de septiembre de 2009 .
- ↑ "Mac Dev Center - Introducción a la guía de programación de Core Image - Clientes de filtro y creadores de filtro" . Consultado el 20 de septiembre de 2009 .
- ↑ "ArsTechnica - Mac OS X 10.4 Tiger - Página 15" . 28 de abril de 2005. Consultado el 20 de septiembre de 2009 .
- ↑ "Mac Dev Center - Referencia del lenguaje del kernel de Core Image - Introducción" . Consultado el 20 de septiembre de 2009 .
- ↑ "Mac Dev Center - Guía de programación de Core Image - Conceptos de Core Image - Core Image y la GPU" . Consultado el 20 de septiembre de 2009 .
- ↑ "ArsTechnica - Mac OS X 10.4 Tiger - Página 15" . 28 de abril de 2005. Consultado el 17 de abril de 2007 .
- ↑ "Mac Dev Center - Core Image Programming Guide - Core Image Concepts" . Consultado el 20 de septiembre de 2009 .
- 1 2 "Apple - Aperture - Especificaciones técnicas" . Consultado el 20 de septiembre de 2009 .
- ↑ "Mac Dev Center - Image Kit Programming Guide - Introduction to Image Kit Programming Guide" . Consultado el 20 de septiembre de 2009 .
- ↑ Singh 2006 , pág. 97.
- ↑ "Mac Dev Center - Guía de programación de Core Image - Conceptos de Core Image - Componentes de color y alfa premultiplicado" . Consultado el 20 de septiembre de 2009 .
- 1 2 "Mac OS X 10.4 - Requisitos para Quartz Extreme y Core Image Graphics" . Archivado del original el 9 de noviembre de 2014. Recuperado el 20 de septiembre de 2009 .
- ↑ "Referencia de filtros de imagen principales" . Archivado del original el 19 de mayo de 2024. Consultado el 24 de julio de 2024 .
Bibliografía
- Singh, Amit (19 de junio de 2006). Mac OS X Internals: A Systems Approach . Addison-Wesley Professional. ISBN 978-0-13-270226-3.
Enlaces externos
- Guía de programación de Core Image – Biblioteca para desarrolladores de Mac OS X
- Apple presenta Mac OS X "Tiger" : anuncio de Mac OS X 10.4, que incluye Core Image.
- Filterpedia : aplicación Swift de código abierto que muestra casi todos los filtros integrados de CoreImage disponibles, junto con filtros personalizados basados en GLSL y Metal, creados por Simon Gladman.
- API de macOS
- Bibliotecas gráficas