Mercurial > libavcodec.hg
annotate cookdata.h @ 5062:2dd00b1cc94b libavcodec
Remove mdct.o and fft.o from fft-test prerequisites list.
Both objects were added to the link command, resulting in multiple definitions
of symbols. Now linking works in the general case when mdct.o and fft.o are
compiled into libavcodec.a.
author | diego |
---|---|
date | Tue, 22 May 2007 07:08:38 +0000 |
parents | c8c591fe26f8 |
children | 4394344397d8 |
rev | line source |
---|---|
2956 | 1 /* |
2 * COOK compatible decoder data | |
3 * Copyright (c) 2003 Sascha Sommer | |
4 * Copyright (c) 2005 Benjamin Larsson | |
5 * | |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
6 * This file is part of FFmpeg. |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
7 * |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
8 * FFmpeg is free software; you can redistribute it and/or |
2956 | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
11 * version 2.1 of the License, or (at your option) any later version. |
2956 | 12 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
13 * FFmpeg is distributed in the hope that it will be useful, |
2956 | 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 | |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
19 * License along with FFmpeg; if not, write to the Free Software |
3036
0b546eab515d
Update licensing information: The FSF changed postal address.
diego
parents:
2956
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
2956 | 21 * |
22 */ | |
23 | |
24 /** | |
25 * @file cookdata.h | |
26 * Cook AKA RealAudio G2 compatible decoderdata | |
27 */ | |
28 | |
29 /* various data tables */ | |
30 | |
31 static const int expbits_tab[8] = { | |
32 52,47,43,37,29,22,16,0, | |
33 }; | |
34 | |
35 static const float dither_tab[8] = { | |
36 0.0, 0.0, 0.0, 0.0, 0.0, 0.176777, 0.25, 0.707107, | |
37 }; | |
38 | |
39 static const float randsign[2] = {1.0, -1.0}; | |
40 | |
41 static const float quant_centroid_tab[7][14] = { | |
42 { 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 }, | |
43 { 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 }, | |
44 { 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 }, | |
45 { 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 }, | |
46 { 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 }, | |
47 { 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 }, | |
48 { 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 } | |
49 }; | |
50 | |
51 static const int invradix_tab[7] = { | |
52 74899, 104858, 149797, 209716, 262144, 349526, 524288, | |
53 }; | |
54 | |
55 static const int kmax_tab[7] = { | |
56 13, 9, 6, 4, 3, 2, 1, | |
57 }; | |
58 | |
59 static const int vd_tab[7] = { | |
60 2, 2, 2, 4, 4, 5, 5, | |
61 }; | |
62 | |
63 static const int vpr_tab[7] = { | |
64 10, 10, 10, 5, 5, 4, 4, | |
65 }; | |
66 | |
67 | |
68 | |
69 /* VLC data */ | |
70 | |
71 static const int vhsize_tab[7] = { | |
72 191, 97, 48, 607, 246, 230, 32, | |
73 }; | |
74 | |
75 static const int vhvlcsize_tab[7] = { | |
76 8, 7, 7, 10, 9, 9, 6, | |
77 }; | |
78 | |
79 static const uint8_t envelope_quant_index_huffbits[13][24] = { | |
80 { 4, 6, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 5, 7, 8, 9, 11, 11, 12, 12, 12, 12 }, | |
81 { 10, 8, 6, 5, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 7, 9, 11, 12, 13, 15, 15, 15, 16, 16 }, | |
82 { 12, 10, 8, 6, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 4, 5, 5, 7, 9, 11, 13, 14, 14 }, | |
83 { 13, 10, 9, 9, 7, 7, 5, 5, 4, 3, 3, 3, 3, 3, 4, 4, 4, 5, 7, 9, 11, 13, 13, 13 }, | |
84 { 12, 13, 10, 8, 6, 6, 5, 5, 4, 4, 3, 3, 3, 3, 3, 4, 5, 5, 6, 7, 9, 11, 14, 14 }, | |
85 { 12, 11, 9, 8, 8, 7, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4, 5, 5, 7, 8, 10, 13, 14, 14 }, | |
86 { 15, 16, 15, 12, 10, 8, 6, 5, 4, 3, 3, 3, 2, 3, 4, 5, 5, 7, 9, 11, 13, 16, 16, 16 }, | |
87 { 14, 14, 11, 10, 9, 7, 7, 5, 5, 4, 3, 3, 2, 3, 3, 4, 5, 7, 9, 9, 12, 14, 15, 15 }, | |
88 { 9, 9, 9, 8, 7, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 13 }, | |
89 { 14, 12, 10, 8, 6, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 8, 8, 9, 11, 14, 14, 14 }, | |
90 { 13, 10, 9, 8, 6, 6, 5, 4, 4, 4, 3, 3, 2, 3, 4, 5, 6, 8, 9, 9, 11, 12, 14, 14 }, | |
91 { 16, 13, 12, 11, 9, 6, 5, 5, 4, 4, 4, 3, 2, 3, 3, 4, 5, 7, 8, 10, 14, 16, 16, 16 }, | |
92 { 13, 14, 14, 14, 10, 8, 7, 7, 5, 4, 3, 3, 2, 3, 3, 4, 5, 5, 7, 9, 11, 14, 14, 14 }, | |
93 }; | |
94 | |
95 static const uint16_t envelope_quant_index_huffcodes[13][24] = { | |
96 {0x0006, 0x003e, 0x001c, 0x001d, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x0000, 0x0001, | |
97 0x0002, 0x000d, 0x001e, 0x007e, 0x00fe, 0x01fe, 0x07fc, 0x07fd, 0x0ffc, 0x0ffd, 0x0ffe, 0x0fff}, | |
98 {0x03fe, 0x00fe, 0x003e, 0x001c, 0x001d, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, | |
99 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x0ffe, 0x1ffe, 0x7ffc, 0x7ffd, 0x7ffe, 0xfffe, 0xffff}, | |
100 {0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x0000, | |
101 0x0001, 0x0002, 0x000c, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0x3ffe, 0x3fff}, | |
102 {0x1ffc, 0x03fe, 0x01fc, 0x01fd, 0x007c, 0x007d, 0x001c, 0x001d, 0x000a, 0x0000, 0x0001, 0x0002, | |
103 0x0003, 0x0004, 0x000b, 0x000c, 0x000d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffd, 0x1ffe, 0x1fff}, | |
104 {0x0ffe, 0x1ffe, 0x03fe, 0x00fe, 0x003c, 0x003d, 0x001a, 0x001b, 0x000a, 0x000b, 0x0000, 0x0001, | |
105 0x0002, 0x0003, 0x0004, 0x000c, 0x001c, 0x001d, 0x003e, 0x007e, 0x01fe, 0x07fe, 0x3ffe, 0x3fff}, | |
106 {0x0ffe, 0x07fe, 0x01fe, 0x00fc, 0x00fd, 0x007c, 0x001c, 0x000a, 0x000b, 0x0000, 0x0001, 0x0002, | |
107 0x0003, 0x0004, 0x000c, 0x000d, 0x001d, 0x001e, 0x007d, 0x00fe, 0x03fe, 0x1ffe, 0x3ffe, 0x3fff}, | |
108 {0x7ffc, 0xfffc, 0x7ffd, 0x0ffe, 0x03fe, 0x00fe, 0x003e, 0x001c, 0x000c, 0x0002, 0x0003, 0x0004, | |
109 0x0000, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x1ffe, 0xfffd, 0xfffe, 0xffff}, | |
110 {0x3ffc, 0x3ffd, 0x07fe, 0x03fe, 0x01fc, 0x007c, 0x007d, 0x001c, 0x001d, 0x000c, 0x0002, 0x0003, | |
111 0x0000, 0x0004, 0x0005, 0x000d, 0x001e, 0x007e, 0x01fd, 0x01fe, 0x0ffe, 0x3ffe, 0x7ffe, 0x7fff}, | |
112 {0x01fc, 0x01fd, 0x01fe, 0x00fc, 0x007c, 0x003c, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003, | |
113 0x0004, 0x0005, 0x000d, 0x001d, 0x003d, 0x007d, 0x00fd, 0x03fe, 0x07fe, 0x0ffe, 0x1ffe, 0x1fff}, | |
114 {0x3ffc, 0x0ffe, 0x03fe, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000c, 0x0000, 0x0001, 0x0002, 0x0003, | |
115 0x0004, 0x0005, 0x000d, 0x001d, 0x003e, 0x00fd, 0x00fe, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff}, | |
116 {0x1ffe, 0x03fe, 0x01fc, 0x00fc, 0x003c, 0x003d, 0x001c, 0x000a, 0x000b, 0x000c, 0x0002, 0x0003, | |
117 0x0000, 0x0004, 0x000d, 0x001d, 0x003e, 0x00fd, 0x01fd, 0x01fe, 0x07fe, 0x0ffe, 0x3ffe, 0x3fff}, | |
118 {0xfffc, 0x1ffe, 0x0ffe, 0x07fe, 0x01fe, 0x003e, 0x001c, 0x001d, 0x000a, 0x000b, 0x000c, 0x0002, | |
119 0x0000, 0x0003, 0x0004, 0x000d, 0x001e, 0x007e, 0x00fe, 0x03fe, 0x3ffe, 0xfffd, 0xfffe, 0xffff}, | |
120 {0x1ffc, 0x3ffa, 0x3ffb, 0x3ffc, 0x03fe, 0x00fe, 0x007c, 0x007d, 0x001c, 0x000c, 0x0002, 0x0003, | |
121 0x0000, 0x0004, 0x0005, 0x000d, 0x001d, 0x001e, 0x007e, 0x01fe, 0x07fe, 0x3ffd, 0x3ffe, 0x3fff}, | |
122 }; | |
123 | |
124 | |
125 static const uint8_t cvh_huffbits0[191] = { | |
126 1, 4, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, | |
127 11, 11, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9, | |
128 9, 10, 11, 11, 5, 6, 7, 8, 8, 9, 9, 9, | |
129 9, 10, 10, 10, 11, 12, 6, 7, 8, 9, 9, 9, | |
130 9, 10, 10, 10, 10, 11, 12, 13, 7, 7, 8, 9, | |
131 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 8, 8, | |
132 9, 9, 9, 10, 10, 10, 10, 11, 11, 12, 13, 14, | |
133 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13, | |
134 13, 15, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, | |
135 12, 13, 14, 15, 9, 9, 9, 10, 10, 10, 11, 11, | |
136 12, 13, 12, 14, 15, 16, 9, 9, 10, 10, 10, 10, | |
137 11, 12, 12, 14, 14, 16, 16, 0, 9, 9, 10, 10, | |
138 11, 11, 12, 13, 13, 14, 14, 15, 0, 0, 10, 10, | |
139 10, 11, 11, 12, 12, 13, 15, 15, 16, 0, 0, 0, | |
140 11, 11, 11, 12, 13, 13, 13, 15, 16, 16, 0, 0, | |
141 0, 0, 11, 11, 12, 13, 13, 14, 15, 16, 16, | |
142 }; | |
143 | |
144 static const uint16_t cvh_huffcodes0[191] = { | |
145 0x0000,0x0008,0x002c,0x002d,0x0062,0x0063,0x00d4,0x00d5,0x00d6,0x01c6,0x01c7,0x03ca, | |
146 0x07d6,0x07d7,0x0009,0x0014,0x002e,0x0064,0x0065,0x00d7,0x00d8,0x01c8,0x01c9,0x01ca, | |
147 0x01cb,0x03cb,0x07d8,0x07d9,0x0015,0x002f,0x0066,0x00d9,0x00da,0x01cc,0x01cd,0x01ce, | |
148 0x01cf,0x03cc,0x03cd,0x03ce,0x07da,0x0fe4,0x0030,0x0067,0x00db,0x01d0,0x01d1,0x01d2, | |
149 0x01d3,0x03cf,0x03d0,0x03d1,0x03d2,0x07db,0x0fe5,0x1fea,0x0068,0x0069,0x00dc,0x01d4, | |
150 0x01d5,0x01d6,0x03d3,0x03d4,0x03d5,0x03d6,0x07dc,0x07dd,0x0fe6,0x1feb,0x00dd,0x00de, | |
151 0x01d7,0x01d8,0x01d9,0x03d7,0x03d8,0x03d9,0x03da,0x07de,0x07df,0x0fe7,0x1fec,0x3ff2, | |
152 0x00df,0x00e0,0x01da,0x01db,0x03db,0x03dc,0x07e0,0x07e1,0x07e2,0x0fe8,0x0fe9,0x1fed, | |
153 0x1fee,0x7ff4,0x00e1,0x00e2,0x01dc,0x01dd,0x03dd,0x03de,0x07e3,0x07e4,0x07e5,0x0fea, | |
154 0x0feb,0x1fef,0x3ff3,0x7ff5,0x01de,0x01df,0x01e0,0x03df,0x03e0,0x03e1,0x07e6,0x07e7, | |
155 0x0fec,0x1ff0,0x0fed,0x3ff4,0x7ff6,0xfff8,0x01e1,0x01e2,0x03e2,0x03e3,0x03e4,0x03e5, | |
156 0x07e8,0x0fee,0x0fef,0x3ff5,0x3ff6,0xfff9,0xfffa,0xfffa,0x01e3,0x01e4,0x03e6,0x03e7, | |
157 0x07e9,0x07ea,0x0ff0,0x1ff1,0x1ff2,0x3ff7,0x3ff8,0x7ff7,0x7ff7,0xfffa,0x03e8,0x03e9, | |
158 0x03ea,0x07eb,0x07ec,0x0ff1,0x0ff2,0x1ff3,0x7ff8,0x7ff9,0xfffb,0x3ff8,0x7ff7,0x7ff7, | |
159 0x07ed,0x07ee,0x07ef,0x0ff3,0x1ff4,0x1ff5,0x1ff6,0x7ffa,0xfffc,0xfffd,0xfffb,0xfffb, | |
160 0x3ff8,0x7ff7,0x07f0,0x07f1,0x0ff4,0x1ff7,0x1ff8,0x3ff9,0x7ffb,0xfffe,0xffff, | |
161 }; | |
162 | |
163 | |
164 static const uint8_t cvh_huffbits1[97] = { | |
165 1, 4, 5, 6, 7, 8, 8, 9, 10, 10, 4, 5, | |
166 6, 7, 7, 8, 8, 9, 9, 11, 5, 5, 6, 7, | |
167 8, 8, 9, 9, 10, 11, 6, 6, 7, 8, 8, 9, | |
168 9, 10, 11, 12, 7, 7, 8, 8, 9, 9, 10, 11, | |
169 11, 13, 8, 8, 8, 9, 9, 10, 10, 11, 12, 14, | |
170 8, 8, 8, 9, 10, 11, 11, 12, 13, 15, 9, 9, | |
171 9, 10, 11, 12, 12, 14, 14, 0, 9, 9, 9, 10, | |
172 11, 12, 14, 16, 0, 0, 10, 10, 11, 12, 13, 14, | |
173 16, | |
174 }; | |
175 | |
176 | |
177 static const uint16_t cvh_huffcodes1[97] = { | |
178 0x0000,0x0008,0x0014,0x0030,0x006a,0x00e2,0x00e3,0x01e4,0x03ec,0x03ed,0x0009,0x0015, | |
179 0x0031,0x006b,0x006c,0x00e4,0x00e5,0x01e5,0x01e6,0x07f0,0x0016,0x0017,0x0032,0x006d, | |
180 0x00e6,0x00e7,0x01e7,0x01e8,0x03ee,0x07f1,0x0033,0x0034,0x006e,0x00e8,0x00e9,0x01e9, | |
181 0x01ea,0x03ef,0x07f2,0x0ff6,0x006f,0x0070,0x00ea,0x00eb,0x01eb,0x01ec,0x03f0,0x07f3, | |
182 0x07f4,0x1ffa,0x00ec,0x00ed,0x00ee,0x01ed,0x01ee,0x03f1,0x03f2,0x07f5,0x0ff7,0x3ffa, | |
183 0x00ef,0x00f0,0x00f1,0x01ef,0x03f3,0x07f6,0x07f7,0x0ff8,0x1ffb,0x7ffe,0x01f0,0x01f1, | |
184 0x01f2,0x03f4,0x07f8,0x0ff9,0x0ffa,0x3ffb,0x3ffc,0x0000,0x01f3,0x01f4,0x01f5,0x03f5, | |
185 0x07f9,0x0ffb,0x3ffd,0xfffe,0x0000,0x0000,0x03f6,0x03f7,0x07fa,0x0ffc,0x1ffc,0x3ffe, | |
186 0xffff, | |
187 }; | |
188 | |
189 static const uint8_t cvh_huffbits2[48] = { | |
190 1, 4, 5, 7, 8, 9, 10, 3, 4, 5, 7, 8, | |
191 9, 10, 5, 5, 6, 7, 8, 10, 10, 7, 6, 7, | |
192 8, 9, 10, 12, 8, 8, 8, 9, 10, 12, 14, 8, | |
193 9, 9, 10, 11, 15, 16, 9, 10, 11, 12, 13, 16, | |
194 }; | |
195 | |
196 static const uint16_t cvh_huffcodes2[48] = { | |
197 0x0000,0x000a,0x0018,0x0074,0x00f2,0x01f4,0x03f6,0x0004,0x000b,0x0019,0x0075,0x00f3, | |
198 0x01f5,0x03f7,0x001a,0x001b,0x0038,0x0076,0x00f4,0x03f8,0x03f9,0x0077,0x0039,0x0078, | |
199 0x00f5,0x01f6,0x03fa,0x0ffc,0x00f6,0x00f7,0x00f8,0x01f7,0x03fb,0x0ffd,0x3ffe,0x00f9, | |
200 0x01f8,0x01f9,0x03fc,0x07fc,0x7ffe,0xfffe,0x01fa,0x03fd,0x07fd,0x0ffe,0x1ffe,0xffff, | |
201 }; | |
202 | |
203 static const uint8_t cvh_huffbits3[607] = { | |
204 2, 4, 6, 8, 10, 5, 5, 6, 8, 10, 7, 8, | |
205 8, 10, 12, 9, 9, 10, 12, 15, 10, 11, 13, 16, | |
206 16, 5, 6, 8, 10, 11, 5, 6, 8, 10, 12, 7, | |
207 7, 8, 10, 13, 9, 9, 10, 12, 15, 12, 11, 13, | |
208 16, 16, 7, 9, 10, 12, 15, 7, 8, 10, 12, 13, | |
209 9, 9, 11, 13, 16, 11, 11, 12, 14, 16, 12, 12, | |
210 14, 16, 0, 9, 11, 12, 16, 16, 9, 10, 13, 15, | |
211 16, 10, 11, 12, 16, 16, 13, 13, 16, 16, 16, 16, | |
212 16, 15, 16, 0, 11, 13, 16, 16, 15, 11, 13, 15, | |
213 16, 16, 13, 13, 16, 16, 0, 14, 16, 16, 16, 0, | |
214 16, 16, 0, 0, 0, 4, 6, 8, 10, 13, 6, 6, | |
215 8, 10, 13, 9, 8, 10, 12, 16, 10, 10, 11, 15, | |
216 16, 13, 12, 14, 16, 16, 5, 6, 8, 11, 13, 6, | |
217 6, 8, 10, 13, 8, 8, 9, 11, 14, 10, 10, 12, | |
218 12, 16, 13, 12, 13, 15, 16, 7, 8, 9, 12, 16, | |
219 7, 8, 10, 12, 14, 9, 9, 10, 13, 16, 11, 10, | |
220 12, 15, 16, 13, 13, 16, 16, 0, 9, 11, 13, 16, | |
221 16, 9, 10, 12, 15, 16, 10, 11, 13, 16, 16, 13, | |
222 12, 16, 16, 16, 16, 16, 16, 16, 0, 11, 13, 16, | |
223 16, 16, 11, 13, 16, 16, 16, 12, 13, 15, 16, 0, | |
224 16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 6, 8, | |
225 11, 13, 16, 8, 8, 10, 12, 16, 11, 10, 11, 13, | |
226 16, 12, 13, 13, 15, 16, 16, 16, 14, 16, 0, 6, | |
227 8, 10, 13, 16, 8, 8, 10, 12, 16, 10, 10, 11, | |
228 13, 16, 13, 12, 13, 16, 16, 14, 14, 14, 16, 0, | |
229 8, 9, 11, 13, 16, 8, 9, 11, 16, 14, 10, 10, | |
230 12, 15, 16, 12, 12, 13, 16, 16, 15, 16, 16, 16, | |
231 0, 10, 12, 15, 16, 16, 10, 12, 12, 14, 16, 12, | |
232 12, 13, 16, 16, 14, 15, 16, 16, 0, 16, 16, 16, | |
233 0, 0, 12, 15, 15, 16, 0, 13, 13, 16, 16, 0, | |
234 14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 0, 0, | |
235 0, 0, 0, 8, 10, 13, 15, 16, 10, 11, 13, 16, | |
236 16, 13, 13, 14, 16, 16, 16, 16, 16, 16, 16, 16, | |
237 16, 16, 16, 0, 8, 10, 11, 15, 16, 9, 10, 12, | |
238 16, 16, 12, 12, 15, 16, 16, 16, 14, 16, 16, 16, | |
239 16, 16, 16, 16, 0, 9, 11, 14, 16, 16, 10, 11, | |
240 13, 16, 16, 14, 13, 14, 16, 16, 16, 15, 15, 16, | |
241 0, 16, 16, 16, 0, 0, 11, 13, 16, 16, 16, 11, | |
242 13, 15, 16, 16, 13, 16, 16, 16, 0, 16, 16, 16, | |
243 16, 0, 16, 16, 0, 0, 0, 15, 16, 16, 16, 0, | |
244 14, 16, 16, 16, 0, 16, 16, 16, 0, 0, 16, 16, | |
245 0, 0, 0, 0, 0, 0, 0, 0, 9, 13, 16, 16, | |
246 16, 11, 13, 16, 16, 16, 14, 15, 16, 16, 0, 15, | |
247 16, 16, 16, 0, 16, 16, 0, 0, 0, 9, 13, 15, | |
248 15, 16, 12, 13, 14, 16, 16, 16, 15, 16, 16, 0, | |
249 16, 16, 16, 16, 0, 16, 16, 0, 0, 0, 11, 13, | |
250 15, 16, 0, 12, 14, 16, 16, 0, 16, 16, 16, 16, | |
251 0, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 16, | |
252 16, 16, 16, 0, 16, 16, 16, 16, 0, 16, 16, 16, | |
253 0, 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, | |
254 16, 16, 0, 0, 0, 16, 16, | |
255 }; | |
256 | |
257 | |
258 static const uint16_t cvh_huffcodes3[607] = { | |
259 0x0000,0x0004,0x0022,0x00c6,0x03b0,0x000c,0x000d,0x0023,0x00c7,0x03b1,0x005c,0x00c8, | |
260 0x00c9,0x03b2,0x0fa4,0x01c2,0x01c3,0x03b3,0x0fa5,0x7f72,0x03b4,0x07b2,0x1f9a,0xff24, | |
261 0xff25,0x000e,0x0024,0x00ca,0x03b5,0x07b3,0x000f,0x0025,0x00cb,0x03b6,0x0fa6,0x005d, | |
262 0x005e,0x00cc,0x03b7,0x1f9b,0x01c4,0x01c5,0x03b8,0x0fa7,0x7f73,0x0fa8,0x07b4,0x1f9c, | |
263 0xff26,0xff27,0x005f,0x01c6,0x03b9,0x0fa9,0x7f74,0x0060,0x00cd,0x03ba,0x0faa,0x1f9d, | |
264 0x01c7,0x01c8,0x07b5,0x1f9e,0xff28,0x07b6,0x07b7,0x0fab,0x3fa2,0xff29,0x0fac,0x0fad, | |
265 0x3fa3,0xff2a,0x3fa2,0x01c9,0x07b8,0x0fae,0xff2b,0xff2c,0x01ca,0x03bb,0x1f9f,0x7f75, | |
266 0xff2d,0x03bc,0x07b9,0x0faf,0xff2e,0xff2f,0x1fa0,0x1fa1,0xff30,0xff31,0xff32,0xff33, | |
267 0xff34,0x7f76,0xff35,0xff31,0x07ba,0x1fa2,0xff36,0xff37,0x7f77,0x07bb,0x1fa3,0x7f78, | |
268 0xff38,0xff39,0x1fa4,0x1fa5,0xff3a,0xff3b,0xff2e,0x3fa4,0xff3c,0xff3d,0xff3e,0xff31, | |
269 0xff3f,0xff40,0xff30,0xff31,0xff31,0x0005,0x0026,0x00ce,0x03bd,0x1fa6,0x0027,0x0028, | |
270 0x00cf,0x03be,0x1fa7,0x01cb,0x00d0,0x03bf,0x0fb0,0xff41,0x03c0,0x03c1,0x07bc,0x7f79, | |
271 0xff42,0x1fa8,0x0fb1,0x3fa5,0xff43,0xff44,0x0010,0x0029,0x00d1,0x07bd,0x1fa9,0x002a, | |
272 0x002b,0x00d2,0x03c2,0x1faa,0x00d3,0x00d4,0x01cc,0x07be,0x3fa6,0x03c3,0x03c4,0x0fb2, | |
273 0x0fb3,0xff45,0x1fab,0x0fb4,0x1fac,0x7f7a,0xff46,0x0061,0x00d5,0x01cd,0x0fb5,0xff47, | |
274 0x0062,0x00d6,0x03c5,0x0fb6,0x3fa7,0x01ce,0x01cf,0x03c6,0x1fad,0xff48,0x07bf,0x03c7, | |
275 0x0fb7,0x7f7b,0xff49,0x1fae,0x1faf,0xff4a,0xff4b,0x7f7b,0x01d0,0x07c0,0x1fb0,0xff4c, | |
276 0xff4d,0x01d1,0x03c8,0x0fb8,0x7f7c,0xff4e,0x03c9,0x07c1,0x1fb1,0xff4f,0xff50,0x1fb2, | |
277 0x0fb9,0xff51,0xff52,0xff53,0xff54,0xff55,0xff56,0xff57,0xff52,0x07c2,0x1fb3,0xff58, | |
278 0xff59,0xff5a,0x07c3,0x1fb4,0xff5b,0xff5c,0xff5d,0x0fba,0x1fb5,0x7f7d,0xff5e,0xff4f, | |
279 0xff5f,0xff60,0xff61,0xff62,0xff52,0xff63,0xff64,0xff51,0xff52,0xff52,0x002c,0x00d7, | |
280 0x07c4,0x1fb6,0xff65,0x00d8,0x00d9,0x03ca,0x0fbb,0xff66,0x07c5,0x03cb,0x07c6,0x1fb7, | |
281 0xff67,0x0fbc,0x1fb8,0x1fb9,0x7f7e,0xff68,0xff69,0xff6a,0x3fa8,0xff6b,0x7f7e,0x002d, | |
282 0x00da,0x03cc,0x1fba,0xff6c,0x00db,0x00dc,0x03cd,0x0fbd,0xff6d,0x03ce,0x03cf,0x07c7, | |
283 0x1fbb,0xff6e,0x1fbc,0x0fbe,0x1fbd,0xff6f,0xff70,0x3fa9,0x3faa,0x3fab,0xff71,0xff6f, | |
284 0x00dd,0x01d2,0x07c8,0x1fbe,0xff72,0x00de,0x01d3,0x07c9,0xff73,0x3fac,0x03d0,0x03d1, | |
285 0x0fbf,0x7f7f,0xff74,0x0fc0,0x0fc1,0x1fbf,0xff75,0xff76,0x7f80,0xff77,0xff78,0xff79, | |
286 0xff75,0x03d2,0x0fc2,0x7f81,0xff7a,0xff7b,0x03d3,0x0fc3,0x0fc4,0x3fad,0xff7c,0x0fc5, | |
287 0x0fc6,0x1fc0,0xff7d,0xff7e,0x3fae,0x7f82,0xff7f,0xff80,0xff80,0xff81,0xff82,0xff83, | |
288 0xff80,0xff80,0x0fc7,0x7f83,0x7f84,0xff84,0xff7a,0x1fc1,0x1fc2,0xff85,0xff86,0x3fad, | |
289 0x3faf,0xff87,0xff88,0xff89,0xff7d,0xff8a,0xff8b,0xff8c,0xff80,0xff80,0x3fae,0x7f82, | |
290 0xff7f,0xff80,0xff80,0x00df,0x03d4,0x1fc3,0x7f85,0xff8d,0x03d5,0x07ca,0x1fc4,0xff8e, | |
291 0xff8f,0x1fc5,0x1fc6,0x3fb0,0xff90,0xff91,0xff92,0xff93,0xff94,0xff95,0xff96,0xff97, | |
292 0xff98,0xff99,0xff9a,0xff95,0x00e0,0x03d6,0x07cb,0x7f86,0xff9b,0x01d4,0x03d7,0x0fc8, | |
293 0xff9c,0xff9d,0x0fc9,0x0fca,0x7f87,0xff9e,0xff9f,0xffa0,0x3fb1,0xffa1,0xffa2,0xffa3, | |
294 0xffa4,0xffa5,0xffa6,0xffa7,0xffa2,0x01d5,0x07cc,0x3fb2,0xffa8,0xffa9,0x03d8,0x07cd, | |
295 0x1fc7,0xffaa,0xffab,0x3fb3,0x1fc8,0x3fb4,0xffac,0xffad,0xffae,0x7f88,0x7f89,0xffaf, | |
296 0xffaf,0xffb0,0xffb1,0xffb2,0xffaf,0xffaf,0x07ce,0x1fc9,0xffb3,0xffb4,0xffb5,0x07cf, | |
297 0x1fca,0x7f8a,0xffb6,0xffb7,0x1fcb,0xffb8,0xffb9,0xffba,0xffba,0xffbb,0xffbc,0xffbd, | |
298 0xffbe,0xffbe,0xffbf,0xffc0,0xffbd,0xffbe,0xffbe,0x7f8b,0xffc1,0xffc2,0xffc3,0xffb4, | |
299 0x3fb5,0xffc4,0xffc5,0xffc6,0xffb6,0xffc7,0xffc8,0xffc9,0xffba,0xffba,0xffca,0xffcb, | |
300 0xffbd,0xffbe,0xffbe,0xffbb,0xffbc,0xffbd,0xffbe,0xffbe,0x01d6,0x1fcc,0xffcc,0xffcd, | |
301 0xffce,0x07d0,0x1fcd,0xffcf,0xffd0,0xffd1,0x3fb6,0x7f8c,0xffd2,0xffd3,0xff90,0x7f8d, | |
302 0xffd4,0xffd5,0xffd6,0xff95,0xffd7,0xffd8,0xff94,0xff95,0xff95,0x01d7,0x1fce,0x7f8e, | |
303 0x7f8f,0xffd9,0x0fcb,0x1fcf,0x3fb7,0xffda,0xffdb,0xffdc,0x7f90,0xffdd,0xffde,0xff9e, | |
304 0xffdf,0xffe0,0xffe1,0xffe2,0xffa2,0xffe3,0xffe4,0xffa1,0xffa2,0xffa2,0x07d1,0x1fd0, | |
305 0x7f91,0xffe5,0xffa8,0x0fcc,0x3fb8,0xffe6,0xffe7,0xffaa,0xffe8,0xffe9,0xffea,0xffeb, | |
306 0xffac,0xffec,0xffed,0xffee,0xffaf,0xffaf,0xffae,0x7f88,0x7f89,0xffaf,0xffaf,0xffef, | |
307 0xfff0,0xfff1,0xfff2,0xffb4,0xfff3,0xfff4,0xfff5,0xfff6,0xffb6,0xfff7,0xfff8,0xfff9, | |
308 0xffba,0xffba,0xfffa,0xfffb,0xffbd,0xffbe,0xffbe,0xffbb,0xffbc,0xffbd,0xffbe,0xffbe, | |
309 0xfffc,0xfffd,0xffb3,0xffb4,0xffb4,0xfffe,0xffff, | |
310 }; | |
311 | |
312 static const uint8_t cvh_huffbits4[246] = { | |
313 2, 4, 7, 10, 4, 5, 7, 10, 7, 8, 10, 14, | |
314 11, 11, 15, 15, 4, 5, 9, 12, 5, 5, 8, 12, | |
315 8, 7, 10, 15, 11, 11, 15, 15, 7, 9, 12, 15, | |
316 8, 8, 12, 15, 10, 10, 13, 15, 14, 14, 15, 0, | |
317 11, 13, 15, 15, 11, 13, 15, 15, 14, 15, 15, 0, | |
318 15, 15, 0, 0, 4, 5, 9, 13, 5, 6, 9, 13, | |
319 9, 9, 11, 15, 14, 13, 15, 15, 4, 6, 9, 12, | |
320 5, 6, 9, 13, 9, 8, 11, 15, 13, 12, 15, 15, | |
321 7, 9, 12, 15, 7, 8, 11, 15, 10, 10, 14, 15, | |
322 14, 15, 15, 0, 10, 12, 15, 15, 11, 13, 15, 15, | |
323 15, 15, 15, 0, 15, 15, 0, 0, 6, 9, 13, 14, | |
324 8, 9, 12, 15, 12, 12, 15, 15, 15, 15, 15, 0, | |
325 7, 9, 13, 15, 8, 9, 12, 15, 11, 12, 15, 15, | |
326 15, 15, 15, 0, 9, 11, 15, 15, 9, 11, 15, 15, | |
327 14, 14, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0, | |
328 14, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0, | |
329 9, 12, 15, 15, 12, 13, 15, 15, 15, 15, 15, 0, | |
330 15, 15, 0, 0, 10, 12, 15, 15, 12, 14, 15, 15, | |
331 15, 15, 15, 0, 15, 15, 0, 0, 14, 15, 15, 0, | |
332 15, 15, 15, 0, 15, 15, 0, 0, 0, 0, 0, 0, | |
333 15, 15, 0, 0, 15, 15, | |
334 }; | |
335 | |
336 | |
337 static const uint16_t cvh_huffcodes4[246] = { | |
338 0x0000,0x0004,0x006c,0x03e6,0x0005,0x0012,0x006d,0x03e7,0x006e,0x00e8,0x03e8,0x3fc4, | |
339 0x07e0,0x07e1,0x7fa4,0x7fa5,0x0006,0x0013,0x01e2,0x0fda,0x0014,0x0015,0x00e9,0x0fdb, | |
340 0x00ea,0x006f,0x03e9,0x7fa6,0x07e2,0x07e3,0x7fa7,0x7fa8,0x0070,0x01e3,0x0fdc,0x7fa9, | |
341 0x00eb,0x00ec,0x0fdd,0x7faa,0x03ea,0x03eb,0x1fd6,0x7fab,0x3fc5,0x3fc6,0x7fac,0x1fd6, | |
342 0x07e4,0x1fd7,0x7fad,0x7fae,0x07e5,0x1fd8,0x7faf,0x7fb0,0x3fc7,0x7fb1,0x7fb2,0x1fd6, | |
343 0x7fb3,0x7fb4,0x1fd6,0x1fd6,0x0007,0x0016,0x01e4,0x1fd9,0x0017,0x0032,0x01e5,0x1fda, | |
344 0x01e6,0x01e7,0x07e6,0x7fb5,0x3fc8,0x1fdb,0x7fb6,0x7fb7,0x0008,0x0033,0x01e8,0x0fde, | |
345 0x0018,0x0034,0x01e9,0x1fdc,0x01ea,0x00ed,0x07e7,0x7fb8,0x1fdd,0x0fdf,0x7fb9,0x7fba, | |
346 0x0071,0x01eb,0x0fe0,0x7fbb,0x0072,0x00ee,0x07e8,0x7fbc,0x03ec,0x03ed,0x3fc9,0x7fbd, | |
347 0x3fca,0x7fbe,0x7fbf,0x3fc9,0x03ee,0x0fe1,0x7fc0,0x7fc1,0x07e9,0x1fde,0x7fc2,0x7fc3, | |
348 0x7fc4,0x7fc5,0x7fc6,0x3fc9,0x7fc7,0x7fc8,0x3fc9,0x3fc9,0x0035,0x01ec,0x1fdf,0x3fcb, | |
349 0x00ef,0x01ed,0x0fe2,0x7fc9,0x0fe3,0x0fe4,0x7fca,0x7fcb,0x7fcc,0x7fcd,0x7fce,0x7fca, | |
350 0x0073,0x01ee,0x1fe0,0x7fcf,0x00f0,0x01ef,0x0fe5,0x7fd0,0x07ea,0x0fe6,0x7fd1,0x7fd2, | |
351 0x7fd3,0x7fd4,0x7fd5,0x7fd1,0x01f0,0x07eb,0x7fd6,0x7fd7,0x01f1,0x07ec,0x7fd8,0x7fd9, | |
352 0x3fcc,0x3fcd,0x7fda,0x7fda,0x7fdb,0x7fdc,0x7fda,0x7fda,0x3fce,0x7fdd,0x7fde,0x7fd6, | |
353 0x3fcf,0x7fdf,0x7fe0,0x7fd8,0x7fe1,0x7fe2,0x7fda,0x7fda,0x3fcc,0x3fcd,0x7fda,0x7fda, | |
354 0x01f2,0x0fe7,0x7fe3,0x7fe4,0x0fe8,0x1fe1,0x7fe5,0x7fe6,0x7fe7,0x7fe8,0x7fe9,0x7fca, | |
355 0x7fea,0x7feb,0x7fca,0x7fca,0x03ef,0x0fe9,0x7fec,0x7fed,0x0fea,0x3fd0,0x7fee,0x7fef, | |
356 0x7ff0,0x7ff1,0x7ff2,0x7fd1,0x7ff3,0x7ff4,0x7fd1,0x7fd1,0x3fd1,0x7ff5,0x7ff6,0x7fd6, | |
357 0x7ff7,0x7ff8,0x7ff9,0x7fd8,0x7ffa,0x7ffb,0x7fda,0x7fda,0x3fcc,0x3fcd,0x7fda,0x7fda, | |
358 0x7ffc,0x7ffd,0x7fd6,0x7fd6,0x7ffe,0x7fff, | |
359 }; | |
360 | |
361 | |
362 static const uint8_t cvh_huffbits5[230] = { | |
363 2, 4, 8, 4, 5, 9, 9, 10, 14, 4, 6, 11, | |
364 5, 6, 12, 10, 11, 15, 9, 11, 15, 10, 13, 15, | |
365 14, 15, 0, 4, 6, 12, 6, 7, 12, 12, 12, 15, | |
366 5, 7, 13, 6, 7, 13, 12, 13, 15, 10, 12, 15, | |
367 11, 13, 15, 15, 15, 0, 8, 13, 15, 11, 12, 15, | |
368 15, 15, 0, 10, 13, 15, 12, 15, 15, 15, 15, 0, | |
369 15, 15, 0, 15, 15, 0, 0, 0, 0, 4, 5, 11, | |
370 5, 7, 12, 11, 12, 15, 6, 7, 13, 7, 8, 14, | |
371 12, 14, 15, 11, 13, 15, 12, 13, 15, 15, 15, 0, | |
372 5, 6, 13, 7, 8, 15, 12, 14, 15, 6, 8, 14, | |
373 7, 8, 15, 14, 15, 15, 12, 12, 15, 12, 13, 15, | |
374 15, 15, 0, 9, 13, 15, 12, 13, 15, 15, 15, 0, | |
375 11, 13, 15, 13, 13, 15, 15, 15, 0, 14, 15, 0, | |
376 15, 15, 0, 0, 0, 0, 8, 10, 15, 11, 12, 15, | |
377 15, 15, 0, 10, 12, 15, 12, 13, 15, 15, 15, 0, | |
378 14, 15, 0, 15, 15, 0, 0, 0, 0, 8, 12, 15, | |
379 12, 13, 15, 15, 15, 0, 11, 13, 15, 13, 15, 15, | |
380 15, 15, 0, 15, 15, 0, 15, 15, 0, 0, 0, 0, | |
381 14, 15, 0, 15, 15, 0, 0, 0, 0, 15, 15, 0, | |
382 15, 15, | |
383 }; | |
384 | |
385 | |
386 | |
387 static const uint16_t cvh_huffcodes5[230] = { | |
388 0x0000,0x0004,0x00f0,0x0005,0x0012,0x01f0,0x01f1,0x03e8,0x3fce,0x0006,0x0030,0x07de, | |
389 0x0013,0x0031,0x0fd2,0x03e9,0x07df,0x7fb0,0x01f2,0x07e0,0x7fb1,0x03ea,0x1fd2,0x7fb2, | |
390 0x3fcf,0x7fb3,0x0031,0x0007,0x0032,0x0fd3,0x0033,0x0070,0x0fd4,0x0fd5,0x0fd6,0x7fb4, | |
391 0x0014,0x0071,0x1fd3,0x0034,0x0072,0x1fd4,0x0fd7,0x1fd5,0x7fb5,0x03eb,0x0fd8,0x7fb6, | |
392 0x07e1,0x1fd6,0x7fb7,0x7fb8,0x7fb9,0x0072,0x00f1,0x1fd7,0x7fba,0x07e2,0x0fd9,0x7fbb, | |
393 0x7fbc,0x7fbd,0x0070,0x03ec,0x1fd8,0x7fbe,0x0fda,0x7fbf,0x7fc0,0x7fc1,0x7fc2,0x0072, | |
394 0x7fc3,0x7fc4,0x0071,0x7fc5,0x7fc6,0x0072,0x0034,0x0072,0x0072,0x0008,0x0015,0x07e3, | |
395 0x0016,0x0073,0x0fdb,0x07e4,0x0fdc,0x7fc7,0x0035,0x0074,0x1fd9,0x0075,0x00f2,0x3fd0, | |
396 0x0fdd,0x3fd1,0x7fc8,0x07e5,0x1fda,0x7fc9,0x0fde,0x1fdb,0x7fca,0x7fcb,0x7fcc,0x00f2, | |
397 0x0017,0x0036,0x1fdc,0x0076,0x00f3,0x7fcd,0x0fdf,0x3fd2,0x7fce,0x0037,0x00f4,0x3fd3, | |
398 0x0077,0x00f5,0x7fcf,0x3fd4,0x7fd0,0x7fd1,0x0fe0,0x0fe1,0x7fd2,0x0fe2,0x1fdd,0x7fd3, | |
399 0x7fd4,0x7fd5,0x00f5,0x01f3,0x1fde,0x7fd6,0x0fe3,0x1fdf,0x7fd7,0x7fd8,0x7fd9,0x00f3, | |
400 0x07e6,0x1fe0,0x7fda,0x1fe1,0x1fe2,0x7fdb,0x7fdc,0x7fdd,0x00f5,0x3fd5,0x7fde,0x00f4, | |
401 0x7fdf,0x7fe0,0x00f5,0x0077,0x00f5,0x00f5,0x00f6,0x03ed,0x7fe1,0x07e7,0x0fe4,0x7fe2, | |
402 0x7fe3,0x7fe4,0x0073,0x03ee,0x0fe5,0x7fe5,0x0fe6,0x1fe3,0x7fe6,0x7fe7,0x7fe8,0x00f2, | |
403 0x3fd6,0x7fe9,0x0074,0x7fea,0x7feb,0x00f2,0x0075,0x00f2,0x00f2,0x00f7,0x0fe7,0x7fec, | |
404 0x0fe8,0x1fe4,0x7fed,0x7fee,0x7fef,0x00f3,0x07e8,0x1fe5,0x7ff0,0x1fe6,0x7ff1,0x7ff2, | |
405 0x7ff3,0x7ff4,0x00f5,0x7ff5,0x7ff6,0x00f4,0x7ff7,0x7ff8,0x00f5,0x0077,0x00f5,0x00f5, | |
406 0x3fd7,0x7ff9,0x0036,0x7ffa,0x7ffb,0x00f3,0x0076,0x00f3,0x00f3,0x7ffc,0x7ffd,0x0000, | |
407 0x7ffe,0x7fff, | |
408 }; | |
409 | |
410 | |
411 static const uint8_t cvh_huffbits6[32] = { | |
412 1, 4, 4, 6, 4, 6, 6, 8, 4, 6, 6, 8, | |
413 6, 9, 8, 10, 4, 6, 7, 8, 6, 9, 8, 11, | |
414 6, 9, 8, 10, 8, 10, 9, 11, | |
415 }; | |
416 | |
417 static const uint16_t cvh_huffcodes6[32] = { | |
418 0x0000,0x0008,0x0009,0x0034,0x000a,0x0035,0x0036,0x00f6,0x000b,0x0037,0x0038,0x00f7, | |
419 0x0039,0x01fa,0x00f8,0x03fc,0x000c,0x003a,0x007a,0x00f9,0x003b,0x01fb,0x00fa,0x07fe, | |
420 0x003c,0x01fc,0x00fb,0x03fd,0x00fc,0x03fe,0x01fd,0x07ff, | |
421 }; | |
422 | |
423 static const uint16_t* cvh_huffcodes[7] = { | |
424 cvh_huffcodes0, cvh_huffcodes1, cvh_huffcodes2, cvh_huffcodes3, | |
425 cvh_huffcodes4, cvh_huffcodes5, cvh_huffcodes6, | |
426 }; | |
427 | |
428 static const uint8_t* cvh_huffbits[7] = { | |
429 cvh_huffbits0, cvh_huffbits1, cvh_huffbits2, cvh_huffbits3, | |
430 cvh_huffbits4, cvh_huffbits5, cvh_huffbits6, | |
431 }; | |
432 | |
433 | |
434 static const uint16_t ccpl_huffcodes2[3] = { | |
435 0x02,0x00,0x03, | |
436 }; | |
437 | |
438 static const uint16_t ccpl_huffcodes3[7] = { | |
439 0x3e,0x1e,0x02,0x00,0x06,0x0e,0x3f, | |
440 }; | |
441 | |
442 static const uint16_t ccpl_huffcodes4[15] = { | |
443 0xfc,0xfd,0x7c,0x3c,0x1c,0x0c,0x04,0x00,0x05,0x0d,0x1d,0x3d, | |
444 0x7d,0xfe,0xff, | |
445 }; | |
446 | |
447 static const uint16_t ccpl_huffcodes5[31] = { | |
448 0x03f8,0x03f9,0x03fa,0x03fb,0x01f8,0x01f9,0x00f8,0x00f9,0x0078,0x0079,0x0038,0x0039, | |
449 0x0018,0x0019,0x0004,0x0000,0x0005,0x001a,0x001b,0x003a,0x003b,0x007a,0x007b,0x00fa, | |
450 0x00fb,0x01fa,0x01fb,0x03fc,0x03fd,0x03fe,0x03ff, | |
451 }; | |
452 | |
453 static const uint16_t ccpl_huffcodes6[63] = { | |
454 0x0004,0x0005,0x0005,0x0006,0x0006,0x0007,0x0007,0x0007,0x0007,0x0008,0x0008,0x0008, | |
455 0x0008,0x0009,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b, | |
456 0x000b,0x000b,0x000c,0x000d,0x000e,0x000e,0x0010,0x0000,0x000a,0x0018,0x0019,0x0036, | |
457 0x0037,0x0074,0x0075,0x0076,0x0077,0x00f4,0x00f5,0x00f6,0x00f7,0x01f5,0x01f6,0x01f7, | |
458 0x01f8,0x03f6,0x03f7,0x03f8,0x03f9,0x03fa,0x07fa,0x07fb,0x07fc,0x07fd,0x0ffd,0x1ffd, | |
459 0x3ffd,0x3ffe,0xffff, | |
460 }; | |
461 | |
462 static const uint8_t ccpl_huffbits2[3] = { | |
463 2,1,2, | |
464 }; | |
465 | |
466 static const uint8_t ccpl_huffbits3[7] = { | |
467 6,5,2,1,3,4,6, | |
468 }; | |
469 | |
470 static const uint8_t ccpl_huffbits4[15] = { | |
471 8,8,7,6,5,4,3,1,3,4,5,6,7,8,8, | |
472 }; | |
473 | |
474 static const uint8_t ccpl_huffbits5[31] = { | |
475 10,10,10,10,9,9,8,8,7,7,6,6, | |
476 5,5,3,1,3,5,5,6,6,7,7,8, | |
477 8,9,9,10,10,10,10, | |
478 }; | |
479 | |
480 static const uint8_t ccpl_huffbits6[63] = { | |
481 16,15,14,13,12,11,11,11,11,10,10,10, | |
482 10,9,9,9,9,9,8,8,8,8,7,7, | |
483 7,7,6,6,5,5,3,1,4,5,5,6, | |
484 6,7,7,7,7,8,8,8,8,9,9,9, | |
485 9,10,10,10,10,10,11,11,11,11,12,13, | |
486 14,14,16, | |
487 }; | |
488 | |
489 static const uint16_t* ccpl_huffcodes[5] = { | |
490 ccpl_huffcodes2,ccpl_huffcodes3, | |
491 ccpl_huffcodes4,ccpl_huffcodes5,ccpl_huffcodes6 | |
492 }; | |
493 | |
494 static const uint8_t* ccpl_huffbits[5] = { | |
495 ccpl_huffbits2,ccpl_huffbits3, | |
496 ccpl_huffbits4,ccpl_huffbits5,ccpl_huffbits6 | |
497 }; | |
498 | |
499 | |
500 //Coupling tables | |
501 | |
502 static const int cplband[51] = { | |
503 0,1,2,3,4,5,6,7,8,9, | |
504 10,11,11,12,12,13,13,14,14,14, | |
505 15,15,15,15,16,16,16,16,16,17, | |
506 17,17,17,17,17,18,18,18,18,18, | |
507 18,18,19,19,19,19,19,19,19,19, | |
508 19, | |
509 }; | |
510 | |
511 static const float cplscale2[3] = { | |
512 0.953020632266998,0.70710676908493,0.302905440330505, | |
513 }; | |
514 | |
515 static const float cplscale3[7] = { | |
516 0.981279790401459,0.936997592449188,0.875934481620789,0.70710676908493, | |
517 0.482430040836334,0.349335819482803,0.192587479948997, | |
518 }; | |
519 | |
520 static const float cplscale4[15] = { | |
521 0.991486728191376,0.973249018192291,0.953020632266998,0.930133521556854, | |
522 0.903453230857849,0.870746195316315,0.826180458068848,0.70710676908493, | |
523 0.563405573368073,0.491732746362686,0.428686618804932,0.367221474647522, | |
524 0.302905440330505,0.229752898216248,0.130207896232605, | |
525 }; | |
526 | |
527 static const float cplscale5[31] = { | |
528 0.995926380157471,0.987517595291138,0.978726446628571,0.969505727291107, | |
529 0.95979779958725,0.949531257152557,0.938616216182709,0.926936149597168, | |
530 0.914336204528809,0.900602877140045,0.885426938533783,0.868331849575043, | |
531 0.84851086139679,0.824381768703461,0.791833400726318,0.70710676908493, | |
532 0.610737144947052,0.566034197807312,0.529177963733673,0.495983630418777, | |
533 0.464778542518616,0.434642940759659,0.404955863952637,0.375219136476517, | |
534 0.344963222742081,0.313672333955765,0.280692428350449,0.245068684220314, | |
535 0.205169528722763,0.157508864998817,0.0901700109243393, | |
536 }; | |
537 | |
538 static const float cplscale6[63] = { | |
539 0.998005926609039,0.993956744670868,0.989822506904602,0.985598564147949, | |
540 0.981279790401459,0.976860702037811,0.972335040569305,0.967696130275726, | |
541 0.962936460971832,0.958047747612000,0.953020632266998,0.947844684123993, | |
542 0.942508161067963,0.936997592449188,0.931297719478607,0.925390899181366, | |
543 0.919256627559662,0.912870943546295,0.906205296516418,0.899225592613220, | |
544 0.891890347003937,0.884148240089417,0.875934481620789,0.867165684700012, | |
545 0.857730865478516,0.847477376461029,0.836184680461884,0.823513329029083, | |
546 0.808890223503113,0.791194140911102,0.767520070075989,0.707106769084930, | |
547 0.641024887561798,0.611565053462982,0.587959706783295,0.567296981811523, | |
548 0.548448026180267,0.530831515789032,0.514098942279816,0.498019754886627, | |
549 0.482430040836334,0.467206478118896,0.452251672744751,0.437485188245773, | |
550 0.422837972640991,0.408248275518417,0.393658757209778,0.379014074802399, | |
551 0.364258885383606,0.349335819482803,0.334183186292648,0.318732559680939, | |
552 0.302905440330505,0.286608695983887,0.269728302955627,0.252119421958923, | |
553 0.233590632677078,0.213876649737358,0.192587479948997,0.169101938605309, | |
554 0.142307326197624,0.109772264957428,0.0631198287010193, | |
555 }; | |
556 | |
557 static const float* cplscales[5] = { | |
558 cplscale2, cplscale3, cplscale4, cplscale5, cplscale6, | |
559 }; |