comparison jfdctint.c @ 2967:ef2149182f1c libavcodec

COSMETICS: Remove all trailing whitespace.
author diego
date Sat, 17 Dec 2005 18:14:38 +0000
parents eb26d190cf5a
children bfabfdf9ce55
comparison
equal deleted inserted replaced
2966:564788471dd4 2967:ef2149182f1c
25 25
26 /** 26 /**
27 * @file jfdctint.c 27 * @file jfdctint.c
28 * Independent JPEG Group's slow & accurate dct. 28 * Independent JPEG Group's slow & accurate dct.
29 */ 29 */
30 30
31 #include <stdlib.h> 31 #include <stdlib.h>
32 #include <stdio.h> 32 #include <stdio.h>
33 #include "common.h" 33 #include "common.h"
34 #include "dsputil.h" 34 #include "dsputil.h"
35 35
168 tmp6 = dataptr[1] - dataptr[6]; 168 tmp6 = dataptr[1] - dataptr[6];
169 tmp2 = dataptr[2] + dataptr[5]; 169 tmp2 = dataptr[2] + dataptr[5];
170 tmp5 = dataptr[2] - dataptr[5]; 170 tmp5 = dataptr[2] - dataptr[5];
171 tmp3 = dataptr[3] + dataptr[4]; 171 tmp3 = dataptr[3] + dataptr[4];
172 tmp4 = dataptr[3] - dataptr[4]; 172 tmp4 = dataptr[3] - dataptr[4];
173 173
174 /* Even part per LL&M figure 1 --- note that published figure is faulty; 174 /* Even part per LL&M figure 1 --- note that published figure is faulty;
175 * rotator "sqrt(2)*c1" should be "sqrt(2)*c6". 175 * rotator "sqrt(2)*c1" should be "sqrt(2)*c6".
176 */ 176 */
177 177
178 tmp10 = tmp0 + tmp3; 178 tmp10 = tmp0 + tmp3;
179 tmp13 = tmp0 - tmp3; 179 tmp13 = tmp0 - tmp3;
180 tmp11 = tmp1 + tmp2; 180 tmp11 = tmp1 + tmp2;
181 tmp12 = tmp1 - tmp2; 181 tmp12 = tmp1 - tmp2;
182 182
183 dataptr[0] = (DCTELEM) ((tmp10 + tmp11) << PASS1_BITS); 183 dataptr[0] = (DCTELEM) ((tmp10 + tmp11) << PASS1_BITS);
184 dataptr[4] = (DCTELEM) ((tmp10 - tmp11) << PASS1_BITS); 184 dataptr[4] = (DCTELEM) ((tmp10 - tmp11) << PASS1_BITS);
185 185
186 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100); 186 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
187 dataptr[2] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865), 187 dataptr[2] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865),
188 CONST_BITS-PASS1_BITS); 188 CONST_BITS-PASS1_BITS);
189 dataptr[6] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065), 189 dataptr[6] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065),
190 CONST_BITS-PASS1_BITS); 190 CONST_BITS-PASS1_BITS);
191 191
192 /* Odd part per figure 8 --- note paper omits factor of sqrt(2). 192 /* Odd part per figure 8 --- note paper omits factor of sqrt(2).
193 * cK represents cos(K*pi/16). 193 * cK represents cos(K*pi/16).
194 * i0..i3 in the paper are tmp4..tmp7 here. 194 * i0..i3 in the paper are tmp4..tmp7 here.
195 */ 195 */
196 196
197 z1 = tmp4 + tmp7; 197 z1 = tmp4 + tmp7;
198 z2 = tmp5 + tmp6; 198 z2 = tmp5 + tmp6;
199 z3 = tmp4 + tmp6; 199 z3 = tmp4 + tmp6;
200 z4 = tmp5 + tmp7; 200 z4 = tmp5 + tmp7;
201 z5 = MULTIPLY(z3 + z4, FIX_1_175875602); /* sqrt(2) * c3 */ 201 z5 = MULTIPLY(z3 + z4, FIX_1_175875602); /* sqrt(2) * c3 */
202 202
203 tmp4 = MULTIPLY(tmp4, FIX_0_298631336); /* sqrt(2) * (-c1+c3+c5-c7) */ 203 tmp4 = MULTIPLY(tmp4, FIX_0_298631336); /* sqrt(2) * (-c1+c3+c5-c7) */
204 tmp5 = MULTIPLY(tmp5, FIX_2_053119869); /* sqrt(2) * ( c1+c3-c5+c7) */ 204 tmp5 = MULTIPLY(tmp5, FIX_2_053119869); /* sqrt(2) * ( c1+c3-c5+c7) */
205 tmp6 = MULTIPLY(tmp6, FIX_3_072711026); /* sqrt(2) * ( c1+c3+c5-c7) */ 205 tmp6 = MULTIPLY(tmp6, FIX_3_072711026); /* sqrt(2) * ( c1+c3+c5-c7) */
206 tmp7 = MULTIPLY(tmp7, FIX_1_501321110); /* sqrt(2) * ( c1+c3-c5-c7) */ 206 tmp7 = MULTIPLY(tmp7, FIX_1_501321110); /* sqrt(2) * ( c1+c3-c5-c7) */
207 z1 = MULTIPLY(z1, - FIX_0_899976223); /* sqrt(2) * (c7-c3) */ 207 z1 = MULTIPLY(z1, - FIX_0_899976223); /* sqrt(2) * (c7-c3) */
208 z2 = MULTIPLY(z2, - FIX_2_562915447); /* sqrt(2) * (-c1-c3) */ 208 z2 = MULTIPLY(z2, - FIX_2_562915447); /* sqrt(2) * (-c1-c3) */
209 z3 = MULTIPLY(z3, - FIX_1_961570560); /* sqrt(2) * (-c3-c5) */ 209 z3 = MULTIPLY(z3, - FIX_1_961570560); /* sqrt(2) * (-c3-c5) */
210 z4 = MULTIPLY(z4, - FIX_0_390180644); /* sqrt(2) * (c5-c3) */ 210 z4 = MULTIPLY(z4, - FIX_0_390180644); /* sqrt(2) * (c5-c3) */
211 211
212 z3 += z5; 212 z3 += z5;
213 z4 += z5; 213 z4 += z5;
214 214
215 dataptr[7] = (DCTELEM) DESCALE(tmp4 + z1 + z3, CONST_BITS-PASS1_BITS); 215 dataptr[7] = (DCTELEM) DESCALE(tmp4 + z1 + z3, CONST_BITS-PASS1_BITS);
216 dataptr[5] = (DCTELEM) DESCALE(tmp5 + z2 + z4, CONST_BITS-PASS1_BITS); 216 dataptr[5] = (DCTELEM) DESCALE(tmp5 + z2 + z4, CONST_BITS-PASS1_BITS);
217 dataptr[3] = (DCTELEM) DESCALE(tmp6 + z2 + z3, CONST_BITS-PASS1_BITS); 217 dataptr[3] = (DCTELEM) DESCALE(tmp6 + z2 + z3, CONST_BITS-PASS1_BITS);
218 dataptr[1] = (DCTELEM) DESCALE(tmp7 + z1 + z4, CONST_BITS-PASS1_BITS); 218 dataptr[1] = (DCTELEM) DESCALE(tmp7 + z1 + z4, CONST_BITS-PASS1_BITS);
219 219
220 dataptr += DCTSIZE; /* advance pointer to next row */ 220 dataptr += DCTSIZE; /* advance pointer to next row */
221 } 221 }
222 } 222 }
223 223
224 /* 224 /*
250 tmp6 = dataptr[DCTSIZE*1] - dataptr[DCTSIZE*6]; 250 tmp6 = dataptr[DCTSIZE*1] - dataptr[DCTSIZE*6];
251 tmp2 = dataptr[DCTSIZE*2] + dataptr[DCTSIZE*5]; 251 tmp2 = dataptr[DCTSIZE*2] + dataptr[DCTSIZE*5];
252 tmp5 = dataptr[DCTSIZE*2] - dataptr[DCTSIZE*5]; 252 tmp5 = dataptr[DCTSIZE*2] - dataptr[DCTSIZE*5];
253 tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4]; 253 tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4];
254 tmp4 = dataptr[DCTSIZE*3] - dataptr[DCTSIZE*4]; 254 tmp4 = dataptr[DCTSIZE*3] - dataptr[DCTSIZE*4];
255 255
256 /* Even part per LL&M figure 1 --- note that published figure is faulty; 256 /* Even part per LL&M figure 1 --- note that published figure is faulty;
257 * rotator "sqrt(2)*c1" should be "sqrt(2)*c6". 257 * rotator "sqrt(2)*c1" should be "sqrt(2)*c6".
258 */ 258 */
259 259
260 tmp10 = tmp0 + tmp3; 260 tmp10 = tmp0 + tmp3;
261 tmp13 = tmp0 - tmp3; 261 tmp13 = tmp0 - tmp3;
262 tmp11 = tmp1 + tmp2; 262 tmp11 = tmp1 + tmp2;
263 tmp12 = tmp1 - tmp2; 263 tmp12 = tmp1 - tmp2;
264 264
265 dataptr[DCTSIZE*0] = (DCTELEM) DESCALE(tmp10 + tmp11, PASS1_BITS); 265 dataptr[DCTSIZE*0] = (DCTELEM) DESCALE(tmp10 + tmp11, PASS1_BITS);
266 dataptr[DCTSIZE*4] = (DCTELEM) DESCALE(tmp10 - tmp11, PASS1_BITS); 266 dataptr[DCTSIZE*4] = (DCTELEM) DESCALE(tmp10 - tmp11, PASS1_BITS);
267 267
268 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100); 268 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
269 dataptr[DCTSIZE*2] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865), 269 dataptr[DCTSIZE*2] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865),
270 CONST_BITS+PASS1_BITS); 270 CONST_BITS+PASS1_BITS);
271 dataptr[DCTSIZE*6] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065), 271 dataptr[DCTSIZE*6] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065),
272 CONST_BITS+PASS1_BITS); 272 CONST_BITS+PASS1_BITS);
273 273
274 /* Odd part per figure 8 --- note paper omits factor of sqrt(2). 274 /* Odd part per figure 8 --- note paper omits factor of sqrt(2).
275 * cK represents cos(K*pi/16). 275 * cK represents cos(K*pi/16).
276 * i0..i3 in the paper are tmp4..tmp7 here. 276 * i0..i3 in the paper are tmp4..tmp7 here.
277 */ 277 */
278 278
279 z1 = tmp4 + tmp7; 279 z1 = tmp4 + tmp7;
280 z2 = tmp5 + tmp6; 280 z2 = tmp5 + tmp6;
281 z3 = tmp4 + tmp6; 281 z3 = tmp4 + tmp6;
282 z4 = tmp5 + tmp7; 282 z4 = tmp5 + tmp7;
283 z5 = MULTIPLY(z3 + z4, FIX_1_175875602); /* sqrt(2) * c3 */ 283 z5 = MULTIPLY(z3 + z4, FIX_1_175875602); /* sqrt(2) * c3 */
284 284
285 tmp4 = MULTIPLY(tmp4, FIX_0_298631336); /* sqrt(2) * (-c1+c3+c5-c7) */ 285 tmp4 = MULTIPLY(tmp4, FIX_0_298631336); /* sqrt(2) * (-c1+c3+c5-c7) */
286 tmp5 = MULTIPLY(tmp5, FIX_2_053119869); /* sqrt(2) * ( c1+c3-c5+c7) */ 286 tmp5 = MULTIPLY(tmp5, FIX_2_053119869); /* sqrt(2) * ( c1+c3-c5+c7) */
287 tmp6 = MULTIPLY(tmp6, FIX_3_072711026); /* sqrt(2) * ( c1+c3+c5-c7) */ 287 tmp6 = MULTIPLY(tmp6, FIX_3_072711026); /* sqrt(2) * ( c1+c3+c5-c7) */
288 tmp7 = MULTIPLY(tmp7, FIX_1_501321110); /* sqrt(2) * ( c1+c3-c5-c7) */ 288 tmp7 = MULTIPLY(tmp7, FIX_1_501321110); /* sqrt(2) * ( c1+c3-c5-c7) */
289 z1 = MULTIPLY(z1, - FIX_0_899976223); /* sqrt(2) * (c7-c3) */ 289 z1 = MULTIPLY(z1, - FIX_0_899976223); /* sqrt(2) * (c7-c3) */
290 z2 = MULTIPLY(z2, - FIX_2_562915447); /* sqrt(2) * (-c1-c3) */ 290 z2 = MULTIPLY(z2, - FIX_2_562915447); /* sqrt(2) * (-c1-c3) */
291 z3 = MULTIPLY(z3, - FIX_1_961570560); /* sqrt(2) * (-c3-c5) */ 291 z3 = MULTIPLY(z3, - FIX_1_961570560); /* sqrt(2) * (-c3-c5) */
292 z4 = MULTIPLY(z4, - FIX_0_390180644); /* sqrt(2) * (c5-c3) */ 292 z4 = MULTIPLY(z4, - FIX_0_390180644); /* sqrt(2) * (c5-c3) */
293 293
294 z3 += z5; 294 z3 += z5;
295 z4 += z5; 295 z4 += z5;
296 296
297 dataptr[DCTSIZE*7] = (DCTELEM) DESCALE(tmp4 + z1 + z3, 297 dataptr[DCTSIZE*7] = (DCTELEM) DESCALE(tmp4 + z1 + z3,
298 CONST_BITS+PASS1_BITS); 298 CONST_BITS+PASS1_BITS);
299 dataptr[DCTSIZE*5] = (DCTELEM) DESCALE(tmp5 + z2 + z4, 299 dataptr[DCTSIZE*5] = (DCTELEM) DESCALE(tmp5 + z2 + z4,
300 CONST_BITS+PASS1_BITS); 300 CONST_BITS+PASS1_BITS);
301 dataptr[DCTSIZE*3] = (DCTELEM) DESCALE(tmp6 + z2 + z3, 301 dataptr[DCTSIZE*3] = (DCTELEM) DESCALE(tmp6 + z2 + z3,
302 CONST_BITS+PASS1_BITS); 302 CONST_BITS+PASS1_BITS);
303 dataptr[DCTSIZE*1] = (DCTELEM) DESCALE(tmp7 + z1 + z4, 303 dataptr[DCTSIZE*1] = (DCTELEM) DESCALE(tmp7 + z1 + z4,
304 CONST_BITS+PASS1_BITS); 304 CONST_BITS+PASS1_BITS);
305 305
306 dataptr++; /* advance pointer to next column */ 306 dataptr++; /* advance pointer to next column */
307 } 307 }
308 } 308 }
309 309
310 /* 310 /*
337 tmp3 = dataptr[DCTSIZE*6] + dataptr[DCTSIZE*7]; 337 tmp3 = dataptr[DCTSIZE*6] + dataptr[DCTSIZE*7];
338 tmp4 = dataptr[DCTSIZE*0] - dataptr[DCTSIZE*1]; 338 tmp4 = dataptr[DCTSIZE*0] - dataptr[DCTSIZE*1];
339 tmp5 = dataptr[DCTSIZE*2] - dataptr[DCTSIZE*3]; 339 tmp5 = dataptr[DCTSIZE*2] - dataptr[DCTSIZE*3];
340 tmp6 = dataptr[DCTSIZE*4] - dataptr[DCTSIZE*5]; 340 tmp6 = dataptr[DCTSIZE*4] - dataptr[DCTSIZE*5];
341 tmp7 = dataptr[DCTSIZE*6] - dataptr[DCTSIZE*7]; 341 tmp7 = dataptr[DCTSIZE*6] - dataptr[DCTSIZE*7];
342 342
343 tmp10 = tmp0 + tmp3; 343 tmp10 = tmp0 + tmp3;
344 tmp11 = tmp1 + tmp2; 344 tmp11 = tmp1 + tmp2;
345 tmp12 = tmp1 - tmp2; 345 tmp12 = tmp1 - tmp2;
346 tmp13 = tmp0 - tmp3; 346 tmp13 = tmp0 - tmp3;
347 347
348 dataptr[DCTSIZE*0] = (DCTELEM) DESCALE(tmp10 + tmp11, PASS1_BITS); 348 dataptr[DCTSIZE*0] = (DCTELEM) DESCALE(tmp10 + tmp11, PASS1_BITS);
349 dataptr[DCTSIZE*4] = (DCTELEM) DESCALE(tmp10 - tmp11, PASS1_BITS); 349 dataptr[DCTSIZE*4] = (DCTELEM) DESCALE(tmp10 - tmp11, PASS1_BITS);
350 350
351 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100); 351 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
352 dataptr[DCTSIZE*2] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865), 352 dataptr[DCTSIZE*2] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865),
353 CONST_BITS+PASS1_BITS); 353 CONST_BITS+PASS1_BITS);
354 dataptr[DCTSIZE*6] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065), 354 dataptr[DCTSIZE*6] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065),
355 CONST_BITS+PASS1_BITS); 355 CONST_BITS+PASS1_BITS);
359 tmp12 = tmp5 - tmp6; 359 tmp12 = tmp5 - tmp6;
360 tmp13 = tmp4 - tmp7; 360 tmp13 = tmp4 - tmp7;
361 361
362 dataptr[DCTSIZE*1] = (DCTELEM) DESCALE(tmp10 + tmp11, PASS1_BITS); 362 dataptr[DCTSIZE*1] = (DCTELEM) DESCALE(tmp10 + tmp11, PASS1_BITS);
363 dataptr[DCTSIZE*5] = (DCTELEM) DESCALE(tmp10 - tmp11, PASS1_BITS); 363 dataptr[DCTSIZE*5] = (DCTELEM) DESCALE(tmp10 - tmp11, PASS1_BITS);
364 364
365 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100); 365 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
366 dataptr[DCTSIZE*3] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865), 366 dataptr[DCTSIZE*3] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865),
367 CONST_BITS+PASS1_BITS); 367 CONST_BITS+PASS1_BITS);
368 dataptr[DCTSIZE*7] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065), 368 dataptr[DCTSIZE*7] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065),
369 CONST_BITS+PASS1_BITS); 369 CONST_BITS+PASS1_BITS);
370 370
371 dataptr++; /* advance pointer to next column */ 371 dataptr++; /* advance pointer to next column */
372 } 372 }
373 } 373 }