~ubuntu-branches/ubuntu/trusty/gavl/trusty

« back to all changes in this revision

Viewing changes to gavl/c/scale_quadratic_noclip_c.c

  • Committer: Bazaar Package Importer
  • Author(s): Romain Beauxis
  • Date: 2009-01-17 20:38:33 UTC
  • mfrom: (1.1.3 upstream) (4.1.1 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090117203833-t8fq1e1jdquyelmy
Tags: 1.1.0-2
Fixed debian/copyright 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*****************************************************************
 
2
 * gavl - a general purpose audio/video processing library
 
3
 *
 
4
 * Copyright (c) 2001 - 2008 Members of the Gmerlin project
 
5
 * gmerlin-general@lists.sourceforge.net
 
6
 * http://gmerlin.sourceforge.net
 
7
 *
 
8
 * This program is free software: you can redistribute it and/or modify
 
9
 * it under the terms of the GNU General Public License as published by
 
10
 * the Free Software Foundation, either version 2 of the License, or
 
11
 * (at your option) any later version.
 
12
 *
 
13
 * This program is distributed in the hope that it will be useful,
 
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
 * GNU General Public License for more details.
 
17
 *
 
18
 * You should have received a copy of the GNU General Public License
 
19
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
20
 * *****************************************************************/
 
21
 
 
22
#include <stdio.h>
 
23
#include <gavl/gavl.h>
 
24
#include <video.h>
 
25
#include <scale.h>
 
26
 
 
27
#include "scale_macros.h"
 
28
 
 
29
/* x-Direction */
 
30
 
 
31
#define FUNC_NAME scale_rgb_15_x_quadratic_c
 
32
#define TYPE color_15
 
33
#define SCALE \
 
34
  dst->r = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1->r + \
 
35
            ctx->table_h.pixels[i].factor_i[1] * src_2->r + \
 
36
            ctx->table_h.pixels[i].factor_i[2] * src_3->r, 16);    \
 
37
  dst->g = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1->g + \
 
38
            ctx->table_h.pixels[i].factor_i[1] * src_2->g + \
 
39
            ctx->table_h.pixels[i].factor_i[2] * src_3->g, 16);    \
 
40
  dst->b = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1->b + \
 
41
            ctx->table_h.pixels[i].factor_i[1] * src_2->b + \
 
42
            ctx->table_h.pixels[i].factor_i[2] * src_3->b, 16);
 
43
 
 
44
#define NUM_TAPS 3
 
45
#include "scale_x.h"
 
46
 
 
47
#define FUNC_NAME scale_rgb_16_x_quadratic_c
 
48
#define TYPE color_16
 
49
#define SCALE \
 
50
  dst->r = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1->r +         \
 
51
            ctx->table_h.pixels[i].factor_i[1] * src_2->r +         \
 
52
            ctx->table_h.pixels[i].factor_i[2] * src_3->r, 16);    \
 
53
  dst->g = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1->g + \
 
54
            ctx->table_h.pixels[i].factor_i[1] * src_2->g + \
 
55
            ctx->table_h.pixels[i].factor_i[2] * src_3->g, 16);    \
 
56
  dst->b = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1->b + \
 
57
            ctx->table_h.pixels[i].factor_i[1] * src_2->b + \
 
58
            ctx->table_h.pixels[i].factor_i[2] * src_3->b, 16);
 
59
 
 
60
#define NUM_TAPS 3
 
61
#include "scale_x.h"
 
62
 
 
63
#define FUNC_NAME scale_uint8_x_1_x_quadratic_c
 
64
#define TYPE uint8_t
 
65
#define SCALE \
 
66
  dst[0] = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1[0] + \
 
67
            ctx->table_h.pixels[i].factor_i[1] * src_2[0] + \
 
68
            ctx->table_h.pixels[i].factor_i[2] * src_3[0], 16);
 
69
 
 
70
#define NUM_TAPS 3
 
71
#include "scale_x.h"
 
72
 
 
73
#define FUNC_NAME scale_uint8_x_2_x_quadratic_c
 
74
#define TYPE uint8_t
 
75
#define SCALE \
 
76
  dst[0] = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1[0] + \
 
77
            ctx->table_h.pixels[i].factor_i[1] * src_2[0] + \
 
78
            ctx->table_h.pixels[i].factor_i[2] * src_3[0], 16);\
 
