[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-gsl] 2d FFTs, DCTs, etc.
From: |
Dimitris Papavasiliou |
Subject: |
[Help-gsl] 2d FFTs, DCTs, etc. |
Date: |
Thu, 11 May 2006 19:09:16 +0300 |
User-agent: |
Mail/News 1.5 (X11/20060228) |
Hello all,
I needed to perform a 2D DCT for image processing and since speed wasn't
such an absolutely critical issue (although welcome of course) I thought
I'd implement it using GSL instead of FFTW. In the spirit of unifying
all our numerical needs (which the GSL seems to be serving well enough)
under a common interface I thought I'd implement this as a GSL package
as well which might later be incorporated into GSL itself.
Until now I have basically only radix2 DCTs (type II and inverse which
is essentially type III) implemented for one and two dimensions. I also
created a couple of wrappers for the FFT functions that work with
vectors and matrices.
Now what I'm interested in is the following:
a) Is there an interest in such a package (1D, 2D, DCTs, 2D FFTs maybe
and vector/matrix interfaces for the lot) or should I just implement
DCTs for myself? I'm asking because these things are easy enough to
implement that I thought there might be a reason why they aren't
provided by the GSL yet.
b) Is there a reason why there are no vector/matrix interfaces to the
fft functions (in constrast to the wavelets routines)?
c) Is there a reason why there are no two-dimensional fft routines? For
real data there would be the problem of computing them in-place I
suppose but for complex data computation is pretty simple using
row-column decomposition.
In case there is an interest in such a package, does anyone have any
ideas on the following:
a) What to do with 2D real FFTs? In-place computation (without
allocating extra memory) should be impossible ,at least using 1D FFTs to
do the job. Should only complex 2D FFTs be implemented? Should real
FFTs have different input and output vectors (that would break the
symmetry in the interface though)?
b) Does anybody know whether it is possible to compute DCTs of odd
length using one FFT of the same length? For even lengths this is
possible (both powers of two and not) but for odd lengths I haven't
found anything.
c) Would anyone be willing to help out (esp. with the vector/matrix
wrappers and with making these work for doubles and floats through those
GSL templates)? I'm supposed to be doing my master's thesis as well
(what I needed the DCT for in the first place) so it might take some
time to finish this on my own.
Sorry for all the questions,
Dimtiris P.