1 #include <VLIB/P264/p264_transform.h>
3 void p264_hadamard_2x2 (int16_t * in, int16_t * out)
6 out[0] = in[0] + in[1] + in[2] + in[3];
7 out[1] = in[0] - in[1] + in[2] - in[3];
8 out[2] = in[0] + in[1] - in[2] - in[3];
9 out[3] = in[0] - in[1] - in[2] + in[3];
12 void p264_ihadamard_4x4(int16_t *tblock, int16_t *block)
17 int16_t *pTmp = tmp;//, *pblock;
22 for (i = 0; i < 4; i++)
25 t1 = tblock[(i<<2)+1];
26 t2 = tblock[(i<<2)+2];
27 t3 = tblock[(i<<2)+3];
41 for (i = 0; i < 4; i++)
57 block[12+i] = p0 - p3;
61 void p264_inverse_4x4(int16_t *tblock, int16_t *block)
66 int16_t *pTmp = tmp;//, *pblock;
71 for (i = 0; i < 4; i++)
74 t1 = tblock[(i<<2)+1];
75 t2 = tblock[(i<<2)+2];
76 t3 = tblock[(i<<2)+3];
90 for (i = 0; i < 4; i++)
103 block[0+i] = p0 + p3;
104 block[4+i] = p1 + p2;
105 block[8+i] = p1 - p2;
106 block[12+i] = p0 - p3;