[FFmpeg-devel] [TeX] DCA subband transform

Michael Niedermayer michaelni
Sun Sep 7 17:34:42 CEST 2008

On Sun, Sep 07, 2008 at 07:31:52PM +0600, Alexander E. Patrakov wrote:
> Michael Niedermayer wrote:
> > It would be more interresting to know if every "pseudo"QMF is a windowed
> > *DCT and if every windowed *DCT is a "pseudo"QMF
> Good idea. However, I don't know the definition of a windowed *DCT, except
> for the case when there are only two overlapped windows. I.e., Wikipedia
> says:
> > MDCT ... has half as many outputs as inputs (instead of the same
> > number). In particular, it is a linear function F : R^{2N} -> R^{N} (where 
> > R denotes the set of real numbers).
> (i.e., they use N as the number of MDCT outputs, and, thus, IMDCT inputs)
> Further, they say:
> > In typical signal-compression applications, the transform properties are 
> > further improved by using a window function wn (n = 0, ..., 2N-1) 
> ...and then discuss that the window must be shifted by the half of its
> length each time, and write the Princen-Bradley condition that applies only
> to this case.

Well i would define windowed *dct as any dct (not just type IV) and any
length, actually i think considering the dct output to extend to +-infinity
and the window just having finite non zero coefficients is a better way to
define it.

> I.e., their window has twice as many points as the number of MDCT outputs,
> which is not the case for DCA, while DCA and MP2 have 32 IMDCT inputs and
> 512 points in the window, and I don't know the equivalent of the
> Princen-Bradley condition for this situation.

Princen-Bradley is IIRC just an easy way to proof orthogonality

Also i belive that any "infinitly extended" orthogonal transform T that is
windowed can be inverted by applying the same window and the 
"infinitly extended" inverse transform of T as long as the whole windowed
transform is orthogonal.

a sketch of a proof for that would be
assume t is our orthogonal transform (NxN matrix, maybe a DCT)

then the "extended" transform would be T
the window w0..wM

and the transform equation could be written as

W*T*input = output where W and T are matrixes:

w0                                      .
 .                                      .
  .                                     .
   .                                    t
    wN       w0                          t
     .        .                          .
      .        .                     *   .    *  input = output
       .        .                        .
        w2N      wN        w0            t
         .         .        .             t
          .         .        .            .
           .         .        .           .
            wM        w2N      wN         .
                       .        .

now if W*T is a orthogonal transform then (W*T)^-1 = (W*T)^T
and T^T * W^T is our inverse and as ^T is just the transpose that
really is
1. apply same window
2. sum stuff up
3. apply I(M)DCT

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No human being will ever know the Truth, for even if they happen to say it
by chance, they would not even known they had done so. -- Xenophanes
-------------- 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/20080907/7ecf191a/attachment.pgp>

More information about the ffmpeg-devel mailing list