[PD] Art project: blur a movie on external action
Mathieu Bouchard
matju at artengine.ca
Thu Oct 1 17:26:57 CEST 2009
On Thu, 1 Oct 2009, IOhannes m zmoelnig wrote:
> Mathieu Bouchard wrote:
>> Well, if you want to apply any amount of blur, of any shape of blur, in
>> always the same amount of time, there's only one way that I know about,
>> and it's using Fourier transforms.
> or convolution which is just the same.
wow, I can't believe you just wrote that.
Well, anyway: there are two main ways to perform a convolution, and the
usual way is by making each resulting pixel using a formula long like the
size of the convolution-kernel, or else you can use three FFT and three or
four ordinary multiplications, as if you were applying some kind of reverb
on audio. If your convolution kernel is 20-by-20 or 100-by-100, if it's
square, circular, doughnut-shaped, penguin-shaped, if it's hard-edged,
antialiased, feathered, this algorithm doesn't care and will do the job in
always the same amount of time. That's what I mean.
The reason I mention those blurs, is that if one wants to apply variable
amounts of blur in realtime, that is readily visible from far away, and
that looks what a lens or fog effect would do (that is, not a square
kernel), then the only sensible shortcut is the FFT.
The Big-O notation classifies this as being in n*log(n) time for an image
area of n pixels, whereas classical convolution takes n*m time for a
kernel area of m pixels (or the nonzero kernel area, if you do this
optimisation).
(note: Last time we saw each other is at the conference where I
demonstrated this FFT effect.)
_ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801
More information about the Pd-list
mailing list