Основное изображение
macOS графическая модель |
---|
![]() |
Рендеринг |
Композитинг |
Core Image — это технология неразрушающей обработки изображений с точностью до пикселя, близкой к реальному времени, в Mac OS X. Реализованная как часть платформы QuartzCore в Mac OS X 10.4 и более поздних версиях, Core Image предоставляет архитектуру на основе плагинов для применения фильтров и эффекты в слое рендеринга графики Quartz . [1] Позднее фреймворк был добавлен в iOS в iOS 5 . [2]
Обзор
[ редактировать ]Core Image абстрагирует процесс манипуляции на уровне пикселей, необходимый при применении фильтра к изображению, упрощая приложениям реализацию возможностей преобразования изображений без тщательного кодирования. В простой реализации Core Image применяет один фильтр изображения к пиксельным данным данного источника для создания преобразованного изображения. Каждый фильтр изображений определяет одно преобразование или эффект, либо встроенный в Core Image, либо загруженный из плагина, называемого Image Unit . В сочетании с предустановленными или определяемыми пользователем входными параметрами фильтр можно применять к исходным пиксельным данным без их изменения, тем самым обеспечивая неразрушающее редактирование изображения. [3] [4]
Как и Photoshop , Core Image может применять несколько фильтров к одному и тому же источнику изображения. Вместо применения серии фильтров по отдельности Core Image собирает динамический конвейер инструкций , поэтому для достижения кумулятивного эффекта к пиксельным данным необходимо применить только одно вычисление. Применение пиксельных операций, связанных с несколькими фильтрами, может быть достигнуто одновременно и без значительного увеличения времени обработки. Независимо от количества фильтров, Core Image собирает код для этого конвейера инструкций с помощью JIT-компилятора , который выполняется либо ЦП, либо графическим процессором видеокарты, в зависимости от того, что может выполнить вычисления быстрее. [5]
Фильтры написаны на языке Core Image Kernel Language , который разделяет подмножество команд с языком шейдинга OpenGL (GLSL) . [6] Когда доступен совместимый графический процессор, компилятор Core Image записывает конвейер инструкций с использованием GLSL, прозрачно обрабатывая буферы и состояния. Хотя рендеринг с помощью графического процессора предпочтительнее [ нужна ссылка ] , компилятор может работать в резервном режиме ЦП, вместо этого генерируя команды, подходящие для текущей архитектуры ЦП. [7] Резервный процессор ЦП использует возможности векторной обработки текущего ЦП или ЦП и поддерживает многопроцессорность. Таким образом, производительность Core Image зависит от возможностей GLSL графического процессора или вычислительной мощности процессора. Благодаря поддерживаемому графическому процессору большинство эффектов можно визуализировать в реальном времени или почти в реальном времени. [8]
История и реализация
[ редактировать ]Core Image был представлен в Mac OS X 10.4 . [9] Ранние примеры его использования можно найти в эффекте пульсации в Dashboard и профессиональном приложении Apple для цифровой фотографии Aperture . [10] Начиная с Mac OS X 10.5 , любое приложение, реализующее Image Kit, может использовать Core Image. [11] Preview и iPhoto Распространенными примерами являются .
В 2011 году Apple добавила Core Image в iOS в iOS 5.0. [2]
Инструменты Xcode включают Core Image Fun House и Quartz Composer ; оба используют Core Image.
Архитектура плагина Core Image была вдохновлена архитектурой Core Audio. [12]
Пиксельная точность
[ редактировать ]Вся обработка пикселей, обеспечиваемая блоком изображения, выполняется в цветовом пространстве с предварительно умноженным альфа-каналом ( RGBA ), в котором хранятся четыре цветовых канала: красный, зеленый, синий и прозрачность ( альфа ). Каждый цветовой канал представлен 32-битным числом с плавающей запятой . Это обеспечивает исключительную глубину цвета, намного большую, чем может воспринимать человеческий глаз , поскольку каждый пиксель представлен 128-битным вектором (четыре 32-битных цветовых канала). Для цветовых пространств с меньшей битовой глубиной модель вычислений с плавающей запятой, используемая Core Image, обеспечивает исключительную производительность, что полезно при обработке нескольких изображений или видеокадров. [3] [13]
Поддерживаемые графические процессоры
[ редактировать ]Любой программируемый графический процессор, который поддерживает необходимые команды OpenGL Shader ( GLSL ), поддерживает Core Image. Apple использовала следующие видеокарты для поддержки обработки Core Image GPU в Mac OS X 10.4 и Aperture, поэтому следующий список можно рассматривать как пример минимальных требований: [10] [14]
- ATI Mobility Radeon 9700 (также возможна Mobility Radeon 9600)
- ATI Radeon 9550, 9600, 9650, 9600 XT, 9600 Pro, 9700 Pro, 9800 XT и 9800 Pro
- ATI Radeon X600 XT, X600 Pro, X800 XT, X850 XT, X1600, X1900 XT
- ATI Radeon HD 2400 XT, HD 2600 Pro и HD 2600 XT
- NVIDIA GeForce FX 5200 Ultra, FX Go 5200
- NVIDIA GeForce 6600, 6600 LE, 6800 Ultra DDL и 6800 GT DDL
- NVIDIA GeForce 7300 GT, 7600 GT и 7800 GT
- NVIDIA GeForce 8600M GT и 8800 GT
- NVIDIA GeForce 9400M и 9600M GT
- NVIDIA GeForce GT 120 и GT 130
- NVIDIA GeForce GTX 285
- NVIDIA Quadro FX 4500 и FX 5600
- NVIDIA Quadro FX 4800
- NVIDIA Квадро 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 или GMA X3100
- Intel HD Graphics 3000 (Сэнди Бридж)
- Intel HD Graphics 4000 (Ivy Bridge)
- Intel HD Graphics 5000 (Haswell)
- Intel Iris 5100 (Хасуэлл)
- Intel Iris Pro 5200 (Хасуэлл)
- Графика Intel HD 5300 (Broadwell)
- Intel HD Graphics 6000 (Бродвелл)
- Intel Iris 6100 (Бродвелл)
Обратите внимание, что любой графический процессор, способный обрабатывать инструкции Core Image, также поддерживает Quartz Extreme . Требования к Core Image выше, чем у Quartz Extreme. [14]
Встроенные фильтры
[ редактировать ]
macOS включает множество встроенных фильтров, в том числе следующие. В Mac OS X 10.4 их было представлено более 100, а в этот список добавлена Mac OS X 10.5. [3] [15]
- Размытие, например, медианное, гауссовское, движение и шум.
- Регулировка цвета и эффекты, такие как экспозиция, настройка гаммы и тон сепии.
- Операции с композицией, такие как сложение и умножение переходов или жёсткий свет.
- Искажения, такие как Pinch, Circle Splash и Vortex.
- Генераторы, такие как Star Shine и Lentular Halo.
- Корректировки геометрии, такие как обрезка, масштабирование, поворот и аффинное преобразование.
- Фильтры «Полутона», «Мозаика» и «Постеризация»
- Переходы, такие как «Растворение» и «Пульсация».
См. также
[ редактировать ]- Диафрагма
- Базовое изображение Fun House
- Кварцевый композитор
- LiveКварц
- Пикселматор
- экспромт
- GEGL , библиотека программирования, используемая GIMP.
- Компонент Windows Imaging — компонент Windows с аналогичным дизайном API, но с меньшим количеством поддерживаемых операций с изображениями.
Ссылки
[ редактировать ]- ^ «Центр разработки Mac — Введение в руководство по программированию Core Image» . Проверено 20 сентября 2009 г.
- ^ Jump up to: а б «Различия API iOS 5.0» . Проверено 14 сентября 2012 г.
- ^ Jump up to: а б с «Apple — Разработчик — Разработка с использованием основного образа» . Архивировано из оригинала 6 октября 2009 года . Проверено 20 сентября 2009 г.
- ^ «Центр разработки для Mac — Введение в руководство по программированию Core Image — Клиенты фильтров и создатели фильтров» . Проверено 20 сентября 2009 г.
- ^ «ArsTechnica — Mac OS X 10.4 Tiger — Страница 15» . Проверено 20 сентября 2009 г.
- ^ «Центр разработки для Mac — Справочник по языку ядра ядра образа — Введение» . Проверено 20 сентября 2009 г.
- ^ «Центр разработки Mac — Руководство по программированию Core Image — Основные понятия Core Image — Core Image и графический процессор» . Проверено 20 сентября 2009 г.
- ^ «ArsTechnica — Mac OS X 10.4 Tiger — Страница 15» . Проверено 17 апреля 2007 г.
- ^ «Центр разработки Mac — Руководство по программированию Core Image — Основные концепции образа» . Проверено 20 сентября 2009 г.
- ^ Jump up to: а б «Apple – Aperture – Технические характеристики» . Проверено 20 сентября 2009 г.
- ^ «Центр разработки Mac — Руководство по программированию Image Kit — Введение в руководство по программированию Image Kit» . Проверено 20 сентября 2009 г.
- ^ Сингх 2006 , с. 97.
- ^ «Центр разработки Mac — Руководство по программированию Core Image — Основные понятия изображения — Цветовые компоненты и предварительно умноженная альфа» . Проверено 20 сентября 2009 г.
- ^ Jump up to: а б «Mac OS X 10.4 — Требования к графике Quartz Extreme и Core Image» . Архивировано из оригинала 9 ноября 2014 года . Проверено 20 сентября 2009 г.
- ^ «Справочник по основным фильтрам изображений» . Архивировано из оригинала 19 мая 2024 года . Проверено 24 июля 2024 г.
Библиография
[ редактировать ]- Сингх, Амит (19 июня 2006 г.). Внутреннее устройство Mac OS X: системный подход . Аддисон-Уэсли Профессионал. ISBN 978-0-13-270226-3 .
Внешние ссылки
[ редактировать ]- Руководство по программированию базового образа — Библиотека разработчика Mac OS X
- Apple анонсирует Mac OS X «Tiger» — анонс Mac OS X 10.4, включая Core Image
- Filterpedia — приложение Swift с открытым исходным кодом , демонстрирующее почти все доступные встроенные фильтры CoreImage, а также пользовательские фильтры на основе GLSL и Metal от Саймона Гладмана.