author | kergoth <kergoth> | 2002-01-25 22:14:26 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2002-01-25 22:14:26 (UTC) |
commit | 15318cad33835e4e2dc620d033e43cd930676cdd (patch) (unidiff) | |
tree | c2fa0399a2c47fda8e2cd0092c73a809d17f68eb /core/multimedia/opieplayer/libmpeg3/video/vlc.c | |
download | opie-15318cad33835e4e2dc620d033e43cd930676cdd.zip opie-15318cad33835e4e2dc620d033e43cd930676cdd.tar.gz opie-15318cad33835e4e2dc620d033e43cd930676cdd.tar.bz2 |
Initial revision
Diffstat (limited to 'core/multimedia/opieplayer/libmpeg3/video/vlc.c') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/multimedia/opieplayer/libmpeg3/video/vlc.c | 421 |
1 files changed, 421 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/libmpeg3/video/vlc.c b/core/multimedia/opieplayer/libmpeg3/video/vlc.c new file mode 100644 index 0000000..4328d8a --- a/dev/null +++ b/core/multimedia/opieplayer/libmpeg3/video/vlc.c | |||
@@ -0,0 +1,421 @@ | |||
1 | #include "mpeg3video.h" | ||
2 | #include "vlc.h" | ||
3 | |||
4 | /* variable length code tables */ | ||
5 | |||
6 | /* Table B-3, mb_type in P-pictures, codes 001..1xx */ | ||
7 | mpeg3_VLCtab_t mpeg3_PMBtab0[8] = { | ||
8 | {ERROR,0}, | ||
9 | {MB_FORWARD,3}, | ||
10 | {MB_PATTERN,2}, {MB_PATTERN,2}, | ||
11 | {MB_FORWARD|MB_PATTERN,1}, {MB_FORWARD|MB_PATTERN,1}, | ||
12 | {MB_FORWARD|MB_PATTERN,1}, {MB_FORWARD|MB_PATTERN,1} | ||
13 | }; | ||
14 | |||
15 | /* Table B-3, mb_type in P-pictures, codes 000001..00011x */ | ||
16 | mpeg3_VLCtab_t mpeg3_PMBtab1[8] = { | ||
17 | {ERROR,0}, | ||
18 | {MB_QUANT|MB_INTRA,6}, | ||
19 | {MB_QUANT|MB_PATTERN,5}, {MB_QUANT|MB_PATTERN,5}, | ||
20 | {MB_QUANT|MB_FORWARD|MB_PATTERN,5}, {MB_QUANT|MB_FORWARD|MB_PATTERN,5}, | ||
21 | {MB_INTRA,5}, {MB_INTRA,5} | ||
22 | }; | ||
23 | |||
24 | /* Table B-4, mb_type in B-pictures, codes 0010..11xx */ | ||
25 | mpeg3_VLCtab_t mpeg3_BMBtab0[16] = { | ||
26 | {ERROR,0}, {ERROR,0}, | ||
27 | {MB_FORWARD,4}, | ||
28 | {MB_FORWARD|MB_PATTERN,4}, | ||
29 | {MB_BACKWARD,3}, {MB_BACKWARD,3}, | ||
30 | {MB_BACKWARD|MB_PATTERN,3}, {MB_BACKWARD|MB_PATTERN,3}, | ||
31 | {MB_FORWARD|MB_BACKWARD,2}, {MB_FORWARD|MB_BACKWARD,2}, | ||
32 | {MB_FORWARD|MB_BACKWARD,2}, {MB_FORWARD|MB_BACKWARD,2}, | ||
33 | {MB_FORWARD|MB_BACKWARD|MB_PATTERN,2}, | ||
34 | {MB_FORWARD|MB_BACKWARD|MB_PATTERN,2}, | ||
35 | {MB_FORWARD|MB_BACKWARD|MB_PATTERN,2}, | ||
36 | {MB_FORWARD|MB_BACKWARD|MB_PATTERN,2} | ||
37 | }; | ||
38 | |||
39 | /* Table B-4, mb_type in B-pictures, codes 000001..00011x */ | ||
40 | mpeg3_VLCtab_t mpeg3_BMBtab1[8] = { | ||
41 | {ERROR,0}, | ||
42 | {MB_QUANT|MB_INTRA,6}, | ||
43 | {MB_QUANT|MB_BACKWARD|MB_PATTERN,6}, | ||
44 | {MB_QUANT|MB_FORWARD|MB_PATTERN,6}, | ||
45 | {MB_QUANT|MB_FORWARD|MB_BACKWARD|MB_PATTERN,5}, | ||
46 | {MB_QUANT|MB_FORWARD|MB_BACKWARD|MB_PATTERN,5}, | ||
47 | {MB_INTRA,5}, {MB_INTRA,5} | ||
48 | }; | ||
49 | |||
50 | /* Table B-5, mb_type in spat. scal. I-pictures, codes 0001..1xxx */ | ||
51 | mpeg3_VLCtab_t mpeg3_spIMBtab[16] = { | ||
52 | {ERROR,0}, | ||
53 | {MB_CLASS4,4}, | ||
54 | {MB_QUANT|MB_INTRA,4}, | ||
55 | {MB_INTRA,4}, | ||
56 | {MB_CLASS4|MB_QUANT|MB_PATTERN,2}, {MB_CLASS4|MB_QUANT|MB_PATTERN,2}, | ||
57 | {MB_CLASS4|MB_QUANT|MB_PATTERN,2}, {MB_CLASS4|MB_QUANT|MB_PATTERN,2}, | ||
58 | {MB_CLASS4|MB_PATTERN,1}, {MB_CLASS4|MB_PATTERN,1}, | ||
59 | {MB_CLASS4|MB_PATTERN,1}, {MB_CLASS4|MB_PATTERN,1}, | ||
60 | {MB_CLASS4|MB_PATTERN,1}, {MB_CLASS4|MB_PATTERN,1}, | ||
61 | {MB_CLASS4|MB_PATTERN,1}, {MB_CLASS4|MB_PATTERN,1} | ||
62 | }; | ||
63 | |||
64 | /* Table B-6, mb_type in spat. scal. P-pictures, codes 0010..11xx */ | ||
65 | mpeg3_VLCtab_t mpeg3_spPMBtab0[16] = | ||
66 | { | ||
67 | {ERROR,0},{ERROR,0}, | ||
68 | {MB_FORWARD,4}, | ||
69 | {MB_WEIGHT|MB_FORWARD,4}, | ||
70 | {MB_QUANT|MB_FORWARD|MB_PATTERN,3}, {MB_QUANT|MB_FORWARD|MB_PATTERN,3}, | ||
71 | {MB_WEIGHT|MB_FORWARD|MB_PATTERN,3}, {MB_WEIGHT|MB_FORWARD|MB_PATTERN,3}, | ||
72 | {MB_FORWARD|MB_PATTERN,2}, {MB_FORWARD|MB_PATTERN,2}, | ||
73 | {MB_FORWARD|MB_PATTERN,2}, {MB_FORWARD|MB_PATTERN,2}, | ||
74 | {MB_WEIGHT|MB_QUANT|MB_FORWARD|MB_PATTERN,2}, | ||
75 | {MB_WEIGHT|MB_QUANT|MB_FORWARD|MB_PATTERN,2}, | ||
76 | {MB_WEIGHT|MB_QUANT|MB_FORWARD|MB_PATTERN,2}, | ||
77 | {MB_WEIGHT|MB_QUANT|MB_FORWARD|MB_PATTERN,2} | ||
78 | }; | ||
79 | |||
80 | /* Table B-6, mb_type in spat. scal. P-pictures, codes 0000010..000111x */ | ||
81 | mpeg3_VLCtab_t mpeg3_spPMBtab1[16] = { | ||
82 | {ERROR,0},{ERROR,0}, | ||
83 | {MB_CLASS4|MB_QUANT|MB_PATTERN,7}, | ||
84 | {MB_CLASS4,7}, | ||
85 | {MB_PATTERN,7}, | ||
86 | {MB_CLASS4|MB_PATTERN,7}, | ||
87 | {MB_QUANT|MB_INTRA,7}, | ||
88 | {MB_INTRA,7}, | ||
89 | {MB_QUANT|MB_PATTERN,6}, {MB_QUANT|MB_PATTERN,6}, | ||
90 | {MB_WEIGHT|MB_QUANT|MB_PATTERN,6}, {MB_WEIGHT|MB_QUANT|MB_PATTERN,6}, | ||
91 | {MB_WEIGHT,6}, {MB_WEIGHT,6}, | ||
92 | {MB_WEIGHT|MB_PATTERN,6}, {MB_WEIGHT|MB_PATTERN,6} | ||
93 | }; | ||
94 | |||
95 | /* Table B-7, mb_type in spat. scal. B-pictures, codes 0010..11xx */ | ||
96 | mpeg3_VLCtab_t mpeg3_spBMBtab0[14] = { | ||
97 | {MB_FORWARD,4}, | ||
98 | {MB_FORWARD|MB_PATTERN,4}, | ||
99 | {MB_BACKWARD,3}, {MB_BACKWARD,3}, | ||
100 | {MB_BACKWARD|MB_PATTERN,3}, {MB_BACKWARD|MB_PATTERN,3}, | ||
101 | {MB_FORWARD|MB_BACKWARD,2}, {MB_FORWARD|MB_BACKWARD,2}, | ||
102 | {MB_FORWARD|MB_BACKWARD,2}, {MB_FORWARD|MB_BACKWARD,2}, | ||
103 | {MB_FORWARD|MB_BACKWARD|MB_PATTERN,2}, | ||
104 | {MB_FORWARD|MB_BACKWARD|MB_PATTERN,2}, | ||
105 | {MB_FORWARD|MB_BACKWARD|MB_PATTERN,2}, | ||
106 | {MB_FORWARD|MB_BACKWARD|MB_PATTERN,2} | ||
107 | }; | ||
108 | |||
109 | /* Table B-7, mb_type in spat. scal. B-pictures, codes 0000100..000111x */ | ||
110 | mpeg3_VLCtab_t mpeg3_spBMBtab1[12] = { | ||
111 | {MB_QUANT|MB_FORWARD|MB_PATTERN,7}, | ||
112 | {MB_QUANT|MB_BACKWARD|MB_PATTERN,7}, | ||
113 | {MB_INTRA,7}, | ||
114 | {MB_QUANT|MB_FORWARD|MB_BACKWARD|MB_PATTERN,7}, | ||
115 | {MB_WEIGHT|MB_FORWARD,6}, {MB_WEIGHT|MB_FORWARD,6}, | ||
116 | {MB_WEIGHT|MB_FORWARD|MB_PATTERN,6}, {MB_WEIGHT|MB_FORWARD|MB_PATTERN,6}, | ||
117 | {MB_WEIGHT|MB_BACKWARD,6}, {MB_WEIGHT|MB_BACKWARD,6}, | ||
118 | {MB_WEIGHT|MB_BACKWARD|MB_PATTERN,6}, {MB_WEIGHT|MB_BACKWARD|MB_PATTERN,6} | ||
119 | }; | ||
120 | |||
121 | /* Table B-7, mb_type in spat. scal. B-pictures, codes 00000100x..000001111 */ | ||
122 | mpeg3_VLCtab_t mpeg3_spBMBtab2[8] = { | ||
123 | {MB_QUANT|MB_INTRA,8}, {MB_QUANT|MB_INTRA,8}, | ||
124 | {MB_WEIGHT|MB_QUANT|MB_FORWARD|MB_PATTERN,8}, | ||
125 | {MB_WEIGHT|MB_QUANT|MB_FORWARD|MB_PATTERN,8}, | ||
126 | {MB_WEIGHT|MB_QUANT|MB_BACKWARD|MB_PATTERN,9}, | ||
127 | {MB_CLASS4|MB_QUANT|MB_PATTERN,9}, | ||
128 | {MB_CLASS4,9}, | ||
129 | {MB_CLASS4|MB_PATTERN,9} | ||
130 | }; | ||
131 | |||
132 | /* Table B-8, mb_type in spat. scal. B-pictures, codes 001..1xx */ | ||
133 | mpeg3_VLCtab_t mpeg3_SNRMBtab[8] = { | ||
134 | {ERROR,0}, | ||
135 | {0,3}, | ||
136 | {MB_QUANT|MB_PATTERN,2}, {MB_QUANT|MB_PATTERN,2}, | ||
137 | {MB_PATTERN,1}, {MB_PATTERN,1}, {MB_PATTERN,1}, {MB_PATTERN,1} | ||
138 | }; | ||
139 | |||
140 | /* Table B-10, motion_code, codes 0001 ... 01xx */ | ||
141 | mpeg3_VLCtab_t mpeg3_MVtab0[8] = | ||
142 | { {ERROR,0}, {3,3}, {2,2}, {2,2}, {1,1}, {1,1}, {1,1}, {1,1} | ||
143 | }; | ||
144 | |||
145 | /* Table B-10, motion_code, codes 0000011 ... 000011x */ | ||
146 | mpeg3_VLCtab_t mpeg3_MVtab1[8] = | ||
147 | { {ERROR,0}, {ERROR,0}, {ERROR,0}, {7,6}, {6,6}, {5,6}, {4,5}, {4,5} | ||
148 | }; | ||
149 | |||
150 | /* Table B-10, motion_code, codes 0000001100 ... 000001011x */ | ||
151 | mpeg3_VLCtab_t mpeg3_MVtab2[12] = | ||
152 | { {16,9}, {15,9}, {14,9}, {13,9}, | ||
153 | {12,9}, {11,9}, {10,8}, {10,8}, | ||
154 | {9,8}, {9,8}, {8,8}, {8,8} | ||
155 | }; | ||
156 | |||
157 | /* Table B-9, coded_block_pattern, codes 01000 ... 111xx */ | ||
158 | mpeg3_VLCtab_t mpeg3_CBPtab0[32] = | ||
159 | { {ERROR,0}, {ERROR,0}, {ERROR,0}, {ERROR,0}, | ||
160 | {ERROR,0}, {ERROR,0}, {ERROR,0}, {ERROR,0}, | ||
161 | {62,5}, {2,5}, {61,5}, {1,5}, {56,5}, {52,5}, {44,5}, {28,5}, | ||
162 | {40,5}, {20,5}, {48,5}, {12,5}, {32,4}, {32,4}, {16,4}, {16,4}, | ||
163 | {8,4}, {8,4}, {4,4}, {4,4}, {60,3}, {60,3}, {60,3}, {60,3} | ||
164 | }; | ||
165 | |||
166 | /* Table B-9, coded_block_pattern, codes 00000100 ... 001111xx */ | ||
167 | mpeg3_VLCtab_t mpeg3_CBPtab1[64] = | ||
168 | { {ERROR,0}, {ERROR,0}, {ERROR,0}, {ERROR,0}, | ||
169 | {58,8}, {54,8}, {46,8}, {30,8}, | ||
170 | {57,8}, {53,8}, {45,8}, {29,8}, {38,8}, {26,8}, {37,8}, {25,8}, | ||
171 | {43,8}, {23,8}, {51,8}, {15,8}, {42,8}, {22,8}, {50,8}, {14,8}, | ||
172 | {41,8}, {21,8}, {49,8}, {13,8}, {35,8}, {19,8}, {11,8}, {7,8}, | ||
173 | {34,7}, {34,7}, {18,7}, {18,7}, {10,7}, {10,7}, {6,7}, {6,7}, | ||
174 | {33,7}, {33,7}, {17,7}, {17,7}, {9,7}, {9,7}, {5,7}, {5,7}, | ||
175 | {63,6}, {63,6}, {63,6}, {63,6}, {3,6}, {3,6}, {3,6}, {3,6}, | ||
176 | {36,6}, {36,6}, {36,6}, {36,6}, {24,6}, {24,6}, {24,6}, {24,6} | ||
177 | }; | ||
178 | |||
179 | /* Table B-9, coded_block_pattern, codes 000000001 ... 000000111 */ | ||
180 | mpeg3_VLCtab_t mpeg3_CBPtab2[8] = | ||
181 | { {ERROR,0}, {0,9}, {39,9}, {27,9}, {59,9}, {55,9}, {47,9}, {31,9} | ||
182 | }; | ||
183 | |||
184 | /* Table B-1, macroblock_address_increment, codes 00010 ... 011xx */ | ||
185 | mpeg3_VLCtab_t mpeg3_MBAtab1[16] = | ||
186 | { {ERROR,0}, {ERROR,0}, {7,5}, {6,5}, {5,4}, {5,4}, {4,4}, {4,4}, | ||
187 | {3,3}, {3,3}, {3,3}, {3,3}, {2,3}, {2,3}, {2,3}, {2,3} | ||
188 | }; | ||
189 | |||
190 | /* Table B-1, macroblock_address_increment, codes 00000011000 ... 0000111xxxx */ | ||
191 | mpeg3_VLCtab_t mpeg3_MBAtab2[104] = | ||
192 | { | ||
193 | {33,11}, {32,11}, {31,11}, {30,11}, {29,11}, {28,11}, {27,11}, {26,11}, | ||
194 | {25,11}, {24,11}, {23,11}, {22,11}, {21,10}, {21,10}, {20,10}, {20,10}, | ||
195 | {19,10}, {19,10}, {18,10}, {18,10}, {17,10}, {17,10}, {16,10}, {16,10}, | ||
196 | {15,8}, {15,8}, {15,8}, {15,8}, {15,8}, {15,8}, {15,8}, {15,8}, | ||
197 | {14,8}, {14,8}, {14,8}, {14,8}, {14,8}, {14,8}, {14,8}, {14,8}, | ||
198 | {13,8}, {13,8}, {13,8}, {13,8}, {13,8}, {13,8}, {13,8}, {13,8}, | ||
199 | {12,8}, {12,8}, {12,8}, {12,8}, {12,8}, {12,8}, {12,8}, {12,8}, | ||
200 | {11,8}, {11,8}, {11,8}, {11,8}, {11,8}, {11,8}, {11,8}, {11,8}, | ||
201 | {10,8}, {10,8}, {10,8}, {10,8}, {10,8}, {10,8}, {10,8}, {10,8}, | ||
202 | {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, | ||
203 | {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, | ||
204 | {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, | ||
205 | {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7} | ||
206 | }; | ||
207 | |||
208 | /* Table B-12, dct_dc_size_luminance, codes 00xxx ... 11110 */ | ||
209 | mpeg3_VLCtab_t mpeg3_DClumtab0[32] = | ||
210 | { {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, | ||
211 | {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, | ||
212 | {0, 3}, {0, 3}, {0, 3}, {0, 3}, {3, 3}, {3, 3}, {3, 3}, {3, 3}, | ||
213 | {4, 3}, {4, 3}, {4, 3}, {4, 3}, {5, 4}, {5, 4}, {6, 5}, {ERROR, 0} | ||
214 | }; | ||
215 | |||
216 | /* Table B-12, dct_dc_size_luminance, codes 111110xxx ... 111111111 */ | ||
217 | mpeg3_VLCtab_t mpeg3_DClumtab1[16] = | ||
218 | { {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, | ||
219 | {8, 7}, {8, 7}, {8, 7}, {8, 7}, {9, 8}, {9, 8}, {10,9}, {11,9} | ||
220 | }; | ||
221 | |||
222 | /* Table B-13, dct_dc_size_chrominance, codes 00xxx ... 11110 */ | ||
223 | mpeg3_VLCtab_t mpeg3_DCchromtab0[32] = | ||
224 | { {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, | ||
225 | {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, | ||
226 | {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, | ||
227 | {3, 3}, {3, 3}, {3, 3}, {3, 3}, {4, 4}, {4, 4}, {5, 5}, {ERROR, 0} | ||
228 | }; | ||
229 | |||
230 | /* Table B-13, dct_dc_size_chrominance, codes 111110xxxx ... 1111111111 */ | ||
231 | mpeg3_VLCtab_t mpeg3_DCchromtab1[32] = | ||
232 | { {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, | ||
233 | {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, | ||
234 | {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, | ||
235 | {8, 8}, {8, 8}, {8, 8}, {8, 8}, {9, 9}, {9, 9}, {10,10}, {11,10} | ||
236 | }; | ||
237 | |||
238 | /* Table B-14, DCT coefficients table zero, | ||
239 | * codes 0100 ... 1xxx (used for first (DC) coefficient) | ||
240 | */ | ||
241 | mpeg3_DCTtab_t mpeg3_DCTtabfirst[12] = | ||
242 | { | ||
243 | {0,2,4}, {2,1,4}, {1,1,3}, {1,1,3}, | ||
244 | {0,1,1}, {0,1,1}, {0,1,1}, {0,1,1}, | ||
245 | {0,1,1}, {0,1,1}, {0,1,1}, {0,1,1} | ||
246 | }; | ||
247 | |||
248 | /* Table B-14, DCT coefficients table zero, | ||
249 | * codes 0100 ... 1xxx (used for all other coefficients) | ||
250 | */ | ||
251 | mpeg3_DCTtab_t mpeg3_DCTtabnext[12] = | ||
252 | { | ||
253 | {0,2,4}, {2,1,4}, {1,1,3}, {1,1,3}, | ||
254 | {64,0,2}, {64,0,2}, {64,0,2}, {64,0,2}, /* EOB */ | ||
255 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2} | ||
256 | }; | ||
257 | |||
258 | /* Table B-14, DCT coefficients table zero, | ||
259 | * codes 000001xx ... 00111xxx | ||
260 | */ | ||
261 | mpeg3_DCTtab_t mpeg3_DCTtab0[60] = | ||
262 | { | ||
263 | {65,0,6}, {65,0,6}, {65,0,6}, {65,0,6}, /* Escape */ | ||
264 | {2,2,7}, {2,2,7}, {9,1,7}, {9,1,7}, | ||
265 | {0,4,7}, {0,4,7}, {8,1,7}, {8,1,7}, | ||
266 | {7,1,6}, {7,1,6}, {7,1,6}, {7,1,6}, | ||
267 | {6,1,6}, {6,1,6}, {6,1,6}, {6,1,6}, | ||
268 | {1,2,6}, {1,2,6}, {1,2,6}, {1,2,6}, | ||
269 | {5,1,6}, {5,1,6}, {5,1,6}, {5,1,6}, | ||
270 | {13,1,8}, {0,6,8}, {12,1,8}, {11,1,8}, | ||
271 | {3,2,8}, {1,3,8}, {0,5,8}, {10,1,8}, | ||
272 | {0,3,5}, {0,3,5}, {0,3,5}, {0,3,5}, | ||
273 | {0,3,5}, {0,3,5}, {0,3,5}, {0,3,5}, | ||
274 | {4,1,5}, {4,1,5}, {4,1,5}, {4,1,5}, | ||
275 | {4,1,5}, {4,1,5}, {4,1,5}, {4,1,5}, | ||
276 | {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5}, | ||
277 | {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5} | ||
278 | }; | ||
279 | |||
280 | /* Table B-15, DCT coefficients table one, | ||
281 | * codes 000001xx ... 11111111 | ||
282 | */ | ||
283 | mpeg3_DCTtab_t mpeg3_DCTtab0a[252] = | ||
284 | { | ||
285 | {65,0,6}, {65,0,6}, {65,0,6}, {65,0,6}, /* Escape */ | ||
286 | {7,1,7}, {7,1,7}, {8,1,7}, {8,1,7}, | ||
287 | {6,1,7}, {6,1,7}, {2,2,7}, {2,2,7}, | ||
288 | {0,7,6}, {0,7,6}, {0,7,6}, {0,7,6}, | ||
289 | {0,6,6}, {0,6,6}, {0,6,6}, {0,6,6}, | ||
290 | {4,1,6}, {4,1,6}, {4,1,6}, {4,1,6}, | ||
291 | {5,1,6}, {5,1,6}, {5,1,6}, {5,1,6}, | ||
292 | {1,5,8}, {11,1,8}, {0,11,8}, {0,10,8}, | ||
293 | {13,1,8}, {12,1,8}, {3,2,8}, {1,4,8}, | ||
294 | {2,1,5}, {2,1,5}, {2,1,5}, {2,1,5}, | ||
295 | {2,1,5}, {2,1,5}, {2,1,5}, {2,1,5}, | ||
296 | {1,2,5}, {1,2,5}, {1,2,5}, {1,2,5}, | ||
297 | {1,2,5}, {1,2,5}, {1,2,5}, {1,2,5}, | ||
298 | {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5}, | ||
299 | {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5}, | ||
300 | {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3}, | ||
301 | {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3}, | ||
302 | {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3}, | ||
303 | {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3}, | ||
304 | {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3}, | ||
305 | {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3}, | ||
306 | {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3}, | ||
307 | {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3}, | ||
308 | {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4}, /* EOB */ | ||
309 | {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4}, | ||
310 | {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4}, | ||
311 | {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4}, | ||
312 | {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4}, | ||
313 | {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4}, | ||
314 | {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4}, | ||
315 | {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4}, | ||
316 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
317 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
318 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
319 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
320 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
321 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
322 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
323 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
324 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
325 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
326 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
327 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
328 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
329 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
330 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
331 | {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}, | ||
332 | {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3}, | ||
333 | {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3}, | ||
334 | {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3}, | ||
335 | {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3}, | ||
336 | {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3}, | ||
337 | {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3}, | ||
338 | {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3}, | ||
339 | {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3}, | ||
340 | {0,4,5}, {0,4,5}, {0,4,5}, {0,4,5}, | ||
341 | {0,4,5}, {0,4,5}, {0,4,5}, {0,4,5}, | ||
342 | {0,5,5}, {0,5,5}, {0,5,5}, {0,5,5}, | ||
343 | {0,5,5}, {0,5,5}, {0,5,5}, {0,5,5}, | ||
344 | {9,1,7}, {9,1,7}, {1,3,7}, {1,3,7}, | ||
345 | {10,1,7}, {10,1,7}, {0,8,7}, {0,8,7}, | ||
346 | {0,9,7}, {0,9,7}, {0,12,8}, {0,13,8}, | ||
347 | {2,3,8}, {4,2,8}, {0,14,8}, {0,15,8} | ||
348 | }; | ||
349 | |||
350 | /* Table B-14, DCT coefficients table zero, | ||
351 | * codes 0000001000 ... 0000001111 | ||
352 | */ | ||
353 | mpeg3_DCTtab_t mpeg3_DCTtab1[8] = | ||
354 | { | ||
355 | {16,1,10}, {5,2,10}, {0,7,10}, {2,3,10}, | ||
356 | {1,4,10}, {15,1,10}, {14,1,10}, {4,2,10} | ||
357 | }; | ||
358 | |||
359 | /* Table B-15, DCT coefficients table one, | ||
360 | * codes 000000100x ... 000000111x | ||
361 | */ | ||
362 | mpeg3_DCTtab_t mpeg3_DCTtab1a[8] = | ||
363 | { | ||
364 | {5,2,9}, {5,2,9}, {14,1,9}, {14,1,9}, | ||
365 | {2,4,10}, {16,1,10}, {15,1,9}, {15,1,9} | ||
366 | }; | ||
367 | |||
368 | /* Table B-14/15, DCT coefficients table zero / one, | ||
369 | * codes 000000010000 ... 000000011111 | ||
370 | */ | ||
371 | mpeg3_DCTtab_t mpeg3_DCTtab2[16] = | ||
372 | { | ||
373 | {0,11,12}, {8,2,12}, {4,3,12}, {0,10,12}, | ||
374 | {2,4,12}, {7,2,12}, {21,1,12}, {20,1,12}, | ||
375 | {0,9,12}, {19,1,12}, {18,1,12}, {1,5,12}, | ||
376 | {3,3,12}, {0,8,12}, {6,2,12}, {17,1,12} | ||
377 | }; | ||
378 | |||
379 | /* Table B-14/15, DCT coefficients table zero / one, | ||
380 | * codes 0000000010000 ... 0000000011111 | ||
381 | */ | ||
382 | mpeg3_DCTtab_t mpeg3_DCTtab3[16] = | ||
383 | { | ||
384 | {10,2,13}, {9,2,13}, {5,3,13}, {3,4,13}, | ||
385 | {2,5,13}, {1,7,13}, {1,6,13}, {0,15,13}, | ||
386 | {0,14,13}, {0,13,13}, {0,12,13}, {26,1,13}, | ||
387 | {25,1,13}, {24,1,13}, {23,1,13}, {22,1,13} | ||
388 | }; | ||
389 | |||
390 | /* Table B-14/15, DCT coefficients table zero / one, | ||
391 | * codes 00000000010000 ... 00000000011111 | ||
392 | */ | ||
393 | mpeg3_DCTtab_t mpeg3_DCTtab4[16] = | ||
394 | { | ||
395 | {0,31,14}, {0,30,14}, {0,29,14}, {0,28,14}, | ||
396 | {0,27,14}, {0,26,14}, {0,25,14}, {0,24,14}, | ||
397 | {0,23,14}, {0,22,14}, {0,21,14}, {0,20,14}, | ||
398 | {0,19,14}, {0,18,14}, {0,17,14}, {0,16,14} | ||
399 | }; | ||
400 | |||
401 | /* Table B-14/15, DCT coefficients table zero / one, | ||
402 | * codes 000000000010000 ... 000000000011111 | ||
403 | */ | ||
404 | mpeg3_DCTtab_t mpeg3_DCTtab5[16] = | ||
405 | { | ||
406 | {0,40,15}, {0,39,15}, {0,38,15}, {0,37,15}, | ||
407 | {0,36,15}, {0,35,15}, {0,34,15}, {0,33,15}, | ||
408 | {0,32,15}, {1,14,15}, {1,13,15}, {1,12,15}, | ||
409 | {1,11,15}, {1,10,15}, {1,9,15}, {1,8,15} | ||
410 | }; | ||
411 | |||
412 | /* Table B-14/15, DCT coefficients table zero / one, | ||
413 | * codes 0000000000010000 ... 0000000000011111 | ||
414 | */ | ||
415 | mpeg3_DCTtab_t mpeg3_DCTtab6[16] = | ||
416 | { | ||
417 | {1,18,16}, {1,17,16}, {1,16,16}, {1,15,16}, | ||
418 | {6,3,16}, {16,2,16}, {15,2,16}, {14,2,16}, | ||
419 | {13,2,16}, {12,2,16}, {11,2,16}, {31,1,16}, | ||
420 | {30,1,16}, {29,1,16}, {28,1,16}, {27,1,16} | ||
421 | }; | ||