GEGL

The Generic Graphics Library (GEGL) is a programming library under development for image processing applications. It is mainly developed for GIMP in order to add support for higher bit depth images, and non-destructive editing. It was partially implemented in GIMP 2.6,[2] with more added in 2.8, and will be used directly in 2.10.[3] It is also used by GNOME's Photos and gedl.

GEGL
Initial release2000 (2000)
Stable release
0.4.22 / 18 February 2020 (2020-02-18)[1]
Repository
Written inC
Operating systemCross-platform
TypeImage processing library
LicenseGNU Lesser General Public License
Websitewww.gegl.org

Design

GEGL is modelled after a directed acyclic graph, where each node represents an image operation (called "operators" or "ops"), and each edge represents an image. Operations can in general take several input images and give several output images, which corresponds to having several incoming edges (images) and several outgoing edges (images) at a given node (operation). The system uses an on-demand model, doing work only as required. This allows features such as having very quick previews while editing, and once the user has finished making changes, GEGL will repeat the same operations in full resolution for the final image in the background.

Operations

An operation (op) is a node within a GEGL graph responsible for one action; ops can be:

  • simple, such as "add" (taking two inputs) or "premultiply by alpha" (taking one input)
  • complex, such as colorspace conversions

GEGL also has a notion of meta operations, where one operation can be constructed from other operations (e.g. unsharp mask is a combination of add, multiply, subtract and gaussian blur ops).

babl

babl, a support library for GEGL, provides a generic way to deal with color-space conversions;[4] babl operates abstracting the fundamental color operations so that GEGL need not be aware of them. Through babl, GEGL provides an optimized and powerful (optionally with SIMD support) treatment of arbitrary color data; this enables dependent applications to efficiently support a wide range of color spaces (from 8-bit RGB to full floating point CMYK) with minimal extra application code.

OpenRaster

OpenRaster is an XML file format used for saving raster graphics. GEGL's lead developer Øyvind Kolås has helped specifying OpenRaster so that it is capable of saving a GEGL graph.

History

Historically a GNOME easter egg, the GEGL mascot is a five-legged goat.(Genetically Engineered Goat, Large)

GEGL was originally conceived as a GIMP core replacement in 2000 by Rhythm & Hues software engineers, finally in 2006 the external API was deemed stable enough and capable of replacing the GIMP core. On 20 December 2007, it was added to the development version of GIMP. Some of GIMP's tools have already been converted to GEGL operations; mostly tools which modify colors, brightness or contrast have been converted.

Version 0.2.0 is Part of Gimp 2.8.xx and Series 0.3.xx is Part of 2.9.x and in 2.10.0 Release Candidates. 0.4.0 is first Version for Version 2.10.0 of Gimp.

As of unstable 2.9.x series, all of GIMP's core relies on GEGL, and almost half of filters have been replaced with GEGL operations. Target is 100% of filters in GEGL in 2.10 and later.

Historically, the GEGL mascot, a five-legged goat created by George (Jiří) Lebl,[5] found life as an easter egg in GNOME desktops.[6]

OpenCL

Some of GEGL's operations are available in OpenCL-based hardware-accelerated version. A 3rd party effort, called GEGL-OpenCL[7], of converting more operations to OpenCL was started by Stream HPC in 2016[8]. The project was stagnant starting May 2017, but was revived in the summer of 2019.

gollark: 🐝
gollark: Just offer hosted cloud™ geometry dash instances which you are FORCED to use.
gollark: And you'll ALSO make the code quality worse and make it impossible to use if you stop working on it. That is a great idea. AND it'll be really annoying.
gollark: ...
gollark: But how many of them are 15-year-olds who will never pay for anything ever?

References

  1. "tags".
  2. "GIMP 2.6 Release". Retrieved 2008-10-01.
  3. "Gimp 2.10 announcement on Google+". Retrieved 2012-03-15.
  4. babl website
  5. George (Jiří) Lebl (2007-12-16). "Stuff of Jiří Lebl (or George)". Retrieved 2008-03-21. I'm a big supporter of free software and if I do work on free software it is mostly on GNOME.
  6. Christian and Steve (2002-02-02). "GNOME Summary - 2002-01-20 - 2002-02-02". GNOME Developer News. Archived from the original on 2009-04-18. Retrieved 2008-03-19. Up to this point this game has been considered just another Urban Legend by the summary editors, but no more.
  7. https://github.com/OpenCL/GEGL-OpenCL
  8. https://www.gimp.org/news/2016/01/28/gegl-opencl-streamcomputing/
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.