79
  dst[1] = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1[1] + \
 
80
            ctx->table_h.pixels[i].factor_i[1] * src_2[1] + \
 
81
            ctx->table_h.pixels[i].factor_i[2] * src_3[1], 16);
 
82
 
 
83
#define NUM_TAPS 3
 
84
#include "scale_x.h"
 
85
 
 
86
 
 
87
#define FUNC_NAME scale_uint8_x_3_x_quadratic_c
 
88
#define TYPE uint8_t
 
89
#define SCALE \
 
90
  dst[0] = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1[0] + \
 
91
            ctx->table_h.pixels[i].factor_i[1] * src_2[0] + \
 
92
            ctx->table_h.pixels[i].factor_i[2] * src_3[0], 16);    \
 
93
  dst[1] = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1[1] + \
 
94
            ctx->table_h.pixels[i].factor_i[1] * src_2[1] + \
 
95
            ctx->table_h.pixels[i].factor_i[2] * src_3[1], 16);    \
 
96
  dst[2] = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1[2] + \
 
97
            ctx->table_h.pixels[i].factor_i[1] * src_2[2] + \
 
98
            ctx->table_h.pixels[i].factor_i[2] * src_3[2], 16);
 
99
 
 
100
#define NUM_TAPS 3
 
101
#include "scale_x.h"
 
102
 
 
103
#define FUNC_NAME scale_uint8_x_4_x_quadratic_c
 
104
#define TYPE uint8_t
 
105
#define SCALE \
 
106
  dst[0] = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1[0] + \
 
107
            ctx->table_h.pixels[i].factor_i[1] * src_2[0] + \
 
108
            ctx->table_h.pixels[i].factor_i[2] * src_3[0], 16);    \
 
109
  dst[1] = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1[1] + \
 
110
            ctx->table_h.pixels[i].factor_i[1] * src_2[1] + \
 
111
            ctx->table_h.pixels[i].factor_i[2] * src_3[1], 16);    \
 
112
  dst[2] = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1[2] + \
 
113
            ctx->table_h.pixels[i].factor_i[1] * src_2[2] + \
 
114
            ctx->table_h.pixels[i].factor_i[2] * src_3[2], 16);    \
 
115
  dst[3] = DOWNSHIFT(ctx->table_h.pixels[i].factor_i[0] * src_1[3] + \
 
116
            ctx->table_h.pixels[i].factor_i[1] * src_2[3] + \
 
117
            ctx->table_h.pixels[i].factor_i[2] * src_3[3], 16);
 
118
 
 
119
#define NUM_TAPS 3
 
120
#include "scale_x.h"
 
121
 
 
122
#define FUNC_NAME scale_uint16_x_1_x_quadratic_c
 
123
#define TYPE uint16_t
 
124
#define INIT uint32_t tmp;
 
125
#define SCALE                                                           \
 
126
  tmp = (ctx->table_h.pixels[i].factor_i[0] * src_1[0] + \
 
127
         ctx->table_h.pixels[i].factor_i[1] * src_2[0] + \
 
128
         ctx->table_h.pixels[i].factor_i[2] * src_3[0]); \
 
129
  dst[0] = DOWNSHIFT(tmp, 16);
 
130
 
 
131
#define NUM_TAPS 3
 
132
#include "scale_x.h"
 
133
 
 
134
#define FUNC_NAME scale_uint16_x_2_x_quadratic_c
 
135
#define TYPE uint16_t
 
136
#define INIT uint32_t tmp;
 
137
#define SCALE                                                           \
 
138
  tmp = (ctx->table_h.pixels[i].factor_i[0] * src_1[0] + \
 
139
         ctx->table_h.pixels[i].factor_i[1] * src_2[0] + \
 
140
         ctx->table_h.pixels[i].factor_i[2] * src_3[0]); \
 
141
  dst[0] = DOWNSHIFT(tmp, 16); \
 
142
  tmp = (ctx->table_h.pixels[i].factor_i[0] * src_1[1] + \
 
143
         ctx->table_h.pixels[i].factor_i[1] * src_2[1] + \
 
144
         ctx->table_h.pixels[i].factor_i[2] * src_3[1]); \
 
145
  dst[1] = DOWNSHIFT(tmp, 16);
 
146
 
 
147
#define NUM_TAPS 3
 
148
#include "scale_x.h"
 
149
 
 
150
#define FUNC_NAME scale_uint16_x_3_x_quadratic_c
 
151
#define TYPE uint16_t
 
152
#define INIT uint32_t tmp;
 
153
#define SCALE                                                           \
 
154
  tmp = (ctx->table_h.pixels[i].factor_i[0] * src_1[0] + \
 
155
         ctx->table_h.pixels[i].factor_i[1] * src_2[0] + \
 
156
         ctx->table_h.pixels[i].factor_i[2] * src_3[0]); \
 
157
  dst[0] = DOWNSHIFT(tmp, 16); \
 
158
  tmp = (ctx->table_h.pixels[i].factor_i[0] * src_1[1] + \
 
159
         ctx->table_h.pixels[i].factor_i[1] * src_2[1] + \
 
160
         ctx->table_h.pixels[i].factor_i[2] * src_3[1]); \
 
161
  dst[1] = DOWNSHIFT(tmp, 16); \
 
162
  tmp = (ctx->table_h.pixels[i].factor_i[0] * src_1[2] + \
 
163
         ctx->table_h.pixels[i].factor_i[1] * src_2[2] + \
 
164
         ctx->table_h.pixels[i].factor_i[2] * src_3[2]); \
 
165
  dst[2] = DOWNSHIFT(tmp, 16);
 
166
 
 
167
#define NUM_TAPS 3
 
168
#include "scale_x.h"
 
169
 
 
170
 
 
171
#define FUNC_NAME scale_uint16_x_4_x_quadratic_c
 
172
#define TYPE uint16_t
 
173
#define INIT uint32_t tmp;
 
174
#define SCALE                                                           \
 
175
  tmp = (ctx->table_h.pixels[i].factor_i[0] * src_1[0] + \
 
176
         ctx->table_h.pixels[i].factor_i[1] * src_2[0] + \
 
177
         ctx->table_h.pixels[i].factor_i[2] * src_3[0]); \
 
178
  dst[0] = DOWNSHIFT(tmp, 16); \
 
179
  tmp = (ctx->table_h.pixels[i].factor_i[0] * src_1[1] + \
 
180
         ctx->table_h.pixels[i].factor_i[1] * src_2[1] + \
 
181
         ctx->table_h.pixels[i].factor_i[2] * src_3[1]); \
 
182
  dst[1] = DOWNSHIFT(tmp, 16); \
 
183
  tmp = (ctx->table_h.pixels[i].factor_i[0] * src_1[2] + \
 
184
         ctx->table_h.pixels[i].factor_i[1] * src_2[2] + \
 
185
         ctx->table_h.pixels[i].factor_i[2] * src_3[2]); \
 
186
  dst[2] = DOWNSHIFT(tmp, 16); \
 
187
  tmp = (ctx->table_h.pixels[i].factor_i[0] * src_1[3] + \
 
188
         ctx->table_h.pixels[i].factor_i[1] * src_2[3] + \
 
189
         ctx->table_h.pixels[i].factor_i[2] * src_3[3]); \
 
190
  dst[3] = DOWNSHIFT(tmp, 16);
 
191
 
 
192
#define NUM_TAPS 3
 
193
#include "scale_x.h"
 
194
 
 
195
 
 
196
#define FUNC_NAME scale_float_x_1_x_quadratic_c
 
197
#define TYPE float
 
198
#define SCALE                                                           \
 
199
  dst[0] = (ctx->table_h.pixels[i].factor_f[0] * src_1[0] + \
 
200
            ctx->table_h.pixels[i].factor_f[1] * src_2[0] + \
 
201
            ctx->table_h.pixels[i].factor_f[2] * src_3[0]);
 
202
 
 
203
#define NUM_TAPS 3
 
204
#include "scale_x.h"
 
205
 
 
206
#define FUNC_NAME scale_float_x_2_x_quadratic_c
 
207
#define TYPE float
 
208
#define SCALE                                                           \
 
209
  dst[0] = (ctx->table_h.pixels[i].factor_f[0] * src_1[0] + \
 
210
            ctx->table_h.pixels[i].factor_f[1] * src_2[0] + \
 
211
            ctx->table_h.pixels[i].factor_f[2] * src_3[0]);         \
 
212
  dst[1] = (ctx->table_h.pixels[i].factor_f[0] * src_1[1] + \
 
213
            ctx->table_h.pixels[i].factor_f[1] * src_2[1] + \
 
214
            ctx->table_h.pixels[i].factor_f[2] * src_3[1]);
 
215
 
 
216
#define NUM_TAPS 3
 
217
#include "scale_x.h"
 
218
 
 
219
#define FUNC_NAME scale_float_x_3_x_quadratic_c
 
220
#define TYPE float
 
221
#define SCALE                                                           \
 
222
  dst[0] = (ctx->table_h.pixels[i].factor_f[0] * src_1[0] + \
 
223
            ctx->table_h.pixels[i].factor_f[1] * src_2[0] + \
 
224
            ctx->table_h.pixels[i].factor_f[2] * src_3[0]);         \
 
225
  dst[1] = (ctx->table_h.pixels[i].factor_f[0] * src_1[1] + \
 
226
            ctx->table_h.pixels[i].factor_f[1] * src_2[1] + \
 
227
            ctx->table_h.pixels[i].factor_f[2] * src_3[1]);         \
 
228
  dst[2] = (ctx->table_h.pixels[i].factor_f[0] * src_1[2] + \
 
229
            ctx->table_h.pixels[i].factor_f[1] * src_2[2] + \
 
230
            ctx->table_h.pixels[i].factor_f[2] * src_3[2]);
 
231
 
 
232
#define NUM_TAPS 3
 
233
#include "scale_x.h"
 
234
 
 
235
 
 
236
#define FUNC_NAME scale_float_x_4_x_quadratic_c
 
237
#define TYPE float
 
238
#define SCALE                                                           \
 
239
  dst[0] = (ctx->table_h.pixels[i].factor_f[0] * src_1[0] +         \
 
240
            ctx->table_h.pixels[i].factor_f[1] * src_2[0] +         \
 
241
            ctx->table_h.pixels[i].factor_f[2] * src_3[0]);         \
 
242
  dst[1] = (ctx->table_h.pixels[i].factor_f[0] * src_1[1] +         \
 
243
            ctx->table_h.pixels[i].factor_f[1] * src_2[1] +         \
 
244
            ctx->table_h.pixels[i].factor_f[2] * src_3[1]);         \
 
245
  dst[2] = (ctx->table_h.pixels[i].factor_f[0] * src_1[2] +         \
 
246
            ctx->table_h.pixels[i].factor_f[1] * src_2[2] +         \
 
247
            ctx->table_h.pixels[i].factor_f[2] * src_3[2]);         \
 
248
  dst[3] = (ctx->table_h.pixels[i].factor_f[0] * src_1[3] +         \
 
249
            ctx->table_h.pixels[i].factor_f[1] * src_2[3] +         \
 
250
            ctx->table_h.pixels[i].factor_f[2] * src_3[3]);
 
251
 
 
252
#define NUM_TAPS 3
 
253
#include "scale_x.h"
 
254
 
 
255
/* y-Direction */
 
256
 
 
257
#define FUNC_NAME scale_rgb_15_y_quadratic_c
 
258
#define TYPE color_15
 
259
#define INIT int fac_1, fac_2, fac_3;                           \
 
260
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_i[0];\
 
261
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_i[1];\
 
262
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_i[2];
 
263
 
 
264
#define NO_UINT8
 
265
 
 
266
#define SCALE                                                           \
 
267
  dst->r = DOWNSHIFT(fac_1 * src_1->r + \
 
268
            fac_2 * src_2->r + \
 
269
            fac_3 * src_3->r, 16);                     \
 
270
  dst->g = DOWNSHIFT(fac_1 * src_1->g + \
 
271
            fac_2 * src_2->g + \
 
272
            fac_3 * src_3->g, 16);                     \
 
273
  dst->b = DOWNSHIFT(fac_1 * src_1->b + \
 
274
            fac_2 * src_2->b + \
 
275
            fac_3 * src_3->b, 16);
 
276
 
 
277
#define NUM_TAPS 3
 
278
#include "scale_y.h"
 
279
 
 
280
#define FUNC_NAME scale_rgb_16_y_quadratic_c
 
281
#define TYPE color_16
 
282
#define INIT int fac_1, fac_2, fac_3;\
 
283
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_i[0];\
 
284
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_i[1];\
 
285
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_i[2];
 
286
 
 
287
#define NO_UINT8
 
288
 
 
289
#define SCALE                                           \
 
