[comp.sys.sgi] Fast Fourier Transforms and the GVX

twolf%ug.utah.edu@cs.utah.edu (Tom Wolf) (03/03/90)

In reading through the literature on the latest Graphics machines(I believe
they are called GVX's), I see that they use Fast Fourier Transform chips in
the graphics pipeline. 

As I have an application that requires thousand's of Fourier Transforms, 
I am curious as to whether you can use the FEEDBACK function to help
crunch the FT's? Does anyone know if this is possible?


Several of us have been trying to figure out what Fourier Transforms are used
for in graphics processing? Any ideas?



Thanks,

Tom

karsh@trifolium.esd.sgi.com (Bruce Karsh) (03/05/90)

In article <1990Mar2.160357.10094@hellgate.utah.edu> twolf%ug.utah.edu@cs.utah.edu (Tom Wolf) writes:

>Several of us have been trying to figure out what Fourier Transforms are used
>for in graphics processing? Any ideas?

Fourier transforms are used in image processing for a variety of reasons:

    1)   Fast convolution.

         "Convolution" is a big fancy word for "weighted moving average".
         In other words, each pixel value is replaced by the sum of the
         nearby pixels multiplied by a weighting factor.  I.e.,

		   --
	 P'[i,j] = \	W[m,n] * P[i-m,j-n]
		   /
		   --
		   m,n

	Convolutions are used to blur images, sharpen images, enhance edges,
	and lots of other things.  The image processing literature is full
        of info about this.

	The calculation of a convolution as a sum of products is
        computationally costly.  Using the FFT method, described in almost
        any book on signal processing is often much more efficient.

    2)  Digital filtering.

	Digital filters are used for anti-aliasing images.  The Fourier
	Transform is sometimes used to design these filters.

    3)  Image compression.

	Various schemes have been tried to reduce the number of bits required
	to store an image by Fourier transforming an image and not storing all
	of the coefficients.  For instance, low frequency components and
	small components may be discarded.  Of course, this degrades the image
	quality, but in some instances, it may be worth it.

    4)  Shift invariant representation.

	The magnitude of the Fourier components of an image does not change
	when the image is translated.  (The phase of the components do,
	however).  For this reason, Fourier transforms are sometimes used to
	match a possibly shifted image against a pattern image.  If the
	magnitude of the coefficients aren't approximately equal then the
	image doesn't match the pattern.

Any others?

baskett%forest@SGI.COM (03/06/90)

The new graphics subsystem is VGX, not GVX.  It is also refered to by
the product literature as PowerVision.  It contains an "ImageVision
Library" for FFT's, image rotations, warps, and convolutions directly
in the graphics pipeline.  It does not use FFT chips in the graphics
pipeline; it uses special code in the geometry subsystem to apply its
128 mflops to image processing problems like FFT.  As to what FFT's are
used for in graphics processing, one perhaps needs to include image
processing as part of graphics processing.  The general trend in
general purpose graphics workstations is to include more and more high
performance graphics functionality in base systems thus making special
purpose systems less often required.  We are trying to participate in
this trend.  We believe the VGX has several new features that are
examples of this trend, the imageVision library being one of them.

Forest Baskett
Silicon Graphics

robert@texas.esd.sgi.com (Robert Skinner) (03/06/90)

In article <1990Mar2.160357.10094@hellgate.utah.edu>,
twolf%ug.utah.edu@cs.utah.edu (Tom Wolf) writes:
> In reading through the literature on the latest Graphics machines(I believe
> they are called GVX's), I see that they use Fast Fourier Transform chips in
> the graphics pipeline. 
> 
> As I have an application that requires thousand's of Fourier Transforms, 
> I am curious as to whether you can use the FEEDBACK function to help
> crunch the FT's? Does anyone know if this is possible?
> 
> 
> Several of us have been trying to figure out what Fourier Transforms are used
> for in graphics processing? Any ideas?
> 
> 
> 
> Thanks,
> 
> Tom

I assume you mean the GTX.  

caveat:  someone else should be responding with the scoop on what
hardware is in a GTX, not a new software engineer like me.  
But since they haven't, I'll try and provide correct information...

The FFT is used in image processing, but not in normal graphics processing.
The IRIS graphics hardware does not compute an FFT.

I'm not aware of any chips that specifically perform the FFT, and I'm
sure that there aren't any in the IRIS's.  Some IRIS's (just the PIs, I 
think) have Digital Signal Processing chips in them.  These DSP chips 
are often used to compute the FFT *in other products*, but they are 
just used as very fast processors in the PI.  

Robert Skinner
robert@sgi.com

		Whoa Homer, don't have a cow.
				- Bart Simpson

seibel@cgl.ucsf.edu (George Seibel) (03/06/90)

In article <9003051643.AA14376@forest.sgi.com> baskett%forest@SGI.COM writes:
]The new graphics subsystem is VGX, not GVX.  It is also refered to by
]the product literature as PowerVision.  It contains an "ImageVision
]Library" for FFT's, image rotations, warps, and convolutions directly
]in the graphics pipeline.  It does not use FFT chips in the graphics
]pipeline; it uses special code in the geometry subsystem to apply its
]128 mflops to image processing problems like FFT.  As to what FFT's are
 ^^^^^^^^^!
 You just got my attention here... Any chance of getting at these mflops
in a convenient way from high level code for general number crunching
purposes?   Is there enough precision to make it worthwhile?   You
wouldn't happen to have 1/sqrt(r) in there, would ya?

George Seibel, UCSF
seibel@cgl.ucsf.edu