Mercurial > libavcodec.hg
diff dct-test.c @ 635:3e0f62e5eed6 libavcodec
dct cleanup
more accurate mmx dct (dont discard bits for fun)
fixing mmx quantizer bug for qscale%2==1 (bias was slightly wrong)
author | michaelni |
---|---|
date | Sun, 01 Sep 2002 16:52:33 +0000 |
parents | e7b72c1dfa1b |
children | 9abb13c21fbe |
line wrap: on
line diff
--- a/dct-test.c Sun Sep 01 14:30:55 2002 +0000 +++ b/dct-test.c Sun Sep 01 16:52:33 2002 +0000 @@ -101,8 +101,12 @@ case 0: for(i=0;i<64;i++) block1[i] = (random() % 512) -256; - if (is_idct) + if (is_idct){ fdct(block1); + + for(i=0;i<64;i++) + block1[i]>>=3; + } break; case 1:{ int num= (random()%10)+1; @@ -153,17 +157,11 @@ if (fdct_func == fdct_ifast) { for(i=0; i<64; i++) { - scale = (1 << (AANSCALE_BITS + 11)) / aanscales[i]; + scale = 8*(1 << (AANSCALE_BITS + 11)) / aanscales[i]; block[i] = (block[i] * scale /*+ (1<<(AANSCALE_BITS-1))*/) >> AANSCALE_BITS; } } - if (fdct_func == ff_jpeg_fdct_islow) { - for(i=0; i<64; i++) { - block[i] = (block[i]+3)>>3; - } - } - fdct_ref(block1); blockSumErr=0; @@ -212,8 +210,12 @@ case 0: for(i=0;i<64;i++) block1[i] = (random() % 512) -256; - if (is_idct) + if (is_idct){ fdct(block1); + + for(i=0;i<64;i++) + block1[i]>>=3; + } break; case 1:{ case 2: