annotate jfdctfst.c @ 905:2b93dc762f9a libavcodec

fixing illegal 3. esc bug (the mpeg4 std only requires encoders to use unescaped symbols but not esc1 or esc2 if they are shorter than esc3, andjust beause its logical to use the shortest possible vlc doesnt mean encoders do that)
author michaelni
date Wed, 04 Dec 2002 11:47:24 +0000
parents 11dbd00682fc
children b32afefe7d33
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
1 /*
986e461dc072 Initial revision
glantau
parents:
diff changeset
2 * jfdctfst.c
986e461dc072 Initial revision
glantau
parents:
diff changeset
3 *
986e461dc072 Initial revision
glantau
parents:
diff changeset
4 * Copyright (C) 1994-1996, Thomas G. Lane.
986e461dc072 Initial revision
glantau
parents:
diff changeset
5 * This file is part of the Independent JPEG Group's software.
986e461dc072 Initial revision
glantau
parents:
diff changeset
6 * For conditions of distribution and use, see the accompanying README file.
986e461dc072 Initial revision
glantau
parents:
diff changeset
7 *
986e461dc072 Initial revision
glantau
parents:
diff changeset
8 * This file contains a fast, not so accurate integer implementation of the
986e461dc072 Initial revision
glantau
parents:
diff changeset
9 * forward DCT (Discrete Cosine Transform).
986e461dc072 Initial revision
glantau
parents:
diff changeset
10 *
986e461dc072 Initial revision
glantau
parents:
diff changeset
11 * A 2-D DCT can be done by 1-D DCT on each row followed by 1-D DCT
986e461dc072 Initial revision
glantau
parents:
diff changeset
12 * on each column. Direct algorithms are also available, but they are
986e461dc072 Initial revision
glantau
parents:
diff changeset
13 * much more complex and seem not to be any faster when reduced to code.
986e461dc072 Initial revision
glantau
parents:
diff changeset
14 *
986e461dc072 Initial revision
glantau
parents:
diff changeset
15 * This implementation is based on Arai, Agui, and Nakajima's algorithm for
986e461dc072 Initial revision
glantau
parents:
diff changeset
16 * scaled DCT. Their original paper (Trans. IEICE E-71(11):1095) is in
986e461dc072 Initial revision
glantau
parents:
diff changeset
17 * Japanese, but the algorithm is described in the Pennebaker & Mitchell
986e461dc072 Initial revision
glantau
parents:
diff changeset
18 * JPEG textbook (see REFERENCES section in file README). The following code
986e461dc072 Initial revision
glantau
parents:
diff changeset
19 * is based directly on figure 4-8 in P&M.
986e461dc072 Initial revision
glantau
parents:
diff changeset
20 * While an 8-point DCT cannot be done in less than 11 multiplies, it is
986e461dc072 Initial revision
glantau
parents:
diff changeset
21 * possible to arrange the computation so that many of the multiplies are
986e461dc072 Initial revision
glantau
parents:
diff changeset
22 * simple scalings of the final outputs. These multiplies can then be
986e461dc072 Initial revision
glantau
parents:
diff changeset
23 * folded into the multiplications or divisions by the JPEG quantization
986e461dc072 Initial revision
glantau
parents:
diff changeset
24 * table entries. The AA&N method leaves only 5 multiplies and 29 adds
986e461dc072 Initial revision
glantau
parents:
diff changeset
25 * to be done in the DCT itself.
986e461dc072 Initial revision
glantau
parents:
diff changeset
26 * The primary disadvantage of this method is that with fixed-point math,
986e461dc072 Initial revision
glantau
parents:
diff changeset
27 * accuracy is lost due to imprecise representation of the scaled
986e461dc072 Initial revision
glantau
parents:
diff changeset
28 * quantization values. The smaller the quantization table entry, the less
986e461dc072 Initial revision
glantau
parents:
diff changeset
29 * precise the scaled value, so this implementation does worse with high-
986e461dc072 Initial revision
glantau
parents:
diff changeset
30 * quality-setting files than with low-quality ones.
986e461dc072 Initial revision
glantau
parents:
diff changeset
31 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
32
986e461dc072 Initial revision
glantau
parents:
diff changeset
33 #include <stdlib.h>
986e461dc072 Initial revision
glantau
parents:
diff changeset
34 #include <stdio.h>
986e461dc072 Initial revision
glantau
parents:
diff changeset
35 #include "common.h"
986e461dc072 Initial revision
glantau
parents:
diff changeset
36 #include "dsputil.h"
986e461dc072 Initial revision
glantau
parents:
diff changeset
37
986e461dc072 Initial revision
glantau
parents:
diff changeset
38 #define DCTSIZE 8
986e461dc072 Initial revision
glantau
parents:
diff changeset
39 #define GLOBAL(x) x
986e461dc072 Initial revision
glantau
parents:
diff changeset
40 #define RIGHT_SHIFT(x, n) ((x) >> (n))
986e461dc072 Initial revision
glantau
parents:
diff changeset
41 #define SHIFT_TEMPS
986e461dc072 Initial revision
glantau
parents:
diff changeset
42
986e461dc072 Initial revision
glantau
parents:
diff changeset
43 /*
986e461dc072 Initial revision
glantau
parents:
diff changeset
44 * This module is specialized to the case DCTSIZE = 8.
986e461dc072 Initial revision
glantau
parents:
diff changeset
45 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
46
986e461dc072 Initial revision
glantau
parents:
diff changeset
47 #if DCTSIZE != 8
986e461dc072 Initial revision
glantau
parents:
diff changeset
48 Sorry, this code only copes with 8x8 DCTs. /* deliberate syntax err */
986e461dc072 Initial revision
glantau
parents:
diff changeset
49 #endif
986e461dc072 Initial revision
glantau
parents:
diff changeset
50
986e461dc072 Initial revision
glantau
parents:
diff changeset
51
986e461dc072 Initial revision
glantau
parents:
diff changeset
52 /* Scaling decisions are generally the same as in the LL&M algorithm;
986e461dc072 Initial revision
glantau
parents:
diff changeset
53 * see jfdctint.c for more details. However, we choose to descale
986e461dc072 Initial revision
glantau
parents:
diff changeset
54 * (right shift) multiplication products as soon as they are formed,
986e461dc072 Initial revision
glantau
parents:
diff changeset
55 * rather than carrying additional fractional bits into subsequent additions.
986e461dc072 Initial revision
glantau
parents:
diff changeset
56 * This compromises accuracy slightly, but it lets us save a few shifts.
986e461dc072 Initial revision
glantau
parents:
diff changeset
57 * More importantly, 16-bit arithmetic is then adequate (for 8-bit samples)
986e461dc072 Initial revision
glantau
parents:
diff changeset
58 * everywhere except in the multiplications proper; this saves a good deal
986e461dc072 Initial revision
glantau
parents:
diff changeset
59 * of work on 16-bit-int machines.
986e461dc072 Initial revision
glantau
parents:
diff changeset
60 *
986e461dc072 Initial revision
glantau
parents:
diff changeset
61 * Again to save a few shifts, the intermediate results between pass 1 and
986e461dc072 Initial revision
glantau
parents:
diff changeset
62 * pass 2 are not upscaled, but are represented only to integral precision.
986e461dc072 Initial revision
glantau
parents:
diff changeset
63 *
986e461dc072 Initial revision
glantau
parents:
diff changeset
64 * A final compromise is to represent the multiplicative constants to only
986e461dc072 Initial revision
glantau
parents:
diff changeset
65 * 8 fractional bits, rather than 13. This saves some shifting work on some
986e461dc072 Initial revision
glantau
parents:
diff changeset
66 * machines, and may also reduce the cost of multiplication (since there
986e461dc072 Initial revision
glantau
parents:
diff changeset
67 * are fewer one-bits in the constants).
986e461dc072 Initial revision
glantau
parents:
diff changeset
68 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
69
986e461dc072 Initial revision
glantau
parents:
diff changeset
70 #define CONST_BITS 8
986e461dc072 Initial revision
glantau
parents:
diff changeset
71
986e461dc072 Initial revision
glantau
parents:
diff changeset
72
986e461dc072 Initial revision
glantau
parents:
diff changeset
73 /* Some C compilers fail to reduce "FIX(constant)" at compile time, thus
986e461dc072 Initial revision
glantau
parents:
diff changeset
74 * causing a lot of useless floating-point operations at run time.
986e461dc072 Initial revision
glantau
parents:
diff changeset
75 * To get around this we use the following pre-calculated constants.
986e461dc072 Initial revision
glantau
parents:
diff changeset
76 * If you change CONST_BITS you may want to add appropriate values.
986e461dc072 Initial revision
glantau
parents:
diff changeset
77 * (With a reasonable C compiler, you can just rely on the FIX() macro...)
986e461dc072 Initial revision
glantau
parents:
diff changeset
78 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
79
986e461dc072 Initial revision
glantau
parents:
diff changeset
80 #if CONST_BITS == 8
986e461dc072 Initial revision
glantau
parents:
diff changeset
81 #define FIX_0_382683433 ((INT32) 98) /* FIX(0.382683433) */
986e461dc072 Initial revision
glantau
parents:
diff changeset
82 #define FIX_0_541196100 ((INT32) 139) /* FIX(0.541196100) */
986e461dc072 Initial revision
glantau
parents:
diff changeset
83 #define FIX_0_707106781 ((INT32) 181) /* FIX(0.707106781) */
986e461dc072 Initial revision
glantau
parents:
diff changeset
84 #define FIX_1_306562965 ((INT32) 334) /* FIX(1.306562965) */
986e461dc072 Initial revision
glantau
parents:
diff changeset
85 #else
986e461dc072 Initial revision
glantau
parents:
diff changeset
86 #define FIX_0_382683433 FIX(0.382683433)
986e461dc072 Initial revision
glantau
parents:
diff changeset
87 #define FIX_0_541196100 FIX(0.541196100)
986e461dc072 Initial revision
glantau
parents:
diff changeset
88 #define FIX_0_707106781 FIX(0.707106781)
986e461dc072 Initial revision
glantau
parents:
diff changeset
89 #define FIX_1_306562965 FIX(1.306562965)
986e461dc072 Initial revision
glantau
parents:
diff changeset
90 #endif
986e461dc072 Initial revision
glantau
parents:
diff changeset
91
986e461dc072 Initial revision
glantau
parents:
diff changeset
92
986e461dc072 Initial revision
glantau
parents:
diff changeset
93 /* We can gain a little more speed, with a further compromise in accuracy,
986e461dc072 Initial revision
glantau
parents:
diff changeset
94 * by omitting the addition in a descaling shift. This yields an incorrectly
986e461dc072 Initial revision
glantau
parents:
diff changeset
95 * rounded result half the time...
986e461dc072 Initial revision
glantau
parents:
diff changeset
96 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
97
986e461dc072 Initial revision
glantau
parents:
diff changeset
98 #ifndef USE_ACCURATE_ROUNDING
986e461dc072 Initial revision
glantau
parents:
diff changeset
99 #undef DESCALE
986e461dc072 Initial revision
glantau
parents:
diff changeset
100 #define DESCALE(x,n) RIGHT_SHIFT(x, n)
986e461dc072 Initial revision
glantau
parents:
diff changeset
101 #endif
986e461dc072 Initial revision
glantau
parents:
diff changeset
102
986e461dc072 Initial revision
glantau
parents:
diff changeset
103
986e461dc072 Initial revision
glantau
parents:
diff changeset
104 /* Multiply a DCTELEM variable by an INT32 constant, and immediately
986e461dc072 Initial revision
glantau
parents:
diff changeset
105 * descale to yield a DCTELEM result.
986e461dc072 Initial revision
glantau
parents:
diff changeset
106 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
107
986e461dc072 Initial revision
glantau
parents:
diff changeset
108 #define MULTIPLY(var,const) ((DCTELEM) DESCALE((var) * (const), CONST_BITS))
986e461dc072 Initial revision
glantau
parents:
diff changeset
109
986e461dc072 Initial revision
glantau
parents:
diff changeset
110
986e461dc072 Initial revision
glantau
parents:
diff changeset
111 /*
986e461dc072 Initial revision
glantau
parents:
diff changeset
112 * Perform the forward DCT on one block of samples.
986e461dc072 Initial revision
glantau
parents:
diff changeset
113 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
114
986e461dc072 Initial revision
glantau
parents:
diff changeset
115 GLOBAL(void)
474
11dbd00682fc avoid name clash with libjpeg - added missing externs
bellard
parents: 440
diff changeset
116 fdct_ifast (DCTELEM * data)
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
117 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
118 DCTELEM tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
986e461dc072 Initial revision
glantau
parents:
diff changeset
119 DCTELEM tmp10, tmp11, tmp12, tmp13;
986e461dc072 Initial revision
glantau
parents:
diff changeset
120 DCTELEM z1, z2, z3, z4, z5, z11, z13;
986e461dc072 Initial revision
glantau
parents:
diff changeset
121 DCTELEM *dataptr;
986e461dc072 Initial revision
glantau
parents:
diff changeset
122 int ctr;
986e461dc072 Initial revision
glantau
parents:
diff changeset
123 SHIFT_TEMPS
986e461dc072 Initial revision
glantau
parents:
diff changeset
124
986e461dc072 Initial revision
glantau
parents:
diff changeset
125 /* Pass 1: process rows. */
986e461dc072 Initial revision
glantau
parents:
diff changeset
126
986e461dc072 Initial revision
glantau
parents:
diff changeset
127 dataptr = data;
986e461dc072 Initial revision
glantau
parents:
diff changeset
128 for (ctr = DCTSIZE-1; ctr >= 0; ctr--) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
129 tmp0 = dataptr[0] + dataptr[7];
986e461dc072 Initial revision
glantau
parents:
diff changeset
130 tmp7 = dataptr[0] - dataptr[7];
986e461dc072 Initial revision
glantau
parents:
diff changeset
131 tmp1 = dataptr[1] + dataptr[6];
986e461dc072 Initial revision
glantau
parents:
diff changeset
132 tmp6 = dataptr[1] - dataptr[6];
986e461dc072 Initial revision
glantau
parents:
diff changeset
133 tmp2 = dataptr[2] + dataptr[5];
986e461dc072 Initial revision
glantau
parents:
diff changeset
134 tmp5 = dataptr[2] - dataptr[5];
986e461dc072 Initial revision
glantau
parents:
diff changeset
135 tmp3 = dataptr[3] + dataptr[4];
986e461dc072 Initial revision
glantau
parents:
diff changeset
136 tmp4 = dataptr[3] - dataptr[4];
986e461dc072 Initial revision
glantau
parents:
diff changeset
137
986e461dc072 Initial revision
glantau
parents:
diff changeset
138 /* Even part */
986e461dc072 Initial revision
glantau
parents:
diff changeset
139
986e461dc072 Initial revision
glantau
parents:
diff changeset
140 tmp10 = tmp0 + tmp3; /* phase 2 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
141 tmp13 = tmp0 - tmp3;
986e461dc072 Initial revision
glantau
parents:
diff changeset
142 tmp11 = tmp1 + tmp2;
986e461dc072 Initial revision
glantau
parents:
diff changeset
143 tmp12 = tmp1 - tmp2;
986e461dc072 Initial revision
glantau
parents:
diff changeset
144
986e461dc072 Initial revision
glantau
parents:
diff changeset
145 dataptr[0] = tmp10 + tmp11; /* phase 3 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
146 dataptr[4] = tmp10 - tmp11;
986e461dc072 Initial revision
glantau
parents:
diff changeset
147
986e461dc072 Initial revision
glantau
parents:
diff changeset
148 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_707106781); /* c4 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
149 dataptr[2] = tmp13 + z1; /* phase 5 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
150 dataptr[6] = tmp13 - z1;
986e461dc072 Initial revision
glantau
parents:
diff changeset
151
986e461dc072 Initial revision
glantau
parents:
diff changeset
152 /* Odd part */
986e461dc072 Initial revision
glantau
parents:
diff changeset
153
986e461dc072 Initial revision
glantau
parents:
diff changeset
154 tmp10 = tmp4 + tmp5; /* phase 2 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
155 tmp11 = tmp5 + tmp6;
986e461dc072 Initial revision
glantau
parents:
diff changeset
156 tmp12 = tmp6 + tmp7;
986e461dc072 Initial revision
glantau
parents:
diff changeset
157
986e461dc072 Initial revision
glantau
parents:
diff changeset
158 /* The rotator is modified from fig 4-8 to avoid extra negations. */
986e461dc072 Initial revision
glantau
parents:
diff changeset
159 z5 = MULTIPLY(tmp10 - tmp12, FIX_0_382683433); /* c6 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
160 z2 = MULTIPLY(tmp10, FIX_0_541196100) + z5; /* c2-c6 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
161 z4 = MULTIPLY(tmp12, FIX_1_306562965) + z5; /* c2+c6 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
162 z3 = MULTIPLY(tmp11, FIX_0_707106781); /* c4 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
163
986e461dc072 Initial revision
glantau
parents:
diff changeset
164 z11 = tmp7 + z3; /* phase 5 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
165 z13 = tmp7 - z3;
986e461dc072 Initial revision
glantau
parents:
diff changeset
166
986e461dc072 Initial revision
glantau
parents:
diff changeset
167 dataptr[5] = z13 + z2; /* phase 6 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
168 dataptr[3] = z13 - z2;
986e461dc072 Initial revision
glantau
parents:
diff changeset
169 dataptr[1] = z11 + z4;
986e461dc072 Initial revision
glantau
parents:
diff changeset
170 dataptr[7] = z11 - z4;
986e461dc072 Initial revision
glantau
parents:
diff changeset
171
986e461dc072 Initial revision
glantau
parents:
diff changeset
172 dataptr += DCTSIZE; /* advance pointer to next row */
986e461dc072 Initial revision
glantau
parents:
diff changeset
173 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
174
986e461dc072 Initial revision
glantau
parents:
diff changeset
175 /* Pass 2: process columns. */
986e461dc072 Initial revision
glantau
parents:
diff changeset
176
986e461dc072 Initial revision
glantau
parents:
diff changeset
177 dataptr = data;
986e461dc072 Initial revision
glantau
parents:
diff changeset
178 for (ctr = DCTSIZE-1; ctr >= 0; ctr--) {
986e461dc072 Initial revision
glantau
parents:
diff changeset
179 tmp0 = dataptr[DCTSIZE*0] + dataptr[DCTSIZE*7];
986e461dc072 Initial revision
glantau
parents:
diff changeset
180 tmp7 = dataptr[DCTSIZE*0] - dataptr[DCTSIZE*7];
986e461dc072 Initial revision
glantau
parents:
diff changeset
181 tmp1 = dataptr[DCTSIZE*1] + dataptr[DCTSIZE*6];
986e461dc072 Initial revision
glantau
parents:
diff changeset
182 tmp6 = dataptr[DCTSIZE*1] - dataptr[DCTSIZE*6];
986e461dc072 Initial revision
glantau
parents:
diff changeset
183 tmp2 = dataptr[DCTSIZE*2] + dataptr[DCTSIZE*5];
986e461dc072 Initial revision
glantau
parents:
diff changeset
184 tmp5 = dataptr[DCTSIZE*2] - dataptr[DCTSIZE*5];
986e461dc072 Initial revision
glantau
parents:
diff changeset
185 tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4];
986e461dc072 Initial revision
glantau
parents:
diff changeset
186 tmp4 = dataptr[DCTSIZE*3] - dataptr[DCTSIZE*4];
986e461dc072 Initial revision
glantau
parents:
diff changeset
187
986e461dc072 Initial revision
glantau
parents:
diff changeset
188 /* Even part */
986e461dc072 Initial revision
glantau
parents:
diff changeset
189
986e461dc072 Initial revision
glantau
parents:
diff changeset
190 tmp10 = tmp0 + tmp3; /* phase 2 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
191 tmp13 = tmp0 - tmp3;
986e461dc072 Initial revision
glantau
parents:
diff changeset
192 tmp11 = tmp1 + tmp2;
986e461dc072 Initial revision
glantau
parents:
diff changeset
193 tmp12 = tmp1 - tmp2;
986e461dc072 Initial revision
glantau
parents:
diff changeset
194
986e461dc072 Initial revision
glantau
parents:
diff changeset
195 dataptr[DCTSIZE*0] = tmp10 + tmp11; /* phase 3 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
196 dataptr[DCTSIZE*4] = tmp10 - tmp11;
986e461dc072 Initial revision
glantau
parents:
diff changeset
197
986e461dc072 Initial revision
glantau
parents:
diff changeset
198 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_707106781); /* c4 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
199 dataptr[DCTSIZE*2] = tmp13 + z1; /* phase 5 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
200 dataptr[DCTSIZE*6] = tmp13 - z1;
986e461dc072 Initial revision
glantau
parents:
diff changeset
201
986e461dc072 Initial revision
glantau
parents:
diff changeset
202 /* Odd part */
986e461dc072 Initial revision
glantau
parents:
diff changeset
203
986e461dc072 Initial revision
glantau
parents:
diff changeset
204 tmp10 = tmp4 + tmp5; /* phase 2 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
205 tmp11 = tmp5 + tmp6;
986e461dc072 Initial revision
glantau
parents:
diff changeset
206 tmp12 = tmp6 + tmp7;
986e461dc072 Initial revision
glantau
parents:
diff changeset
207
986e461dc072 Initial revision
glantau
parents:
diff changeset
208 /* The rotator is modified from fig 4-8 to avoid extra negations. */
986e461dc072 Initial revision
glantau
parents:
diff changeset
209 z5 = MULTIPLY(tmp10 - tmp12, FIX_0_382683433); /* c6 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
210 z2 = MULTIPLY(tmp10, FIX_0_541196100) + z5; /* c2-c6 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
211 z4 = MULTIPLY(tmp12, FIX_1_306562965) + z5; /* c2+c6 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
212 z3 = MULTIPLY(tmp11, FIX_0_707106781); /* c4 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
213
986e461dc072 Initial revision
glantau
parents:
diff changeset
214 z11 = tmp7 + z3; /* phase 5 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
215 z13 = tmp7 - z3;
986e461dc072 Initial revision
glantau
parents:
diff changeset
216
986e461dc072 Initial revision
glantau
parents:
diff changeset
217 dataptr[DCTSIZE*5] = z13 + z2; /* phase 6 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
218 dataptr[DCTSIZE*3] = z13 - z2;
986e461dc072 Initial revision
glantau
parents:
diff changeset
219 dataptr[DCTSIZE*1] = z11 + z4;
986e461dc072 Initial revision
glantau
parents:
diff changeset
220 dataptr[DCTSIZE*7] = z11 - z4;
986e461dc072 Initial revision
glantau
parents:
diff changeset
221
986e461dc072 Initial revision
glantau
parents:
diff changeset
222 dataptr++; /* advance pointer to next column */
986e461dc072 Initial revision
glantau
parents:
diff changeset
223 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
224 }
440
000aeeac27a2 * started to cleanup name clashes for onetime compilation
kabi
parents: 0
diff changeset
225
000aeeac27a2 * started to cleanup name clashes for onetime compilation
kabi
parents: 0
diff changeset
226
000aeeac27a2 * started to cleanup name clashes for onetime compilation
kabi
parents: 0
diff changeset
227 #undef GLOBAL
000aeeac27a2 * started to cleanup name clashes for onetime compilation
kabi
parents: 0
diff changeset
228 #undef CONST_BITS
000aeeac27a2 * started to cleanup name clashes for onetime compilation
kabi
parents: 0
diff changeset
229 #undef DESCALE
000aeeac27a2 * started to cleanup name clashes for onetime compilation
kabi
parents: 0
diff changeset
230 #undef FIX_0_541196100
000aeeac27a2 * started to cleanup name clashes for onetime compilation
kabi
parents: 0
diff changeset
231 #undef FIX_1_306562965