Mercurial > libavcodec.hg
comparison fdctref.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 | c77207dc78f4 |
children | 1e39f273ecd6 |
comparison
equal
deleted
inserted
replaced
634:be1cb0e1f276 | 635:3e0f62e5eed6 |
---|---|
101 s += c[i][3] * tmp[8 * 3 + j]; | 101 s += c[i][3] * tmp[8 * 3 + j]; |
102 s += c[i][4] * tmp[8 * 4 + j]; | 102 s += c[i][4] * tmp[8 * 4 + j]; |
103 s += c[i][5] * tmp[8 * 5 + j]; | 103 s += c[i][5] * tmp[8 * 5 + j]; |
104 s += c[i][6] * tmp[8 * 6 + j]; | 104 s += c[i][6] * tmp[8 * 6 + j]; |
105 s += c[i][7] * tmp[8 * 7 + j]; | 105 s += c[i][7] * tmp[8 * 7 + j]; |
106 s*=8.0; | |
106 | 107 |
107 block[8 * i + j] = (short)floor(s + 0.499999); | 108 block[8 * i + j] = (short)floor(s + 0.499999); |
108 /* | 109 /* |
109 * reason for adding 0.499999 instead of 0.5: | 110 * reason for adding 0.499999 instead of 0.5: |
110 * s is quite often x.5 (at least for i and/or j = 0 or 4) | 111 * s is quite often x.5 (at least for i and/or j = 0 or 4) |