Statistics
| Branch: | Revision:

ffmpeg / libavcodec / mpeg4data.h @ 5bb6fbb3

History | View | Annotate | Download (4.08 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

    
10
// aspect_ratio_info
11
#define EXTENDED_PAR 15
12

    
13
//vol_sprite_usage / sprite_enable
14
#define STATIC_SPRITE 1
15
#define GMC_SPRITE 2
16

    
17
#define MOTION_MARKER 0x1F001
18
#define DC_MARKER     0x6B001
19

    
20

    
21
/* dc encoding for mpeg4 */
22
const UINT8 DCtab_lum[13][2] =
23
{
24
    {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
25
    {1,8}, {1,9}, {1,10}, {1,11},
26
}; 
27

    
28
const UINT8 DCtab_chrom[13][2] =
29
{
30
    {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
31
    {1,9}, {1,10}, {1,11}, {1,12},
32
}; 
33

    
34
const UINT16 intra_vlc[103][2] = {
35
{ 0x2, 2 },
36
{ 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
37
{ 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
38
{ 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
39
{ 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
40
{ 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
41
{ 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
42
{ 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
43
{ 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
44
{ 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
45
{ 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
46
{ 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
47
{ 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
48
{ 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
49
{ 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
50
{ 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
51
{ 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
52
{ 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
53
{ 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
54
{ 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
55
{ 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
56
{ 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
57
{ 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
58
{ 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
59
{ 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
60
{ 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
61
{ 0x5f, 12 },{ 0x3, 7 },
62
};
63

    
64
const INT8 intra_level[102] = {
65
  1,  2,  3,  4,  5,  6,  7,  8,
66
  9, 10, 11, 12, 13, 14, 15, 16,
67
 17, 18, 19, 20, 21, 22, 23, 24,
68
 25, 26, 27,  1,  2,  3,  4,  5,
69
  6,  7,  8,  9, 10,  1,  2,  3,
70
  4,  5,  1,  2,  3,  4,  1,  2,
71
  3,  1,  2,  3,  1,  2,  3,  1,
72
  2,  3,  1,  2,  1,  2,  1,  1,
73
  1,  1,  1,  1,  2,  3,  4,  5,
74
  6,  7,  8,  1,  2,  3,  1,  2,
75
  1,  2,  1,  2,  1,  2,  1,  2,
76
  1,  1,  1,  1,  1,  1,  1,  1,
77
  1,  1,  1,  1,  1,  1,
78
};
79

    
80
const INT8 intra_run[102] = {
81
  0,  0,  0,  0,  0,  0,  0,  0,
82
  0,  0,  0,  0,  0,  0,  0,  0,
83
  0,  0,  0,  0,  0,  0,  0,  0,
84
  0,  0,  0,  1,  1,  1,  1,  1,
85
  1,  1,  1,  1,  1,  2,  2,  2,
86
  2,  2,  3,  3,  3,  3,  4,  4,
87
  4,  5,  5,  5,  6,  6,  6,  7,
88
  7,  7,  8,  8,  9,  9, 10, 11,
89
 12, 13, 14,  0,  0,  0,  0,  0,
90
  0,  0,  0,  1,  1,  1,  2,  2,
91
  3,  3,  4,  4,  5,  5,  6,  6,
92
  7,  8,  9, 10, 11, 12, 13, 14,
93
 15, 16, 17, 18, 19, 20,
94
};
95

    
96
static RLTable rl_intra = {
97
    102,
98
    67,
99
    intra_vlc,
100
    intra_run,
101
    intra_level,
102
};
103

    
104
static const UINT16 sprite_trajectory_tab[15][2] = {
105
 {0x00, 2}, {0x02, 3},  {0x03, 3},  {0x04, 3}, {0x05, 3}, {0x06, 3},
106
 {0x0E, 4}, {0x1E, 5},  {0x3E, 6},  {0x7E, 7}, {0xFE, 8}, 
107
 {0x1FE, 9},{0x3FE, 10},{0x7FE, 11},{0xFFE, 12},
108
};
109

    
110
static const UINT8 mb_type_b_tab[4][2] = {
111
 {1, 1}, {1, 2}, {1, 3}, {1, 4},
112
};
113

    
114
static const UINT16 pixel_aspect[16][2]={
115
 {0, 0},
116
 {1, 1},
117
 {12, 11},
118
 {10, 11},
119
 {16, 11},
120
 {40, 33},
121
 {0, 0},
122
 {0, 0},
123
 {0, 0},
124
 {0, 0},
125
 {0, 0},
126
 {0, 0},
127
 {0, 0},
128
 {0, 0},
129
 {0, 0},
130
 {0, 0},
131
};
132

    
133
/* these matrixes will be permuted for the idct */
134
INT16 ff_mpeg4_default_intra_matrix[64] = {
135
  8, 17, 18, 19, 21, 23, 25, 27,
136
 17, 18, 19, 21, 23, 25, 27, 28,
137
 20, 21, 22, 23, 24, 26, 28, 30,
138
 21, 22, 23, 24, 26, 28, 30, 32,
139
 22, 23, 24, 26, 28, 30, 32, 35,
140
 23, 24, 26, 28, 30, 32, 35, 38,
141
 25, 26, 28, 30, 32, 35, 38, 41,
142
 27, 28, 30, 32, 35, 38, 41, 45, 
143
};
144

    
145
INT16 ff_mpeg4_default_non_intra_matrix[64] = {
146
 16, 17, 18, 19, 20, 21, 22, 23,
147
 17, 18, 19, 20, 21, 22, 23, 24,
148
 18, 19, 20, 21, 22, 23, 24, 25,
149
 19, 20, 21, 22, 23, 24, 26, 27,
150
 20, 21, 22, 23, 25, 26, 27, 28,
151
 21, 22, 23, 24, 26, 27, 28, 30,
152
 22, 23, 24, 26, 27, 28, 30, 31,
153
 23, 24, 25, 27, 28, 30, 31, 33,
154
};
155