Ядро GIMP переведено на библиотеку GEGL

Разработчики GIMP объявили о завершении основных этапов перевода ядра графического редактора на использование фреймворка GEGL (Generic Graphics Library), созданного для выполнения операций по недеструктивному редактированию изображений с возможностью обработки больших массивов данных, превышающих размер ОЗУ. В настоящее время портировано около 90% базовых компонентов GIMP. Результаты портирования можно наблюдать в экспериментальной Git-ветке goat-invasion, которая станет первичной (master) после выпуска релиза GIMP 2.8 и будет использована для формирования экспериментальных версий GIMP 2.9.

Проект по переходу на GEGL стартовал ещё в 2007 году. Интеграция с GEGL позволит повысить эффективность обработки изображений и достигнуть таких целей, как увеличение глубины цвета на канал, которая ограничена в GIMP 8 битами, поддержка расширенных цветовых моделей, таких как CMYK и LaB, возможность недеструктивного редактирования и корректировки изображений. Первые наработки по поддержке выполнения некоторых операций через GEGL были представлены ещё в ветке GIMP 2.6.0, в которой была добавлена опция по использованию GEGL для корректировки цветов. В готовящемся релизе GIMP 2.8.0, который ожидается в ближайшие дни, поддержка GEGL расширена опциональной возможностью рендеринга с использованием GEGL, что позволит задействовать GPU для рендеринга и выполнения некоторых вычислительных задач, связанных с коррекцией цветности и работой фильтров.

Стопроцентный переход на GEGL состоится в следующей стабильной ветке GIMP 2.10, в которой GEGL планируется использовать по умолчанию и повсеместно. Ранее используемый в GIMP API пиксельной обработки, который последний раз модифицировался ещё во времена GIMP 1.2, будет признан устаревшим для использования в плагинах. Реализация таких возможностей как высокая глубина цвета и использование дополнительных цветовых моделей пока не готова, но после перевода GIMP на GEGL потребует незначительных усилий. Поддержка индексированных изображений не будет прекращена, как ожидалось, а будет расширена, что например, даст возможность рисования и корректировки цветов не переходя в RGB-режим.

Реализация поддержки GEGL в GIMP полностью поддерживает все нововведения, появившиеся в релизе GEGL 0.2.0, выпущенном две недели назад. Наиболее важным улучшением новой версии является поддержка OpenCL (расширение языка Си для параллельного программирования), которая позволяет вынести выполнение некоторых ресурсоёмких операций на плечи GPU, например, минимизировать использование CPU при изменении яркости/контраста изображений или при применении фильтров, таких как размывание. В перспективе, для операций которые не могут быть вынесены на плечи GPU, использование GEGL позволит задействовать многопоточную обработку с использованием всех доступных процессорных ядер. К сожалению, в настоящее время многопоточность в GEGL реализована не до конца и носит экспериментальный характер.

©  OpenNet