Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // in_data[8*8]
- // dctlookup[8][8]
- static void idct_1d(float *in_data, float *out_data)
- {
- int i,j;
- __m128 a, b, c, d1, d2;
- a = _mm_load_ps(&in_data[0]);
- b = _mm_load_ps(&in_data[4]);
- for (i = 0; i < 8; i++)
- {
- c = _mm_load_ps(&dctlookup[i][0]);
- d1 = _mm_mul_ps(a, c);
- c = _mm_load_ps(&dctlookup[i][4]);
- d2 = _mm_mul_ps(b, c);
- d = _mm_add_ps(d1, d2);
- _mm_store_ps(&out_data[j], d);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement