Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Технология обработки изображений, представленная в Mac OS X 10.4. Core Image – это технология обработки изображений в Mac OS X, обеспечивающая высокую точность на уровне пикселей, работу почти в реальном времени и неразрушающее редактирование. Реализованная как часть фреймворка QuartzCore в Mac OS X 10.4 и более поздних версиях, Core Image предоставляет архитектуру, основанную на плагинах, для применения фильтров и эффектов в слое графического рендеринга Quartz. Позже этот фреймворк был добавлен в iOS, начиная с iOS 5.
Image processing technology introduced in Mac OS X 10.4
Core Image is a pixel accurate, near realtime, non destructive image processing technology in Mac OS X. Implemented as part of the QuartzCore framework of Mac OS X 10.4 and later, Core Image provides a plugin based architecture for applying filters and effects within the Quartz graphics rendering layer. The framework was later added to iOS in iOS 5.
Обзор
Core Image абстрагирует процесс манипулирования на уровне пикселей, необходимый при применении фильтра к изображению, упрощая реализацию возможностей преобразования изображений в приложениях без сложного кодирования. В простейшей реализации Core Image применяет один фильтр изображения к пиксельным данным исходного изображения для получения преобразованного результата. Каждый фильтр изображения определяет одно преобразование или эффект, встроенный в Core Image или загруженный из плагина, называемого Image Unit. В сочетании с предустановленными или заданными пользователем входными параметрами, фильтр может быть применен к исходным пиксельным данным без их изменения, обеспечивая тем самым неразрушающее редактирование изображения. Как и в Photoshop, Core Image может применять несколько фильтров к одному и тому же источнику изображения. Вместо последовательного применения серии фильтров, Core Image собирает динамический конвейер инструкций, так что для достижения кумулятивного эффекта к пиксельным данным требуется применить только одно вычисление. Применение пиксельных операций, связанных с несколькими фильтрами, может быть выполнено одновременно без значительного увеличения времени обработки. Независимо от количества фильтров, Core Image собирает код для этого конвейера инструкций с помощью JIT-компилятора (компилятора Just-In-Time), который выполняется либо центральным процессором (CPU), либо графическим процессором (GPU) видеокарты, в зависимости от того, какой из них способен выполнить вычисление быстрее. Фильтры написаны на языке ядра Core Image Kernel Language, который использует подмножество команд языка шейдеров OpenGL (GLSL). При наличии совместимого GPU, компилятор Core Image генерирует конвейер инструкций, используя GLSL, прозрачно управляя буферами и состояниями. Хотя предпочтительна отрисовка с использованием GPU, компилятор может работать в режиме резервного копирования на CPU, генерируя команды, подходящие для текущей архитектуры процессора. Режим резервного копирования использует возможности векторной обработки текущего CPU или CPU, а также поддерживает многопроцессорность. Таким образом, производительность Core Image зависит от возможностей GLSL GPU или вычислительной мощности CPU. При использовании поддерживаемого GPU большинство эффектов могут быть отрисованы в реальном времени или почти в реальном времени.
Core Image abstracts the pixel level manipulation process required when applying a filter to an image, making it simple for applications to implement image transformation capabilities without extensive coding. In a simple implementation, Core Image applies a single Image Filter to the pixel data of a given source to produce the transformed image. Each Image Filter specifies a single transform or effect, either built into Core Image or loaded from a plugin called an Image Unit. Combined with preset or user defined input parameters, the filter can be applied to the original pixel data without modifying it, thereby providing non destructive image editing. Like Photoshop, Core Image can apply multiple filters to the same image source. Instead of applying a series of filters individually, Core Image assembles a dynamic instruction pipeline so that only one calculation needs to be applied to the pixel data to achieve a cumulative effect. Applying the pixel operations associated with multiple filters can be achieved simultaneously and without a significant increase in processing time. Regardless of the number of filters, Core Image assembles the code for this instruction pipeline with a just in time compiler, which is executed by either the CPU or graphics card's GPU, whichever can perform the calculation faster. Filters are written in the Core Image Kernel Language, which shares a subset of commands with OpenGL Shading Language (GLSL). When a compatible GPU is available, the Core Image compiler writes the instruction pipeline using GLSL, handling buffers and states transparently. Although GPU rendering is preferred, the compiler can operate in a CPU fallback mode, generating commands suitable for the current CPU architecture instead. CPU fallback uses the vector processing capabilities of the current CPU or CPUs, and it is multi processor aware. Thus, Core Image performance depends on the GLSL capabilities of the GPU or the processing power of the CPU. With a supported GPU, most effects can be rendered in realtime or near realtime.
История и реализация
Core Image был представлен вместе с Mac OS X 10.4. Ранние примеры его использования можно найти в эффекте ряби в Dashboard и в профессиональном приложении Apple для цифровой фотографии Aperture. Начиная с Mac OS X 10.5, любое приложение, использующее Image Kit, может применять Core Image. Preview и iPhoto — типичные примеры. В 2011 году Apple добавила Core Image в iOS, начиная с версии 5.0.
Core Image was introduced with Mac OS X 10.4. Early examples of its use can be found in the ripple effect in Dashboard, and Apple's professional digital photography application, Aperture. Starting with Mac OS X 10.5, any application that implements Image Kit can utilize Core Image. Preview and iPhoto are common examples. In 2011, Apple added Core Image to iOS in iOS 5.0.