Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.61 KB | None | 0 0
  1. #if BIT_DEPTH == 12
  2. static inline void idct4SparseColPut(pixel *dest, ptrdiff_t line_size, const int16_t *col)
  3. {
  4. float C1 = 0.6532814824;
  5. float C2 = 0.2705980501;
  6. float C3 = 0.5;
  7. int c0, c1, c2, c3, a0, a1, a2, a3;
  8.  
  9. a0 = col[8*0];
  10. a1 = col[8*1];
  11. a2 = col[8*2];
  12. a3 = col[8*3];
  13. c0 = (a0 + a2)*C3;
  14. c2 = (a0 - a2)*C3;
  15. c1 = a1 * C1 + a3 * C2;
  16. c3 = a1 * C2 - a3 * C1;
  17. dest[0] = av_clip_pixel(c0 + c1);
  18. dest += line_size;
  19. dest[0] = av_clip_pixel(c2 + c3);
  20. dest += line_size;
  21. dest[0] = av_clip_pixel(c2 - c3);
  22. dest += line_size;
  23. dest[0] = av_clip_pixel(c0 - c1);
  24. }
  25.  
  26. void FUNC6(ff_simple_idct84_put)(uint8_t *dest_, ptrdiff_t line_size, int16_t *block_)
  27. {
  28. idctin *block = (idctin *)block_;
  29. pixel *dest = (pixel *)dest_;
  30. int i;
  31.  
  32. line_size /= sizeof(pixel);
  33.  
  34. for (i = 0; i < 4; i++) {
  35. FUNC6(idctRowCondDC)(block + i*8, 0);
  36. }
  37.  
  38. for (i = 0; i < 8; i++)
  39. idct4SparseColPut(dest + i, line_size, block + i);
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement