Diego Biurrun <[email protected]> writes:

> On Mon, Jul 04, 2011 at 01:00:43AM +0100, Mans Rullgard wrote:
>> IDCTs are partially evaluated according to IEEE 1180-1990 (more or
>> less).  An override is added to the table for implementations known
>> to not meet the spec requirements.  These variants are run but not
>> checked for accuracy.
>> 
>> --- a/libavcodec/dct-test.c
>> +++ b/libavcodec/dct-test.c
>> @@ -115,13 +116,13 @@ static const struct algo idct_tab[] = {
>>  
>>  #if HAVE_MMX
>>  #if CONFIG_GPL
>> -    {"LIBMPEG2-MMX",    ff_mmx_idct,        ff_ref_idct, MMX_PERM, 
>> AV_CPU_FLAG_MMX},
>> -    {"LIBMPEG2-MMX2",   ff_mmxext_idct,     ff_ref_idct, MMX_PERM, 
>> AV_CPU_FLAG_MMX2},
>> +    {"LIBMPEG2-MMX",    ff_mmx_idct,        ff_ref_idct, MMX_PERM, 
>> AV_CPU_FLAG_MMX, 1},
>> +    {"LIBMPEG2-MMX2",   ff_mmxext_idct,     ff_ref_idct, MMX_PERM, 
>> AV_CPU_FLAG_MMX2, 1},
>>  #endif
>>      {"SIMPLE-MMX",      ff_simple_idct_mmx, ff_ref_idct, MMX_SIMPLE_PERM, 
>> AV_CPU_FLAG_MMX},
>> -    {"XVID-MMX",        ff_idct_xvid_mmx,   ff_ref_idct, NO_PERM, 
>> AV_CPU_FLAG_MMX},
>> -    {"XVID-MMX2",       ff_idct_xvid_mmx2,  ff_ref_idct, NO_PERM, 
>> AV_CPU_FLAG_MMX2},
>> -    {"XVID-SSE2",       ff_idct_xvid_sse2,  ff_ref_idct, SSE2_PERM, 
>> AV_CPU_FLAG_SSE2},
>> +    {"XVID-MMX",        ff_idct_xvid_mmx,   ff_ref_idct, NO_PERM, 
>> AV_CPU_FLAG_MMX, 1},
>> +    {"XVID-MMX2",       ff_idct_xvid_mmx2,  ff_ref_idct, NO_PERM, 
>> AV_CPU_FLAG_MMX2, 1},
>> +    {"XVID-SSE2",       ff_idct_xvid_sse2,  ff_ref_idct, SSE2_PERM, 
>> AV_CPU_FLAG_SSE2, 1},
>>  #endif
>
> Since the other columns are aligned,

But they are not.

> the last one could be aligned as well.

I was going to do another cosmetics pass later.

>> @@ -200,15 +201,17 @@ static inline void mmx_emms(void)
>>      int blockSumErrMax = 0, blockSumErr;
>>      AVLFG prng;
>> +    double omse, ome;
>>  
>> @@ -298,13 +303,21 @@ static void dct_error(const struct algo *dct, int 
>> test, int is_idct, int speed)
>>  
>> -    printf("%s %s: err_inf=%d err2=%0.8f syserr=%0.8f maxout=%d 
>> blockSumErr=%d\n",
>> +    omse = (double) err2 / NB_ITS / 64;
>> +    ome  = (double) err_sum / NB_ITS / 64;
>
> Maybe I'm just too tired, but I cannot make sense of these variable names.

The ones I added are from the IEEE 1180 spec, meaning "overall mean
square error" and "overall mean error".  The spec defines a few more
metrics and limits for them, which the test program doesn't compute.
Maybe I'll add those too later.

-- 
Måns Rullgård
[email protected]
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to