Mercurial > libavcodec.hg
comparison fdctref.c @ 2979:bfabfdf9ce55 libavcodec
COSMETICS: tabs --> spaces, some prettyprinting
author | diego |
---|---|
date | Thu, 22 Dec 2005 01:10:11 +0000 |
parents | ef2149182f1c |
children | 2b72f9bc4f06 |
comparison
equal
deleted
inserted
replaced
2978:403183bbb505 | 2979:bfabfdf9ce55 |
---|---|
62 } | 62 } |
63 | 63 |
64 void fdct(block) | 64 void fdct(block) |
65 short *block; | 65 short *block; |
66 { | 66 { |
67 register int i, j; | 67 register int i, j; |
68 double s; | 68 double s; |
69 double tmp[64]; | 69 double tmp[64]; |
70 | 70 |
71 for(i = 0; i < 8; i++) | 71 for(i = 0; i < 8; i++) |
72 for(j = 0; j < 8; j++) | 72 for(j = 0; j < 8; j++) |
73 { | 73 { |
74 s = 0.0; | 74 s = 0.0; |
75 | 75 |
76 /* | 76 /* |
77 * for(k = 0; k < 8; k++) | 77 * for(k = 0; k < 8; k++) |
78 * s += c[j][k] * block[8 * i + k]; | 78 * s += c[j][k] * block[8 * i + k]; |
79 */ | 79 */ |
80 s += c[j][0] * block[8 * i + 0]; | 80 s += c[j][0] * block[8 * i + 0]; |
81 s += c[j][1] * block[8 * i + 1]; | 81 s += c[j][1] * block[8 * i + 1]; |
82 s += c[j][2] * block[8 * i + 2]; | 82 s += c[j][2] * block[8 * i + 2]; |
83 s += c[j][3] * block[8 * i + 3]; | 83 s += c[j][3] * block[8 * i + 3]; |
84 s += c[j][4] * block[8 * i + 4]; | 84 s += c[j][4] * block[8 * i + 4]; |
85 s += c[j][5] * block[8 * i + 5]; | 85 s += c[j][5] * block[8 * i + 5]; |
86 s += c[j][6] * block[8 * i + 6]; | 86 s += c[j][6] * block[8 * i + 6]; |
87 s += c[j][7] * block[8 * i + 7]; | 87 s += c[j][7] * block[8 * i + 7]; |
88 | 88 |
89 tmp[8 * i + j] = s; | 89 tmp[8 * i + j] = s; |
90 } | 90 } |
91 | 91 |
92 for(j = 0; j < 8; j++) | 92 for(j = 0; j < 8; j++) |
93 for(i = 0; i < 8; i++) | 93 for(i = 0; i < 8; i++) |
94 { | 94 { |
95 s = 0.0; | 95 s = 0.0; |
96 | 96 |
97 /* | 97 /* |
98 * for(k = 0; k < 8; k++) | 98 * for(k = 0; k < 8; k++) |
99 * s += c[i][k] * tmp[8 * k + j]; | 99 * s += c[i][k] * tmp[8 * k + j]; |
100 */ | 100 */ |
101 s += c[i][0] * tmp[8 * 0 + j]; | 101 s += c[i][0] * tmp[8 * 0 + j]; |
102 s += c[i][1] * tmp[8 * 1 + j]; | 102 s += c[i][1] * tmp[8 * 1 + j]; |
103 s += c[i][2] * tmp[8 * 2 + j]; | 103 s += c[i][2] * tmp[8 * 2 + j]; |
104 s += c[i][3] * tmp[8 * 3 + j]; | 104 s += c[i][3] * tmp[8 * 3 + j]; |
105 s += c[i][4] * tmp[8 * 4 + j]; | 105 s += c[i][4] * tmp[8 * 4 + j]; |
106 s += c[i][5] * tmp[8 * 5 + j]; | 106 s += c[i][5] * tmp[8 * 5 + j]; |
107 s += c[i][6] * tmp[8 * 6 + j]; | 107 s += c[i][6] * tmp[8 * 6 + j]; |
108 s += c[i][7] * tmp[8 * 7 + j]; | 108 s += c[i][7] * tmp[8 * 7 + j]; |
109 s*=8.0; | 109 s*=8.0; |
110 | 110 |
111 block[8 * i + j] = (short)floor(s + 0.499999); | 111 block[8 * i + j] = (short)floor(s + 0.499999); |
112 /* | 112 /* |
113 * reason for adding 0.499999 instead of 0.5: | 113 * reason for adding 0.499999 instead of 0.5: |
114 * s is quite often x.5 (at least for i and/or j = 0 or 4) | 114 * s is quite often x.5 (at least for i and/or j = 0 or 4) |
115 * and setting the rounding threshold exactly to 0.5 leads to an | 115 * and setting the rounding threshold exactly to 0.5 leads to an |
116 * extremely high arithmetic implementation dependency of the result; | 116 * extremely high arithmetic implementation dependency of the result; |