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: How works clt_mdct_forward? (Read 2682 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

How works clt_mdct_forward?

Slow MDCT is  coded:
Code: [Select]
int N,N2; //N input size
float sum
  N2 = N / 2;
  for (int k=0; k<N2; k++)
  {
    sum=0;
    for (int n=0; n<N; n++)
      sum = sum + Sygnal[n]*cos((Pi/N2)*(n+1/2+N2/2)*(k+1/2));
    Transformat[k]=sum;
  }
//output size = N2 = N/2


While usual Opus frame has 480 trials, after pre-emphasis is increased (if I understand) to 960 values. On input clt_mdct_forward get table of 1080 values (60+960+60 ? overlap only 60?) N=1920 is bigger than 1080. At ouput we get 960 values. What it mean? This is 960 reals or 480 complex? Or can we reject upper half of results? Slow MDCT results N/2 values where N is input size.How works overlapping? Where is detailed description of algorithm and clt_mdct_forward ?