Mercurial > libavcodec.hg
comparison jfdctfst.c @ 2979:bfabfdf9ce55 libavcodec
COSMETICS: tabs --> spaces, some prettyprinting
author | diego |
---|---|
date | Thu, 22 Dec 2005 01:10:11 +0000 |
parents | ef2149182f1c |
children | 9b98e18a1b1c |
comparison
equal
deleted
inserted
replaced
2978:403183bbb505 | 2979:bfabfdf9ce55 |
---|---|
81 * If you change CONST_BITS you may want to add appropriate values. | 81 * If you change CONST_BITS you may want to add appropriate values. |
82 * (With a reasonable C compiler, you can just rely on the FIX() macro...) | 82 * (With a reasonable C compiler, you can just rely on the FIX() macro...) |
83 */ | 83 */ |
84 | 84 |
85 #if CONST_BITS == 8 | 85 #if CONST_BITS == 8 |
86 #define FIX_0_382683433 ((int32_t) 98) /* FIX(0.382683433) */ | 86 #define FIX_0_382683433 ((int32_t) 98) /* FIX(0.382683433) */ |
87 #define FIX_0_541196100 ((int32_t) 139) /* FIX(0.541196100) */ | 87 #define FIX_0_541196100 ((int32_t) 139) /* FIX(0.541196100) */ |
88 #define FIX_0_707106781 ((int32_t) 181) /* FIX(0.707106781) */ | 88 #define FIX_0_707106781 ((int32_t) 181) /* FIX(0.707106781) */ |
89 #define FIX_1_306562965 ((int32_t) 334) /* FIX(1.306562965) */ | 89 #define FIX_1_306562965 ((int32_t) 334) /* FIX(1.306562965) */ |
90 #else | 90 #else |
91 #define FIX_0_382683433 FIX(0.382683433) | 91 #define FIX_0_382683433 FIX(0.382683433) |
92 #define FIX_0_541196100 FIX(0.541196100) | 92 #define FIX_0_541196100 FIX(0.541196100) |
93 #define FIX_0_707106781 FIX(0.707106781) | 93 #define FIX_0_707106781 FIX(0.707106781) |
94 #define FIX_1_306562965 FIX(1.306562965) | 94 #define FIX_1_306562965 FIX(1.306562965) |
133 tmp3 = dataptr[3] + dataptr[4]; | 133 tmp3 = dataptr[3] + dataptr[4]; |
134 tmp4 = dataptr[3] - dataptr[4]; | 134 tmp4 = dataptr[3] - dataptr[4]; |
135 | 135 |
136 /* Even part */ | 136 /* Even part */ |
137 | 137 |
138 tmp10 = tmp0 + tmp3; /* phase 2 */ | 138 tmp10 = tmp0 + tmp3; /* phase 2 */ |
139 tmp13 = tmp0 - tmp3; | 139 tmp13 = tmp0 - tmp3; |
140 tmp11 = tmp1 + tmp2; | 140 tmp11 = tmp1 + tmp2; |
141 tmp12 = tmp1 - tmp2; | 141 tmp12 = tmp1 - tmp2; |
142 | 142 |
143 dataptr[0] = tmp10 + tmp11; /* phase 3 */ | 143 dataptr[0] = tmp10 + tmp11; /* phase 3 */ |
144 dataptr[4] = tmp10 - tmp11; | 144 dataptr[4] = tmp10 - tmp11; |
145 | 145 |
146 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_707106781); /* c4 */ | 146 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_707106781); /* c4 */ |
147 dataptr[2] = tmp13 + z1; /* phase 5 */ | 147 dataptr[2] = tmp13 + z1; /* phase 5 */ |
148 dataptr[6] = tmp13 - z1; | 148 dataptr[6] = tmp13 - z1; |
149 | 149 |
150 /* Odd part */ | 150 /* Odd part */ |
151 | 151 |
152 tmp10 = tmp4 + tmp5; /* phase 2 */ | 152 tmp10 = tmp4 + tmp5; /* phase 2 */ |
153 tmp11 = tmp5 + tmp6; | 153 tmp11 = tmp5 + tmp6; |
154 tmp12 = tmp6 + tmp7; | 154 tmp12 = tmp6 + tmp7; |
155 | 155 |
156 /* The rotator is modified from fig 4-8 to avoid extra negations. */ | 156 /* The rotator is modified from fig 4-8 to avoid extra negations. */ |
157 z5 = MULTIPLY(tmp10 - tmp12, FIX_0_382683433); /* c6 */ | 157 z5 = MULTIPLY(tmp10 - tmp12, FIX_0_382683433); /* c6 */ |
158 z2 = MULTIPLY(tmp10, FIX_0_541196100) + z5; /* c2-c6 */ | 158 z2 = MULTIPLY(tmp10, FIX_0_541196100) + z5; /* c2-c6 */ |
159 z4 = MULTIPLY(tmp12, FIX_1_306562965) + z5; /* c2+c6 */ | 159 z4 = MULTIPLY(tmp12, FIX_1_306562965) + z5; /* c2+c6 */ |
160 z3 = MULTIPLY(tmp11, FIX_0_707106781); /* c4 */ | 160 z3 = MULTIPLY(tmp11, FIX_0_707106781); /* c4 */ |
161 | 161 |
162 z11 = tmp7 + z3; /* phase 5 */ | 162 z11 = tmp7 + z3; /* phase 5 */ |
163 z13 = tmp7 - z3; | 163 z13 = tmp7 - z3; |
164 | 164 |
165 dataptr[5] = z13 + z2; /* phase 6 */ | 165 dataptr[5] = z13 + z2; /* phase 6 */ |
166 dataptr[3] = z13 - z2; | 166 dataptr[3] = z13 - z2; |
167 dataptr[1] = z11 + z4; | 167 dataptr[1] = z11 + z4; |
168 dataptr[7] = z11 - z4; | 168 dataptr[7] = z11 - z4; |
169 | 169 |
170 dataptr += DCTSIZE; /* advance pointer to next row */ | 170 dataptr += DCTSIZE; /* advance pointer to next row */ |
171 } | 171 } |
172 } | 172 } |
173 | 173 |
174 /* | 174 /* |
175 * Perform the forward DCT on one block of samples. | 175 * Perform the forward DCT on one block of samples. |
200 tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4]; | 200 tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4]; |
201 tmp4 = dataptr[DCTSIZE*3] - dataptr[DCTSIZE*4]; | 201 tmp4 = dataptr[DCTSIZE*3] - dataptr[DCTSIZE*4]; |
202 | 202 |
203 /* Even part */ | 203 /* Even part */ |
204 | 204 |
205 tmp10 = tmp0 + tmp3; /* phase 2 */ | 205 tmp10 = tmp0 + tmp3; /* phase 2 */ |
206 tmp13 = tmp0 - tmp3; | 206 tmp13 = tmp0 - tmp3; |
207 tmp11 = tmp1 + tmp2; | 207 tmp11 = tmp1 + tmp2; |
208 tmp12 = tmp1 - tmp2; | 208 tmp12 = tmp1 - tmp2; |
209 | 209 |
210 dataptr[DCTSIZE*0] = tmp10 + tmp11; /* phase 3 */ | 210 dataptr[DCTSIZE*0] = tmp10 + tmp11; /* phase 3 */ |
214 dataptr[DCTSIZE*2] = tmp13 + z1; /* phase 5 */ | 214 dataptr[DCTSIZE*2] = tmp13 + z1; /* phase 5 */ |
215 dataptr[DCTSIZE*6] = tmp13 - z1; | 215 dataptr[DCTSIZE*6] = tmp13 - z1; |
216 | 216 |
217 /* Odd part */ | 217 /* Odd part */ |
218 | 218 |
219 tmp10 = tmp4 + tmp5; /* phase 2 */ | 219 tmp10 = tmp4 + tmp5; /* phase 2 */ |
220 tmp11 = tmp5 + tmp6; | 220 tmp11 = tmp5 + tmp6; |
221 tmp12 = tmp6 + tmp7; | 221 tmp12 = tmp6 + tmp7; |
222 | 222 |
223 /* The rotator is modified from fig 4-8 to avoid extra negations. */ | 223 /* The rotator is modified from fig 4-8 to avoid extra negations. */ |
224 z5 = MULTIPLY(tmp10 - tmp12, FIX_0_382683433); /* c6 */ | 224 z5 = MULTIPLY(tmp10 - tmp12, FIX_0_382683433); /* c6 */ |
225 z2 = MULTIPLY(tmp10, FIX_0_541196100) + z5; /* c2-c6 */ | 225 z2 = MULTIPLY(tmp10, FIX_0_541196100) + z5; /* c2-c6 */ |
226 z4 = MULTIPLY(tmp12, FIX_1_306562965) + z5; /* c2+c6 */ | 226 z4 = MULTIPLY(tmp12, FIX_1_306562965) + z5; /* c2+c6 */ |
227 z3 = MULTIPLY(tmp11, FIX_0_707106781); /* c4 */ | 227 z3 = MULTIPLY(tmp11, FIX_0_707106781); /* c4 */ |
228 | 228 |
229 z11 = tmp7 + z3; /* phase 5 */ | 229 z11 = tmp7 + z3; /* phase 5 */ |
230 z13 = tmp7 - z3; | 230 z13 = tmp7 - z3; |
231 | 231 |
232 dataptr[DCTSIZE*5] = z13 + z2; /* phase 6 */ | 232 dataptr[DCTSIZE*5] = z13 + z2; /* phase 6 */ |
233 dataptr[DCTSIZE*3] = z13 - z2; | 233 dataptr[DCTSIZE*3] = z13 - z2; |
234 dataptr[DCTSIZE*1] = z11 + z4; | 234 dataptr[DCTSIZE*1] = z11 + z4; |
235 dataptr[DCTSIZE*7] = z11 - z4; | 235 dataptr[DCTSIZE*7] = z11 - z4; |
236 | 236 |
237 dataptr++; /* advance pointer to next column */ | 237 dataptr++; /* advance pointer to next column */ |
238 } | 238 } |
239 } | 239 } |
240 | 240 |
241 /* | 241 /* |
242 * Perform the forward 2-4-8 DCT on one block of samples. | 242 * Perform the forward 2-4-8 DCT on one block of samples. |
291 | 291 |
292 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_707106781); | 292 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_707106781); |
293 dataptr[DCTSIZE*3] = tmp13 + z1; | 293 dataptr[DCTSIZE*3] = tmp13 + z1; |
294 dataptr[DCTSIZE*7] = tmp13 - z1; | 294 dataptr[DCTSIZE*7] = tmp13 - z1; |
295 | 295 |
296 dataptr++; /* advance pointer to next column */ | 296 dataptr++; /* advance pointer to next column */ |
297 } | 297 } |
298 } | 298 } |
299 | 299 |
300 | 300 |
301 #undef GLOBAL | 301 #undef GLOBAL |