comparison libswscale/swscale_altivec_template.c @ 19181:e40cf0305d4e

Replace MIN() and MAX() with FFMIN() and FFMAX()
author lucabe
date Wed, 26 Jul 2006 13:19:02 +0000
parents 8579acff875e
children 07769a1d06a9
comparison
equal deleted inserted replaced
19180:c5ee8c9808ef 19181:e40cf0305d4e
1 /* 1 FF/*
2 AltiVec-enhanced yuv2yuvX 2 AltiVec-enhanced yuv2yuvX
3 3
4 Copyright (C) 2004 Romain Dolbeau <romain@dolbeau.org> 4 Copyright (C) 2004 Romain Dolbeau <romain@dolbeau.org>
5 based on the equivalent C code in "postproc/swscale.c" 5 based on the equivalent C code in "postproc/swscale.c"
6 6
221 register int srcPos = filterPos[i]; 221 register int srcPos = filterPos[i];
222 register int val = 0; 222 register int val = 0;
223 for(j=0; j<filterSize; j++) { 223 for(j=0; j<filterSize; j++) {
224 val += ((int)src[srcPos + j])*filter[filterSize*i + j]; 224 val += ((int)src[srcPos + j])*filter[filterSize*i + j];
225 } 225 }
226 dst[i] = MIN(MAX(0, val>>7), (1<<15)-1); 226 dst[i] = FFMIN(FFMAX(0, val>>7), (1<<15)-1);
227 } 227 }
228 } 228 }
229 else 229 else
230 switch (filterSize) { 230 switch (filterSize) {
231 case 4: 231 case 4:
259 filter_v = vec_mergeh(filter_v,(vector signed short)vzero); 259 filter_v = vec_mergeh(filter_v,(vector signed short)vzero);
260 260
261 vector signed int val_vEven = vec_mule(src_v, filter_v); 261 vector signed int val_vEven = vec_mule(src_v, filter_v);
262 vector signed int val_s = vec_sums(val_vEven, vzero); 262 vector signed int val_s = vec_sums(val_vEven, vzero);
263 vec_st(val_s, 0, tempo); 263 vec_st(val_s, 0, tempo);
264 dst[i] = MIN(MAX(0, tempo[3]>>7), (1<<15)-1); 264 dst[i] = FFMIN(FFMAX(0, tempo[3]>>7), (1<<15)-1);
265 } 265 }
266 } 266 }
267 break; 267 break;
268 268
269 case 8: 269 case 8:
284 // the 4 above is 3 (filterSize == 8) + 1 (sizeof(short) == 2) 284 // the 4 above is 3 (filterSize == 8) + 1 (sizeof(short) == 2)
285 285
286 vector signed int val_v = vec_msums(src_v, filter_v, (vector signed int)vzero); 286 vector signed int val_v = vec_msums(src_v, filter_v, (vector signed int)vzero);
287 vector signed int val_s = vec_sums(val_v, vzero); 287 vector signed int val_s = vec_sums(val_v, vzero);
288 vec_st(val_s, 0, tempo); 288 vec_st(val_s, 0, tempo);
289 dst[i] = MIN(MAX(0, tempo[3]>>7), (1<<15)-1); 289 dst[i] = FFMIN(FFMAX(0, tempo[3]>>7), (1<<15)-1);
290 } 290 }
291 } 291 }
292 break; 292 break;
293 293
294 case 16: 294 case 16:
313 vector signed int val_v = vec_msums(src_vB, filter_v1, val_acc); 313 vector signed int val_v = vec_msums(src_vB, filter_v1, val_acc);
314 314
315 vector signed int val_s = vec_sums(val_v, vzero); 315 vector signed int val_s = vec_sums(val_v, vzero);
316 316
317 vec_st(val_s, 0, tempo); 317 vec_st(val_s, 0, tempo);
318 dst[i] = MIN(MAX(0, tempo[3]>>7), (1<<15)-1); 318 dst[i] = FFMIN(FFMAX(0, tempo[3]>>7), (1<<15)-1);
319 } 319 }
320 } 320 }
321 break; 321 break;
322 322
323 default: 323 default:
374 } 374 }
375 375
376 vector signed int val_s = vec_sums(val_v, vzero); 376 vector signed int val_s = vec_sums(val_v, vzero);
377 377
378 vec_st(val_s, 0, tempo); 378 vec_st(val_s, 0, tempo);
379 dst[i] = MIN(MAX(0, tempo[3]>>7), (1<<15)-1); 379 dst[i] = FFMIN(FFMAX(0, tempo[3]>>7), (1<<15)-1);
380 } 380 }
381 381
382 } 382 }
383 } 383 }
384 } 384 }