290
  dst->r = DOWNSHIFT(fac_1 * src_1->r + \
 
291
            fac_2 * src_2->r + \
 
292
            fac_3 * src_3->r, 16);                     \
 
293
  dst->g = DOWNSHIFT(fac_1 * src_1->g + \
 
294
            fac_2 * src_2->g + \
 
295
            fac_3 * src_3->g, 16);                     \
 
296
  dst->b = DOWNSHIFT(fac_1 * src_1->b + \
 
297
            fac_2 * src_2->b + \
 
298
            fac_3 * src_3->b, 16);
 
299
 
 
300
#define NUM_TAPS 3
 
301
#include "scale_y.h"
 
302
 
 
303
#define FUNC_NAME scale_uint8_x_1_y_quadratic_c
 
304
#define TYPE uint8_t
 
305
#define INIT int fac_1, fac_2, fac_3;\
 
306
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_i[0];\
 
307
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_i[1];\
 
308
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_i[2];
 
309
 
 
310
#define SCALE                  \
 
311
  dst[0] = DOWNSHIFT(fac_1 * src_1[0] + \
 
312
            fac_2 * src_2[0] + \
 
313
            fac_3 * src_3[0], 16);
 
314
 
 
315
#define NUM_TAPS 3
 
316
#include "scale_y.h"
 
317
 
 
318
#define FUNC_NAME scale_uint8_x_2_y_quadratic_c
 
319
#define TYPE uint8_t
 
320
#define INIT int fac_1, fac_2, fac_3;\
 
321
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_i[0];\
 
322
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_i[1];\
 
323
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_i[2];
 
324
 
 
325
#define SCALE                  \
 
326
  dst[0] = DOWNSHIFT(fac_1 * src_1[0] + \
 
327
            fac_2 * src_2[0] + \
 
328
            fac_3 * src_3[0], 16);\
 
329
  dst[1] = DOWNSHIFT(fac_1 * src_1[1] + \
 
330
            fac_2 * src_2[1] + \
 
331
            fac_3 * src_3[1], 16);
 
332
 
 
333
#define NUM_TAPS 3
 
334
#include "scale_y.h"
 
335
 
 
336
 
 
337
#define FUNC_NAME scale_uint8_x_3_y_quadratic_c
 
338
#define TYPE uint8_t
 
339
#define INIT int fac_1, fac_2, fac_3;\
 
340
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_i[0];\
 
341
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_i[1];\
 
342
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_i[2];
 
343
 
 
344
#define SCALE                  \
 
345
  dst[0] = DOWNSHIFT(fac_1 * src_1[0] + \
 
346
            fac_2 * src_2[0] + \
 
347
            fac_3 * src_3[0], 16);                     \
 
348
  dst[1] = DOWNSHIFT(fac_1 * src_1[1] + \
 
349
            fac_2 * src_2[1] + \
 
350
            fac_3 * src_3[1], 16);                     \
 
351
  dst[2] = DOWNSHIFT(fac_1 * src_1[2] + \
 
352
            fac_2 * src_2[2] + \
 
353
            fac_3 * src_3[2], 16);
 
354
 
 
355
#define NUM_TAPS 3
 
356
#include "scale_y.h"
 
357
 
 
358
#define FUNC_NAME scale_uint8_x_4_y_quadratic_c
 
359
#define TYPE uint8_t
 
360
#define INIT int fac_1, fac_2, fac_3;\
 
361
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_i[0];\
 
362
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_i[1];\
 
363
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_i[2];
 
364
 
 
365
 
 
366
#define SCALE                  \
 
367
  dst[0] = DOWNSHIFT(fac_1 * src_1[0] + \
 
368
            fac_2 * src_2[0] +                          \
 
369
            fac_3 * src_3[0], 16);                     \
 
370
  dst[1] = DOWNSHIFT(fac_1 * src_1[1] + \
 
371
            fac_2 * src_2[1] + \
 
372
            fac_3 * src_3[1], 16);                     \
 
373
  dst[2] = DOWNSHIFT(fac_1 * src_1[2] + \
 
374
            fac_2 * src_2[2] + \
 
375
            fac_3 * src_3[2], 16);                     \
 
376
  dst[3] = DOWNSHIFT(fac_1 * src_1[3] + \
 
377
            fac_2 * src_2[3] + \
 
378
            fac_3 * src_3[3], 16);
 
379
 
 
380
#define NUM_TAPS 3
 
