4 #define BIN_ONLY_SHAPE 2
7 #define SIMPLE_VO_TYPE 1
11 #define EXTENDED_PAR 15
13 //vol_sprite_usage / sprite_enable
14 #define STATIC_SPRITE 1
17 #define MOTION_MARKER 0x1F001
18 #define DC_MARKER 0x6B001
21 /* dc encoding for mpeg4 */
22 const UINT8 DCtab_lum[13][2] =
24 {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
25 {1,8}, {1,9}, {1,10}, {1,11},
28 const UINT8 DCtab_chrom[13][2] =
30 {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
31 {1,9}, {1,10}, {1,11}, {1,12},
34 const UINT16 intra_vlc[103][2] = {
36 { 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
37 { 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
38 { 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
39 { 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
40 { 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
41 { 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
42 { 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
43 { 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
44 { 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
45 { 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
46 { 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
47 { 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
48 { 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
49 { 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
50 { 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
51 { 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
52 { 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
53 { 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
54 { 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
55 { 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
56 { 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
57 { 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
58 { 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
59 { 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
60 { 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
61 { 0x5f, 12 },{ 0x3, 7 },
64 const INT8 intra_level[102] = {
65 1, 2, 3, 4, 5, 6, 7, 8,
66 9, 10, 11, 12, 13, 14, 15, 16,
67 17, 18, 19, 20, 21, 22, 23, 24,
68 25, 26, 27, 1, 2, 3, 4, 5,
69 6, 7, 8, 9, 10, 1, 2, 3,
70 4, 5, 1, 2, 3, 4, 1, 2,
71 3, 1, 2, 3, 1, 2, 3, 1,
72 2, 3, 1, 2, 1, 2, 1, 1,
73 1, 1, 1, 1, 2, 3, 4, 5,
74 6, 7, 8, 1, 2, 3, 1, 2,
75 1, 2, 1, 2, 1, 2, 1, 2,
76 1, 1, 1, 1, 1, 1, 1, 1,
80 const INT8 intra_run[102] = {
81 0, 0, 0, 0, 0, 0, 0, 0,
82 0, 0, 0, 0, 0, 0, 0, 0,
83 0, 0, 0, 0, 0, 0, 0, 0,
84 0, 0, 0, 1, 1, 1, 1, 1,
85 1, 1, 1, 1, 1, 2, 2, 2,
86 2, 2, 3, 3, 3, 3, 4, 4,
87 4, 5, 5, 5, 6, 6, 6, 7,
88 7, 7, 8, 8, 9, 9, 10, 11,
89 12, 13, 14, 0, 0, 0, 0, 0,
90 0, 0, 0, 1, 1, 1, 2, 2,
91 3, 3, 4, 4, 5, 5, 6, 6,
92 7, 8, 9, 10, 11, 12, 13, 14,
93 15, 16, 17, 18, 19, 20,
96 static RLTable rl_intra = {
104 static const UINT16 sprite_trajectory_tab[15][2] = {
105 {0x00, 2}, {0x02, 3}, {0x03, 3}, {0x04, 3}, {0x05, 3}, {0x06, 3},
106 {0x0E, 4}, {0x1E, 5}, {0x3E, 6}, {0x7E, 7}, {0xFE, 8},
107 {0x1FE, 9},{0x3FE, 10},{0x7FE, 11},{0xFFE, 12},
110 static const UINT8 mb_type_b_tab[4][2] = {
111 {1, 1}, {1, 2}, {1, 3}, {1, 4},
114 static const UINT16 pixel_aspect[16][2]={
133 /* these matrixes will be permuted for the idct */
134 INT16 ff_mpeg4_default_intra_matrix[64] = {
135 8, 17, 18, 19, 21, 23, 25, 27,
136 17, 18, 19, 21, 23, 25, 27, 28,
137 20, 21, 22, 23, 24, 26, 28, 30,
138 21, 22, 23, 24, 26, 28, 30, 32,
139 22, 23, 24, 26, 28, 30, 32, 35,
140 23, 24, 26, 28, 30, 32, 35, 38,
141 25, 26, 28, 30, 32, 35, 38, 41,
142 27, 28, 30, 32, 35, 38, 41, 45,
145 INT16 ff_mpeg4_default_non_intra_matrix[64] = {
146 16, 17, 18, 19, 20, 21, 22, 23,
147 17, 18, 19, 20, 21, 22, 23, 24,
148 18, 19, 20, 21, 22, 23, 24, 25,
149 19, 20, 21, 22, 23, 24, 26, 27,
150 20, 21, 22, 23, 25, 26, 27, 28,
151 21, 22, 23, 24, 26, 27, 28, 30,
152 22, 23, 24, 26, 27, 28, 30, 31,
153 23, 24, 25, 27, 28, 30, 31, 33,
156 UINT8 ff_mpeg4_y_dc_scale_table[32]={
157 // 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
158 0, 8, 8, 8, 8,10,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,36,38,40,42,44,46
160 UINT8 ff_mpeg4_c_dc_scale_table[32]={
161 // 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
162 0, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,20,21,22,23,24,25