Statistics
| Branch: | Revision:

ffmpeg / libavcodec / h263data.h @ 5917d17c

History | View | Annotate | Download (6.55 KB)

1 de6d9b64 Fabrice Bellard
2
/* intra MCBPC, mb_type = (intra), then (intraq) */
3 287229e5 Michael Niedermayer
const UINT8 intra_MCBPC_code[8] = { 1, 1, 2, 3, 1, 1, 2, 3 };
4
const UINT8 intra_MCBPC_bits[8] = { 1, 3, 3, 3, 4, 6, 6, 6 };
5 de6d9b64 Fabrice Bellard
6
/* inter MCBPC, mb_type = (inter), (intra), (interq), (intraq), (inter4v) */
7 96815ce9 Juanjo
/* Changed the tables for interq and inter4v+q, following the standard ** Juanjo ** */
8 287229e5 Michael Niedermayer
const UINT8 inter_MCBPC_code[25] = { 
9 4949028f Juanjo
    1, 3, 2, 5, 
10
    3, 4, 3, 3, 
11
    3, 7, 6, 5,
12
    4, 4, 3, 2,
13
    2, 5, 4, 5,
14 96815ce9 Juanjo
    1, /* Stuffing */
15
    2, 12, 14, 15,
16 4949028f Juanjo
};
17 287229e5 Michael Niedermayer
const UINT8 inter_MCBPC_bits[25] = { 
18 4949028f Juanjo
    1, 4, 4, 6, 
19
    5, 8, 8, 7,
20
    3, 7, 7, 9,
21
    6, 9, 9, 9,
22
    3, 7, 7, 8,
23 96815ce9 Juanjo
    9, /* Stuffing */
24
    11, 13, 13, 13,
25 4949028f Juanjo
};
26
27
/* This is the old table 
28 de6d9b64 Fabrice Bellard
static const UINT8 inter_MCBPC_code[20] = { 
29
    1, 3, 2, 5, 
30
    3, 4, 3, 3, 
31
    0, 1, 2, 3,
32
    4, 4, 3, 2,
33
    2, 5, 4, 5,
34
};
35
static const UINT8 inter_MCBPC_bits[20] = { 
36
    1, 4, 4, 6, 
37
    5, 8, 8, 7,
38
    12, 12, 12, 12,
39
    6, 9, 9, 9,
40
    3, 7, 7, 8,
41 4949028f Juanjo
};*/
42 de6d9b64 Fabrice Bellard
43 84afee34 Michael Niedermayer
const UINT8 cbpy_tab[16][2] =
44 de6d9b64 Fabrice Bellard
{
45
  {3,4}, {5,5}, {4,5}, {9,4}, {3,5}, {7,4}, {2,6}, {11,4},
46
  {2,5}, {3,6}, {5,4}, {10,4}, {4,4}, {8,4}, {6,4}, {3,2}
47
};
48
49 84afee34 Michael Niedermayer
const UINT8 mvtab[33][2] =
50 de6d9b64 Fabrice Bellard
{
51
  {1,1}, {1,2}, {1,3}, {1,4}, {3,6}, {5,7}, {4,7}, {3,7},
52
  {11,9}, {10,9}, {9,9}, {17,10}, {16,10}, {15,10}, {14,10}, {13,10},
53
  {12,10}, {11,10}, {10,10}, {9,10}, {8,10}, {7,10}, {6,10}, {5,10},
54
  {4,10}, {7,11}, {6,11}, {5,11}, {4,11}, {3,11}, {2,11}, {3,12},
55
  {2,12}
56
};
57
58
/* third non intra table */
59
const UINT16 inter_vlc[103][2] = {
60
{ 0x2, 2 },{ 0xf, 4 },{ 0x15, 6 },{ 0x17, 7 },
61
{ 0x1f, 8 },{ 0x25, 9 },{ 0x24, 9 },{ 0x21, 10 },
62
{ 0x20, 10 },{ 0x7, 11 },{ 0x6, 11 },{ 0x20, 11 },
63
{ 0x6, 3 },{ 0x14, 6 },{ 0x1e, 8 },{ 0xf, 10 },
64
{ 0x21, 11 },{ 0x50, 12 },{ 0xe, 4 },{ 0x1d, 8 },
65
{ 0xe, 10 },{ 0x51, 12 },{ 0xd, 5 },{ 0x23, 9 },
66
{ 0xd, 10 },{ 0xc, 5 },{ 0x22, 9 },{ 0x52, 12 },
67
{ 0xb, 5 },{ 0xc, 10 },{ 0x53, 12 },{ 0x13, 6 },
68
{ 0xb, 10 },{ 0x54, 12 },{ 0x12, 6 },{ 0xa, 10 },
69
{ 0x11, 6 },{ 0x9, 10 },{ 0x10, 6 },{ 0x8, 10 },
70
{ 0x16, 7 },{ 0x55, 12 },{ 0x15, 7 },{ 0x14, 7 },
71
{ 0x1c, 8 },{ 0x1b, 8 },{ 0x21, 9 },{ 0x20, 9 },
72
{ 0x1f, 9 },{ 0x1e, 9 },{ 0x1d, 9 },{ 0x1c, 9 },
73
{ 0x1b, 9 },{ 0x1a, 9 },{ 0x22, 11 },{ 0x23, 11 },
74
{ 0x56, 12 },{ 0x57, 12 },{ 0x7, 4 },{ 0x19, 9 },
75
{ 0x5, 11 },{ 0xf, 6 },{ 0x4, 11 },{ 0xe, 6 },
76
{ 0xd, 6 },{ 0xc, 6 },{ 0x13, 7 },{ 0x12, 7 },
77
{ 0x11, 7 },{ 0x10, 7 },{ 0x1a, 8 },{ 0x19, 8 },
78
{ 0x18, 8 },{ 0x17, 8 },{ 0x16, 8 },{ 0x15, 8 },
79
{ 0x14, 8 },{ 0x13, 8 },{ 0x18, 9 },{ 0x17, 9 },
80
{ 0x16, 9 },{ 0x15, 9 },{ 0x14, 9 },{ 0x13, 9 },
81
{ 0x12, 9 },{ 0x11, 9 },{ 0x7, 10 },{ 0x6, 10 },
82
{ 0x5, 10 },{ 0x4, 10 },{ 0x24, 11 },{ 0x25, 11 },
83
{ 0x26, 11 },{ 0x27, 11 },{ 0x58, 12 },{ 0x59, 12 },
84
{ 0x5a, 12 },{ 0x5b, 12 },{ 0x5c, 12 },{ 0x5d, 12 },
85
{ 0x5e, 12 },{ 0x5f, 12 },{ 0x3, 7 },
86
};
87
88
const INT8 inter_level[102] = {
89
  1,  2,  3,  4,  5,  6,  7,  8,
90
  9, 10, 11, 12,  1,  2,  3,  4,
91
  5,  6,  1,  2,  3,  4,  1,  2,
92
  3,  1,  2,  3,  1,  2,  3,  1,
93
  2,  3,  1,  2,  1,  2,  1,  2,
94
  1,  2,  1,  1,  1,  1,  1,  1,
95
  1,  1,  1,  1,  1,  1,  1,  1,
96
  1,  1,  1,  2,  3,  1,  2,  1,
97
  1,  1,  1,  1,  1,  1,  1,  1,
98
  1,  1,  1,  1,  1,  1,  1,  1,
99
  1,  1,  1,  1,  1,  1,  1,  1,
100
  1,  1,  1,  1,  1,  1,  1,  1,
101
  1,  1,  1,  1,  1,  1,
102
};
103
104
const INT8 inter_run[102] = {
105
  0,  0,  0,  0,  0,  0,  0,  0,
106
  0,  0,  0,  0,  1,  1,  1,  1,
107
  1,  1,  2,  2,  2,  2,  3,  3,
108
  3,  4,  4,  4,  5,  5,  5,  6,
109
  6,  6,  7,  7,  8,  8,  9,  9,
110
 10, 10, 11, 12, 13, 14, 15, 16,
111
 17, 18, 19, 20, 21, 22, 23, 24,
112
 25, 26,  0,  0,  0,  1,  1,  2,
113
  3,  4,  5,  6,  7,  8,  9, 10,
114
 11, 12, 13, 14, 15, 16, 17, 18,
115
 19, 20, 21, 22, 23, 24, 25, 26,
116
 27, 28, 29, 30, 31, 32, 33, 34,
117
 35, 36, 37, 38, 39, 40,
118
};
119
120
static RLTable rl_inter = {
121
    102,
122
    58,
123
    inter_vlc,
124
    inter_run,
125
    inter_level,
126
};
127
128 ef5b1b5a Juanjo
const UINT16 intra_vlc_aic[103][2] = {
129
{  0x2,  2 }, {  0x6,  3 }, {  0xe,  4 }, {  0xc,  5 }, 
130
{  0xd,  5 }, { 0x10,  6 }, { 0x11,  6 }, { 0x12,  6 }, 
131
{ 0x16,  7 }, { 0x1b,  8 }, { 0x20,  9 }, { 0x21,  9 }, 
132
{ 0x1a,  9 }, { 0x1b,  9 }, { 0x1c,  9 }, { 0x1d,  9 }, 
133
{ 0x1e,  9 }, { 0x1f,  9 }, { 0x23, 11 }, { 0x22, 11 }, 
134
{ 0x57, 12 }, { 0x56, 12 }, { 0x55, 12 }, { 0x54, 12 }, 
135
{ 0x53, 12 }, {  0xf,  4 }, { 0x14,  6 }, { 0x14,  7 }, 
136
{ 0x1e,  8 }, {  0xf, 10 }, { 0x21, 11 }, { 0x50, 12 }, 
137
{  0xb,  5 }, { 0x15,  7 }, {  0xe, 10 }, {  0x9, 10 }, 
138
{ 0x15,  6 }, { 0x1d,  8 }, {  0xd, 10 }, { 0x51, 12 }, 
139
{ 0x13,  6 }, { 0x23,  9 }, {  0x7, 11 }, { 0x17,  7 }, 
140
{ 0x22,  9 }, { 0x52, 12 }, { 0x1c,  8 }, {  0xc, 10 }, 
141
{ 0x1f,  8 }, {  0xb, 10 }, { 0x25,  9 }, {  0xa, 10 }, 
142
{ 0x24,  9 }, {  0x6, 11 }, { 0x21, 10 }, { 0x20, 10 }, 
143
{  0x8, 10 }, { 0x20, 11 }, {  0x7,  4 }, {  0xc,  6 }, 
144
{ 0x10,  7 }, { 0x13,  8 }, { 0x11,  9 }, { 0x12,  9 }, 
145
{  0x4, 10 }, { 0x27, 11 }, { 0x26, 11 }, { 0x5f, 12 }, 
146
{  0xf,  6 }, { 0x13,  9 }, {  0x5, 10 }, { 0x25, 11 }, 
147
{  0xe,  6 }, { 0x14,  9 }, { 0x24, 11 }, {  0xd,  6 }, 
148
{  0x6, 10 }, { 0x5e, 12 }, { 0x11,  7 }, {  0x7, 10 }, 
149
{ 0x13,  7 }, { 0x5d, 12 }, { 0x12,  7 }, { 0x5c, 12 }, 
150
{ 0x14,  8 }, { 0x5b, 12 }, { 0x15,  8 }, { 0x1a,  8 }, 
151
{ 0x19,  8 }, { 0x18,  8 }, { 0x17,  8 }, { 0x16,  8 }, 
152
{ 0x19,  9 }, { 0x15,  9 }, { 0x16,  9 }, { 0x18,  9 }, 
153
{ 0x17,  9 }, {  0x4, 11 }, {  0x5, 11 }, { 0x58, 12 }, 
154
{ 0x59, 12 }, { 0x5a, 12 }, {  0x3,  7 },
155 d140623f Juanjo
};
156
157 ef5b1b5a Juanjo
const INT8 intra_run_aic[102] = {
158
 0,  0,  0,  0,  0,  0,  0,  0, 
159
 0,  0,  0,  0,  0,  0,  0,  0, 
160
 0,  0,  0,  0,  0,  0,  0,  0, 
161
 0,  1,  1,  1,  1,  1,  1,  1, 
162
 2,  2,  2,  2,  3,  3,  3,  3, 
163
 4,  4,  4,  5,  5,  5,  6,  6, 
164
 7,  7,  8,  8,  9,  9, 10, 11, 
165
12, 13,  0,  0,  0,  0,  0,  0, 
166
 0,  0,  0,  0,  1,  1,  1,  1, 
167
 2,  2,  2,  3,  3,  3,  4,  4, 
168
 5,  5,  6,  6,  7,  7,  8,  9, 
169
10, 11, 12, 13, 14, 15, 16, 17, 
170
18, 19, 20, 21, 22, 23, 
171
};
172
173
const INT8 intra_level_aic[102] = {
174
 1,  2,  3,  4,  5,  6,  7,  8, 
175
 9, 10, 11, 12, 13, 14, 15, 16, 
176
17, 18, 19, 20, 21, 22, 23, 24, 
177
25,  1,  2,  3,  4,  5,  6,  7, 
178
 1,  2,  3,  4,  1,  2,  3,  4, 
179
 1,  2,  3,  1,  2,  3,  1,  2, 
180
 1,  2,  1,  2,  1,  2,  1,  1, 
181
 1,  1,  1,  2,  3,  4,  5,  6, 
182
 7,  8,  9, 10,  1,  2,  3,  4, 
183
 1,  2,  3,  1,  2,  3,  1,  2, 
184
 1,  2,  1,  2,  1,  2,  1,  1, 
185
 1,  1,  1,  1,  1,  1,  1,  1, 
186
 1,  1,  1,  1,  1,  1,
187 d140623f Juanjo
};
188
189
static RLTable rl_intra_aic = {
190
    102,
191
    58,
192 ef5b1b5a Juanjo
    intra_vlc_aic,
193
    intra_run_aic,
194
    intra_level_aic,
195 d140623f Juanjo
};
196
197 de6d9b64 Fabrice Bellard
static const UINT16 h263_format[8][2] = {
198
    { 0, 0 },
199
    { 128, 96 },
200
    { 176, 144 },
201
    { 352, 288 },
202
    { 704, 576 },
203
    { 1408, 1152 },
204
};
205 8f8402e4 Michael Niedermayer
206
static UINT8 h263_aic_dc_scale_table[32]={
207
//  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
208
    0, 2, 4, 6, 8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62
209
};