Statistics
| Branch: | Revision:

ffmpeg / libavcodec / h263data.h @ 57514323

History | View | Annotate | Download (4.93 KB)

1 de6d9b64 Fabrice Bellard
2
/* intra MCBPC, mb_type = (intra), then (intraq) */
3
static const UINT8 intra_MCBPC_code[8] = { 1, 1, 2, 3, 1, 1, 2, 3 };
4
static const UINT8 intra_MCBPC_bits[8] = { 1, 3, 3, 3, 4, 6, 6, 6 };
5
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
static 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 96815ce9 Juanjo
static 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 d140623f Juanjo
/* table used for Advanced INTRA Coding, just RUN and LEVEL change */
129
const INT8 inter_level_aic[102] = {
130
  1,  1,  1,  1,  1,  1,  1,  1,
131
  1,  3,  2,  1,  2,  2,  4,  5,
132
  6,  7,  3,  2,  3,  4,  5,  2,
133
  3,  4,  2,  3,  1,  2, 25,  1,
134
  2, 24,  8,  2,  7,  4,  6,  1,
135
  9, 23,  2,  3,  1, 10, 12, 11,
136
 18, 17, 16, 15, 14, 13, 20, 19,
137
 22, 21,  1,  1,  1,  1,  1,  1,
138
  1,  2,  1,  1,  1,  3,  1,  1,
139
  1,  1,  1,  1,  1,  4,  1,  1,
140
  1,  1,  2,  2,  6,  5,  2,  2,
141
  3,  7,  3,  4,  9,  8,  1,  1,
142
  1,  2,  2,  2,  3, 10,
143
};
144
145
const INT8 inter_run_aic[102] = {
146
  0,  1,  3,  5,  7,  8,  9, 10,
147
 11,  4,  9, 13,  0,  1,  1,  1,
148
  1,  1,  0,  3,  2,  3,  0,  4,
149
  3,  0,  5,  5,  2,  6,  0,  4,
150
  7,  0,  0,  8,  0,  2,  0, 12,
151
  0,  0,  2,  1,  6,  0,  0,  0,
152
  0,  0,  0,  0,  0,  0,  0,  0,
153
  0,  0,  0, 14, 20,  1, 19,  2,
154
  3,  0,  5,  6,  4,  0,  9, 10,
155
 11, 12, 13,  8,  7,  0, 17, 18,
156
 16, 15,  2,  1,  0,  0,  4,  3,
157
  1,  0,  2,  1,  0,  0, 21, 22,
158
 23,  7,  6,  5,  3,  0,
159
};
160
161
static RLTable rl_intra_aic = {
162
    102,
163
    58,
164
    inter_vlc,
165
    inter_run_aic,
166
    inter_level_aic,
167
};
168
169 de6d9b64 Fabrice Bellard
static const UINT16 h263_format[8][2] = {
170
    { 0, 0 },
171
    { 128, 96 },
172
    { 176, 144 },
173
    { 352, 288 },
174
    { 704, 576 },
175
    { 1408, 1152 },
176
};