Statistics
| Branch: | Revision:

ffmpeg / libavcodec / h263data.h @ 05f361f0

History | View | Annotate | Download (3.87 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
static 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
static 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
static const UINT16 h263_format[8][2] = {
129
    { 0, 0 },
130
    { 128, 96 },
131
    { 176, 144 },
132
    { 352, 288 },
133
    { 704, 576 },
134
    { 1408, 1152 },
135
};