Statistics
| Branch: | Revision:

ffmpeg / libavcodec / mpeg4data.h @ ea937d01

History | View | Annotate | Download (5.16 KB)

1 cc9ba006 Michael Niedermayer
// shapes
2
#define RECT_SHAPE       0
3
#define BIN_SHAPE        1
4
#define BIN_ONLY_SHAPE   2
5
#define GRAY_SHAPE       3
6
7 f8af5cb5 Michael Niedermayer
#define SIMPLE_VO_TYPE             1
8
#define CORE_VO_TYPE               3
9
#define MAIN_VO_TYPE               4
10
#define NBIT_VO_TYPE               5
11
#define ARTS_VO_TYPE               10
12
#define ACE_VO_TYPE                12
13
#define ADV_SIMPLE_VO_TYPE         17
14 1ff662cc Michael Niedermayer
15 cc9ba006 Michael Niedermayer
// aspect_ratio_info
16 1e209222 Juanjo
#define EXTENDED_PAR 15
17 cc9ba006 Michael Niedermayer
18
//vol_sprite_usage / sprite_enable
19
#define STATIC_SPRITE 1
20
#define GMC_SPRITE 2
21 de6d9b64 Fabrice Bellard
22 5bb6fbb3 Michael Niedermayer
#define MOTION_MARKER 0x1F001
23
#define DC_MARKER     0x6B001
24
25 bea669e5 Michael Niedermayer
#define MB_TYPE_B_DIRECT 0
26
#define MB_TYPE_B_BIDIR  1
27
#define MB_TYPE_B_BACKW  2
28
#define MB_TYPE_B_FORW   3
29 5bb6fbb3 Michael Niedermayer
30 41773b73 Michael Niedermayer
#define VOS_STARTCODE        0x1B0
31
#define USER_DATA_STARTCODE  0x1B2
32
#define GOP_STARTCODE        0x1B3
33
#define VISUAL_OBJ_STARTCODE 0x1B5
34
#define VOP_STARTCODE        0x1B6
35
36 de6d9b64 Fabrice Bellard
/* dc encoding for mpeg4 */
37 84afee34 Michael Niedermayer
const UINT8 DCtab_lum[13][2] =
38 de6d9b64 Fabrice Bellard
{
39
    {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
40
    {1,8}, {1,9}, {1,10}, {1,11},
41
}; 
42
43 84afee34 Michael Niedermayer
const UINT8 DCtab_chrom[13][2] =
44 de6d9b64 Fabrice Bellard
{
45
    {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
46
    {1,9}, {1,10}, {1,11}, {1,12},
47
}; 
48
49
const UINT16 intra_vlc[103][2] = {
50
{ 0x2, 2 },
51
{ 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
52
{ 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
53
{ 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
54
{ 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
55
{ 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
56
{ 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
57
{ 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
58
{ 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
59
{ 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
60
{ 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
61
{ 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
62
{ 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
63
{ 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
64
{ 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
65
{ 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
66
{ 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
67
{ 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
68
{ 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
69
{ 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
70
{ 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
71
{ 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
72
{ 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
73
{ 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
74
{ 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
75
{ 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
76
{ 0x5f, 12 },{ 0x3, 7 },
77
};
78
79
const INT8 intra_level[102] = {
80
  1,  2,  3,  4,  5,  6,  7,  8,
81
  9, 10, 11, 12, 13, 14, 15, 16,
82
 17, 18, 19, 20, 21, 22, 23, 24,
83
 25, 26, 27,  1,  2,  3,  4,  5,
84
  6,  7,  8,  9, 10,  1,  2,  3,
85
  4,  5,  1,  2,  3,  4,  1,  2,
86
  3,  1,  2,  3,  1,  2,  3,  1,
87
  2,  3,  1,  2,  1,  2,  1,  1,
88
  1,  1,  1,  1,  2,  3,  4,  5,
89
  6,  7,  8,  1,  2,  3,  1,  2,
90
  1,  2,  1,  2,  1,  2,  1,  2,
91
  1,  1,  1,  1,  1,  1,  1,  1,
92
  1,  1,  1,  1,  1,  1,
93
};
94
95
const INT8 intra_run[102] = {
96
  0,  0,  0,  0,  0,  0,  0,  0,
97
  0,  0,  0,  0,  0,  0,  0,  0,
98
  0,  0,  0,  0,  0,  0,  0,  0,
99
  0,  0,  0,  1,  1,  1,  1,  1,
100
  1,  1,  1,  1,  1,  2,  2,  2,
101
  2,  2,  3,  3,  3,  3,  4,  4,
102
  4,  5,  5,  5,  6,  6,  6,  7,
103
  7,  7,  8,  8,  9,  9, 10, 11,
104
 12, 13, 14,  0,  0,  0,  0,  0,
105
  0,  0,  0,  1,  1,  1,  2,  2,
106
  3,  3,  4,  4,  5,  5,  6,  6,
107
  7,  8,  9, 10, 11, 12, 13, 14,
108
 15, 16, 17, 18, 19, 20,
109
};
110
111
static RLTable rl_intra = {
112
    102,
113
    67,
114
    intra_vlc,
115
    intra_run,
116
    intra_level,
117
};
118 73c8e514 Michael Niedermayer
119
static const UINT16 sprite_trajectory_tab[15][2] = {
120
 {0x00, 2}, {0x02, 3},  {0x03, 3},  {0x04, 3}, {0x05, 3}, {0x06, 3},
121
 {0x0E, 4}, {0x1E, 5},  {0x3E, 6},  {0x7E, 7}, {0xFE, 8}, 
122
 {0x1FE, 9},{0x3FE, 10},{0x7FE, 11},{0xFFE, 12},
123
};
124 6f91bcd1 Michael Niedermayer
125
static const UINT8 mb_type_b_tab[4][2] = {
126
 {1, 1}, {1, 2}, {1, 3}, {1, 4},
127
};
128 84afee34 Michael Niedermayer
129
static const UINT16 pixel_aspect[16][2]={
130
 {0, 0},
131
 {1, 1},
132
 {12, 11},
133
 {10, 11},
134
 {16, 11},
135
 {40, 33},
136
 {0, 0},
137
 {0, 0},
138
 {0, 0},
139
 {0, 0},
140
 {0, 0},
141
 {0, 0},
142
 {0, 0},
143
 {0, 0},
144
 {0, 0},
145
 {0, 0},
146
};
147 3bf43d42 Michael Niedermayer
148
/* these matrixes will be permuted for the idct */
149 2ad1516a Michael Niedermayer
const INT16 ff_mpeg4_default_intra_matrix[64] = {
150 3bf43d42 Michael Niedermayer
  8, 17, 18, 19, 21, 23, 25, 27,
151
 17, 18, 19, 21, 23, 25, 27, 28,
152
 20, 21, 22, 23, 24, 26, 28, 30,
153
 21, 22, 23, 24, 26, 28, 30, 32,
154
 22, 23, 24, 26, 28, 30, 32, 35,
155
 23, 24, 26, 28, 30, 32, 35, 38,
156
 25, 26, 28, 30, 32, 35, 38, 41,
157
 27, 28, 30, 32, 35, 38, 41, 45, 
158
};
159
160 2ad1516a Michael Niedermayer
const INT16 ff_mpeg4_default_non_intra_matrix[64] = {
161 3bf43d42 Michael Niedermayer
 16, 17, 18, 19, 20, 21, 22, 23,
162
 17, 18, 19, 20, 21, 22, 23, 24,
163
 18, 19, 20, 21, 22, 23, 24, 25,
164
 19, 20, 21, 22, 23, 24, 26, 27,
165
 20, 21, 22, 23, 25, 26, 27, 28,
166
 21, 22, 23, 24, 26, 27, 28, 30,
167
 22, 23, 24, 26, 27, 28, 30, 31,
168
 23, 24, 25, 27, 28, 30, 31, 33,
169
};
170
171 8f8402e4 Michael Niedermayer
UINT8 ff_mpeg4_y_dc_scale_table[32]={
172
//  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
173
    0, 8, 8, 8, 8,10,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,36,38,40,42,44,46
174
};
175
UINT8 ff_mpeg4_c_dc_scale_table[32]={
176
//  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
177
    0, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,20,21,22,23,24,25
178
};
179
180 4d2858de Michael Niedermayer
const UINT16 ff_mpeg4_resync_prefix[8]={
181
    0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000
182
};