Re: [Mpg123-devel] DCT64

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Re: [Mpg123-devel] DCT64

Robert Leiking

Hi Thomas,

> > 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. 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!



"Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen:
mp3encoder mailing list
[hidden email]