27 #define B0 1.0000000000000000000000
28 #define B1 1.3870398453221474618216
29 #define B2 1.3065629648763765278566
30 #define B3 1.1758756024193587169745
31 #define B4 1.0000000000000000000000
32 #define B5 0.7856949583871021812779
33 #define B6 0.5411961001461969843997
34 #define B7 0.2758993792829430123360
36 #define A4 0.70710678118654752438
37 #define A2 0.92387953251128675613
54 FLOAT s04, d04, s17, d17, s26, d26, s53, d53;
55 FLOAT os07, os16, os25, os34;
56 FLOAT od07, od16, od25, od34;
58 for(
i=0;
i<y*8;
i+=y){
65 od25= (s17 - s53)*(2*
A4);
67 od34= d17*(2*(
B6-
A2)) - d53*(2*
A2);
68 od16= d53*(2*(
A2-
B2)) + d17*(2*
A2);
88 temp[0*x +
i]= os07 + od07;
89 temp[7*x +
i]= os07 - od07;
90 temp[1*x +
i]= os16 + od16;
91 temp[6*x +
i]= os16 - od16;
92 temp[2*x +
i]= os25 + od25;
93 temp[5*x +
i]= os25 - od25;
94 temp[3*x +
i]= os34 - od34;
95 temp[4*x +
i]= os34 + od34;
common internal and external API header
void ff_faanidct_add(uint8_t *dest, ptrdiff_t line_size, int16_t block[64])
void ff_faanidct(int16_t block[64])
static void p8idct(int16_t data[64], FLOAT temp[64], uint8_t *dest, ptrdiff_t stride, int x, int y, int type)
static const FLOAT prescale[64]
void ff_faanidct_put(uint8_t *dest, ptrdiff_t line_size, int16_t block[64])