# [FFmpeg-devel] [PATCH] RDFT for Bink and QDM2

Michael Niedermayer michaelni
Wed Jan 21 14:36:34 CET 2009

On Tue, Jan 20, 2009 at 03:19:46PM -0500, Alex Converse wrote:
> On Tue, Jan 20, 2009 at 1:50 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> > On Tue, Jan 20, 2009 at 12:24:06PM -0500, Alex Converse wrote:
> >> On Tue, Jan 20, 2009 at 11:52 AM, Michael Niedermayer <michaelni at gmx.at> wrote:
> >> > On Mon, Jan 19, 2009 at 07:44:38PM -0500, Alex Converse wrote:
> > [...]
> >> >
> >> > [...]
> >> >
> >> >> +/**
> >> >> + * Sets up a real FFT.
> >> >> + * @param nbits           Log2 of the length of the input array
> >> >
> >> >> + * @param inverse         If TRUE, perform the inverse of the transform
> >> >
> >> > i suggest if 0 perform the forward transform, if 1 perform the inverse
> >>
> >> I believe these are equivalent.
> >
> > I searched for TRUE in the iso C standard and found no match.
> > But lets assume it where defined as 1, this doesnt document any
> > other value, is inverse=2 or 0 invalid? the forward transform?
> > 99% of the people will guess correct but why write something ambigous if
> > it can be written unambigous ...
> >
> >
> >>
> >> >
> >> >
> >> >> + * @param sign_convention The sign of j of the forward FFT.
> >> >
> >> > i do not understand this, j is a variable that has no clear relation to a FFT
> >> >
> >>
> >> j is the unit vector in the vertical direction on the complex plane. j
> >> = sqrt(-1).
> >
> > wasnt that i, i for imaginary?
> >
> >
> >>
> >> The forward DFT can be defined as:
> >> X_k = \sum_{n=0}^{N-1} x_n e^{-{2\pi j \over N} nk }
> >>
> >> It also can be defined as
> >> X_k = \sum_{n=0}^{N-1} x_n e^{{2\pi j \over N} nk }
> >
> > you can, but why would we need it?
> >
>
> Bink uses it. As per the comments, the inverse of this transform is
> not simply the transform with the opposite sign convention.

maybe iam too tired but i see just one transform

X[  k] = sum(n=0..N-1) x[n] e^(-2pi*i*n*k / N)
| k= N-m
X[N-m] = sum(n=0..N-1) x[n] e^(-2pi*i*n*(N-m) / N)
X[N-m] = sum(n=0..N-1) x[n] e^(-2pi*i*n*N / N - 2pi*i*n*-m / N)
X[N-m] = sum(n=0..N-1) x[n] e^(-2pi*i*n + 2pi*i*n*m / N)
X[N-m] = sum(n=0..N-1) x[n] e^( 2pi*i*n*m / N)e^(-2pi*i*n)
X[N-m] = sum(n=0..N-1) x[n] e^( 2pi*i*n*m / N)

[...]
--

I do not agree with what you have to say, but I'll defend to the death your
right to say it. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090121/738f1ca0/attachment.pgp>