Mercurial > libavcodec.hg
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 } |