Re: Introduction to GEGL Buffers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2009/5/12 Øyvind Kolås <islewind@xxxxxxxxx>:
> - Add abyss policies to be used by resamplers, allowing configuring the
>  behavior of affine transforms and warping image operations.

An efficient way to do this is to remove the rule that buffers need to
have fixed-size, non-overlapping tiles.

If you remove this restriction, then an image, rather than having to
have it's own set of tiles, can instead just have a pointer to the
tiles on another image. This lets you efficiently implement operations
that keep most pixels unchanged but which make some small change to an
edge (for example).

You can then implement abyss policies by writing an operation that
enlarges an image in a certain way: for example by extending the edges
out by 10 pixels and filling with a solid color. For most of the
image, the operation can just use a tile from the original image at
effectively no cost. It's only tiles which include part of an edge
that need a copy and paint.

The resampler is then given the enlarged image to work on, and need
only generate pixels where the interpolation stencil is completely
filled. In effect, the abyss code runs per-edge-tile rather than
per-image-pixel and the cost almost vanishes.

Anyway: you get a very flexible abyss system which has almost no
memory or CPU cost. You can use the same system to implement zero-copy
crop and paste operators, of course.

John
_______________________________________________
Gegl-developer mailing list
Gegl-developer@xxxxxxxxxxxxxxxxxxxxxx
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gegl-developer


[Index of Archives]     [Yosemite News]     [Yosemite Photos]     [gtk]     [GIMP Users]     [KDE]     [Gimp's Home]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux