GEGL image processing

  • Floating point handling and processing and output of larger 8bit, 16bit integer and 32bit floating point per component buffers larger than RAM.

  • C based, object oriented API with introspection support for dynamic languages like python, ruby, javascript and php.

  • Processing

    • Iterative chunk-wise processing.

    • Processes subregions and dependencies.

    • Subgraph caches to aid performance of non-destructive editing.

    • Multi-threaded processing.

    • OpenCL acceleration, capable of hybrid cpu/gpu processing.

    • Experimental mipmap preview rendering, do zoomed out preview rendering touching only 25% 6.25% of the pixels.

  • GeglBuffer

    • Storage of all babl supported formats.

    • Sparse swapped buffers (larger than RAM images).

    • linear buffers (allocated internally or from external allocation.)

    • On demand tiled mipmapping.

    • Thread-safe reading/writing.

    • External tile-backends (allow wrapping other tiled buffer systems to use them through the GeglBuffer API).

    • Most operations operate in scRGB (using 32bit floating point/HDR linear light RGBA), operations use babl formats to specify whether data should be linearized for processing.

  • Bounding box based hit detection.

  • XML serialization format (not-finalized)