annotate dct32.c @ 12530:63edd10ad4bc libavcodec tip

Try to fix crashes introduced by r25218 r25218 made assumptions about the existence of past reference frames that weren't necessarily true.
author darkshikari
date Tue, 28 Sep 2010 09:06:22 +0000
parents 0bf266c3cd37
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12027
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
1 /*
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
2 * Template for the Discrete Cosine Transform for 32 samples
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
3 * Copyright (c) 2001, 2002 Fabrice Bellard
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
4 *
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
5 * This file is part of FFmpeg.
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
6 *
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
11 *
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
15 * Lesser General Public License for more details.
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
16 *
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
20 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
21
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
22 #ifdef DCT32_FLOAT
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
23 # define FIXHR(x) ((float)(x))
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
24 # define MULH3(x, y, s) ((s)*(y)*(x))
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
25 # define INTFLOAT float
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
26 #endif
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
27
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
28
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
29 /* tab[i][j] = 1.0 / (2.0 * cos(pi*(2*k+1) / 2^(6 - j))) */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
30
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
31 /* cos(i*pi/64) */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
32
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
33 #define COS0_0 FIXHR(0.50060299823519630134/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
34 #define COS0_1 FIXHR(0.50547095989754365998/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
35 #define COS0_2 FIXHR(0.51544730992262454697/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
36 #define COS0_3 FIXHR(0.53104259108978417447/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
37 #define COS0_4 FIXHR(0.55310389603444452782/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
38 #define COS0_5 FIXHR(0.58293496820613387367/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
39 #define COS0_6 FIXHR(0.62250412303566481615/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
40 #define COS0_7 FIXHR(0.67480834145500574602/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
41 #define COS0_8 FIXHR(0.74453627100229844977/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
42 #define COS0_9 FIXHR(0.83934964541552703873/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
43 #define COS0_10 FIXHR(0.97256823786196069369/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
44 #define COS0_11 FIXHR(1.16943993343288495515/4)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
45 #define COS0_12 FIXHR(1.48416461631416627724/4)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
46 #define COS0_13 FIXHR(2.05778100995341155085/8)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
47 #define COS0_14 FIXHR(3.40760841846871878570/8)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
48 #define COS0_15 FIXHR(10.19000812354805681150/32)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
49
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
50 #define COS1_0 FIXHR(0.50241928618815570551/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
51 #define COS1_1 FIXHR(0.52249861493968888062/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
52 #define COS1_2 FIXHR(0.56694403481635770368/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
53 #define COS1_3 FIXHR(0.64682178335999012954/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
54 #define COS1_4 FIXHR(0.78815462345125022473/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
55 #define COS1_5 FIXHR(1.06067768599034747134/4)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
56 #define COS1_6 FIXHR(1.72244709823833392782/4)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
57 #define COS1_7 FIXHR(5.10114861868916385802/16)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
58
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
59 #define COS2_0 FIXHR(0.50979557910415916894/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
60 #define COS2_1 FIXHR(0.60134488693504528054/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
61 #define COS2_2 FIXHR(0.89997622313641570463/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
62 #define COS2_3 FIXHR(2.56291544774150617881/8)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
63
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
64 #define COS3_0 FIXHR(0.54119610014619698439/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
65 #define COS3_1 FIXHR(1.30656296487637652785/4)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
66
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
67 #define COS4_0 FIXHR(0.70710678118654752439/2)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
68
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
69 /* butterfly operator */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
70 #define BF(a, b, c, s)\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
71 {\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
72 tmp0 = val##a + val##b;\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
73 tmp1 = val##a - val##b;\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
74 val##a = tmp0;\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
75 val##b = MULH3(tmp1, c, 1<<(s));\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
76 }
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
77
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
78 #define BF0(a, b, c, s)\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
79 {\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
80 tmp0 = tab[a] + tab[b];\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
81 tmp1 = tab[a] - tab[b];\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
82 val##a = tmp0;\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
83 val##b = MULH3(tmp1, c, 1<<(s));\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
84 }
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
85
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
86 #define BF1(a, b, c, d)\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
87 {\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
88 BF(a, b, COS4_0, 1);\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
89 BF(c, d,-COS4_0, 1);\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
90 val##c += val##d;\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
91 }
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
92
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
93 #define BF2(a, b, c, d)\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
94 {\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
95 BF(a, b, COS4_0, 1);\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
96 BF(c, d,-COS4_0, 1);\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
97 val##c += val##d;\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
98 val##a += val##c;\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
99 val##c += val##b;\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
100 val##b += val##d;\
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
101 }
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
102
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
103 #define ADD(a, b) val##a += val##b
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
104
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
105 /* DCT32 without 1/sqrt(2) coef zero scaling. */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
106 static void dct32(INTFLOAT *out, const INTFLOAT *tab)
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
107 {
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
108 INTFLOAT tmp0, tmp1;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
109
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
110 INTFLOAT val0 , val1 , val2 , val3 , val4 , val5 , val6 , val7 ,
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
111 val8 , val9 , val10, val11, val12, val13, val14, val15,
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
112 val16, val17, val18, val19, val20, val21, val22, val23,
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
113 val24, val25, val26, val27, val28, val29, val30, val31;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
114
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
115 /* pass 1 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
116 BF0( 0, 31, COS0_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
117 BF0(15, 16, COS0_15, 5);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
118 /* pass 2 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
119 BF( 0, 15, COS1_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
120 BF(16, 31,-COS1_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
121 /* pass 1 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
122 BF0( 7, 24, COS0_7 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
123 BF0( 8, 23, COS0_8 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
124 /* pass 2 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
125 BF( 7, 8, COS1_7 , 4);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
126 BF(23, 24,-COS1_7 , 4);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
127 /* pass 3 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
128 BF( 0, 7, COS2_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
129 BF( 8, 15,-COS2_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
130 BF(16, 23, COS2_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
131 BF(24, 31,-COS2_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
132 /* pass 1 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
133 BF0( 3, 28, COS0_3 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
134 BF0(12, 19, COS0_12, 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
135 /* pass 2 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
136 BF( 3, 12, COS1_3 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
137 BF(19, 28,-COS1_3 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
138 /* pass 1 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
139 BF0( 4, 27, COS0_4 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
140 BF0(11, 20, COS0_11, 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
141 /* pass 2 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
142 BF( 4, 11, COS1_4 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
143 BF(20, 27,-COS1_4 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
144 /* pass 3 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
145 BF( 3, 4, COS2_3 , 3);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
146 BF(11, 12,-COS2_3 , 3);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
147 BF(19, 20, COS2_3 , 3);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
148 BF(27, 28,-COS2_3 , 3);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
149 /* pass 4 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
150 BF( 0, 3, COS3_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
151 BF( 4, 7,-COS3_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
152 BF( 8, 11, COS3_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
153 BF(12, 15,-COS3_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
154 BF(16, 19, COS3_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
155 BF(20, 23,-COS3_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
156 BF(24, 27, COS3_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
157 BF(28, 31,-COS3_0 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
158
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
159
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
160
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
161 /* pass 1 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
162 BF0( 1, 30, COS0_1 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
163 BF0(14, 17, COS0_14, 3);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
164 /* pass 2 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
165 BF( 1, 14, COS1_1 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
166 BF(17, 30,-COS1_1 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
167 /* pass 1 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
168 BF0( 6, 25, COS0_6 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
169 BF0( 9, 22, COS0_9 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
170 /* pass 2 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
171 BF( 6, 9, COS1_6 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
172 BF(22, 25,-COS1_6 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
173 /* pass 3 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
174 BF( 1, 6, COS2_1 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
175 BF( 9, 14,-COS2_1 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
176 BF(17, 22, COS2_1 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
177 BF(25, 30,-COS2_1 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
178
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
179 /* pass 1 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
180 BF0( 2, 29, COS0_2 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
181 BF0(13, 18, COS0_13, 3);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
182 /* pass 2 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
183 BF( 2, 13, COS1_2 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
184 BF(18, 29,-COS1_2 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
185 /* pass 1 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
186 BF0( 5, 26, COS0_5 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
187 BF0(10, 21, COS0_10, 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
188 /* pass 2 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
189 BF( 5, 10, COS1_5 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
190 BF(21, 26,-COS1_5 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
191 /* pass 3 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
192 BF( 2, 5, COS2_2 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
193 BF(10, 13,-COS2_2 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
194 BF(18, 21, COS2_2 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
195 BF(26, 29,-COS2_2 , 1);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
196 /* pass 4 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
197 BF( 1, 2, COS3_1 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
198 BF( 5, 6,-COS3_1 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
199 BF( 9, 10, COS3_1 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
200 BF(13, 14,-COS3_1 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
201 BF(17, 18, COS3_1 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
202 BF(21, 22,-COS3_1 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
203 BF(25, 26, COS3_1 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
204 BF(29, 30,-COS3_1 , 2);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
205
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
206 /* pass 5 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
207 BF1( 0, 1, 2, 3);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
208 BF2( 4, 5, 6, 7);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
209 BF1( 8, 9, 10, 11);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
210 BF2(12, 13, 14, 15);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
211 BF1(16, 17, 18, 19);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
212 BF2(20, 21, 22, 23);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
213 BF1(24, 25, 26, 27);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
214 BF2(28, 29, 30, 31);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
215
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
216 /* pass 6 */
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
217
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
218 ADD( 8, 12);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
219 ADD(12, 10);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
220 ADD(10, 14);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
221 ADD(14, 9);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
222 ADD( 9, 13);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
223 ADD(13, 11);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
224 ADD(11, 15);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
225
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
226 out[ 0] = val0;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
227 out[16] = val1;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
228 out[ 8] = val2;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
229 out[24] = val3;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
230 out[ 4] = val4;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
231 out[20] = val5;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
232 out[12] = val6;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
233 out[28] = val7;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
234 out[ 2] = val8;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
235 out[18] = val9;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
236 out[10] = val10;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
237 out[26] = val11;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
238 out[ 6] = val12;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
239 out[22] = val13;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
240 out[14] = val14;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
241 out[30] = val15;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
242
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
243 ADD(24, 28);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
244 ADD(28, 26);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
245 ADD(26, 30);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
246 ADD(30, 25);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
247 ADD(25, 29);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
248 ADD(29, 27);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
249 ADD(27, 31);
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
250
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
251 out[ 1] = val16 + val24;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
252 out[17] = val17 + val25;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
253 out[ 9] = val18 + val26;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
254 out[25] = val19 + val27;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
255 out[ 5] = val20 + val28;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
256 out[21] = val21 + val29;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
257 out[13] = val22 + val30;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
258 out[29] = val23 + val31;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
259 out[ 3] = val24 + val20;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
260 out[19] = val25 + val21;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
261 out[11] = val26 + val22;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
262 out[27] = val27 + val23;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
263 out[ 7] = val28 + val18;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
264 out[23] = val29 + val19;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
265 out[15] = val30 + val17;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
266 out[31] = val31;
0bf266c3cd37 Add missed file dct32.c
mru
parents:
diff changeset
267 }