Statistics
| Branch: | Revision:

ffmpeg / libavcodec / cookdata.h @ 5b21bdab

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
 * @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 */