comparison dct-test.c @ 9293:dc9005dec909 libavcodec

Give better names to reference DCT functions. patch by Dylan Yudaken, dyudaken gmail com
author diego
date Tue, 31 Mar 2009 08:55:22 +0000
parents ea0e5e9a520f
children b225f51903af
comparison
equal deleted inserted replaced
9292:f0732d44f655 9293:dc9005dec909
44 #undef printf 44 #undef printf
45 45
46 void *fast_memcpy(void *a, const void *b, size_t c){return memcpy(a,b,c);}; 46 void *fast_memcpy(void *a, const void *b, size_t c){return memcpy(a,b,c);};
47 47
48 /* reference fdct/idct */ 48 /* reference fdct/idct */
49 void fdct(DCTELEM *block); 49 void ff_ref_fdct(DCTELEM *block);
50 void idct(DCTELEM *block); 50 void ff_ref_idct(DCTELEM *block);
51 void init_fdct(void); 51 void ff_ref_dct_init(void);
52 52
53 void ff_mmx_idct(DCTELEM *data); 53 void ff_mmx_idct(DCTELEM *data);
54 void ff_mmxext_idct(DCTELEM *data); 54 void ff_mmxext_idct(DCTELEM *data);
55 55
56 void odivx_idct_c(short *block); 56 void odivx_idct_c(short *block);
88 #endif 88 #endif
89 89
90 static int cpu_flags; 90 static int cpu_flags;
91 91
92 struct algo algos[] = { 92 struct algo algos[] = {
93 {"REF-DBL", 0, fdct, fdct, NO_PERM}, 93 {"REF-DBL", 0, ff_ref_fdct, ff_ref_fdct, NO_PERM},
94 {"FAAN", 0, ff_faandct, fdct, FAAN_SCALE}, 94 {"FAAN", 0, ff_faandct, ff_ref_fdct, FAAN_SCALE},
95 {"FAANI", 1, ff_faanidct, idct, NO_PERM}, 95 {"FAANI", 1, ff_faanidct, ff_ref_idct, NO_PERM},
96 {"IJG-AAN-INT", 0, fdct_ifast, fdct, SCALE_PERM}, 96 {"IJG-AAN-INT", 0, fdct_ifast, ff_ref_fdct, SCALE_PERM},
97 {"IJG-LLM-INT", 0, ff_jpeg_fdct_islow, fdct, NO_PERM}, 97 {"IJG-LLM-INT", 0, ff_jpeg_fdct_islow, ff_ref_fdct, NO_PERM},
98 {"REF-DBL", 1, idct, idct, NO_PERM}, 98 {"REF-DBL", 1, ff_ref_idct, ff_ref_idct, NO_PERM},
99 {"INT", 1, j_rev_dct, idct, MMX_PERM}, 99 {"INT", 1, j_rev_dct, ff_ref_idct, MMX_PERM},
100 {"SIMPLE-C", 1, ff_simple_idct, idct, NO_PERM}, 100 {"SIMPLE-C", 1, ff_simple_idct, ff_ref_idct, NO_PERM},
101 101
102 #if HAVE_MMX 102 #if HAVE_MMX
103 {"MMX", 0, ff_fdct_mmx, fdct, NO_PERM, FF_MM_MMX}, 103 {"MMX", 0, ff_fdct_mmx, ff_ref_fdct, NO_PERM, FF_MM_MMX},
104 #if HAVE_MMX2 104 #if HAVE_MMX2
105 {"MMX2", 0, ff_fdct_mmx2, fdct, NO_PERM, FF_MM_MMXEXT}, 105 {"MMX2", 0, ff_fdct_mmx2, ff_ref_fdct, NO_PERM, FF_MM_MMXEXT},
106 {"SSE2", 0, ff_fdct_sse2, fdct, NO_PERM, FF_MM_SSE2}, 106 {"SSE2", 0, ff_fdct_sse2, ff_ref_fdct, NO_PERM, FF_MM_SSE2},
107 #endif 107 #endif
108 108
109 #if CONFIG_GPL 109 #if CONFIG_GPL
110 {"LIBMPEG2-MMX", 1, ff_mmx_idct, idct, MMX_PERM, FF_MM_MMX}, 110 {"LIBMPEG2-MMX", 1, ff_mmx_idct, ff_ref_idct, MMX_PERM, FF_MM_MMX},
111 {"LIBMPEG2-MMXEXT", 1, ff_mmxext_idct, idct, MMX_PERM, FF_MM_MMXEXT}, 111 {"LIBMPEG2-MMXEXT", 1, ff_mmxext_idct, ff_ref_idct, MMX_PERM, FF_MM_MMXEXT},
112 #endif 112 #endif
113 {"SIMPLE-MMX", 1, ff_simple_idct_mmx, idct, MMX_SIMPLE_PERM, FF_MM_MMX}, 113 {"SIMPLE-MMX", 1, ff_simple_idct_mmx, ff_ref_idct, MMX_SIMPLE_PERM, FF_MM_MMX},
114 {"XVID-MMX", 1, ff_idct_xvid_mmx, idct, NO_PERM, FF_MM_MMX}, 114 {"XVID-MMX", 1, ff_idct_xvid_mmx, ff_ref_idct, NO_PERM, FF_MM_MMX},
115 {"XVID-MMX2", 1, ff_idct_xvid_mmx2, idct, NO_PERM, FF_MM_MMXEXT}, 115 {"XVID-MMX2", 1, ff_idct_xvid_mmx2, ff_ref_idct, NO_PERM, FF_MM_MMXEXT},
116 {"XVID-SSE2", 1, ff_idct_xvid_sse2, idct, SSE2_PERM, FF_MM_SSE2}, 116 {"XVID-SSE2", 1, ff_idct_xvid_sse2, ff_ref_idct, SSE2_PERM, FF_MM_SSE2},
117 #endif 117 #endif
118 118
119 #if HAVE_ALTIVEC 119 #if HAVE_ALTIVEC
120 {"altivecfdct", 0, fdct_altivec, fdct, NO_PERM, FF_MM_ALTIVEC}, 120 {"altivecfdct", 0, fdct_altivec, ff_ref_fdct, NO_PERM, FF_MM_ALTIVEC},
121 #endif 121 #endif
122 122
123 #if ARCH_BFIN 123 #if ARCH_BFIN
124 {"BFINfdct", 0, ff_bfin_fdct, fdct, NO_PERM}, 124 {"BFINfdct", 0, ff_bfin_fdct, ff_ref_fdct, NO_PERM},
125 {"BFINidct", 1, ff_bfin_idct, idct, NO_PERM}, 125 {"BFINidct", 1, ff_bfin_idct, ff_ref_idct, NO_PERM},
126 #endif 126 #endif
127 127
128 #if ARCH_ARM 128 #if ARCH_ARM
129 {"SIMPLE-ARM", 1, simple_idct_ARM, idct, NO_PERM }, 129 {"SIMPLE-ARM", 1, simple_idct_ARM, ff_ref_idct, NO_PERM },
130 {"INT-ARM", 1, j_rev_dct_ARM, idct, MMX_PERM }, 130 {"INT-ARM", 1, j_rev_dct_ARM, ff_ref_idct, MMX_PERM },
131 #if HAVE_ARMV5TE 131 #if HAVE_ARMV5TE
132 {"SIMPLE-ARMV5TE", 1, simple_idct_armv5te, idct, NO_PERM }, 132 {"SIMPLE-ARMV5TE", 1, simple_idct_armv5te, ff_ref_idct, NO_PERM },
133 #endif 133 #endif
134 #if HAVE_ARMV6 134 #if HAVE_ARMV6
135 {"SIMPLE-ARMV6", 1, ff_simple_idct_armv6, idct, MMX_PERM }, 135 {"SIMPLE-ARMV6", 1, ff_simple_idct_armv6, ff_ref_idct, MMX_PERM },
136 #endif 136 #endif
137 #if HAVE_NEON 137 #if HAVE_NEON
138 {"SIMPLE-NEON", 1, ff_simple_idct_neon, idct, PARTTRANS_PERM }, 138 {"SIMPLE-NEON", 1, ff_simple_idct_neon, ff_ref_idct, PARTTRANS_PERM },
139 #endif 139 #endif
140 #endif /* ARCH_ARM */ 140 #endif /* ARCH_ARM */
141 141
142 #if ARCH_ALPHA 142 #if ARCH_ALPHA
143 {"SIMPLE-ALPHA", 1, ff_simple_idct_axp, idct, NO_PERM }, 143 {"SIMPLE-ALPHA", 1, ff_simple_idct_axp, ff_ref_idct, NO_PERM },
144 #endif 144 #endif
145 145
146 { 0 } 146 { 0 }
147 }; 147 };
148 148
221 switch(test){ 221 switch(test){
222 case 0: 222 case 0:
223 for(i=0;i<64;i++) 223 for(i=0;i<64;i++)
224 block1[i] = (av_lfg_get(&prn) % 512) -256; 224 block1[i] = (av_lfg_get(&prn) % 512) -256;
225 if (is_idct){ 225 if (is_idct){
226 fdct(block1); 226 ff_ref_fdct(block1);
227 227
228 for(i=0;i<64;i++) 228 for(i=0;i<64;i++)
229 block1[i]>>=3; 229 block1[i]>>=3;
230 } 230 }
231 break; 231 break;
335 switch(test){ 335 switch(test){
336 case 0: 336 case 0:
337 for(i=0;i<64;i++) 337 for(i=0;i<64;i++)
338 block1[i] = av_lfg_get(&prn) % 512 -256; 338 block1[i] = av_lfg_get(&prn) % 512 -256;
339 if (is_idct){ 339 if (is_idct){
340 fdct(block1); 340 ff_ref_fdct(block1);
341 341
342 for(i=0;i<64;i++) 342 for(i=0;i<64;i++)
343 block1[i]>>=3; 343 block1[i]>>=3;
344 } 344 }
345 break; 345 break;
560 int test_idct = 0, test_248_dct = 0; 560 int test_idct = 0, test_248_dct = 0;
561 int c,i; 561 int c,i;
562 int test=1; 562 int test=1;
563 cpu_flags = mm_support(); 563 cpu_flags = mm_support();
564 564
565 init_fdct(); 565 ff_ref_dct_init();
566 idct_mmx_init(); 566 idct_mmx_init();
567 567
568 for(i=0;i<256;i++) cropTbl[i + MAX_NEG_CROP] = i; 568 for(i=0;i<256;i++) cropTbl[i + MAX_NEG_CROP] = i;
569 for(i=0;i<MAX_NEG_CROP;i++) { 569 for(i=0;i<MAX_NEG_CROP;i++) {
570 cropTbl[i] = 0; 570 cropTbl[i] = 0;