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