Re: [Gimp-developer] Selective gaussian blur port to gegl

Just a comment, I implemented recently a much faster version of the
bilateral-filter. Though I think there is still some polishing to do,
it is basically working in the CPU and the GPU.

On Sat, Apr 6, 2013 at 4:39 PM, Øyvind Kolås <pippin gimp org> wrote:
Thank you for poking around looking for more things to bring over to GEGL. I
do not know much about the GIMP plug-in, but can tell you some other bits of
information that could be relevant ;)

The core part of "selective gaussian blur" is what is normally called
"bilateral filtering" in academic image processing circles. GEGL already has
a (rather slow) bilateral filter implemented contained in

The specifics of the behavior of GIMPs selective-gaussian blur is something
I'd consider a historic artifact - that we might not want to preserve in
future versions.

(As to the lines you've pointed out, looking at them in isolation.. this
seems to be code that deals with correctly handling alpha; GEGL does this
normally by processing buffers with premultiplied alpha, this seems to be
manual hacks that scales the contribution of pixels to the sum by the
alpha.. and since legacy GIMP is 8bpc,   >>= 8, is the same as /256  and 256
is 1.0, which normalizes the effect of multiplying by the alpha values
between 0 and 255.)


On Sat, Apr 6, 2013 at 12:14 PM, Karthikeyan S <karthikdevel gmail com>

Hi all,
I am trying to port the selective gaussian blur filter to gegl. I do not
understand the following lines in the original gimp code and what purpose
they serve.


Line 668
if (has_alpha)
 d *= src_b[nb - b]; // ?

Line 676
if (has_alpha)
  rowsum >>= 8; // why?
  rowfact >>= 8;


Also, as of now, my implementation correctly maintains edges in checker
board images while blurring other areas. I am trying to debug another issue
wherein I see that the noise pixels (in complete dark background in the
checkerboard image)  seem to get smeared out to neighbourhood areas and we
get large patches of white arround the blurred pixel (This does not happen
in gimp implementation). I am trying to see if the above lines have some
clue to that.


gimp-developer-list mailing list
gimp-developer-list gnome org

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

gimp-developer-list mailing list
gimp-developer-list gnome org

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