armVCM4P2_Huff_Tables_VLC.c revision 0c1bc742181ded4930842b46e9507372f0b1b963
1 /**
2 *
3 * File Name:  armVCM4P2_Huff_Tables_VLC.c
4 * OpenMAX DL: v1.0.2
5 * Revision:   9641
6 * Date:       Thursday, February 7, 2008
7 *
8 * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
9 *
10 *
11 *
12 * File:        armVCM4P2_Huff_Tables_VLC.c
13 * Description: Contains all the Huffman tables used in MPEG4 codec
14 *
15 */
16
17#include "omxtypes.h"
18#include "armOMX.h"
19
20#include "armCOMM_Bitstream.h"
21
22/*
23*  For Intra
24*  last = 0
25*/
26const OMX_U8 armVCM4P2_IntraL0RunIdx[11] =
27{
28    0, 27, 37, 42, 46, 49, 52,
29    55, 58, 60, 62
30};
31
32/* Entry defined for all values
33*  for run = 0 to 14
34*  Note: the last entry is to terminate while decoding
35*/
36const ARM_VLC32 armVCM4P2_IntraVlcL0[68] =
37{
38        {2,    2},
39        {3,    6},
40        {4,    15},
41        {5,    13},
42        {5,    12},
43        {6,    21},
44        {6,    19},
45        {6,    18},
46        {7,    23},
47        {8,    31},
48        {8,    30},
49        {8,    29},
50        {9,    37},
51        {9,    36},
52        {9,    35},
53        {9,    33},
54        {10,   33},
55        {10,   32},
56        {10,   15},
57        {10,   14},
58        {11,    7},
59        {11,    6},
60        {11,   32},
61        {11,   33},
62        {12,   80},
63        {12,   81},
64        {12,   82},
65        {4,    14},
66        {6,    20},
67        {7,    22},
68        {8,    28},
69        {9,    32},
70        {9,    31},
71        {10,   13},
72        {11,   34},
73        {12,   83},
74        {12,   85},
75        {5,    11},
76        {7,    21},
77        {9,    30},
78        {10,   12},
79        {12,   86},
80        {6,    17},
81        {8,    27},
82        {9,    29},
83        {10,   11},
84        {6,    16},
85        {9,    34},
86        {10,   10},
87        {6,    13},
88        {9,    28},
89        {10,    8},
90        {7,    18},
91        {9,    27},
92        {12,   84},
93        {7,    20},
94        {9,    26},
95        {12,   87},
96        {8,    25},
97        {10,    9},
98        {8,    24},
99        {11,   35},
100        {8,    23},
101        {9,    25},
102        {9,    24},
103        {10,    7},
104        {12,   88},
105        {0,     0}
106};
107
108/*
109*  For Intra
110*  last = 1
111*/
112
113const OMX_U8 armVCM4P2_IntraL1RunIdx[8] =
114{
115    0,  8, 11, 13, 15, 17, 19, 21
116};
117
118/* Entry defined for all values
119*  for run = 0 to 20
120*  *  Note: the last entry is to terminate while decoding
121*/
122const ARM_VLC32 armVCM4P2_IntraVlcL1[36] =
123{
124        {4,     7},
125        {6,    12},
126        {8,    22},
127        {9,    23},
128        {10,    6},
129        {11,    5},
130        {11,    4},
131        {12,   89},
132        {6,    15},
133        {9,    22},
134        {10,    5},
135        {6,    14},
136        {10,    4},
137        {7,    17},
138        {11,   36},
139        {7,    16},
140        {11,   37},
141        {7,    19},
142        {12,   90},
143        {8,    21},
144        {12,   91},
145        {8,    20},
146        {8,    19},
147        {8,    26},
148        {9,    21},
149        {9,    20},
150        {9,    19},
151        {9,    18},
152        {9,    17},
153        {11,   38},
154        {11,   39},
155        {12,   92},
156        {12,   93},
157        {12,   94},
158        {12,   95},
159        {0,     0}
160};
161
162/* LMAX table for Intra (Last == 0)*/
163const OMX_U8 armVCM4P2_IntraL0LMAX[15] =
164{
165   27, 10,  5,  4,  3,  3,  3,
166    3,  2,  2,  1,  1,  1,  1,  1
167};
168
169/* LMAX table for Intra (Last == 1)*/
170const OMX_U8 armVCM4P2_IntraL1LMAX[21] =
171{
172    8,  3,  2,  2,  2,  2,  2,  1,
173	1,  1,  1,  1,  1,  1,  1,  1,
174	1,  1,  1,  1,  1
175};
176
177/* RMAX table for Intra (Last == 0)
178   Level - 1 Indexed
179*/
180const OMX_U8 armVCM4P2_IntraL0RMAX[27] =
181{
182   14,  9,  7,  3,  2,  1,	1,
183    1,  1,  1,  0,  0,  0, 	0,
184    0,  0,  0,  0,  0,  0,  0,
185    0,  0,  0,  0,  0,  0
186};
187
188/* RMAX table for Intra (Last == 1)
189   Level - 1 Indexed
190*/
191const OMX_U8 armVCM4P2_IntraL1RMAX[8] =
192{
193   20,  6,  1,  0,  0,  0,  0,  0
194};
195
196/*
197*  For Inter
198*  last = 0
199*/
200const OMX_U8 armVCM4P2_InterL0RunIdx[12] =
201{
202     0,  12,  18,  22,  25,  28,
203    31,  34,  36,  38,  40,  42
204};
205
206/* Entry defined for all values
207*  for run = 0 to 26
208*  Note: the last entry is to terminate while decoding
209*/
210const ARM_VLC32 armVCM4P2_InterVlcL0[59] =
211{
212        {2,     2},
213        {4,    15},
214        {6,    21},
215        {7,    23},
216        {8,    31},
217        {9,    37},
218        {9,    36},
219        {10,   33},
220        {10,   32},
221        {11,    7},
222        {11,    6},
223        {11,   32},
224        {3,     6},
225        {6,    20},
226        {8,    30},
227        {10,   15},
228        {11,   33},
229        {12,   80},
230        {4,    14},
231        {8,    29},
232        {10,   14},
233        {12,   81},
234        {5,    13},
235        {9,    35},
236        {10,   13},
237        {5,    12},
238        {9,    34},
239        {12,   82},
240        {5,    11},
241        {10,   12},
242        {12,   83},
243        {6,    19},
244        {10,   11},
245        {12,   84},
246        {6,    18},
247        {10,   10},
248        {6,    17},
249        {10,    9},
250        {6,    16},
251        {10,    8},
252        {7,    22},
253        {12,   85},
254        {7,    21},
255        {7,    20},
256        {8,    28},
257        {8,    27},
258        {9,    33},
259        {9,    32},
260        {9,    31},
261        {9,    30},
262        {9,    29},
263        {9,    28},
264        {9,    27},
265        {9,    26},
266        {11,   34},
267        {11,   35},
268        {12,   86},
269        {12,   87},
270        {0,     0}
271};
272
273
274/*
275*  For Intra
276*  last = 1
277*/
278
279const OMX_U8 armVCM4P2_InterL1RunIdx[3] =
280{
281    0, 3, 5
282};
283
284/* Entry defined for all values
285*  for run = 0 to 40
286*  Note: the last entry is to terminate while decoding
287*/
288const ARM_VLC32 armVCM4P2_InterVlcL1[45] =
289{
290        {4,     7},
291        {9,    25},
292        {11,    5},
293        {6,    15},
294        {11,    4},
295        {6,    14},
296        {6,    13},
297        {6,    12},
298        {7,    19},
299        {7,    18},
300        {7,    17},
301        {7,    16},
302        {8,    26},
303        {8,    25},
304        {8,    24},
305        {8,    23},
306        {8,    22},
307        {8,    21},
308        {8,    20},
309        {8,    19},
310        {9,    24},
311        {9,    23},
312        {9,    22},
313        {9,    21},
314        {9,    20},
315        {9,    19},
316        {9,    18},
317        {9,    17},
318        {10,    7},
319        {10,    6},
320        {10,    5},
321        {10,    4},
322        {11,   36},
323        {11,   37},
324        {11,   38},
325        {11,   39},
326        {12,   88},
327        {12,   89},
328        {12,   90},
329        {12,   91},
330        {12,   92},
331        {12,   93},
332        {12,   94},
333        {12,   95},
334        { 0,    0}
335};
336
337/* LMAX table for Intra (Last == 0)*/
338const OMX_U8 armVCM4P2_InterL0LMAX[27] =
339{
340   12,  6,  4,  3,  3,  3,  3,  2,
341    2,  2,  2,  1,  1,  1,  1,  1,
342    1,  1,  1,  1,  1,  1,  1,  1,
343    1,  1,  1,
344};
345
346/* LMAX table for Intra (Last == 1)*/
347const OMX_U8 armVCM4P2_InterL1LMAX[41] =
348{
349    3,  2,  1,  1,  1,  1,  1,  1,
350	1,  1,  1,  1,  1,  1,  1,  1,
351	1,  1,  1,  1,  1,  1,  1,  1,
352	1,  1,  1,  1,  1,  1,  1,  1,
353	1,  1,  1,  1,  1,  1,  1,  1,
354	1,
355};
356
357/* RMAX table for Intra (Last == 0)
358   Level - 1 Indexed
359*/
360const OMX_U8 armVCM4P2_InterL0RMAX[12] =
361{
362   26, 10,  6,  2,  1,  1,
363    0,  0,  0,  0,  0,  0
364};
365
366/* RMAX table for Intra (Last == 1)
367   Level - 1 Indexed
368*/
369const OMX_U8 armVCM4P2_InterL1RMAX[3] =
370{
371   40,  1,  0
372};
373
374/*
375*  For Intra - Luminance
376*/
377
378const ARM_VLC32 armVCM4P2_aIntraDCLumaIndex[14] =
379{
380        {3,     3},
381        {2,     3},
382        {2,     2},
383        {3,     2},
384        {3,     1},
385        {4,     1},
386        {5,     1},
387        {6,     1},
388        {7,     1},
389        {8,     1},
390        {9,     1},
391        {10,    1},
392        {11,    1},
393        {0,     0}
394};
395
396/*
397*  For Intra - Chrominance
398*/
399
400const ARM_VLC32 armVCM4P2_aIntraDCChromaIndex[14] =
401{
402        {2,     3},
403        {2,     2},
404        {2,     1},
405        {3,     1},
406        {4,     1},
407        {5,     1},
408        {6,     1},
409        {7,     1},
410        {8,     1},
411        {9,     1},
412        {10,    1},
413        {11,    1},
414        {12,    1},
415        {0,     0}
416};
417
418/*
419 *  Motion vector decoding table
420 */
421
422const ARM_VLC32 armVCM4P2_aVlcMVD[66] =
423{
424        {13,     5},
425        {13,     7},
426        {12,     5},
427        {12,     7},
428        {12,     9},
429        {12,    11},
430        {12,    13},
431        {12,    15},
432        {11,     9},
433        {11,    11},
434        {11,    13},
435        {11,    15},
436        {11,    17},
437        {11,    19},
438        {11,    21},
439        {11,    23},
440        {11,    25},
441        {11,    27},
442        {11,    29},
443        {11,    31},
444        {11,    33},
445        {11,    35},
446        {10,    19},
447        {10,    21},
448        {10,    23},
449        {8,      7},
450        {8,      9},
451        {8,     11},
452        {7,      7},
453        {5,      3},
454        {4,      3},
455        {3,      3},
456        {1,      1},
457        {3,      2},
458        {4,      2},
459        {5,      2},
460        {7,      6},
461        {8,     10},
462        {8,      8},
463        {8,      6},
464        {10,    22},
465        {10,    20},
466        {10,    18},
467        {11,    34},
468        {11,    32},
469        {11,    30},
470        {11,    28},
471        {11,    26},
472        {11,    24},
473        {11,    22},
474        {11,    20},
475        {11,    18},
476        {11,    16},
477        {11,    14},
478        {11,    12},
479        {11,    10},
480        {11,     8},
481        {12,    14},
482        {12,    12},
483        {12,    10},
484        {12,     8},
485        {12,     6},
486        {12,     4},
487        {13,     6},
488        {13,     4},
489        { 0,     0}
490};
491
492/* End of file */
493
494
495
496