summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Moffitt <jack@xiph.org>2000-10-20 06:41:27 +0000
committerJack Moffitt <jack@xiph.org>2000-10-20 06:41:27 +0000
commit83276809353a3c4870ffa9c5342e27770eff944b (patch)
treed75f6c665ae4ccb5d79a60eebfd0e4e22c4fb7ea
parentd6fde51ddec9c6e694454f3a21aa8f4b3077a3d8 (diff)
downloadlibvorbis-git-83276809353a3c4870ffa9c5342e27770eff944b.tar.gz
should have done this before
jack. svn path=/branches/branch_beta3/vorbis/; revision=743
-rw-r--r--lib/mdct.c90
1 files changed, 45 insertions, 45 deletions
diff --git a/lib/mdct.c b/lib/mdct.c
index 93e4777d..26723ef9 100644
--- a/lib/mdct.c
+++ b/lib/mdct.c
@@ -13,7 +13,7 @@
function: normalized modified discrete cosine transform
power of two length transform only [16 <= n ]
- last mod: $Id: mdct.c,v 1.17.2.2 2000/10/20 06:32:07 jack Exp $
+ last mod: $Id: mdct.c,v 1.17.2.3 2000/10/20 06:41:27 jack Exp $
Algorithm adapted from _The use of multirate filter banks for coding
of high quality digital audio_, by T. Sporer, K. Brandenburg and
@@ -137,59 +137,59 @@ static float *_mdct_kernel(float *x, float *w,
int w2=w1-(k0>>1);
float AEv= A[0],wA;
float AOv= A[1],wB;
- int blah=i;
+ int unroll=i;
wbase-=2;
k0++;
- blah--;
- if(blah>0){
- s=2<<blah;
+ unroll--;
+ if(unroll>0){
+ s=2<<unroll;
s>>=1;
do{
- wB =w[w1] -w[w2];
- x[w1] =w[w1] +w[w2];
- wA =w[++w1] -w[++w2];
- x[w1] =w[w1] +w[w2];
- x[w2] =wA*AEv - wB*AOv;
- x[w2-1]=wB*AEv + wA*AOv;
- w1-=k0;
- w2-=k0;
- wB =w[w1] -w[w2];
- x[w1] =w[w1] +w[w2];
- wA =w[++w1] -w[++w2];
- x[w1] =w[w1] +w[w2];
- x[w2] =wA*AEv - wB*AOv;
- x[w2-1]=wB*AEv + wA*AOv;
- w1-=k0;
- w2-=k0;
- wB =w[w1] -w[w2];
- x[w1] =w[w1] +w[w2];
- wA =w[++w1] -w[++w2];
- x[w1] =w[w1] +w[w2];
- x[w2] =wA*AEv - wB*AOv;
- x[w2-1]=wB*AEv + wA*AOv;
- w1-=k0;
- w2-=k0;
- wB =w[w1] -w[w2];
- x[w1] =w[w1] +w[w2];
- wA =w[++w1] -w[++w2];
- x[w1] =w[w1] +w[w2];
- x[w2] =wA*AEv - wB*AOv;
- x[w2-1]=wB*AEv + wA*AOv;
- w1-=k0;
- w2-=k0;
+ wB =w[w1] -w[w2];
+ x[w1] =w[w1] +w[w2];
+ wA =w[++w1] -w[++w2];
+ x[w1] =w[w1] +w[w2];
+ x[w2] =wA*AEv - wB*AOv;
+ x[w2-1]=wB*AEv + wA*AOv;
+ w1-=k0;
+ w2-=k0;
+ wB =w[w1] -w[w2];
+ x[w1] =w[w1] +w[w2];
+ wA =w[++w1] -w[++w2];
+ x[w1] =w[w1] +w[w2];
+ x[w2] =wA*AEv - wB*AOv;
+ x[w2-1]=wB*AEv + wA*AOv;
+ w1-=k0;
+ w2-=k0;
+ wB =w[w1] -w[w2];
+ x[w1] =w[w1] +w[w2];
+ wA =w[++w1] -w[++w2];
+ x[w1] =w[w1] +w[w2];
+ x[w2] =wA*AEv - wB*AOv;
+ x[w2-1]=wB*AEv + wA*AOv;
+ w1-=k0;
+ w2-=k0;
+ wB =w[w1] -w[w2];
+ x[w1] =w[w1] +w[w2];
+ wA =w[++w1] -w[++w2];
+ x[w1] =w[w1] +w[w2];
+ x[w2] =wA*AEv - wB*AOv;
+ x[w2-1]=wB*AEv + wA*AOv;
+ w1-=k0;
+ w2-=k0;
}while(--s);
}else{
s=2<<i;
do{
- wB =w[w1] -w[w2];
- x[w1] =w[w1] +w[w2];
- wA =w[++w1] -w[++w2];
- x[w1] =w[w1] +w[w2];
- x[w2] =wA*AEv - wB*AOv;
- x[w2-1]=wB*AEv + wA*AOv;
- w1-=k0;
- w2-=k0;
+ wB =w[w1] -w[w2];
+ x[w1] =w[w1] +w[w2];
+ wA =w[++w1] -w[++w2];
+ x[w1] =w[w1] +w[w2];
+ x[w2] =wA*AEv - wB*AOv;
+ x[w2-1]=wB*AEv + wA*AOv;
+ w1-=k0;
+ w2-=k0;
}while(--s);
}
k0--;