FastLED 3.9.15
Loading...
Searching...
No Matches
trigtabs.hpp
Go to the documentation of this file.
1/* ***** BEGIN LICENSE BLOCK *****
2 * Version: RCSL 1.0/RPSL 1.0
3 *
4 * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved.
5 *
6 * The contents of this file, and the files included with this file, are
7 * subject to the current version of the RealNetworks Public Source License
8 * Version 1.0 (the "RPSL") available at
9 * http://www.helixcommunity.org/content/rpsl unless you have licensed
10 * the file under the RealNetworks Community Source License Version 1.0
11 * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl,
12 * in which case the RCSL will apply. You may also obtain the license terms
13 * directly from RealNetworks. You may not use this file except in
14 * compliance with the RPSL or, if you have a valid RCSL with RealNetworks
15 * applicable to this file, the RCSL. Please see the applicable RPSL or
16 * RCSL for the rights, obligations and limitations governing use of the
17 * contents of the file.
18 *
19 * This file is part of the Helix DNA Technology. RealNetworks is the
20 * developer of the Original Code and owns the copyrights in the portions
21 * it created.
22 *
23 * This file, and the files included with this file, is distributed and made
24 * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
25 * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES,
26 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
27 * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
28 *
29 * Technology Compatibility Kit Test Suite(s) Location:
30 * http://www.helixcommunity.org/content/tck
31 *
32 * Contributor(s):
33 *
34 * ***** END LICENSE BLOCK ***** */
35
36/**************************************************************************************
37 * Fixed-point MP3 decoder
38 * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
39 * June 2003
40 *
41 * trigtabs.c - global ROM tables for pre-calculated trig coefficients
42 **************************************************************************************/
43
44// constants in RAM are not significantly faster
45
46#include "coder.h"
47#include "fl/stl/stdint.h"
48
49namespace fl {
50namespace third_party {
51
52/* post-IMDCT window, win[blockType][i]
53 * format = Q31
54 * Fused sin window with final stage of IMDCT
55 * includes 1/sqrt(2) scaling, since we scale by sqrt(2) in dequant in order
56 * for fast IMDCT36 to be usable
57 *
58 * for(i=0;i<9;i++) win[0][i] = sin(pi/36 *(i+0.5));
59 * for(i=9;i<36;i++) win[0][i] = -sin(pi/36 *(i+0.5));
60 *
61 * for(i=0;i<9;i++) win[1][i] = sin(pi/36 *(i+0.5));
62 * for(i=9;i<18;i++) win[1][i] = -sin(pi/36 *(i+0.5));
63 * for(i=18;i<24;i++) win[1][i] = -1;
64 * for(i=24;i<30;i++) win[1][i] = -sin(pi/12 *(i+0.5-18));
65 * for(i=30;i<36;i++) win[1][i] = 0;
66 *
67 * for(i=0;i<6;i++) win[3][i] = 0;
68 * for(i=6;i<9;i++) win[3][i] = sin(pi/12 *(i+0.5-6));
69 * for(i=9;i<12;i++) win[3][i] = -sin(pi/12 *(i+0.5-6));
70 * for(i=12;i<18;i++) win[3][i] = -1;
71 * for(i=18;i<36;i++) win[3][i] = -sin(pi/36*(i+0.5));
72 *
73 * for(i=0;i<3;i++) win[2][i] = sin(pi/12*(i+0.5));
74 * for(i=3;i<12;i++) win[2][i] = -sin(pi/12*(i+0.5));
75 * for(i=12;i<36;i++) win[2][i] = 0;
76 *
77 * for (i = 0; i < 4; i++) {
78 * if (i == 2) {
79 * win[i][8] *= cos(pi/12 * (0+0.5));
80 * win[i][9] *= cos(pi/12 * (0+0.5));
81 * win[i][7] *= cos(pi/12 * (1+0.5));
82 * win[i][10] *= cos(pi/12 * (1+0.5));
83 * win[i][6] *= cos(pi/12 * (2+0.5));
84 * win[i][11] *= cos(pi/12 * (2+0.5));
85 * win[i][0] *= cos(pi/12 * (3+0.5));
86 * win[i][5] *= cos(pi/12 * (3+0.5));
87 * win[i][1] *= cos(pi/12 * (4+0.5));
88 * win[i][4] *= cos(pi/12 * (4+0.5));
89 * win[i][2] *= cos(pi/12 * (5+0.5));
90 * win[i][3] *= cos(pi/12 * (5+0.5));
91 * } else {
92 * for (j = 0; j < 9; j++) {
93 * win[i][8-j] *= cos(pi/36 * (17-j+0.5));
94 * win[i][9+j] *= cos(pi/36 * (17-j+0.5));
95 * }
96 * for (j = 0; j < 9; j++) {
97 * win[i][18+8-j] *= cos(pi/36 * (j+0.5));
98 * win[i][18+9+j] *= cos(pi/36 * (j+0.5));
99 * }
100 * }
101 * }
102 * for (i = 0; i < 4; i++)
103 * for (j = 0; j < 36; j++)
104 * win[i][j] *= 1.0 / sqrt(2);
105 */
106
107const int32_t imdctWin[4][36] = {
108 {
109 0x02aace8b, 0x07311c28, 0x0a868fec, 0x0c913b52, 0x0d413ccd, 0x0c913b52, 0x0a868fec, 0x07311c28,
110 0x02aace8b, (int32_t)0xfd16d8dd, (int32_t)0xf6a09e66, (int32_t)0xef7a6275, (int32_t)0xe7dbc161, (int32_t)0xe0000000, (int32_t)0xd8243e9f, (int32_t)0xd0859d8b,
111 (int32_t)0xc95f619a, (int32_t)0xc2e92723, (int32_t)0xbd553175, (int32_t)0xb8cee3d8, (int32_t)0xb5797014, (int32_t)0xb36ec4ae, (int32_t)0xb2bec333, (int32_t)0xb36ec4ae,
112 (int32_t)0xb5797014, (int32_t)0xb8cee3d8, (int32_t)0xbd553175, (int32_t)0xc2e92723, (int32_t)0xc95f619a, (int32_t)0xd0859d8b, (int32_t)0xd8243e9f, (int32_t)0xe0000000,
113 (int32_t)0xe7dbc161, (int32_t)0xef7a6275, (int32_t)0xf6a09e66, (int32_t)0xfd16d8dd,
114 },
115 {
116 0x02aace8b, 0x07311c28, 0x0a868fec, 0x0c913b52, 0x0d413ccd, 0x0c913b52, 0x0a868fec, 0x07311c28,
117 0x02aace8b, (int32_t)0xfd16d8dd, (int32_t)0xf6a09e66, (int32_t)0xef7a6275, (int32_t)0xe7dbc161, (int32_t)0xe0000000, (int32_t)0xd8243e9f, (int32_t)0xd0859d8b,
118 (int32_t)0xc95f619a, (int32_t)0xc2e92723, (int32_t)0xbd44ef14, (int32_t)0xb831a052, (int32_t)0xb3aa3837, (int32_t)0xafb789a4, (int32_t)0xac6145bb, (int32_t)0xa9adecdc,
119 (int32_t)0xa864491f, (int32_t)0xad1868f0, (int32_t)0xb8431f49, (int32_t)0xc8f42236, (int32_t)0xdda8e6b1, (int32_t)0xf47755dc, 0x00000000, 0x00000000,
120 0x00000000, 0x00000000, 0x00000000, 0x00000000,
121 },
122 {
123 0x07311c28, 0x0d413ccd, 0x07311c28, (int32_t)0xf6a09e66, (int32_t)0xe0000000, (int32_t)0xc95f619a, (int32_t)0xb8cee3d8, (int32_t)0xb2bec333,
124 (int32_t)0xb8cee3d8, (int32_t)0xc95f619a, (int32_t)0xe0000000, (int32_t)0xf6a09e66, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
125 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
126 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
127 0x00000000, 0x00000000, 0x00000000, 0x00000000,
128 },
129 {
130 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x028e9709, 0x04855ec0,
131 0x026743a1, (int32_t)0xfcde2c10, (int32_t)0xf515dc82, (int32_t)0xec93e53b, (int32_t)0xe4c880f8, (int32_t)0xdd5d0b08, (int32_t)0xd63510b7, (int32_t)0xcf5e834a,
132 (int32_t)0xc8e6b562, (int32_t)0xc2da4105, (int32_t)0xbd553175, (int32_t)0xb8cee3d8, (int32_t)0xb5797014, (int32_t)0xb36ec4ae, (int32_t)0xb2bec333, (int32_t)0xb36ec4ae,
133 (int32_t)0xb5797014, (int32_t)0xb8cee3d8, (int32_t)0xbd553175, (int32_t)0xc2e92723, (int32_t)0xc95f619a, (int32_t)0xd0859d8b, (int32_t)0xd8243e9f, (int32_t)0xe0000000,
134 (int32_t)0xe7dbc161, (int32_t)0xef7a6275, (int32_t)0xf6a09e66, (int32_t)0xfd16d8dd,
135 },
136};
137
138/* indexing = [mid-side off/on][intensity scale factor]
139 * format = Q30, range = [0.0, 1.414]
140 *
141 * mid-side off:
142 * ISFMpeg1[0][i] = tan(i*pi/12) / [1 + tan(i*pi/12)] (left scalefactor)
143 * = 1 / [1 + tan(i*pi/12)] (right scalefactor)
144 *
145 * mid-side on:
146 * ISFMpeg1[1][i] = sqrt(2) * ISFMpeg1[0][i]
147 *
148 * output L = ISFMpeg1[midSide][isf][0] * input L
149 * output R = ISFMpeg1[midSide][isf][1] * input L
150 *
151 * obviously left scalefactor + right scalefactor = 1 (m-s off) or sqrt(2) (m-s on)
152 * so just store left and calculate right as 1 - left
153 * (can derive as right = ISFMpeg1[x][6] - left)
154 *
155 * if mid-side enabled, multiply joint stereo scale factors by sqrt(2)
156 * - we scaled whole spectrum by 1/sqrt(2) in Dequant for the M+S/sqrt(2) in MidSideProc
157 * - but the joint stereo part of the spectrum doesn't need this, so we have to undo it
158 *
159 * if scale factor is and illegal intensity position, this becomes a passthrough
160 * - gain = [1, 0] if mid-side off, since L is coded directly and R = 0 in this region
161 * - gain = [1, 1] if mid-side on, since L = (M+S)/sqrt(2), R = (M-S)/sqrt(2)
162 * - and since S = 0 in the joint stereo region (above NZB right) then L = R = M * 1.0
163 */
164const int32_t ISFMpeg1[2][7] = {
165 {0x00000000, 0x0d8658ba, 0x176cf5d0, 0x20000000, 0x28930a2f, 0x3279a745, 0x40000000},
166 {0x00000000, 0x13207f5c, 0x2120fb83, 0x2d413ccc, 0x39617e16, 0x4761fa3d, 0x5a827999}
167};
168
169/* indexing = [intensity scale on/off][mid-side off/on][intensity scale factor]
170 * format = Q30, range = [0.0, 1.414]
171 *
172 * if (isf == 0) kl = 1.0 kr = 1.0
173 * else if (isf & 0x01 == 0x01) kl = i0^((isf+1)/2), kr = 1.0
174 * else if (isf & 0x01 == 0x00) kl = 1.0, kr = i0^(isf/2)
175 *
176 * if (intensityScale == 1) i0 = 1/sqrt(2) = 0x2d413ccc (Q30)
177 * else i0 = 1/sqrt(sqrt(2)) = 0x35d13f32 (Q30)
178 *
179 * see comments for ISFMpeg1 (just above) regarding scaling, sqrt(2), etc.
180 *
181 * compress the MPEG2 table using the obvious identities above...
182 * for isf = [0, 1, 2, ... 30], let sf = table[(isf+1) >> 1]
183 * - if isf odd, L = sf*L, R = tab[0]*R
184 * - if isf even, L = tab[0]*L, R = sf*R
185 */
186const int32_t ISFMpeg2[2][2][16] = {
187{
188 {
189 /* intensityScale off, mid-side off */
190 0x40000000, 0x35d13f32, 0x2d413ccc, 0x260dfc14, 0x1fffffff, 0x1ae89f99, 0x16a09e66, 0x1306fe0a,
191 0x0fffffff, 0x0d744fcc, 0x0b504f33, 0x09837f05, 0x07ffffff, 0x06ba27e6, 0x05a82799, 0x04c1bf82,
192 },
193 {
194 /* intensityScale off, mid-side on */
195 0x5a827999, 0x4c1bf827, 0x3fffffff, 0x35d13f32, 0x2d413ccc, 0x260dfc13, 0x1fffffff, 0x1ae89f99,
196 0x16a09e66, 0x1306fe09, 0x0fffffff, 0x0d744fcc, 0x0b504f33, 0x09837f04, 0x07ffffff, 0x06ba27e6,
197 },
198},
199{
200 {
201 /* intensityScale on, mid-side off */
202 0x40000000, 0x2d413ccc, 0x20000000, 0x16a09e66, 0x10000000, 0x0b504f33, 0x08000000, 0x05a82799,
203 0x04000000, 0x02d413cc, 0x02000000, 0x016a09e6, 0x01000000, 0x00b504f3, 0x00800000, 0x005a8279,
204 },
205 /* intensityScale on, mid-side on */
206 {
207 0x5a827999, 0x3fffffff, 0x2d413ccc, 0x1fffffff, 0x16a09e66, 0x0fffffff, 0x0b504f33, 0x07ffffff,
208 0x05a82799, 0x03ffffff, 0x02d413cc, 0x01ffffff, 0x016a09e6, 0x00ffffff, 0x00b504f3, 0x007fffff,
209 }
210}
211};
212
213/* indexing = [intensity scale on/off][left/right]
214 * format = Q30, range = [0.0, 1.414]
215 *
216 * illegal intensity position scalefactors (see comments on ISFMpeg1)
217 */
218const int32_t ISFIIP[2][2] = {
219 {0x40000000, 0x00000000}, /* mid-side off */
220 {0x40000000, 0x40000000}, /* mid-side on */
221};
222
223const unsigned char uniqueIDTab[8] = {0x5f, 0x4b, 0x43, 0x5f, 0x5f, 0x4a, 0x52, 0x5f};
224
225/* anti-alias coefficients - see spec Annex B, table 3-B.9
226 * csa[0][i] = CSi, csa[1][i] = CAi
227 * format = Q31
228 */
229const int32_t csa[8][2] = {
230 {0x6dc253f0, (int32_t)0xbe2500aa},
231 {0x70dcebe4, (int32_t)0xc39e4949},
232 {0x798d6e73, (int32_t)0xd7e33f4a},
233 {0x7ddd40a7, (int32_t)0xe8b71176},
234 {0x7f6d20b7, (int32_t)0xf3e4fe2f},
235 {0x7fe47e40, (int32_t)0xfac1a3c7},
236 {0x7ffcb263, (int32_t)0xfe2ebdc6},
237 {0x7fffc694, (int32_t)0xff86c25d},
238};
239
240/* format = Q30, range = [0.0981, 1.9976]
241 *
242 * n = 16;
243 * k = 0;
244 * for(i=0; i<5; i++, n=n/2) {
245 * for(p=0; p<n; p++, k++) {
246 * t = (PI / (4*n)) * (2*p + 1);
247 * coef32[k] = 2.0 * cos(t);
248 * }
249 * }
250 * coef32[30] *= 0.5; / *** for initial back butterfly (i.e. two-point DCT) *** /
251 */
252const int32_t coef32[31] = {
253 0x7fd8878d, 0x7e9d55fc, 0x7c29fbee, 0x78848413, 0x73b5ebd0, 0x6dca0d14, 0x66cf811f, 0x5ed77c89,
254 0x55f5a4d2, 0x4c3fdff3, 0x41ce1e64, 0x36ba2013, 0x2b1f34eb, 0x1f19f97b, 0x12c8106e, 0x0647d97c,
255 0x7f62368f, 0x7a7d055b, 0x70e2cbc6, 0x62f201ac, 0x5133cc94, 0x3c56ba70, 0x25280c5d, 0x0c8bd35e,
256 0x7d8a5f3f, 0x6a6d98a4, 0x471cece6, 0x18f8b83c, 0x7641af3c, 0x30fbc54d, 0x2d413ccc,
257};
258
259/* format = Q30, right shifted by 12 (sign bits only in top 12 - undo this when rounding to short)
260 * this is to enable early-terminating multiplies on ARM
261 * range = [-1.144287109, 1.144989014]
262 * max gain of filter (per output sample) ~= 2.731
263 *
264 * new (properly sign-flipped) values
265 * - these actually are correct to 32 bits, (floating-pt coefficients in spec
266 * chosen such that only ~20 bits are required)
267 *
268 * Reordering - see table 3-B.3 in spec (appendix B)
269 *
270 * polyCoef[i] =
271 * D[ 0, 32, 64, ... 480], i = [ 0, 15]
272 * D[ 1, 33, 65, ... 481], i = [ 16, 31]
273 * D[ 2, 34, 66, ... 482], i = [ 32, 47]
274 * ...
275 * D[15, 47, 79, ... 495], i = [240,255]
276 *
277 * also exploits symmetry: D[i] = -D[512 - i], for i = [1, 255]
278 *
279 * polyCoef[256, 257, ... 263] are for special case of sample 16 (out of 0)
280 * see PolyphaseStereo() and PolyphaseMono()
281 */
282const int32_t polyCoef[264] = {
283 /* shuffled vs. original from 0, 1, ... 15 to 0, 15, 2, 13, ... 14, 1 */
284 0x00000000, 0x00000074, 0x00000354, 0x0000072c, 0x00001fd4, 0x00005084, 0x000066b8, 0x000249c4,
285 0x00049478, (int32_t)0xfffdb63c, 0x000066b8, (int32_t)0xffffaf7c, 0x00001fd4, (int32_t)0xfffff8d4, 0x00000354, (int32_t)0xffffff8c,
286 (int32_t)0xfffffffc, 0x00000068, 0x00000368, 0x00000644, 0x00001f40, 0x00004ad0, 0x00005d1c, 0x00022ce0,
287 0x000493c0, (int32_t)0xfffd9960, 0x00006f78, (int32_t)0xffffa9cc, 0x0000203c, (int32_t)0xfffff7e4, 0x00000340, (int32_t)0xffffff84,
288 (int32_t)0xfffffffc, 0x00000060, 0x00000378, 0x0000056c, 0x00001e80, 0x00004524, 0x000052a0, 0x00020ffc,
289 0x000491a0, (int32_t)0xfffd7ca0, 0x00007760, (int32_t)0xffffa424, 0x00002080, (int32_t)0xfffff6ec, 0x00000328, (int32_t)0xffffff74,
290 (int32_t)0xfffffffc, 0x00000054, 0x00000384, 0x00000498, 0x00001d94, 0x00003f7c, 0x00004744, 0x0001f32c,
291 0x00048e18, (int32_t)0xfffd6008, 0x00007e70, (int32_t)0xffff9e8c, 0x0000209c, (int32_t)0xfffff5ec, 0x00000310, (int32_t)0xffffff68,
292 (int32_t)0xfffffffc, 0x0000004c, 0x0000038c, 0x000003d0, 0x00001c78, 0x000039e4, 0x00003b00, 0x0001d680,
293 0x00048924, (int32_t)0xfffd43ac, 0x000084b0, (int32_t)0xffff990c, 0x00002094, (int32_t)0xfffff4e4, 0x000002f8, (int32_t)0xffffff5c,
294 (int32_t)0xfffffffc, 0x00000044, 0x00000390, 0x00000314, 0x00001b2c, 0x0000345c, 0x00002ddc, 0x0001ba04,
295 0x000482d0, (int32_t)0xfffd279c, 0x00008a20, (int32_t)0xffff93a4, 0x0000206c, (int32_t)0xfffff3d4, 0x000002dc, (int32_t)0xffffff4c,
296 (int32_t)0xfffffffc, 0x00000040, 0x00000390, 0x00000264, 0x000019b0, 0x00002ef0, 0x00001fd4, 0x00019dc8,
297 0x00047b1c, (int32_t)0xfffd0be8, 0x00008ecc, (int32_t)0xffff8e64, 0x00002024, (int32_t)0xfffff2c0, 0x000002c0, (int32_t)0xffffff3c,
298 (int32_t)0xfffffff8, 0x00000038, 0x0000038c, 0x000001bc, 0x000017fc, 0x0000299c, 0x000010e8, 0x000181d8,
299 0x0004720c, (int32_t)0xfffcf09c, 0x000092b4, (int32_t)0xffff894c, 0x00001fc0, (int32_t)0xfffff1a4, 0x000002a4, (int32_t)0xffffff2c,
300 (int32_t)0xfffffff8, 0x00000034, 0x00000380, 0x00000120, 0x00001618, 0x00002468, 0x00000118, 0x00016644,
301 0x000467a4, (int32_t)0xfffcd5cc, 0x000095e0, (int32_t)0xffff8468, 0x00001f44, (int32_t)0xfffff084, 0x00000284, (int32_t)0xffffff18,
302 (int32_t)0xfffffff8, 0x0000002c, 0x00000374, 0x00000090, 0x00001400, 0x00001f58, (int32_t)0xfffff068, 0x00014b14,
303 0x00045bf0, (int32_t)0xfffcbb88, 0x00009858, (int32_t)0xffff7fbc, 0x00001ea8, (int32_t)0xffffef60, 0x00000268, (int32_t)0xffffff04,
304 (int32_t)0xfffffff8, 0x00000028, 0x0000035c, 0x00000008, 0x000011ac, 0x00001a70, (int32_t)0xffffded8, 0x00013058,
305 0x00044ef8, (int32_t)0xfffca1d8, 0x00009a1c, (int32_t)0xffff7b54, 0x00001dfc, (int32_t)0xffffee3c, 0x0000024c, (int32_t)0xfffffef0,
306 (int32_t)0xfffffff4, 0x00000024, 0x00000340, (int32_t)0xffffff8c, 0x00000f28, 0x000015b0, (int32_t)0xffffcc70, 0x0001161c,
307 0x000440bc, (int32_t)0xfffc88d8, 0x00009b3c, (int32_t)0xffff7734, 0x00001d38, (int32_t)0xffffed18, 0x0000022c, (int32_t)0xfffffedc,
308 (int32_t)0xfffffff4, 0x00000020, 0x00000320, (int32_t)0xffffff1c, 0x00000c68, 0x0000111c, (int32_t)0xffffb92c, 0x0000fc6c,
309 0x00043150, (int32_t)0xfffc708c, 0x00009bb8, (int32_t)0xffff7368, 0x00001c64, (int32_t)0xffffebf4, 0x00000210, (int32_t)0xfffffec4,
310 (int32_t)0xfffffff0, 0x0000001c, 0x000002f4, (int32_t)0xfffffeb4, 0x00000974, 0x00000cb8, (int32_t)0xffffa518, 0x0000e350,
311 0x000420b4, (int32_t)0xfffc5908, 0x00009b9c, (int32_t)0xffff6ff4, 0x00001b7c, (int32_t)0xffffead0, 0x000001f4, (int32_t)0xfffffeac,
312 (int32_t)0xfffffff0, 0x0000001c, 0x000002c4, (int32_t)0xfffffe58, 0x00000648, 0x00000884, (int32_t)0xffff9038, 0x0000cad0,
313 0x00040ef8, (int32_t)0xfffc425c, 0x00009af0, (int32_t)0xffff6ce0, 0x00001a88, (int32_t)0xffffe9b0, 0x000001d4, (int32_t)0xfffffe94,
314 (int32_t)0xffffffec, 0x00000018, 0x0000028c, (int32_t)0xfffffe04, 0x000002e4, 0x00000480, (int32_t)0xffff7a90, 0x0000b2fc,
315 0x0003fc28, (int32_t)0xfffc2c90, 0x000099b8, (int32_t)0xffff6a3c, 0x00001988, (int32_t)0xffffe898, 0x000001bc, (int32_t)0xfffffe7c,
316 0x000001a0, 0x0000187c, 0x000097fc, 0x0003e84c, (int32_t)0xffff6424, (int32_t)0xffffff4c, 0x00000248, (int32_t)0xffffffec,
317};
318
319} // namespace third_party
320} // namespace fl
321
const int32_t ISFIIP[2][2]
Definition trigtabs.hpp:218
const int32_t imdctWin[4][36]
Definition trigtabs.hpp:107
const int32_t csa[8][2]
Definition trigtabs.hpp:229
const int32_t coef32[31]
Definition trigtabs.hpp:252
const int32_t ISFMpeg2[2][2][16]
Definition trigtabs.hpp:186
const int32_t ISFMpeg1[2][7]
Definition trigtabs.hpp:164
const int32_t polyCoef[264]
Definition trigtabs.hpp:282
fl::i32 int32_t
Definition coder.h:220
const unsigned char uniqueIDTab[8]
Definition trigtabs.hpp:223
Base definition for an LED controller.
Definition crgb.hpp:179