1
/*****************************************************************
2
* gavl - a general purpose audio/video processing library
4
* Copyright (c) 2001 - 2008 Members of the Gmerlin project
5
* gmerlin-general@lists.sourceforge.net
6
* http://gmerlin.sourceforge.net
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.
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.
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
* *****************************************************************/
23
#include <gavl/gavl.h>
27
#include "scale_macros.h"
31
#define FUNC_NAME scale_rgb_15_x_quadratic_c
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);
47
#define FUNC_NAME scale_rgb_16_x_quadratic_c
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);
63
#define FUNC_NAME scale_uint8_x_1_x_quadratic_c
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);
73
#define FUNC_NAME scale_uint8_x_2_x_quadratic_c
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);
87
#define FUNC_NAME scale_uint8_x_3_x_quadratic_c
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);
103
#define FUNC_NAME scale_uint8_x_4_x_quadratic_c
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);
122
#define FUNC_NAME scale_uint16_x_1_x_quadratic_c
123
#define TYPE uint16_t
124
#define INIT uint32_t tmp;
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);
134
#define FUNC_NAME scale_uint16_x_2_x_quadratic_c
135
#define TYPE uint16_t
136
#define INIT uint32_t tmp;
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);
150
#define FUNC_NAME scale_uint16_x_3_x_quadratic_c
151
#define TYPE uint16_t
152
#define INIT uint32_t tmp;
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);
171
#define FUNC_NAME scale_uint16_x_4_x_quadratic_c
172
#define TYPE uint16_t
173
#define INIT uint32_t tmp;
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);
196
#define FUNC_NAME scale_float_x_1_x_quadratic_c
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]);
206
#define FUNC_NAME scale_float_x_2_x_quadratic_c
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]);
219
#define FUNC_NAME scale_float_x_3_x_quadratic_c
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]);
236
#define FUNC_NAME scale_float_x_4_x_quadratic_c
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]);
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];
267
dst->r = DOWNSHIFT(fac_1 * src_1->r + \
269
fac_3 * src_3->r, 16); \
270
dst->g = DOWNSHIFT(fac_1 * src_1->g + \
272
fac_3 * src_3->g, 16); \
273
dst->b = DOWNSHIFT(fac_1 * src_1->b + \
275
fac_3 * src_3->b, 16);
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];
290
dst->r = DOWNSHIFT(fac_1 * src_1->r + \
292
fac_3 * src_3->r, 16); \
293
dst->g = DOWNSHIFT(fac_1 * src_1->g + \
295
fac_3 * src_3->g, 16); \
296
dst->b = DOWNSHIFT(fac_1 * src_1->b + \
298
fac_3 * src_3->b, 16);
303
#define FUNC_NAME scale_uint8_x_1_y_quadratic_c
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];
311
dst[0] = DOWNSHIFT(fac_1 * src_1[0] + \
313
fac_3 * src_3[0], 16);
318
#define FUNC_NAME scale_uint8_x_2_y_quadratic_c
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];
326
dst[0] = DOWNSHIFT(fac_1 * src_1[0] + \
328
fac_3 * src_3[0], 16);\
329
dst[1] = DOWNSHIFT(fac_1 * src_1[1] + \
331
fac_3 * src_3[1], 16);
337
#define FUNC_NAME scale_uint8_x_3_y_quadratic_c
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];
345
dst[0] = DOWNSHIFT(fac_1 * src_1[0] + \
347
fac_3 * src_3[0], 16); \
348
dst[1] = DOWNSHIFT(fac_1 * src_1[1] + \
350
fac_3 * src_3[1], 16); \
351
dst[2] = DOWNSHIFT(fac_1 * src_1[2] + \
353
fac_3 * src_3[2], 16);
358
#define FUNC_NAME scale_uint8_x_4_y_quadratic_c
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];
367
dst[0] = DOWNSHIFT(fac_1 * src_1[0] + \
369
fac_3 * src_3[0], 16); \
370
dst[1] = DOWNSHIFT(fac_1 * src_1[1] + \
372
fac_3 * src_3[1], 16); \
373
dst[2] = DOWNSHIFT(fac_1 * src_1[2] + \
375
fac_3 * src_3[2], 16); \
376
dst[3] = DOWNSHIFT(fac_1 * src_1[3] + \
378
fac_3 * src_3[3], 16);
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];
394
tmp = (fac_1 * src_1[0] + \
397
dst[0] = DOWNSHIFT(tmp, 16);
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];
413
tmp = (fac_1 * src_1[0] + \
416
dst[0] = DOWNSHIFT(tmp, 16);\
417
tmp = (fac_1 * src_1[1] + \
420
dst[1] = DOWNSHIFT(tmp, 16);
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];
438
tmp = (fac_1 * src_1[0] + \
441
dst[0] = DOWNSHIFT(tmp, 16); \
442
tmp = (fac_1 * src_1[1] + \
445
dst[1] = DOWNSHIFT(tmp, 16); \
446
tmp = (fac_1 * src_1[2] + \
449
dst[2] = DOWNSHIFT(tmp, 16);
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];
467
tmp = fac_1 * src_1[0] + \
470
dst[0] = DOWNSHIFT(tmp, 16);\
471
tmp = fac_1 * src_1[1] + \
474
dst[1] = DOWNSHIFT(tmp, 16); \
475
tmp = fac_1 * src_1[2] + \
478
dst[2] = DOWNSHIFT(tmp, 16); \
479
tmp = fac_1 * src_1[3] + \
482
dst[3] = DOWNSHIFT(tmp, 16);
487
#define FUNC_NAME scale_float_x_1_y_quadratic_c
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];
497
dst[0] = (fac_1 * src_1[0] + \
504
#define FUNC_NAME scale_float_x_2_y_quadratic_c
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];
514
dst[0] = (fac_1 * src_1[0] + \
517
dst[1] = (fac_1 * src_1[1] + \
524
#define FUNC_NAME scale_float_x_3_y_quadratic_c
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];
534
dst[0] = (fac_1 * src_1[0] + \
537
dst[1] = (fac_1 * src_1[1] + \
540
dst[2] = (fac_1 * src_1[2] + \
547
#define FUNC_NAME scale_float_x_4_y_quadratic_c
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];
557
dst[0] = (fac_1 * src_1[0] + \
560
dst[1] = (fac_1 * src_1[1] + \
563
dst[2] = (fac_1 * src_1[2] + \
566
dst[3] = (fac_1 * src_1[3] + \
573
void gavl_init_scale_funcs_quadratic_noclip_c(gavl_scale_funcs_t * tab)
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;
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;