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.4 2002-09-25 21:26:36 Isibaar 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 |
|
sad16v = sad16v_mmx; |
312 |
|
|
313 |
} |
} |
314 |
|
|
315 |
|
/* these 3dnow functions are faster than mmx, but slower than xmm. */ |
316 |
|
if ((cpu_flags & XVID_CPU_3DNOW) > 0) { |
317 |
|
|
318 |
|
/* ME functions */ |
319 |
|
sad16bi = sad16bi_3dn; |
320 |
|
sad8bi = sad8bi_3dn; |
321 |
|
} |
322 |
|
|
323 |
|
|
324 |
if ((cpu_flags & XVID_CPU_MMXEXT) > 0) { |
if ((cpu_flags & XVID_CPU_MMXEXT) > 0) { |
325 |
|
|
326 |
/* Inverse DCT */ |
/* Inverse DCT */ |
343 |
|
|
344 |
/* ME functions */ |
/* ME functions */ |
345 |
sad16 = sad16_xmm; |
sad16 = sad16_xmm; |
|
sad16bi = sad16bi_xmm; |
|
346 |
sad8 = sad8_xmm; |
sad8 = sad8_xmm; |
347 |
|
sad16bi = sad16bi_xmm; |
348 |
|
sad8bi = sad8bi_xmm; |
349 |
dev16 = dev16_xmm; |
dev16 = dev16_xmm; |
350 |
|
sad16v = sad16v_xmm; |
351 |
|
fprintf(stderr,"sad16v=XMM\n"); |
352 |
|
|
353 |
} |
} |
354 |
|
|
395 |
sad16bi = sad16bi_ia64; |
sad16bi = sad16bi_ia64; |
396 |
sad8 = sad8_ia64; |
sad8 = sad8_ia64; |
397 |
dev16 = dev16_ia64; |
dev16 = dev16_ia64; |
398 |
Halfpel8_Refine = Halfpel8_Refine_ia64; |
// Halfpel8_Refine = Halfpel8_Refine_ia64; |
399 |
quant_intra = quant_intra_ia64; |
quant_intra = quant_intra_ia64; |
400 |
dequant_intra = dequant_intra_ia64; |
dequant_intra = dequant_intra_ia64; |
401 |
quant_inter = quant_inter_ia64; |
quant_inter = quant_inter_ia64; |