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
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
35static const int expbits_tab[8] = {
36    52,47,43,37,29,22,16,0,
37};
38
39static const float dither_tab[8] = {
40  0.0, 0.0, 0.0, 0.0, 0.0, 0.176777, 0.25, 0.707107,
41};
42
43static 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
53static const int invradix_tab[7] = {
54    74899, 104858, 149797, 209716, 262144, 349526, 524288,
55};
56
57static const int kmax_tab[7] = {
58    13, 9, 6, 4, 3, 2, 1,
59};
60
61static const int vd_tab[7] = {
62    2, 2, 2, 4, 4, 5, 5,
63};
64
65static const int vpr_tab[7] = {
66    10, 10, 10, 5, 5, 4, 4,
67};
68
69
70
71/* VLC data */
72
73static const int vhsize_tab[7] = {
74    191, 97, 48, 607, 246, 230, 32,
75};
76
77static const int vhvlcsize_tab[7] = {
78    8, 7, 7, 10, 9, 9, 6,
79};
80
81static 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
97static 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
127static 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
146static 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
166static 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
179static 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
191static 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
198static 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
205static 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
260static 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
314static 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
339static 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
364static 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
389static 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
413static 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
419static 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
425static 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
430static 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
436static const uint16_t ccpl_huffcodes2[3] = {
437    0x02,0x00,0x03,
438};
439
440static const uint16_t ccpl_huffcodes3[7] = {
441    0x3e,0x1e,0x02,0x00,0x06,0x0e,0x3f,
442};
443
444static 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
449static 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
455static 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
464static const uint8_t ccpl_huffbits2[3] = {
465    2,1,2,
466};
467
468static const uint8_t ccpl_huffbits3[7] = {
469    6,5,2,1,3,4,6,
470};
471
472static const uint8_t ccpl_huffbits4[15] = {
473    8,8,7,6,5,4,3,1,3,4,5,6,7,8,8,
474};
475
476static 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
482static 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
491static const uint16_t* const ccpl_huffcodes[5] = {
492    ccpl_huffcodes2,ccpl_huffcodes3,
493    ccpl_huffcodes4,ccpl_huffcodes5,ccpl_huffcodes6
494};
495
496static 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
504static 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
513static const float cplscale2[3] = {
5140.953020632266998,0.70710676908493,0.302905440330505,
515};
516
517static const float cplscale3[7] = {
5180.981279790401459,0.936997592449188,0.875934481620789,0.70710676908493,
5190.482430040836334,0.349335819482803,0.192587479948997,
520};
521
522static const float cplscale4[15] = {
5230.991486728191376,0.973249018192291,0.953020632266998,0.930133521556854,
5240.903453230857849,0.870746195316315,0.826180458068848,0.70710676908493,
5250.563405573368073,0.491732746362686,0.428686618804932,0.367221474647522,
5260.302905440330505,0.229752898216248,0.130207896232605,
527};
528
529static const float cplscale5[31] = {
5300.995926380157471,0.987517595291138,0.978726446628571,0.969505727291107,
5310.95979779958725,0.949531257152557,0.938616216182709,0.926936149597168,
5320.914336204528809,0.900602877140045,0.885426938533783,0.868331849575043,
5330.84851086139679,0.824381768703461,0.791833400726318,0.70710676908493,
5340.610737144947052,0.566034197807312,0.529177963733673,0.495983630418777,
5350.464778542518616,0.434642940759659,0.404955863952637,0.375219136476517,
5360.344963222742081,0.313672333955765,0.280692428350449,0.245068684220314,
5370.205169528722763,0.157508864998817,0.0901700109243393,
538};
539
540static const float cplscale6[63] = {
5410.998005926609039,0.993956744670868,0.989822506904602,0.985598564147949,
5420.981279790401459,0.976860702037811,0.972335040569305,0.967696130275726,
5430.962936460971832,0.958047747612000,0.953020632266998,0.947844684123993,
5440.942508161067963,0.936997592449188,0.931297719478607,0.925390899181366,
5450.919256627559662,0.912870943546295,0.906205296516418,0.899225592613220,
5460.891890347003937,0.884148240089417,0.875934481620789,0.867165684700012,
5470.857730865478516,0.847477376461029,0.836184680461884,0.823513329029083,
5480.808890223503113,0.791194140911102,0.767520070075989,0.707106769084930,
5490.641024887561798,0.611565053462982,0.587959706783295,0.567296981811523,
5500.548448026180267,0.530831515789032,0.514098942279816,0.498019754886627,
5510.482430040836334,0.467206478118896,0.452251672744751,0.437485188245773,
5520.422837972640991,0.408248275518417,0.393658757209778,0.379014074802399,
5530.364258885383606,0.349335819482803,0.334183186292648,0.318732559680939,
5540.302905440330505,0.286608695983887,0.269728302955627,0.252119421958923,
5550.233590632677078,0.213876649737358,0.192587479948997,0.169101938605309,
5560.142307326197624,0.109772264957428,0.0631198287010193,
557};
558
559static const float* const cplscales[5] = {
560    cplscale2, cplscale3, cplscale4, cplscale5, cplscale6,
561};
562
563#endif /* AVCODEC_COOKDATA_H */
564