This source file includes following definitions.
- get_filter_3tap_16p
- get_filter_3tap_64p
- get_filter_4tap_16p
- get_filter_4tap_64p
- get_filter_5tap_64p
- get_filter_6tap_64p
- get_filter_7tap_64p
- get_filter_8tap_64p
- get_filter_2tap_16p
- get_filter_2tap_64p
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 #include "transform.h"
27
28 static const uint16_t filter_2tap_16p[18] = {
29 4096, 0,
30 3840, 256,
31 3584, 512,
32 3328, 768,
33 3072, 1024,
34 2816, 1280,
35 2560, 1536,
36 2304, 1792,
37 2048, 2048
38 };
39
40 static const uint16_t filter_3tap_16p_upscale[27] = {
41 2048, 2048, 0,
42 1708, 2424, 16348,
43 1372, 2796, 16308,
44 1056, 3148, 16272,
45 768, 3464, 16244,
46 512, 3728, 16236,
47 296, 3928, 16252,
48 124, 4052, 16296,
49 0, 4096, 0
50 };
51
52 static const uint16_t filter_3tap_16p_117[27] = {
53 2048, 2048, 0,
54 1824, 2276, 16376,
55 1600, 2496, 16380,
56 1376, 2700, 16,
57 1156, 2880, 52,
58 948, 3032, 108,
59 756, 3144, 192,
60 580, 3212, 296,
61 428, 3236, 428
62 };
63
64 static const uint16_t filter_3tap_16p_150[27] = {
65 2048, 2048, 0,
66 1872, 2184, 36,
67 1692, 2308, 88,
68 1516, 2420, 156,
69 1340, 2516, 236,
70 1168, 2592, 328,
71 1004, 2648, 440,
72 844, 2684, 560,
73 696, 2696, 696
74 };
75
76 static const uint16_t filter_3tap_16p_183[27] = {
77 2048, 2048, 0,
78 1892, 2104, 92,
79 1744, 2152, 196,
80 1592, 2196, 300,
81 1448, 2232, 412,
82 1304, 2256, 528,
83 1168, 2276, 648,
84 1032, 2288, 772,
85 900, 2292, 900
86 };
87
88 static const uint16_t filter_4tap_16p_upscale[36] = {
89 0, 4096, 0, 0,
90 16240, 4056, 180, 16380,
91 16136, 3952, 404, 16364,
92 16072, 3780, 664, 16344,
93 16040, 3556, 952, 16312,
94 16036, 3284, 1268, 16272,
95 16052, 2980, 1604, 16224,
96 16084, 2648, 1952, 16176,
97 16128, 2304, 2304, 16128
98 };
99
100 static const uint16_t filter_4tap_16p_117[36] = {
101 428, 3236, 428, 0,
102 276, 3232, 604, 16364,
103 148, 3184, 800, 16340,
104 44, 3104, 1016, 16312,
105 16344, 2984, 1244, 16284,
106 16284, 2832, 1488, 16256,
107 16244, 2648, 1732, 16236,
108 16220, 2440, 1976, 16220,
109 16212, 2216, 2216, 16212
110 };
111
112 static const uint16_t filter_4tap_16p_150[36] = {
113 696, 2700, 696, 0,
114 560, 2700, 848, 16364,
115 436, 2676, 1008, 16348,
116 328, 2628, 1180, 16336,
117 232, 2556, 1356, 16328,
118 152, 2460, 1536, 16328,
119 84, 2344, 1716, 16332,
120 28, 2208, 1888, 16348,
121 16376, 2052, 2052, 16376
122 };
123
124 static const uint16_t filter_4tap_16p_183[36] = {
125 940, 2208, 940, 0,
126 832, 2200, 1052, 4,
127 728, 2180, 1164, 16,
128 628, 2148, 1280, 36,
129 536, 2100, 1392, 60,
130 448, 2044, 1504, 92,
131 368, 1976, 1612, 132,
132 296, 1900, 1716, 176,
133 232, 1812, 1812, 232
134 };
135
136 static const uint16_t filter_2tap_64p[66] = {
137 4096, 0,
138 4032, 64,
139 3968, 128,
140 3904, 192,
141 3840, 256,
142 3776, 320,
143 3712, 384,
144 3648, 448,
145 3584, 512,
146 3520, 576,
147 3456, 640,
148 3392, 704,
149 3328, 768,
150 3264, 832,
151 3200, 896,
152 3136, 960,
153 3072, 1024,
154 3008, 1088,
155 2944, 1152,
156 2880, 1216,
157 2816, 1280,
158 2752, 1344,
159 2688, 1408,
160 2624, 1472,
161 2560, 1536,
162 2496, 1600,
163 2432, 1664,
164 2368, 1728,
165 2304, 1792,
166 2240, 1856,
167 2176, 1920,
168 2112, 1984,
169 2048, 2048 };
170
171 static const uint16_t filter_3tap_64p_upscale[99] = {
172 2048, 2048, 0,
173 1960, 2140, 16376,
174 1876, 2236, 16364,
175 1792, 2328, 16356,
176 1708, 2424, 16348,
177 1620, 2516, 16336,
178 1540, 2612, 16328,
179 1456, 2704, 16316,
180 1372, 2796, 16308,
181 1292, 2884, 16296,
182 1212, 2976, 16288,
183 1136, 3060, 16280,
184 1056, 3148, 16272,
185 984, 3228, 16264,
186 908, 3312, 16256,
187 836, 3388, 16248,
188 768, 3464, 16244,
189 700, 3536, 16240,
190 636, 3604, 16236,
191 572, 3668, 16236,
192 512, 3728, 16236,
193 456, 3784, 16236,
194 400, 3836, 16240,
195 348, 3884, 16244,
196 296, 3928, 16252,
197 252, 3964, 16260,
198 204, 4000, 16268,
199 164, 4028, 16284,
200 124, 4052, 16296,
201 88, 4072, 16316,
202 56, 4084, 16336,
203 24, 4092, 16356,
204 0, 4096, 0
205 };
206
207 static const uint16_t filter_3tap_64p_117[99] = {
208 2048, 2048, 0,
209 1992, 2104, 16380,
210 1936, 2160, 16380,
211 1880, 2220, 16376,
212 1824, 2276, 16376,
213 1768, 2332, 16376,
214 1712, 2388, 16376,
215 1656, 2444, 16376,
216 1600, 2496, 16380,
217 1544, 2548, 0,
218 1488, 2600, 4,
219 1432, 2652, 8,
220 1376, 2700, 16,
221 1320, 2748, 20,
222 1264, 2796, 32,
223 1212, 2840, 40,
224 1156, 2880, 52,
225 1104, 2920, 64,
226 1052, 2960, 80,
227 1000, 2996, 92,
228 948, 3032, 108,
229 900, 3060, 128,
230 852, 3092, 148,
231 804, 3120, 168,
232 756, 3144, 192,
233 712, 3164, 216,
234 668, 3184, 240,
235 624, 3200, 268,
236 580, 3212, 296,
237 540, 3220, 328,
238 500, 3228, 360,
239 464, 3232, 392,
240 428, 3236, 428
241 };
242
243 static const uint16_t filter_3tap_64p_150[99] = {
244 2048, 2048, 0,
245 2004, 2080, 8,
246 1960, 2116, 16,
247 1916, 2148, 28,
248 1872, 2184, 36,
249 1824, 2216, 48,
250 1780, 2248, 60,
251 1736, 2280, 76,
252 1692, 2308, 88,
253 1648, 2336, 104,
254 1604, 2368, 120,
255 1560, 2392, 136,
256 1516, 2420, 156,
257 1472, 2444, 172,
258 1428, 2472, 192,
259 1384, 2492, 212,
260 1340, 2516, 236,
261 1296, 2536, 256,
262 1252, 2556, 280,
263 1212, 2576, 304,
264 1168, 2592, 328,
265 1124, 2608, 356,
266 1084, 2624, 384,
267 1044, 2636, 412,
268 1004, 2648, 440,
269 964, 2660, 468,
270 924, 2668, 500,
271 884, 2676, 528,
272 844, 2684, 560,
273 808, 2688, 596,
274 768, 2692, 628,
275 732, 2696, 664,
276 696, 2696, 696
277 };
278
279 static const uint16_t filter_3tap_64p_183[99] = {
280 2048, 2048, 0,
281 2008, 2060, 20,
282 1968, 2076, 44,
283 1932, 2088, 68,
284 1892, 2104, 92,
285 1856, 2116, 120,
286 1816, 2128, 144,
287 1780, 2140, 168,
288 1744, 2152, 196,
289 1704, 2164, 220,
290 1668, 2176, 248,
291 1632, 2188, 272,
292 1592, 2196, 300,
293 1556, 2204, 328,
294 1520, 2216, 356,
295 1484, 2224, 384,
296 1448, 2232, 412,
297 1412, 2240, 440,
298 1376, 2244, 468,
299 1340, 2252, 496,
300 1304, 2256, 528,
301 1272, 2264, 556,
302 1236, 2268, 584,
303 1200, 2272, 616,
304 1168, 2276, 648,
305 1132, 2280, 676,
306 1100, 2284, 708,
307 1064, 2288, 740,
308 1032, 2288, 772,
309 996, 2292, 800,
310 964, 2292, 832,
311 932, 2292, 868,
312 900, 2292, 900
313 };
314
315 static const uint16_t filter_4tap_64p_upscale[132] = {
316 0, 4096, 0, 0,
317 16344, 4092, 40, 0,
318 16308, 4084, 84, 16380,
319 16272, 4072, 132, 16380,
320 16240, 4056, 180, 16380,
321 16212, 4036, 232, 16376,
322 16184, 4012, 288, 16372,
323 16160, 3984, 344, 16368,
324 16136, 3952, 404, 16364,
325 16116, 3916, 464, 16360,
326 16100, 3872, 528, 16356,
327 16084, 3828, 596, 16348,
328 16072, 3780, 664, 16344,
329 16060, 3728, 732, 16336,
330 16052, 3676, 804, 16328,
331 16044, 3616, 876, 16320,
332 16040, 3556, 952, 16312,
333 16036, 3492, 1028, 16300,
334 16032, 3424, 1108, 16292,
335 16032, 3356, 1188, 16280,
336 16036, 3284, 1268, 16272,
337 16036, 3212, 1352, 16260,
338 16040, 3136, 1436, 16248,
339 16044, 3056, 1520, 16236,
340 16052, 2980, 1604, 16224,
341 16060, 2896, 1688, 16212,
342 16064, 2816, 1776, 16200,
343 16076, 2732, 1864, 16188,
344 16084, 2648, 1952, 16176,
345 16092, 2564, 2040, 16164,
346 16104, 2476, 2128, 16152,
347 16116, 2388, 2216, 16140,
348 16128, 2304, 2304, 16128 };
349
350 static const uint16_t filter_4tap_64p_117[132] = {
351 420, 3248, 420, 0,
352 380, 3248, 464, 16380,
353 344, 3248, 508, 16372,
354 308, 3248, 552, 16368,
355 272, 3240, 596, 16364,
356 236, 3236, 644, 16356,
357 204, 3224, 692, 16352,
358 172, 3212, 744, 16344,
359 144, 3196, 796, 16340,
360 116, 3180, 848, 16332,
361 88, 3160, 900, 16324,
362 60, 3136, 956, 16320,
363 36, 3112, 1012, 16312,
364 16, 3084, 1068, 16304,
365 16380, 3056, 1124, 16296,
366 16360, 3024, 1184, 16292,
367 16340, 2992, 1244, 16284,
368 16324, 2956, 1304, 16276,
369 16308, 2920, 1364, 16268,
370 16292, 2880, 1424, 16264,
371 16280, 2836, 1484, 16256,
372 16268, 2792, 1548, 16252,
373 16256, 2748, 1608, 16244,
374 16248, 2700, 1668, 16240,
375 16240, 2652, 1732, 16232,
376 16232, 2604, 1792, 16228,
377 16228, 2552, 1856, 16224,
378 16220, 2500, 1916, 16220,
379 16216, 2444, 1980, 16216,
380 16216, 2388, 2040, 16216,
381 16212, 2332, 2100, 16212,
382 16212, 2276, 2160, 16212,
383 16212, 2220, 2220, 16212 };
384
385 static const uint16_t filter_4tap_64p_150[132] = {
386 696, 2700, 696, 0,
387 660, 2704, 732, 16380,
388 628, 2704, 768, 16376,
389 596, 2704, 804, 16372,
390 564, 2700, 844, 16364,
391 532, 2696, 884, 16360,
392 500, 2692, 924, 16356,
393 472, 2684, 964, 16352,
394 440, 2676, 1004, 16352,
395 412, 2668, 1044, 16348,
396 384, 2656, 1088, 16344,
397 360, 2644, 1128, 16340,
398 332, 2632, 1172, 16336,
399 308, 2616, 1216, 16336,
400 284, 2600, 1260, 16332,
401 260, 2580, 1304, 16332,
402 236, 2560, 1348, 16328,
403 216, 2540, 1392, 16328,
404 196, 2516, 1436, 16328,
405 176, 2492, 1480, 16324,
406 156, 2468, 1524, 16324,
407 136, 2440, 1568, 16328,
408 120, 2412, 1612, 16328,
409 104, 2384, 1656, 16328,
410 88, 2352, 1700, 16332,
411 72, 2324, 1744, 16332,
412 60, 2288, 1788, 16336,
413 48, 2256, 1828, 16340,
414 36, 2220, 1872, 16344,
415 24, 2184, 1912, 16352,
416 12, 2148, 1952, 16356,
417 4, 2112, 1996, 16364,
418 16380, 2072, 2036, 16372 };
419
420 static const uint16_t filter_4tap_64p_183[132] = {
421 944, 2204, 944, 0,
422 916, 2204, 972, 0,
423 888, 2200, 996, 0,
424 860, 2200, 1024, 4,
425 832, 2196, 1052, 4,
426 808, 2192, 1080, 8,
427 780, 2188, 1108, 12,
428 756, 2180, 1140, 12,
429 728, 2176, 1168, 16,
430 704, 2168, 1196, 20,
431 680, 2160, 1224, 24,
432 656, 2152, 1252, 28,
433 632, 2144, 1280, 36,
434 608, 2132, 1308, 40,
435 584, 2120, 1336, 48,
436 560, 2112, 1364, 52,
437 536, 2096, 1392, 60,
438 516, 2084, 1420, 68,
439 492, 2072, 1448, 76,
440 472, 2056, 1476, 84,
441 452, 2040, 1504, 92,
442 428, 2024, 1532, 100,
443 408, 2008, 1560, 112,
444 392, 1992, 1584, 120,
445 372, 1972, 1612, 132,
446 352, 1956, 1636, 144,
447 336, 1936, 1664, 156,
448 316, 1916, 1688, 168,
449 300, 1896, 1712, 180,
450 284, 1876, 1736, 192,
451 268, 1852, 1760, 208,
452 252, 1832, 1784, 220,
453 236, 1808, 1808, 236 };
454
455 static const uint16_t filter_5tap_64p_upscale[165] = {
456 15936, 2496, 2496, 15936, 0,
457 15948, 2404, 2580, 15924, 0,
458 15960, 2312, 2664, 15912, 4,
459 15976, 2220, 2748, 15904, 8,
460 15992, 2128, 2832, 15896, 12,
461 16004, 2036, 2912, 15888, 16,
462 16020, 1944, 2992, 15880, 20,
463 16036, 1852, 3068, 15876, 20,
464 16056, 1760, 3140, 15876, 24,
465 16072, 1668, 3216, 15872, 28,
466 16088, 1580, 3284, 15872, 32,
467 16104, 1492, 3352, 15876, 32,
468 16120, 1404, 3420, 15876, 36,
469 16140, 1316, 3480, 15884, 40,
470 16156, 1228, 3540, 15892, 40,
471 16172, 1144, 3600, 15900, 40,
472 16188, 1060, 3652, 15908, 44,
473 16204, 980, 3704, 15924, 44,
474 16220, 900, 3756, 15936, 44,
475 16236, 824, 3800, 15956, 44,
476 16248, 744, 3844, 15972, 44,
477 16264, 672, 3884, 15996, 44,
478 16276, 600, 3920, 16020, 44,
479 16292, 528, 3952, 16044, 40,
480 16304, 460, 3980, 16072, 40,
481 16316, 396, 4008, 16104, 36,
482 16328, 332, 4032, 16136, 32,
483 16336, 272, 4048, 16172, 28,
484 16348, 212, 4064, 16208, 24,
485 16356, 156, 4080, 16248, 16,
486 16368, 100, 4088, 16292, 12,
487 16376, 48, 4092, 16336, 4,
488 0, 0, 4096, 0, 0 };
489
490 static const uint16_t filter_5tap_64p_117[165] = {
491 16056, 2372, 2372, 16056, 0,
492 16052, 2312, 2432, 16060, 0,
493 16052, 2252, 2488, 16064, 0,
494 16052, 2188, 2548, 16072, 0,
495 16052, 2124, 2600, 16076, 0,
496 16052, 2064, 2656, 16088, 0,
497 16052, 2000, 2708, 16096, 0,
498 16056, 1932, 2760, 16108, 0,
499 16060, 1868, 2808, 16120, 0,
500 16064, 1804, 2856, 16132, 0,
501 16068, 1740, 2904, 16148, 16380,
502 16076, 1676, 2948, 16164, 16380,
503 16080, 1612, 2992, 16180, 16376,
504 16088, 1544, 3032, 16200, 16372,
505 16096, 1480, 3072, 16220, 16372,
506 16104, 1420, 3108, 16244, 16368,
507 16112, 1356, 3144, 16268, 16364,
508 16120, 1292, 3180, 16292, 16360,
509 16128, 1232, 3212, 16320, 16356,
510 16136, 1168, 3240, 16344, 16352,
511 16144, 1108, 3268, 16376, 16344,
512 16156, 1048, 3292, 20, 16340,
513 16164, 988, 3316, 52, 16332,
514 16172, 932, 3336, 88, 16328,
515 16184, 872, 3356, 124, 16320,
516 16192, 816, 3372, 160, 16316,
517 16204, 760, 3388, 196, 16308,
518 16212, 708, 3400, 236, 16300,
519 16220, 656, 3412, 276, 16292,
520 16232, 604, 3420, 320, 16284,
521 16240, 552, 3424, 364, 16276,
522 16248, 504, 3428, 408, 16268,
523 16256, 456, 3428, 456, 16256 };
524
525 static const uint16_t filter_5tap_64p_150[165] = {
526 16368, 2064, 2064, 16368, 0,
527 16352, 2028, 2100, 16380, 16380,
528 16340, 1996, 2132, 12, 16376,
529 16328, 1960, 2168, 24, 16376,
530 16316, 1924, 2204, 44, 16372,
531 16308, 1888, 2236, 60, 16368,
532 16296, 1848, 2268, 76, 16364,
533 16288, 1812, 2300, 96, 16360,
534 16280, 1772, 2328, 116, 16356,
535 16272, 1736, 2360, 136, 16352,
536 16268, 1696, 2388, 160, 16348,
537 16260, 1656, 2416, 180, 16344,
538 16256, 1616, 2440, 204, 16340,
539 16248, 1576, 2464, 228, 16336,
540 16244, 1536, 2492, 252, 16332,
541 16240, 1496, 2512, 276, 16324,
542 16240, 1456, 2536, 304, 16320,
543 16236, 1416, 2556, 332, 16316,
544 16232, 1376, 2576, 360, 16312,
545 16232, 1336, 2592, 388, 16308,
546 16232, 1296, 2612, 416, 16300,
547 16232, 1256, 2628, 448, 16296,
548 16232, 1216, 2640, 480, 16292,
549 16232, 1172, 2652, 512, 16288,
550 16232, 1132, 2664, 544, 16284,
551 16232, 1092, 2676, 576, 16280,
552 16236, 1056, 2684, 608, 16272,
553 16236, 1016, 2692, 644, 16268,
554 16240, 976, 2700, 680, 16264,
555 16240, 936, 2704, 712, 16260,
556 16244, 900, 2708, 748, 16256,
557 16248, 860, 2708, 788, 16252,
558 16248, 824, 2708, 824, 16248 };
559
560 static const uint16_t filter_5tap_64p_183[165] = {
561 228, 1816, 1816, 228, 0,
562 216, 1792, 1836, 248, 16380,
563 200, 1772, 1860, 264, 16376,
564 184, 1748, 1884, 280, 16376,
565 168, 1728, 1904, 300, 16372,
566 156, 1704, 1928, 316, 16368,
567 144, 1680, 1948, 336, 16364,
568 128, 1656, 1968, 356, 16364,
569 116, 1632, 1988, 376, 16360,
570 104, 1604, 2008, 396, 16356,
571 96, 1580, 2024, 416, 16356,
572 84, 1556, 2044, 440, 16352,
573 72, 1528, 2060, 460, 16348,
574 64, 1504, 2076, 484, 16348,
575 52, 1476, 2092, 504, 16344,
576 44, 1448, 2104, 528, 16344,
577 36, 1424, 2120, 552, 16340,
578 28, 1396, 2132, 576, 16340,
579 20, 1368, 2144, 600, 16340,
580 12, 1340, 2156, 624, 16336,
581 4, 1312, 2168, 652, 16336,
582 0, 1284, 2180, 676, 16336,
583 16376, 1256, 2188, 700, 16332,
584 16372, 1228, 2196, 728, 16332,
585 16368, 1200, 2204, 752, 16332,
586 16364, 1172, 2212, 780, 16332,
587 16356, 1144, 2216, 808, 16332,
588 16352, 1116, 2220, 836, 16332,
589 16352, 1084, 2224, 860, 16332,
590 16348, 1056, 2228, 888, 16336,
591 16344, 1028, 2232, 916, 16336,
592 16340, 1000, 2232, 944, 16336,
593 16340, 972, 2232, 972, 16340 };
594
595 static const uint16_t filter_6tap_64p_upscale[198] = {
596 0, 0, 4092, 0, 0, 0,
597 12, 16332, 4092, 52, 16368, 0,
598 24, 16280, 4088, 108, 16356, 0,
599 36, 16236, 4080, 168, 16340, 0,
600 44, 16188, 4064, 228, 16324, 0,
601 56, 16148, 4052, 292, 16308, 0,
602 64, 16108, 4032, 356, 16292, 4,
603 72, 16072, 4008, 424, 16276, 4,
604 80, 16036, 3980, 492, 16256, 4,
605 88, 16004, 3952, 564, 16240, 8,
606 96, 15972, 3920, 636, 16220, 8,
607 100, 15944, 3884, 712, 16204, 12,
608 108, 15916, 3844, 788, 16184, 16,
609 112, 15896, 3800, 864, 16164, 20,
610 116, 15872, 3756, 944, 16144, 20,
611 120, 15852, 3708, 1024, 16124, 24,
612 120, 15836, 3656, 1108, 16104, 28,
613 124, 15824, 3600, 1192, 16084, 32,
614 124, 15808, 3544, 1276, 16064, 36,
615 124, 15800, 3484, 1360, 16044, 40,
616 128, 15792, 3420, 1448, 16024, 44,
617 128, 15784, 3352, 1536, 16004, 48,
618 124, 15780, 3288, 1624, 15988, 52,
619 124, 15776, 3216, 1712, 15968, 56,
620 124, 15776, 3144, 1800, 15948, 64,
621 120, 15776, 3068, 1888, 15932, 68,
622 120, 15780, 2992, 1976, 15912, 72,
623 116, 15784, 2916, 2064, 15896, 76,
624 112, 15792, 2836, 2152, 15880, 80,
625 108, 15796, 2752, 2244, 15868, 84,
626 104, 15804, 2672, 2328, 15852, 88,
627 104, 15816, 2588, 2416, 15840, 92,
628 100, 15828, 2504, 2504, 15828, 100 };
629
630 static const uint16_t filter_6tap_64p_117[198] = {
631 16168, 476, 3568, 476, 16168, 0,
632 16180, 428, 3564, 528, 16156, 0,
633 16192, 376, 3556, 584, 16144, 4,
634 16204, 328, 3548, 636, 16128, 4,
635 16216, 280, 3540, 692, 16116, 8,
636 16228, 232, 3524, 748, 16104, 12,
637 16240, 188, 3512, 808, 16092, 12,
638 16252, 148, 3492, 864, 16080, 16,
639 16264, 104, 3472, 924, 16068, 16,
640 16276, 64, 3452, 984, 16056, 20,
641 16284, 28, 3428, 1044, 16048, 24,
642 16296, 16376, 3400, 1108, 16036, 24,
643 16304, 16340, 3372, 1168, 16024, 28,
644 16316, 16304, 3340, 1232, 16016, 32,
645 16324, 16272, 3308, 1296, 16004, 32,
646 16332, 16244, 3272, 1360, 15996, 36,
647 16344, 16212, 3236, 1424, 15988, 36,
648 16352, 16188, 3200, 1488, 15980, 40,
649 16360, 16160, 3160, 1552, 15972, 40,
650 16368, 16136, 3116, 1616, 15964, 40,
651 16372, 16112, 3072, 1680, 15956, 44,
652 16380, 16092, 3028, 1744, 15952, 44,
653 0, 16072, 2980, 1808, 15948, 44,
654 8, 16052, 2932, 1872, 15944, 48,
655 12, 16036, 2880, 1936, 15940, 48,
656 16, 16020, 2828, 2000, 15936, 48,
657 20, 16008, 2776, 2064, 15936, 48,
658 24, 15996, 2724, 2128, 15936, 48,
659 28, 15984, 2668, 2192, 15936, 48,
660 32, 15972, 2612, 2252, 15940, 44,
661 36, 15964, 2552, 2316, 15940, 44,
662 40, 15956, 2496, 2376, 15944, 44,
663 40, 15952, 2436, 2436, 15952, 40 };
664
665 static const uint16_t filter_6tap_64p_150[198] = {
666 16148, 920, 2724, 920, 16148, 0,
667 16152, 880, 2724, 956, 16148, 0,
668 16152, 844, 2720, 996, 16144, 0,
669 16156, 804, 2716, 1032, 16144, 0,
670 16156, 768, 2712, 1072, 16144, 0,
671 16160, 732, 2708, 1112, 16144, 16380,
672 16164, 696, 2700, 1152, 16144, 16380,
673 16168, 660, 2692, 1192, 16148, 16380,
674 16172, 628, 2684, 1232, 16148, 16380,
675 16176, 592, 2672, 1272, 16152, 16376,
676 16180, 560, 2660, 1312, 16152, 16376,
677 16184, 524, 2648, 1348, 16156, 16376,
678 16192, 492, 2632, 1388, 16160, 16372,
679 16196, 460, 2616, 1428, 16164, 16372,
680 16200, 432, 2600, 1468, 16168, 16368,
681 16204, 400, 2584, 1508, 16176, 16364,
682 16212, 368, 2564, 1548, 16180, 16364,
683 16216, 340, 2544, 1588, 16188, 16360,
684 16220, 312, 2524, 1628, 16196, 16356,
685 16228, 284, 2504, 1668, 16204, 16356,
686 16232, 256, 2480, 1704, 16212, 16352,
687 16240, 232, 2456, 1744, 16224, 16348,
688 16244, 204, 2432, 1780, 16232, 16344,
689 16248, 180, 2408, 1820, 16244, 16340,
690 16256, 156, 2380, 1856, 16256, 16336,
691 16260, 132, 2352, 1896, 16268, 16332,
692 16268, 108, 2324, 1932, 16280, 16328,
693 16272, 88, 2296, 1968, 16292, 16324,
694 16276, 64, 2268, 2004, 16308, 16320,
695 16284, 44, 2236, 2036, 16324, 16312,
696 16288, 24, 2204, 2072, 16340, 16308,
697 16292, 8, 2172, 2108, 16356, 16304,
698 16300, 16372, 2140, 2140, 16372, 16300 };
699
700 static const uint16_t filter_6tap_64p_183[198] = {
701 16296, 1032, 2196, 1032, 16296, 0,
702 16292, 1004, 2200, 1060, 16304, 16380,
703 16288, 976, 2200, 1088, 16308, 16380,
704 16284, 952, 2196, 1116, 16312, 16376,
705 16284, 924, 2196, 1144, 16320, 16376,
706 16280, 900, 2192, 1172, 16324, 16372,
707 16276, 872, 2192, 1200, 16332, 16368,
708 16276, 848, 2188, 1228, 16340, 16368,
709 16272, 820, 2180, 1256, 16348, 16364,
710 16272, 796, 2176, 1280, 16356, 16360,
711 16268, 768, 2168, 1308, 16364, 16360,
712 16268, 744, 2164, 1336, 16372, 16356,
713 16268, 716, 2156, 1364, 16380, 16352,
714 16264, 692, 2148, 1392, 4, 16352,
715 16264, 668, 2136, 1420, 16, 16348,
716 16264, 644, 2128, 1448, 28, 16344,
717 16264, 620, 2116, 1472, 36, 16340,
718 16264, 596, 2108, 1500, 48, 16340,
719 16268, 572, 2096, 1524, 60, 16336,
720 16268, 548, 2080, 1552, 72, 16332,
721 16268, 524, 2068, 1576, 88, 16328,
722 16268, 504, 2056, 1604, 100, 16324,
723 16272, 480, 2040, 1628, 112, 16324,
724 16272, 456, 2024, 1652, 128, 16320,
725 16272, 436, 2008, 1680, 144, 16316,
726 16276, 416, 1992, 1704, 156, 16312,
727 16276, 392, 1976, 1724, 172, 16308,
728 16280, 372, 1956, 1748, 188, 16308,
729 16280, 352, 1940, 1772, 204, 16304,
730 16284, 332, 1920, 1796, 224, 16300,
731 16288, 312, 1900, 1816, 240, 16296,
732 16288, 296, 1880, 1840, 256, 16296,
733 16292, 276, 1860, 1860, 276, 16292 };
734
735 static const uint16_t filter_7tap_64p_upscale[231] = {
736 176, 15760, 2488, 2488, 15760, 176, 0,
737 172, 15772, 2404, 2572, 15752, 180, 16380,
738 168, 15784, 2324, 2656, 15740, 184, 16380,
739 164, 15800, 2240, 2736, 15732, 188, 16376,
740 160, 15812, 2152, 2816, 15728, 192, 16376,
741 152, 15828, 2068, 2896, 15724, 192, 16376,
742 148, 15848, 1984, 2972, 15720, 196, 16372,
743 140, 15864, 1896, 3048, 15720, 196, 16372,
744 136, 15884, 1812, 3124, 15720, 196, 16368,
745 128, 15900, 1724, 3196, 15720, 196, 16368,
746 120, 15920, 1640, 3268, 15724, 196, 16368,
747 116, 15940, 1552, 3336, 15732, 196, 16364,
748 108, 15964, 1468, 3400, 15740, 196, 16364,
749 104, 15984, 1384, 3464, 15748, 192, 16364,
750 96, 16004, 1300, 3524, 15760, 188, 16364,
751 88, 16028, 1216, 3584, 15776, 184, 16364,
752 84, 16048, 1132, 3640, 15792, 180, 16360,
753 76, 16072, 1048, 3692, 15812, 176, 16360,
754 68, 16092, 968, 3744, 15832, 168, 16360,
755 64, 16116, 888, 3788, 15856, 160, 16360,
756 56, 16140, 812, 3832, 15884, 152, 16360,
757 52, 16160, 732, 3876, 15912, 144, 16360,
758 44, 16184, 656, 3912, 15944, 136, 16364,
759 40, 16204, 584, 3944, 15976, 124, 16364,
760 32, 16228, 512, 3976, 16012, 116, 16364,
761 28, 16248, 440, 4004, 16048, 104, 16364,
762 24, 16268, 372, 4028, 16092, 88, 16368,
763 20, 16288, 304, 4048, 16132, 76, 16368,
764 12, 16308, 240, 4064, 16180, 60, 16372,
765 8, 16328, 176, 4076, 16228, 48, 16372,
766 4, 16348, 112, 4088, 16276, 32, 16376,
767 0, 16364, 56, 4092, 16328, 16, 16380,
768 0, 0, 0, 4096, 0, 0, 0 };
769
770 static const uint16_t filter_7tap_64p_117[231] = {
771 92, 15868, 2464, 2464, 15868, 92, 0,
772 96, 15864, 2404, 2528, 15876, 88, 0,
773 100, 15860, 2344, 2584, 15884, 84, 0,
774 104, 15856, 2280, 2644, 15892, 76, 0,
775 108, 15852, 2216, 2700, 15904, 72, 0,
776 108, 15852, 2152, 2756, 15916, 64, 0,
777 112, 15852, 2088, 2812, 15932, 60, 0,
778 112, 15852, 2024, 2864, 15948, 52, 0,
779 112, 15856, 1960, 2916, 15964, 44, 0,
780 116, 15860, 1892, 2964, 15984, 36, 0,
781 116, 15864, 1828, 3016, 16004, 24, 4,
782 116, 15868, 1760, 3060, 16024, 16, 4,
783 116, 15876, 1696, 3108, 16048, 8, 8,
784 116, 15884, 1628, 3152, 16072, 16380, 8,
785 112, 15892, 1564, 3192, 16100, 16372, 8,
786 112, 15900, 1496, 3232, 16124, 16360, 12,
787 112, 15908, 1428, 3268, 16156, 16348, 12,
788 108, 15920, 1364, 3304, 16188, 16336, 16,
789 108, 15928, 1300, 3340, 16220, 16324, 20,
790 104, 15940, 1232, 3372, 16252, 16312, 20,
791 104, 15952, 1168, 3400, 16288, 16300, 24,
792 100, 15964, 1104, 3428, 16328, 16284, 28,
793 96, 15980, 1040, 3452, 16364, 16272, 28,
794 96, 15992, 976, 3476, 20, 16256, 32,
795 92, 16004, 916, 3496, 64, 16244, 36,
796 88, 16020, 856, 3516, 108, 16228, 40,
797 84, 16032, 792, 3532, 152, 16216, 44,
798 80, 16048, 732, 3544, 200, 16200, 48,
799 80, 16064, 676, 3556, 248, 16184, 48,
800 76, 16080, 616, 3564, 296, 16168, 52,
801 72, 16092, 560, 3568, 344, 16156, 56,
802 68, 16108, 504, 3572, 396, 16140, 60,
803 64, 16124, 452, 3576, 452, 16124, 64 };
804
805 static const uint16_t filter_7tap_64p_150[231] = {
806 16224, 16380, 2208, 2208, 16380, 16224, 0,
807 16232, 16360, 2172, 2236, 16, 16216, 0,
808 16236, 16340, 2140, 2268, 40, 16212, 0,
809 16244, 16324, 2104, 2296, 60, 16204, 4,
810 16252, 16304, 2072, 2324, 84, 16196, 4,
811 16256, 16288, 2036, 2352, 108, 16192, 4,
812 16264, 16268, 2000, 2380, 132, 16184, 8,
813 16272, 16252, 1960, 2408, 160, 16176, 8,
814 16276, 16240, 1924, 2432, 184, 16172, 8,
815 16284, 16224, 1888, 2456, 212, 16164, 8,
816 16288, 16212, 1848, 2480, 240, 16160, 12,
817 16296, 16196, 1812, 2500, 268, 16152, 12,
818 16300, 16184, 1772, 2524, 296, 16144, 12,
819 16308, 16172, 1736, 2544, 324, 16140, 12,
820 16312, 16164, 1696, 2564, 356, 16136, 12,
821 16320, 16152, 1656, 2584, 388, 16128, 12,
822 16324, 16144, 1616, 2600, 416, 16124, 12,
823 16328, 16136, 1576, 2616, 448, 16116, 12,
824 16332, 16128, 1536, 2632, 480, 16112, 12,
825 16340, 16120, 1496, 2648, 516, 16108, 12,
826 16344, 16112, 1456, 2660, 548, 16104, 12,
827 16348, 16104, 1416, 2672, 580, 16100, 12,
828 16352, 16100, 1376, 2684, 616, 16096, 12,
829 16356, 16096, 1336, 2696, 652, 16092, 12,
830 16360, 16092, 1296, 2704, 688, 16088, 12,
831 16364, 16088, 1256, 2712, 720, 16084, 12,
832 16368, 16084, 1220, 2720, 760, 16084, 8,
833 16368, 16080, 1180, 2724, 796, 16080, 8,
834 16372, 16080, 1140, 2732, 832, 16080, 8,
835 16376, 16076, 1100, 2732, 868, 16076, 4,
836 16380, 16076, 1060, 2736, 908, 16076, 4,
837 16380, 16076, 1020, 2740, 944, 16076, 0,
838 0, 16076, 984, 2740, 984, 16076, 0 };
839
840 static const uint16_t filter_7tap_64p_183[231] = {
841 16216, 324, 1884, 1884, 324, 16216, 0,
842 16220, 304, 1864, 1904, 344, 16216, 0,
843 16224, 284, 1844, 1924, 364, 16216, 0,
844 16224, 264, 1824, 1944, 384, 16212, 16380,
845 16228, 248, 1804, 1960, 408, 16212, 16380,
846 16228, 228, 1784, 1976, 428, 16208, 16380,
847 16232, 212, 1760, 1996, 452, 16208, 16380,
848 16236, 192, 1740, 2012, 472, 16208, 16376,
849 16240, 176, 1716, 2028, 496, 16208, 16376,
850 16240, 160, 1696, 2040, 516, 16208, 16376,
851 16244, 144, 1672, 2056, 540, 16208, 16376,
852 16248, 128, 1648, 2068, 564, 16208, 16372,
853 16252, 112, 1624, 2084, 588, 16208, 16372,
854 16256, 96, 1600, 2096, 612, 16208, 16368,
855 16256, 84, 1576, 2108, 636, 16208, 16368,
856 16260, 68, 1552, 2120, 660, 16208, 16368,
857 16264, 56, 1524, 2132, 684, 16212, 16364,
858 16268, 40, 1500, 2140, 712, 16212, 16364,
859 16272, 28, 1476, 2152, 736, 16216, 16360,
860 16276, 16, 1448, 2160, 760, 16216, 16356,
861 16280, 4, 1424, 2168, 788, 16220, 16356,
862 16284, 16376, 1396, 2176, 812, 16224, 16352,
863 16288, 16368, 1372, 2184, 840, 16224, 16352,
864 16292, 16356, 1344, 2188, 864, 16228, 16348,
865 16292, 16344, 1320, 2196, 892, 16232, 16344,
866 16296, 16336, 1292, 2200, 916, 16236, 16344,
867 16300, 16324, 1264, 2204, 944, 16240, 16340,
868 16304, 16316, 1240, 2208, 972, 16248, 16336,
869 16308, 16308, 1212, 2212, 996, 16252, 16332,
870 16312, 16300, 1184, 2216, 1024, 16256, 16332,
871 16316, 16292, 1160, 2216, 1052, 16264, 16328,
872 16316, 16284, 1132, 2216, 1076, 16268, 16324,
873 16320, 16276, 1104, 2216, 1104, 16276, 16320 };
874
875 static const uint16_t filter_8tap_64p_upscale[264] = {
876 0, 0, 0, 4096, 0, 0, 0, 0,
877 16376, 20, 16328, 4092, 56, 16364, 4, 0,
878 16372, 36, 16272, 4088, 116, 16340, 12, 0,
879 16364, 56, 16220, 4080, 180, 16320, 20, 0,
880 16360, 76, 16172, 4064, 244, 16296, 24, 16380,
881 16356, 92, 16124, 4048, 312, 16276, 32, 16380,
882 16352, 108, 16080, 4032, 380, 16252, 40, 16380,
883 16344, 124, 16036, 4008, 452, 16228, 48, 16380,
884 16340, 136, 15996, 3980, 524, 16204, 56, 16380,
885 16340, 152, 15956, 3952, 600, 16180, 64, 16376,
886 16336, 164, 15920, 3920, 672, 16156, 76, 16376,
887 16332, 176, 15888, 3884, 752, 16132, 84, 16376,
888 16328, 188, 15860, 3844, 828, 16104, 92, 16372,
889 16328, 200, 15828, 3800, 908, 16080, 100, 16372,
890 16324, 208, 15804, 3756, 992, 16056, 108, 16372,
891 16324, 216, 15780, 3708, 1072, 16032, 120, 16368,
892 16320, 224, 15760, 3656, 1156, 16008, 128, 16368,
893 16320, 232, 15740, 3604, 1240, 15984, 136, 16364,
894 16320, 240, 15724, 3548, 1324, 15960, 144, 16364,
895 16320, 244, 15708, 3488, 1412, 15936, 152, 16360,
896 16320, 248, 15696, 3428, 1496, 15912, 160, 16360,
897 16320, 252, 15688, 3364, 1584, 15892, 172, 16356,
898 16320, 256, 15680, 3296, 1672, 15868, 180, 16352,
899 16320, 256, 15672, 3228, 1756, 15848, 188, 16352,
900 16320, 256, 15668, 3156, 1844, 15828, 192, 16348,
901 16320, 260, 15668, 3084, 1932, 15808, 200, 16348,
902 16320, 256, 15668, 3012, 2020, 15792, 208, 16344,
903 16324, 256, 15668, 2936, 2108, 15772, 216, 16344,
904 16324, 256, 15672, 2856, 2192, 15756, 220, 16340,
905 16324, 252, 15676, 2776, 2280, 15740, 228, 16336,
906 16328, 252, 15684, 2696, 2364, 15728, 232, 16336,
907 16328, 248, 15692, 2616, 2448, 15716, 240, 16332,
908 16332, 244, 15704, 2532, 2532, 15704, 244, 16332 };
909
910 static const uint16_t filter_8tap_64p_117[264] = {
911 116, 16100, 428, 3564, 428, 16100, 116, 0,
912 112, 16116, 376, 3564, 484, 16084, 120, 16380,
913 104, 16136, 324, 3560, 540, 16064, 124, 16380,
914 100, 16152, 272, 3556, 600, 16048, 128, 16380,
915 96, 16168, 220, 3548, 656, 16032, 136, 16376,
916 88, 16188, 172, 3540, 716, 16016, 140, 16376,
917 84, 16204, 124, 3528, 780, 16000, 144, 16376,
918 80, 16220, 76, 3512, 840, 15984, 148, 16372,
919 76, 16236, 32, 3496, 904, 15968, 152, 16372,
920 68, 16252, 16376, 3480, 968, 15952, 156, 16372,
921 64, 16268, 16332, 3456, 1032, 15936, 160, 16372,
922 60, 16284, 16292, 3432, 1096, 15920, 164, 16368,
923 56, 16300, 16252, 3408, 1164, 15908, 164, 16368,
924 48, 16316, 16216, 3380, 1228, 15892, 168, 16368,
925 44, 16332, 16180, 3348, 1296, 15880, 168, 16368,
926 40, 16348, 16148, 3316, 1364, 15868, 172, 16364,
927 36, 16360, 16116, 3284, 1428, 15856, 172, 16364,
928 32, 16376, 16084, 3248, 1496, 15848, 176, 16364,
929 28, 4, 16052, 3208, 1564, 15836, 176, 16364,
930 24, 16, 16028, 3168, 1632, 15828, 176, 16364,
931 20, 28, 16000, 3124, 1700, 15820, 176, 16364,
932 16, 40, 15976, 3080, 1768, 15812, 176, 16364,
933 12, 52, 15952, 3036, 1836, 15808, 176, 16364,
934 8, 64, 15932, 2988, 1904, 15800, 176, 16364,
935 4, 76, 15912, 2940, 1972, 15800, 172, 16364,
936 4, 84, 15892, 2888, 2040, 15796, 172, 16364,
937 0, 96, 15876, 2836, 2104, 15792, 168, 16364,
938 16380, 104, 15864, 2780, 2172, 15792, 164, 16364,
939 16380, 112, 15848, 2724, 2236, 15792, 160, 16364,
940 16376, 120, 15836, 2668, 2300, 15796, 156, 16368,
941 16376, 128, 15828, 2608, 2364, 15800, 152, 16368,
942 16372, 136, 15816, 2548, 2428, 15804, 148, 16368,
943 16372, 140, 15812, 2488, 2488, 15812, 140, 16372 };
944
945 static const uint16_t filter_8tap_64p_150[264] = {
946 16380, 16020, 1032, 2756, 1032, 16020, 16380, 0,
947 0, 16020, 992, 2756, 1068, 16024, 16376, 0,
948 4, 16020, 952, 2752, 1108, 16024, 16372, 0,
949 8, 16020, 916, 2748, 1148, 16028, 16368, 0,
950 12, 16020, 876, 2744, 1184, 16032, 16364, 4,
951 16, 16020, 840, 2740, 1224, 16036, 16356, 4,
952 20, 16024, 800, 2732, 1264, 16040, 16352, 4,
953 20, 16024, 764, 2724, 1304, 16044, 16348, 8,
954 24, 16028, 728, 2716, 1344, 16052, 16340, 8,
955 28, 16028, 692, 2704, 1380, 16056, 16336, 12,
956 28, 16032, 656, 2696, 1420, 16064, 16328, 12,
957 32, 16036, 620, 2684, 1460, 16072, 16324, 12,
958 36, 16040, 584, 2668, 1500, 16080, 16316, 16,
959 36, 16044, 548, 2656, 1536, 16088, 16308, 16,
960 36, 16048, 516, 2640, 1576, 16096, 16304, 20,
961 40, 16052, 480, 2624, 1612, 16108, 16296, 20,
962 40, 16060, 448, 2608, 1652, 16120, 16288, 20,
963 44, 16064, 416, 2588, 1692, 16132, 16280, 24,
964 44, 16068, 384, 2568, 1728, 16144, 16276, 24,
965 44, 16076, 352, 2548, 1764, 16156, 16268, 28,
966 44, 16080, 320, 2528, 1804, 16168, 16260, 28,
967 44, 16088, 292, 2508, 1840, 16184, 16252, 28,
968 44, 16096, 264, 2484, 1876, 16200, 16244, 32,
969 48, 16100, 232, 2460, 1912, 16216, 16236, 32,
970 48, 16108, 204, 2436, 1948, 16232, 16228, 32,
971 48, 16116, 176, 2412, 1980, 16248, 16220, 36,
972 48, 16124, 152, 2384, 2016, 16264, 16216, 36,
973 44, 16128, 124, 2356, 2052, 16284, 16208, 36,
974 44, 16136, 100, 2328, 2084, 16304, 16200, 40,
975 44, 16144, 72, 2300, 2116, 16324, 16192, 40,
976 44, 16152, 48, 2272, 2148, 16344, 16184, 40,
977 44, 16160, 24, 2244, 2180, 16364, 16176, 40,
978 44, 16168, 4, 2212, 2212, 4, 16168, 44 };
979
980 static const uint16_t filter_8tap_64p_183[264] = {
981 16264, 16264, 1164, 2244, 1164, 16264, 16264, 0,
982 16268, 16256, 1136, 2240, 1188, 16272, 16260, 0,
983 16272, 16248, 1108, 2240, 1216, 16280, 16256, 0,
984 16276, 16240, 1080, 2236, 1240, 16292, 16252, 0,
985 16280, 16232, 1056, 2236, 1268, 16300, 16248, 0,
986 16284, 16224, 1028, 2232, 1292, 16312, 16244, 0,
987 16288, 16216, 1000, 2228, 1320, 16324, 16240, 0,
988 16292, 16212, 976, 2224, 1344, 16336, 16236, 0,
989 16296, 16204, 948, 2220, 1372, 16348, 16232, 0,
990 16300, 16200, 920, 2212, 1396, 16360, 16228, 4,
991 16304, 16196, 896, 2204, 1424, 16372, 16224, 4,
992 16308, 16188, 868, 2200, 1448, 0, 16220, 4,
993 16312, 16184, 844, 2192, 1472, 12, 16216, 4,
994 16316, 16180, 816, 2184, 1500, 28, 16212, 4,
995 16320, 16176, 792, 2172, 1524, 40, 16208, 4,
996 16324, 16172, 764, 2164, 1548, 56, 16204, 0,
997 16328, 16172, 740, 2156, 1572, 72, 16200, 0,
998 16328, 16168, 712, 2144, 1596, 88, 16196, 0,
999 16332, 16164, 688, 2132, 1620, 100, 16192, 0,
1000 16336, 16164, 664, 2120, 1644, 120, 16192, 0,
1001 16340, 16160, 640, 2108, 1668, 136, 16188, 0,
1002 16344, 16160, 616, 2096, 1688, 152, 16184, 0,
1003 16344, 16160, 592, 2080, 1712, 168, 16180, 0,
1004 16348, 16156, 568, 2068, 1736, 188, 16176, 16380,
1005 16352, 16156, 544, 2052, 1756, 204, 16176, 16380,
1006 16352, 16156, 520, 2036, 1780, 224, 16172, 16380,
1007 16356, 16156, 496, 2024, 1800, 244, 16172, 16380,
1008 16360, 16156, 472, 2008, 1820, 260, 16168, 16376,
1009 16360, 16156, 452, 1988, 1840, 280, 16164, 16376,
1010 16364, 16156, 428, 1972, 1860, 300, 16164, 16376,
1011 16364, 16156, 408, 1956, 1880, 320, 16164, 16372,
1012 16368, 16160, 384, 1936, 1900, 344, 16160, 16372,
1013 16368, 16160, 364, 1920, 1920, 364, 16160, 16368 };
1014
1015 const uint16_t *get_filter_3tap_16p(struct fixed31_32 ratio)
1016 {
1017 if (ratio.value < dc_fixpt_one.value)
1018 return filter_3tap_16p_upscale;
1019 else if (ratio.value < dc_fixpt_from_fraction(4, 3).value)
1020 return filter_3tap_16p_117;
1021 else if (ratio.value < dc_fixpt_from_fraction(5, 3).value)
1022 return filter_3tap_16p_150;
1023 else
1024 return filter_3tap_16p_183;
1025 }
1026
1027 const uint16_t *get_filter_3tap_64p(struct fixed31_32 ratio)
1028 {
1029 if (ratio.value < dc_fixpt_one.value)
1030 return filter_3tap_64p_upscale;
1031 else if (ratio.value < dc_fixpt_from_fraction(4, 3).value)
1032 return filter_3tap_64p_117;
1033 else if (ratio.value < dc_fixpt_from_fraction(5, 3).value)
1034 return filter_3tap_64p_150;
1035 else
1036 return filter_3tap_64p_183;
1037 }
1038
1039 const uint16_t *get_filter_4tap_16p(struct fixed31_32 ratio)
1040 {
1041 if (ratio.value < dc_fixpt_one.value)
1042 return filter_4tap_16p_upscale;
1043 else if (ratio.value < dc_fixpt_from_fraction(4, 3).value)
1044 return filter_4tap_16p_117;
1045 else if (ratio.value < dc_fixpt_from_fraction(5, 3).value)
1046 return filter_4tap_16p_150;
1047 else
1048 return filter_4tap_16p_183;
1049 }
1050
1051 const uint16_t *get_filter_4tap_64p(struct fixed31_32 ratio)
1052 {
1053 if (ratio.value < dc_fixpt_one.value)
1054 return filter_4tap_64p_upscale;
1055 else if (ratio.value < dc_fixpt_from_fraction(4, 3).value)
1056 return filter_4tap_64p_117;
1057 else if (ratio.value < dc_fixpt_from_fraction(5, 3).value)
1058 return filter_4tap_64p_150;
1059 else
1060 return filter_4tap_64p_183;
1061 }
1062
1063 const uint16_t *get_filter_5tap_64p(struct fixed31_32 ratio)
1064 {
1065 if (ratio.value < dc_fixpt_one.value)
1066 return filter_5tap_64p_upscale;
1067 else if (ratio.value < dc_fixpt_from_fraction(4, 3).value)
1068 return filter_5tap_64p_117;
1069 else if (ratio.value < dc_fixpt_from_fraction(5, 3).value)
1070 return filter_5tap_64p_150;
1071 else
1072 return filter_5tap_64p_183;
1073 }
1074
1075 const uint16_t *get_filter_6tap_64p(struct fixed31_32 ratio)
1076 {
1077 if (ratio.value < dc_fixpt_one.value)
1078 return filter_6tap_64p_upscale;
1079 else if (ratio.value < dc_fixpt_from_fraction(4, 3).value)
1080 return filter_6tap_64p_117;
1081 else if (ratio.value < dc_fixpt_from_fraction(5, 3).value)
1082 return filter_6tap_64p_150;
1083 else
1084 return filter_6tap_64p_183;
1085 }
1086
1087 const uint16_t *get_filter_7tap_64p(struct fixed31_32 ratio)
1088 {
1089 if (ratio.value < dc_fixpt_one.value)
1090 return filter_7tap_64p_upscale;
1091 else if (ratio.value < dc_fixpt_from_fraction(4, 3).value)
1092 return filter_7tap_64p_117;
1093 else if (ratio.value < dc_fixpt_from_fraction(5, 3).value)
1094 return filter_7tap_64p_150;
1095 else
1096 return filter_7tap_64p_183;
1097 }
1098
1099 const uint16_t *get_filter_8tap_64p(struct fixed31_32 ratio)
1100 {
1101 if (ratio.value < dc_fixpt_one.value)
1102 return filter_8tap_64p_upscale;
1103 else if (ratio.value < dc_fixpt_from_fraction(4, 3).value)
1104 return filter_8tap_64p_117;
1105 else if (ratio.value < dc_fixpt_from_fraction(5, 3).value)
1106 return filter_8tap_64p_150;
1107 else
1108 return filter_8tap_64p_183;
1109 }
1110
1111 const uint16_t *get_filter_2tap_16p(void)
1112 {
1113 return filter_2tap_16p;
1114 }
1115
1116 const uint16_t *get_filter_2tap_64p(void)
1117 {
1118 return filter_2tap_64p;
1119 }