dct-test: whitespace cosmetics

Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
Mans Rullgard 2011-07-03 22:59:03 +01:00
parent 412594ed0a
commit 36fa9ef3e2

@ -72,7 +72,8 @@ struct algo {
enum { FDCT, IDCT } is_idct;
void (*func)(DCTELEM *block);
void (*ref) (DCTELEM *block);
enum formattag { NO_PERM,MMX_PERM, MMX_SIMPLE_PERM, SCALE_PERM, SSE2_PERM, PARTTRANS_PERM } format;
enum formattag { NO_PERM, MMX_PERM, MMX_SIMPLE_PERM, SCALE_PERM,
SSE2_PERM, PARTTRANS_PERM } format;
int mm_support;
};
@ -194,7 +195,8 @@ static inline void mmx_emms(void)
static void dct_error(const char *name, int is_idct,
void (*fdct_func)(DCTELEM *block),
void (*fdct_ref)(DCTELEM *block), int form, int test)
void (*fdct_ref)(DCTELEM *block), int form,
int test)
{
int it, i, scale;
int err_inf, v;
@ -208,7 +210,8 @@ static void dct_error(const char *name, int is_idct,
err_inf = 0;
err2 = 0;
for(i=0; i<64; i++) sysErr[i]=0;
for (i = 0; i < 64; i++)
sysErr[i] = 0;
for (it = 0; it < NB_ITS; it++) {
for (i = 0; i < 64; i++)
block1[i] = 0;
@ -218,7 +221,6 @@ static void dct_error(const char *name, int is_idct,
block1[i] = (av_lfg_get(&prng) % 512) - 256;
if (is_idct) {
ff_ref_fdct(block1);
for (i = 0; i < 64; i++)
block1[i] >>= 3;
}
@ -226,8 +228,10 @@ static void dct_error(const char *name, int is_idct,
case 1: {
int num = av_lfg_get(&prng) % 10 + 1;
for (i = 0; i < num; i++)
block1[av_lfg_get(&prng) % 64] = av_lfg_get(&prng) % 512 -256;
}break;
block1[av_lfg_get(&prng) % 64] =
av_lfg_get(&prng) % 512 - 256;
}
break;
case 2:
block1[0] = av_lfg_get(&prng) % 4096 - 2048;
block1[63] = (block1[0] & 1) ^ 1;
@ -243,7 +247,6 @@ static void dct_error(const char *name, int is_idct,
} else if (form == MMX_SIMPLE_PERM) {
for (i = 0; i < 64; i++)
block[idct_simple_mmx_perm[i]] = block1[i];
} else if (form == SSE2_PERM) {
for (i = 0; i < 64; i++)
block[(i & 0x38) | idct_sse2_row_perm[i & 7]] = block1[i];
@ -261,7 +264,7 @@ static void dct_error(const char *name, int is_idct,
if (form == SCALE_PERM) {
for (i = 0; i < 64; i++) {
scale = 8 * (1 << (AANSCALE_BITS + 11)) / ff_aanscales[i];
block[i] = (block[i] * scale /*+ (1<<(AANSCALE_BITS-1))*/) >> AANSCALE_BITS;
block[i] = (block[i] * scale) >> AANSCALE_BITS;
}
}
@ -275,43 +278,48 @@ static void dct_error(const char *name, int is_idct,
err2 += v * v;
sysErr[i] += block[i] - block1[i];
blockSumErr += v;
if( abs(block[i])>maxout) maxout=abs(block[i]);
if (abs(block[i]) > maxout)
maxout = abs(block[i]);
}
if(blockSumErrMax < blockSumErr) blockSumErrMax= blockSumErr;
if (blockSumErrMax < blockSumErr)
blockSumErrMax = blockSumErr;
}
for(i=0; i<64; i++) sysErrMax= FFMAX(sysErrMax, FFABS(sysErr[i]));
for (i = 0; i < 64; i++)
sysErrMax = FFMAX(sysErrMax, FFABS(sysErr[i]));
for (i = 0; i < 64; i++) {
if(i%8==0) printf("\n");
if (i % 8 == 0)
printf("\n");
printf("%7d ", (int) sysErr[i]);
}
printf("\n");
printf("%s %s: err_inf=%d err2=%0.8f syserr=%0.8f maxout=%d blockSumErr=%d\n",
is_idct ? "IDCT" : "DCT",
name, err_inf, (double)err2 / NB_ITS / 64.0, (double)sysErrMax / NB_ITS, maxout, blockSumErrMax);
is_idct ? "IDCT" : "DCT", name, err_inf,
(double) err2 / NB_ITS / 64.0, (double) sysErrMax / NB_ITS,
maxout, blockSumErrMax);
/* speed test */
for (i = 0; i < 64; i++)
block1[i] = 0;
switch (test) {
case 0:
for (i = 0; i < 64; i++)
block1[i] = av_lfg_get(&prng) % 512 - 256;
if (is_idct) {
ff_ref_fdct(block1);
for (i = 0; i < 64; i++)
block1[i] >>= 3;
}
break;
case 1:{
case 1:
case 2:
block1[0] = av_lfg_get(&prng) % 512 - 256;
block1[1] = av_lfg_get(&prng) % 512 - 256;
block1[2] = av_lfg_get(&prng) % 512 - 256;
block1[3] = av_lfg_get(&prng) % 512 - 256;
}break;
break;
}
if (form == MMX_PERM) {
@ -338,9 +346,8 @@ static void dct_error(const char *name, int is_idct,
} while (ti1 < 1000000);
mmx_emms();
printf("%s %s: %0.1f kdct/s\n",
is_idct ? "IDCT" : "DCT",
name, (double)it1 * 1000.0 / (double)ti1);
printf("%s %s: %0.1f kdct/s\n", is_idct ? "IDCT" : "DCT", name,
(double) it1 * 1000.0 / (double) ti1);
}
DECLARE_ALIGNED(8, static uint8_t, img_dest)[64];
@ -381,8 +388,10 @@ static void idct248_ref(uint8_t *dest, int linesize, int16_t *block)
s = 0.5 * sqrt(2.0);
for (i = 0; i < 4; i++) {
for (j = 0; j < 8; j++) {
block1[8*(2*i)+j] = (block[8*(2*i)+j] + block[8*(2*i+1)+j]) * s;
block1[8*(2*i+1)+j] = (block[8*(2*i)+j] - block[8*(2*i+1)+j]) * s;
block1[8 * (2 * i) + j] =
(block[8 * (2 * i) + j] + block[8 * (2 * i + 1) + j]) * s;
block1[8 * (2 * i + 1) + j] =
(block[8 * (2 * i) + j] - block[8 * (2 * i + 1) + j]) * s;
}
}
@ -417,20 +426,18 @@ static void idct248_ref(uint8_t *dest, int linesize, int16_t *block)
for (i = 0; i < 8; i++) {
for (j = 0; j < 8; j++) {
v = block3[8 * i + j];
if (v < 0)
v = 0;
else if (v > 255)
v = 255;
if (v < 0) v = 0;
else if (v > 255) v = 255;
dest[i * linesize + j] = (int) rint(v);
}
}
}
static void idct248_error(const char *name,
void (*idct248_put)(uint8_t *dest, int line_size, int16_t *block))
void (*idct248_put)(uint8_t *dest, int line_size,
int16_t *block))
{
int it, i, it1, ti, ti1, err_max, v;
AVLFG prng;
av_lfg_init(&prng, 1);
@ -439,7 +446,6 @@ static void idct248_error(const char *name,
important here) */
err_max = 0;
for (it = 0; it < NB_ITS; it++) {
/* XXX: use forward transform to generate values */
for (i = 0; i < 64; i++)
block1[i] = av_lfg_get(&prng) % 256 - 128;
@ -461,9 +467,7 @@ static void idct248_error(const char *name,
err_max = v;
}
}
printf("%s %s: err_inf=%d\n",
1 ? "IDCT248" : "DCT248",
name, err_max);
printf("%s %s: err_inf=%d\n", 1 ? "IDCT248" : "DCT248", name, err_max);
ti = gettime();
it1 = 0;
@ -478,9 +482,8 @@ static void idct248_error(const char *name,
} while (ti1 < 1000000);
mmx_emms();
printf("%s %s: %0.1f kdct/s\n",
1 ? "IDCT248" : "DCT248",
name, (double)it1 * 1000.0 / (double)ti1);
printf("%s %s: %0.1f kdct/s\n", 1 ? "IDCT248" : "DCT248", name,
(double) it1 * 1000.0 / (double) ti1);
}
static void help(void)
@ -498,12 +501,14 @@ int main(int argc, char **argv)
int test_idct = 0, test_248_dct = 0;
int c, i;
int test = 1;
cpu_flags = av_get_cpu_flags();
ff_ref_dct_init();
idct_mmx_init();
for(i=0;i<256;i++) cropTbl[i + MAX_NEG_CROP] = i;
for (i = 0; i < 256; i++)
cropTbl[i + MAX_NEG_CROP] = i;
for (i = 0; i < MAX_NEG_CROP; i++) {
cropTbl[i] = 0;
cropTbl[i + MAX_NEG_CROP + 256] = 255;
@ -527,7 +532,8 @@ int main(int argc, char **argv)
}
}
if(optind <argc) test= atoi(argv[optind]);
if (optind < argc)
test = atoi(argv[optind]);
printf("ffmpeg DCT/IDCT test\n");
@ -535,8 +541,10 @@ int main(int argc, char **argv)
idct248_error("SIMPLE-C", ff_simple_idct248_put);
} else {
for (i = 0; algos[i].name; i++)
if (algos[i].is_idct == test_idct && !(~cpu_flags & algos[i].mm_support)) {
dct_error (algos[i].name, algos[i].is_idct, algos[i].func, algos[i].ref, algos[i].format, test);
if (algos[i].is_idct == test_idct &&
!(~cpu_flags & algos[i].mm_support)) {
dct_error(algos[i].name, algos[i].is_idct, algos[i].func,
algos[i].ref, algos[i].format, test);
}
}
return 0;