FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cookdata.h
Go to the documentation of this file.
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 
35 static const int expbits_tab[8] = {
36  52,47,43,37,29,22,16,0,
37 };
38 
39 static const float dither_tab[9] = {
40  0.0, 0.0, 0.0, 0.0, 0.0, 0.176777, 0.25, 0.707107, 1.0
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] = {
428 };
429 
430 static const uint8_t* const cvh_huffbits[7] = {
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] = {
494 };
495 
496 static const uint8_t* const ccpl_huffbits[5] = {
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 // The 1 and 0 at the beginning/end are to prevent overflows with
514 // bitstream-read indexes. E.g. if n_bits=5, we can access any
515 // index from [1, (1<<n_bits)] for the first decoupling coeff,
516 // and (1<<n_bits)-coeff1 as index for coeff2, i.e.:
517 // coeff1_idx = [1, 32], and coeff2_idx = [0, 31].
518 // These values aren't part of the tables in the original binary.
519 
520 static const float cplscale2[5] = {
521 1,
522 0.953020632266998,0.70710676908493,0.302905440330505,
523 0,
524 };
525 
526 static const float cplscale3[9] = {
527 1,
528 0.981279790401459,0.936997592449188,0.875934481620789,0.70710676908493,
529 0.482430040836334,0.349335819482803,0.192587479948997,
530 0,
531 };
532 
533 static const float cplscale4[17] = {
534 1,
535 0.991486728191376,0.973249018192291,0.953020632266998,0.930133521556854,
536 0.903453230857849,0.870746195316315,0.826180458068848,0.70710676908493,
537 0.563405573368073,0.491732746362686,0.428686618804932,0.367221474647522,
538 0.302905440330505,0.229752898216248,0.130207896232605,
539 0,
540 };
541 
542 static const float cplscale5[33] = {
543 1,
544 0.995926380157471,0.987517595291138,0.978726446628571,0.969505727291107,
545 0.95979779958725,0.949531257152557,0.938616216182709,0.926936149597168,
546 0.914336204528809,0.900602877140045,0.885426938533783,0.868331849575043,
547 0.84851086139679,0.824381768703461,0.791833400726318,0.70710676908493,
548 0.610737144947052,0.566034197807312,0.529177963733673,0.495983630418777,
549 0.464778542518616,0.434642940759659,0.404955863952637,0.375219136476517,
550 0.344963222742081,0.313672333955765,0.280692428350449,0.245068684220314,
551 0.205169528722763,0.157508864998817,0.0901700109243393,
552 0,
553 };
554 
555 static const float cplscale6[65] = {
556 1,
557 0.998005926609039,0.993956744670868,0.989822506904602,0.985598564147949,
558 0.981279790401459,0.976860702037811,0.972335040569305,0.967696130275726,
559 0.962936460971832,0.958047747612000,0.953020632266998,0.947844684123993,
560 0.942508161067963,0.936997592449188,0.931297719478607,0.925390899181366,
561 0.919256627559662,0.912870943546295,0.906205296516418,0.899225592613220,
562 0.891890347003937,0.884148240089417,0.875934481620789,0.867165684700012,
563 0.857730865478516,0.847477376461029,0.836184680461884,0.823513329029083,
564 0.808890223503113,0.791194140911102,0.767520070075989,0.707106769084930,
565 0.641024887561798,0.611565053462982,0.587959706783295,0.567296981811523,
566 0.548448026180267,0.530831515789032,0.514098942279816,0.498019754886627,
567 0.482430040836334,0.467206478118896,0.452251672744751,0.437485188245773,
568 0.422837972640991,0.408248275518417,0.393658757209778,0.379014074802399,
569 0.364258885383606,0.349335819482803,0.334183186292648,0.318732559680939,
570 0.302905440330505,0.286608695983887,0.269728302955627,0.252119421958923,
571 0.233590632677078,0.213876649737358,0.192587479948997,0.169101938605309,
572 0.142307326197624,0.109772264957428,0.0631198287010193,
573 0,
574 };
575 
576 static const float* const cplscales[5] = {
578 };
579 
580 #endif /* AVCODEC_COOKDATA_H */