stringtranslate.com

Imagen central

Core Image es una tecnología de procesamiento de imágenes no destructiva, casi en tiempo real y con precisión de píxeles para 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 de gráficos Quartz . [1] El marco se agregó más tarde 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 simplifica la implementación de capacidades de transformación de imágenes por parte de las aplicaciones sin necesidad de una codificación extensa. En una implementación simple, Core Image aplica un único filtro de imagen a los datos de píxeles de una fuente determinada 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 unidad de imagen . 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 imágenes no destructiva. [3] [4]

Al igual que Photoshop , Core Image puede aplicar múltiples filtros a la misma fuente de imagen. En lugar de aplicar una serie de filtros individualmente, Core Image ensambla una secuencia de instrucciones dinámicas 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 con múltiples filtros se puede lograr simultáneamente y sin un aumento significativo en el tiempo de procesamiento. Independientemente de la cantidad de filtros, Core Image ensambla 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, lo que pueda realizar el cálculo más rápido. [5]

Los filtros se escriben en el lenguaje Core Image Kernel , que comparte un subconjunto de comandos con OpenGL Shading Language (GLSL) . [6] Cuando hay una GPU compatible disponible, el compilador Core Image escribe la secuencia de instrucciones utilizando GLSL, manejando buffers y estados de forma transparente. Aunque se prefiere la renderización por GPU [ cita requerida ] , 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 CPU actuales, y es compatible con múltiples procesadores. 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 dominó en Dashboard y 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] Preview y iPhoto son ejemplos comunes.

En 2011, Apple agregó 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 del complemento 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 ), que almacena 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 que 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 de menor profundidad de bits, el modelo de cálculo de punto flotante empleado por Core Image proporciona un rendimiento excepcional, que es ú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]

Tenga en cuenta que cualquier GPU capaz de manejar instrucciones de Core Image también es compatible con Quartz Extreme . Los requisitos para Core Image son mayores que los de Quartz Extreme. [14]

Filtros incorporados

Logotipo de Wikipedia con las unidades de imagen "Color monocromático", "Mosaico de paralelogramo" y "Distorsión de pinza" aplicadas

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 agregó más a la lista. [3] [15]

Véase también

Referencias

  1. ^ "Mac Dev Center - Introduction to Core Image Programming Guide" (Centro de desarrollo de Mac: introducción a la guía de programación de imágenes básicas) . Consultado el 20 de septiembre de 2009 .
  2. ^ ab "iOS 5.0 API Diffs" . Consultado el 14 de septiembre de 2012 .
  3. ^ abc «Apple - Desarrollador - Desarrollo con Core Image». Archivado desde el original el 6 de octubre de 2009. Consultado el 20 de septiembre de 2009 .
  4. ^ "Mac Dev Center - Introduction to Core Image Programming Guide - Filter Clients and Filter Creators" (Centro de desarrollo de Mac: introducción a la guía de programación de imágenes principales: clientes de filtros y creadores de filtros) . Consultado el 20 de septiembre de 2009 .
  5. ^ "ArsTechnica - Mac OS X 10.4 Tiger - Página 15" . Consultado el 20 de septiembre de 2009 .
  6. ^ "Mac Dev Center - Referencia del lenguaje del núcleo de la imagen principal - Introducción" . Consultado el 20 de septiembre de 2009 .
  7. ^ "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 .
  8. ^ "ArsTechnica - Mac OS X 10.4 Tiger - Página 15" . Consultado el 17 de abril de 2007 .
  9. ^ "Mac Dev Center - Guía de programación de imágenes básicas - Conceptos básicos de imágenes" . Consultado el 20 de septiembre de 2009 .
  10. ^ ab "Apple - Aperture - Especificaciones técnicas" . Consultado el 20 de septiembre de 2009 .
  11. ^ "Mac Dev Center - Guía de programación de Image Kit - Introducción a la guía de programación de Image Kit" . Consultado el 20 de septiembre de 2009 .
  12. ^ Singh 2006, pág. 97.
  13. ^ "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 .
  14. ^ ab «Mac OS X 10.4 - Requisitos para Quartz Extreme y Core Image Graphics». Archivado desde el original el 9 de noviembre de 2014. Consultado el 20 de septiembre de 2009 .
  15. ^ "Referencia de filtros de imágenes básicas". Archivado desde el original el 19 de mayo de 2024 . Consultado el 24 de julio de 2024 .

Bibliografía

Enlaces externos