diff options
author | Jack Moffitt <jack@xiph.org> | 2000-10-20 06:41:27 +0000 |
---|---|---|
committer | Jack Moffitt <jack@xiph.org> | 2000-10-20 06:41:27 +0000 |
commit | 83276809353a3c4870ffa9c5342e27770eff944b (patch) | |
tree | d75f6c665ae4ccb5d79a60eebfd0e4e22c4fb7ea | |
parent | d6fde51ddec9c6e694454f3a21aa8f4b3077a3d8 (diff) | |
download | libvorbis-git-83276809353a3c4870ffa9c5342e27770eff944b.tar.gz |
should have done this before
jack.
svn path=/branches/branch_beta3/vorbis/; revision=743
-rw-r--r-- | lib/mdct.c | 90 |
1 files changed, 45 insertions, 45 deletions
@@ -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--; |