[XviD-devel] xvid_bench from HEAD cvs gave me 2 quantizer CRC errors...is this expected?

suxen_drol suxen_drol at hotmail.com
Wed Jun 11 23:21:02 CEST 2003


On Tue, 10 Jun 2003 22:55:53 -0700 "Joe Millenbach" <jmillenbach at hotmail.com> wrote:
> ..
> =====  test quant =====
> PLAINC -   quant4_intra 65.978 usec       crc=29809
> PLAINC -   quant4_inter -96.911 usec       crc=12574
> PLAINC - dequant4_intra -40.233 usec       crc=24052
> PLAINC - dequant4_inter 145.859 usec       crc=63847
> PLAINC -    quant_intra -71.991 usec       crc=25662
> PLAINC -    quant_inter -61.561 usec       crc=23972
> PLAINC -  dequant_intra 103.125 usec       crc=49900
> PLAINC -  dequant_inter -69.530 usec       crc=48899
> ---
> MMX    -   quant4_intra 15.273 usec       crc=3459
> *** CRC ERROR! ***
> MMX    -   quant4_inter 12.812 usec       crc=13247
> *** CRC ERROR! ***
> ..
> 
> I'm using .NET Studio and want to make sure it's not my config...

does this only occur with quant4_* ?
if my memory serves me correctly, quant4_inter/intra_mmx is somewhat
buggy, in that a mmx multiply can can an overflow with large or small
input coeefficents. therefore, when perfoming a comparions of the
plain-c versus mmx (as xvid_stat does), there are some deprepancies.

> Also the time calculation seems to be wrong for win32.  On mine it causes 
> some negative times to be displayed.  Not sure if it's different on other 
> versions of Visual Studio, but in .NET "CLOCKS_PER_SEC" = 1000.  And if I 
> change the following line in xvid_bench.c from...
> 
> return clk * 1000000 / CLOCKS_PER_SEC;
> 
> to...
> 
> return clk * 1000;
> 
> It fixes the negative times.  I'm guessing it multiplies first then 
> overflows the int.  Parenthesis would probably fix it too ("return clk * 
> (1000000.0 / CLOCKS_PER_SEC);"...added the decimal to make the result a 
> double just in case).

yep, the 1000000 is an error, it should be 1000.
i will commit a fix shortly.

-- pete




More information about the XviD-devel mailing list