[Gegl-developer] Scanline processing in a GeglOperation
Hans Petter Jansson
hpj at copyleft.no
Mon Apr 21 11:51:51 PDT 2008
On Mon, 2008-04-21 at 16:43 +0100, Øyvind Kolås wrote:
> On Mon, Apr 21, 2008 at 11:18 AM, Øyvind Kolås <pippin at gimp.org> wrote:
> > Thus to correctly implement floyd steinberg you would actually have to
> > request the processing of the entire image and not piece by piece thus
> > losing the ability to handle larger than RAM images.
> This isn't entirely true as you can fetch and store individual
> scanlines when reading/writing from the involved GeglBuffers as the op
> is processing for the entire image, nevertheless such an op would need
> the entire image as source data to update the bottomrightmost pixel.
> And it would make future scheduling and paralellization of graphs
> involving such ops much harder than needed.
Yeah, that's what I thought. But insofar as my implementation is
concerned, I don't care about speed, as long as it can be done.
So I guess the question is: How do I request processing of the entire
image, on a row by row basis?
> I imagine either green
> noise or blue noise based halftoning/dither might have properties that
> align better with the GEGL architecture, not to mention that those
> approaches do not suffer from similar artifacts of repeating patterns
> that floyd steinberg dithering suffers from.
Well, I think the aesthetic merits of the Floyd-Steinberg class of error
diffusion algorithms is outside the scope of this discussion :)
--
Hans Petter Jansson <hpj at copyleft.no>
More information about the Gegl-developer
mailing list