Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4349 Serge 1
/*
2
 * LucasArts Smush video decoder
3
 * Copyright (c) 2006 Cyril Zorin
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
#ifndef AVCODEC_SANM_DATA_H
23
#define AVCODEC_SANM_DATA_H
24
 
25
#include 
26
 
27
#define GLYPH_COORD_VECT_SIZE 16
28
 
29
static const int8_t glyph4_x[GLYPH_COORD_VECT_SIZE] =
30
    { 0, 1, 2, 3, 3, 3, 3, 2, 1, 0, 0, 0, 1, 2, 2, 1 };
31
static const int8_t glyph4_y[GLYPH_COORD_VECT_SIZE] =
32
    { 0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 2, 1, 1, 1, 2, 2 };
33
static const int8_t glyph8_x[GLYPH_COORD_VECT_SIZE] =
34
    { 0, 2, 5, 7, 7, 7, 7, 7, 7, 5, 2, 0, 0, 0, 0, 0 };
35
static const int8_t glyph8_y[GLYPH_COORD_VECT_SIZE] =
36
    { 0, 0, 0, 0, 1, 3, 4, 6, 7, 7, 7, 7, 6, 4, 3, 1 };
37
 
38
static const int8_t motion_vectors[256][2] =
39
{
40
    {  0,   0}, { -1, -43}, {  6, -43}, { -9, -42}, { 13, -41},
41
    {-16, -40}, { 19, -39}, {-23, -36}, { 26, -34}, { -2, -33},
42
    {  4, -33}, {-29, -32}, { -9, -32}, { 11, -31}, {-16, -29},
43
    { 32, -29}, { 18, -28}, {-34, -26}, {-22, -25}, { -1, -25},
44
    {  3, -25}, { -7, -24}, {  8, -24}, { 24, -23}, { 36, -23},
45
    {-12, -22}, { 13, -21}, {-38, -20}, {  0, -20}, {-27, -19},
46
    { -4, -19}, {  4, -19}, {-17, -18}, { -8, -17}, {  8, -17},
47
    { 18, -17}, { 28, -17}, { 39, -17}, {-12, -15}, { 12, -15},
48
    {-21, -14}, { -1, -14}, {  1, -14}, {-41, -13}, { -5, -13},
49
    {  5, -13}, { 21, -13}, {-31, -12}, {-15, -11}, { -8, -11},
50
    {  8, -11}, { 15, -11}, { -2, -10}, {  1, -10}, { 31, -10},
51
    {-23,  -9}, {-11,  -9}, { -5,  -9}, {  4,  -9}, { 11,  -9},
52
    { 42,  -9}, {  6,  -8}, { 24,  -8}, {-18,  -7}, { -7,  -7},
53
    { -3,  -7}, { -1,  -7}, {  2,  -7}, { 18,  -7}, {-43,  -6},
54
    {-13,  -6}, { -4,  -6}, {  4,  -6}, {  8,  -6}, {-33,  -5},
55
    { -9,  -5}, { -2,  -5}, {  0,  -5}, {  2,  -5}, {  5,  -5},
56
    { 13,  -5}, {-25,  -4}, { -6,  -4}, { -3,  -4}, {  3,  -4},
57
    {  9,  -4}, {-19,  -3}, { -7,  -3}, { -4,  -3}, { -2,  -3},
58
    { -1,  -3}, {  0,  -3}, {  1,  -3}, {  2,  -3}, {  4,  -3},
59
    {  6,  -3}, { 33,  -3}, {-14,  -2}, {-10,  -2}, { -5,  -2},
60
    { -3,  -2}, { -2,  -2}, { -1,  -2}, {  0,  -2}, {  1,  -2},
61
    {  2,  -2}, {  3,  -2}, {  5,  -2}, {  7,  -2}, { 14,  -2},
62
    { 19,  -2}, { 25,  -2}, { 43,  -2}, { -7,  -1}, { -3,  -1},
63
    { -2,  -1}, { -1,  -1}, {  0,  -1}, {  1,  -1}, {  2,  -1},
64
    {  3,  -1}, { 10,  -1}, { -5,   0}, { -3,   0}, { -2,   0},
65
    { -1,   0}, {  1,   0}, {  2,   0}, {  3,   0}, {  5,   0},
66
    {  7,   0}, {-10,   1}, { -7,   1}, { -3,   1}, { -2,   1},
67
    { -1,   1}, {  0,   1}, {  1,   1}, {  2,   1}, {  3,   1},
68
    {-43,   2}, {-25,   2}, {-19,   2}, {-14,   2}, { -5,   2},
69
    { -3,   2}, { -2,   2}, { -1,   2}, {  0,   2}, {  1,   2},
70
    {  2,   2}, {  3,   2}, {  5,   2}, {  7,   2}, { 10,   2},
71
    { 14,   2}, {-33,   3}, { -6,   3}, { -4,   3}, { -2,   3},
72
    { -1,   3}, {  0,   3}, {  1,   3}, {  2,   3}, {  4,   3},
73
    { 19,   3}, { -9,   4}, { -3,   4}, {  3,   4}, {  7,   4},
74
    { 25,   4}, {-13,   5}, { -5,   5}, { -2,   5}, {  0,   5},
75
    {  2,   5}, {  5,   5}, {  9,   5}, { 33,   5}, { -8,   6},
76
    { -4,   6}, {  4,   6}, { 13,   6}, { 43,   6}, {-18,   7},
77
    { -2,   7}, {  0,   7}, {  2,   7}, {  7,   7}, { 18,   7},
78
    {-24,   8}, { -6,   8}, {-42,   9}, {-11,   9}, { -4,   9},
79
    {  5,   9}, { 11,   9}, { 23,   9}, {-31,  10}, { -1,  10},
80
    {  2,  10}, {-15,  11}, { -8,  11}, {  8,  11}, { 15,  11},
81
    { 31,  12}, {-21,  13}, { -5,  13}, {  5,  13}, { 41,  13},
82
    { -1,  14}, {  1,  14}, { 21,  14}, {-12,  15}, { 12,  15},
83
    {-39,  17}, {-28,  17}, {-18,  17}, { -8,  17}, {  8,  17},
84
    { 17,  18}, { -4,  19}, {  0,  19}, {  4,  19}, { 27,  19},
85
    { 38,  20}, {-13,  21}, { 12,  22}, {-36,  23}, {-24,  23},
86
    { -8,  24}, {  7,  24}, { -3,  25}, {  1,  25}, { 22,  25},
87
    { 34,  26}, {-18,  28}, {-32,  29}, { 16,  29}, {-11,  31},
88
    {  9,  32}, { 29,  32}, { -4,  33}, {  2,  33}, {-26,  34},
89
    { 23,  36}, {-19,  39}, { 16,  40}, {-13,  41}, {  9,  42},
90
    { -6,  43}, {  1,  43}, {  0,   0}, {  0,   0}, {  0,   0},
91
};
92
 
93
static const int8_t c37_mv[] = {
94
    0,   0,   1,   0,   2,   0,   3,   0,   5,   0,
95
    8,   0,  13,   0,  21,   0,  -1,   0,  -2,   0,
96
   -3,   0,  -5,   0,  -8,   0, -13,   0, -17,   0,
97
  -21,   0,   0,   1,   1,   1,   2,   1,   3,   1,
98
    5,   1,   8,   1,  13,   1,  21,   1,  -1,   1,
99
   -2,   1,  -3,   1,  -5,   1,  -8,   1, -13,   1,
100
  -17,   1, -21,   1,   0,   2,   1,   2,   2,   2,
101
    3,   2,   5,   2,   8,   2,  13,   2,  21,   2,
102
   -1,   2,  -2,   2,  -3,   2,  -5,   2,  -8,   2,
103
  -13,   2, -17,   2, -21,   2,   0,   3,   1,   3,
104
    2,   3,   3,   3,   5,   3,   8,   3,  13,   3,
105
   21,   3,  -1,   3,  -2,   3,  -3,   3,  -5,   3,
106
   -8,   3, -13,   3, -17,   3, -21,   3,   0,   5,
107
    1,   5,   2,   5,   3,   5,   5,   5,   8,   5,
108
   13,   5,  21,   5,  -1,   5,  -2,   5,  -3,   5,
109
   -5,   5,  -8,   5, -13,   5, -17,   5, -21,   5,
110
    0,   8,   1,   8,   2,   8,   3,   8,   5,   8,
111
    8,   8,  13,   8,  21,   8,  -1,   8,  -2,   8,
112
   -3,   8,  -5,   8,  -8,   8, -13,   8, -17,   8,
113
  -21,   8,   0,  13,   1,  13,   2,  13,   3,  13,
114
    5,  13,   8,  13,  13,  13,  21,  13,  -1,  13,
115
   -2,  13,  -3,  13,  -5,  13,  -8,  13, -13,  13,
116
  -17,  13, -21,  13,   0,  21,   1,  21,   2,  21,
117
    3,  21,   5,  21,   8,  21,  13,  21,  21,  21,
118
   -1,  21,  -2,  21,  -3,  21,  -5,  21,  -8,  21,
119
  -13,  21, -17,  21, -21,  21,   0,  -1,   1,  -1,
120
    2,  -1,   3,  -1,   5,  -1,   8,  -1,  13,  -1,
121
   21,  -1,  -1,  -1,  -2,  -1,  -3,  -1,  -5,  -1,
122
   -8,  -1, -13,  -1, -17,  -1, -21,  -1,   0,  -2,
123
    1,  -2,   2,  -2,   3,  -2,   5,  -2,   8,  -2,
124
   13,  -2,  21,  -2,  -1,  -2,  -2,  -2,  -3,  -2,
125
   -5,  -2,  -8,  -2, -13,  -2, -17,  -2, -21,  -2,
126
    0,  -3,   1,  -3,   2,  -3,   3,  -3,   5,  -3,
127
    8,  -3,  13,  -3,  21,  -3,  -1,  -3,  -2,  -3,
128
   -3,  -3,  -5,  -3,  -8,  -3, -13,  -3, -17,  -3,
129
  -21,  -3,   0,  -5,   1,  -5,   2,  -5,   3,  -5,
130
    5,  -5,   8,  -5,  13,  -5,  21,  -5,  -1,  -5,
131
   -2,  -5,  -3,  -5,  -5,  -5,  -8,  -5, -13,  -5,
132
  -17,  -5, -21,  -5,   0,  -8,   1,  -8,   2,  -8,
133
    3,  -8,   5,  -8,   8,  -8,  13,  -8,  21,  -8,
134
   -1,  -8,  -2,  -8,  -3,  -8,  -5,  -8,  -8,  -8,
135
  -13,  -8, -17,  -8, -21,  -8,   0, -13,   1, -13,
136
    2, -13,   3, -13,   5, -13,   8, -13,  13, -13,
137
   21, -13,  -1, -13,  -2, -13,  -3, -13,  -5, -13,
138
   -8, -13, -13, -13, -17, -13, -21, -13,   0, -17,
139
    1, -17,   2, -17,   3, -17,   5, -17,   8, -17,
140
   13, -17,  21, -17,  -1, -17,  -2, -17,  -3, -17,
141
   -5, -17,  -8, -17, -13, -17, -17, -17, -21, -17,
142
    0, -21,   1, -21,   2, -21,   3, -21,   5, -21,
143
    8, -21,  13, -21,  21, -21,  -1, -21,  -2, -21,
144
   -3, -21,  -5, -21,  -8, -21, -13, -21, -17, -21,
145
    0,   0,  -8, -29,   8, -29, -18, -25,  17, -25,
146
    0, -23,  -6, -22,   6, -22, -13, -19,  12, -19,
147
    0, -18,  25, -18, -25, -17,  -5, -17,   5, -17,
148
  -10, -15,  10, -15,   0, -14,  -4, -13,   4, -13,
149
   19, -13, -19, -12,  -8, -11,  -2, -11,   0, -11,
150
    2, -11,   8, -11, -15, -10,  -4, -10,   4, -10,
151
   15, -10,  -6,  -9,  -1,  -9,   1,  -9,   6,  -9,
152
  -29,  -8, -11,  -8,  -8,  -8,  -3,  -8,   3,  -8,
153
    8,  -8,  11,  -8,  29,  -8,  -5,  -7,  -2,  -7,
154
    0,  -7,   2,  -7,   5,  -7, -22,  -6,  -9,  -6,
155
   -6,  -6,  -3,  -6,  -1,  -6,   1,  -6,   3,  -6,
156
    6,  -6,   9,  -6,  22,  -6, -17,  -5,  -7,  -5,
157
   -4,  -5,  -2,  -5,   0,  -5,   2,  -5,   4,  -5,
158
    7,  -5,  17,  -5, -13,  -4, -10,  -4,  -5,  -4,
159
   -3,  -4,  -1,  -4,   0,  -4,   1,  -4,   3,  -4,
160
    5,  -4,  10,  -4,  13,  -4,  -8,  -3,  -6,  -3,
161
   -4,  -3,  -3,  -3,  -2,  -3,  -1,  -3,   0,  -3,
162
    1,  -3,   2,  -3,   4,  -3,   6,  -3,   8,  -3,
163
  -11,  -2,  -7,  -2,  -5,  -2,  -3,  -2,  -2,  -2,
164
   -1,  -2,   0,  -2,   1,  -2,   2,  -2,   3,  -2,
165
    5,  -2,   7,  -2,  11,  -2,  -9,  -1,  -6,  -1,
166
   -4,  -1,  -3,  -1,  -2,  -1,  -1,  -1,   0,  -1,
167
    1,  -1,   2,  -1,   3,  -1,   4,  -1,   6,  -1,
168
    9,  -1, -31,   0, -23,   0, -18,   0, -14,   0,
169
  -11,   0,  -7,   0,  -5,   0,  -4,   0,  -3,   0,
170
   -2,   0,  -1,   0,   0, -31,   1,   0,   2,   0,
171
    3,   0,   4,   0,   5,   0,   7,   0,  11,   0,
172
   14,   0,  18,   0,  23,   0,  31,   0,  -9,   1,
173
   -6,   1,  -4,   1,  -3,   1,  -2,   1,  -1,   1,
174
    0,   1,   1,   1,   2,   1,   3,   1,   4,   1,
175
    6,   1,   9,   1, -11,   2,  -7,   2,  -5,   2,
176
   -3,   2,  -2,   2,  -1,   2,   0,   2,   1,   2,
177
    2,   2,   3,   2,   5,   2,   7,   2,  11,   2,
178
   -8,   3,  -6,   3,  -4,   3,  -2,   3,  -1,   3,
179
    0,   3,   1,   3,   2,   3,   3,   3,   4,   3,
180
    6,   3,   8,   3, -13,   4, -10,   4,  -5,   4,
181
   -3,   4,  -1,   4,   0,   4,   1,   4,   3,   4,
182
    5,   4,  10,   4,  13,   4, -17,   5,  -7,   5,
183
   -4,   5,  -2,   5,   0,   5,   2,   5,   4,   5,
184
    7,   5,  17,   5, -22,   6,  -9,   6,  -6,   6,
185
   -3,   6,  -1,   6,   1,   6,   3,   6,   6,   6,
186
    9,   6,  22,   6,  -5,   7,  -2,   7,   0,   7,
187
    2,   7,   5,   7, -29,   8, -11,   8,  -8,   8,
188
   -3,   8,   3,   8,   8,   8,  11,   8,  29,   8,
189
   -6,   9,  -1,   9,   1,   9,   6,   9, -15,  10,
190
   -4,  10,   4,  10,  15,  10,  -8,  11,  -2,  11,
191
    0,  11,   2,  11,   8,  11,  19,  12, -19,  13,
192
   -4,  13,   4,  13,   0,  14, -10,  15,  10,  15,
193
   -5,  17,   5,  17,  25,  17, -25,  18,   0,  18,
194
  -12,  19,  13,  19,  -6,  22,   6,  22,   0,  23,
195
  -17,  25,  18,  25,  -8,  29,   8,  29,   0,  31,
196
    0,   0,  -6, -22,   6, -22, -13, -19,  12, -19,
197
    0, -18,  -5, -17,   5, -17, -10, -15,  10, -15,
198
    0, -14,  -4, -13,   4, -13,  19, -13, -19, -12,
199
   -8, -11,  -2, -11,   0, -11,   2, -11,   8, -11,
200
  -15, -10,  -4, -10,   4, -10,  15, -10,  -6,  -9,
201
   -1,  -9,   1,  -9,   6,  -9, -11,  -8,  -8,  -8,
202
   -3,  -8,   0,  -8,   3,  -8,   8,  -8,  11,  -8,
203
   -5,  -7,  -2,  -7,   0,  -7,   2,  -7,   5,  -7,
204
  -22,  -6,  -9,  -6,  -6,  -6,  -3,  -6,  -1,  -6,
205
    1,  -6,   3,  -6,   6,  -6,   9,  -6,  22,  -6,
206
  -17,  -5,  -7,  -5,  -4,  -5,  -2,  -5,  -1,  -5,
207
    0,  -5,   1,  -5,   2,  -5,   4,  -5,   7,  -5,
208
   17,  -5, -13,  -4, -10,  -4,  -5,  -4,  -3,  -4,
209
   -2,  -4,  -1,  -4,   0,  -4,   1,  -4,   2,  -4,
210
    3,  -4,   5,  -4,  10,  -4,  13,  -4,  -8,  -3,
211
   -6,  -3,  -4,  -3,  -3,  -3,  -2,  -3,  -1,  -3,
212
    0,  -3,   1,  -3,   2,  -3,   3,  -3,   4,  -3,
213
    6,  -3,   8,  -3, -11,  -2,  -7,  -2,  -5,  -2,
214
   -4,  -2,  -3,  -2,  -2,  -2,  -1,  -2,   0,  -2,
215
    1,  -2,   2,  -2,   3,  -2,   4,  -2,   5,  -2,
216
    7,  -2,  11,  -2,  -9,  -1,  -6,  -1,  -5,  -1,
217
   -4,  -1,  -3,  -1,  -2,  -1,  -1,  -1,   0,  -1,
218
    1,  -1,   2,  -1,   3,  -1,   4,  -1,   5,  -1,
219
    6,  -1,   9,  -1, -23,   0, -18,   0, -14,   0,
220
  -11,   0,  -7,   0,  -5,   0,  -4,   0,  -3,   0,
221
   -2,   0,  -1,   0,   0, -23,   1,   0,   2,   0,
222
    3,   0,   4,   0,   5,   0,   7,   0,  11,   0,
223
   14,   0,  18,   0,  23,   0,  -9,   1,  -6,   1,
224
   -5,   1,  -4,   1,  -3,   1,  -2,   1,  -1,   1,
225
    0,   1,   1,   1,   2,   1,   3,   1,   4,   1,
226
    5,   1,   6,   1,   9,   1, -11,   2,  -7,   2,
227
   -5,   2,  -4,   2,  -3,   2,  -2,   2,  -1,   2,
228
    0,   2,   1,   2,   2,   2,   3,   2,   4,   2,
229
    5,   2,   7,   2,  11,   2,  -8,   3,  -6,   3,
230
   -4,   3,  -3,   3,  -2,   3,  -1,   3,   0,   3,
231
    1,   3,   2,   3,   3,   3,   4,   3,   6,   3,
232
    8,   3, -13,   4, -10,   4,  -5,   4,  -3,   4,
233
   -2,   4,  -1,   4,   0,   4,   1,   4,   2,   4,
234
    3,   4,   5,   4,  10,   4,  13,   4, -17,   5,
235
   -7,   5,  -4,   5,  -2,   5,  -1,   5,   0,   5,
236
    1,   5,   2,   5,   4,   5,   7,   5,  17,   5,
237
  -22,   6,  -9,   6,  -6,   6,  -3,   6,  -1,   6,
238
    1,   6,   3,   6,   6,   6,   9,   6,  22,   6,
239
   -5,   7,  -2,   7,   0,   7,   2,   7,   5,   7,
240
  -11,   8,  -8,   8,  -3,   8,   0,   8,   3,   8,
241
    8,   8,  11,   8,  -6,   9,  -1,   9,   1,   9,
242
    6,   9, -15,  10,  -4,  10,   4,  10,  15,  10,
243
   -8,  11,  -2,  11,   0,  11,   2,  11,   8,  11,
244
   19,  12, -19,  13,  -4,  13,   4,  13,   0,  14,
245
  -10,  15,  10,  15,  -5,  17,   5,  17,   0,  18,
246
  -12,  19,  13,  19,  -6,  22,   6,  22,   0,  23,
247
};
248
#endif /* AVCODEC_SANM_DATA_H */