[PD-dev] [GEM] pix_blur ???? which Gem-objects do we need (have) ?
IOhannes zmoelnig
zmoelnig at iem.kug.ac.at
Mon Feb 24 20:29:51 CET 2003
chris clepper wrote:
>> ad a) of course c-coded functions will always be faster than
>> abstractions because of their very nature.
>> but then, it might well be possible, that the speed-loss isn't that
>> dramatic.
>
> right. how about starting with the abstractions and if someone goes and
> optimizes them into C code then that could be available as well. one of
good (for my ego ;-))
this would produce a fast growing number of fx ("this can be done with
Gem") and a slower growing number of optimized fx ("even at the same time")
> the reasons i would like to have the specific coded convolution objects
> is they make more sense for yuv rather than a generic kernel. for
> example, edge detection usually focuses on luma only, so that right
> there is a pretty big increase in efficiency for yuv (slower for rgb
yes, i've seen that you can reduce maths a lot with yuv and a non
generic-kernel. (on the other hand: as you say: for most
yuv-convolutions only the chroma key is needed. it would be good/fast to
have a (not-so-)generic object that does exactly this. and let's call it
[yuv_convolution] and hey! here we are again - it is a doom loop
> p4/2.5Ghz/winXP the other day and it took 40% cpu to process the
> homer.avi!! convolution is obviously something that requires a great
> deal of optimization for use in a real-time environment, so i'm all for
> doing as much as possible.
yes, true.
>
>
> both the abstracted version and the higher level built in objects can
> exist at the same time. so there could be a patch that illustrates how
> [pix_convolve] can be used to do all sorts of processes. some people
> would want to check this patch out and figure out how convolution works,
> while others might not care at all. it's best to leave this as an
> option to the user right?
yes, i guess so. (sigh ;-))
>
>> ad c) obviously i cannot make a [pix_smooth] if there is no
>> possibility to apply a convolution kernel.
>
>
> you do have a point about not being able to make _every possible
> convolution possibility into it's own object, but that's why
> [pix_convolve] exists. i think that edge-detection and enhancement,
> blur, sharpen, embossing, and directional blur might cover the 'basics'
> of convolution. having the most common convolution processes available
> will let users know that they can apply these processes.
maybe that's my ignorance of image-processing: i thought, that some of
these really only differ in the convolution-kernel, being not further
optimizable (for instance: no or sparse zeros)
so these objects would all inherit from [pix_convolve] and only set the
convolution-kernel to a (scalable) constant.
and here we go:
> of course some
> sort of documentation/tutorial needs to facilitate the learning process
> so people can make the jump from using specialized objects to the more
> general tools.
More information about the Pd-dev
mailing list