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