add multiple inclusion guards to headers
[libav.git] / libavcodec / cookdata.h
1 /*
2 * COOK compatible decoder data
3 * Copyright (c) 2003 Sascha Sommer
4 * Copyright (c) 2005 Benjamin Larsson
5 *
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 *
22 */
23
24 /**
25 * @file cookdata.h
26 * Cook AKA RealAudio G2 compatible decoderdata
27 */
28
29 #ifndef AVCODEC_COOKDATA_H
30 #define AVCODEC_COOKDATA_H
31
32 #include <stdint.h>
33
34 /* various data tables */
35
36 static const int expbits_tab[8] = {
37 52,47,43,37,29,22,16,0,
38 };
39
40 static const float dither_tab[8] = {
41 0.0, 0.0, 0.0, 0.0, 0.0, 0.176777, 0.25, 0.707107,
42 };
43
44 static const float randsign[2] = {1.0, -1.0};
45
46 static const float quant_centroid_tab[7][14] = {
47 { 0.000, 0.392, 0.761, 1.120, 1.477, 1.832, 2.183, 2.541, 2.893, 3.245, 3.598, 3.942, 4.288, 4.724 },
48 { 0.000, 0.544, 1.060, 1.563, 2.068, 2.571, 3.072, 3.562, 4.070, 4.620, 0.000, 0.000, 0.000, 0.000 },
49 { 0.000, 0.746, 1.464, 2.180, 2.882, 3.584, 4.316, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 },
50 { 0.000, 1.006, 2.000, 2.993, 3.985, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 },
51 { 0.000, 1.321, 2.703, 3.983, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 },
52 { 0.000, 1.657, 3.491, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 },
53 { 0.000, 1.964, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 }
54 };
55
56 static const int invradix_tab[7] = {
57 74899, 104858, 149797, 209716, 262144, 349526, 524288,
58 };
59
60 static const int kmax_tab[7] = {
61 13, 9, 6, 4, 3, 2, 1,
62 };
63
64 static const int vd_tab[7] = {
65 2, 2, 2, 4, 4, 5, 5,
66 };
67
68 static const int vpr_tab[7] = {
69 10, 10, 10, 5, 5, 4, 4,
70 };
71
72
73
74 /* VLC data */
75
76 static const int vhsize_tab[7] = {
77 191, 97, 48, 607, 246, 230, 32,
78 };
79
80 static const int vhvlcsize_tab[7] = {
81 8, 7, 7, 10, 9, 9, 6,
82 };
83
84 static const uint8_t envelope_quant_index_huffbits[13][24] = {
85 { 4, 6, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 5, 7, 8, 9, 11, 11, 12, 12, 12, 12 },
86 { 10, 8, 6, 5, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 7, 9, 11, 12, 13, 15, 15, 15, 16, 16 },
87 { 12, 10, 8, 6, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 4, 5, 5, 7, 9, 11, 13, 14, 14 },
88 { 13, 10, 9, 9, 7, 7, 5, 5, 4, 3, 3, 3, 3, 3, 4, 4, 4, 5, 7, 9, 11, 13, 13, 13 },
89 { 12, 13, 10, 8, 6, 6, 5, 5, 4, 4, 3, 3, 3, 3, 3, 4, 5, 5, 6, 7, 9, 11, 14, 14 },
90 { 12, 11, 9, 8, 8, 7, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4, 5, 5, 7, 8, 10, 13, 14, 14 },
91 { 15, 16, 15, 12, 10, 8, 6, 5, 4, 3, 3, 3, 2, 3, 4, 5, 5, 7, 9, 11, 13, 16, 16, 16 },
92 { 14, 14, 11, 10, 9, 7, 7, 5, 5, 4, 3, 3, 2, 3, 3, 4, 5, 7, 9, 9, 12, 14, 15, 15 },
93 { 9, 9, 9, 8, 7, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 13 },
94 { 14, 12, 10, 8, 6, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 8, 8, 9, 11, 14, 14, 14 },
95 { 13, 10, 9, 8, 6, 6, 5, 4, 4, 4, 3, 3, 2, 3, 4, 5, 6, 8, 9, 9, 11, 12, 14, 14 },
96 { 16, 13, 12, 11, 9, 6, 5, 5, 4, 4, 4, 3, 2, 3, 3, 4, 5, 7, 8, 10, 14, 16, 16, 16 },
97 { 13, 14, 14, 14, 10, 8, 7, 7, 5, 4, 3, 3, 2, 3, 3, 4, 5, 5, 7, 9, 11, 14, 14, 14 },
98 };
99
100 static const uint16_t envelope_quant_index_huffcodes[13][24] = {
101 {0x0006, 0x003e, 0x001c, 0x001d, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x0000, 0x0001,
102 0x0002, 0x000d, 0x001e, 0x007e, 0x00fe, 0x01fe, 0x07fc, 0x07fd, 0x0ffc, 0x0ffd, 0x0ffe, 0x0fff},
103 {0x03fe, 0x00fe, 0x003e, 0x001c, 0x001d, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005,
104 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x0ffe, 0x1ffe, 0x7ffc, 0x7ffd, 0x7ffe, 0xfffe, 0xffff},
105 {0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x0000,
106 0x0001, 0x0002, 0x000c, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0x3ffe, 0x3fff},
107 {0x1ffc, 0x03fe, 0x01fc, 0x01fd, 0x007c, 0x007d, 0x001c, 0x001d, 0x000a, 0x0000, 0x0001, 0x0002,
108 0x0003, 0x0004, 0x000b, 0x000c, 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffd, 0x1ffe, 0x1fff},
109 {0x0ffe, 0x1ffe, 0x03fe, 0x00fe, 0x003c, 0x003d, 0x001a, 0x001b, 0x000a, 0x000b, 0x0000, 0x0001,
110 0x0002, 0x0003, 0x0004, 0x000c, 0x001c, 0x001d, 0x003e, 0x007e, 0x01fe, 0x07fe, 0x3ffe, 0x3fff},
111 {0x0ffe, 0x07fe, 0x01fe, 0x00fc, 0x00fd, 0x007c, 0x001c, 0x000a, 0x000b, 0x0000, 0x0001, 0x0002,
112 0x0003, 0x0004, 0x000c, 0x000d, 0x001d, 0x001e, 0x007d, 0x00fe, 0x03fe, 0x1ffe, 0x3ffe, 0x3fff},
113 {0x7ffc, 0xfffc, 0x7ffd, 0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x000c, 0x0002, 0x0003, 0x0004,
114 0x0000, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0xfffd, 0xfffe, 0xffff},
115 {0x3ffc, 0x3ffd, 0x07fe, 0x03fe, 0x01fc, 0x007c, 0x007d, 0x001c, 0x001d, 0x000c, 0x0002, 0x0003,
116 0x0000, 0x0004, 0x0005, 0x000d, 0x001e, 0x007e, 0x01fd, 0x01fe, 0x0ffe, 0x3ffe, 0x7ffe, 0x7fff},
117 {0x01fc, 0x01fd, 0x01fe, 0x00fc, 0x007c, 0x003c, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003,
118 0x0004, 0x0005, 0x000d, 0x001d, 0x003d, 0x007d, 0x00fd, 0x03fe, 0x07fe, 0x0ffe, 0x1ffe, 0x1fff},
119 {0x3ffc, 0x0ffe, 0x03fe, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003,
120 0x0004, 0x0005, 0x000d, 0x001d, 0x003e, 0x00fd, 0x00fe, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff},
121 {0x1ffe, 0x03fe, 0x01fc, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000a, 0x000b, 0x000c, 0x0002, 0x0003,
122 0x0000, 0x0004, 0x000d, 0x001d, 0x003e, 0x00fd, 0x01fd, 0x01fe, 0x07fe, 0x0ffe, 0x3ffe, 0x3fff},
123 {0xfffc, 0x1ffe, 0x0ffe, 0x07fe, 0x01fe, 0x003e, 0x001c, 0x001d, 0x000a, 0x000b, 0x000c, 0x0002,
124 0x0000, 0x0003, 0x0004, 0x000d, 0x001e, 0x007e, 0x00fe, 0x03fe, 0x3ffe, 0xfffd, 0xfffe, 0xffff},
125 {0x1ffc, 0x3ffa, 0x3ffb, 0x3ffc, 0x03fe, 0x00fe, 0x007c, 0x007d, 0x001c, 0x000c, 0x0002, 0x0003,
126 0x0000, 0x0004, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff},
127 };
128
129
130 static const uint8_t cvh_huffbits0[191] = {
131 1, 4, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10,
132 11, 11, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9,
133 9, 10, 11, 11, 5, 6, 7, 8, 8, 9, 9, 9,
134 9, 10, 10, 10, 11, 12, 6, 7, 8, 9, 9, 9,
135 9, 10, 10, 10, 10, 11, 12, 13, 7, 7, 8, 9,
136 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 8, 8,
137 9, 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 14,
138 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13,
139 13, 15, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12,
140 12, 13, 14, 15, 9, 9, 9, 10, 10, 10, 11, 11,
141 12, 13, 12, 14, 15, 16, 9, 9, 10, 10, 10, 10,
142 11, 12, 12, 14, 14, 16, 16, 0, 9, 9, 10, 10,
143 11, 11, 12, 13, 13, 14, 14, 15, 0, 0, 10, 10,
144 10, 11, 11, 12, 12, 13, 15, 15, 16, 0, 0, 0,
145 11, 11, 11, 12, 13, 13, 13, 15, 16, 16, 0, 0,
146 0, 0, 11, 11, 12, 13, 13, 14, 15, 16, 16,
147 };
148
149 static const uint16_t cvh_huffcodes0[191] = {
150 0x0000,0x0008,0x002c,0x002d,0x0062,0x0063,0x00d4,0x00d5,0x00d6,0x01c6,0x01c7,0x03ca,
151 0x07d6,0x07d7,0x0009,0x0014,0x002e,0x0064,0x0065,0x00d7,0x00d8,0x01c8,0x01c9,0x01ca,
152 0x01cb,0x03cb,0x07d8,0x07d9,0x0015,0x002f,0x0066,0x00d9,0x00da,0x01cc,0x01cd,0x01ce,
153 0x01cf,0x03cc,0x03cd,0x03ce,0x07da,0x0fe4,0x0030,0x0067,0x00db,0x01d0,0x01d1,0x01d2,
154 0x01d3,0x03cf,0x03d0,0x03d1,0x03d2,0x07db,0x0fe5,0x1fea,0x0068,0x0069,0x00dc,0x01d4,
155 0x01d5,0x01d6,0x03d3,0x03d4,0x03d5,0x03d6,0x07dc,0x07dd,0x0fe6,0x1feb,0x00dd,0x00de,
156 0x01d7,0x01d8,0x01d9,0x03d7,0x03d8,0x03d9,0x03da,0x07de,0x07df,0x0fe7,0x1fec,0x3ff2,
157 0x00df,0x00e0,0x01da,0x01db,0x03db,0x03dc,0x07e0,0x07e1,0x07e2,0x0fe8,0x0fe9,0x1fed,
158 0x1fee,0x7ff4,0x00e1,0x00e2,0x01dc,0x01dd,0x03dd,0x03de,0x07e3,0x07e4,0x07e5,0x0fea,
159 0x0feb,0x1fef,0x3ff3,0x7ff5,0x01de,0x01df,0x01e0,0x03df,0x03e0,0x03e1,0x07e6,0x07e7,
160 0x0fec,0x1ff0,0x0fed,0x3ff4,0x7ff6,0xfff8,0x01e1,0x01e2,0x03e2,0x03e3,0x03e4,0x03e5,
161 0x07e8,0x0fee,0x0fef,0x3ff5,0x3ff6,0xfff9,0xfffa,0xfffa,0x01e3,0x01e4,0x03e6,0x03e7,
162 0x07e9,0x07ea,0x0ff0,0x1ff1,0x1ff2,0x3ff7,0x3ff8,0x7ff7,0x7ff7,0xfffa,0x03e8,0x03e9,
163 0x03ea,0x07eb,0x07ec,0x0ff1,0x0ff2,0x1ff3,0x7ff8,0x7ff9,0xfffb,0x3ff8,0x7ff7,0x7ff7,
164 0x07ed,0x07ee,0x07ef,0x0ff3,0x1ff4,0x1ff5,0x1ff6,0x7ffa,0xfffc,0xfffd,0xfffb,0xfffb,
165 0x3ff8,0x7ff7,0x07f0,0x07f1,0x0ff4,0x1ff7,0x1ff8,0x3ff9,0x7ffb,0xfffe,0xffff,
166 };
167
168
169 static const uint8_t cvh_huffbits1[97] = {
170 1, 4, 5, 6, 7, 8, 8, 9, 10, 10, 4, 5,
171 6, 7, 7, 8, 8, 9, 9, 11, 5, 5, 6, 7,
172 8, 8, 9, 9, 10, 11, 6, 6, 7, 8, 8, 9,
173 9, 10, 11, 12, 7, 7, 8, 8, 9, 9, 10, 11,
174 11, 13, 8, 8, 8, 9, 9, 10, 10, 11, 12, 14,
175 8, 8, 8, 9, 10, 11, 11, 12, 13, 15, 9, 9,
176 9, 10, 11, 12, 12, 14, 14, 0, 9, 9, 9, 10,
177 11, 12, 14, 16, 0, 0, 10, 10, 11, 12, 13, 14,
178 16,
179 };
180
181
182 static const uint16_t cvh_huffcodes1[97] = {
183 0x0000,0x0008,0x0014,0x0030,0x006a,0x00e2,0x00e3,0x01e4,0x03ec,0x03ed,0x0009,0x0015,
184 0x0031,0x006b,0x006c,0x00e4,0x00e5,0x01e5,0x01e6,0x07f0,0x0016,0x0017,0x0032,0x006d,
185 0x00e6,0x00e7,0x01e7,0x01e8,0x03ee,0x07f1,0x0033,0x0034,0x006e,0x00e8,0x00e9,0x01e9,
186 0x01ea,0x03ef,0x07f2,0x0ff6,0x006f,0x0070,0x00ea,0x00eb,0x01eb,0x01ec,0x03f0,0x07f3,
187 0x07f4,0x1ffa,0x00ec,0x00ed,0x00ee,0x01ed,0x01ee,0x03f1,0x03f2,0x07f5,0x0ff7,0x3ffa,
188 0x00ef,0x00f0,0x00f1,0x01ef,0x03f3,0x07f6,0x07f7,0x0ff8,0x1ffb,0x7ffe,0x01f0,0x01f1,
189 0x01f2,0x03f4,0x07f8,0x0ff9,0x0ffa,0x3ffb,0x3ffc,0x0000,0x01f3,0x01f4,0x01f5,0x03f5,
190 0x07f9,0x0ffb,0x3ffd,0xfffe,0x0000,0x0000,0x03f6,0x03f7,0x07fa,0x0ffc,0x1ffc,0x3ffe,
191 0xffff,
192 };
193
194 static const uint8_t cvh_huffbits2[48] = {
195 1, 4, 5, 7, 8, 9, 10, 3, 4, 5, 7, 8,
196 9, 10, 5, 5, 6, 7, 8, 10, 10, 7, 6, 7,
197 8, 9, 10, 12, 8, 8, 8, 9, 10, 12, 14, 8,
198 9, 9, 10, 11, 15, 16, 9, 10, 11, 12, 13, 16,
199 };
200
201 static const uint16_t cvh_huffcodes2[48] = {
202 0x0000,0x000a,0x0018,0x0074,0x00f2,0x01f4,0x03f6,0x0004,0x000b,0x0019,0x0075,0x00f3,
203 0x01f5,0x03f7,0x001a,0x001b,0x0038,0x0076,0x00f4,0x03f8,0x03f9,0x0077,0x0039,0x0078,
204 0x00f5,0x01f6,0x03fa,0x0ffc,0x00f6,0x00f7,0x00f8,0x01f7,0x03fb,0x0ffd,0x3ffe,0x00f9,
205 0x01f8,0x01f9,0x03fc,0x07fc,0x7ffe,0xfffe,0x01fa,0x03fd,0x07fd,0x0ffe,0x1ffe,0xffff,
206 };
207
208 static const uint8_t cvh_huffbits3[607] = {
209 2, 4, 6, 8, 10, 5, 5, 6, 8, 10, 7, 8,
210 8, 10, 12, 9, 9, 10, 12, 15, 10, 11, 13, 16,
211 16, 5, 6, 8, 10, 11, 5, 6, 8, 10, 12, 7,
212 7, 8, 10, 13, 9, 9, 10, 12, 15, 12, 11, 13,
213 16, 16, 7, 9, 10, 12, 15, 7, 8, 10, 12, 13,
214 9, 9, 11, 13, 16, 11, 11, 12, 14, 16, 12, 12,
215 14, 16, 0, 9, 11, 12, 16, 16, 9, 10, 13, 15,
216 16, 10, 11, 12, 16, 16, 13, 13, 16, 16, 16, 16,
217 16, 15, 16, 0, 11, 13, 16, 16, 15, 11, 13, 15,
218 16, 16, 13, 13, 16, 16, 0, 14, 16, 16, 16, 0,
219 16, 16, 0, 0, 0, 4, 6, 8, 10, 13, 6, 6,
220 8, 10, 13, 9, 8, 10, 12, 16, 10, 10, 11, 15,
221 16, 13, 12, 14, 16, 16, 5, 6, 8, 11, 13, 6,
222 6, 8, 10, 13, 8, 8, 9, 11, 14, 10, 10, 12,
223 12, 16, 13, 12, 13, 15, 16, 7, 8, 9, 12, 16,
224 7, 8, 10, 12, 14, 9, 9, 10, 13, 16, 11, 10,
225 12, 15, 16, 13, 13, 16, 16, 0, 9, 11, 13, 16,
226 16, 9, 10, 12, 15, 16, 10, 11, 13, 16, 16, 13,
227 12, 16, 16, 16, 16, 16, 16, 16, 0, 11, 13, 16,
228 16, 16, 11, 13, 16, 16, 16, 12, 13, 15, 16, 0,
229 16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 6, 8,
230 11, 13, 16, 8, 8, 10, 12, 16, 11, 10, 11, 13,
231 16, 12, 13, 13, 15, 16, 16, 16, 14, 16, 0, 6,
232 8, 10, 13, 16, 8, 8, 10, 12, 16, 10, 10, 11,
233 13, 16, 13, 12, 13, 16, 16, 14, 14, 14, 16, 0,
234 8, 9, 11, 13, 16, 8, 9, 11, 16, 14, 10, 10,
235 12, 15, 16, 12, 12, 13, 16, 16, 15, 16, 16, 16,
236 0, 10, 12, 15, 16, 16, 10, 12, 12, 14, 16, 12,
237 12, 13, 16, 16, 14, 15, 16, 16, 0, 16, 16, 16,
238 0, 0, 12, 15, 15, 16, 0, 13, 13, 16, 16, 0,
239 14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 0, 0,
240 0, 0, 0, 8, 10, 13, 15, 16, 10, 11, 13, 16,
241 16, 13, 13, 14, 16, 16, 16, 16, 16, 16, 16, 16,
242 16, 16, 16, 0, 8, 10, 11, 15, 16, 9, 10, 12,
243 16, 16, 12, 12, 15, 16, 16, 16, 14, 16, 16, 16,
244 16, 16, 16, 16, 0, 9, 11, 14, 16, 16, 10, 11,
245 13, 16, 16, 14, 13, 14, 16, 16, 16, 15, 15, 16,
246 0, 16, 16, 16, 0, 0, 11, 13, 16, 16, 16, 11,
247 13, 15, 16, 16, 13, 16, 16, 16, 0, 16, 16, 16,
248 16, 0, 16, 16, 0, 0, 0, 15, 16, 16, 16, 0,
249 14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 16, 16,
250 0, 0, 0, 0, 0, 0, 0, 0, 9, 13, 16, 16,
251 16, 11, 13, 16, 16, 16, 14, 15, 16, 16, 0, 15,
252 16, 16, 16, 0, 16, 16, 0, 0, 0, 9, 13, 15,
253 15, 16, 12, 13, 14, 16, 16, 16, 15, 16, 16, 0,
254 16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 11, 13,
255 15, 16, 0, 12, 14, 16, 16, 0, 16, 16, 16, 16,
256 0, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 16,
257 16, 16, 16, 0, 16, 16, 16, 16, 0, 16, 16, 16,
258 0, 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0,
259 16, 16, 0, 0, 0, 16, 16,
260 };
261
262
263 static const uint16_t cvh_huffcodes3[607] = {
264 0x0000,0x0004,0x0022,0x00c6,0x03b0,0x000c,0x000d,0x0023,0x00c7,0x03b1,0x005c,0x00c8,
265 0x00c9,0x03b2,0x0fa4,0x01c2,0x01c3,0x03b3,0x0fa5,0x7f72,0x03b4,0x07b2,0x1f9a,0xff24,
266 0xff25,0x000e,0x0024,0x00ca,0x03b5,0x07b3,0x000f,0x0025,0x00cb,0x03b6,0x0fa6,0x005d,
267 0x005e,0x00cc,0x03b7,0x1f9b,0x01c4,0x01c5,0x03b8,0x0fa7,0x7f73,0x0fa8,0x07b4,0x1f9c,
268 0xff26,0xff27,0x005f,0x01c6,0x03b9,0x0fa9,0x7f74,0x0060,0x00cd,0x03ba,0x0faa,0x1f9d,
269 0x01c7,0x01c8,0x07b5,0x1f9e,0xff28,0x07b6,0x07b7,0x0fab,0x3fa2,0xff29,0x0fac,0x0fad,
270 0x3fa3,0xff2a,0x3fa2,0x01c9,0x07b8,0x0fae,0xff2b,0xff2c,0x01ca,0x03bb,0x1f9f,0x7f75,
271 0xff2d,0x03bc,0x07b9,0x0faf,0xff2e,0xff2f,0x1fa0,0x1fa1,0xff30,0xff31,0xff32,0xff33,
272 0xff34,0x7f76,0xff35,0xff31,0x07ba,0x1fa2,0xff36,0xff37,0x7f77,0x07bb,0x1fa3,0x7f78,
273 0xff38,0xff39,0x1fa4,0x1fa5,0xff3a,0xff3b,0xff2e,0x3fa4,0xff3c,0xff3d,0xff3e,0xff31,
274 0xff3f,0xff40,0xff30,0xff31,0xff31,0x0005,0x0026,0x00ce,0x03bd,0x1fa6,0x0027,0x0028,
275 0x00cf,0x03be,0x1fa7,0x01cb,0x00d0,0x03bf,0x0fb0,0xff41,0x03c0,0x03c1,0x07bc,0x7f79,
276 0xff42,0x1fa8,0x0fb1,0x3fa5,0xff43,0xff44,0x0010,0x0029,0x00d1,0x07bd,0x1fa9,0x002a,
277 0x002b,0x00d2,0x03c2,0x1faa,0x00d3,0x00d4,0x01cc,0x07be,0x3fa6,0x03c3,0x03c4,0x0fb2,
278 0x0fb3,0xff45,0x1fab,0x0fb4,0x1fac,0x7f7a,0xff46,0x0061,0x00d5,0x01cd,0x0fb5,0xff47,
279 0x0062,0x00d6,0x03c5,0x0fb6,0x3fa7,0x01ce,0x01cf,0x03c6,0x1fad,0xff48,0x07bf,0x03c7,
280 0x0fb7,0x7f7b,0xff49,0x1fae,0x1faf,0xff4a,0xff4b,0x7f7b,0x01d0,0x07c0,0x1fb0,0xff4c,
281 0xff4d,0x01d1,0x03c8,0x0fb8,0x7f7c,0xff4e,0x03c9,0x07c1,0x1fb1,0xff4f,0xff50,0x1fb2,
282 0x0fb9,0xff51,0xff52,0xff53,0xff54,0xff55,0xff56,0xff57,0xff52,0x07c2,0x1fb3,0xff58,
283 0xff59,0xff5a,0x07c3,0x1fb4,0xff5b,0xff5c,0xff5d,0x0fba,0x1fb5,0x7f7d,0xff5e,0xff4f,
284 0xff5f,0xff60,0xff61,0xff62,0xff52,0xff63,0xff64,0xff51,0xff52,0xff52,0x002c,0x00d7,
285 0x07c4,0x1fb6,0xff65,0x00d8,0x00d9,0x03ca,0x0fbb,0xff66,0x07c5,0x03cb,0x07c6,0x1fb7,
286 0xff67,0x0fbc,0x1fb8,0x1fb9,0x7f7e,0xff68,0xff69,0xff6a,0x3fa8,0xff6b,0x7f7e,0x002d,
287 0x00da,0x03cc,0x1fba,0xff6c,0x00db,0x00dc,0x03cd,0x0fbd,0xff6d,0x03ce,0x03cf,0x07c7,
288 0x1fbb,0xff6e,0x1fbc,0x0fbe,0x1fbd,0xff6f,0xff70,0x3fa9,0x3faa,0x3fab,0xff71,0xff6f,
289 0x00dd,0x01d2,0x07c8,0x1fbe,0xff72,0x00de,0x01d3,0x07c9,0xff73,0x3fac,0x03d0,0x03d1,
290 0x0fbf,0x7f7f,0xff74,0x0fc0,0x0fc1,0x1fbf,0xff75,0xff76,0x7f80,0xff77,0xff78,0xff79,
291 0xff75,0x03d2,0x0fc2,0x7f81,0xff7a,0xff7b,0x03d3,0x0fc3,0x0fc4,0x3fad,0xff7c,0x0fc5,
292 0x0fc6,0x1fc0,0xff7d,0xff7e,0x3fae,0x7f82,0xff7f,0xff80,0xff80,0xff81,0xff82,0xff83,
293 0xff80,0xff80,0x0fc7,0x7f83,0x7f84,0xff84,0xff7a,0x1fc1,0x1fc2,0xff85,0xff86,0x3fad,
294 0x3faf,0xff87,0xff88,0xff89,0xff7d,0xff8a,0xff8b,0xff8c,0xff80,0xff80,0x3fae,0x7f82,
295 0xff7f,0xff80,0xff80,0x00df,0x03d4,0x1fc3,0x7f85,0xff8d,0x03d5,0x07ca,0x1fc4,0xff8e,
296 0xff8f,0x1fc5,0x1fc6,0x3fb0,0xff90,0xff91,0xff92,0xff93,0xff94,0xff95,0xff96,0xff97,
297 0xff98,0xff99,0xff9a,0xff95,0x00e0,0x03d6,0x07cb,0x7f86,0xff9b,0x01d4,0x03d7,0x0fc8,
298 0xff9c,0xff9d,0x0fc9,0x0fca,0x7f87,0xff9e,0xff9f,0xffa0,0x3fb1,0xffa1,0xffa2,0xffa3,
299 0xffa4,0xffa5,0xffa6,0xffa7,0xffa2,0x01d5,0x07cc,0x3fb2,0xffa8,0xffa9,0x03d8,0x07cd,
300 0x1fc7,0xffaa,0xffab,0x3fb3,0x1fc8,0x3fb4,0xffac,0xffad,0xffae,0x7f88,0x7f89,0xffaf,
301 0xffaf,0xffb0,0xffb1,0xffb2,0xffaf,0xffaf,0x07ce,0x1fc9,0xffb3,0xffb4,0xffb5,0x07cf,
302 0x1fca,0x7f8a,0xffb6,0xffb7,0x1fcb,0xffb8,0xffb9,0xffba,0xffba,0xffbb,0xffbc,0xffbd,
303 0xffbe,0xffbe,0xffbf,0xffc0,0xffbd,0xffbe,0xffbe,0x7f8b,0xffc1,0xffc2,0xffc3,0xffb4,
304 0x3fb5,0xffc4,0xffc5,0xffc6,0xffb6,0xffc7,0xffc8,0xffc9,0xffba,0xffba,0xffca,0xffcb,
305 0xffbd,0xffbe,0xffbe,0xffbb,0xffbc,0xffbd,0xffbe,0xffbe,0x01d6,0x1fcc,0xffcc,0xffcd,
306 0xffce,0x07d0,0x1fcd,0xffcf,0xffd0,0xffd1,0x3fb6,0x7f8c,0xffd2,0xffd3,0xff90,0x7f8d,
307 0xffd4,0xffd5,0xffd6,0xff95,0xffd7,0xffd8,0xff94,0xff95,0xff95,0x01d7,0x1fce,0x7f8e,
308 0x7f8f,0xffd9,0x0fcb,0x1fcf,0x3fb7,0xffda,0xffdb,0xffdc,0x7f90,0xffdd,0xffde,0xff9e,
309 0xffdf,0xffe0,0xffe1,0xffe2,0xffa2,0xffe3,0xffe4,0xffa1,0xffa2,0xffa2,0x07d1,0x1fd0,
310 0x7f91,0xffe5,0xffa8,0x0fcc,0x3fb8,0xffe6,0xffe7,0xffaa,0xffe8,0xffe9,0xffea,0xffeb,
311 0xffac,0xffec,0xffed,0xffee,0xffaf,0xffaf,0xffae,0x7f88,0x7f89,0xffaf,0xffaf,0xffef,
312 0xfff0,0xfff1,0xfff2,0xffb4,0xfff3,0xfff4,0xfff5,0xfff6,0xffb6,0xfff7,0xfff8,0xfff9,
313 0xffba,0xffba,0xfffa,0xfffb,0xffbd,0xffbe,0xffbe,0xffbb,0xffbc,0xffbd,0xffbe,0xffbe,
314 0xfffc,0xfffd,0xffb3,0xffb4,0xffb4,0xfffe,0xffff,
315 };
316
317 static const uint8_t cvh_huffbits4[246] = {
318 2, 4, 7, 10, 4, 5, 7, 10, 7, 8, 10, 14,
319 11, 11, 15, 15, 4, 5, 9, 12, 5, 5, 8, 12,
320 8, 7, 10, 15, 11, 11, 15, 15, 7, 9, 12, 15,
321 8, 8, 12, 15, 10, 10, 13, 15, 14, 14, 15, 0,
322 11, 13, 15, 15, 11, 13, 15, 15, 14, 15, 15, 0,
323 15, 15, 0, 0, 4, 5, 9, 13, 5, 6, 9, 13,
324 9, 9, 11, 15, 14, 13, 15, 15, 4, 6, 9, 12,
325 5, 6, 9, 13, 9, 8, 11, 15, 13, 12, 15, 15,
326 7, 9, 12, 15, 7, 8, 11, 15, 10, 10, 14, 15,
327 14, 15, 15, 0, 10, 12, 15, 15, 11, 13, 15, 15,
328 15, 15, 15, 0, 15, 15, 0, 0, 6, 9, 13, 14,
329 8, 9, 12, 15, 12, 12, 15, 15, 15, 15, 15, 0,
330 7, 9, 13, 15, 8, 9, 12, 15, 11, 12, 15, 15,
331 15, 15, 15, 0, 9, 11, 15, 15, 9, 11, 15, 15,
332 14, 14, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0,
333 14, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0,
334 9, 12, 15, 15, 12, 13, 15, 15, 15, 15, 15, 0,
335 15, 15, 0, 0, 10, 12, 15, 15, 12, 14, 15, 15,
336 15, 15, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0,
337 15, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0,
338 15, 15, 0, 0, 15, 15,
339 };
340
341
342 static const uint16_t cvh_huffcodes4[246] = {
343 0x0000,0x0004,0x006c,0x03e6,0x0005,0x0012,0x006d,0x03e7,0x006e,0x00e8,0x03e8,0x3fc4,
344 0x07e0,0x07e1,0x7fa4,0x7fa5,0x0006,0x0013,0x01e2,0x0fda,0x0014,0x0015,0x00e9,0x0fdb,
345 0x00ea,0x006f,0x03e9,0x7fa6,0x07e2,0x07e3,0x7fa7,0x7fa8,0x0070,0x01e3,0x0fdc,0x7fa9,
346 0x00eb,0x00ec,0x0fdd,0x7faa,0x03ea,0x03eb,0x1fd6,0x7fab,0x3fc5,0x3fc6,0x7fac,0x1fd6,
347 0x07e4,0x1fd7,0x7fad,0x7fae,0x07e5,0x1fd8,0x7faf,0x7fb0,0x3fc7,0x7fb1,0x7fb2,0x1fd6,
348 0x7fb3,0x7fb4,0x1fd6,0x1fd6,0x0007,0x0016,0x01e4,0x1fd9,0x0017,0x0032,0x01e5,0x1fda,
349 0x01e6,0x01e7,0x07e6,0x7fb5,0x3fc8,0x1fdb,0x7fb6,0x7fb7,0x0008,0x0033,0x01e8,0x0fde,
350 0x0018,0x0034,0x01e9,0x1fdc,0x01ea,0x00ed,0x07e7,0x7fb8,0x1fdd,0x0fdf,0x7fb9,0x7fba,
351 0x0071,0x01eb,0x0fe0,0x7fbb,0x0072,0x00ee,0x07e8,0x7fbc,0x03ec,0x03ed,0x3fc9,0x7fbd,
352 0x3fca,0x7fbe,0x7fbf,0x3fc9,0x03ee,0x0fe1,0x7fc0,0x7fc1,0x07e9,0x1fde,0x7fc2,0x7fc3,
353 0x7fc4,0x7fc5,0x7fc6,0x3fc9,0x7fc7,0x7fc8,0x3fc9,0x3fc9,0x0035,0x01ec,0x1fdf,0x3fcb,
354 0x00ef,0x01ed,0x0fe2,0x7fc9,0x0fe3,0x0fe4,0x7fca,0x7fcb,0x7fcc,0x7fcd,0x7fce,0x7fca,
355 0x0073,0x01ee,0x1fe0,0x7fcf,0x00f0,0x01ef,0x0fe5,0x7fd0,0x07ea,0x0fe6,0x7fd1,0x7fd2,
356 0x7fd3,0x7fd4,0x7fd5,0x7fd1,0x01f0,0x07eb,0x7fd6,0x7fd7,0x01f1,0x07ec,0x7fd8,0x7fd9,
357 0x3fcc,0x3fcd,0x7fda,0x7fda,0x7fdb,0x7fdc,0x7fda,0x7fda,0x3fce,0x7fdd,0x7fde,0x7fd6,
358 0x3fcf,0x7fdf,0x7fe0,0x7fd8,0x7fe1,0x7fe2,0x7fda,0x7fda,0x3fcc,0x3fcd,0x7fda,0x7fda,
359 0x01f2,0x0fe7,0x7fe3,0x7fe4,0x0fe8,0x1fe1,0x7fe5,0x7fe6,0x7fe7,0x7fe8,0x7fe9,0x7fca,
360 0x7fea,0x7feb,0x7fca,0x7fca,0x03ef,0x0fe9,0x7fec,0x7fed,0x0fea,0x3fd0,0x7fee,0x7fef,
361 0x7ff0,0x7ff1,0x7ff2,0x7fd1,0x7ff3,0x7ff4,0x7fd1,0x7fd1,0x3fd1,0x7ff5,0x7ff6,0x7fd6,
362 0x7ff7,0x7ff8,0x7ff9,0x7fd8,0x7ffa,0x7ffb,0x7fda,0x7fda,0x3fcc,0x3fcd,0x7fda,0x7fda,
363 0x7ffc,0x7ffd,0x7fd6,0x7fd6,0x7ffe,0x7fff,
364 };
365
366
367 static const uint8_t cvh_huffbits5[230] = {
368 2, 4, 8, 4, 5, 9, 9, 10, 14, 4, 6, 11,
369 5, 6, 12, 10, 11, 15, 9, 11, 15, 10, 13, 15,
370 14, 15, 0, 4, 6, 12, 6, 7, 12, 12, 12, 15,
371 5, 7, 13, 6, 7, 13, 12, 13, 15, 10, 12, 15,
372 11, 13, 15, 15, 15, 0, 8, 13, 15, 11, 12, 15,
373 15, 15, 0, 10, 13, 15, 12, 15, 15, 15, 15, 0,
374 15, 15, 0, 15, 15, 0, 0, 0, 0, 4, 5, 11,
375 5, 7, 12, 11, 12, 15, 6, 7, 13, 7, 8, 14,
376 12, 14, 15, 11, 13, 15, 12, 13, 15, 15, 15, 0,
377 5, 6, 13, 7, 8, 15, 12, 14, 15, 6, 8, 14,
378 7, 8, 15, 14, 15, 15, 12, 12, 15, 12, 13, 15,
379 15, 15, 0, 9, 13, 15, 12, 13, 15, 15, 15, 0,
380 11, 13, 15, 13, 13, 15, 15, 15, 0, 14, 15, 0,
381 15, 15, 0, 0, 0, 0, 8, 10, 15, 11, 12, 15,
382 15, 15, 0, 10, 12, 15, 12, 13, 15, 15, 15, 0,
383 14, 15, 0, 15, 15, 0, 0, 0, 0, 8, 12, 15,
384 12, 13, 15, 15, 15, 0, 11, 13, 15, 13, 15, 15,
385 15, 15, 0, 15, 15, 0, 15, 15, 0, 0, 0, 0,
386 14, 15, 0, 15, 15, 0, 0, 0, 0, 15, 15, 0,
387 15, 15,
388 };
389
390
391
392 static const uint16_t cvh_huffcodes5[230] = {
393 0x0000,0x0004,0x00f0,0x0005,0x0012,0x01f0,0x01f1,0x03e8,0x3fce,0x0006,0x0030,0x07de,
394 0x0013,0x0031,0x0fd2,0x03e9,0x07df,0x7fb0,0x01f2,0x07e0,0x7fb1,0x03ea,0x1fd2,0x7fb2,
395 0x3fcf,0x7fb3,0x0031,0x0007,0x0032,0x0fd3,0x0033,0x0070,0x0fd4,0x0fd5,0x0fd6,0x7fb4,
396 0x0014,0x0071,0x1fd3,0x0034,0x0072,0x1fd4,0x0fd7,0x1fd5,0x7fb5,0x03eb,0x0fd8,0x7fb6,
397 0x07e1,0x1fd6,0x7fb7,0x7fb8,0x7fb9,0x0072,0x00f1,0x1fd7,0x7fba,0x07e2,0x0fd9,0x7fbb,
398 0x7fbc,0x7fbd,0x0070,0x03ec,0x1fd8,0x7fbe,0x0fda,0x7fbf,0x7fc0,0x7fc1,0x7fc2,0x0072,
399 0x7fc3,0x7fc4,0x0071,0x7fc5,0x7fc6,0x0072,0x0034,0x0072,0x0072,0x0008,0x0015,0x07e3,
400 0x0016,0x0073,0x0fdb,0x07e4,0x0fdc,0x7fc7,0x0035,0x0074,0x1fd9,0x0075,0x00f2,0x3fd0,
401 0x0fdd,0x3fd1,0x7fc8,0x07e5,0x1fda,0x7fc9,0x0fde,0x1fdb,0x7fca,0x7fcb,0x7fcc,0x00f2,
402 0x0017,0x0036,0x1fdc,0x0076,0x00f3,0x7fcd,0x0fdf,0x3fd2,0x7fce,0x0037,0x00f4,0x3fd3,
403 0x0077,0x00f5,0x7fcf,0x3fd4,0x7fd0,0x7fd1,0x0fe0,0x0fe1,0x7fd2,0x0fe2,0x1fdd,0x7fd3,
404 0x7fd4,0x7fd5,0x00f5,0x01f3,0x1fde,0x7fd6,0x0fe3,0x1fdf,0x7fd7,0x7fd8,0x7fd9,0x00f3,
405 0x07e6,0x1fe0,0x7fda,0x1fe1,0x1fe2,0x7fdb,0x7fdc,0x7fdd,0x00f5,0x3fd5,0x7fde,0x00f4,
406 0x7fdf,0x7fe0,0x00f5,0x0077,0x00f5,0x00f5,0x00f6,0x03ed,0x7fe1,0x07e7,0x0fe4,0x7fe2,
407 0x7fe3,0x7fe4,0x0073,0x03ee,0x0fe5,0x7fe5,0x0fe6,0x1fe3,0x7fe6,0x7fe7,0x7fe8,0x00f2,
408 0x3fd6,0x7fe9,0x0074,0x7fea,0x7feb,0x00f2,0x0075,0x00f2,0x00f2,0x00f7,0x0fe7,0x7fec,
409 0x0fe8,0x1fe4,0x7fed,0x7fee,0x7fef,0x00f3,0x07e8,0x1fe5,0x7ff0,0x1fe6,0x7ff1,0x7ff2,
410 0x7ff3,0x7ff4,0x00f5,0x7ff5,0x7ff6,0x00f4,0x7ff7,0x7ff8,0x00f5,0x0077,0x00f5,0x00f5,
411 0x3fd7,0x7ff9,0x0036,0x7ffa,0x7ffb,0x00f3,0x0076,0x00f3,0x00f3,0x7ffc,0x7ffd,0x0000,
412 0x7ffe,0x7fff,
413 };
414
415
416 static const uint8_t cvh_huffbits6[32] = {
417 1, 4, 4, 6, 4, 6, 6, 8, 4, 6, 6, 8,
418 6, 9, 8, 10, 4, 6, 7, 8, 6, 9, 8, 11,
419 6, 9, 8, 10, 8, 10, 9, 11,
420 };
421
422 static const uint16_t cvh_huffcodes6[32] = {
423 0x0000,0x0008,0x0009,0x0034,0x000a,0x0035,0x0036,0x00f6,0x000b,0x0037,0x0038,0x00f7,
424 0x0039,0x01fa,0x00f8,0x03fc,0x000c,0x003a,0x007a,0x00f9,0x003b,0x01fb,0x00fa,0x07fe,
425 0x003c,0x01fc,0x00fb,0x03fd,0x00fc,0x03fe,0x01fd,0x07ff,
426 };
427
428 static const uint16_t* cvh_huffcodes[7] = {
429 cvh_huffcodes0, cvh_huffcodes1, cvh_huffcodes2, cvh_huffcodes3,
430 cvh_huffcodes4, cvh_huffcodes5, cvh_huffcodes6,
431 };
432
433 static const uint8_t* cvh_huffbits[7] = {
434 cvh_huffbits0, cvh_huffbits1, cvh_huffbits2, cvh_huffbits3,
435 cvh_huffbits4, cvh_huffbits5, cvh_huffbits6,
436 };
437
438
439 static const uint16_t ccpl_huffcodes2[3] = {
440 0x02,0x00,0x03,
441 };
442
443 static const uint16_t ccpl_huffcodes3[7] = {
444 0x3e,0x1e,0x02,0x00,0x06,0x0e,0x3f,
445 };
446
447 static const uint16_t ccpl_huffcodes4[15] = {
448 0xfc,0xfd,0x7c,0x3c,0x1c,0x0c,0x04,0x00,0x05,0x0d,0x1d,0x3d,
449 0x7d,0xfe,0xff,
450 };
451
452 static const uint16_t ccpl_huffcodes5[31] = {
453 0x03f8,0x03f9,0x03fa,0x03fb,0x01f8,0x01f9,0x00f8,0x00f9,0x0078,0x0079,0x0038,0x0039,
454 0x0018,0x0019,0x0004,0x0000,0x0005,0x001a,0x001b,0x003a,0x003b,0x007a,0x007b,0x00fa,
455 0x00fb,0x01fa,0x01fb,0x03fc,0x03fd,0x03fe,0x03ff,
456 };
457
458 static const uint16_t ccpl_huffcodes6[63] = {
459 0x0004,0x0005,0x0005,0x0006,0x0006,0x0007,0x0007,0x0007,0x0007,0x0008,0x0008,0x0008,
460 0x0008,0x0009,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b,
461 0x000b,0x000b,0x000c,0x000d,0x000e,0x000e,0x0010,0x0000,0x000a,0x0018,0x0019,0x0036,
462 0x0037,0x0074,0x0075,0x0076,0x0077,0x00f4,0x00f5,0x00f6,0x00f7,0x01f5,0x01f6,0x01f7,
463 0x01f8,0x03f6,0x03f7,0x03f8,0x03f9,0x03fa,0x07fa,0x07fb,0x07fc,0x07fd,0x0ffd,0x1ffd,
464 0x3ffd,0x3ffe,0xffff,
465 };
466
467 static const uint8_t ccpl_huffbits2[3] = {
468 2,1,2,
469 };
470
471 static const uint8_t ccpl_huffbits3[7] = {
472 6,5,2,1,3,4,6,
473 };
474
475 static const uint8_t ccpl_huffbits4[15] = {
476 8,8,7,6,5,4,3,1,3,4,5,6,7,8,8,
477 };
478
479 static const uint8_t ccpl_huffbits5[31] = {
480 10,10,10,10,9,9,8,8,7,7,6,6,
481 5,5,3,1,3,5,5,6,6,7,7,8,
482 8,9,9,10,10,10,10,
483 };
484
485 static const uint8_t ccpl_huffbits6[63] = {
486 16,15,14,13,12,11,11,11,11,10,10,10,
487 10,9,9,9,9,9,8,8,8,8,7,7,
488 7,7,6,6,5,5,3,1,4,5,5,6,
489 6,7,7,7,7,8,8,8,8,9,9,9,
490 9,10,10,10,10,10,11,11,11,11,12,13,
491 14,14,16,
492 };
493
494 static const uint16_t* ccpl_huffcodes[5] = {
495 ccpl_huffcodes2,ccpl_huffcodes3,
496 ccpl_huffcodes4,ccpl_huffcodes5,ccpl_huffcodes6
497 };
498
499 static const uint8_t* ccpl_huffbits[5] = {
500 ccpl_huffbits2,ccpl_huffbits3,
501 ccpl_huffbits4,ccpl_huffbits5,ccpl_huffbits6
502 };
503
504
505 //Coupling tables
506
507 static const int cplband[51] = {
508 0,1,2,3,4,5,6,7,8,9,
509 10,11,11,12,12,13,13,14,14,14,
510 15,15,15,15,16,16,16,16,16,17,
511 17,17,17,17,17,18,18,18,18,18,
512 18,18,19,19,19,19,19,19,19,19,
513 19,
514 };
515
516 static const float cplscale2[3] = {
517 0.953020632266998,0.70710676908493,0.302905440330505,
518 };
519
520 static const float cplscale3[7] = {
521 0.981279790401459,0.936997592449188,0.875934481620789,0.70710676908493,
522 0.482430040836334,0.349335819482803,0.192587479948997,
523 };
524
525 static const float cplscale4[15] = {
526 0.991486728191376,0.973249018192291,0.953020632266998,0.930133521556854,
527 0.903453230857849,0.870746195316315,0.826180458068848,0.70710676908493,
528 0.563405573368073,0.491732746362686,0.428686618804932,0.367221474647522,
529 0.302905440330505,0.229752898216248,0.130207896232605,
530 };
531
532 static const float cplscale5[31] = {
533 0.995926380157471,0.987517595291138,0.978726446628571,0.969505727291107,
534 0.95979779958725,0.949531257152557,0.938616216182709,0.926936149597168,
535 0.914336204528809,0.900602877140045,0.885426938533783,0.868331849575043,
536 0.84851086139679,0.824381768703461,0.791833400726318,0.70710676908493,
537 0.610737144947052,0.566034197807312,0.529177963733673,0.495983630418777,
538 0.464778542518616,0.434642940759659,0.404955863952637,0.375219136476517,
539 0.344963222742081,0.313672333955765,0.280692428350449,0.245068684220314,
540 0.205169528722763,0.157508864998817,0.0901700109243393,
541 };
542
543 static const float cplscale6[63] = {
544 0.998005926609039,0.993956744670868,0.989822506904602,0.985598564147949,
545 0.981279790401459,0.976860702037811,0.972335040569305,0.967696130275726,
546 0.962936460971832,0.958047747612000,0.953020632266998,0.947844684123993,
547 0.942508161067963,0.936997592449188,0.931297719478607,0.925390899181366,
548 0.919256627559662,0.912870943546295,0.906205296516418,0.899225592613220,
549 0.891890347003937,0.884148240089417,0.875934481620789,0.867165684700012,
550 0.857730865478516,0.847477376461029,0.836184680461884,0.823513329029083,
551 0.808890223503113,0.791194140911102,0.767520070075989,0.707106769084930,
552 0.641024887561798,0.611565053462982,0.587959706783295,0.567296981811523,
553 0.548448026180267,0.530831515789032,0.514098942279816,0.498019754886627,
554 0.482430040836334,0.467206478118896,0.452251672744751,0.437485188245773,
555 0.422837972640991,0.408248275518417,0.393658757209778,0.379014074802399,
556 0.364258885383606,0.349335819482803,0.334183186292648,0.318732559680939,
557 0.302905440330505,0.286608695983887,0.269728302955627,0.252119421958923,
558 0.233590632677078,0.213876649737358,0.192587479948997,0.169101938605309,
559 0.142307326197624,0.109772264957428,0.0631198287010193,
560 };
561
562 static const float* cplscales[5] = {
563 cplscale2, cplscale3, cplscale4, cplscale5, cplscale6,
564 };
565
566 #endif