Statistics
| Branch: | Revision:

ffmpeg / libavcodec / mpeg4data.h @ 9f9c3229

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