Difference between revisions of "Glossary"

From GIMP Developer Wiki
Jump to: navigation, search
(edit CMYK: add GEGL handling, add pronouncation)
(edit 'deprecated': Apply GIMP's codestyle)
Line 164: Line 164:
*{{term | DAG}} - Directed Acyclic Graph. In computer science and mathematics a graph with directed edges and the attribute, that every node is reached never or only once on any path. For instance trees (as data structure) are DAGs.
*{{term | DAG}} - Directed Acyclic Graph. In computer science and mathematics a graph with directed edges and the attribute, that every node is reached never or only once on any path. For instance trees (as data structure) are DAGs.
*{{term | deprecated}} - a term from software development. Code marked as '''deprecated''' is outdated or obsolete. It and the code using it need to be replaced by {{link|refactoring|refactored}} code soon. Deprecated code often occurs as result of {{link|API}} changes.<br>Example: The code contains two functions '''do-this''' and '''do-that'''. '''Do-that''' calls '''do-this'''. '''Do-this''' is marked as deprecated. It soon needs to be replaced by a newer function '''do-this-better''' and '''do-that''' needs to call '''do-this-better''' instead.
*{{term | deprecated}} - a term from software development. Code marked as '''deprecated''' is outdated or obsolete. It and the code using it need to be replaced by {{link|refactoring|refactored}} code soon. Deprecated code often occurs as result of {{link|API}} changes.<br>Example: The code contains two functions '''do_this''' and '''do_that'''. Function '''do_that''' calls '''do_this'''. Function '''do_this''' is marked as deprecated. It soon needs to be replaced by a newer function '''do_this_better''' and '''do_that''' needs to call '''do_this_better''' instead.
*{{term | Desktop Entry Specification}} - This document describes desktop entries: files describing information about an application such as the name, icon, and description. GIMP installs such a [https://git.gnome.org/browse/gimp/plain/desktop/gimp.desktop.in.in .desktop file].<br>See also the [http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html detailed Desktop Entry specification].
*{{term | Desktop Entry Specification}} - This document describes desktop entries: files describing information about an application such as the name, icon, and description. GIMP installs such a [https://git.gnome.org/browse/gimp/plain/desktop/gimp.desktop.in.in .desktop file].<br>See also the [http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html detailed Desktop Entry specification].

Revision as of 06:52, 4 April 2014

This glossary contains definitions important for the GIMP development. These include functional definitions i.e. from computer graphics and color theory, photography, terms from babl and GEGL etc.

Report a bug

Table of Contents




[babl] specific to babl
[COL] colorimetry
[coll.] colloquial
[GEGL] specific to GEGL
[GIMP] specific to GIMP
[photo] photography


  • a (lowercase) - [babl] denotes a color channel to be premultiplied with alpha, for instance RaGaBa is premultiplied alpha RGB
  • a* (lowercase) - The axis in the CIELAB color model which denotes the green-magenta component of the color. A negative value on this axis denotes green and a positive value denotes magenta.
  • abyss - [GEGL] data from outside the input buffer.
  • abyss policy - [GEGL] the behaviour rule to handle abyss data: to clamp to the border, loop in the buffer extent, or implement a more intelligent algorithm. For instance see the Ripple operation. Setting the abyss policy to GEGL_ABYSS_LOOP adds the tileability to the operation for free.
  • alpha - opacity. An alpha value of 0 means 'transparent', an alpha value of 100 means 'fully opaque', values in between mean 'partly opaque'.
  • API - Application Programmers Interface. The technical interface of a library to external developers who are intended use it. It defines the provided services, their semantic and syntax. On implementation level these are the public data types, enumerators and functions with their signatures.
    See also: GEGL API , GEGL operation API, GIMP API.
  • ArgyllCMS - an open source color management system for profiling input devices (scanner, camera, etc) and calibrating and profiling output devices (printer, monitor, etc), plus a suite of command line utilities for exploring, linking, and converting between ICC profiles.
    See also the ArgyllCMS website.
  • Autohell - [coll.] synonym for Autotools, because they are practically hard to figure out.
  • Autotools - the GNU build system. They check the current configuration to ensure all dependencies are in place, generate the Makefiles and execute them to do several tasks like compiling, installing and testing a program.
    See also the GNU Autotools website.


  • b* (lowercase) - the axis in the CIELAB color model which denotes the blue-yellow component of the color. A negative value on this axis denotes blue and a positive value denotes yellow.
  • B (uppercase) -
    • Blue color channel in the RGB color model.
    • brightness component of the HSB color model.
    • [photo] symbol for brightness: obsolete, but may be found on older light meters. [2]
    • [photo] Bulb: used for long exposures timed by the photographer. Setting for shutter at which shutter opens when shutter button is pressed and stays open as long as shutter button is kept down. [2]
  • babl - a dynamic, any to any, pixel format translation library.
    See also: babl website
  • backend - generally the internal part of a library that implements its public API. In GEGL this could for instance be computing an operation, storing tiles and memory management.
  • black point - the light-source's (e.g. a monitor) or sensor's interpretation of black.
  • Bradford transform - a matrix used to convert XYZ colors to the LMS color space when chromatically adapting a color in order to maintain constant color appearance under different light sources. The Bradford transform is recommended by the ICC and used by ArgyllCMS and LCMS when making ICC D50-adapted RGB profiles from color spaces such as the sRGB D65 color space.
  • brightness - attribute of a visual perception according to which an area or color appears to emit, or reflect, more or less light. This correlates directly with the amplitude of the lightwave. [1] [4]
  • bug - an error in a program, e.g. an existing feature doesn't work as specified or usually expected. Requests for new features are not bugs, but enhancement requests.
  • Bugzilla - the GIMP project uses Bugzilla of the GNOME project, a bugtracker that allows us to coordinate bug reports. Bugzilla is also used for enhancement requests and the preferred way to submit patches for GIMP is to open a bug report and attach the patch to it.
    See also: Bugzilla website, Reporting bugs in GIMP.
  • build -
    • (verb) - the process of compiling and linking a software from its sourcecode.
    • (noun) - the result of the build process, i.e. a binary or archive, distributable file.


  • chroma - Colorfulness of an area judged as a proportion of the brightness of a similarly illuminated area that appears white or highly transmitting. [1] [4]
    See also saturation.
  • chromatic adaptation -
    • (in everyday experience) - the process by which our eyes automatically adapt to light from different light sources so that color appearance remains constant. As the color temperature of the ambient light changes, the respective sensitivities of the Long, Medium, and Short cone cells in the eyes also change. Without chromatic adaptation a white object might look blue in the shade, white in the sun, and yellow by candlelight, and a red object might look purple-red in the shade, red in the sun, and orange-red by candlelight.
    • (mathematically) - the process of using a chromatic adaptation model to convert RGB colors as perceived under one light source to the equivalent colors as perceived under a different light source, to maintain constant color appearance under both light sources. Proposed models include XYZ, Von Kries, Bradford, and Sharp.
  • chromatic adaptation model - a mathematical transform from the XYZ color space to the LMS color space. A chromatic adaptation model is used to calculate the equivalent XYZ colors required to maintain constant color appearance under different light sources.
  • chromaticity - The color properties of a sample judged independently of luminance, i.e. in terms of hue and saturation only. [1]
  • CIE - Commission Internationale de l'Eclairage (International Commission on Illumination). Independent, non-profit organization for recommendations on photometry and colorimetry. Its aim is to exchange information on all matters relating to the science and art of light and lighting, color and vision, photobiology and image technology worldwide. It is recognized by ISO as an international standardization body. The CIE has defined several color spaces that describe the range of visible colors in unambiguous numerical terms. [1] [4]
  • CIE 1976 L*a*b* - synonym of CIELAB
  • Clang - the C compiler of the LLVM project. Clang is able to cross-compile code, i.e. build GIMP for Windows on a Linux machine [7].
  • CLI - command line interface. A form of UI where the user interacts with the program by entering textual commands. This can e.g. be the set of commandline arguments that are passed to the the program on startup, or a commandline in the GUI to enter textual commands. You can get the set of GIMP's commandline arguments by entering gimp --help at the systems shell.
  • Clipboard Manager - The Clipboard Manager specification describes how applications can actively store the contents of the clipboard when the application is quit. This requires that a compliant clipboard manager is running. Standard specific to the X window system.
    See also Clipboard Manager specification.
  • CMY - color model with the three primary colors Cyan, Magent and Yellow. The three "subtractive" primary colors used as the basis of all dye or pigment-based printing systems and color photography. A full range of colors including neutral grays and blacks can be produced with good cyan, yellow and magenta colorants (e.g. color film dyes) but typical printing inks are less than perfect. [1]
  • CMYK -
    • color model with the four primary colors Cyan, Magenta, Yellow, Key color (usually Black). The four colors commonly used in process color printing. Black is added to CMY to enhance the density of dark areas and solve gray balance problems encountered when trying to make neutral grays with CMY alone. [1]
    • [babl] implementation of the CMYK color model. GEGL treats rendering CMYK as problem subset of rendering spot colors.
    • pronouncation: C.M.Y.K., not schmuck nor smug
  • color management - an approach to ensure that colors look the same (or at least most similar) across various devices in a workflow. For instance it ensures that photos taken from a camera look the same at the editors screen and the printer output. If you have questions on color management, then Øyvind Kolås (IRC nick: pippin) or Elle Stone (IRC nick: elle) are the best persons to ask in the project.
  • color model - a mathematical model to describe colors and handle them formally, such as points in a coordinate system. This is the more theoretically abstract background of color computation. Practically this term is often used synonymously to color space.
    Examples are CIELAB , RGB and XYZ .
  • color space - a geometric representation of color in space, usually of 3 dimensions [4]. While color models are the theoretical background color spaces describe the set of visible or reproducable colors [2]. Practically this term is often used synonymously to color model. To get a visual notion of various color spaces and their relationships see Bruce Lindblooms 3D Gamut Viewer demo.
    Examples are AdobeRGB, sRGB and Wide Gamut RGB.
    To assign a numerical vector to a real color you need both a color model and a color space. As an example the numbers (0,1,0) are given. In XYZ color model with sRGB color space they represent a pure green. In XYZ color model with AdobeRGB color space you get a pure, but more saturated green. In HSB color model+sRGB color space these numbers represent a pure black.
  • color temperature - formally the temperature of an ideal black body radiator whose radiation has the same chromaticity as that of a given stimulus. [4] Practically it's a synonym for white point [1]. Not to be confused with the artistic classification into warm colors (i.e. yellow, orange) and cold colors (i.e. blue).
    Unit: K (Kelvin).
  • compiler - a program to translate code in a programming language into executable machine code, i.e. gcc or Clang. In GIMP there's no recommended default C compiler. Instead the platform default will be used automatically.
  • connection - [GEGL] A link/pipe routing image flow between operations within the graph goes from an output pad to an input pad, in graph glossary this might also be referred to as an edge. [14]
  • Continuous Integration - a method to regularly fetch the source code from the version control system, build and test the software. Developers get almost immediate feedback whether their software builds and works well. By doing this on a regular basis bugs can be detected and fixed much earlier than if testing was the last step before the release or after release on the user's side. This increases the software quality. Modern continuous integration systems use a client-server architecture: a server does all the continuous integration jobs and users access it via a web browser (=the client). GIMP uses Jenkins as continuous integration server.


  • D50 - a CIE standard illuminant with the spectral power distribution of daylight (which has a color temperature of 5003 Kelvin). It is chosen for the special needs of the paper printing industry and thus the preferred reference white for evaluating prints on paper. Compared to D65 it's a bit more yellowish.
  • D65 - a CIE standard illuminant with the spectral power distribution of noon mid-latitude daylight (which has a color temperature of 6504 Kelvin). It's the white balance standard used for sRGB color space and to calibrate display screens. Compared to D50 it's a bit more bluish.
  • DAG - Directed Acyclic Graph. In computer science and mathematics a graph with directed edges and the attribute, that every node is reached never or only once on any path. For instance trees (as data structure) are DAGs.
  • deprecated - a term from software development. Code marked as deprecated is outdated or obsolete. It and the code using it need to be replaced by refactored code soon. Deprecated code often occurs as result of API changes.
    Example: The code contains two functions do_this and do_that. Function do_that calls do_this. Function do_this is marked as deprecated. It soon needs to be replaced by a newer function do_this_better and do_that needs to call do_this_better instead.
  • Desktop Entry Specification - This document describes desktop entries: files describing information about an application such as the name, icon, and description. GIMP installs such a .desktop file.
    See also the detailed Desktop Entry specification.
  • DND - Drag and Drop.
  • DNG - Digital Negative. An image file format aiming to become a device-independent standard for storing raw data from digital cameras.
    See also DNG specification.
  • dpi - dots per inch. Measure of resolution of a device as density or frequency of points or dots which can be addressed or referred to by the device. [2] It is often confused with lpi and ppi. DPI refers to the amount of ink dots in printing. Each of these dots has a certain primary, for instance a CMYK color. Pixels of secondary colors are created by plotting many of these dots side-by-side. Thus a high DPI count isn't the same as a high PPI count. Because of technological progress in ink printing this measure is of decreasing importance.
  • dynamic range - Measure of spread from the highest to lowest energy levels that can be captured by an imaging or recording or reproduced by a play-back device. E.g. a top-class scanning camera back can capture a range of 11 f/stops; a good film-scanner may be able to manage under 9 stops. The concept of energy levels is usually converted to densities in devices such as scanners e.g. dynamic range is '0.2 - 3.0D units'. [2]


  • enhancement request - the request for a new feature, that is not already in GIMP. An enhancement request should never be filed without prior discussion on the gimp-developer mailing list. This is to make sure that the enhancement requests that are filed are well-specified and aligned with the overall goals the developers have for GIMP.
  • Extended Window Manager Hints - The Window Manager Specification is meant to unify the GNOME and KDE window manager hint conventions. Standard specific to the X window system.
    See also the Extended Window Manager Hints specification.


  • File URI specification - Specifies how URIs for normal UNIX filenames (file: URIs) are interpreted and created. This functionality is provided by GLib.
    See also the detailed File URI specification.


  • gcc - a C compiler. Part of the free GNU Compiler Collection. On Linux it usually ships with your distribution. On Windows it's part of MinGW. On OS X XCode versions before 4.2 used gcc; then Apple moved to llvm-gcc and Clang. FreeBSD 10 deprecates gcc support in favor of Clang. [5] Gcc is able to cross-compile, i.e. build GIMP for Windows on a Linux machine.
  • GEGL - Generic Graphics Library, a graph based image processing framework. It is GIMP's foundation for nondestructive image editing in high bit depths. GEGL provides the infrastructure to do demand based, cached, nondestructive image editing on larger than RAM buffers. Through babl it provides support for a wide range of color models and pixel storage formats for input and output. GEGL support in current GIMP versions is experimental and will be official part of GIMP in version 2.10.
    See also: GEGL website, GEGL porting matrix
  • GEGL-chant - A way to hide some boilerplate code in GEGL and to reduce code duplications defining the parameters specifications of each operation. To achieve this it makes heavy use of C macro definitions and the C preprocessor. It allows defining a property on one line instead of the usual GObject way which needs 4 or 5 different locations in the class modified for each added property. The chanted properties can contain metadata, such as valid values, upper and lower bounds and their suitability for nonlinear compuation.
    See also the file gegl-chant.h and the GEGL operations using it.
  • GIF - Graphics Interchange Format. A bitmap image file format, especially for web graphics with low image depths and optionally transparency, i.e. logos or animations. In GIMP the GIF plug-in handles this format.
    See also: GIF89a specification, GIMP's GIF loader, GIMP's GIF saver
  • GNOME -
    • a free desktop environment for Unix-style operating systems with a GUI and software for daily use. GNOME applications can also be compiled and run on other platforms, such as Windows. GIMP is part of this desktop environment. [11]
    • The GNOME Project is a diverse international community which involves thousands of contributors, many of whom are volunteers. Aim of the GNOME project is to make the GNOME desktop environment. [11]
  • GNU coding standards - A guide to writing portable, robust and reliable programs. Also defines the GNU coding style.
  • GPU computing - a means to utilize the computing power of graphic-cards processors for general purposes.
  • gradation - relationship of reproduced lightness values to original lightness values in an imaging process. It is usually expressed as a 'tone curve', which is the Curves tool in GIMP. [1]
  • graph - in computer science and mathematics a composition of nodes and edges. In [GEGL] the graph is a DAG. [14] This means, that every operation node is reached once at most, but never two or more times.
  • GSoC - Google Summer of Code. Annual mentoring program hosted by Google Inc. to offer and award students to work on open source projects during summer. GIMP has been participating for many years.
    See also: GSoC website, GIMP's GSoC participation
  • GUI - graphical user interface. A form of UI which uses graphical symbolic representations of objects (like icons, buttons, a canvas for drawing) which are manipulated with a pointing device or keyboard.


  • Hackordnung - The last section from the file HACKING as found in the GIMP source tree explains how the GIMP source code should be formatted.
  • HIG - Human Interface Guidelines. Set of visual and interaction guidelines to work with a particular platform.


  • ICC - International Color Consortium. An organisation of industry vendors for the purpose of creating, promoting and encouraging the standardization and evolution of an open, vendor-neutral, cross-platform color management system architecture and components. [9]
  • ICC Profiles in X specification - a specification for associating ICC color profiles with X screens. GIMP implements this proposed standard since version 2.4.
    See also detailed ICC Profiles in X specification
  • ICC specification - Specifies the profile format defined by the International Color Consortium (ICC). The intent of this format is to provide a cross-platform device profile format that can be used to translate color data between device colorspaces. The ICC specification is approved as international standard ISO 15076-1
    See also detailed ICC specification.
  • ICCCM - Inter-Client Communication Conventions Manual. This spec defines the interaction between X11 clients. In particular it talks about selections, cut buffers, window and session management, manipulation of shared resources and device color characterization.
    See also ICCCM specification.
  • IDE - Integrated Development Environment. An integrated set of development tools, such as code editor, compiler, linker, debugger, documenter, testing tools, version control and deployment aid. Examples are Anjuta, Code::Blocks, Eclipse, Emacs, KDevelop and Netbeans. We GIMP developers don't make rules about the development environment. Some of us use Emacs, Eclipse or Netbeans while others prefer simple editors (Geany, GEdit, Vi) and command line tools instead of an IDE.
  • illuminance - measurement of the amount of light coming from a light source. Illuminance is measured in footcandles or Lux. [1]
  • illuminant -
    • a mathematical description of a real or imaginary light source described by its spectral power distribution. This definition applies especially for standard illuminants like D50 and D65. For examples and calculations see CIE's selected colorimetric tables (xls). Illuminant A was designated to represent tungsten light and Illuminant D was designated to represent daylight. [1]
    • [coll.] any kind of light falling on a body or scene [4].
  • ILV - International Lighting Vocabulary. A dictionary of the CIE with standard definitions regarding light. [4]
  • image pyramid - a set of images with the same content, but pre-rendered in different sizes. The aim is to increase the rendering speed while reducing aliasing artifacts and assuring continuity within and between several target images. [15]
  • introspection - a method in object oriented programming techniques to gather information about other classes at runtime. GEGL uses GObject introspection and there are plans for GIMP to do the same.
  • ISO -
    • the International Organization for Standardization. An international association to develop and publish standards. [12]
    • [photo] the film speed, e.g. the sensitivity of the film grain or camera sensor to light. The higher this sensitivity, the less light is necessary to take a photo, but the photo becomes more noisy resp. grainy.


  • JNG - JPEG network graphics format. A bitmap image file format. GIMP doesn't use this format yet but it would be nice to extend the MNG plug-in to use it and to add a dedicated JNG plug-in.
    See also specification.
  • JPEG -
    • Joint Photographic Experts Group. A lossy compression method standardised by the ISO. [8]
    • An image file format and its filename extension, see JPEG JFIF
  • JPEG JFIF - an image file format (usually referred to as JPEG) for the transport of single JPEG-compressed images. It has three color channels (Red, Green, Blue) with a bit depth of 8 bit each. JPEG JFIF doesn't support transparency. It's most often used for photographs. In GIMP the JPEG plug-in handles this format.



  • L (uppercase) - The axis in the CIELAB color model which denotes the lightness component of the color. A low numerical value on this axis denotes a dark color and a high value a light color.
  • LCMS - Little Color Management System. LCMS is an open-source color management engine with focus on small footprint, accuracy and performance. It uses the ICC specification.
    See also the LCMS website.
  • LGM - Libre Graphics Meeting. Annual conference of developers and users of graphics open source software. GIMP has been participating for many years.
    See also the LGM website
  • LGW - Libre Graphics World. LGW is an online magazine for creatives using free applications for digital painting, graphic and web design, desktop publishing, photography and CAD. Its focus are news, tutorials and articles to provide most up to date information about evolution of these applications and best practices. One of LGW's authors is Alexandre Prokoudine (prokoudine at IRC)
    See also LGW website.
  • light, linear - light as it is in nature and captured by camera sensors (and thus is encoded in RAW images).
  • light, perceived - light as it is processed by eye and brain. The difference between linear and perceived light is that human eyes react to the same change of (linear) light with different sensitivity in dark or light environments. Perceived light is the basis of color (e.g. color is the result of light, processed by eyes and brain).
  • lightness - [COL] a number that corresponds to the human perception of reflected light from a surface (e.g. the brightness of a color relative to the brightness of a similar illuminated white area) [1] [4].
  • link, dynamically - the process of creating a library that is not part of the program binary, but a separate file that is loaded at runtime. This makes it easy to reuse the same library for many programs. On the other hand, many versions of the same dynamic library can lead to usage of the wrong library version at runtime (the so-called DLL hell). Dynamically loaded libraries have the file extension .dll on Windows, .so on Linux and .dylib on OS X.
    See also Stackoverflow article: What do 'statically linked' and 'dynamically linked' mean?.
  • linker - a program to assemble single binary artifacts (so called 'object files') to a bigger piece of software (e.g. the program or a library).
  • LLVM - Low Level Virtual Machine. A collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines [6]. You can get it for Linux, Windows and FreeBSD 9 from the LLVM download page. On OS X LLVM is part of XCode 4.2 and later. LLVM's Clang is also the default C compiler in FreeBSD 10.
  • LMS - a color space model that describes colors in terms of the sensitivities of the three types of cone cells in the human eye, which have overlapping sensitivities to Long, Medium, and Short wavelengths of light. When chromatically adapting a color from one light source to another to maintain color constancy, the color is converted from XYZ to LMS using a chromatic adaptation model such as the Bradford transform.
  • lpi - lines per inch. measure of resolution or fineness of photo-mechanical reproduction. [2]
  • luminance -
    • the weighted sum of R, G and B color component (=in linear light) Wikipedia article
    • [COL] a measurement of the amount of light leaving the surface of an object in a particular direction. It is often expressed in candelas per square meter (cd/m2) [1].
  • luminance, relative - luminance with numerical values normalized to 1...100 (100=reference white), see Wikipedia.
  • LUT - Look-Up Table. A key-value-table, which is queried with a key and returns the assigned value. Synonyms are map or dictionary. It's a convenient way to get the results of a time-consuming or stochastic function quickly. The downside is that it potentially uses more memory than a computation.
  • LUT profile - a color profile which internally uses a LUT to assign output color values to input color values. LUT profiles have a black and white point. For instance printer profiles are mostly LUT profiles. [22]


  • make - a programming tool to control the generation of executables and other non-source files of a program from the program's source files. [13]
    See also GNU make website.
  • Makefile - a text file to control make. It contains all the make targets. In GIMP this file is generated from the Makefile.am file by the Autotools.
  • make target - a CLI set of commands for make to trigger various actions, e.g. compiling a program from the sources.
  • meta operation - [GEGL] a composite operation, i.e. an operation that consists of other operations.
  • module - a part of GIMP providing optional functionality, such as input controllers, color selectors and display filters. Each module can be activated and deactivated in GIMP's Module manager; the changes apply at GIMPs next start. Technically a module is tightly integrated with the GIMP core. It is a shared object that runs in the GIMP process.
    See also GIMP's modules, plug-in.



  • OpenCL - open standard for parallel programming of heterogeneous systems, i.e. using additional CPU processors or GPU computing. OpenCL requires a driver from the manufacturer of the CPU or GPU. GEGL uses OpenCL to improve its own performance.
    See also OpenCL website, GEGL porting matrix.
  • OpenICC - a open source software project with two main goals. The first goal is to work out a common set of settings for color savvy applications to share profiles and settings. The second goal is to bring together those developers in areas like printing, display and desktop applications to work together to make color management end to end work for open source applications. [21]
    See also: website
  • operation - [GEGL]The processing primitive of GEGL, it is where the actual image processing takes place. Operations are plug-ins and provide the actual functionality of GEGL [14]


  • pad - [GEGL] The part of a node that exchanges image content. The place where image "pipes" are used to connect the various operations in the composition. [14]
    See also input pad, output pad.
  • PCS - Profile Connection Space. The reference color space to convert from one ICC profile to another. Its purpose is to exchange color information across various devices. Usual PCS's are LAB and XYZ. The image editing RGB color spaces like sRGB use XYZ.
  • PDB - Procedural DataBase. The PDB (Procedural DataBase) is the most important interface to access the image manipulation functions of GIMP. The libgimp library provides some functions to call functions from the PDB or enter new functions into the PDB.
    See also PDB source code.
  • Perl - a programming language. Perl programs are interpreted. The filename extension is .pl. GIMP itself uses it to generate PDB interfaces from plug-ins, see the Perl files in /plug-ins/common and /tools/pdbgen. Aside from that there's GIMP-Perl, which is a separate GIMP plug-in.
    See also Perl website.
  • plug-in - an optional part of GEGL and GIMP, providing extra functionality, like filters and file loaders/savers. GIMP plug-ins are programmed in C or Python. Plugins are limited mostly to accessing image data.
The difference to scripts is not functional, but only technical. In fact, GIMP's Script-Fu interpreter is a plug-in.
The difference to modules is that modules tend to be more tightly integrated with the GIMP core, while plug-ins are almost standalone. Modules are shared objects that run in the GIMP process, while plug-ins are separate executables, which are run in a different process. This means that a crashing module will crash GIMP, while a crashing plug-in doesn't cause GIMP to crash.
See also GIMP's plug-ins, GIMP plug-in registry
  • PNG - Portable Network Graphics. A bitmap image file format. In GIMP the PNG plug-in handles this format. GIMP also reads patterns in the PNG file format and it stores thumbnails as PNG images.
    See also PNG specification.
  • ppi - points per inch; pixels per inch: Measure of input resolution e.g. of scanning device, measured as the number of points on the object at which a sample or measure is taken or which are resolved by the device per linear inch on a given axis: e.g. 600ppi means six hundred points per inch, usually along the axis of the scanner sensor. [2] Increasing the PPI count increases the image quality up to a certain degree: whether an image is perceived as fine or coarse granular also depends on the sensitivity of the human eye and the distance between eye and image. Image quality also depends on the contrast and the smoothness of the tonal values.
    See also dpi, lpi.
  • primary - abbreviation for primary color, e.g. one of the colors in a color model of which all other colors are mixed from. In RGB these are Red, Green and Blue while in CMY these are Cyan, Magenta and Yellow.
  • property - [GEGL] an attribute that controls the behavior of an operation. Through the use of GParamSpecs properties are self documenting via introspection. [14]


QA - Quality Assurance. Actions to ensure quality during production. For software products these include for instance involvement of users and other relevant stakeholders, proper design of interactional and technical architectures, obeying coding standards, reviews and tests.


  • resolution (from [2]) -
    • For input devices e.g. cameras, scanners: measure of the ability of a system to reproduce details present in a subject so that they are in the image. Measure of highest spatial frequency which can be recorded by the system.
      Units: total number of usable pixels for digital cameras; ppi for scanners; line pairs per millimetre for objectives (not to be confused with lpi!).
    • For output devices e.g. printers, film-writers: measure of system's ability to address or refer to separate points or lines of output.
      Unit: dpi.
    • Measure of system's ability to distinguish variations in colors or of density.
      Unit: bit depth (total number of bits available for encoding values).
    • For positioning or focusing mechanisms: the minimum repeatable adjustment increment achievable.
  • ROI - [GEGL] - region of interest. It's the area you're currently working on in your GEGL operation.


  • Shared MIME Database - The shared MIME database contains common MIME types, descriptions, and rules for determining the types of files. GIMP file plug-ins should use the MIME types and descriptions defined here.
    See also Shared MIME Database specification.
  • Startup Notification - Specifies a mechanism allowing a desktop environment to track application startup to provide user feedback. GTK+ provides support for this protocol.
    See also Startup Notification specification.
  • SVG 1.1 - Scalable Vector Graphics. A vector graphics format. GIMP uses it to import vector graphics, import and export paths and load gradients from SVG files. In GIMP the SVG plug-in handles this format. To create standards conform SVG graphics with free, open source software you can use Inkscape for instance.
    See also W3C recommendation


  • Thumbnail Managing Standard - Deals with the permanent storage of previews for file content. In particular, it tries to define a general and widely accepted standard for this task. GIMP implements this standard and dropped support for the old-fashioned .xvpics.
    See also Thumbnail Managing Standard specification.
  • tile - [GEGL] Functionally a rectangular part of an operation's input, intermediate or output data. Technically tiles are internal implementation parts of GEGL buffers, i.e. not exposed in the GEGL buffer APIs. [14]
  • tile backend - [GEGL] the implementation of pixel storage for a GeglBuffer (synonymous to a file system driver in an operating system). There are backends storing each tile as separate files, all tiles of a buffer in a file, communicate over gimps wire-protocol for plug-ins to operate on GeglBuffers where the tiles are stored in the main GIMP process. Other possible tile backends could communicate over the network to fetch spatial tiles from map providers (OpenStreetMap etc.)
  • TRC - Tone Response Curve. A curve describing the signal response of the eye or an sensor to changes in linear light and as such the foundation for perceived light.


  • UI - user interface. The part of the program the user interacts with.
    See also: CLI, GUI.


  • Value -
    • Level of brightness of a pixel or color as defined in HSV color model. [2]
    • Designation of lightness of color in the Munsell system of color nomenclature. [2]
    • Tone or brightness of a color as assessed subjectively: high values give light colors, low value colors appear dark. [2]
    • [photo] in the Zone System the step or zone which corresponds to a certain range of subject brightness. [2]
    • [photo] Camera setting or range of settings based on scales of shutter time, lens aperture, exposure value, luminance and film speed. [2]
  • Version Control System - a software system that records all changes to arbitrary files and file sets over time. It's allows you to recall specific versions later, compare versions, review changes made over time, find out who last modified something or which change introduced a bug, revert changes etc. [16] We use Git for managing the babl, GEGL and GIMP source code and documentation.


  • W3C - World Wide Web Consortium. The W3C is an international community where member organizations, a full-time staff, and the public work together to develop web standards, such as SVG 1.1, XML and XSL. [10]
Wilber, the GIMP mascot


  • XDND - Drag-and-Drop Protocol for the X Window System. XDND defines a standard for drag and drop on X11. It is implemented by GTK+.
    See also XDND specification.
  • XDS - Direct Save Protocol for the X Window System. XDS defines an extension to XDND that allow users to save a file by simply dragging it to a file manager window. GIMP supports this protocol since version 2.4.
    See also XDS specification.
  • XSETTINGS - The XSETTINGS protocol provides a mechanism for applications written with different toolkits to share simple configuration settings such as double-click-times and background colors. GTK+ hides this from us.
    See also XSETTINGS specification.
  • XSL - Extensible Stylesheet Language Family. XSL is a family of recommendations for defining XML document transformation and presentation. It consists of the parts XSLT, XML Path Language (XPath) and XSL Formatting Objects (XSL-FO).
    See also: XSL website at W3C.


  • YCbCr - a color model with the components Y (luminance), Cb and Cr. Unlike RGB it encodes the image information in luminance (channel Y) and chrominance (channels Cb and Cr). YCbCr operates in linear light. It is used for digital video and has good image compression capabilities.
  • YCC - abbreviation of YCbCr.
  • YIQ - color model which separates luminance (Y component) from chroma (I, Q components). It is used for analog TV (NTSC in the U.S.) and thus irrelevant for digital image editing.
  • YPbPr - the analog equivalent to YCbCr and thus irrelevant for digital image editing.
  • YUV - color model which separates luminance (Y component) from chroma (U, V components). It is used for analog TV (PAL in Europe) and thus irrelevant for digital image editing.



  1. CHROMiX ColorWiki
  2. idigitalphoto Photography Dictionary
  3. Wikipedia:HSL and HSV
  4. CIE: e-ILV: International Lighting Vocabulary
  5. Michael Larabel: FreeBSD 10 To Use Clang Compiler, Deprecate GCC
  6. LLVM website
  7. Clang Team: Cross-compilation using Clang
  8. W3C, Chris Lilley: JPEG JFIF
  9. ICC: About ICC
  10. W3C website
  11. GNOME website
  12. ISO website
  13. GNU Make website
  14. GEGL glossary
  15. Lance, Williams: Pyramidal parametrics, Computer Graphics 7.3 (1983): 1-11.
  16. Scott Chacon: Getting Started About Version Control, licensed under CC BY-NC-SA 3.0
  17. Lucas Rocha, Announcement at GNOME's devel-announce-list, 19.03.2009
  18. GEGL website
  19. GTK+ website
  20. Linux Devcenter: Developer interview: Robin Rowe and Andrew Prock on Cinepaint
  21. OpenICC website
  22. Stone, Elle: Completely Painless Programmer's Guide to XYZ, RGB, ICC, xyY, and TRCs