Hi, Can someone tell me which MDCT and invMDCT equation uses? I implemented the invMDCT one given in eusipco.corrected.ps file (handed out by Monty way back) and it produces different time domain samples. I tried both the FFT method and the slow way directly from the equation and couldn't reproduce the results from the original code. This leads me to believe that the forward MDCT used in the encoding is not the same as in the document. What am I doing wrong? Any help would be appreciated. --------------------------- Anish Dave Univ. of Waterloo Comp Sci. --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
>I tried both the FFT method and the slow way directly from the equation and >couldn't reproduce the results >from the original code. This leads me to believe that the forward >MDCT used in the encoding is not the same as in the document. > >What am I doing wrong?If you actually read the comments in mdct.c, you'll see that the algorithm given in that paper has a number of typos in it (corrected in vorbis), and that the vorbis code is further optimised, so it doesn't directly correspond to what is found in the paper. Michael --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Hi Dave, list, "Dave, Anish" wrote:> > Hi, > > Can someone tell me which MDCT and invMDCT equation uses? I implemented theIt just a normal shifted mdct, like the one used in mpeg layer 3. it's equations are: (time domain: a_j, freq domain: b_k; w_j is the window) forward: b_k = sum(j=0..4N-1) a_j * w_j * cos( (2k+1)(2j+1+-N) / 8N ) a_j = w_j * sum(k=0..2N-1) a_j * cos( (2k+1)(2j+1+-N) / 8N ) where +- means: I'm not sure whether it is + or -, but I think it is + (forward as well as backward). k is 0..2N-1, j is 0..4N-1. Ciao, hope this helps, Segher --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.