dct-test: whitespace cosmetics
Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user