Statistics
| Branch: | Revision:

ffmpeg / libavcodec / mpeg4data.h @ 13b54752

History | View | Annotate | Download (3.3 KB)

1 de6d9b64 Fabrice Bellard
2
/* dc encoding for mpeg4 */
3
static const UINT8 DCtab_lum[13][2] =
4
{
5
    {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
6
    {1,8}, {1,9}, {1,10}, {1,11},
7
}; 
8
9
static const UINT8 DCtab_chrom[13][2] =
10
{
11
    {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
12
    {1,9}, {1,10}, {1,11}, {1,12},
13
}; 
14
15
const UINT16 intra_vlc[103][2] = {
16
{ 0x2, 2 },
17
{ 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
18
{ 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
19
{ 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
20
{ 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
21
{ 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
22
{ 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
23
{ 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
24
{ 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
25
{ 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
26
{ 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
27
{ 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
28
{ 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
29
{ 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
30
{ 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
31
{ 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
32
{ 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
33
{ 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
34
{ 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
35
{ 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
36
{ 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
37
{ 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
38
{ 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
39
{ 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
40
{ 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
41
{ 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
42
{ 0x5f, 12 },{ 0x3, 7 },
43
};
44
45
const INT8 intra_level[102] = {
46
  1,  2,  3,  4,  5,  6,  7,  8,
47
  9, 10, 11, 12, 13, 14, 15, 16,
48
 17, 18, 19, 20, 21, 22, 23, 24,
49
 25, 26, 27,  1,  2,  3,  4,  5,
50
  6,  7,  8,  9, 10,  1,  2,  3,
51
  4,  5,  1,  2,  3,  4,  1,  2,
52
  3,  1,  2,  3,  1,  2,  3,  1,
53
  2,  3,  1,  2,  1,  2,  1,  1,
54
  1,  1,  1,  1,  2,  3,  4,  5,
55
  6,  7,  8,  1,  2,  3,  1,  2,
56
  1,  2,  1,  2,  1,  2,  1,  2,
57
  1,  1,  1,  1,  1,  1,  1,  1,
58
  1,  1,  1,  1,  1,  1,
59
};
60
61
const INT8 intra_run[102] = {
62
  0,  0,  0,  0,  0,  0,  0,  0,
63
  0,  0,  0,  0,  0,  0,  0,  0,
64
  0,  0,  0,  0,  0,  0,  0,  0,
65
  0,  0,  0,  1,  1,  1,  1,  1,
66
  1,  1,  1,  1,  1,  2,  2,  2,
67
  2,  2,  3,  3,  3,  3,  4,  4,
68
  4,  5,  5,  5,  6,  6,  6,  7,
69
  7,  7,  8,  8,  9,  9, 10, 11,
70
 12, 13, 14,  0,  0,  0,  0,  0,
71
  0,  0,  0,  1,  1,  1,  2,  2,
72
  3,  3,  4,  4,  5,  5,  6,  6,
73
  7,  8,  9, 10, 11, 12, 13, 14,
74
 15, 16, 17, 18, 19, 20,
75
};
76
77
static RLTable rl_intra = {
78
    102,
79
    67,
80
    intra_vlc,
81
    intra_run,
82
    intra_level,
83
};
84
85
/* alternate scan orders used when doing AC prediction */
86
UINT8 ff_alternate_horizontal_scan[64] = {
87
    0,  1,  2,  3,  8,  9, 16, 17, 
88
    10, 11,  4,  5,  6,  7, 15, 14,
89
    13, 12, 19, 18, 24, 25, 32, 33, 
90
    26, 27, 20, 21, 22, 23, 28, 29,
91
    30, 31, 34, 35, 40, 41, 48, 49, 
92
    42, 43, 36, 37, 38, 39, 44, 45,
93
    46, 47, 50, 51, 56, 57, 58, 59, 
94
    52, 53, 54, 55, 60, 61, 62, 63,
95
};
96
97
UINT8 ff_alternate_vertical_scan[64] = {
98
    0,  8, 16, 24,  1,  9,  2, 10, 
99
    17, 25, 32, 40, 48, 56, 57, 49,
100
    41, 33, 26, 18,  3, 11,  4, 12, 
101
    19, 27, 34, 42, 50, 58, 35, 43,
102
    51, 59, 20, 28,  5, 13,  6, 14, 
103
    21, 29, 36, 44, 52, 60, 37, 45,
104
    53, 61, 22, 30,  7, 15, 23, 31, 
105
    38, 46, 54, 62, 39, 47, 55, 63,
106
};