diff options
author | Willem Jan Palenstijn | 2013-06-08 21:51:08 +0200 |
---|---|---|
committer | Willem Jan Palenstijn | 2013-06-08 22:03:22 +0200 |
commit | dd003b6a280038c3cb271cf7da953dba833972a9 (patch) | |
tree | 7353e2b01bd4536fdada9ff6d6b9f0b225461e43 | |
parent | bc358b77a8b018901f58e43a8b530113c7716688 (diff) | |
download | scummvm-rg350-dd003b6a280038c3cb271cf7da953dba833972a9.tar.gz scummvm-rg350-dd003b6a280038c3cb271cf7da953dba833972a9.tar.bz2 scummvm-rg350-dd003b6a280038c3cb271cf7da953dba833972a9.zip |
COMMON: Add basic documentation for RDFT
-rw-r--r-- | common/rdft.h | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/common/rdft.h b/common/rdft.h index 3386940404..76e95c363a 100644 --- a/common/rdft.h +++ b/common/rdft.h @@ -20,7 +20,7 @@ * */ -// Based on eos' (I)RDFT code which is in turn +// Based on xoreos' (I)RDFT code which is in turn // Based upon the (I)RDFT code in FFmpeg // Copyright (c) 2009 Alex Converse <alex dot converse at gmail dot com> @@ -44,6 +44,40 @@ namespace Common { * * Used in engines: * - scumm + * + * + * It has four modes: + * + * Below, n = 1 << bits + * + * (I)DFT_R2C: + * input: + * n real floats + * output: + * n/2 complex floats (stored as real part followed by imag part). + * + * The output represents the first half of the (I)DFT of the input. + * If F is the complex (I)DFT of the input, then + * output[0] = F[0] + i * F[n/2] and + * output[k] = F[k] for k = 1 .. n/2-1. + * Note that F[0] and F[k] are real since the input is real, and + * the remaining values of F can be reconstructed from symmetry if desired. + * + * (I)DFT_C2R: + * input: + * n/2 complex floats + * output: + * n real floats + * + * The input encodes a complex vector x of length n that has the + * required symmetry to have a real (I)DFT: + * x[0] = Re(input[0]) + * x[k] = input[k] for k = 1 .. n/2-1 + * x[n/2] = Im(input[0]) + * x[k] = conj(input[n-k]) for k = n/2+1 .. n-1 + * The output is then the real (I)DFT of x, divided by 2. + * + * TODO: Is this division by 2 intentional? */ class RDFT { |