Lines Matching refs:in

13  * FFmpeg is distributed in the hope that it will be useful,
57 static int idct_row(short *in, const int *const tab, int rnd)
67 const int right = in[5] | in[6] | in[7];
68 const int left = in[1] | in[2] | in[3];
69 if (!(right | in[4])) {
70 const int k = c4 * in[0] + rnd;
72 const unsigned a0 = k + c2 * in[2];
73 const unsigned a1 = k + c6 * in[2];
74 const unsigned a2 = k - c6 * in[2];
75 const unsigned a3 = k - c2 * in[2];
77 const int b0 = c1 * in[1] + c3 * in[3];
78 const int b1 = c3 * in[1] - c7 * in[3];
79 const int b2 = c5 * in[1] - c1 * in[3];
80 const int b3 = c7 * in[1] - c5 * in[3];
82 in[0] = (int)(a0 + b0) >> ROW_SHIFT;
83 in[1] = (int)(a1 + b1) >> ROW_SHIFT;
84 in[2] = (int)(a2 + b2) >> ROW_SHIFT;
85 in[3] = (int)(a3 + b3) >> ROW_SHIFT;
86 in[4] = (int)(a3 - b3) >> ROW_SHIFT;
87 in[5] = (int)(a2 - b2) >> ROW_SHIFT;
88 in[6] = (int)(a1 - b1) >> ROW_SHIFT;
89 in[7] = (int)(a0 - b0) >> ROW_SHIFT;
93 in[0] =
94 in[1] =
95 in[2] =
96 in[3] =
97 in[4] =
98 in[5] =
99 in[6] =
100 in[7] = a0;
105 const int a0 = (int)(rnd + c4 * (in[0] + in[4])) >> ROW_SHIFT;
106 const int a1 = (int)(rnd + c4 * (in[0] - in[4])) >> ROW_SHIFT;
108 in[0] = a0;
109 in[3] = a0;
110 in[4] = a0;
111 in[7] = a0;
112 in[1] = a1;
113 in[2] = a1;
114 in[5] = a1;
115 in[6] = a1;
117 const unsigned int k = c4 * in[0] + rnd;
118 const unsigned int a0 = k + c2 * in[2] + c4 * in[4] + c6 * in[6];
119 const unsigned int a1 = k + c6 * in[2] - c4 * in[4] - c2 * in[6];
120 const unsigned int a2 = k - c6 * in[2] - c4 * in[4] + c2 * in[6];
121 const unsigned int a3 = k - c2 * in[2] + c4 * in[4] - c6 * in[6];
123 const unsigned int b0 = c1 * in[1] + c3 * in[3] + c5 * in[5] + c7 * in[7];
124 const unsigned int b1 = c3 * in[1] - c7 * in[3] - c1 * in[5] - c5 * in[7];
125 const unsigned int b2 = c5 * in[1] - c1 * in[3] + c7 * in[5] + c3 * in[7];
126 const unsigned int b3 = c7 * in[1] - c5 * in[3] + c3 * in[5] - c1 * in[7];
128 in[0] = (int)(a0 + b0) >> ROW_SHIFT;
129 in[1] = (int)(a1 + b1) >> ROW_SHIFT;
130 in[2] = (int)(a2 + b2) >> ROW_SHIFT;
131 in[3] = (int)(a3 + b3) >> ROW_SHIFT;
132 in[4] = (int)(a3 - b3) >> ROW_SHIFT;
133 in[5] = (int)(a2 - b2) >> ROW_SHIFT;
134 in[6] = (int)(a1 - b1) >> ROW_SHIFT;
135 in[7] = (int)(a0 - b0) >> ROW_SHIFT;
158 static void idct_col_8(short *const in)
164 mm4 = (int) in[7 * 8];
165 mm5 = (int) in[5 * 8];
166 mm6 = (int) in[3 * 8];
167 mm7 = (int) in[1 * 8];
182 // the pmulhw used in MMX/MMXEXT/SSE2 versions
186 mm1 = (int) in[2 * 8];
187 mm2 = (int) in[6 * 8];
191 LOAD_BUTTERFLY(mm0, mm1, 0 * 8, 4 * 8, spill, in);
195 in[8 * 0] = (int16_t) (mm0 >> COL_SHIFT);
196 in[8 * 7] = (int16_t) (mm7 >> COL_SHIFT);
198 in[8 * 3] = (int16_t) (mm3 >> COL_SHIFT);
199 in[8 * 4] = (int16_t) (mm4 >> COL_SHIFT);
203 in[8 * 1] = (int16_t) (mm1 >> COL_SHIFT);
204 in[8 * 6] = (int16_t) (mm6 >> COL_SHIFT);
206 in[8 * 2] = (int16_t) (mm2 >> COL_SHIFT);
207 in[8 * 5] = (int16_t) (mm5 >> COL_SHIFT);
210 static void idct_col_4(short *const in)
216 mm0 = (int) in[1 * 8];
217 mm2 = (int) in[3 * 8];
233 mm0 = mm1 = (int) in[0 * 8];
234 mm3 = (int) in[2 * 8];
239 in[8 * 0] = (int16_t) (mm0 >> COL_SHIFT);
240 in[8 * 7] = (int16_t) (mm7 >> COL_SHIFT);
242 in[8 * 3] = (int16_t) (mm3 >> COL_SHIFT);
243 in[8 * 4] = (int16_t) (mm4 >> COL_SHIFT);
247 in[8 * 1] = (int16_t) (mm1 >> COL_SHIFT);
248 in[8 * 6] = (int16_t) (mm6 >> COL_SHIFT);
250 in[8 * 2] = (int16_t) (mm2 >> COL_SHIFT);
251 in[8 * 5] = (int16_t) (mm5 >> COL_SHIFT);
254 static void idct_col_3(short *const in)
260 mm7 = (int) in[1 * 8];
270 mm0 = mm1 = (int) in[0 * 8];
271 mm3 = (int) in[2 * 8];
276 in[8 * 0] = (int16_t) (mm0 >> COL_SHIFT);
277 in[8 * 7] = (int16_t) (mm7 >> COL_SHIFT);
279 in[8 * 3] = (int16_t) (mm3 >> COL_SHIFT);
280 in[8 * 4] = (int16_t) (mm4 >> COL_SHIFT);
284 in[8 * 1] = (int16_t) (mm1 >> COL_SHIFT);
285 in[8 * 6] = (int16_t) (mm6 >> COL_SHIFT);
287 in[8 * 2] = (int16_t) (mm2 >> COL_SHIFT);
288 in[8 * 5] = (int16_t) (mm5 >> COL_SHIFT);
291 void ff_xvid_idct(int16_t *const in)
295 idct_row(in + 0 * 8, TAB04, RND0);
296 idct_row(in + 1 * 8, TAB17, RND1);
297 idct_row(in + 2 * 8, TAB26, RND2);
298 if (idct_row(in + 3 * 8, TAB35, RND3))
300 if (idct_row(in + 4 * 8, TAB04, RND4))
302 if (idct_row(in + 5 * 8, TAB35, RND5))
304 if (idct_row(in + 6 * 8, TAB26, RND6))
306 if (idct_row(in + 7 * 8, TAB17, RND7))
311 idct_col_8(in + i);
314 idct_col_4(in + i);
317 idct_col_3(in + i);