Statistics
| Branch: | Revision:

ffmpeg / libavcodec / cookdata.h @ 2912e87a

History | View | Annotate | Download (28 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 Libav.
7
 *
8
 * Libav 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
 * Libav 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 Libav; 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
25
 * Cook AKA RealAudio G2 compatible decoderdata
26
 */
27

    
28
#ifndef AVCODEC_COOKDATA_H
29
#define AVCODEC_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 quant_centroid_tab[7][14] = {
44
  { 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 },
45
  { 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 },
46
  { 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 },
47
  { 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 },
48
  { 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 },
49
  { 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 },
50
  { 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 }
51
};
52

    
53
static const int invradix_tab[7] = {
54
    74899, 104858, 149797, 209716, 262144, 349526, 524288,
55
};
56

    
57
static const int kmax_tab[7] = {
58
    13, 9, 6, 4, 3, 2, 1,
59
};
60

    
61
static const int vd_tab[7] = {
62
    2, 2, 2, 4, 4, 5, 5,
63
};
64

    
65
static const int vpr_tab[7] = {
66
    10, 10, 10, 5, 5, 4, 4,
67
};
68

    
69

    
70

    
71
/* VLC data */
72

    
73
static const int vhsize_tab[7] = {
74
    191, 97, 48, 607, 246, 230, 32,
75
};
76

    
77
static const int vhvlcsize_tab[7] = {
78
    8, 7, 7, 10, 9, 9, 6,
79
};
80

    
81
static const uint8_t envelope_quant_index_huffbits[13][24] = {
82
    {  4,  6,  5,  5,  4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 5, 7,  8,  9, 11, 11, 12, 12, 12, 12 },
83
    { 10,  8,  6,  5,  5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 7, 9, 11, 12, 13, 15, 15, 15, 16, 16 },
84
    { 12, 10,  8,  6,  5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 4,  5,  5,  7,  9, 11, 13, 14, 14 },
85
    { 13, 10,  9,  9,  7, 7, 5, 5, 4, 3, 3, 3, 3, 3, 4, 4,  4,  5,  7,  9, 11, 13, 13, 13 },
86
    { 12, 13, 10,  8,  6, 6, 5, 5, 4, 4, 3, 3, 3, 3, 3, 4,  5,  5,  6,  7,  9, 11, 14, 14 },
87
    { 12, 11,  9,  8,  8, 7, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4,  5,  5,  7,  8, 10, 13, 14, 14 },
88
    { 15, 16, 15, 12, 10, 8, 6, 5, 4, 3, 3, 3, 2, 3, 4, 5,  5,  7,  9, 11, 13, 16, 16, 16 },
89
    { 14, 14, 11, 10,  9, 7, 7, 5, 5, 4, 3, 3, 2, 3, 3, 4,  5,  7,  9,  9, 12, 14, 15, 15 },
90
    {  9,  9,  9,  8,  7, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5,  6,  7,  8, 10, 11, 12, 13, 13 },
91
    { 14, 12, 10,  8,  6, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5,  6,  8,  8,  9, 11, 14, 14, 14 },
92
    { 13, 10,  9,  8,  6, 6, 5, 4, 4, 4, 3, 3, 2, 3, 4, 5,  6,  8,  9,  9, 11, 12, 14, 14 },
93
    { 16, 13, 12, 11,  9, 6, 5, 5, 4, 4, 4, 3, 2, 3, 3, 4,  5,  7,  8, 10, 14, 16, 16, 16 },
94
    { 13, 14, 14, 14, 10, 8, 7, 7, 5, 4, 3, 3, 2, 3, 3, 4,  5,  5,  7,  9, 11, 14, 14, 14 },
95
};
96

    
97
static const uint16_t envelope_quant_index_huffcodes[13][24] = {
98
    {0x0006, 0x003e, 0x001c, 0x001d, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x0000, 0x0001,
99
     0x0002, 0x000d, 0x001e, 0x007e, 0x00fe, 0x01fe, 0x07fc, 0x07fd, 0x0ffc, 0x0ffd, 0x0ffe, 0x0fff},
100
    {0x03fe, 0x00fe, 0x003e, 0x001c, 0x001d, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005,
101
     0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x0ffe, 0x1ffe, 0x7ffc, 0x7ffd, 0x7ffe, 0xfffe, 0xffff},
102
    {0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x0000,
103
     0x0001, 0x0002, 0x000c, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0x3ffe, 0x3fff},
104
    {0x1ffc, 0x03fe, 0x01fc, 0x01fd, 0x007c, 0x007d, 0x001c, 0x001d, 0x000a, 0x0000, 0x0001, 0x0002,
105
     0x0003, 0x0004, 0x000b, 0x000c, 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffd, 0x1ffe, 0x1fff},
106
    {0x0ffe, 0x1ffe, 0x03fe, 0x00fe, 0x003c, 0x003d, 0x001a, 0x001b, 0x000a, 0x000b, 0x0000, 0x0001,
107
     0x0002, 0x0003, 0x0004, 0x000c, 0x001c, 0x001d, 0x003e, 0x007e, 0x01fe, 0x07fe, 0x3ffe, 0x3fff},
108
    {0x0ffe, 0x07fe, 0x01fe, 0x00fc, 0x00fd, 0x007c, 0x001c, 0x000a, 0x000b, 0x0000, 0x0001, 0x0002,
109
     0x0003, 0x0004, 0x000c, 0x000d, 0x001d, 0x001e, 0x007d, 0x00fe, 0x03fe, 0x1ffe, 0x3ffe, 0x3fff},
110
    {0x7ffc, 0xfffc, 0x7ffd, 0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x000c, 0x0002, 0x0003, 0x0004,
111
     0x0000, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0xfffd, 0xfffe, 0xffff},
112
    {0x3ffc, 0x3ffd, 0x07fe, 0x03fe, 0x01fc, 0x007c, 0x007d, 0x001c, 0x001d, 0x000c, 0x0002, 0x0003,
113
     0x0000, 0x0004, 0x0005, 0x000d, 0x001e, 0x007e, 0x01fd, 0x01fe, 0x0ffe, 0x3ffe, 0x7ffe, 0x7fff},
114
    {0x01fc, 0x01fd, 0x01fe, 0x00fc, 0x007c, 0x003c, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003,
115
     0x0004, 0x0005, 0x000d, 0x001d, 0x003d, 0x007d, 0x00fd, 0x03fe, 0x07fe, 0x0ffe, 0x1ffe, 0x1fff},
116
    {0x3ffc, 0x0ffe, 0x03fe, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003,
117
     0x0004, 0x0005, 0x000d, 0x001d, 0x003e, 0x00fd, 0x00fe, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff},
118
    {0x1ffe, 0x03fe, 0x01fc, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000a, 0x000b, 0x000c, 0x0002, 0x0003,
119
     0x0000, 0x0004, 0x000d, 0x001d, 0x003e, 0x00fd, 0x01fd, 0x01fe, 0x07fe, 0x0ffe, 0x3ffe, 0x3fff},
120
    {0xfffc, 0x1ffe, 0x0ffe, 0x07fe, 0x01fe, 0x003e, 0x001c, 0x001d, 0x000a, 0x000b, 0x000c, 0x0002,
121
     0x0000, 0x0003, 0x0004, 0x000d, 0x001e, 0x007e, 0x00fe, 0x03fe, 0x3ffe, 0xfffd, 0xfffe, 0xffff},
122
    {0x1ffc, 0x3ffa, 0x3ffb, 0x3ffc, 0x03fe, 0x00fe, 0x007c, 0x007d, 0x001c, 0x000c, 0x0002, 0x0003,
123
     0x0000, 0x0004, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff},
124
};
125

    
126

    
127
static const uint8_t cvh_huffbits0[191] = {
128
    1, 4, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10,
129
    11, 11, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9,
130
    9, 10, 11, 11, 5, 6, 7, 8, 8, 9, 9, 9,
131
    9, 10, 10, 10, 11, 12, 6, 7, 8, 9, 9, 9,
132
    9, 10, 10, 10, 10, 11, 12, 13, 7, 7, 8, 9,
133
    9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 8, 8,
134
    9, 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 14,
135
    8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13,
136
    13, 15, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12,
137
    12, 13, 14, 15, 9, 9, 9, 10, 10, 10, 11, 11,
138
    12, 13, 12, 14, 15, 16, 9, 9, 10, 10, 10, 10,
139
    11, 12, 12, 14, 14, 16, 16, 0, 9, 9, 10, 10,
140
    11, 11, 12, 13, 13, 14, 14, 15, 0, 0, 10, 10,
141
    10, 11, 11, 12, 12, 13, 15, 15, 16, 0, 0, 0,
142
    11, 11, 11, 12, 13, 13, 13, 15, 16, 16, 0, 0,
143
    0, 0, 11, 11, 12, 13, 13, 14, 15, 16, 16,
144
};
145

    
146
static const uint16_t cvh_huffcodes0[191] = {
147
    0x0000,0x0008,0x002c,0x002d,0x0062,0x0063,0x00d4,0x00d5,0x00d6,0x01c6,0x01c7,0x03ca,
148
    0x07d6,0x07d7,0x0009,0x0014,0x002e,0x0064,0x0065,0x00d7,0x00d8,0x01c8,0x01c9,0x01ca,
149
    0x01cb,0x03cb,0x07d8,0x07d9,0x0015,0x002f,0x0066,0x00d9,0x00da,0x01cc,0x01cd,0x01ce,
150
    0x01cf,0x03cc,0x03cd,0x03ce,0x07da,0x0fe4,0x0030,0x0067,0x00db,0x01d0,0x01d1,0x01d2,
151
    0x01d3,0x03cf,0x03d0,0x03d1,0x03d2,0x07db,0x0fe5,0x1fea,0x0068,0x0069,0x00dc,0x01d4,
152
    0x01d5,0x01d6,0x03d3,0x03d4,0x03d5,0x03d6,0x07dc,0x07dd,0x0fe6,0x1feb,0x00dd,0x00de,
153
    0x01d7,0x01d8,0x01d9,0x03d7,0x03d8,0x03d9,0x03da,0x07de,0x07df,0x0fe7,0x1fec,0x3ff2,
154
    0x00df,0x00e0,0x01da,0x01db,0x03db,0x03dc,0x07e0,0x07e1,0x07e2,0x0fe8,0x0fe9,0x1fed,
155
    0x1fee,0x7ff4,0x00e1,0x00e2,0x01dc,0x01dd,0x03dd,0x03de,0x07e3,0x07e4,0x07e5,0x0fea,
156
    0x0feb,0x1fef,0x3ff3,0x7ff5,0x01de,0x01df,0x01e0,0x03df,0x03e0,0x03e1,0x07e6,0x07e7,
157
    0x0fec,0x1ff0,0x0fed,0x3ff4,0x7ff6,0xfff8,0x01e1,0x01e2,0x03e2,0x03e3,0x03e4,0x03e5,
158
    0x07e8,0x0fee,0x0fef,0x3ff5,0x3ff6,0xfff9,0xfffa,0xfffa,0x01e3,0x01e4,0x03e6,0x03e7,
159
    0x07e9,0x07ea,0x0ff0,0x1ff1,0x1ff2,0x3ff7,0x3ff8,0x7ff7,0x7ff7,0xfffa,0x03e8,0x03e9,
160
    0x03ea,0x07eb,0x07ec,0x0ff1,0x0ff2,0x1ff3,0x7ff8,0x7ff9,0xfffb,0x3ff8,0x7ff7,0x7ff7,
161
    0x07ed,0x07ee,0x07ef,0x0ff3,0x1ff4,0x1ff5,0x1ff6,0x7ffa,0xfffc,0xfffd,0xfffb,0xfffb,
162
    0x3ff8,0x7ff7,0x07f0,0x07f1,0x0ff4,0x1ff7,0x1ff8,0x3ff9,0x7ffb,0xfffe,0xffff,
163
};
164

    
165

    
166
static const uint8_t cvh_huffbits1[97] = {
167
    1, 4, 5, 6, 7, 8, 8, 9, 10, 10, 4, 5,
168
    6, 7, 7, 8, 8, 9, 9, 11, 5, 5, 6, 7,
169
    8, 8, 9, 9, 10, 11, 6, 6, 7, 8, 8, 9,
170
    9, 10, 11, 12, 7, 7, 8, 8, 9, 9, 10, 11,
171
    11, 13, 8, 8, 8, 9, 9, 10, 10, 11, 12, 14,
172
    8, 8, 8, 9, 10, 11, 11, 12, 13, 15, 9, 9,
173
    9, 10, 11, 12, 12, 14, 14, 0, 9, 9, 9, 10,
174
    11, 12, 14, 16, 0, 0, 10, 10, 11, 12, 13, 14,
175
    16,
176
};
177

    
178

    
179
static const uint16_t cvh_huffcodes1[97] = {
180
    0x0000,0x0008,0x0014,0x0030,0x006a,0x00e2,0x00e3,0x01e4,0x03ec,0x03ed,0x0009,0x0015,
181
    0x0031,0x006b,0x006c,0x00e4,0x00e5,0x01e5,0x01e6,0x07f0,0x0016,0x0017,0x0032,0x006d,
182
    0x00e6,0x00e7,0x01e7,0x01e8,0x03ee,0x07f1,0x0033,0x0034,0x006e,0x00e8,0x00e9,0x01e9,
183
    0x01ea,0x03ef,0x07f2,0x0ff6,0x006f,0x0070,0x00ea,0x00eb,0x01eb,0x01ec,0x03f0,0x07f3,
184
    0x07f4,0x1ffa,0x00ec,0x00ed,0x00ee,0x01ed,0x01ee,0x03f1,0x03f2,0x07f5,0x0ff7,0x3ffa,
185
    0x00ef,0x00f0,0x00f1,0x01ef,0x03f3,0x07f6,0x07f7,0x0ff8,0x1ffb,0x7ffe,0x01f0,0x01f1,
186
    0x01f2,0x03f4,0x07f8,0x0ff9,0x0ffa,0x3ffb,0x3ffc,0x0000,0x01f3,0x01f4,0x01f5,0x03f5,
187
    0x07f9,0x0ffb,0x3ffd,0xfffe,0x0000,0x0000,0x03f6,0x03f7,0x07fa,0x0ffc,0x1ffc,0x3ffe,
188
    0xffff,
189
};
190

    
191
static const uint8_t cvh_huffbits2[48] = {
192
    1, 4, 5, 7, 8, 9, 10, 3, 4, 5, 7, 8,
193
    9, 10, 5, 5, 6, 7, 8, 10, 10, 7, 6, 7,
194
    8, 9, 10, 12, 8, 8, 8, 9, 10, 12, 14, 8,
195
    9, 9, 10, 11, 15, 16, 9, 10, 11, 12, 13, 16,
196
};
197

    
198
static const uint16_t cvh_huffcodes2[48] = {
199
    0x0000,0x000a,0x0018,0x0074,0x00f2,0x01f4,0x03f6,0x0004,0x000b,0x0019,0x0075,0x00f3,
200
    0x01f5,0x03f7,0x001a,0x001b,0x0038,0x0076,0x00f4,0x03f8,0x03f9,0x0077,0x0039,0x0078,
201
    0x00f5,0x01f6,0x03fa,0x0ffc,0x00f6,0x00f7,0x00f8,0x01f7,0x03fb,0x0ffd,0x3ffe,0x00f9,
202
    0x01f8,0x01f9,0x03fc,0x07fc,0x7ffe,0xfffe,0x01fa,0x03fd,0x07fd,0x0ffe,0x1ffe,0xffff,
203
};
204

    
205
static const uint8_t cvh_huffbits3[607] = {
206
    2, 4, 6, 8, 10, 5, 5, 6, 8, 10, 7, 8,
207
    8, 10, 12, 9, 9, 10, 12, 15, 10, 11, 13, 16,
208
    16, 5, 6, 8, 10, 11, 5, 6, 8, 10, 12, 7,
209
    7, 8, 10, 13, 9, 9, 10, 12, 15, 12, 11, 13,
210
    16, 16, 7, 9, 10, 12, 15, 7, 8, 10, 12, 13,
211
    9, 9, 11, 13, 16, 11, 11, 12, 14, 16, 12, 12,
212
    14, 16, 0, 9, 11, 12, 16, 16, 9, 10, 13, 15,
213
    16, 10, 11, 12, 16, 16, 13, 13, 16, 16, 16, 16,
214
    16, 15, 16, 0, 11, 13, 16, 16, 15, 11, 13, 15,
215
    16, 16, 13, 13, 16, 16, 0, 14, 16, 16, 16, 0,
216
    16, 16, 0, 0, 0, 4, 6, 8, 10, 13, 6, 6,
217
    8, 10, 13, 9, 8, 10, 12, 16, 10, 10, 11, 15,
218
    16, 13, 12, 14, 16, 16, 5, 6, 8, 11, 13, 6,
219
    6, 8, 10, 13, 8, 8, 9, 11, 14, 10, 10, 12,
220
    12, 16, 13, 12, 13, 15, 16, 7, 8, 9, 12, 16,
221
    7, 8, 10, 12, 14, 9, 9, 10, 13, 16, 11, 10,
222
    12, 15, 16, 13, 13, 16, 16, 0, 9, 11, 13, 16,
223
    16, 9, 10, 12, 15, 16, 10, 11, 13, 16, 16, 13,
224
    12, 16, 16, 16, 16, 16, 16, 16, 0, 11, 13, 16,
225
    16, 16, 11, 13, 16, 16, 16, 12, 13, 15, 16, 0,
226
    16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 6, 8,
227
    11, 13, 16, 8, 8, 10, 12, 16, 11, 10, 11, 13,
228
    16, 12, 13, 13, 15, 16, 16, 16, 14, 16, 0, 6,
229
    8, 10, 13, 16, 8, 8, 10, 12, 16, 10, 10, 11,
230
    13, 16, 13, 12, 13, 16, 16, 14, 14, 14, 16, 0,
231
    8, 9, 11, 13, 16, 8, 9, 11, 16, 14, 10, 10,
232
    12, 15, 16, 12, 12, 13, 16, 16, 15, 16, 16, 16,
233
    0, 10, 12, 15, 16, 16, 10, 12, 12, 14, 16, 12,
234
    12, 13, 16, 16, 14, 15, 16, 16, 0, 16, 16, 16,
235
    0, 0, 12, 15, 15, 16, 0, 13, 13, 16, 16, 0,
236
    14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 0, 0,
237
    0, 0, 0, 8, 10, 13, 15, 16, 10, 11, 13, 16,
238
    16, 13, 13, 14, 16, 16, 16, 16, 16, 16, 16, 16,
239
    16, 16, 16, 0, 8, 10, 11, 15, 16, 9, 10, 12,
240
    16, 16, 12, 12, 15, 16, 16, 16, 14, 16, 16, 16,
241
    16, 16, 16, 16, 0, 9, 11, 14, 16, 16, 10, 11,
242
    13, 16, 16, 14, 13, 14, 16, 16, 16, 15, 15, 16,
243
    0, 16, 16, 16, 0, 0, 11, 13, 16, 16, 16, 11,
244
    13, 15, 16, 16, 13, 16, 16, 16, 0, 16, 16, 16,
245
    16, 0, 16, 16, 0, 0, 0, 15, 16, 16, 16, 0,
246
    14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 16, 16,
247
    0, 0, 0, 0, 0, 0, 0, 0, 9, 13, 16, 16,
248
    16, 11, 13, 16, 16, 16, 14, 15, 16, 16, 0, 15,
249
    16, 16, 16, 0, 16, 16, 0, 0, 0, 9, 13, 15,
250
    15, 16, 12, 13, 14, 16, 16, 16, 15, 16, 16, 0,
251
    16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 11, 13,
252
    15, 16, 0, 12, 14, 16, 16, 0, 16, 16, 16, 16,
253
    0, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 16,
254
    16, 16, 16, 0, 16, 16, 16, 16, 0, 16, 16, 16,
255
    0, 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0,
256
    16, 16, 0, 0, 0, 16, 16,
257
};
258

    
259

    
260
static const uint16_t cvh_huffcodes3[607] = {
261
    0x0000,0x0004,0x0022,0x00c6,0x03b0,0x000c,0x000d,0x0023,0x00c7,0x03b1,0x005c,0x00c8,
262
    0x00c9,0x03b2,0x0fa4,0x01c2,0x01c3,0x03b3,0x0fa5,0x7f72,0x03b4,0x07b2,0x1f9a,0xff24,
263
    0xff25,0x000e,0x0024,0x00ca,0x03b5,0x07b3,0x000f,0x0025,0x00cb,0x03b6,0x0fa6,0x005d,
264
    0x005e,0x00cc,0x03b7,0x1f9b,0x01c4,0x01c5,0x03b8,0x0fa7,0x7f73,0x0fa8,0x07b4,0x1f9c,
265
    0xff26,0xff27,0x005f,0x01c6,0x03b9,0x0fa9,0x7f74,0x0060,0x00cd,0x03ba,0x0faa,0x1f9d,
266
    0x01c7,0x01c8,0x07b5,0x1f9e,0xff28,0x07b6,0x07b7,0x0fab,0x3fa2,0xff29,0x0fac,0x0fad,
267
    0x3fa3,0xff2a,0x3fa2,0x01c9,0x07b8,0x0fae,0xff2b,0xff2c,0x01ca,0x03bb,0x1f9f,0x7f75,
268
    0xff2d,0x03bc,0x07b9,0x0faf,0xff2e,0xff2f,0x1fa0,0x1fa1,0xff30,0xff31,0xff32,0xff33,
269
    0xff34,0x7f76,0xff35,0xff31,0x07ba,0x1fa2,0xff36,0xff37,0x7f77,0x07bb,0x1fa3,0x7f78,
270
    0xff38,0xff39,0x1fa4,0x1fa5,0xff3a,0xff3b,0xff2e,0x3fa4,0xff3c,0xff3d,0xff3e,0xff31,
271
    0xff3f,0xff40,0xff30,0xff31,0xff31,0x0005,0x0026,0x00ce,0x03bd,0x1fa6,0x0027,0x0028,
272
    0x00cf,0x03be,0x1fa7,0x01cb,0x00d0,0x03bf,0x0fb0,0xff41,0x03c0,0x03c1,0x07bc,0x7f79,
273
    0xff42,0x1fa8,0x0fb1,0x3fa5,0xff43,0xff44,0x0010,0x0029,0x00d1,0x07bd,0x1fa9,0x002a,
274
    0x002b,0x00d2,0x03c2,0x1faa,0x00d3,0x00d4,0x01cc,0x07be,0x3fa6,0x03c3,0x03c4,0x0fb2,
275
    0x0fb3,0xff45,0x1fab,0x0fb4,0x1fac,0x7f7a,0xff46,0x0061,0x00d5,0x01cd,0x0fb5,0xff47,
276
    0x0062,0x00d6,0x03c5,0x0fb6,0x3fa7,0x01ce,0x01cf,0x03c6,0x1fad,0xff48,0x07bf,0x03c7,
277
    0x0fb7,0x7f7b,0xff49,0x1fae,0x1faf,0xff4a,0xff4b,0x7f7b,0x01d0,0x07c0,0x1fb0,0xff4c,
278
    0xff4d,0x01d1,0x03c8,0x0fb8,0x7f7c,0xff4e,0x03c9,0x07c1,0x1fb1,0xff4f,0xff50,0x1fb2,
279
    0x0fb9,0xff51,0xff52,0xff53,0xff54,0xff55,0xff56,0xff57,0xff52,0x07c2,0x1fb3,0xff58,
280
    0xff59,0xff5a,0x07c3,0x1fb4,0xff5b,0xff5c,0xff5d,0x0fba,0x1fb5,0x7f7d,0xff5e,0xff4f,
281
    0xff5f,0xff60,0xff61,0xff62,0xff52,0xff63,0xff64,0xff51,0xff52,0xff52,0x002c,0x00d7,
282
    0x07c4,0x1fb6,0xff65,0x00d8,0x00d9,0x03ca,0x0fbb,0xff66,0x07c5,0x03cb,0x07c6,0x1fb7,
283
    0xff67,0x0fbc,0x1fb8,0x1fb9,0x7f7e,0xff68,0xff69,0xff6a,0x3fa8,0xff6b,0x7f7e,0x002d,
284
    0x00da,0x03cc,0x1fba,0xff6c,0x00db,0x00dc,0x03cd,0x0fbd,0xff6d,0x03ce,0x03cf,0x07c7,
285
    0x1fbb,0xff6e,0x1fbc,0x0fbe,0x1fbd,0xff6f,0xff70,0x3fa9,0x3faa,0x3fab,0xff71,0xff6f,
286
    0x00dd,0x01d2,0x07c8,0x1fbe,0xff72,0x00de,0x01d3,0x07c9,0xff73,0x3fac,0x03d0,0x03d1,
287
    0x0fbf,0x7f7f,0xff74,0x0fc0,0x0fc1,0x1fbf,0xff75,0xff76,0x7f80,0xff77,0xff78,0xff79,
288
    0xff75,0x03d2,0x0fc2,0x7f81,0xff7a,0xff7b,0x03d3,0x0fc3,0x0fc4,0x3fad,0xff7c,0x0fc5,
289
    0x0fc6,0x1fc0,0xff7d,0xff7e,0x3fae,0x7f82,0xff7f,0xff80,0xff80,0xff81,0xff82,0xff83,
290
    0xff80,0xff80,0x0fc7,0x7f83,0x7f84,0xff84,0xff7a,0x1fc1,0x1fc2,0xff85,0xff86,0x3fad,
291
    0x3faf,0xff87,0xff88,0xff89,0xff7d,0xff8a,0xff8b,0xff8c,0xff80,0xff80,0x3fae,0x7f82,
292
    0xff7f,0xff80,0xff80,0x00df,0x03d4,0x1fc3,0x7f85,0xff8d,0x03d5,0x07ca,0x1fc4,0xff8e,
293
    0xff8f,0x1fc5,0x1fc6,0x3fb0,0xff90,0xff91,0xff92,0xff93,0xff94,0xff95,0xff96,0xff97,
294
    0xff98,0xff99,0xff9a,0xff95,0x00e0,0x03d6,0x07cb,0x7f86,0xff9b,0x01d4,0x03d7,0x0fc8,
295
    0xff9c,0xff9d,0x0fc9,0x0fca,0x7f87,0xff9e,0xff9f,0xffa0,0x3fb1,0xffa1,0xffa2,0xffa3,
296
    0xffa4,0xffa5,0xffa6,0xffa7,0xffa2,0x01d5,0x07cc,0x3fb2,0xffa8,0xffa9,0x03d8,0x07cd,
297
    0x1fc7,0xffaa,0xffab,0x3fb3,0x1fc8,0x3fb4,0xffac,0xffad,0xffae,0x7f88,0x7f89,0xffaf,
298
    0xffaf,0xffb0,0xffb1,0xffb2,0xffaf,0xffaf,0x07ce,0x1fc9,0xffb3,0xffb4,0xffb5,0x07cf,
299
    0x1fca,0x7f8a,0xffb6,0xffb7,0x1fcb,0xffb8,0xffb9,0xffba,0xffba,0xffbb,0xffbc,0xffbd,
300
    0xffbe,0xffbe,0xffbf,0xffc0,0xffbd,0xffbe,0xffbe,0x7f8b,0xffc1,0xffc2,0xffc3,0xffb4,
301
    0x3fb5,0xffc4,0xffc5,0xffc6,0xffb6,0xffc7,0xffc8,0xffc9,0xffba,0xffba,0xffca,0xffcb,
302
    0xffbd,0xffbe,0xffbe,0xffbb,0xffbc,0xffbd,0xffbe,0xffbe,0x01d6,0x1fcc,0xffcc,0xffcd,
303
    0xffce,0x07d0,0x1fcd,0xffcf,0xffd0,0xffd1,0x3fb6,0x7f8c,0xffd2,0xffd3,0xff90,0x7f8d,
304
    0xffd4,0xffd5,0xffd6,0xff95,0xffd7,0xffd8,0xff94,0xff95,0xff95,0x01d7,0x1fce,0x7f8e,
305
    0x7f8f,0xffd9,0x0fcb,0x1fcf,0x3fb7,0xffda,0xffdb,0xffdc,0x7f90,0xffdd,0xffde,0xff9e,
306
    0xffdf,0xffe0,0xffe1,0xffe2,0xffa2,0xffe3,0xffe4,0xffa1,0xffa2,0xffa2,0x07d1,0x1fd0,
307
    0x7f91,0xffe5,0xffa8,0x0fcc,0x3fb8,0xffe6,0xffe7,0xffaa,0xffe8,0xffe9,0xffea,0xffeb,
308
    0xffac,0xffec,0xffed,0xffee,0xffaf,0xffaf,0xffae,0x7f88,0x7f89,0xffaf,0xffaf,0xffef,
309
    0xfff0,0xfff1,0xfff2,0xffb4,0xfff3,0xfff4,0xfff5,0xfff6,0xffb6,0xfff7,0xfff8,0xfff9,
310
    0xffba,0xffba,0xfffa,0xfffb,0xffbd,0xffbe,0xffbe,0xffbb,0xffbc,0xffbd,0xffbe,0xffbe,
311
    0xfffc,0xfffd,0xffb3,0xffb4,0xffb4,0xfffe,0xffff,
312
};
313

    
314
static const uint8_t cvh_huffbits4[246] = {
315
    2, 4, 7, 10, 4, 5, 7, 10, 7, 8, 10, 14,
316
    11, 11, 15, 15, 4, 5, 9, 12, 5, 5, 8, 12,
317
    8, 7, 10, 15, 11, 11, 15, 15, 7, 9, 12, 15,
318
    8, 8, 12, 15, 10, 10, 13, 15, 14, 14, 15, 0,
319
    11, 13, 15, 15, 11, 13, 15, 15, 14, 15, 15, 0,
320
    15, 15, 0, 0, 4, 5, 9, 13, 5, 6, 9, 13,
321
    9, 9, 11, 15, 14, 13, 15, 15, 4, 6, 9, 12,
322
    5, 6, 9, 13, 9, 8, 11, 15, 13, 12, 15, 15,
323
    7, 9, 12, 15, 7, 8, 11, 15, 10, 10, 14, 15,
324
    14, 15, 15, 0, 10, 12, 15, 15, 11, 13, 15, 15,
325
    15, 15, 15, 0, 15, 15, 0, 0, 6, 9, 13, 14,
326
    8, 9, 12, 15, 12, 12, 15, 15, 15, 15, 15, 0,
327
    7, 9, 13, 15, 8, 9, 12, 15, 11, 12, 15, 15,
328
    15, 15, 15, 0, 9, 11, 15, 15, 9, 11, 15, 15,
329
    14, 14, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0,
330
    14, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0,
331
    9, 12, 15, 15, 12, 13, 15, 15, 15, 15, 15, 0,
332
    15, 15, 0, 0, 10, 12, 15, 15, 12, 14, 15, 15,
333
    15, 15, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0,
334
    15, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0,
335
    15, 15, 0, 0, 15, 15,
336
};
337

    
338

    
339
static const uint16_t cvh_huffcodes4[246] = {
340
    0x0000,0x0004,0x006c,0x03e6,0x0005,0x0012,0x006d,0x03e7,0x006e,0x00e8,0x03e8,0x3fc4,
341
    0x07e0,0x07e1,0x7fa4,0x7fa5,0x0006,0x0013,0x01e2,0x0fda,0x0014,0x0015,0x00e9,0x0fdb,
342
    0x00ea,0x006f,0x03e9,0x7fa6,0x07e2,0x07e3,0x7fa7,0x7fa8,0x0070,0x01e3,0x0fdc,0x7fa9,
343
    0x00eb,0x00ec,0x0fdd,0x7faa,0x03ea,0x03eb,0x1fd6,0x7fab,0x3fc5,0x3fc6,0x7fac,0x1fd6,
344
    0x07e4,0x1fd7,0x7fad,0x7fae,0x07e5,0x1fd8,0x7faf,0x7fb0,0x3fc7,0x7fb1,0x7fb2,0x1fd6,
345
    0x7fb3,0x7fb4,0x1fd6,0x1fd6,0x0007,0x0016,0x01e4,0x1fd9,0x0017,0x0032,0x01e5,0x1fda,
346
    0x01e6,0x01e7,0x07e6,0x7fb5,0x3fc8,0x1fdb,0x7fb6,0x7fb7,0x0008,0x0033,0x01e8,0x0fde,
347
    0x0018,0x0034,0x01e9,0x1fdc,0x01ea,0x00ed,0x07e7,0x7fb8,0x1fdd,0x0fdf,0x7fb9,0x7fba,
348
    0x0071,0x01eb,0x0fe0,0x7fbb,0x0072,0x00ee,0x07e8,0x7fbc,0x03ec,0x03ed,0x3fc9,0x7fbd,
349
    0x3fca,0x7fbe,0x7fbf,0x3fc9,0x03ee,0x0fe1,0x7fc0,0x7fc1,0x07e9,0x1fde,0x7fc2,0x7fc3,
350
    0x7fc4,0x7fc5,0x7fc6,0x3fc9,0x7fc7,0x7fc8,0x3fc9,0x3fc9,0x0035,0x01ec,0x1fdf,0x3fcb,
351
    0x00ef,0x01ed,0x0fe2,0x7fc9,0x0fe3,0x0fe4,0x7fca,0x7fcb,0x7fcc,0x7fcd,0x7fce,0x7fca,
352
    0x0073,0x01ee,0x1fe0,0x7fcf,0x00f0,0x01ef,0x0fe5,0x7fd0,0x07ea,0x0fe6,0x7fd1,0x7fd2,
353
    0x7fd3,0x7fd4,0x7fd5,0x7fd1,0x01f0,0x07eb,0x7fd6,0x7fd7,0x01f1,0x07ec,0x7fd8,0x7fd9,
354
    0x3fcc,0x3fcd,0x7fda,0x7fda,0x7fdb,0x7fdc,0x7fda,0x7fda,0x3fce,0x7fdd,0x7fde,0x7fd6,
355
    0x3fcf,0x7fdf,0x7fe0,0x7fd8,0x7fe1,0x7fe2,0x7fda,0x7fda,0x3fcc,0x3fcd,0x7fda,0x7fda,
356
    0x01f2,0x0fe7,0x7fe3,0x7fe4,0x0fe8,0x1fe1,0x7fe5,0x7fe6,0x7fe7,0x7fe8,0x7fe9,0x7fca,
357
    0x7fea,0x7feb,0x7fca,0x7fca,0x03ef,0x0fe9,0x7fec,0x7fed,0x0fea,0x3fd0,0x7fee,0x7fef,
358
    0x7ff0,0x7ff1,0x7ff2,0x7fd1,0x7ff3,0x7ff4,0x7fd1,0x7fd1,0x3fd1,0x7ff5,0x7ff6,0x7fd6,
359
    0x7ff7,0x7ff8,0x7ff9,0x7fd8,0x7ffa,0x7ffb,0x7fda,0x7fda,0x3fcc,0x3fcd,0x7fda,0x7fda,
360
    0x7ffc,0x7ffd,0x7fd6,0x7fd6,0x7ffe,0x7fff,
361
};
362

    
363

    
364
static const uint8_t cvh_huffbits5[230] = {
365
    2, 4, 8, 4, 5, 9, 9, 10, 14, 4, 6, 11,
366
    5, 6, 12, 10, 11, 15, 9, 11, 15, 10, 13, 15,
367
    14, 15, 0, 4, 6, 12, 6, 7, 12, 12, 12, 15,
368
    5, 7, 13, 6, 7, 13, 12, 13, 15, 10, 12, 15,
369
    11, 13, 15, 15, 15, 0, 8, 13, 15, 11, 12, 15,
370
    15, 15, 0, 10, 13, 15, 12, 15, 15, 15, 15, 0,
371
    15, 15, 0, 15, 15, 0, 0, 0, 0, 4, 5, 11,
372
    5, 7, 12, 11, 12, 15, 6, 7, 13, 7, 8, 14,
373
    12, 14, 15, 11, 13, 15, 12, 13, 15, 15, 15, 0,
374
    5, 6, 13, 7, 8, 15, 12, 14, 15, 6, 8, 14,
375
    7, 8, 15, 14, 15, 15, 12, 12, 15, 12, 13, 15,
376
    15, 15, 0, 9, 13, 15, 12, 13, 15, 15, 15, 0,
377
    11, 13, 15, 13, 13, 15, 15, 15, 0, 14, 15, 0,
378
    15, 15, 0, 0, 0, 0, 8, 10, 15, 11, 12, 15,
379
    15, 15, 0, 10, 12, 15, 12, 13, 15, 15, 15, 0,
380
    14, 15, 0, 15, 15, 0, 0, 0, 0, 8, 12, 15,
381
    12, 13, 15, 15, 15, 0, 11, 13, 15, 13, 15, 15,
382
    15, 15, 0, 15, 15, 0, 15, 15, 0, 0, 0, 0,
383
    14, 15, 0, 15, 15, 0, 0, 0, 0, 15, 15, 0,
384
    15, 15,
385
};
386

    
387

    
388

    
389
static const uint16_t cvh_huffcodes5[230] = {
390
    0x0000,0x0004,0x00f0,0x0005,0x0012,0x01f0,0x01f1,0x03e8,0x3fce,0x0006,0x0030,0x07de,
391
    0x0013,0x0031,0x0fd2,0x03e9,0x07df,0x7fb0,0x01f2,0x07e0,0x7fb1,0x03ea,0x1fd2,0x7fb2,
392
    0x3fcf,0x7fb3,0x0031,0x0007,0x0032,0x0fd3,0x0033,0x0070,0x0fd4,0x0fd5,0x0fd6,0x7fb4,
393
    0x0014,0x0071,0x1fd3,0x0034,0x0072,0x1fd4,0x0fd7,0x1fd5,0x7fb5,0x03eb,0x0fd8,0x7fb6,
394
    0x07e1,0x1fd6,0x7fb7,0x7fb8,0x7fb9,0x0072,0x00f1,0x1fd7,0x7fba,0x07e2,0x0fd9,0x7fbb,
395
    0x7fbc,0x7fbd,0x0070,0x03ec,0x1fd8,0x7fbe,0x0fda,0x7fbf,0x7fc0,0x7fc1,0x7fc2,0x0072,
396
    0x7fc3,0x7fc4,0x0071,0x7fc5,0x7fc6,0x0072,0x0034,0x0072,0x0072,0x0008,0x0015,0x07e3,
397
    0x0016,0x0073,0x0fdb,0x07e4,0x0fdc,0x7fc7,0x0035,0x0074,0x1fd9,0x0075,0x00f2,0x3fd0,
398
    0x0fdd,0x3fd1,0x7fc8,0x07e5,0x1fda,0x7fc9,0x0fde,0x1fdb,0x7fca,0x7fcb,0x7fcc,0x00f2,
399
    0x0017,0x0036,0x1fdc,0x0076,0x00f3,0x7fcd,0x0fdf,0x3fd2,0x7fce,0x0037,0x00f4,0x3fd3,
400
    0x0077,0x00f5,0x7fcf,0x3fd4,0x7fd0,0x7fd1,0x0fe0,0x0fe1,0x7fd2,0x0fe2,0x1fdd,0x7fd3,
401
    0x7fd4,0x7fd5,0x00f5,0x01f3,0x1fde,0x7fd6,0x0fe3,0x1fdf,0x7fd7,0x7fd8,0x7fd9,0x00f3,
402
    0x07e6,0x1fe0,0x7fda,0x1fe1,0x1fe2,0x7fdb,0x7fdc,0x7fdd,0x00f5,0x3fd5,0x7fde,0x00f4,
403
    0x7fdf,0x7fe0,0x00f5,0x0077,0x00f5,0x00f5,0x00f6,0x03ed,0x7fe1,0x07e7,0x0fe4,0x7fe2,
404
    0x7fe3,0x7fe4,0x0073,0x03ee,0x0fe5,0x7fe5,0x0fe6,0x1fe3,0x7fe6,0x7fe7,0x7fe8,0x00f2,
405
    0x3fd6,0x7fe9,0x0074,0x7fea,0x7feb,0x00f2,0x0075,0x00f2,0x00f2,0x00f7,0x0fe7,0x7fec,
406
    0x0fe8,0x1fe4,0x7fed,0x7fee,0x7fef,0x00f3,0x07e8,0x1fe5,0x7ff0,0x1fe6,0x7ff1,0x7ff2,
407
    0x7ff3,0x7ff4,0x00f5,0x7ff5,0x7ff6,0x00f4,0x7ff7,0x7ff8,0x00f5,0x0077,0x00f5,0x00f5,
408
    0x3fd7,0x7ff9,0x0036,0x7ffa,0x7ffb,0x00f3,0x0076,0x00f3,0x00f3,0x7ffc,0x7ffd,0x0000,
409
    0x7ffe,0x7fff,
410
};
411

    
412

    
413
static const uint8_t cvh_huffbits6[32] = {
414
     1,  4,  4,  6,  4,  6,  6,  8,  4,  6,  6,  8,
415
     6,  9,  8, 10,  4,  6,  7,  8,  6,  9,  8, 11,
416
     6,  9,  8, 10,  8, 10,  9,  11,
417
};
418

    
419
static const uint16_t cvh_huffcodes6[32] = {
420
    0x0000,0x0008,0x0009,0x0034,0x000a,0x0035,0x0036,0x00f6,0x000b,0x0037,0x0038,0x00f7,
421
    0x0039,0x01fa,0x00f8,0x03fc,0x000c,0x003a,0x007a,0x00f9,0x003b,0x01fb,0x00fa,0x07fe,
422
    0x003c,0x01fc,0x00fb,0x03fd,0x00fc,0x03fe,0x01fd,0x07ff,
423
};
424

    
425
static const uint16_t* const cvh_huffcodes[7] = {
426
    cvh_huffcodes0, cvh_huffcodes1, cvh_huffcodes2, cvh_huffcodes3,
427
    cvh_huffcodes4, cvh_huffcodes5, cvh_huffcodes6,
428
};
429

    
430
static const uint8_t* const cvh_huffbits[7] = {
431
    cvh_huffbits0, cvh_huffbits1, cvh_huffbits2, cvh_huffbits3,
432
    cvh_huffbits4, cvh_huffbits5, cvh_huffbits6,
433
};
434

    
435

    
436
static const uint16_t ccpl_huffcodes2[3] = {
437
    0x02,0x00,0x03,
438
};
439

    
440
static const uint16_t ccpl_huffcodes3[7] = {
441
    0x3e,0x1e,0x02,0x00,0x06,0x0e,0x3f,
442
};
443

    
444
static const uint16_t ccpl_huffcodes4[15] = {
445
    0xfc,0xfd,0x7c,0x3c,0x1c,0x0c,0x04,0x00,0x05,0x0d,0x1d,0x3d,
446
    0x7d,0xfe,0xff,
447
};
448

    
449
static const uint16_t ccpl_huffcodes5[31] = {
450
    0x03f8,0x03f9,0x03fa,0x03fb,0x01f8,0x01f9,0x00f8,0x00f9,0x0078,0x0079,0x0038,0x0039,
451
    0x0018,0x0019,0x0004,0x0000,0x0005,0x001a,0x001b,0x003a,0x003b,0x007a,0x007b,0x00fa,
452
    0x00fb,0x01fa,0x01fb,0x03fc,0x03fd,0x03fe,0x03ff,
453
};
454

    
455
static const uint16_t ccpl_huffcodes6[63] = {
456
    0x0004,0x0005,0x0005,0x0006,0x0006,0x0007,0x0007,0x0007,0x0007,0x0008,0x0008,0x0008,
457
    0x0008,0x0009,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b,
458
    0x000b,0x000b,0x000c,0x000d,0x000e,0x000e,0x0010,0x0000,0x000a,0x0018,0x0019,0x0036,
459
    0x0037,0x0074,0x0075,0x0076,0x0077,0x00f4,0x00f5,0x00f6,0x00f7,0x01f5,0x01f6,0x01f7,
460
    0x01f8,0x03f6,0x03f7,0x03f8,0x03f9,0x03fa,0x07fa,0x07fb,0x07fc,0x07fd,0x0ffd,0x1ffd,
461
    0x3ffd,0x3ffe,0xffff,
462
};
463

    
464
static const uint8_t ccpl_huffbits2[3] = {
465
    2,1,2,
466
};
467

    
468
static const uint8_t ccpl_huffbits3[7] = {
469
    6,5,2,1,3,4,6,
470
};
471

    
472
static const uint8_t ccpl_huffbits4[15] = {
473
    8,8,7,6,5,4,3,1,3,4,5,6,7,8,8,
474
};
475

    
476
static const uint8_t ccpl_huffbits5[31] = {
477
    10,10,10,10,9,9,8,8,7,7,6,6,
478
    5,5,3,1,3,5,5,6,6,7,7,8,
479
    8,9,9,10,10,10,10,
480
};
481

    
482
static const uint8_t ccpl_huffbits6[63] = {
483
    16,15,14,13,12,11,11,11,11,10,10,10,
484
    10,9,9,9,9,9,8,8,8,8,7,7,
485
    7,7,6,6,5,5,3,1,4,5,5,6,
486
    6,7,7,7,7,8,8,8,8,9,9,9,
487
    9,10,10,10,10,10,11,11,11,11,12,13,
488
    14,14,16,
489
};
490

    
491
static const uint16_t* const ccpl_huffcodes[5] = {
492
    ccpl_huffcodes2,ccpl_huffcodes3,
493
    ccpl_huffcodes4,ccpl_huffcodes5,ccpl_huffcodes6
494
};
495

    
496
static const uint8_t* const ccpl_huffbits[5] = {
497
    ccpl_huffbits2,ccpl_huffbits3,
498
    ccpl_huffbits4,ccpl_huffbits5,ccpl_huffbits6
499
};
500

    
501

    
502
//Coupling tables
503

    
504
static const int cplband[51] = {
505
    0,1,2,3,4,5,6,7,8,9,
506
    10,11,11,12,12,13,13,14,14,14,
507
    15,15,15,15,16,16,16,16,16,17,
508
    17,17,17,17,17,18,18,18,18,18,
509
    18,18,19,19,19,19,19,19,19,19,
510
    19,
511
};
512

    
513
static const float cplscale2[3] = {
514
0.953020632266998,0.70710676908493,0.302905440330505,
515
};
516

    
517
static const float cplscale3[7] = {
518
0.981279790401459,0.936997592449188,0.875934481620789,0.70710676908493,
519
0.482430040836334,0.349335819482803,0.192587479948997,
520
};
521

    
522
static const float cplscale4[15] = {
523
0.991486728191376,0.973249018192291,0.953020632266998,0.930133521556854,
524
0.903453230857849,0.870746195316315,0.826180458068848,0.70710676908493,
525
0.563405573368073,0.491732746362686,0.428686618804932,0.367221474647522,
526
0.302905440330505,0.229752898216248,0.130207896232605,
527
};
528

    
529
static const float cplscale5[31] = {
530
0.995926380157471,0.987517595291138,0.978726446628571,0.969505727291107,
531
0.95979779958725,0.949531257152557,0.938616216182709,0.926936149597168,
532
0.914336204528809,0.900602877140045,0.885426938533783,0.868331849575043,
533
0.84851086139679,0.824381768703461,0.791833400726318,0.70710676908493,
534
0.610737144947052,0.566034197807312,0.529177963733673,0.495983630418777,
535
0.464778542518616,0.434642940759659,0.404955863952637,0.375219136476517,
536
0.344963222742081,0.313672333955765,0.280692428350449,0.245068684220314,
537
0.205169528722763,0.157508864998817,0.0901700109243393,
538
};
539

    
540
static const float cplscale6[63] = {
541
0.998005926609039,0.993956744670868,0.989822506904602,0.985598564147949,
542
0.981279790401459,0.976860702037811,0.972335040569305,0.967696130275726,
543
0.962936460971832,0.958047747612000,0.953020632266998,0.947844684123993,
544
0.942508161067963,0.936997592449188,0.931297719478607,0.925390899181366,
545
0.919256627559662,0.912870943546295,0.906205296516418,0.899225592613220,
546
0.891890347003937,0.884148240089417,0.875934481620789,0.867165684700012,
547
0.857730865478516,0.847477376461029,0.836184680461884,0.823513329029083,
548
0.808890223503113,0.791194140911102,0.767520070075989,0.707106769084930,
549
0.641024887561798,0.611565053462982,0.587959706783295,0.567296981811523,
550
0.548448026180267,0.530831515789032,0.514098942279816,0.498019754886627,
551
0.482430040836334,0.467206478118896,0.452251672744751,0.437485188245773,
552
0.422837972640991,0.408248275518417,0.393658757209778,0.379014074802399,
553
0.364258885383606,0.349335819482803,0.334183186292648,0.318732559680939,
554
0.302905440330505,0.286608695983887,0.269728302955627,0.252119421958923,
555
0.233590632677078,0.213876649737358,0.192587479948997,0.169101938605309,
556
0.142307326197624,0.109772264957428,0.0631198287010193,
557
};
558

    
559
static const float* const cplscales[5] = {
560
    cplscale2, cplscale3, cplscale4, cplscale5, cplscale6,
561
};
562

    
563
#endif /* AVCODEC_COOKDATA_H */