[PD-dev] Re: [GEM] pix_blur ???? which Gem-objects do we need (have) ?

chris clepper cclepper at artic.edu
Thu Feb 20 03:22:00 CET 2003


>Hi list, hi chris.
>
>Maybe a stupid question:
>What is this [pix_blur] for ?
>Hey, i don't want to be rude (mr. bad guy again....), but there 
>already is a thing like [tv_biquad] that does very similar things 
>(and more)
>
>I think, Gem should follow pd's (vs. other libraries) object-policy:
>make a minimum orthogonal object-set, that let's you do "everything" you want.
>This implies, that there shouldn't be 2 objects, that do basically 
>the same thing.
>basically [pix_blur] is a one-stage feedback-filter. [tv_biquad] is 
>a two-stage feedback-filter.

>I do see the point, that a 1-stage filter needs less CPU-power than 
>a 2-stage filter.

well you sort of answered your own question, but here's the breakdown:

- pix_blur is faster, more direct and perhaps easier to use if you 
just want to blur something
- tv_biquad is slower and may be harder to use depending on your 
understanding of filters


>btw. [tv_*] was meant to "work (only) on series of images", while 
>[pix_*] should work on single images as well. thus [pix_blur] should 
>rather be [tv_blur] (but never mind)

this is not stated anywhere, and this is the first info on tv_* that 
i have seen.  i have ignored them until now, especially after the too 
long yuv vs pix debate, where 'everything should be pix_' was the 
result.

>And I would like to have more control over the filter-paramters: i 
>prefer "y(t)=a*x(t)+b*y(t-1)" to "y(t)=a*x(t)+(1-a)*y(t-1)", 
>especially, when clipping is involved.

that's a good suggestion.  both can be used  for [pix_blur] with only 
a small change to the code.

>Ah, that leads to what i wanted to ask/state anyhow:
>Is it possible to make objects that perform "scientific tasks" (like 
>convolution) rather than "folkloristic FX" (like smoothing)
>[pix_convolution] is far more powerful than [pix_smooth] could be.
>And of course, you can build a [pix_smooth]-abstraction with [pix_convolution]
>Maybe a bit of a thought before doing a "quick hack" could save 
>programming-time in the long term. (ooh, this sounds really like mr. 
>bad-guy. i don't want to insult anybody)
>
>i do think, that pd is a programming language (with a lot of flaws 
>(in terms of a prog-lang), sure)
>i do think, that Gem should be a language-extension, rather than a 
>set of cool effects.
>That's why i thought it a good idea, to make this openGL-wrapping 
>stuff (which is surely harder to use than all those ready-made Geos)

ok this is a HUGE difference in our approaches.  i would never assume 
that anyone using GEM would know how to program a convolution kernel 
or openGL, and that shouldn't prevent them from using these things. 
i actually intend on making [pix_edgedetect] and [pix_sharpen] at 
some point because those are process that people like to do on 
images, whether or not they even know that they are just variations 
on the same mathematical formula.

this goes back to the reason i even got involved with GEM in the 
first place, which was to help  make a high-performance Mac OSX 
version of the software for ARTISTS to use.  that means 'ready-made' 
tools need to be available, most of these tools GEM lacks at the 
moment.  you might consider something like photoshop's sharpen/blur 
to be 'folkloristic', but this is how these processes are referred to 
in common practice.  i don't see any reason why both the lower level 
[pix_convolve] can't exist alongside the more abstracted 
[pix_sharpen/blur] objects.  if anything the latter is more direct 
and understandable to the larger number of users.  the abstractions 
are one way to go but the higher level objects C code can be 
optimized for each specific kernel.

>any comments ?

always...

but i really really really would like to hear what users of GEM and 
people interested in GEM have to say about things like this.

cgc

>
>mfg.as.dr
>IOhannes





More information about the Pd-dev mailing list