RSS/Atom feed Twitter
Site is read-only, email is disabled

tile size in filters

This discussion is connected to the gegl-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

6 of 6 messages available
Toggle history

Please log in to manage your subscriptions.

tile size in filters Dierk Fröhling 09 Oct 11:08
  tile size in filters Hans Petter Jansson 09 Oct 11:15
   tile size in filters Dierk Fröhling 09 Oct 12:40
   tile size in filters Dierk Fröhling 20 Oct 16:56
    memory handling as a lib [was: Re: tile size in filters] Dierk Fröhling 22 Oct 11:54
    tile size in filters Øyvind Kolås 24 Oct 20:38
Dierk Fröhling
2008-10-09 11:08:50 UTC (about 16 years ago)

tile size in filters

Hello all,

I need to handle all pixels of an image in one tile for my new filter. The problem is that every pixel in the filtered image should depend on values from all other pixels...
I tried out different things from other (example) filters (including the bounding box stuff) but my image is always split into several tiles. Is there any way to tell the gegl infrastructure to use the whole image as one tile as input pad?
The bounding box stuff doesn't work especially because the size of images can differ.
I know that this could lead to memory problems with really big images...

Thanks in advance,

Dierk

Hans Petter Jansson
2008-10-09 11:15:40 UTC (about 16 years ago)

tile size in filters

On Thu, 2008-10-09 at 11:08 +0200, Dierk Fröhling wrote:

I need to handle all pixels of an image in one tile for my new filter. The problem is that every pixel in the filtered image should depend on values from all other pixels...
I tried out different things from other (example) filters (including the bounding box stuff) but my image is always split into several tiles. Is there any way to tell the gegl infrastructure to use the whole image as one tile as input pad?
The bounding box stuff doesn't work especially because the size of images can differ.
I know that this could lead to memory problems with really big images...

I wrote a color reduction filter that does Floyd-Steinberg dithering, where each pixel depends on all previous pixels (the bottom-right pixel depends on the entire image). It should be among the workshop filters. Maybe that'd be useful to look at.

Dierk Fröhling
2008-10-09 12:40:05 UTC (about 16 years ago)

tile size in filters

Hans Petter Jansson wrote:

I wrote a color reduction filter that does Floyd-Steinberg dithering, where each pixel depends on all previous pixels (the bottom-right pixel depends on the entire image). It should be among the workshop filters. Maybe that'd be useful to look at.

Thanx!
That's it!

Bye,

Dierk

Dierk Fröhling
2008-10-20 16:56:43 UTC (about 16 years ago)

tile size in filters

Hans Petter Jansson wrote:

On Thu, 2008-10-09 at 11:08 +0200, Dierk Fröhling wrote:

I need to handle all pixels of an image in one tile for my new filter. The problem is that every pixel in the filtered image should depend on values from all other pixels...
I tried out different things from other (example) filters (including the bounding box stuff) but my image is always split into several tiles. Is there any way to tell the gegl infrastructure to use the whole image as one tile as input pad?
The bounding box stuff doesn't work especially because the size of images can differ.
I know that this could lead to memory problems with really big images...

I wrote a color reduction filter that does Floyd-Steinberg dithering, where each pixel depends on all previous pixels (the bottom-right pixel depends on the entire image). It should be among the workshop filters. Maybe that'd be useful to look at.

This worked up to a certain size of images - but with an image with 3112 x 4200 pixels I get this message from gegl:

** Message: unable to write tile data to self: No space left on device (-1/131072 bytes written)

There is enough space in my /tmp directory and all other possible working directories for gegl - 2GB of memory should be enough as well... It's not that my filter won't work at all with these big images - but only in parts. It seems that gegl splits it into tiles again...

Dierk

Dierk Fröhling
2008-10-22 11:54:31 UTC (about 16 years ago)

memory handling as a lib [was: Re: tile size in filters]

Dierk Fröhling wrote:

Hans Petter Jansson wrote:

On Thu, 2008-10-09 at 11:08 +0200, Dierk Fröhling wrote:

I need to handle all pixels of an image in one tile for my new filter. The problem is that every pixel in the filtered image should depend on values from all other pixels...
I tried out different things from other (example) filters (including the bounding box stuff) but my image is always split into several tiles. Is there any way to tell the gegl infrastructure to use the whole image as one tile as input pad?
The bounding box stuff doesn't work especially because the size of images can differ.
I know that this could lead to memory problems with really big images...

I wrote a color reduction filter that does Floyd-Steinberg dithering, where each pixel depends on all previous pixels (the bottom-right pixel depends on the entire image). It should be among the workshop filters. Maybe that'd be useful to look at.

This worked up to a certain size of images - but with an image with 3112 x 4200 pixels I get this message from gegl:

** Message: unable to write tile data to self: No space left on device (-1/131072 bytes written)

There is enough space in my /tmp directory and all other possible working directories for gegl - 2GB of memory should be enough as well... It's not that my filter won't work at all with these big images - but only in parts. It seems that gegl splits it into tiles again...

Ok - I found out myself about the "no space left on device" - changing the value of environment variable GEGL_SWAP to another filesystem which has not only 500MB but 1GB free fixed this. But this works only if I call gegl as a standalone application. If I call it as a library from within my own application it seems to ignore environment variables and uses RAM swapping again with this 256MB limit which is to less for my images... Does anybody know a solution? Or is this a bug in the gegl-lib?

Dierk

Øyvind Kolås
2008-10-24 20:38:45 UTC (about 16 years ago)

tile size in filters

On Mon, Oct 20, 2008 at 3:56 PM, Dierk Fröhling wrote:

Hans Petter Jansson wrote:

On Thu, 2008-10-09 at 11:08 +0200, Dierk Fröhling wrote:

I need to handle all pixels of an image in one tile for my new filter. The problem is that every pixel in the filtered image should depend on values from all other pixels...

..

I wrote a color reduction filter that does Floyd-Steinberg dithering, where each pixel depends on all previous pixels (the bottom-right pixel depends on the entire image). It should be among the workshop filters. Maybe that'd be useful to look at.

This worked up to a certain size of images - but with an image with 3112 x 4200 pixels I get this message from gegl:

** Message: unable to write tile data to self: No space left on device (-1/131072 bytes written)

There is enough space in my /tmp directory and all other possible working directories for gegl - 2GB of memory should be enough as well... It's not that my filter won't work at all with these big images - but only in parts. It seems that gegl splits it into tiles again...

The place that GEGL probably tries to swap is ~/.gegl/swap I'm not sure what is going on here. Does this happen with the color reduction filter as well? Please open a bug
so we can track this issue, perhaps even with an example XML file provoking the issue (perhaps using fractal-explorer as source data or some similar synthethic buffer as input.)

/Øyvind K.