Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: $Revision: 1.6.2.16 $; site datacube.UUCP
Path: utzoo!linus!philabs!cmcl2!seismo!harvard!think!datacube!shep
From: shep@datacube.UUCP
Newsgroups: net.graphics
Subject: Re: convolution vs. FFT's
Message-ID: <6700025@datacube.UUCP>
Date: Sat, 3-Aug-85 15:15:00 EDT
Article-I.D.: datacube.6700025
Posted: Sat Aug  3 15:15:00 1985
Date-Received: Wed, 7-Aug-85 04:12:11 EDT
References: <355@ur-laser.UUCP>
Lines: 49
Nf-ID: #R:ur-laser:-35500:datacube:6700025:000:2547
Nf-From: datacube!shep    Aug  3 15:15:00 1985


> net.graphics / ur-laser!nitin /  9:39 am  Aug  1, 1985 ****/
>Does anybody know at what point do Fourier operations
>become more practical to use than convolution ?
>Example : lets say we are dealing with a 512 X 512 , 8 bit image.

Good question. However it is ill defined. Since we are dealing with
the "practicality" of the problem, we must first recognize the number
of computrons required for each approach. Two-dimensional image convolution
is easily performed by most pipelined architectures. FFT's, because of their
often used butterfly addressing and bit reversal, are more difficult
(less practical, require more hardware, etc) to perform.

The MaxVideo image processing architecture can perform a 10*10 convolution
on a 512*512 image in real-time (32mS). This requires a substantial amount
of hardware. The key here is that this particular architecture allows
a linear increase in performance as additional hardware is added. 
(Double the hardware, half the process time; half the hardware, double
the time.)

At least one crazed engineer here is obsessed with transformations in
the frequency domain. His problem though, is that his circuit board
for performing these transformations is still vaporware and thus not
too "practical" for the application, at least not yet.

My point is that the "crossover point" you seek to determine is a function
of the architecture being used. Pipelined, scan-sequential architectures
can perform an m*n convolution in a frame time, with hardware requirements
doubling as m*n doubles. (Or, for a fixed hardware configuration, with
process time doubling as m*n doubles.) How do single and multi-processor
Von Neuman architectures for the transform compare? 

If we compare 2-d convolution against performing a 2-d FFT, and neglect
the multiplication of the real portion in the frequency domain. We do
see that the FFT requires, at least at some point, less multiplies.
(Unfortunately, they'll be complex multiplies!)

convolution: N^2 * M^2            2-d DFFT:  nm
                                             -- (log nm)
                                             2

Again, good question! I'm anxious to hear other USENET'ers interpretation
of the problem. I chose to play realist.

Shep Siegel                               ihnp4!datacube!shep
Datacube Inc.                  ima!inmet!mirror!datacube!shep
617-535-6644                  decvax!cca!mirror!datacube!shep
4 Dearborn Rd.       decvax!genrad!wjh12!mirror!datacube!shep
Peabody, Ma. 01960   {mit-eddie,cyb0vax}!mirror!datacube!shep