]> git.sesse.net Git - ffmpeg/blob - libavcodec/cookdata.h
renaming L1CODE to attribute_l1_text, which is defined in dsputil_bfin.h
[ffmpeg] / 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 // AVCODEC_COOKDATA_H