Statistics
| Branch: | Revision:

ffmpeg / libavcodec / cookdata.h @ 699b3f99

History | View | Annotate | Download (28.1 KB)

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