34 static const int16_t dct_core_s[10][10] =
36 { 29400, 28676, 27246, 25145, 22425, 19153, 15409, 11286, 6885, 2314},
37 { 28676, 22425, 11286, -2314, -15409, -25145, -29400, -27246, -19153, -6885},
38 { 27246, 11286, -11286, -27246, -27246, -11286, 11286, 27246, 27246, 11286},
39 { 25145, -2314, -27246, -22425, 6885, 28676, 19153, -11286, -29400, -15409},
40 { 22425, -15409, -27246, 6885, 29400, 2314, -28676, -11286, 25145, 19153},
41 { 19153, -25145, -11286, 28676, 2314, -29400, 6885, 27246, -15409, -22425},
42 { 15409, -29400, 11286, 19153, -28676, 6885, 22425, -27246, 2314, 25145},
43 { 11286, -27246, 27246, -11286, -11286, 27246, -27246, 11286, 11286, -27246},
44 { 6885, -19153, 27246, -29400, 25145, -15409, 2314, 11286, -22425, 28676},
45 { 2314, -6885, 11286, -15409, 19153, -22425, 25145, -27246, 28676, -29400}
48 static const int16_t syn_bias_7khz[DCT_LENGTH] =
50 -4, 4, -5, -2, 0, -4, 6, 2, -2, -4,
51 -3, 3, 0, 0, -2, 4, 0, 0, 3, -6,
52 8, 5, 4, 5, -8, 0, -2, 0, 0, -3,
53 3, 0, 0, 0, 1, -1, -2, 0, 0, 2,
54 -2, -5, -2, 3, 2, -1, -1, -6, 3, 1,
55 -7, 4, 4, 0, 1, 4, 1, 0, 1, -5,
56 -1, 1, -6, 0, -1, -1, 3, 0, -2, 1,
57 2, -4, 0, 9, 0, -3, 1, 1, 1, 0,
58 -3, -2, -1, -4, -2, 0, 5, 2, -3, 5,
59 0, -2, 4, 4, 0, -6, -4, 2, 0, 0,
60 0, -1, -1, -2, 0, 6, 1, 0, 0, -1,
61 0, -4, -1, 0, -4, 1, -1, -5, 0, 1,
62 2, 4, 0, -8, -4, 0, -2, -2, 2, 5,
63 -3, -1, 1, -4, 0, 0, 0, -1, -3, 0,
64 -5, -4, 0, -2, 0, 7, 1, 0, 5, -2,
65 -1, 2, 2, -2, 3, 7, -3, 4, 1, -4,
66 0, 0, 3, -7, -5, 0, 0, 4, 0, -2,
67 -1, 0, -5, 0, 2, 0, 11, 5, -1, 0,
68 2, 2, -2, -2, 5, 4, -3, 1, 0, -2,
69 1, 3, 2, 0, 1, 0, 0, 0, 5, 6,
70 -2, -1, 0, 2, 3, 2, 0, -3, 4, 5,
71 0, -1, 0, 3, 1, -2, -3, -2, -1, 2,
72 -1, -1, -2, -7, 4, 6, -5, -6, -3, -4,
73 0, 2, -5, -2, 3, 0, 0, 0, 2, -2,
74 -4, 3, 3, 1, 0, 0, 4, -1, 8, 13,
75 1, 2, 0, 2, 0, -1, 4, -3, 1, 0,
76 -1, 3, 0, 0, -5, 0, 6, 2, 4, 5,
77 2, -1, -1, 3, 6, 1, 1, 2, -4, 0,
78 -1, -6, -2, -2, 2, 1, 2, 6, 2, 0,
79 -2, -2, 0, -1, 2, 0, 0, 3, -2, 1,
80 3, 1, 2, -1, -2, 2, 2, -4, 0, 0,
81 -3, 0, -4, -3, 6, 7, 2, 2, 0, -3
84 static const int16_t dither[DCT_LENGTH] =
86 1, 0, 0, 0, 1, 0, 0, 1, 1, 1,
87 1, 0, 0, 0, 1, 1, 1, 1, 1, 0,
88 0, 1, 1, 1, 0, 1, 1, 0, 0, 0,
89 1, 0, 0, 1, 0, 1, 0, 0, 1, 0,
90 1, 0, 0, 0, 1, 0, 1, 0, 0, 0,
91 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
92 0, 0, 1, 0, 0, 0, 1, 0, 0, 1,
93 1, 1, 1, 1, 1, 0, 1, 0, 0, 1,
94 1, 0, 0, 1, 0, 0, 0, 1, 0, 1,
95 0, 0, 1, 1, 0, 1, 0, 1, 1, 1,
96 1, 0, 0, 0, 0, 1, 1, 1, 1, 1,
97 0, 0, 0, 1, 0, 1, 0, 0, 0, 1,
98 1, 1, 0, 0, 1, 1, 1, 1, 1, 0,
99 0, 1, 1, 1, 1, 0, 1, 1, 1, 0,
100 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
101 1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
102 1, 1, 0, 1, 0, 0, 1, 0, 0, 1,
103 0, 0, 0, 1, 1, 0, 0, 1, 1, 1,
104 1, 0, 0, 0, 0, 0, 1, 1, 1, 1,
105 1, 0, 0, 1, 1, 0, 1, 1, 0, 0,
106 1, 1, 1, 0, 1, 1, 0, 1, 0, 1,
107 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
108 0, 1, 1, 1, 1, 0, 1, 1, 1, 0,
109 1, 1, 1, 0, 1, 1, 1, 0, 1, 0,
110 1, 1, 0, 0, 1, 0, 0, 1, 0, 1,
111 0, 1, 1, 0, 1, 0, 1, 0, 1, 1,
112 1, 0, 1, 0, 1, 0, 1, 1, 1, 1,
113 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
114 1, 0, 0, 0, 1, 0, 0, 1, 0, 1,
115 1, 0, 1, 1, 0, 0, 1, 1, 0, 1,
116 1, 0, 1, 1, 1, 1, 1, 1, 0, 1,
117 1, 1, 1, 0, 1, 0, 0, 0, 1, 0
120 static const int16_t max_dither[MAX_DCT_LENGTH] =
122 1, 0, 1, 0, 1, 1, 0, 1, 0, 1,
123 1, 1, 0, 0, 0, 0, 0, 1, 1, 1,
124 1, 1, 1, 0, 1, 1, 0, 0, 0, 1,
125 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
126 1, 1, 1, 0, 1, 0, 1, 1, 1, 1,
127 0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
128 1, 0, 1, 1, 0, 1, 0, 0, 0, 1,
129 0, 1, 1, 1, 1, 1, 0, 1, 1, 0,
130 0, 0, 1, 1, 0, 0, 0, 1, 1, 1,
131 1, 0, 1, 1, 1, 1, 1, 0, 0, 0,
132 1, 0, 1, 0, 1, 0, 0, 0, 1, 1,
133 0, 1, 1, 1, 1, 1, 1, 0, 1, 0,
134 0, 0, 1, 0, 1, 0, 0, 0, 1, 0,
135 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
136 1, 0, 0, 1, 0, 1, 0, 0, 0, 1,
137 0, 1, 0, 0, 1, 1, 1, 1, 0, 1,
138 1, 0, 0, 0, 1, 1, 0, 1, 0, 1,
139 0, 1, 0, 1, 0, 1, 1, 1, 0, 1,
140 1, 0, 0, 1, 1, 1, 1, 0, 1, 1,
141 1, 1, 1, 0, 1, 1, 0, 0, 0, 0,
142 1, 0, 1, 0, 0, 0, 0, 1, 1, 0,
143 1, 1, 0, 0, 0, 0, 1, 0, 0, 1,
144 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
145 0, 0, 1, 1, 1, 0, 1, 1, 1, 0,
146 0, 1, 1, 1, 1, 1, 1, 1, 0, 0,
147 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,
148 0, 0, 1, 1, 0, 1, 0, 1, 0, 1,
149 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
150 0, 1, 1, 1, 0, 1, 0, 1, 0, 0,
151 0, 1, 0, 1, 1, 0, 0, 0, 1, 0,
152 1, 1, 0, 0, 1, 1, 1, 1, 0, 0,
153 0, 0, 1, 1, 1, 1, 0, 0, 1, 1,
154 1, 1, 1, 0, 1, 0, 0, 0, 1, 0,
155 0, 1, 1, 1, 0, 1, 0, 1, 0, 0,
156 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
157 0, 1, 1, 0, 1, 1, 1, 0, 1, 1,
158 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
159 1, 1, 0, 0, 0, 1, 1, 1, 1, 0,
160 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
161 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
162 0, 1, 0, 0, 0, 1, 1, 0, 0, 1,
163 0, 0, 1, 1, 0, 1, 0, 1, 0, 1,
164 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
165 1, 0, 1, 0, 1, 0, 0, 1, 0, 0,
166 0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
167 0, 1, 1, 0, 0, 0, 1, 1, 1, 0,
168 1, 1, 1, 0, 1, 1, 1, 0, 0, 0,
169 0, 0, 1, 0, 0, 1, 0, 0, 0, 1,
170 0, 0, 0, 1, 1, 0, 0, 1, 0, 1,
171 1, 1, 1, 1, 0, 0, 1, 0, 1, 0,
172 0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
173 0, 0, 1, 0, 1, 0, 0, 1, 0, 1,
174 1, 0, 1, 0, 1, 1, 0, 0, 1, 1,
175 1, 1, 1, 0, 1, 0, 0, 1, 1, 1,
176 0, 1, 0, 1, 0, 1, 0, 0, 0, 1,
177 1, 0, 0, 1, 0, 0, 1, 1, 0, 1,
178 1, 0, 1, 0, 1, 1, 0, 0, 1, 1,
179 0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
180 1, 0, 1, 0, 1, 1, 0, 0, 0, 1,
181 1, 0, 1, 0, 0, 1, 1, 1, 0, 1,
182 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
183 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
184 0, 1, 1, 1, 1, 0, 0, 0, 1, 0,
185 0, 1, 0, 1, 0, 1, 0, 0, 0, 0
202 static const cos_msin_t s_cos_msin_2[DCT_LENGTH_DIV_32] =
216 static const cos_msin_t s_cos_msin_4[DCT_LENGTH_DIV_16] =
240 static const cos_msin_t s_cos_msin_8[DCT_LENGTH_DIV_8] =
284 static const cos_msin_t s_cos_msin_16[DCT_LENGTH_DIV_4] =
368 static const cos_msin_t s_cos_msin_32[DCT_LENGTH_DIV_2] =
532 static const cos_msin_t s_cos_msin_64[DCT_LENGTH] =