annotate mpeg12data.h @ 2148:678be5a8f282 libavcodec

use parent sample to predict significance & magnitude 1% bitrate reduction (foreman@352x288 qscale 1 & 8)
author michael
date Tue, 27 Jul 2004 13:40:16 +0000
parents 5086ee0ea559
children ba8ecddf5598
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1091
diff changeset
1 /**
1e39f273ecd6 per file doxy
michaelni
parents: 1091
diff changeset
2 * @file mpeg12data.h
1e39f273ecd6 per file doxy
michaelni
parents: 1091
diff changeset
3 * MPEG1/2 tables.
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
4 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
5
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
6 const int16_t ff_mpeg1_default_intra_matrix[64] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
7 8, 16, 19, 22, 26, 27, 29, 34,
986e461dc072 Initial revision
glantau
parents:
diff changeset
8 16, 16, 22, 24, 27, 29, 34, 37,
986e461dc072 Initial revision
glantau
parents:
diff changeset
9 19, 22, 26, 27, 29, 34, 34, 38,
986e461dc072 Initial revision
glantau
parents:
diff changeset
10 22, 22, 26, 27, 29, 34, 37, 40,
986e461dc072 Initial revision
glantau
parents:
diff changeset
11 22, 26, 27, 29, 32, 35, 40, 48,
986e461dc072 Initial revision
glantau
parents:
diff changeset
12 26, 27, 29, 32, 35, 40, 48, 58,
986e461dc072 Initial revision
glantau
parents:
diff changeset
13 26, 27, 29, 34, 38, 46, 56, 69,
986e461dc072 Initial revision
glantau
parents:
diff changeset
14 27, 29, 35, 38, 46, 56, 69, 83
986e461dc072 Initial revision
glantau
parents:
diff changeset
15 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
16
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
17 const int16_t ff_mpeg1_default_non_intra_matrix[64] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
18 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
19 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
20 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
21 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
22 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
23 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
24 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
25 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
26 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
27
1325
1cbc2380d172 CONFIG_ENCODERS cleanup
michaelni
parents: 1181
diff changeset
28 static const uint16_t vlc_dc_lum_code[12] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
29 0x4, 0x0, 0x1, 0x5, 0x6, 0xe, 0x1e, 0x3e, 0x7e, 0xfe, 0x1fe, 0x1ff,
986e461dc072 Initial revision
glantau
parents:
diff changeset
30 };
1325
1cbc2380d172 CONFIG_ENCODERS cleanup
michaelni
parents: 1181
diff changeset
31 static const unsigned char vlc_dc_lum_bits[12] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
32 3, 2, 2, 3, 3, 4, 5, 6, 7, 8, 9, 9,
986e461dc072 Initial revision
glantau
parents:
diff changeset
33 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
34
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
35 const uint16_t vlc_dc_chroma_code[12] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
36 0x0, 0x1, 0x2, 0x6, 0xe, 0x1e, 0x3e, 0x7e, 0xfe, 0x1fe, 0x3fe, 0x3ff,
986e461dc072 Initial revision
glantau
parents:
diff changeset
37 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
38 const unsigned char vlc_dc_chroma_bits[12] = {
986e461dc072 Initial revision
glantau
parents:
diff changeset
39 2, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10,
986e461dc072 Initial revision
glantau
parents:
diff changeset
40 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
41
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
42 static const uint16_t mpeg1_vlc[113][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
43 { 0x3, 2 }, { 0x4, 4 }, { 0x5, 5 }, { 0x6, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
44 { 0x26, 8 }, { 0x21, 8 }, { 0xa, 10 }, { 0x1d, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
45 { 0x18, 12 }, { 0x13, 12 }, { 0x10, 12 }, { 0x1a, 13 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
46 { 0x19, 13 }, { 0x18, 13 }, { 0x17, 13 }, { 0x1f, 14 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
47 { 0x1e, 14 }, { 0x1d, 14 }, { 0x1c, 14 }, { 0x1b, 14 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
48 { 0x1a, 14 }, { 0x19, 14 }, { 0x18, 14 }, { 0x17, 14 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
49 { 0x16, 14 }, { 0x15, 14 }, { 0x14, 14 }, { 0x13, 14 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
50 { 0x12, 14 }, { 0x11, 14 }, { 0x10, 14 }, { 0x18, 15 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
51 { 0x17, 15 }, { 0x16, 15 }, { 0x15, 15 }, { 0x14, 15 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
52 { 0x13, 15 }, { 0x12, 15 }, { 0x11, 15 }, { 0x10, 15 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
53 { 0x3, 3 }, { 0x6, 6 }, { 0x25, 8 }, { 0xc, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
54 { 0x1b, 12 }, { 0x16, 13 }, { 0x15, 13 }, { 0x1f, 15 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
55 { 0x1e, 15 }, { 0x1d, 15 }, { 0x1c, 15 }, { 0x1b, 15 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
56 { 0x1a, 15 }, { 0x19, 15 }, { 0x13, 16 }, { 0x12, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
57 { 0x11, 16 }, { 0x10, 16 }, { 0x5, 4 }, { 0x4, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
58 { 0xb, 10 }, { 0x14, 12 }, { 0x14, 13 }, { 0x7, 5 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
59 { 0x24, 8 }, { 0x1c, 12 }, { 0x13, 13 }, { 0x6, 5 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
60 { 0xf, 10 }, { 0x12, 12 }, { 0x7, 6 }, { 0x9, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
61 { 0x12, 13 }, { 0x5, 6 }, { 0x1e, 12 }, { 0x14, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
62 { 0x4, 6 }, { 0x15, 12 }, { 0x7, 7 }, { 0x11, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
63 { 0x5, 7 }, { 0x11, 13 }, { 0x27, 8 }, { 0x10, 13 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
64 { 0x23, 8 }, { 0x1a, 16 }, { 0x22, 8 }, { 0x19, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
65 { 0x20, 8 }, { 0x18, 16 }, { 0xe, 10 }, { 0x17, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
66 { 0xd, 10 }, { 0x16, 16 }, { 0x8, 10 }, { 0x15, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
67 { 0x1f, 12 }, { 0x1a, 12 }, { 0x19, 12 }, { 0x17, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
68 { 0x16, 12 }, { 0x1f, 13 }, { 0x1e, 13 }, { 0x1d, 13 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
69 { 0x1c, 13 }, { 0x1b, 13 }, { 0x1f, 16 }, { 0x1e, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
70 { 0x1d, 16 }, { 0x1c, 16 }, { 0x1b, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
71 { 0x1, 6 }, /* escape */
986e461dc072 Initial revision
glantau
parents:
diff changeset
72 { 0x2, 2 }, /* EOB */
986e461dc072 Initial revision
glantau
parents:
diff changeset
73 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
74
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
75 static const uint16_t mpeg2_vlc[113][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
76 {0x02, 2}, {0x06, 3}, {0x07, 4}, {0x1c, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
77 {0x1d, 5}, {0x05, 6}, {0x04, 6}, {0x7b, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
78 {0x7c, 7}, {0x23, 8}, {0x22, 8}, {0xfa, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
79 {0xfb, 8}, {0xfe, 8}, {0xff, 8}, {0x1f,14},
986e461dc072 Initial revision
glantau
parents:
diff changeset
80 {0x1e,14}, {0x1d,14}, {0x1c,14}, {0x1b,14},
986e461dc072 Initial revision
glantau
parents:
diff changeset
81 {0x1a,14}, {0x19,14}, {0x18,14}, {0x17,14},
986e461dc072 Initial revision
glantau
parents:
diff changeset
82 {0x16,14}, {0x15,14}, {0x14,14}, {0x13,14},
986e461dc072 Initial revision
glantau
parents:
diff changeset
83 {0x12,14}, {0x11,14}, {0x10,14}, {0x18,15},
986e461dc072 Initial revision
glantau
parents:
diff changeset
84 {0x17,15}, {0x16,15}, {0x15,15}, {0x14,15},
986e461dc072 Initial revision
glantau
parents:
diff changeset
85 {0x13,15}, {0x12,15}, {0x11,15}, {0x10,15},
986e461dc072 Initial revision
glantau
parents:
diff changeset
86 {0x02, 3}, {0x06, 5}, {0x79, 7}, {0x27, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
87 {0x20, 8}, {0x16,13}, {0x15,13}, {0x1f,15},
986e461dc072 Initial revision
glantau
parents:
diff changeset
88 {0x1e,15}, {0x1d,15}, {0x1c,15}, {0x1b,15},
986e461dc072 Initial revision
glantau
parents:
diff changeset
89 {0x1a,15}, {0x19,15}, {0x13,16}, {0x12,16},
986e461dc072 Initial revision
glantau
parents:
diff changeset
90 {0x11,16}, {0x10,16}, {0x05, 5}, {0x07, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
91 {0xfc, 8}, {0x0c,10}, {0x14,13}, {0x07, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
92 {0x26, 8}, {0x1c,12}, {0x13,13}, {0x06, 6},
986e461dc072 Initial revision
glantau
parents:
diff changeset
93 {0xfd, 8}, {0x12,12}, {0x07, 6}, {0x04, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
94 {0x12,13}, {0x06, 7}, {0x1e,12}, {0x14,16},
986e461dc072 Initial revision
glantau
parents:
diff changeset
95 {0x04, 7}, {0x15,12}, {0x05, 7}, {0x11,12},
986e461dc072 Initial revision
glantau
parents:
diff changeset
96 {0x78, 7}, {0x11,13}, {0x7a, 7}, {0x10,13},
986e461dc072 Initial revision
glantau
parents:
diff changeset
97 {0x21, 8}, {0x1a,16}, {0x25, 8}, {0x19,16},
986e461dc072 Initial revision
glantau
parents:
diff changeset
98 {0x24, 8}, {0x18,16}, {0x05, 9}, {0x17,16},
986e461dc072 Initial revision
glantau
parents:
diff changeset
99 {0x07, 9}, {0x16,16}, {0x0d,10}, {0x15,16},
986e461dc072 Initial revision
glantau
parents:
diff changeset
100 {0x1f,12}, {0x1a,12}, {0x19,12}, {0x17,12},
986e461dc072 Initial revision
glantau
parents:
diff changeset
101 {0x16,12}, {0x1f,13}, {0x1e,13}, {0x1d,13},
986e461dc072 Initial revision
glantau
parents:
diff changeset
102 {0x1c,13}, {0x1b,13}, {0x1f,16}, {0x1e,16},
986e461dc072 Initial revision
glantau
parents:
diff changeset
103 {0x1d,16}, {0x1c,16}, {0x1b,16},
986e461dc072 Initial revision
glantau
parents:
diff changeset
104 {0x01,6}, /* escape */
986e461dc072 Initial revision
glantau
parents:
diff changeset
105 {0x06,4}, /* EOB */
986e461dc072 Initial revision
glantau
parents:
diff changeset
106 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
107
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
108 static const int8_t mpeg1_level[111] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
109 1, 2, 3, 4, 5, 6, 7, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
110 9, 10, 11, 12, 13, 14, 15, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
111 17, 18, 19, 20, 21, 22, 23, 24,
986e461dc072 Initial revision
glantau
parents:
diff changeset
112 25, 26, 27, 28, 29, 30, 31, 32,
986e461dc072 Initial revision
glantau
parents:
diff changeset
113 33, 34, 35, 36, 37, 38, 39, 40,
986e461dc072 Initial revision
glantau
parents:
diff changeset
114 1, 2, 3, 4, 5, 6, 7, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
115 9, 10, 11, 12, 13, 14, 15, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
116 17, 18, 1, 2, 3, 4, 5, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
117 2, 3, 4, 1, 2, 3, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
118 3, 1, 2, 3, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
119 1, 2, 1, 2, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
120 1, 2, 1, 2, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
121 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
122 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
123 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
124
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
125 static const int8_t mpeg1_run[111] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
126 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
127 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
128 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
129 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
130 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
131 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
132 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
133 1, 1, 2, 2, 2, 2, 2, 3,
986e461dc072 Initial revision
glantau
parents:
diff changeset
134 3, 3, 3, 4, 4, 4, 5, 5,
986e461dc072 Initial revision
glantau
parents:
diff changeset
135 5, 6, 6, 6, 7, 7, 8, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
136 9, 9, 10, 10, 11, 11, 12, 12,
986e461dc072 Initial revision
glantau
parents:
diff changeset
137 13, 13, 14, 14, 15, 15, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
138 17, 18, 19, 20, 21, 22, 23, 24,
986e461dc072 Initial revision
glantau
parents:
diff changeset
139 25, 26, 27, 28, 29, 30, 31,
986e461dc072 Initial revision
glantau
parents:
diff changeset
140 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
141
986e461dc072 Initial revision
glantau
parents:
diff changeset
142 static RLTable rl_mpeg1 = {
986e461dc072 Initial revision
glantau
parents:
diff changeset
143 111,
986e461dc072 Initial revision
glantau
parents:
diff changeset
144 111,
986e461dc072 Initial revision
glantau
parents:
diff changeset
145 mpeg1_vlc,
986e461dc072 Initial revision
glantau
parents:
diff changeset
146 mpeg1_run,
986e461dc072 Initial revision
glantau
parents:
diff changeset
147 mpeg1_level,
986e461dc072 Initial revision
glantau
parents:
diff changeset
148 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
149
986e461dc072 Initial revision
glantau
parents:
diff changeset
150 static RLTable rl_mpeg2 = {
986e461dc072 Initial revision
glantau
parents:
diff changeset
151 111,
986e461dc072 Initial revision
glantau
parents:
diff changeset
152 111,
986e461dc072 Initial revision
glantau
parents:
diff changeset
153 mpeg2_vlc,
986e461dc072 Initial revision
glantau
parents:
diff changeset
154 mpeg1_run,
986e461dc072 Initial revision
glantau
parents:
diff changeset
155 mpeg1_level,
986e461dc072 Initial revision
glantau
parents:
diff changeset
156 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
157
1181
4c2339f3863a 100l (mpeg2 decoding fixed)
michaelni
parents: 1177
diff changeset
158 static const uint8_t mbAddrIncrTable[36][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
159 {0x1, 1},
986e461dc072 Initial revision
glantau
parents:
diff changeset
160 {0x3, 3},
986e461dc072 Initial revision
glantau
parents:
diff changeset
161 {0x2, 3},
986e461dc072 Initial revision
glantau
parents:
diff changeset
162 {0x3, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
163 {0x2, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
164 {0x3, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
165 {0x2, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
166 {0x7, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
167 {0x6, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
168 {0xb, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
169 {0xa, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
170 {0x9, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
171 {0x8, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
172 {0x7, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
173 {0x6, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
174 {0x17, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
175 {0x16, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
176 {0x15, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
177 {0x14, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
178 {0x13, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
179 {0x12, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
180 {0x23, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
181 {0x22, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
182 {0x21, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
183 {0x20, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
184 {0x1f, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
185 {0x1e, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
186 {0x1d, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
187 {0x1c, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
188 {0x1b, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
189 {0x1a, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
190 {0x19, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
191 {0x18, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
192 {0x8, 11}, /* escape */
986e461dc072 Initial revision
glantau
parents:
diff changeset
193 {0xf, 11}, /* stuffing */
1181
4c2339f3863a 100l (mpeg2 decoding fixed)
michaelni
parents: 1177
diff changeset
194 {0x0, 8}, /* end (and 15 more 0 bits should follow) */
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
195 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
196
1853
9de89f579086 add vlc for cbp=0 that is valid in 422,444
iive
parents: 1837
diff changeset
197 static const uint8_t mbPatTable[64][2] = {
9de89f579086 add vlc for cbp=0 that is valid in 422,444
iive
parents: 1837
diff changeset
198 {0x1, 9},
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
199 {0xb, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
200 {0x9, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
201 {0xd, 6},
986e461dc072 Initial revision
glantau
parents:
diff changeset
202 {0xd, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
203 {0x17, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
204 {0x13, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
205 {0x1f, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
206 {0xc, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
207 {0x16, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
208 {0x12, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
209 {0x1e, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
210 {0x13, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
211 {0x1b, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
212 {0x17, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
213 {0x13, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
214 {0xb, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
215 {0x15, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
216 {0x11, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
217 {0x1d, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
218 {0x11, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
219 {0x19, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
220 {0x15, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
221 {0x11, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
222 {0xf, 6},
986e461dc072 Initial revision
glantau
parents:
diff changeset
223 {0xf, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
224 {0xd, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
225 {0x3, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
226 {0xf, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
227 {0xb, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
228 {0x7, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
229 {0x7, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
230 {0xa, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
231 {0x14, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
232 {0x10, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
233 {0x1c, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
234 {0xe, 6},
986e461dc072 Initial revision
glantau
parents:
diff changeset
235 {0xe, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
236 {0xc, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
237 {0x2, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
238 {0x10, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
239 {0x18, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
240 {0x14, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
241 {0x10, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
242 {0xe, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
243 {0xa, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
244 {0x6, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
245 {0x6, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
246 {0x12, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
247 {0x1a, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
248 {0x16, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
249 {0x12, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
250 {0xd, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
251 {0x9, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
252 {0x5, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
253 {0x5, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
254 {0xc, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
255 {0x8, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
256 {0x4, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
257 {0x4, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
258 {0x7, 3},
986e461dc072 Initial revision
glantau
parents:
diff changeset
259 {0xa, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
260 {0x8, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
261 {0xc, 6}
986e461dc072 Initial revision
glantau
parents:
diff changeset
262 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
263
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
264 #define MB_TYPE_ZERO_MV 0x20000000
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
265 #define IS_ZERO_MV(a) ((a)&MB_TYPE_ZERO_MV)
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
266
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
267 static const uint8_t table_mb_ptype[7][2] = {
64
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
268 { 3, 5 }, // 0x01 MB_INTRA
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
269 { 1, 2 }, // 0x02 MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
270 { 1, 3 }, // 0x08 MB_FOR
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
271 { 1, 1 }, // 0x0A MB_FOR|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
272 { 1, 6 }, // 0x11 MB_QUANT|MB_INTRA
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
273 { 1, 5 }, // 0x12 MB_QUANT|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
274 { 2, 5 }, // 0x1A MB_QUANT|MB_FOR|MB_PAT
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
275 };
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
276
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
277 static const uint32_t ptype2mb_type[7] = {
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
278 MB_TYPE_INTRA,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
279 MB_TYPE_L0 | MB_TYPE_CBP | MB_TYPE_ZERO_MV | MB_TYPE_16x16,
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
280 MB_TYPE_L0,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
281 MB_TYPE_L0 | MB_TYPE_CBP,
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
282 MB_TYPE_QUANT | MB_TYPE_INTRA,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
283 MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_CBP | MB_TYPE_ZERO_MV | MB_TYPE_16x16,
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
284 MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_CBP,
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
285 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
286
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
287 static const uint8_t table_mb_btype[11][2] = {
64
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
288 { 3, 5 }, // 0x01 MB_INTRA
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
289 { 2, 3 }, // 0x04 MB_BACK
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
290 { 3, 3 }, // 0x06 MB_BACK|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
291 { 2, 4 }, // 0x08 MB_FOR
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
292 { 3, 4 }, // 0x0A MB_FOR|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
293 { 2, 2 }, // 0x0C MB_FOR|MB_BACK
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
294 { 3, 2 }, // 0x0E MB_FOR|MB_BACK|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
295 { 1, 6 }, // 0x11 MB_QUANT|MB_INTRA
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
296 { 2, 6 }, // 0x16 MB_QUANT|MB_BACK|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
297 { 3, 6 }, // 0x1A MB_QUANT|MB_FOR|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
298 { 2, 5 }, // 0x1E MB_QUANT|MB_FOR|MB_BACK|MB_PAT
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
299 };
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
300
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
301 static const uint32_t btype2mb_type[11] = {
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
302 MB_TYPE_INTRA,
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
303 MB_TYPE_L1,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
304 MB_TYPE_L1 | MB_TYPE_CBP,
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
305 MB_TYPE_L0,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
306 MB_TYPE_L0 | MB_TYPE_CBP,
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
307 MB_TYPE_L0L1,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
308 MB_TYPE_L0L1 | MB_TYPE_CBP,
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1126
diff changeset
309 MB_TYPE_QUANT | MB_TYPE_INTRA,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
310 MB_TYPE_QUANT | MB_TYPE_L1 | MB_TYPE_CBP,
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
311 MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_CBP,
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
312 MB_TYPE_QUANT | MB_TYPE_L0L1 | MB_TYPE_CBP,
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
313 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
314
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
315 static const uint8_t mbMotionVectorTable[17][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
316 { 0x1, 1 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
317 { 0x1, 2 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
318 { 0x1, 3 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
319 { 0x1, 4 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
320 { 0x3, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
321 { 0x5, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
322 { 0x4, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
323 { 0x3, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
324 { 0xb, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
325 { 0xa, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
326 { 0x9, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
327 { 0x11, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
328 { 0x10, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
329 { 0xf, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
330 { 0xe, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
331 { 0xd, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
332 { 0xc, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
333 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
334
1837
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
335 static const AVRational frame_rate_tab[] = {
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
336 { 0, 0},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
337 {24000, 1001},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
338 { 24, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
339 { 25, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
340 {30000, 1001},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
341 { 30, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
342 { 50, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
343 {60000, 1001},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
344 { 60, 1},
1126
77ccf7fe3bd0 per context frame_rate_base, this should finally fix frame_rate related av sync issues
michaelni
parents: 1106
diff changeset
345 // Xing's 15fps: (9)
1837
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
346 { 15, 1},
1126
77ccf7fe3bd0 per context frame_rate_base, this should finally fix frame_rate related av sync issues
michaelni
parents: 1106
diff changeset
347 // libmpeg3's "Unofficial economy rates": (10-13)
1837
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
348 { 5, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
349 { 10, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
350 { 12, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
351 { 15, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
352 { 0, 0},
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
353 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
354
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
355 static const uint8_t non_linear_qscale[32] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
356 0, 1, 2, 3, 4, 5, 6, 7,
986e461dc072 Initial revision
glantau
parents:
diff changeset
357 8,10,12,14,16,18,20,22,
986e461dc072 Initial revision
glantau
parents:
diff changeset
358 24,28,32,36,40,44,48,52,
986e461dc072 Initial revision
glantau
parents:
diff changeset
359 56,64,72,80,88,96,104,112,
986e461dc072 Initial revision
glantau
parents:
diff changeset
360 };
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
361
1993
michael
parents: 1986
diff changeset
362 uint8_t ff_mpeg1_dc_scale_table[128]={
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
363 // 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
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
364 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
365 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
366 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
367 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
368 };
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
369
1993
michael
parents: 1986
diff changeset
370 static uint8_t mpeg2_dc_scale_table1[128]={
michael
parents: 1986
diff changeset
371 // 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
michael
parents: 1986
diff changeset
372 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
michael
parents: 1986
diff changeset
373 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
michael
parents: 1986
diff changeset
374 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
michael
parents: 1986
diff changeset
375 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
michael
parents: 1986
diff changeset
376 };
michael
parents: 1986
diff changeset
377
michael
parents: 1986
diff changeset
378 static uint8_t mpeg2_dc_scale_table2[128]={
michael
parents: 1986
diff changeset
379 // 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
michael
parents: 1986
diff changeset
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
michael
parents: 1986
diff changeset
381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
michael
parents: 1986
diff changeset
382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
michael
parents: 1986
diff changeset
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
michael
parents: 1986
diff changeset
384 };
michael
parents: 1986
diff changeset
385
michael
parents: 1986
diff changeset
386 static uint8_t mpeg2_dc_scale_table3[128]={
michael
parents: 1986
diff changeset
387 // 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
michael
parents: 1986
diff changeset
388 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
michael
parents: 1986
diff changeset
389 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
michael
parents: 1986
diff changeset
390 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
michael
parents: 1986
diff changeset
391 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
michael
parents: 1986
diff changeset
392 };
michael
parents: 1986
diff changeset
393
michael
parents: 1986
diff changeset
394 static uint8_t *mpeg2_dc_scale_table[4]={
michael
parents: 1986
diff changeset
395 ff_mpeg1_dc_scale_table,
michael
parents: 1986
diff changeset
396 mpeg2_dc_scale_table1,
michael
parents: 1986
diff changeset
397 mpeg2_dc_scale_table2,
michael
parents: 1986
diff changeset
398 mpeg2_dc_scale_table3,
michael
parents: 1986
diff changeset
399 };
michael
parents: 1986
diff changeset
400
917
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
401 static const float mpeg1_aspect[16]={
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
402 0.0000,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
403 1.0000,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
404 0.6735,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
405 0.7031,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
406
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
407 0.7615,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
408 0.8055,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
409 0.8437,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
410 0.8935,
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
411
917
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
412 0.9157,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
413 0.9815,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
414 1.0255,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
415 1.0695,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
416
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
417 1.0950,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
418 1.1575,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
419 1.2015,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
420 };
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
421
1548
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
422 static const AVRational mpeg2_aspect[16]={
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
423 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
424 {1,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
425 {4,3},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
426 {16,9},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
427 {221,100},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
428 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
429 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
430 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
431 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
432 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
433 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
434 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
435 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
436 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
437 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
438 {0,1},
917
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
439 };
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
440
1721
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
441 static const uint8_t svcd_scan_offset_placeholder[14]={
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
442 0x10, 0x0E,
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
443 0x00, 0x80, 0x81,
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
444 0x00, 0x80, 0x81,
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
445 0xff, 0xff, 0xff,
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
446 0xff, 0xff, 0xff,
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
447 };