## 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)