Statistics
| Branch: | Revision:

ffmpeg / libavcodec / h263data.h @ 57514323

History | View | Annotate | Download (4.93 KB)

1

    
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
/* Changed the tables for interq and inter4v+q, following the standard ** Juanjo ** */
8
static const UINT8 inter_MCBPC_code[25] = { 
9
    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
    1, /* Stuffing */
15
    2, 12, 14, 15,
16
};
17
static const UINT8 inter_MCBPC_bits[25] = { 
18
    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
    9, /* Stuffing */
24
    11, 13, 13, 13,
25
};
26

    
27
/* This is the old table 
28
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
};*/
42

    
43
const UINT8 cbpy_tab[16][2] =
44
{
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
const UINT8 mvtab[33][2] =
50
{
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
/* 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
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
};
177