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