Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: The (i)MDCT (Read 5621 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

The (i)MDCT

Hi !

Because of the the 2 threads
- "Overlap add in window swithing"
- "Downside of transform coders"

I prepared a picture that describes my view of the (i)MDCT.
I don't know if this is common practise to do it this way, but it has proven to be very handy for me.

AFAIK this structure is compatible to MP3 but I don't know for sure right now.
The Vorbis' MDCT is a flipped version of this (you have to reverse the time samples)
And of course: Everyone does another scaling.

bye,
Sebi

The (i)MDCT

Reply #1
I'm unsure wether this is the proper place to ask questions... Or should I do in original threads? Anyway..

What about the block you call "MDCT Core  Transform"? What's the difference of this compared to a normal DCT transform? And what is the difference to a normal FT? You say it's possible to do the core MDCT with an FT of size n/2 and more butterflies. ...i really would like to learn this stuff, but it's still too complicated for me... 

The (i)MDCT

Reply #2
Quote
What about the block you call "MDCT Core  Transform"? What's the difference of this compared to a normal DCT transform? And what is the difference to a normal FT? You say it's possible to do the core MDCT with an FT of size n/2 and more butterflies. ...i really would like to learn this stuff, but it's still too complicated for me... 


This is just a (orthonormal) linear mapping. You can express a vector by a weighted sum of a bunch of other vectors. The "MDCT Core Transform" computes such weights for a special set of basis vectors. The DCT uses another special set of basis vectors - not suited for "time domain alias cancellation" which removes blocking artefacts in the MDCT world.

This is basically "linear algebra".

This "core transform" block can be computed in O(n*log(n)) if you reduce it to an n/2-point complex FFT. This is pretty complicated to understand for a newbie, I guess. Unfortunately I don't have any good references on this right now. Try "Numerical Recipes" for a start.

bye,
Sebi

 

 
SimplePortal 1.0.0 RC1 © 2008-2021