Advertisement
Guest User

Untitled

a guest
Sep 1st, 2014
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. // in_data[8*8]
  2. // dctlookup[8][8]
  3. static void idct_1d(float *in_data, float *out_data)
  4. {
  5. int i,j;
  6.  
  7. __m128 a, b, c, d1, d2;
  8.  
  9. a = _mm_load_ps(&in_data[0]);
  10. b = _mm_load_ps(&in_data[4]);
  11.  
  12. for (i = 0; i < 8; i++)
  13. {
  14. c = _mm_load_ps(&dctlookup[i][0]);
  15. d1 = _mm_mul_ps(a, c);
  16. c = _mm_load_ps(&dctlookup[i][4]);
  17. d2 = _mm_mul_ps(b, c);
  18. d = _mm_add_ps(d1, d2);
  19.  
  20. _mm_store_ps(&out_data[j], d);
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement