[Tremor] Clarity on mdct_backward(n,vd->work[i])

Monty xiphmont at xiph.org
Mon Oct 3 19:00:46 PDT 2005




On Wed, Sep 28, 2005 at 12:23:24PM +0200, Balatoni Denes wrote:
> Hi!
> 
> szerda 28 szeptember 2005 10.22-kor Ravi Lakkundi ezeket a bolcs gondolatokat 
> fogalmazta meg:
> > Hi All,
> >
> > Iam a bit confused, please clarify...
> >
> > for mdct_backward(n,vd->work[i]);
> >
> > Say n = 256; and input buffer is a 32 bit buffer.
> >
> > length of input buffer is : 128 (32 bit each)
> >
> > Then what exactly is the number of non zeros values in
> > input buffer, it should be 64 right, for this
> > function?
> >
> > If yes then iam getting more than 64 samples as non
> > zero values (please explain) and,
> >
> > if no please correct me ....
> 
> If the window size is 256, than the number of non-zero input values is 128 at 
> maximum for mdct_backward. The return value is 256 numbers (the window size).

The inverse MDCT also shows a symmetry that the low-memory versions of
Tremor exploit.  Each frame requires overlapping portions of two
inverse MDCTs to produce windowsize/2 output samples.  However, there
are actually only windowsize/4 unique values needed to produce each
MDCT's section.  These windowsize/4 values are 'unrolled' in a last
step to produce windowsize/2 samples for lapping.  Essentiall, in
order to reduce inter-frame storage, Tremor delays the last step of
the iMDCT until right before output.

Monty


More information about the Tremor mailing list