The IMDCT function in MAD seems not easy to understand. Rob Leslie says that it is custom unrolled and factorized implementation. But I still don't know how ... Would you please tell me about the IMDCT algorithm in MAD or any reference documents? Thank you very much!!
-- forks forks.tw@yahoo.com.tw
--------------------------------- Do you Yahoo!? Free Pop-Up Blocker - Get it now
Hello forks
Monday, November 24, 2003, 8:06:51 PM, you wrote: ft> The IMDCT function in MAD seems not easy to understand.
ft> Rob Leslie says that it is custom unrolled and factorized ft> implementation. But I still don't know how ...
ft> Would you please tell me about the IMDCT algorithm in MAD or ft> any reference documents? Thank you very much!!
I have just finished (almost) ... mmm ... porting MAD to 55xx series of TI DSP. So I think I now all about IMDCT in mp3 decoding process :) I hope :)). I am not sure I can explain to you MAD specific implementation of this part of decoder, but I can explain what action is implied in each step of this part of decoding process.
If You want we may discuss function by function. Maybe later I will prepare document which will describe all optimizations I have used - but I am afraid part of them are DSP specific.
And I have to say that MAD style maybe very good - I have not gone deep in understanding MAD implementation of math - because I have different aim and any way DSP specific implementation is faster in several times
for example IMDCT & overlapping require only ~(900-1000) tacts of DSP. Synthesis for one channel for 36 samples in 32 subbands take ~100 000 tacts.
On Nov 24, 2003, at 3:06 AM, forks.tw wrote:
The IMDCT function in MAD seems not easy to understand. Rob Leslie says that it is custom unrolled and factorized implementation. But I still don't know how ... Would you please tell me about the IMDCT algorithm in MAD or any reference documents? Thank you very much!!
ISO/IEC 11172-3 defines the analytical expression of the IMDCT as:
where n is the number of windowed samples (12 for short blocks; 36 for long blocks).