# HG changeset patch # User michael # Date 1008787356 0 # Node ID 3f1c2c06d0d808741352cd8fc6ff85b9812137d9 # Parent 2e6e613d9f35986243343c0606b54be6fd9e50ca adding some comments diff -r 2e6e613d9f35 -r 3f1c2c06d0d8 liba52/imdct.c --- a/liba52/imdct.c Wed Dec 19 18:33:53 2001 +0000 +++ b/liba52/imdct.c Wed Dec 19 18:42:36 2001 +0000 @@ -230,7 +230,7 @@ } } */ - + /* 1. iteration */ for(i = 0; i < 128; i += 2) { tmp_a_r = buf[i].real; tmp_a_i = buf[i].imag; @@ -242,6 +242,7 @@ buf[i+1].imag = tmp_a_i - tmp_b_i; } + /* 2. iteration */ // Note w[1]={{1,0}, {0,-1}} for(i = 0; i < 128; i += 4) { tmp_a_r = buf[i].real; @@ -262,6 +263,7 @@ buf[i+3].imag = tmp_a_i + tmp_b_i; } + /* 3. iteration */ for(i = 0; i < 128; i += 8) { tmp_a_r = buf[i].real; tmp_a_i = buf[i].imag; @@ -297,6 +299,7 @@ buf[i+7].imag = tmp_a_i - tmp_b_i; } + /* 4-7. iterations */ for (m=3; m < 7; m++) { two_m = (1 << m); @@ -376,7 +379,8 @@ sample_t *window_ptr; /* 512 IMDCT with source and dest data in 'data' */ - + /* see the c version (dct_do_512()), its allmost identical, just in C */ + /* Pre IFFT complex multiply plus IFFT cmplx conjugate */ /* Bit reversed shuffling */ asm volatile( @@ -437,6 +441,7 @@ } */ + /* 1. iteration */ // Note w[0][0]={1,0} asm volatile( "xorps %%xmm1, %%xmm1 \n\t" @@ -458,6 +463,7 @@ : "%esi" ); + /* 2. iteration */ // Note w[1]={{1,0}, {0,-1}} asm volatile( "movaps ps111_1, %%xmm7 \n\t" // 1,1,1,-1 @@ -480,6 +486,7 @@ : "%esi" ); + /* 3. iteration */ /* Note sseW2+0={1,1,sqrt(2),sqrt(2)) Note sseW2+16={0,0,sqrt(2),-sqrt(2)) @@ -525,6 +532,7 @@ : "%esi" ); + /* 4-7. iterations */ for (m=3; m < 7; m++) { two_m = (1 << m); two_m_plus_one = two_m<<1; @@ -559,6 +567,7 @@ ); } + /* Post IFFT complex multiply plus IFFT complex conjugate*/ asm volatile( "movl $-1024, %%esi \n\t" ".balign 16 \n\t"