5937
|
1 /*
|
|
2 * RealVideo 3 decoder
|
|
3 * copyright (c) 2007 Konstantin Shishkov
|
|
4 *
|
|
5 * This file is part of FFmpeg.
|
|
6 *
|
|
7 * FFmpeg is free software; you can redistribute it and/or
|
|
8 * modify it under the terms of the GNU Lesser General Public
|
|
9 * License as published by the Free Software Foundation; either
|
|
10 * version 2.1 of the License, or (at your option) any later version.
|
|
11 *
|
|
12 * FFmpeg is distributed in the hope that it will be useful,
|
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
15 * Lesser General Public License for more details.
|
|
16 *
|
|
17 * You should have received a copy of the GNU Lesser General Public
|
|
18 * License along with FFmpeg; if not, write to the Free Software
|
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
20 */
|
|
21
|
|
22 /**
|
|
23 * @file rv30data.h
|
5943
|
24 * miscellaneous RV30 tables
|
5937
|
25 */
|
|
26
|
|
27 #ifndef FFMPEG_RV30DATA_H
|
|
28 #define FFMPEG_RV30DATA_H
|
|
29
|
|
30 #include <stdint.h>
|
|
31
|
|
32 /** DC quantizer mapping for RV30 */
|
|
33 static const uint8_t rv30_luma_dc_quant[32] = {
|
|
34 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
35 16, 17, 18, 19, 20, 21, 22, 22, 22, 23, 23, 23, 24, 24, 25, 25
|
|
36 };
|
|
37
|
|
38 /**
|
5943
|
39 * This table is used for storing the differences
|
|
40 * between the predicted and the real intra type.
|
5937
|
41 */
|
|
42 static const uint8_t rv30_itype_code[9*9*2] = {
|
|
43 0, 0, 0, 1, 1, 0, 1, 1, 0, 2, 2, 0, 0, 3, 3, 0, 1, 2,
|
|
44 2, 1, 0, 4, 4, 0, 3, 1, 1, 3, 0, 5, 5, 0, 2, 2, 1, 4,
|
|
45 4, 1, 0, 6, 3, 2, 1, 5, 2, 3, 5, 1, 6, 0, 0, 7, 4, 2,
|
|
46 2, 4, 3, 3, 6, 1, 1, 6, 7, 0, 0, 8, 5, 2, 4, 3, 2, 5,
|
|
47 3, 4, 1, 7, 4, 4, 7, 1, 8, 0, 6, 2, 3, 5, 5, 3, 2, 6,
|
|
48 1, 8, 2, 7, 7, 2, 8, 1, 5, 4, 4, 5, 3, 6, 6, 3, 8, 2,
|
|
49 4, 6, 5, 5, 6, 4, 2, 8, 7, 3, 3, 7, 6, 5, 5, 6, 7, 4,
|
|
50 4, 7, 8, 3, 3, 8, 7, 5, 8, 4, 5, 7, 4, 8, 6, 6, 7, 6,
|
|
51 5, 8, 8, 5, 6, 7, 8, 6, 7, 7, 6, 8, 8, 7, 7, 8, 8, 8,
|
|
52 };
|
|
53
|
|
54 /**
|
5943
|
55 * This table is used for retrieving the current intra type
|
|
56 * based on its neighbors and adjustment provided by
|
5937
|
57 * code read and decoded before.
|
|
58 *
|
5943
|
59 * This is really a three-dimensional matrix with dimensions
|
|
60 * [-1..9][-1..9][0..9]. The first and second coordinates are
|
|
61 * detemined by the top and left neighbors (-1 if unavailable).
|
5937
|
62 */
|
|
63 static const uint8_t rv30_itype_from_context[900] = {
|
|
64 0, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
65 0, 2, 9, 9, 9, 9, 9, 9, 9,
|
|
66 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
67 2, 0, 9, 9, 9, 9, 9, 9, 9,
|
|
68 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
69 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
70 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
71 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
72 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
73 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
74
|
|
75 0, 1, 9, 9, 9, 9, 9, 9, 9,
|
|
76 0, 2, 1, 6, 4, 8, 5, 7, 3,
|
|
77 1, 0, 2, 6, 5, 4, 3, 8, 7,
|
|
78 2, 8, 0, 1, 7, 4, 3, 6, 5,
|
|
79 2, 0, 1, 3, 8, 5, 4, 7, 6,
|
|
80 2, 0, 1, 4, 6, 7, 8, 3, 5,
|
|
81 0, 1, 5, 2, 6, 3, 8, 4, 7,
|
|
82 0, 1, 6, 2, 4, 7, 5, 8, 3,
|
|
83 2, 7, 0, 1, 4, 8, 6, 3, 5,
|
|
84 2, 8, 0, 1, 7, 3, 4, 5, 6,
|
|
85
|
|
86 1, 0, 9, 9, 9, 9, 9, 9, 9,
|
|
87 1, 2, 5, 6, 3, 0, 4, 8, 7,
|
|
88 1, 6, 2, 5, 3, 0, 4, 8, 7,
|
|
89 2, 1, 7, 6, 8, 3, 5, 0, 4,
|
|
90 1, 2, 5, 3, 6, 8, 4, 7, 0,
|
|
91 1, 6, 2, 0, 4, 5, 8, 7, 3,
|
|
92 1, 5, 2, 6, 3, 8, 4, 0, 7,
|
|
93 1, 6, 0, 2, 4, 5, 7, 3, 8,
|
|
94 2, 1, 7, 6, 0, 8, 5, 4, 3,
|
|
95 1, 2, 7, 8, 3, 4, 5, 6, 0,
|
|
96
|
|
97 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
98 0, 2, 1, 8, 7, 6, 5, 4, 3,
|
|
99 1, 2, 0, 6, 5, 7, 4, 8, 3,
|
|
100 2, 8, 7, 1, 0, 6, 4, 3, 5,
|
|
101 2, 0, 8, 1, 3, 7, 5, 4, 6,
|
|
102 2, 0, 4, 1, 7, 8, 6, 3, 5,
|
|
103 2, 0, 1, 5, 8, 4, 6, 7, 3,
|
|
104 2, 0, 6, 1, 4, 7, 8, 5, 3,
|
|
105 2, 7, 8, 1, 0, 5, 4, 6, 3,
|
|
106 2, 8, 7, 1, 0, 4, 3, 6, 5,
|
|
107
|
|
108 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
109 0, 2, 1, 3, 5, 8, 6, 4, 7,
|
|
110 1, 0, 2, 5, 3, 6, 4, 8, 7,
|
|
111 2, 8, 1, 0, 3, 5, 7, 6, 4,
|
|
112 3, 2, 5, 8, 1, 4, 6, 7, 0,
|
|
113 4, 2, 0, 6, 1, 5, 8, 3, 7,
|
|
114 5, 3, 1, 2, 8, 6, 4, 0, 7,
|
|
115 1, 6, 0, 2, 4, 5, 8, 3, 7,
|
|
116 2, 7, 0, 1, 5, 4, 8, 6, 3,
|
|
117 2, 8, 3, 5, 1, 0, 7, 6, 4,
|
|
118
|
|
119 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
120 2, 0, 6, 1, 4, 7, 5, 8, 3,
|
|
121 1, 6, 2, 0, 4, 5, 3, 7, 8,
|
|
122 2, 8, 7, 6, 4, 0, 1, 5, 3,
|
|
123 4, 2, 1, 0, 6, 8, 3, 5, 7,
|
|
124 4, 2, 6, 0, 1, 5, 7, 8, 3,
|
|
125 1, 2, 5, 0, 6, 3, 4, 7, 8,
|
|
126 6, 4, 0, 1, 2, 7, 5, 3, 8,
|
|
127 2, 7, 4, 6, 0, 1, 8, 5, 3,
|
|
128 2, 8, 7, 4, 6, 1, 3, 5, 0,
|
|
129
|
|
130 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
131 5, 1, 2, 3, 6, 8, 0, 4, 7,
|
|
132 1, 5, 6, 3, 2, 0, 4, 8, 7,
|
|
133 2, 1, 5, 3, 6, 8, 7, 4, 0,
|
|
134 5, 3, 1, 2, 6, 8, 4, 7, 0,
|
|
135 1, 6, 2, 4, 5, 8, 0, 3, 7,
|
|
136 5, 1, 3, 6, 2, 0, 8, 4, 7,
|
|
137 1, 6, 5, 2, 0, 4, 3, 7, 8,
|
|
138 2, 7, 1, 6, 5, 0, 8, 3, 4,
|
|
139 2, 5, 1, 3, 6, 8, 4, 0, 7,
|
|
140
|
|
141 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
142 1, 6, 2, 0, 5, 4, 3, 7, 8,
|
|
143 1, 6, 5, 4, 2, 3, 0, 7, 8,
|
|
144 2, 1, 6, 7, 4, 8, 5, 3, 0,
|
|
145 2, 1, 6, 5, 8, 4, 3, 0, 7,
|
|
146 6, 4, 1, 2, 0, 5, 7, 8, 3,
|
|
147 1, 6, 5, 2, 3, 0, 4, 8, 7,
|
|
148 6, 1, 4, 0, 2, 7, 5, 3, 8,
|
|
149 2, 7, 4, 6, 1, 5, 0, 8, 3,
|
|
150 2, 1, 6, 8, 4, 7, 3, 5, 0,
|
|
151
|
|
152 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
153 2, 0, 4, 7, 6, 1, 8, 5, 3,
|
|
154 6, 1, 2, 0, 4, 7, 5, 8, 3,
|
|
155 2, 7, 8, 0, 1, 6, 4, 3, 5,
|
|
156 2, 4, 0, 8, 3, 1, 7, 6, 5,
|
|
157 4, 2, 7, 0, 6, 1, 8, 5, 3,
|
|
158 2, 1, 0, 8, 5, 6, 7, 4, 3,
|
|
159 2, 6, 4, 1, 7, 0, 5, 8, 3,
|
|
160 2, 7, 4, 0, 8, 6, 1, 5, 3,
|
|
161 2, 8, 7, 4, 1, 0, 3, 6, 5,
|
|
162
|
|
163 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
164 2, 0, 8, 1, 3, 4, 6, 5, 7,
|
|
165 1, 2, 0, 6, 8, 5, 7, 3, 4,
|
|
166 2, 8, 7, 1, 0, 3, 6, 5, 4,
|
|
167 8, 3, 2, 5, 1, 0, 4, 7, 6,
|
|
168 2, 0, 4, 8, 5, 1, 7, 6, 3,
|
|
169 2, 1, 0, 8, 5, 3, 6, 4, 7,
|
|
170 2, 1, 6, 0, 8, 4, 5, 7, 3,
|
|
171 2, 7, 8, 4, 0, 6, 1, 5, 3,
|
|
172 2, 8, 3, 0, 7, 4, 1, 6, 5,
|
|
173 };
|
|
174 #endif /* FFMPEG_RV30DATA_H */
|