dct-test: remove 'ref' function pointer from tables
The reference function can be inferred from the direction of the transform, no need for storing it with each entry. Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
db54be09c2
commit
74965f2644
@ -70,7 +70,6 @@ void ff_simple_idct_axp(DCTELEM *data);
|
|||||||
struct algo {
|
struct algo {
|
||||||
const char *name;
|
const char *name;
|
||||||
void (*func)(DCTELEM *block);
|
void (*func)(DCTELEM *block);
|
||||||
void (*ref) (DCTELEM *block);
|
|
||||||
enum formattag { NO_PERM, MMX_PERM, MMX_SIMPLE_PERM, SCALE_PERM,
|
enum formattag { NO_PERM, MMX_PERM, MMX_SIMPLE_PERM, SCALE_PERM,
|
||||||
SSE2_PERM, PARTTRANS_PERM } format;
|
SSE2_PERM, PARTTRANS_PERM } format;
|
||||||
int mm_support;
|
int mm_support;
|
||||||
@ -86,65 +85,65 @@ struct algo {
|
|||||||
static int cpu_flags;
|
static int cpu_flags;
|
||||||
|
|
||||||
static const struct algo fdct_tab[] = {
|
static const struct algo fdct_tab[] = {
|
||||||
{"REF-DBL", ff_ref_fdct, ff_ref_fdct, NO_PERM},
|
{ "REF-DBL", ff_ref_fdct, NO_PERM },
|
||||||
{"FAAN", ff_faandct, ff_ref_fdct, FAAN_SCALE},
|
{ "FAAN", ff_faandct, FAAN_SCALE },
|
||||||
{"IJG-AAN-INT", fdct_ifast, ff_ref_fdct, SCALE_PERM},
|
{ "IJG-AAN-INT", fdct_ifast, SCALE_PERM },
|
||||||
{"IJG-LLM-INT", ff_jpeg_fdct_islow, ff_ref_fdct, NO_PERM},
|
{ "IJG-LLM-INT", ff_jpeg_fdct_islow, NO_PERM },
|
||||||
|
|
||||||
#if HAVE_MMX
|
#if HAVE_MMX
|
||||||
{"MMX", ff_fdct_mmx, ff_ref_fdct, NO_PERM, AV_CPU_FLAG_MMX},
|
{ "MMX", ff_fdct_mmx, NO_PERM, AV_CPU_FLAG_MMX },
|
||||||
{"MMX2", ff_fdct_mmx2, ff_ref_fdct, NO_PERM, AV_CPU_FLAG_MMX2},
|
{ "MMX2", ff_fdct_mmx2, NO_PERM, AV_CPU_FLAG_MMX2 },
|
||||||
{"SSE2", ff_fdct_sse2, ff_ref_fdct, NO_PERM, AV_CPU_FLAG_SSE2},
|
{ "SSE2", ff_fdct_sse2, NO_PERM, AV_CPU_FLAG_SSE2 },
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_ALTIVEC
|
#if HAVE_ALTIVEC
|
||||||
{"altivecfdct", fdct_altivec, ff_ref_fdct, NO_PERM, AV_CPU_FLAG_ALTIVEC},
|
{ "altivecfdct", fdct_altivec, NO_PERM, AV_CPU_FLAG_ALTIVEC },
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ARCH_BFIN
|
#if ARCH_BFIN
|
||||||
{"BFINfdct", ff_bfin_fdct, ff_ref_fdct, NO_PERM},
|
{ "BFINfdct", ff_bfin_fdct, NO_PERM },
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct algo idct_tab[] = {
|
static const struct algo idct_tab[] = {
|
||||||
{"FAANI", ff_faanidct, ff_ref_idct, NO_PERM},
|
{ "FAANI", ff_faanidct, NO_PERM },
|
||||||
{"REF-DBL", ff_ref_idct, ff_ref_idct, NO_PERM},
|
{ "REF-DBL", ff_ref_idct, NO_PERM },
|
||||||
{"INT", j_rev_dct, ff_ref_idct, MMX_PERM},
|
{ "INT", j_rev_dct, MMX_PERM },
|
||||||
{"SIMPLE-C", ff_simple_idct, ff_ref_idct, NO_PERM},
|
{ "SIMPLE-C", ff_simple_idct, NO_PERM },
|
||||||
|
|
||||||
#if HAVE_MMX
|
#if HAVE_MMX
|
||||||
#if CONFIG_GPL
|
#if CONFIG_GPL
|
||||||
{"LIBMPEG2-MMX", ff_mmx_idct, ff_ref_idct, MMX_PERM, AV_CPU_FLAG_MMX, 1},
|
{ "LIBMPEG2-MMX", ff_mmx_idct, MMX_PERM, AV_CPU_FLAG_MMX, 1 },
|
||||||
{"LIBMPEG2-MMX2", ff_mmxext_idct, ff_ref_idct, MMX_PERM, AV_CPU_FLAG_MMX2, 1},
|
{ "LIBMPEG2-MMX2", ff_mmxext_idct, MMX_PERM, AV_CPU_FLAG_MMX2, 1 },
|
||||||
#endif
|
#endif
|
||||||
{"SIMPLE-MMX", ff_simple_idct_mmx, ff_ref_idct, MMX_SIMPLE_PERM, AV_CPU_FLAG_MMX},
|
{ "SIMPLE-MMX", ff_simple_idct_mmx, MMX_SIMPLE_PERM, AV_CPU_FLAG_MMX },
|
||||||
{"XVID-MMX", ff_idct_xvid_mmx, ff_ref_idct, NO_PERM, AV_CPU_FLAG_MMX, 1},
|
{ "XVID-MMX", ff_idct_xvid_mmx, NO_PERM, AV_CPU_FLAG_MMX, 1 },
|
||||||
{"XVID-MMX2", ff_idct_xvid_mmx2, ff_ref_idct, NO_PERM, AV_CPU_FLAG_MMX2, 1},
|
{ "XVID-MMX2", ff_idct_xvid_mmx2, NO_PERM, AV_CPU_FLAG_MMX2, 1 },
|
||||||
{"XVID-SSE2", ff_idct_xvid_sse2, ff_ref_idct, SSE2_PERM, AV_CPU_FLAG_SSE2, 1},
|
{ "XVID-SSE2", ff_idct_xvid_sse2, SSE2_PERM, AV_CPU_FLAG_SSE2, 1 },
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ARCH_BFIN
|
#if ARCH_BFIN
|
||||||
{"BFINidct", ff_bfin_idct, ff_ref_idct, NO_PERM},
|
{ "BFINidct", ff_bfin_idct, NO_PERM },
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ARCH_ARM
|
#if ARCH_ARM
|
||||||
{"SIMPLE-ARM", ff_simple_idct_arm, ff_ref_idct, NO_PERM },
|
{ "SIMPLE-ARM", ff_simple_idct_arm, NO_PERM },
|
||||||
{"INT-ARM", ff_j_rev_dct_arm, ff_ref_idct, MMX_PERM },
|
{ "INT-ARM", ff_j_rev_dct_arm, MMX_PERM },
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_ARMV5TE
|
#if HAVE_ARMV5TE
|
||||||
{"SIMPLE-ARMV5TE", ff_simple_idct_armv5te, ff_ref_idct, NO_PERM },
|
{ "SIMPLE-ARMV5TE", ff_simple_idct_armv5te,NO_PERM },
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_ARMV6
|
#if HAVE_ARMV6
|
||||||
{"SIMPLE-ARMV6", ff_simple_idct_armv6, ff_ref_idct, MMX_PERM },
|
{ "SIMPLE-ARMV6", ff_simple_idct_armv6, MMX_PERM },
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_NEON
|
#if HAVE_NEON
|
||||||
{"SIMPLE-NEON", ff_simple_idct_neon, ff_ref_idct, PARTTRANS_PERM },
|
{ "SIMPLE-NEON", ff_simple_idct_neon, PARTTRANS_PERM },
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ARCH_ALPHA
|
#if ARCH_ALPHA
|
||||||
{"SIMPLE-ALPHA", ff_simple_idct_axp, ff_ref_idct, NO_PERM },
|
{ "SIMPLE-ALPHA", ff_simple_idct_axp, NO_PERM },
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
{ 0 }
|
{ 0 }
|
||||||
@ -203,6 +202,7 @@ static inline void mmx_emms(void)
|
|||||||
|
|
||||||
static int dct_error(const struct algo *dct, int test, int is_idct, int speed)
|
static int dct_error(const struct algo *dct, int test, int is_idct, int speed)
|
||||||
{
|
{
|
||||||
|
void (*ref)(DCTELEM *block) = is_idct ? ff_ref_idct : ff_ref_fdct;
|
||||||
int it, i, scale;
|
int it, i, scale;
|
||||||
int err_inf, v;
|
int err_inf, v;
|
||||||
int64_t err2, ti, ti1, it1, err_sum = 0;
|
int64_t err2, ti, ti1, it1, err_sum = 0;
|
||||||
@ -275,7 +275,7 @@ static int dct_error(const struct algo *dct, int test, int is_idct, int speed)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dct->ref(block1);
|
ref(block1);
|
||||||
|
|
||||||
blockSumErr = 0;
|
blockSumErr = 0;
|
||||||
for (i = 0; i < 64; i++) {
|
for (i = 0; i < 64; i++) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user