381
#include "scale_y.h"
 
382
 
 
383
#define FUNC_NAME scale_uint16_x_1_y_quadratic_c
 
384
#define TYPE uint16_t
 
385
#define INIT uint32_t tmp; \
 
386
  int fac_1, fac_2, fac_3;                                      \
 
387
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_i[0];\
 
388
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_i[1];\
 
389
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_i[2];
 
390
 
 
391
#define NO_UINT8
 
392
 
 
393
#define SCALE                                  \
 
394
  tmp = (fac_1 * src_1[0] + \
 
395
         fac_2 * src_2[0] + \
 
396
         fac_3 * src_3[0]); \
 
397
  dst[0] = DOWNSHIFT(tmp, 16);
 
398
 
 
399
#define NUM_TAPS 3
 
400
#include "scale_y.h"
 
401
 
 
402
#define FUNC_NAME scale_uint16_x_2_y_quadratic_c
 
403
#define TYPE uint16_t
 
404
#define INIT uint32_t tmp; \
 
405
  int fac_1, fac_2, fac_3;                                      \
 
406
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_i[0];\
 
407
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_i[1];\
 
408
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_i[2];
 
409
 
 
410
#define NO_UINT8
 
411
 
 
412
#define SCALE                                  \
 
413
  tmp = (fac_1 * src_1[0] + \
 
414
         fac_2 * src_2[0] + \
 
415
         fac_3 * src_3[0]); \
 
416
  dst[0] = DOWNSHIFT(tmp, 16);\
 
417
  tmp = (fac_1 * src_1[1] + \
 
418
         fac_2 * src_2[1] + \
 
419
         fac_3 * src_3[1]); \
 
420
  dst[1] = DOWNSHIFT(tmp, 16);
 
421
 
 
422
#define NUM_TAPS 3
 
423
#include "scale_y.h"
 
424
 
 
425
#define FUNC_NAME scale_uint16_x_3_y_quadratic_c
 
426
#define TYPE uint16_t
 
427
#define INIT uint32_t tmp;                      \
 
428
  int fac_1, fac_2, fac_3;                                            \
 
429
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_i[0];\
 
430
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_i[1];\
 
431
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_i[2];
 
432
 
 
433
 
 
434
#define NO_UINT8
 
435
 
 
436
 
 
437
#define SCALE                                  \
 
438
  tmp = (fac_1 * src_1[0] + \
 
439
         fac_2 * src_2[0] + \
 
440
         fac_3 * src_3[0]); \
 
441
  dst[0] = DOWNSHIFT(tmp, 16); \
 
442
  tmp = (fac_1 * src_1[1] + \
 
443
         fac_2 * src_2[1] + \
 
444
         fac_3 * src_3[1]); \
 
445
  dst[1] = DOWNSHIFT(tmp, 16); \
 
446
  tmp = (fac_1 * src_1[2] + \
 
447
         fac_2 * src_2[2] + \
 
448
         fac_3 * src_3[2]); \
 
449
  dst[2] = DOWNSHIFT(tmp, 16);
 
450
 
 
451
#define NUM_TAPS 3
 
452
#include "scale_y.h"
 
453
 
 
454
#define FUNC_NAME scale_uint16_x_4_y_quadratic_c
 
455
#define TYPE uint16_t
 
456
#define INIT uint32_t tmp;\
 
457
  int fac_1, fac_2, fac_3;\
 
458
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_i[0];\
 
459
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_i[1];\
 
460
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_i[2];
 
461
 
 
462
 
 
463
 
 
464
#define NO_UINT8
 
465
 
 
466
#define SCALE                                  \
 
467
  tmp = fac_1 * src_1[0] + \
 
468
        fac_2 * src_2[0] + \
 
469
        fac_3 * src_3[0]; \
 
470
  dst[0] = DOWNSHIFT(tmp, 16);\
 
471
  tmp = fac_1 * src_1[1] + \
 
472
        fac_2 * src_2[1] + \
 
473
        fac_3 * src_3[1]; \
 
474
  dst[1] = DOWNSHIFT(tmp, 16); \
 
475
  tmp = fac_1 * src_1[2] + \
 
476
        fac_2 * src_2[2] + \
 
477
        fac_3 * src_2[2]; \
 
478
  dst[2] = DOWNSHIFT(tmp, 16); \
 
479
  tmp = fac_1 * src_1[3] + \
 
480
        fac_2 * src_2[3] + \
 
481
        fac_3 * src_3[3]; \
 
482
  dst[3] = DOWNSHIFT(tmp, 16);
 
483
 
 
484
#define NUM_TAPS 3
 
485
#include "scale_y.h"
 
486
 
 
487
#define FUNC_NAME scale_float_x_1_y_quadratic_c
 
488
#define TYPE float
 
489
#define INIT float fac_1, fac_2, fac_3;\
 
490
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_f[0];\
 
491
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_f[1];\
 
492
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_f[2];
 
493
 
 
494
#define NO_UINT8
 
495
  
 
496
#define SCALE                                                           \
 
497
  dst[0] = (fac_1 * src_1[0] + \
 
498
            fac_2 * src_2[0] + \
 
499
            fac_3 * src_3[0]);
 
500
 
 
501
#define NUM_TAPS 3
 
502
#include "scale_y.h"
 
503
 
 
504
#define FUNC_NAME scale_float_x_2_y_quadratic_c
 
505
#define TYPE float
 
506
#define INIT float fac_1, fac_2, fac_3;\
 
507
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_f[0];\
 
508
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_f[1];\
 
509
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_f[2];
 
510
 
 
511
#define NO_UINT8
 
512
  
 
513
#define SCALE                                                           \
 
514
  dst[0] = (fac_1 * src_1[0] + \
 
515
            fac_2 * src_2[0] + \
 
516
            fac_3 * src_3[0]);                    \
 
517
  dst[1] = (fac_1 * src_1[1] + \
 
518
            fac_2 * src_2[1] + \
 
519
            fac_3 * src_3[1]);
 
520
 
 
521
#define NUM_TAPS 3
 
522
#include "scale_y.h"
 
523
 
 
524
#define FUNC_NAME scale_float_x_3_y_quadratic_c
 
525
#define TYPE float
 
526
#define INIT float fac_1, fac_2, fac_3;\
 
527
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_f[0];\
 
528
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_f[1];\
 
529
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_f[2];
 
530
 
 
531
#define NO_UINT8
 
532
  
 
533
#define SCALE                                                           \
 
534
  dst[0] = (fac_1 * src_1[0] + \
 
535
            fac_2 * src_2[0] + \
 
536
            fac_3 * src_3[0]);                    \
 
537
  dst[1] = (fac_1 * src_1[1] + \
 
538
            fac_2 * src_2[1] + \
 
539
            fac_3 * src_3[1]);                          \
 
540
  dst[2] = (fac_1 * src_1[2] + \
 
541
            fac_2 * src_2[2] + \
 
542
            fac_3 * src_3[2]);
 
543
 
 
544
#define NUM_TAPS 3
 
545
#include "scale_y.h"
 
546
 
 
547
#define FUNC_NAME scale_float_x_4_y_quadratic_c
 
548
#define TYPE float
 
549
#define INIT float fac_1, fac_2, fac_3;                         \
 
550
  fac_1 = ctx->table_v.pixels[ctx->scanline].factor_f[0];   \
 
551
  fac_2 = ctx->table_v.pixels[ctx->scanline].factor_f[1];   \
 
552
  fac_3 = ctx->table_v.pixels[ctx->scanline].factor_f[2];
 
553
 
 
554
#define NO_UINT8
 
555
 
 
556
#define SCALE                                     \
 
557
  dst[0] = (fac_1 * src_1[0] + \
 
558
            fac_2 * src_2[0] + \
 
559
            fac_3 * src_3[0]);                    \
 
560
  dst[1] = (fac_1 * src_1[1] + \
 
561
            fac_2 * src_2[1] + \
 
562
            fac_3 * src_3[1]);                    \
 
563
  dst[2] = (fac_1 * src_1[2] + \
 
564
            fac_2 * src_2[2] + \
 
565
            fac_3 * src_3[2]);                    \
 
566
  dst[3] = (fac_1 * src_1[3] + \
 
567
            fac_2 * src_2[3] + \
 
568
            fac_3 * src_3[3]); \
 
569
 
 
570
#define NUM_TAPS 3
 
571
#include "scale_y.h"
 
572
 
 
573
void gavl_init_scale_funcs_quadratic_noclip_c(gavl_scale_funcs_t * tab)
 
