Statistics
| Branch: | Revision:

ffmpeg / libavcodec / mpeg4data.h @ ea937d01

History | View | Annotate | Download (5.16 KB)

1
// shapes
2
#define RECT_SHAPE       0
3
#define BIN_SHAPE        1
4
#define BIN_ONLY_SHAPE   2
5
#define GRAY_SHAPE       3
6

    
7
#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

    
15
// aspect_ratio_info
16
#define EXTENDED_PAR 15
17

    
18
//vol_sprite_usage / sprite_enable
19
#define STATIC_SPRITE 1
20
#define GMC_SPRITE 2
21

    
22
#define MOTION_MARKER 0x1F001
23
#define DC_MARKER     0x6B001
24

    
25
#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

    
30
#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
/* dc encoding for mpeg4 */
37
const UINT8 DCtab_lum[13][2] =
38
{
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
const UINT8 DCtab_chrom[13][2] =
44
{
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

    
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

    
125
static const UINT8 mb_type_b_tab[4][2] = {
126
 {1, 1}, {1, 2}, {1, 3}, {1, 4},
127
};
128

    
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

    
148
/* these matrixes will be permuted for the idct */
149
const INT16 ff_mpeg4_default_intra_matrix[64] = {
150
  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
const INT16 ff_mpeg4_default_non_intra_matrix[64] = {
161
 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
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
const UINT16 ff_mpeg4_resync_prefix[8]={
181
    0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000
182
};