> > I just have a few questions regarding the discrete cosine transform in
> dct64.c as I want to rewrite it on assembly level:
> Well, you can have a look at the existing assembly implementations in
> mpg123 source as inspiration;-)
> > - Which method was used to decompose the transform into smaller steps?
> Is this version regarded as the most efficient approach?
> All I can say: Please tell me when you find a faster one (and give a patch
> to apply it to mpg123, of course;-).
> > - Has someone got a fancy signal flow graph of it? Or anything similar?
> > - My assumption is that it synthesises from 32 subband frequency samples
> into the 32 time domain samples, right?
> > So why is it called dct"64" then?
> I must confess that I don't live in the decoder core of mpg123 (yet).
> This is mostly the genuine work of Michael Hipp (and the ones inspiring
> him;-) in the last century.
> For me there were only a few (possible) bugs to fix in layer3.c while the
> other development happened primarily on the surroundings.
> But indeed, the synth_1to1 advances the output pointer by 32 samples after
> calling dct64 and doing it's own magic.
> I intend to read up some mpeg docs and really dive into the decoder
> workings when I have some time to breathe, but for now I also could only guess
> why it's called dct64, frankly.
> But I am sure that after reading up some bits and studying also the dist10
> reference one should be able to understand the workings a lot better.
> Feel free to mention your findings, so that we can shed some more light on
> the code by at least adding _some_ comment lines.
> You cannot possibly derive the functions meaning just from seeing the
> code, you'll know when you've already seen the math behind it.
> I don't think that it's too complicated matter (after all, I should be
> able to understand some Fourier spacing when I made my physics degree...)
My assumption is, that the plain Discrete Cosine Transform was decomposed into smaller transform steps by focussing on the redundancy of factors - just like decomposing a Discrete Fourier Transform into the FFT.
The smaller 2-point Transform steps are then called butterflies due to their shape in the signal flow graph.
That's all I know by know, I was just curious if anyone could give me a more detailed information about which approach was used to decompose the DCT so that less multiplications and adds were needed.
...by the way, this work I am doing on mpg123, is for my electronics degree, though it's unlikely that I'll find an improvement to the DCT64, having some more math explanations for this function would be great!