GEGL
Encyclopedia
The Generic Graphics Library (GEGL) is a programming library under development for image processing
Image processing
In electrical engineering and computer science, image processing is any form of signal processing for which the input is an image, such as a photograph or video frame; the output of image processing may be either an image or, a set of characteristics or parameters related to the image...

 applications. It is mainly developed for GIMP
GIMP
GIMP is a free software raster graphics editor. It is primarily employed as an image retouching and editing tool and is freely available in versions tailored for most popular operating systems including Microsoft Windows, Apple Mac OS X, and Linux.In addition to detailed image retouching and...

 in order to bring support for higher bit depth
Color depth
In computer graphics, color depth or bit depth is the number of bits used to represent the color of a single pixel in a bitmapped image or video frame buffer. This concept is also known as bits per pixel , particularly when specified along with the number of bits used...

 images than GIMP currently supports, as well as non-destructive editing
Non-destructive editing
Non-destructive editing is a form of editing signals where the original content is not modified in the course of editing—instead the edits themselves are edited by video editing software on a non-linear editing system ....

. It has been partially implemented in GIMP 2.6, and may be used by other software too.

Historically, the GEGL mascot, a five-legged goat envisioned and brought to life by George Lebl,
found life as an easter egg
Easter egg (media)
Image:Carl Oswald Rostosky - Zwei Kaninchen und ein Igel 1861.jpg|250px|thumb|right|Example of Easter egg hidden within imagerect 467 383 539 434 desc none...

 in GNOME
GNOME
GNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software...

 desktops.

GEGL design

GEGL is modelled after directed acyclic graph
Directed acyclic graph
In mathematics and computer science, a directed acyclic graph , is a directed graph with no directed cycles. That is, it is formed by a collection of vertices and directed edges, each edge connecting one vertex to another, such that there is no way to start at some vertex v and follow a sequence of...

, 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). Work is processed by an on-demand model where it is done only as required.

Using an on-demand model 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.

GEGL operators

An operator (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), or more complex, such as colorspace conversions.

babl

babl is a support library for GEGL which provides a generic way to deal with color space
Color space
A color model is an abstract mathematical model describing the way colors can be represented as tuples of numbers, typically as three or four values or color components...

 conversions;
This is done by abstracting the fundamental color operations so that GEGL does not have to be as aware of them. Through babl GEGL provides an optimized and powerful (optionally with SIMD
SIMD
Single instruction, multiple data , is a class of parallel computers in Flynn's taxonomy. It describes computers with multiple processing elements that perform the same operation on multiple data simultaneously...

 support) treatment of arbitrary color data; This enables dependant applications to efficiently support a wide range of color spaces (from 8-bit RGB
RGB color model
The RGB color model is an additive color model in which red, green, and blue light is added together in various ways to reproduce a broad array of colors...

 to full floating point
Floating point
In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...

 CMYK
CMYK color model
The CMYK color model is a subtractive color model, used in color printing, and is also used to describe the printing process itself. CMYK refers to the four inks used in some color printing: cyan, magenta, yellow, and key...

) with minimal extra application code.

OpenRaster

OpenRaster is an XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

 file format used for saving raster graphics
Raster graphics
In computer graphics, a raster graphics image, or bitmap, is a data structure representing a generally rectangular grid of pixels, or points of color, viewable via a monitor, paper, or other display medium...

. GEGL's lead developer Øyvind Kolås has helped specifying OpenRaster so that it is capable of saving a GEGL graph.

History of GEGL

GEGL was originally conceived as a GIMP core replacement in 2000, finally in 2006 the external API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

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.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK