Sign up now! · Forgot password?
RSS/Atom feed identi.ca Twitter

gaussian reduce operator, and GIMPGEGL operator

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.

4 of 4 messages available
Toggle history

Please log in to manage your subscriptions.

gaussian reduce operator, and GIMPGEGL operator bootch@nc.rr.com 29 Mar 15:12
  gaussian reduce operator, and GIMPGEGL operator Øyvind Kolås 29 Mar 16:14
   gaussian reduce operator, and GIMPGEGL operator bootch@nc.rr.com 29 Mar 19:10
    gaussian reduce operator, and GIMPGEGL operator Øyvind Kolås 29 Mar 19:29
bootch@nc.rr.com
2012-03-29 15:12:34 UTC (over 2 years ago)

gaussian reduce operator, and GIMPGEGL operator

This message has two subjects.

1. Is there a gaussian reduce operation in GEGL? Refer to the paper by Burt and Adelson, 1983, where it is called REDUCE and apparently claims that it is faster than operation gaussian blur followed by down-sample (scale by 1/2). Used in the production of a gaussian pyramid. It seems to me to be a fundamental operation and should be in GEGL. A search shows that the operation mantiuk06 for GSOC might have generated gaussian pyramids but AFAIK did not expose reduce() as a operation. There is also a corresponding inverse operation EXPAND, which is useful in generating a Laplacian pyramid. I have a use for a gaussian pyramid and might consider implementing gaussian reduce for GEGL (instead of the naive approach of using gaussian blur followed by scale.) The gaussian and laplacian pyramids are used in texture synthesis and image compression.

2. A few weeks ago I posted to GIMP-dev list about https://github.com/bootchk/pluginGEGLpluginGIMP a GEGL operation that lets you used GEGL in GIMP plugins written in Python and using Pygegl binding. Its not in the form of a proper patch to GEGL but I would make a patch if I thought it would help anyone to evaluate whether it should be part of GEGL.

Øyvind Kolås
2012-03-29 16:14:58 UTC (over 2 years ago)

gaussian reduce operator, and GIMPGEGL operator

On Thu, Mar 29, 2012 at 4:12 PM, wrote:

This message has two subjects.
1. Is there a gaussian reduce operation in GEGL? Refer to the paper by Burt and Adelson, 1983, where it is called REDUCE and apparently claims that it is faster than operation gaussian blur followed by down-sample (scale by 1/2). Used in the production of a gaussian pyramid. It seems to me to be a fundamental operation and should be in GEGL. A search shows that the operation mantiuk06 for GSOC might have generated gaussian pyramids but AFAIK did not expose reduce() as a operation. There is also a corresponding inverse operation EXPAND, which is useful in generating a Laplacian pyramid. I have a use for a gaussian pyramid and might consider implementing gaussian reduce for GEGL (instead of the naive approach of using gaussian blur followed by scale.) The gaussian and laplacian pyramids are used in texture synthesis and image compression.

There is no such op at the moment, but it does sound like something that would be a useful building block for other things.

2. A few weeks ago I posted to GIMP-dev list about https://github.com/bootchk/pluginGEGLpluginGIMP a GEGL operation that lets you used GEGL in GIMP plugins written in Python and using Pygegl binding. Its not in the form of a proper patch to GEGL but I would make a patch if I thought it would help anyone to evaluate whether it should be part of GEGL.

The proper migration of GIMP to GEGL has ramped up significantly the last month, in GIMP-2.10 the tile based drawable API will be marked as deprecated and the official way for plug-ins to interact with the GIMP core will be through GeglBuffers, for a very simple example see this file:

http://git.gnome.org/browse/gimp/tree/plug-ins/common/goat-exercise.c?h=goat-invasion

/yvind K.

The future is already here. It's just not very evenly distributed
                        -- William Gibson
_______________________________________________
gegl-developer-list mailing list
gegl-developer-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gegl-developer-list
bootch@nc.rr.com
2012-03-29 19:10:37 UTC (over 2 years ago)

gaussian reduce operator, and GIMPGEGL operator

---- "Øyvind Kolås" wrote:

On Thu, Mar 29, 2012 at 4:12 PM, wrote:

This message has two subjects.
1. Is there a gaussian reduce operation in GEGL?  Refer to the paper by Burt and Adelson, 1983, where it is called REDUCE and apparently claims that it is faster than operation gaussian blur followed by down-sample (scale by 1/2).  Used in the production of a gaussian pyramid.  It seems to me to be a fundamental operation and should be in GEGL.  A search shows that the operation mantiuk06 for GSOC might have generated gaussian pyramids but AFAIK did not expose reduce() as a operation.  There is also a corresponding inverse operation EXPAND, which is useful in generating a Laplacian pyramid.  I have a use for a gaussian pyramid and might consider implementing gaussian reduce for GEGL (instead of the naive approach of using gaussian blur followed by scale.)  The gaussian and laplacian pyramids are used in texture synthesis and image compression.

There is no such op at the moment, but it does sound like something that would be a useful building block for other things.

!? Nevermind: I think the gegl:scale with filter=cubic might be the same as reduce. I will study more.

2. A few weeks ago I posted to GIMP-dev list about https://github.com/bootchk/pluginGEGLpluginGIMP a GEGL operation that lets you used GEGL in GIMP plugins written in Python and using Pygegl binding.  Its not in the form of a proper patch to GEGL but I would make a patch if I thought it would help anyone to evaluate whether it should be part of GEGL.

The proper migration of GIMP to GEGL has ramped up significantly the last month, in GIMP-2.10 the tile based drawable API will be marked as deprecated and the official way for plug-ins to interact with the GIMP core will be through GeglBuffers, for a very simple example see this file:

http://git.gnome.org/browse/gimp/tree/plug-ins/common/goat-exercise.c?h=goat-invasion

OK. It is not clear to me that the new API using GeglBuffers will let Python plugins use GEGL, only C-language plugins, unless there are more changes to, for example, the GIMP PDB or to Pygimp. But I understand it is not high priority, since few GIMP plugin developers, using Python and Scheme, need direct access to GEGL? I suppose the guiding principle is that fundamental filter operations should be GEGL plugins written in C. But why should non-fundamental Python GIMP plugins need to go through the PDB to get to GEGL? I suppose the architecture of GIMP plugins is of no concern to GEGL, and I am not an expert.

Anyway, I will defer until after 2.10.

/Øyvind K.
--
«The future is already here. It's just not very evenly distributed»                                                  -- William Gibson

Øyvind Kolås
2012-03-29 19:29:40 UTC (over 2 years ago)

gaussian reduce operator, and GIMPGEGL operator

On Thu, Mar 29, 2012 at 8:10 PM, wrote:

OK. It is not clear to me that the new API using GeglBuffers will let Python plugins use GEGL, only C-language plugins, unless there are more changes to, for example, the GIMP PDB or to Pygimp. But I understand it is not high priority, since few GIMP plugin developers, using Python and Scheme, need direct access to GEGL? I suppose the guiding principle is that fundamental filter operations should be GEGL plugins written in C. But why should non-fundamental Python GIMP plugins need to go through the PDB to get to GEGL? I suppose the architecture of GIMP plugins is of no concern to GEGL, and I am not an expert.

It is correct that the architecture of GIMP plugins is of no concern to GEGL, but the API for GIMP plug-ins will as stated also change. PixelRegions will go away as should plug-ins knowledge of tiles. The only way of interacting with pixels both in GIMPs core and in plug-ins will eventually be through manipulating GeglBuffers.

/

The future is already here. It's just not very evenly distributed
                        -- William Gibson
_______________________________________________
gegl-developer-list mailing list
gegl-developer-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gegl-developer-list