574
  {
 
575
  //  fprintf(stderr, "gavl_init_scale_funcs_quadratic_c\n");
 
576
  tab->funcs_x.scale_rgb_15 =     scale_rgb_15_x_quadratic_c;
 
577
  tab->funcs_x.scale_rgb_16 =     scale_rgb_16_x_quadratic_c;
 
578
  tab->funcs_x.scale_uint8_x_1_advance =  scale_uint8_x_1_x_quadratic_c;
 
579
  tab->funcs_x.scale_uint8_x_1_noadvance =  scale_uint8_x_1_x_quadratic_c;
 
580
  tab->funcs_x.scale_uint8_x_2 =  scale_uint8_x_2_x_quadratic_c;
 
581
  tab->funcs_x.scale_uint8_x_3 =  scale_uint8_x_3_x_quadratic_c;
 
582
  tab->funcs_x.scale_uint8_x_4 =  scale_uint8_x_4_x_quadratic_c;
 
583
  tab->funcs_x.scale_uint16_x_1 = scale_uint16_x_1_x_quadratic_c;
 
584
  tab->funcs_x.scale_uint16_x_2 = scale_uint16_x_2_x_quadratic_c;
 
585
  tab->funcs_x.scale_uint16_x_3 = scale_uint16_x_3_x_quadratic_c;
 
586
  tab->funcs_x.scale_uint16_x_4 = scale_uint16_x_4_x_quadratic_c;
 
587
  tab->funcs_x.scale_float_x_1 =  scale_float_x_1_x_quadratic_c;
 
588
  tab->funcs_x.scale_float_x_2 =  scale_float_x_2_x_quadratic_c;
 
589
  tab->funcs_x.scale_float_x_3 =  scale_float_x_3_x_quadratic_c;
 
590
  tab->funcs_x.scale_float_x_4 =  scale_float_x_4_x_quadratic_c;
 
591
  tab->funcs_x.bits_rgb_15 = 16;
 
592
  tab->funcs_x.bits_rgb_16 = 16;
 
593
  tab->funcs_x.bits_uint8_advance  = 16;
 
594
  tab->funcs_x.bits_uint8_noadvance  = 16;
 
595
  tab->funcs_x.bits_uint16 = 16;
 
596
 
 
597
  tab->funcs_y.scale_rgb_15 =     scale_rgb_15_y_quadratic_c;
 
598
  tab->funcs_y.scale_rgb_16 =     scale_rgb_16_y_quadratic_c;
 
599
  tab->funcs_y.scale_uint8_x_1_advance =  scale_uint8_x_1_y_quadratic_c;
 
600
  tab->funcs_y.scale_uint8_x_1_noadvance =  scale_uint8_x_1_y_quadratic_c;
 
601
  tab->funcs_y.scale_uint8_x_2 =  scale_uint8_x_2_y_quadratic_c;
 
602
  tab->funcs_y.scale_uint8_x_3 =  scale_uint8_x_3_y_quadratic_c;
 
603
  tab->funcs_y.scale_uint8_x_4 =  scale_uint8_x_4_y_quadratic_c;
 
604
  tab->funcs_y.scale_uint16_x_1 = scale_uint16_x_1_y_quadratic_c;
 
605
  tab->funcs_y.scale_uint16_x_2 = scale_uint16_x_2_y_quadratic_c;
 
606
  tab->funcs_y.scale_uint16_x_3 = scale_uint16_x_3_y_quadratic_c;
 
607
  tab->funcs_y.scale_uint16_x_4 = scale_uint16_x_4_y_quadratic_c;
 
608
  tab->funcs_y.scale_float_x_1 =  scale_float_x_1_y_quadratic_c;
 
609
  tab->funcs_y.scale_float_x_2 =  scale_float_x_2_y_quadratic_c;
 
610
  tab->funcs_y.scale_float_x_3 =  scale_float_x_3_y_quadratic_c;
 
611
  tab->funcs_y.scale_float_x_4 =  scale_float_x_4_y_quadratic_c;
 
612
  tab->funcs_y.bits_rgb_15 = 16;
 
613
  tab->funcs_y.bits_rgb_16 = 16;
 
614
  tab->funcs_y.bits_uint8_advance  = 16;
 
615
  tab->funcs_y.bits_uint8_noadvance  = 16;
 
616
  tab->funcs_y.bits_uint16 = 16;
 
617
  
 
618
  }
 
619