Statistics
| Branch: | Revision:

ffmpeg / libavcodec / mpeg4data.h @ 57514323

History | View | Annotate | Download (4.02 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 EXTENDET_PAR 15
12

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

    
17
/* dc encoding for mpeg4 */
18
const UINT8 DCtab_lum[13][2] =
19
{
20
    {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
21
    {1,8}, {1,9}, {1,10}, {1,11},
22
}; 
23

    
24
const UINT8 DCtab_chrom[13][2] =
25
{
26
    {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
27
    {1,9}, {1,10}, {1,11}, {1,12},
28
}; 
29

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

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

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

    
92
static RLTable rl_intra = {
93
    102,
94
    67,
95
    intra_vlc,
96
    intra_run,
97
    intra_level,
98
};
99

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

    
106
static const UINT8 mb_type_b_tab[4][2] = {
107
 {1, 1}, {1, 2}, {1, 3}, {1, 4},
108
};
109

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

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

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