37 |
* - 22.12.2001 API change: added xvid_init() - Isibaar |
* - 22.12.2001 API change: added xvid_init() - Isibaar |
38 |
* - 16.12.2001 inital version; (c)2001 peter ross <pross@cs.rmit.edu.au> |
* - 16.12.2001 inital version; (c)2001 peter ross <pross@cs.rmit.edu.au> |
39 |
* |
* |
40 |
* $Id: xvid.c,v 1.31 2002-07-18 13:47:46 suxen_drol Exp $ |
* $Id: xvid.c,v 1.33.2.1 2002-09-23 20:36:01 chl Exp $ |
41 |
* |
* |
42 |
****************************************************************************/ |
****************************************************************************/ |
43 |
|
|
245 |
/* Functions used in motion estimation algorithms */ |
/* Functions used in motion estimation algorithms */ |
246 |
calc_cbp = calc_cbp_c; |
calc_cbp = calc_cbp_c; |
247 |
sad16 = sad16_c; |
sad16 = sad16_c; |
|
sad16bi = sad16bi_c; |
|
248 |
sad8 = sad8_c; |
sad8 = sad8_c; |
249 |
|
sad16bi = sad16bi_c; |
250 |
|
sad8bi = sad8bi_c; |
251 |
dev16 = dev16_c; |
dev16 = dev16_c; |
252 |
Halfpel8_Refine = Halfpel8_Refine_c; |
sad16v = sad16v_c; |
253 |
|
|
254 |
|
// Halfpel8_Refine = Halfpel8_Refine_c; |
255 |
|
|
256 |
#ifdef ARCH_X86 |
#ifdef ARCH_X86 |
257 |
if ((cpu_flags & XVID_CPU_MMX) > 0) { |
if ((cpu_flags & XVID_CPU_MMX) > 0) { |
305 |
calc_cbp = calc_cbp_mmx; |
calc_cbp = calc_cbp_mmx; |
306 |
sad16 = sad16_mmx; |
sad16 = sad16_mmx; |
307 |
sad8 = sad8_mmx; |
sad8 = sad8_mmx; |
308 |
|
sad16bi = sad16bi_mmx; |
309 |
|
sad8bi = sad8bi_mmx; |
310 |
dev16 = dev16_mmx; |
dev16 = dev16_mmx; |
311 |
|
|
312 |
} |
} |
313 |
|
|
314 |
|
/* these 3dnow functions are faster than mmx, but slower than xmm. */ |
315 |
|
if ((cpu_flags & XVID_CPU_3DNOW) > 0) { |
316 |
|
|
317 |
|
/* ME functions */ |
318 |
|
sad16bi = sad16bi_3dn; |
319 |
|
sad8bi = sad8bi_3dn; |
320 |
|
} |
321 |
|
|
322 |
|
|
323 |
if ((cpu_flags & XVID_CPU_MMXEXT) > 0) { |
if ((cpu_flags & XVID_CPU_MMXEXT) > 0) { |
324 |
|
|
325 |
/* Inverse DCT */ |
/* Inverse DCT */ |
342 |
|
|
343 |
/* ME functions */ |
/* ME functions */ |
344 |
sad16 = sad16_xmm; |
sad16 = sad16_xmm; |
|
sad16bi = sad16bi_xmm; |
|
345 |
sad8 = sad8_xmm; |
sad8 = sad8_xmm; |
346 |
|
sad16bi = sad16bi_xmm; |
347 |
|
sad8bi = sad8bi_xmm; |
348 |
dev16 = dev16_xmm; |
dev16 = dev16_xmm; |
349 |
|
sad16v = sad16v_xmm; |
350 |
|
fprintf(stderr,"sad16v=XMM\n"); |
351 |
|
|
352 |
} |
} |
353 |
|
|
394 |
sad16bi = sad16bi_ia64; |
sad16bi = sad16bi_ia64; |
395 |
sad8 = sad8_ia64; |
sad8 = sad8_ia64; |
396 |
dev16 = dev16_ia64; |
dev16 = dev16_ia64; |
397 |
Halfpel8_Refine = Halfpel8_Refine_ia64; |
// Halfpel8_Refine = Halfpel8_Refine_ia64; |
398 |
quant_intra = quant_intra_ia64; |
quant_intra = quant_intra_ia64; |
399 |
dequant_intra = dequant_intra_ia64; |
dequant_intra = dequant_intra_ia64; |
400 |
quant_inter = quant_inter_ia64; |
quant_inter = quant_inter_ia64; |