1 /*
2 * OpenTyrian: A modern cross-platform port of Tyrian
3 * Copyright (C) 2007-2010 The OpenTyrian Development Team
4 *
5 * hq2x, hq3x, hq4x
6 * Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (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, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 */
22
23 #include "palette.h"
24 #include "video.h"
25
26 void interp1(Uint32 *pc, Uint32 c1, Uint32 c2);
27 void interp2(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3);
28 void interp3(Uint32 *pc, Uint32 c1, Uint32 c2);
29 void interp4(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3);
30 void interp5(Uint32 *pc, Uint32 c1, Uint32 c2);
31 void interp6(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3);
32 void interp7(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3);
33 void interp8(Uint32 *pc, Uint32 c1, Uint32 c2);
34 void interp9(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3);
35 void interp10(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3);
36 bool diff(unsigned int w1, unsigned int w2);
37
38 void hq2x_32( SDL_Surface *src_surface, SDL_Surface *dst_surface );
39 void hq3x_32( SDL_Surface *src_surface, SDL_Surface *dst_surface );
40 void hq4x_32( SDL_Surface *src_surface, SDL_Surface *dst_surface );
41
42 static int YUV1, YUV2;
43 const int Ymask = 0x00FF0000;
44 const int Umask = 0x0000FF00;
45 const int Vmask = 0x000000FF;
46 const int trY = 0x00300000;
47 const int trU = 0x00000700;
48 const int trV = 0x00000006;
49
interp1(Uint32 * pc,Uint32 c1,Uint32 c2)50 inline void interp1(Uint32 *pc, Uint32 c1, Uint32 c2)
51 {
52 *pc = (c1*3+c2) >> 2;
53 }
54
interp2(Uint32 * pc,Uint32 c1,Uint32 c2,Uint32 c3)55 inline void interp2(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3)
56 {
57 *pc = (c1*2+c2+c3) >> 2;
58 }
59
interp3(Uint32 * pc,Uint32 c1,Uint32 c2)60 inline void interp3(Uint32 *pc, Uint32 c1, Uint32 c2)
61 {
62 //*((int*)pc) = (c1*7+c2)/8;
63
64 *((int*)pc) = ((((c1 & 0x00FF00)*7 + (c2 & 0x00FF00) ) & 0x0007F800) +
65 (((c1 & 0xFF00FF)*7 + (c2 & 0xFF00FF) ) & 0x07F807F8)) >> 3;
66 }
67
interp4(Uint32 * pc,Uint32 c1,Uint32 c2,Uint32 c3)68 inline void interp4(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3)
69 {
70 //*((int*)pc) = (c1*2+(c2+c3)*7)/16;
71
72 *((int*)pc) = ((((c1 & 0x00FF00)*2 + ((c2 & 0x00FF00) + (c3 & 0x00FF00))*7 ) & 0x000FF000) +
73 (((c1 & 0xFF00FF)*2 + ((c2 & 0xFF00FF) + (c3 & 0xFF00FF))*7 ) & 0x0FF00FF0)) >> 4;
74 }
75
interp5(Uint32 * pc,Uint32 c1,Uint32 c2)76 inline void interp5(Uint32 *pc, Uint32 c1, Uint32 c2)
77 {
78 *pc = (c1+c2) >> 1;
79 }
80
interp6(Uint32 * pc,Uint32 c1,Uint32 c2,Uint32 c3)81 inline void interp6(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3)
82 {
83 //*pc = (c1*5+c2*2+c3)/8;
84
85 *pc = ((((c1 & 0x00FF00)*5 + (c2 & 0x00FF00)*2 + (c3 & 0x00FF00) ) & 0x0007F800) +
86 (((c1 & 0xFF00FF)*5 + (c2 & 0xFF00FF)*2 + (c3 & 0xFF00FF) ) & 0x07F807F8)) >> 3;
87 }
88
interp7(Uint32 * pc,Uint32 c1,Uint32 c2,Uint32 c3)89 inline void interp7(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3)
90 {
91 //*pc = (c1*6+c2+c3)/8;
92
93 *pc = ((((c1 & 0x00FF00)*6 + (c2 & 0x00FF00) + (c3 & 0x00FF00) ) & 0x0007F800) +
94 (((c1 & 0xFF00FF)*6 + (c2 & 0xFF00FF) + (c3 & 0xFF00FF) ) & 0x07F807F8)) >> 3;
95 }
96
interp8(Uint32 * pc,Uint32 c1,Uint32 c2)97 inline void interp8(Uint32 *pc, Uint32 c1, Uint32 c2)
98 {
99 //*pc = (c1*5+c2*3)/8;
100
101 *pc = ((((c1 & 0x00FF00)*5 + (c2 & 0x00FF00)*3 ) & 0x0007F800) +
102 (((c1 & 0xFF00FF)*5 + (c2 & 0xFF00FF)*3 ) & 0x07F807F8)) >> 3;
103 }
104
interp9(Uint32 * pc,Uint32 c1,Uint32 c2,Uint32 c3)105 inline void interp9(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3)
106 {
107 //*pc = (c1*2+(c2+c3)*3)/8;
108
109 *pc = ((((c1 & 0x00FF00)*2 + ((c2 & 0x00FF00) + (c3 & 0x00FF00))*3 ) & 0x0007F800) +
110 (((c1 & 0xFF00FF)*2 + ((c2 & 0xFF00FF) + (c3 & 0xFF00FF))*3 ) & 0x07F807F8)) >> 3;
111 }
112
interp10(Uint32 * pc,Uint32 c1,Uint32 c2,Uint32 c3)113 inline void interp10(Uint32 *pc, Uint32 c1, Uint32 c2, Uint32 c3)
114 {
115 //*pc = (c1*14+c2+c3)/16;
116
117 *pc = ((((c1 & 0x00FF00)*14 + (c2 & 0x00FF00) + (c3 & 0x00FF00) ) & 0x000FF000) +
118 (((c1 & 0xFF00FF)*14 + (c2 & 0xFF00FF) + (c3 & 0xFF00FF) ) & 0x0FF00FF0)) >> 4;
119 }
120
diff(unsigned int w1,unsigned int w2)121 inline bool diff(unsigned int w1, unsigned int w2)
122 {
123 Uint32 YUV1 = yuv_palette[w1];
124 Uint32 YUV2 = yuv_palette[w2];
125 return ( ( abs((YUV1 & Ymask) - (YUV2 & Ymask)) > trY ) ||
126 ( abs((YUV1 & Umask) - (YUV2 & Umask)) > trU ) ||
127 ( abs((YUV1 & Vmask) - (YUV2 & Vmask)) > trV ) );
128 }
129
130
131 #define PIXEL00_0 *(Uint32 *)dst = c[5];
132 #define PIXEL00_10 interp1((Uint32 *)dst, c[5], c[1]);
133 #define PIXEL00_11 interp1((Uint32 *)dst, c[5], c[4]);
134 #define PIXEL00_12 interp1((Uint32 *)dst, c[5], c[2]);
135 #define PIXEL00_20 interp2((Uint32 *)dst, c[5], c[4], c[2]);
136 #define PIXEL00_21 interp2((Uint32 *)dst, c[5], c[1], c[2]);
137 #define PIXEL00_22 interp2((Uint32 *)dst, c[5], c[1], c[4]);
138 #define PIXEL00_60 interp6((Uint32 *)dst, c[5], c[2], c[4]);
139 #define PIXEL00_61 interp6((Uint32 *)dst, c[5], c[4], c[2]);
140 #define PIXEL00_70 interp7((Uint32 *)dst, c[5], c[4], c[2]);
141 #define PIXEL00_90 interp9((Uint32 *)dst, c[5], c[4], c[2]);
142 #define PIXEL00_100 interp10((Uint32 *)dst, c[5], c[4], c[2]);
143 #define PIXEL01_0 *(Uint32 *)(dst + dst_Bpp) = c[5];
144 #define PIXEL01_10 interp1((Uint32 *)(dst + dst_Bpp), c[5], c[3]);
145 #define PIXEL01_11 interp1((Uint32 *)(dst + dst_Bpp), c[5], c[2]);
146 #define PIXEL01_12 interp1((Uint32 *)(dst + dst_Bpp), c[5], c[6]);
147 #define PIXEL01_20 interp2((Uint32 *)(dst + dst_Bpp), c[5], c[2], c[6]);
148 #define PIXEL01_21 interp2((Uint32 *)(dst + dst_Bpp), c[5], c[3], c[6]);
149 #define PIXEL01_22 interp2((Uint32 *)(dst + dst_Bpp), c[5], c[3], c[2]);
150 #define PIXEL01_60 interp6((Uint32 *)(dst + dst_Bpp), c[5], c[6], c[2]);
151 #define PIXEL01_61 interp6((Uint32 *)(dst + dst_Bpp), c[5], c[2], c[6]);
152 #define PIXEL01_70 interp7((Uint32 *)(dst + dst_Bpp), c[5], c[2], c[6]);
153 #define PIXEL01_90 interp9((Uint32 *)(dst + dst_Bpp), c[5], c[2], c[6]);
154 #define PIXEL01_100 interp10((Uint32 *)(dst + dst_Bpp), c[5], c[2], c[6]);
155 #define PIXEL10_0 *(Uint32 *)(dst + dst_pitch) = c[5];
156 #define PIXEL10_10 interp1((Uint32 *)(dst + dst_pitch), c[5], c[7]);
157 #define PIXEL10_11 interp1((Uint32 *)(dst + dst_pitch), c[5], c[8]);
158 #define PIXEL10_12 interp1((Uint32 *)(dst + dst_pitch), c[5], c[4]);
159 #define PIXEL10_20 interp2((Uint32 *)(dst + dst_pitch), c[5], c[8], c[4]);
160 #define PIXEL10_21 interp2((Uint32 *)(dst + dst_pitch), c[5], c[7], c[4]);
161 #define PIXEL10_22 interp2((Uint32 *)(dst + dst_pitch), c[5], c[7], c[8]);
162 #define PIXEL10_60 interp6((Uint32 *)(dst + dst_pitch), c[5], c[4], c[8]);
163 #define PIXEL10_61 interp6((Uint32 *)(dst + dst_pitch), c[5], c[8], c[4]);
164 #define PIXEL10_70 interp7((Uint32 *)(dst + dst_pitch), c[5], c[8], c[4]);
165 #define PIXEL10_90 interp9((Uint32 *)(dst + dst_pitch), c[5], c[8], c[4]);
166 #define PIXEL10_100 interp10((Uint32 *)(dst + dst_pitch), c[5], c[8], c[4]);
167 #define PIXEL11_0 *(Uint32 *)(dst + dst_pitch + dst_Bpp) = c[5];
168 #define PIXEL11_10 interp1((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[9]);
169 #define PIXEL11_11 interp1((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[6]);
170 #define PIXEL11_12 interp1((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[8]);
171 #define PIXEL11_20 interp2((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[6], c[8]);
172 #define PIXEL11_21 interp2((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[9], c[8]);
173 #define PIXEL11_22 interp2((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[9], c[6]);
174 #define PIXEL11_60 interp6((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[8], c[6]);
175 #define PIXEL11_61 interp6((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[6], c[8]);
176 #define PIXEL11_70 interp7((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[6], c[8]);
177 #define PIXEL11_90 interp9((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[6], c[8]);
178 #define PIXEL11_100 interp10((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[6], c[8]);
179
hq2x_32(SDL_Surface * src_surface,SDL_Surface * dst_surface)180 void hq2x_32( SDL_Surface *src_surface, SDL_Surface *dst_surface )
181 {
182 Uint8 *src = src_surface->pixels, *src_temp,
183 *dst = dst_surface->pixels, *dst_temp;
184 int src_pitch = src_surface->pitch,
185 dst_pitch = dst_surface->pitch;
186 const int dst_Bpp = 4; // dst_surface->format->BytesPerPixel
187
188 const int height = vga_height, // src_surface->h
189 width = vga_width; // src_surface->w
190
191 int prevline, nextline;
192
193 Uint32 w[10];
194 Uint32 c[10];
195
196 // +----+----+----+
197 // | | | |
198 // | w1 | w2 | w3 |
199 // +----+----+----+
200 // | | | |
201 // | w4 | w5 | w6 |
202 // +----+----+----+
203 // | | | |
204 // | w7 | w8 | w9 |
205 // +----+----+----+
206
207 for (int j = 0; j < height; j++)
208 {
209 src_temp = src;
210 dst_temp = dst;
211
212 prevline = (j > 0) ? -width : 0;
213 nextline = (j < height - 1) ? width : 0;
214
215 for (int i = 0; i < width; i++)
216 {
217 w[2] = *(src + prevline);
218 w[5] = *src;
219 w[8] = *(src + nextline);
220
221 if (i > 0)
222 {
223 w[1] = *(src + prevline - 1);
224 w[4] = *(src - 1);
225 w[7] = *(src + nextline - 1);
226 } else {
227 w[1] = w[2];
228 w[4] = w[5];
229 w[7] = w[8];
230 }
231
232 if (i < width - 1)
233 {
234 w[3] = *(src + prevline + 1);
235 w[6] = *(src + 1);
236 w[9] = *(src + nextline + 1);
237 } else {
238 w[3] = w[2];
239 w[6] = w[5];
240 w[9] = w[8];
241 }
242
243 int pattern = 0;
244 int flag = 1;
245
246 YUV1 = yuv_palette[w[5]];
247
248 for (int k=1; k<=9; k++)
249 {
250 if (k==5) continue;
251
252 if ( w[k] != w[5] )
253 {
254 YUV2 = yuv_palette[w[k]];
255 if ( ( abs((YUV1 & Ymask) - (YUV2 & Ymask)) > trY ) ||
256 ( abs((YUV1 & Umask) - (YUV2 & Umask)) > trU ) ||
257 ( abs((YUV1 & Vmask) - (YUV2 & Vmask)) > trV ) )
258 pattern |= flag;
259 }
260 flag <<= 1;
261 }
262
263 for (int k=1; k<=9; k++)
264 c[k] = rgb_palette[w[k]] & 0xfcfcfcfc; // hq2x has a nasty inability to accept more than 6 bits for each component
265
266 switch (pattern)
267 {
268 case 0:
269 case 1:
270 case 4:
271 case 32:
272 case 128:
273 case 5:
274 case 132:
275 case 160:
276 case 33:
277 case 129:
278 case 36:
279 case 133:
280 case 164:
281 case 161:
282 case 37:
283 case 165:
284 {
285 PIXEL00_20
286 PIXEL01_20
287 PIXEL10_20
288 PIXEL11_20
289 break;
290 }
291 case 2:
292 case 34:
293 case 130:
294 case 162:
295 {
296 PIXEL00_22
297 PIXEL01_21
298 PIXEL10_20
299 PIXEL11_20
300 break;
301 }
302 case 16:
303 case 17:
304 case 48:
305 case 49:
306 {
307 PIXEL00_20
308 PIXEL01_22
309 PIXEL10_20
310 PIXEL11_21
311 break;
312 }
313 case 64:
314 case 65:
315 case 68:
316 case 69:
317 {
318 PIXEL00_20
319 PIXEL01_20
320 PIXEL10_21
321 PIXEL11_22
322 break;
323 }
324 case 8:
325 case 12:
326 case 136:
327 case 140:
328 {
329 PIXEL00_21
330 PIXEL01_20
331 PIXEL10_22
332 PIXEL11_20
333 break;
334 }
335 case 3:
336 case 35:
337 case 131:
338 case 163:
339 {
340 PIXEL00_11
341 PIXEL01_21
342 PIXEL10_20
343 PIXEL11_20
344 break;
345 }
346 case 6:
347 case 38:
348 case 134:
349 case 166:
350 {
351 PIXEL00_22
352 PIXEL01_12
353 PIXEL10_20
354 PIXEL11_20
355 break;
356 }
357 case 20:
358 case 21:
359 case 52:
360 case 53:
361 {
362 PIXEL00_20
363 PIXEL01_11
364 PIXEL10_20
365 PIXEL11_21
366 break;
367 }
368 case 144:
369 case 145:
370 case 176:
371 case 177:
372 {
373 PIXEL00_20
374 PIXEL01_22
375 PIXEL10_20
376 PIXEL11_12
377 break;
378 }
379 case 192:
380 case 193:
381 case 196:
382 case 197:
383 {
384 PIXEL00_20
385 PIXEL01_20
386 PIXEL10_21
387 PIXEL11_11
388 break;
389 }
390 case 96:
391 case 97:
392 case 100:
393 case 101:
394 {
395 PIXEL00_20
396 PIXEL01_20
397 PIXEL10_12
398 PIXEL11_22
399 break;
400 }
401 case 40:
402 case 44:
403 case 168:
404 case 172:
405 {
406 PIXEL00_21
407 PIXEL01_20
408 PIXEL10_11
409 PIXEL11_20
410 break;
411 }
412 case 9:
413 case 13:
414 case 137:
415 case 141:
416 {
417 PIXEL00_12
418 PIXEL01_20
419 PIXEL10_22
420 PIXEL11_20
421 break;
422 }
423 case 18:
424 case 50:
425 {
426 PIXEL00_22
427 if (diff(w[2], w[6]))
428 {
429 PIXEL01_10
430 }
431 else
432 {
433 PIXEL01_20
434 }
435 PIXEL10_20
436 PIXEL11_21
437 break;
438 }
439 case 80:
440 case 81:
441 {
442 PIXEL00_20
443 PIXEL01_22
444 PIXEL10_21
445 if (diff(w[6], w[8]))
446 {
447 PIXEL11_10
448 }
449 else
450 {
451 PIXEL11_20
452 }
453 break;
454 }
455 case 72:
456 case 76:
457 {
458 PIXEL00_21
459 PIXEL01_20
460 if (diff(w[8], w[4]))
461 {
462 PIXEL10_10
463 }
464 else
465 {
466 PIXEL10_20
467 }
468 PIXEL11_22
469 break;
470 }
471 case 10:
472 case 138:
473 {
474 if (diff(w[4], w[2]))
475 {
476 PIXEL00_10
477 }
478 else
479 {
480 PIXEL00_20
481 }
482 PIXEL01_21
483 PIXEL10_22
484 PIXEL11_20
485 break;
486 }
487 case 66:
488 {
489 PIXEL00_22
490 PIXEL01_21
491 PIXEL10_21
492 PIXEL11_22
493 break;
494 }
495 case 24:
496 {
497 PIXEL00_21
498 PIXEL01_22
499 PIXEL10_22
500 PIXEL11_21
501 break;
502 }
503 case 7:
504 case 39:
505 case 135:
506 {
507 PIXEL00_11
508 PIXEL01_12
509 PIXEL10_20
510 PIXEL11_20
511 break;
512 }
513 case 148:
514 case 149:
515 case 180:
516 {
517 PIXEL00_20
518 PIXEL01_11
519 PIXEL10_20
520 PIXEL11_12
521 break;
522 }
523 case 224:
524 case 228:
525 case 225:
526 {
527 PIXEL00_20
528 PIXEL01_20
529 PIXEL10_12
530 PIXEL11_11
531 break;
532 }
533 case 41:
534 case 169:
535 case 45:
536 {
537 PIXEL00_12
538 PIXEL01_20
539 PIXEL10_11
540 PIXEL11_20
541 break;
542 }
543 case 22:
544 case 54:
545 {
546 PIXEL00_22
547 if (diff(w[2], w[6]))
548 {
549 PIXEL01_0
550 }
551 else
552 {
553 PIXEL01_20
554 }
555 PIXEL10_20
556 PIXEL11_21
557 break;
558 }
559 case 208:
560 case 209:
561 {
562 PIXEL00_20
563 PIXEL01_22
564 PIXEL10_21
565 if (diff(w[6], w[8]))
566 {
567 PIXEL11_0
568 }
569 else
570 {
571 PIXEL11_20
572 }
573 break;
574 }
575 case 104:
576 case 108:
577 {
578 PIXEL00_21
579 PIXEL01_20
580 if (diff(w[8], w[4]))
581 {
582 PIXEL10_0
583 }
584 else
585 {
586 PIXEL10_20
587 }
588 PIXEL11_22
589 break;
590 }
591 case 11:
592 case 139:
593 {
594 if (diff(w[4], w[2]))
595 {
596 PIXEL00_0
597 }
598 else
599 {
600 PIXEL00_20
601 }
602 PIXEL01_21
603 PIXEL10_22
604 PIXEL11_20
605 break;
606 }
607 case 19:
608 case 51:
609 {
610 if (diff(w[2], w[6]))
611 {
612 PIXEL00_11
613 PIXEL01_10
614 }
615 else
616 {
617 PIXEL00_60
618 PIXEL01_90
619 }
620 PIXEL10_20
621 PIXEL11_21
622 break;
623 }
624 case 146:
625 case 178:
626 {
627 PIXEL00_22
628 if (diff(w[2], w[6]))
629 {
630 PIXEL01_10
631 PIXEL11_12
632 }
633 else
634 {
635 PIXEL01_90
636 PIXEL11_61
637 }
638 PIXEL10_20
639 break;
640 }
641 case 84:
642 case 85:
643 {
644 PIXEL00_20
645 if (diff(w[6], w[8]))
646 {
647 PIXEL01_11
648 PIXEL11_10
649 }
650 else
651 {
652 PIXEL01_60
653 PIXEL11_90
654 }
655 PIXEL10_21
656 break;
657 }
658 case 112:
659 case 113:
660 {
661 PIXEL00_20
662 PIXEL01_22
663 if (diff(w[6], w[8]))
664 {
665 PIXEL10_12
666 PIXEL11_10
667 }
668 else
669 {
670 PIXEL10_61
671 PIXEL11_90
672 }
673 break;
674 }
675 case 200:
676 case 204:
677 {
678 PIXEL00_21
679 PIXEL01_20
680 if (diff(w[8], w[4]))
681 {
682 PIXEL10_10
683 PIXEL11_11
684 }
685 else
686 {
687 PIXEL10_90
688 PIXEL11_60
689 }
690 break;
691 }
692 case 73:
693 case 77:
694 {
695 if (diff(w[8], w[4]))
696 {
697 PIXEL00_12
698 PIXEL10_10
699 }
700 else
701 {
702 PIXEL00_61
703 PIXEL10_90
704 }
705 PIXEL01_20
706 PIXEL11_22
707 break;
708 }
709 case 42:
710 case 170:
711 {
712 if (diff(w[4], w[2]))
713 {
714 PIXEL00_10
715 PIXEL10_11
716 }
717 else
718 {
719 PIXEL00_90
720 PIXEL10_60
721 }
722 PIXEL01_21
723 PIXEL11_20
724 break;
725 }
726 case 14:
727 case 142:
728 {
729 if (diff(w[4], w[2]))
730 {
731 PIXEL00_10
732 PIXEL01_12
733 }
734 else
735 {
736 PIXEL00_90
737 PIXEL01_61
738 }
739 PIXEL10_22
740 PIXEL11_20
741 break;
742 }
743 case 67:
744 {
745 PIXEL00_11
746 PIXEL01_21
747 PIXEL10_21
748 PIXEL11_22
749 break;
750 }
751 case 70:
752 {
753 PIXEL00_22
754 PIXEL01_12
755 PIXEL10_21
756 PIXEL11_22
757 break;
758 }
759 case 28:
760 {
761 PIXEL00_21
762 PIXEL01_11
763 PIXEL10_22
764 PIXEL11_21
765 break;
766 }
767 case 152:
768 {
769 PIXEL00_21
770 PIXEL01_22
771 PIXEL10_22
772 PIXEL11_12
773 break;
774 }
775 case 194:
776 {
777 PIXEL00_22
778 PIXEL01_21
779 PIXEL10_21
780 PIXEL11_11
781 break;
782 }
783 case 98:
784 {
785 PIXEL00_22
786 PIXEL01_21
787 PIXEL10_12
788 PIXEL11_22
789 break;
790 }
791 case 56:
792 {
793 PIXEL00_21
794 PIXEL01_22
795 PIXEL10_11
796 PIXEL11_21
797 break;
798 }
799 case 25:
800 {
801 PIXEL00_12
802 PIXEL01_22
803 PIXEL10_22
804 PIXEL11_21
805 break;
806 }
807 case 26:
808 case 31:
809 {
810 if (diff(w[4], w[2]))
811 {
812 PIXEL00_0
813 }
814 else
815 {
816 PIXEL00_20
817 }
818 if (diff(w[2], w[6]))
819 {
820 PIXEL01_0
821 }
822 else
823 {
824 PIXEL01_20
825 }
826 PIXEL10_22
827 PIXEL11_21
828 break;
829 }
830 case 82:
831 case 214:
832 {
833 PIXEL00_22
834 if (diff(w[2], w[6]))
835 {
836 PIXEL01_0
837 }
838 else
839 {
840 PIXEL01_20
841 }
842 PIXEL10_21
843 if (diff(w[6], w[8]))
844 {
845 PIXEL11_0
846 }
847 else
848 {
849 PIXEL11_20
850 }
851 break;
852 }
853 case 88:
854 case 248:
855 {
856 PIXEL00_21
857 PIXEL01_22
858 if (diff(w[8], w[4]))
859 {
860 PIXEL10_0
861 }
862 else
863 {
864 PIXEL10_20
865 }
866 if (diff(w[6], w[8]))
867 {
868 PIXEL11_0
869 }
870 else
871 {
872 PIXEL11_20
873 }
874 break;
875 }
876 case 74:
877 case 107:
878 {
879 if (diff(w[4], w[2]))
880 {
881 PIXEL00_0
882 }
883 else
884 {
885 PIXEL00_20
886 }
887 PIXEL01_21
888 if (diff(w[8], w[4]))
889 {
890 PIXEL10_0
891 }
892 else
893 {
894 PIXEL10_20
895 }
896 PIXEL11_22
897 break;
898 }
899 case 27:
900 {
901 if (diff(w[4], w[2]))
902 {
903 PIXEL00_0
904 }
905 else
906 {
907 PIXEL00_20
908 }
909 PIXEL01_10
910 PIXEL10_22
911 PIXEL11_21
912 break;
913 }
914 case 86:
915 {
916 PIXEL00_22
917 if (diff(w[2], w[6]))
918 {
919 PIXEL01_0
920 }
921 else
922 {
923 PIXEL01_20
924 }
925 PIXEL10_21
926 PIXEL11_10
927 break;
928 }
929 case 216:
930 {
931 PIXEL00_21
932 PIXEL01_22
933 PIXEL10_10
934 if (diff(w[6], w[8]))
935 {
936 PIXEL11_0
937 }
938 else
939 {
940 PIXEL11_20
941 }
942 break;
943 }
944 case 106:
945 {
946 PIXEL00_10
947 PIXEL01_21
948 if (diff(w[8], w[4]))
949 {
950 PIXEL10_0
951 }
952 else
953 {
954 PIXEL10_20
955 }
956 PIXEL11_22
957 break;
958 }
959 case 30:
960 {
961 PIXEL00_10
962 if (diff(w[2], w[6]))
963 {
964 PIXEL01_0
965 }
966 else
967 {
968 PIXEL01_20
969 }
970 PIXEL10_22
971 PIXEL11_21
972 break;
973 }
974 case 210:
975 {
976 PIXEL00_22
977 PIXEL01_10
978 PIXEL10_21
979 if (diff(w[6], w[8]))
980 {
981 PIXEL11_0
982 }
983 else
984 {
985 PIXEL11_20
986 }
987 break;
988 }
989 case 120:
990 {
991 PIXEL00_21
992 PIXEL01_22
993 if (diff(w[8], w[4]))
994 {
995 PIXEL10_0
996 }
997 else
998 {
999 PIXEL10_20
1000 }
1001 PIXEL11_10
1002 break;
1003 }
1004 case 75:
1005 {
1006 if (diff(w[4], w[2]))
1007 {
1008 PIXEL00_0
1009 }
1010 else
1011 {
1012 PIXEL00_20
1013 }
1014 PIXEL01_21
1015 PIXEL10_10
1016 PIXEL11_22
1017 break;
1018 }
1019 case 29:
1020 {
1021 PIXEL00_12
1022 PIXEL01_11
1023 PIXEL10_22
1024 PIXEL11_21
1025 break;
1026 }
1027 case 198:
1028 {
1029 PIXEL00_22
1030 PIXEL01_12
1031 PIXEL10_21
1032 PIXEL11_11
1033 break;
1034 }
1035 case 184:
1036 {
1037 PIXEL00_21
1038 PIXEL01_22
1039 PIXEL10_11
1040 PIXEL11_12
1041 break;
1042 }
1043 case 99:
1044 {
1045 PIXEL00_11
1046 PIXEL01_21
1047 PIXEL10_12
1048 PIXEL11_22
1049 break;
1050 }
1051 case 57:
1052 {
1053 PIXEL00_12
1054 PIXEL01_22
1055 PIXEL10_11
1056 PIXEL11_21
1057 break;
1058 }
1059 case 71:
1060 {
1061 PIXEL00_11
1062 PIXEL01_12
1063 PIXEL10_21
1064 PIXEL11_22
1065 break;
1066 }
1067 case 156:
1068 {
1069 PIXEL00_21
1070 PIXEL01_11
1071 PIXEL10_22
1072 PIXEL11_12
1073 break;
1074 }
1075 case 226:
1076 {
1077 PIXEL00_22
1078 PIXEL01_21
1079 PIXEL10_12
1080 PIXEL11_11
1081 break;
1082 }
1083 case 60:
1084 {
1085 PIXEL00_21
1086 PIXEL01_11
1087 PIXEL10_11
1088 PIXEL11_21
1089 break;
1090 }
1091 case 195:
1092 {
1093 PIXEL00_11
1094 PIXEL01_21
1095 PIXEL10_21
1096 PIXEL11_11
1097 break;
1098 }
1099 case 102:
1100 {
1101 PIXEL00_22
1102 PIXEL01_12
1103 PIXEL10_12
1104 PIXEL11_22
1105 break;
1106 }
1107 case 153:
1108 {
1109 PIXEL00_12
1110 PIXEL01_22
1111 PIXEL10_22
1112 PIXEL11_12
1113 break;
1114 }
1115 case 58:
1116 {
1117 if (diff(w[4], w[2]))
1118 {
1119 PIXEL00_10
1120 }
1121 else
1122 {
1123 PIXEL00_70
1124 }
1125 if (diff(w[2], w[6]))
1126 {
1127 PIXEL01_10
1128 }
1129 else
1130 {
1131 PIXEL01_70
1132 }
1133 PIXEL10_11
1134 PIXEL11_21
1135 break;
1136 }
1137 case 83:
1138 {
1139 PIXEL00_11
1140 if (diff(w[2], w[6]))
1141 {
1142 PIXEL01_10
1143 }
1144 else
1145 {
1146 PIXEL01_70
1147 }
1148 PIXEL10_21
1149 if (diff(w[6], w[8]))
1150 {
1151 PIXEL11_10
1152 }
1153 else
1154 {
1155 PIXEL11_70
1156 }
1157 break;
1158 }
1159 case 92:
1160 {
1161 PIXEL00_21
1162 PIXEL01_11
1163 if (diff(w[8], w[4]))
1164 {
1165 PIXEL10_10
1166 }
1167 else
1168 {
1169 PIXEL10_70
1170 }
1171 if (diff(w[6], w[8]))
1172 {
1173 PIXEL11_10
1174 }
1175 else
1176 {
1177 PIXEL11_70
1178 }
1179 break;
1180 }
1181 case 202:
1182 {
1183 if (diff(w[4], w[2]))
1184 {
1185 PIXEL00_10
1186 }
1187 else
1188 {
1189 PIXEL00_70
1190 }
1191 PIXEL01_21
1192 if (diff(w[8], w[4]))
1193 {
1194 PIXEL10_10
1195 }
1196 else
1197 {
1198 PIXEL10_70
1199 }
1200 PIXEL11_11
1201 break;
1202 }
1203 case 78:
1204 {
1205 if (diff(w[4], w[2]))
1206 {
1207 PIXEL00_10
1208 }
1209 else
1210 {
1211 PIXEL00_70
1212 }
1213 PIXEL01_12
1214 if (diff(w[8], w[4]))
1215 {
1216 PIXEL10_10
1217 }
1218 else
1219 {
1220 PIXEL10_70
1221 }
1222 PIXEL11_22
1223 break;
1224 }
1225 case 154:
1226 {
1227 if (diff(w[4], w[2]))
1228 {
1229 PIXEL00_10
1230 }
1231 else
1232 {
1233 PIXEL00_70
1234 }
1235 if (diff(w[2], w[6]))
1236 {
1237 PIXEL01_10
1238 }
1239 else
1240 {
1241 PIXEL01_70
1242 }
1243 PIXEL10_22
1244 PIXEL11_12
1245 break;
1246 }
1247 case 114:
1248 {
1249 PIXEL00_22
1250 if (diff(w[2], w[6]))
1251 {
1252 PIXEL01_10
1253 }
1254 else
1255 {
1256 PIXEL01_70
1257 }
1258 PIXEL10_12
1259 if (diff(w[6], w[8]))
1260 {
1261 PIXEL11_10
1262 }
1263 else
1264 {
1265 PIXEL11_70
1266 }
1267 break;
1268 }
1269 case 89:
1270 {
1271 PIXEL00_12
1272 PIXEL01_22
1273 if (diff(w[8], w[4]))
1274 {
1275 PIXEL10_10
1276 }
1277 else
1278 {
1279 PIXEL10_70
1280 }
1281 if (diff(w[6], w[8]))
1282 {
1283 PIXEL11_10
1284 }
1285 else
1286 {
1287 PIXEL11_70
1288 }
1289 break;
1290 }
1291 case 90:
1292 {
1293 if (diff(w[4], w[2]))
1294 {
1295 PIXEL00_10
1296 }
1297 else
1298 {
1299 PIXEL00_70
1300 }
1301 if (diff(w[2], w[6]))
1302 {
1303 PIXEL01_10
1304 }
1305 else
1306 {
1307 PIXEL01_70
1308 }
1309 if (diff(w[8], w[4]))
1310 {
1311 PIXEL10_10
1312 }
1313 else
1314 {
1315 PIXEL10_70
1316 }
1317 if (diff(w[6], w[8]))
1318 {
1319 PIXEL11_10
1320 }
1321 else
1322 {
1323 PIXEL11_70
1324 }
1325 break;
1326 }
1327 case 55:
1328 case 23:
1329 {
1330 if (diff(w[2], w[6]))
1331 {
1332 PIXEL00_11
1333 PIXEL01_0
1334 }
1335 else
1336 {
1337 PIXEL00_60
1338 PIXEL01_90
1339 }
1340 PIXEL10_20
1341 PIXEL11_21
1342 break;
1343 }
1344 case 182:
1345 case 150:
1346 {
1347 PIXEL00_22
1348 if (diff(w[2], w[6]))
1349 {
1350 PIXEL01_0
1351 PIXEL11_12
1352 }
1353 else
1354 {
1355 PIXEL01_90
1356 PIXEL11_61
1357 }
1358 PIXEL10_20
1359 break;
1360 }
1361 case 213:
1362 case 212:
1363 {
1364 PIXEL00_20
1365 if (diff(w[6], w[8]))
1366 {
1367 PIXEL01_11
1368 PIXEL11_0
1369 }
1370 else
1371 {
1372 PIXEL01_60
1373 PIXEL11_90
1374 }
1375 PIXEL10_21
1376 break;
1377 }
1378 case 241:
1379 case 240:
1380 {
1381 PIXEL00_20
1382 PIXEL01_22
1383 if (diff(w[6], w[8]))
1384 {
1385 PIXEL10_12
1386 PIXEL11_0
1387 }
1388 else
1389 {
1390 PIXEL10_61
1391 PIXEL11_90
1392 }
1393 break;
1394 }
1395 case 236:
1396 case 232:
1397 {
1398 PIXEL00_21
1399 PIXEL01_20
1400 if (diff(w[8], w[4]))
1401 {
1402 PIXEL10_0
1403 PIXEL11_11
1404 }
1405 else
1406 {
1407 PIXEL10_90
1408 PIXEL11_60
1409 }
1410 break;
1411 }
1412 case 109:
1413 case 105:
1414 {
1415 if (diff(w[8], w[4]))
1416 {
1417 PIXEL00_12
1418 PIXEL10_0
1419 }
1420 else
1421 {
1422 PIXEL00_61
1423 PIXEL10_90
1424 }
1425 PIXEL01_20
1426 PIXEL11_22
1427 break;
1428 }
1429 case 171:
1430 case 43:
1431 {
1432 if (diff(w[4], w[2]))
1433 {
1434 PIXEL00_0
1435 PIXEL10_11
1436 }
1437 else
1438 {
1439 PIXEL00_90
1440 PIXEL10_60
1441 }
1442 PIXEL01_21
1443 PIXEL11_20
1444 break;
1445 }
1446 case 143:
1447 case 15:
1448 {
1449 if (diff(w[4], w[2]))
1450 {
1451 PIXEL00_0
1452 PIXEL01_12
1453 }
1454 else
1455 {
1456 PIXEL00_90
1457 PIXEL01_61
1458 }
1459 PIXEL10_22
1460 PIXEL11_20
1461 break;
1462 }
1463 case 124:
1464 {
1465 PIXEL00_21
1466 PIXEL01_11
1467 if (diff(w[8], w[4]))
1468 {
1469 PIXEL10_0
1470 }
1471 else
1472 {
1473 PIXEL10_20
1474 }
1475 PIXEL11_10
1476 break;
1477 }
1478 case 203:
1479 {
1480 if (diff(w[4], w[2]))
1481 {
1482 PIXEL00_0
1483 }
1484 else
1485 {
1486 PIXEL00_20
1487 }
1488 PIXEL01_21
1489 PIXEL10_10
1490 PIXEL11_11
1491 break;
1492 }
1493 case 62:
1494 {
1495 PIXEL00_10
1496 if (diff(w[2], w[6]))
1497 {
1498 PIXEL01_0
1499 }
1500 else
1501 {
1502 PIXEL01_20
1503 }
1504 PIXEL10_11
1505 PIXEL11_21
1506 break;
1507 }
1508 case 211:
1509 {
1510 PIXEL00_11
1511 PIXEL01_10
1512 PIXEL10_21
1513 if (diff(w[6], w[8]))
1514 {
1515 PIXEL11_0
1516 }
1517 else
1518 {
1519 PIXEL11_20
1520 }
1521 break;
1522 }
1523 case 118:
1524 {
1525 PIXEL00_22
1526 if (diff(w[2], w[6]))
1527 {
1528 PIXEL01_0
1529 }
1530 else
1531 {
1532 PIXEL01_20
1533 }
1534 PIXEL10_12
1535 PIXEL11_10
1536 break;
1537 }
1538 case 217:
1539 {
1540 PIXEL00_12
1541 PIXEL01_22
1542 PIXEL10_10
1543 if (diff(w[6], w[8]))
1544 {
1545 PIXEL11_0
1546 }
1547 else
1548 {
1549 PIXEL11_20
1550 }
1551 break;
1552 }
1553 case 110:
1554 {
1555 PIXEL00_10
1556 PIXEL01_12
1557 if (diff(w[8], w[4]))
1558 {
1559 PIXEL10_0
1560 }
1561 else
1562 {
1563 PIXEL10_20
1564 }
1565 PIXEL11_22
1566 break;
1567 }
1568 case 155:
1569 {
1570 if (diff(w[4], w[2]))
1571 {
1572 PIXEL00_0
1573 }
1574 else
1575 {
1576 PIXEL00_20
1577 }
1578 PIXEL01_10
1579 PIXEL10_22
1580 PIXEL11_12
1581 break;
1582 }
1583 case 188:
1584 {
1585 PIXEL00_21
1586 PIXEL01_11
1587 PIXEL10_11
1588 PIXEL11_12
1589 break;
1590 }
1591 case 185:
1592 {
1593 PIXEL00_12
1594 PIXEL01_22
1595 PIXEL10_11
1596 PIXEL11_12
1597 break;
1598 }
1599 case 61:
1600 {
1601 PIXEL00_12
1602 PIXEL01_11
1603 PIXEL10_11
1604 PIXEL11_21
1605 break;
1606 }
1607 case 157:
1608 {
1609 PIXEL00_12
1610 PIXEL01_11
1611 PIXEL10_22
1612 PIXEL11_12
1613 break;
1614 }
1615 case 103:
1616 {
1617 PIXEL00_11
1618 PIXEL01_12
1619 PIXEL10_12
1620 PIXEL11_22
1621 break;
1622 }
1623 case 227:
1624 {
1625 PIXEL00_11
1626 PIXEL01_21
1627 PIXEL10_12
1628 PIXEL11_11
1629 break;
1630 }
1631 case 230:
1632 {
1633 PIXEL00_22
1634 PIXEL01_12
1635 PIXEL10_12
1636 PIXEL11_11
1637 break;
1638 }
1639 case 199:
1640 {
1641 PIXEL00_11
1642 PIXEL01_12
1643 PIXEL10_21
1644 PIXEL11_11
1645 break;
1646 }
1647 case 220:
1648 {
1649 PIXEL00_21
1650 PIXEL01_11
1651 if (diff(w[8], w[4]))
1652 {
1653 PIXEL10_10
1654 }
1655 else
1656 {
1657 PIXEL10_70
1658 }
1659 if (diff(w[6], w[8]))
1660 {
1661 PIXEL11_0
1662 }
1663 else
1664 {
1665 PIXEL11_20
1666 }
1667 break;
1668 }
1669 case 158:
1670 {
1671 if (diff(w[4], w[2]))
1672 {
1673 PIXEL00_10
1674 }
1675 else
1676 {
1677 PIXEL00_70
1678 }
1679 if (diff(w[2], w[6]))
1680 {
1681 PIXEL01_0
1682 }
1683 else
1684 {
1685 PIXEL01_20
1686 }
1687 PIXEL10_22
1688 PIXEL11_12
1689 break;
1690 }
1691 case 234:
1692 {
1693 if (diff(w[4], w[2]))
1694 {
1695 PIXEL00_10
1696 }
1697 else
1698 {
1699 PIXEL00_70
1700 }
1701 PIXEL01_21
1702 if (diff(w[8], w[4]))
1703 {
1704 PIXEL10_0
1705 }
1706 else
1707 {
1708 PIXEL10_20
1709 }
1710 PIXEL11_11
1711 break;
1712 }
1713 case 242:
1714 {
1715 PIXEL00_22
1716 if (diff(w[2], w[6]))
1717 {
1718 PIXEL01_10
1719 }
1720 else
1721 {
1722 PIXEL01_70
1723 }
1724 PIXEL10_12
1725 if (diff(w[6], w[8]))
1726 {
1727 PIXEL11_0
1728 }
1729 else
1730 {
1731 PIXEL11_20
1732 }
1733 break;
1734 }
1735 case 59:
1736 {
1737 if (diff(w[4], w[2]))
1738 {
1739 PIXEL00_0
1740 }
1741 else
1742 {
1743 PIXEL00_20
1744 }
1745 if (diff(w[2], w[6]))
1746 {
1747 PIXEL01_10
1748 }
1749 else
1750 {
1751 PIXEL01_70
1752 }
1753 PIXEL10_11
1754 PIXEL11_21
1755 break;
1756 }
1757 case 121:
1758 {
1759 PIXEL00_12
1760 PIXEL01_22
1761 if (diff(w[8], w[4]))
1762 {
1763 PIXEL10_0
1764 }
1765 else
1766 {
1767 PIXEL10_20
1768 }
1769 if (diff(w[6], w[8]))
1770 {
1771 PIXEL11_10
1772 }
1773 else
1774 {
1775 PIXEL11_70
1776 }
1777 break;
1778 }
1779 case 87:
1780 {
1781 PIXEL00_11
1782 if (diff(w[2], w[6]))
1783 {
1784 PIXEL01_0
1785 }
1786 else
1787 {
1788 PIXEL01_20
1789 }
1790 PIXEL10_21
1791 if (diff(w[6], w[8]))
1792 {
1793 PIXEL11_10
1794 }
1795 else
1796 {
1797 PIXEL11_70
1798 }
1799 break;
1800 }
1801 case 79:
1802 {
1803 if (diff(w[4], w[2]))
1804 {
1805 PIXEL00_0
1806 }
1807 else
1808 {
1809 PIXEL00_20
1810 }
1811 PIXEL01_12
1812 if (diff(w[8], w[4]))
1813 {
1814 PIXEL10_10
1815 }
1816 else
1817 {
1818 PIXEL10_70
1819 }
1820 PIXEL11_22
1821 break;
1822 }
1823 case 122:
1824 {
1825 if (diff(w[4], w[2]))
1826 {
1827 PIXEL00_10
1828 }
1829 else
1830 {
1831 PIXEL00_70
1832 }
1833 if (diff(w[2], w[6]))
1834 {
1835 PIXEL01_10
1836 }
1837 else
1838 {
1839 PIXEL01_70
1840 }
1841 if (diff(w[8], w[4]))
1842 {
1843 PIXEL10_0
1844 }
1845 else
1846 {
1847 PIXEL10_20
1848 }
1849 if (diff(w[6], w[8]))
1850 {
1851 PIXEL11_10
1852 }
1853 else
1854 {
1855 PIXEL11_70
1856 }
1857 break;
1858 }
1859 case 94:
1860 {
1861 if (diff(w[4], w[2]))
1862 {
1863 PIXEL00_10
1864 }
1865 else
1866 {
1867 PIXEL00_70
1868 }
1869 if (diff(w[2], w[6]))
1870 {
1871 PIXEL01_0
1872 }
1873 else
1874 {
1875 PIXEL01_20
1876 }
1877 if (diff(w[8], w[4]))
1878 {
1879 PIXEL10_10
1880 }
1881 else
1882 {
1883 PIXEL10_70
1884 }
1885 if (diff(w[6], w[8]))
1886 {
1887 PIXEL11_10
1888 }
1889 else
1890 {
1891 PIXEL11_70
1892 }
1893 break;
1894 }
1895 case 218:
1896 {
1897 if (diff(w[4], w[2]))
1898 {
1899 PIXEL00_10
1900 }
1901 else
1902 {
1903 PIXEL00_70
1904 }
1905 if (diff(w[2], w[6]))
1906 {
1907 PIXEL01_10
1908 }
1909 else
1910 {
1911 PIXEL01_70
1912 }
1913 if (diff(w[8], w[4]))
1914 {
1915 PIXEL10_10
1916 }
1917 else
1918 {
1919 PIXEL10_70
1920 }
1921 if (diff(w[6], w[8]))
1922 {
1923 PIXEL11_0
1924 }
1925 else
1926 {
1927 PIXEL11_20
1928 }
1929 break;
1930 }
1931 case 91:
1932 {
1933 if (diff(w[4], w[2]))
1934 {
1935 PIXEL00_0
1936 }
1937 else
1938 {
1939 PIXEL00_20
1940 }
1941 if (diff(w[2], w[6]))
1942 {
1943 PIXEL01_10
1944 }
1945 else
1946 {
1947 PIXEL01_70
1948 }
1949 if (diff(w[8], w[4]))
1950 {
1951 PIXEL10_10
1952 }
1953 else
1954 {
1955 PIXEL10_70
1956 }
1957 if (diff(w[6], w[8]))
1958 {
1959 PIXEL11_10
1960 }
1961 else
1962 {
1963 PIXEL11_70
1964 }
1965 break;
1966 }
1967 case 229:
1968 {
1969 PIXEL00_20
1970 PIXEL01_20
1971 PIXEL10_12
1972 PIXEL11_11
1973 break;
1974 }
1975 case 167:
1976 {
1977 PIXEL00_11
1978 PIXEL01_12
1979 PIXEL10_20
1980 PIXEL11_20
1981 break;
1982 }
1983 case 173:
1984 {
1985 PIXEL00_12
1986 PIXEL01_20
1987 PIXEL10_11
1988 PIXEL11_20
1989 break;
1990 }
1991 case 181:
1992 {
1993 PIXEL00_20
1994 PIXEL01_11
1995 PIXEL10_20
1996 PIXEL11_12
1997 break;
1998 }
1999 case 186:
2000 {
2001 if (diff(w[4], w[2]))
2002 {
2003 PIXEL00_10
2004 }
2005 else
2006 {
2007 PIXEL00_70
2008 }
2009 if (diff(w[2], w[6]))
2010 {
2011 PIXEL01_10
2012 }
2013 else
2014 {
2015 PIXEL01_70
2016 }
2017 PIXEL10_11
2018 PIXEL11_12
2019 break;
2020 }
2021 case 115:
2022 {
2023 PIXEL00_11
2024 if (diff(w[2], w[6]))
2025 {
2026 PIXEL01_10
2027 }
2028 else
2029 {
2030 PIXEL01_70
2031 }
2032 PIXEL10_12
2033 if (diff(w[6], w[8]))
2034 {
2035 PIXEL11_10
2036 }
2037 else
2038 {
2039 PIXEL11_70
2040 }
2041 break;
2042 }
2043 case 93:
2044 {
2045 PIXEL00_12
2046 PIXEL01_11
2047 if (diff(w[8], w[4]))
2048 {
2049 PIXEL10_10
2050 }
2051 else
2052 {
2053 PIXEL10_70
2054 }
2055 if (diff(w[6], w[8]))
2056 {
2057 PIXEL11_10
2058 }
2059 else
2060 {
2061 PIXEL11_70
2062 }
2063 break;
2064 }
2065 case 206:
2066 {
2067 if (diff(w[4], w[2]))
2068 {
2069 PIXEL00_10
2070 }
2071 else
2072 {
2073 PIXEL00_70
2074 }
2075 PIXEL01_12
2076 if (diff(w[8], w[4]))
2077 {
2078 PIXEL10_10
2079 }
2080 else
2081 {
2082 PIXEL10_70
2083 }
2084 PIXEL11_11
2085 break;
2086 }
2087 case 205:
2088 case 201:
2089 {
2090 PIXEL00_12
2091 PIXEL01_20
2092 if (diff(w[8], w[4]))
2093 {
2094 PIXEL10_10
2095 }
2096 else
2097 {
2098 PIXEL10_70
2099 }
2100 PIXEL11_11
2101 break;
2102 }
2103 case 174:
2104 case 46:
2105 {
2106 if (diff(w[4], w[2]))
2107 {
2108 PIXEL00_10
2109 }
2110 else
2111 {
2112 PIXEL00_70
2113 }
2114 PIXEL01_12
2115 PIXEL10_11
2116 PIXEL11_20
2117 break;
2118 }
2119 case 179:
2120 case 147:
2121 {
2122 PIXEL00_11
2123 if (diff(w[2], w[6]))
2124 {
2125 PIXEL01_10
2126 }
2127 else
2128 {
2129 PIXEL01_70
2130 }
2131 PIXEL10_20
2132 PIXEL11_12
2133 break;
2134 }
2135 case 117:
2136 case 116:
2137 {
2138 PIXEL00_20
2139 PIXEL01_11
2140 PIXEL10_12
2141 if (diff(w[6], w[8]))
2142 {
2143 PIXEL11_10
2144 }
2145 else
2146 {
2147 PIXEL11_70
2148 }
2149 break;
2150 }
2151 case 189:
2152 {
2153 PIXEL00_12
2154 PIXEL01_11
2155 PIXEL10_11
2156 PIXEL11_12
2157 break;
2158 }
2159 case 231:
2160 {
2161 PIXEL00_11
2162 PIXEL01_12
2163 PIXEL10_12
2164 PIXEL11_11
2165 break;
2166 }
2167 case 126:
2168 {
2169 PIXEL00_10
2170 if (diff(w[2], w[6]))
2171 {
2172 PIXEL01_0
2173 }
2174 else
2175 {
2176 PIXEL01_20
2177 }
2178 if (diff(w[8], w[4]))
2179 {
2180 PIXEL10_0
2181 }
2182 else
2183 {
2184 PIXEL10_20
2185 }
2186 PIXEL11_10
2187 break;
2188 }
2189 case 219:
2190 {
2191 if (diff(w[4], w[2]))
2192 {
2193 PIXEL00_0
2194 }
2195 else
2196 {
2197 PIXEL00_20
2198 }
2199 PIXEL01_10
2200 PIXEL10_10
2201 if (diff(w[6], w[8]))
2202 {
2203 PIXEL11_0
2204 }
2205 else
2206 {
2207 PIXEL11_20
2208 }
2209 break;
2210 }
2211 case 125:
2212 {
2213 if (diff(w[8], w[4]))
2214 {
2215 PIXEL00_12
2216 PIXEL10_0
2217 }
2218 else
2219 {
2220 PIXEL00_61
2221 PIXEL10_90
2222 }
2223 PIXEL01_11
2224 PIXEL11_10
2225 break;
2226 }
2227 case 221:
2228 {
2229 PIXEL00_12
2230 if (diff(w[6], w[8]))
2231 {
2232 PIXEL01_11
2233 PIXEL11_0
2234 }
2235 else
2236 {
2237 PIXEL01_60
2238 PIXEL11_90
2239 }
2240 PIXEL10_10
2241 break;
2242 }
2243 case 207:
2244 {
2245 if (diff(w[4], w[2]))
2246 {
2247 PIXEL00_0
2248 PIXEL01_12
2249 }
2250 else
2251 {
2252 PIXEL00_90
2253 PIXEL01_61
2254 }
2255 PIXEL10_10
2256 PIXEL11_11
2257 break;
2258 }
2259 case 238:
2260 {
2261 PIXEL00_10
2262 PIXEL01_12
2263 if (diff(w[8], w[4]))
2264 {
2265 PIXEL10_0
2266 PIXEL11_11
2267 }
2268 else
2269 {
2270 PIXEL10_90
2271 PIXEL11_60
2272 }
2273 break;
2274 }
2275 case 190:
2276 {
2277 PIXEL00_10
2278 if (diff(w[2], w[6]))
2279 {
2280 PIXEL01_0
2281 PIXEL11_12
2282 }
2283 else
2284 {
2285 PIXEL01_90
2286 PIXEL11_61
2287 }
2288 PIXEL10_11
2289 break;
2290 }
2291 case 187:
2292 {
2293 if (diff(w[4], w[2]))
2294 {
2295 PIXEL00_0
2296 PIXEL10_11
2297 }
2298 else
2299 {
2300 PIXEL00_90
2301 PIXEL10_60
2302 }
2303 PIXEL01_10
2304 PIXEL11_12
2305 break;
2306 }
2307 case 243:
2308 {
2309 PIXEL00_11
2310 PIXEL01_10
2311 if (diff(w[6], w[8]))
2312 {
2313 PIXEL10_12
2314 PIXEL11_0
2315 }
2316 else
2317 {
2318 PIXEL10_61
2319 PIXEL11_90
2320 }
2321 break;
2322 }
2323 case 119:
2324 {
2325 if (diff(w[2], w[6]))
2326 {
2327 PIXEL00_11
2328 PIXEL01_0
2329 }
2330 else
2331 {
2332 PIXEL00_60
2333 PIXEL01_90
2334 }
2335 PIXEL10_12
2336 PIXEL11_10
2337 break;
2338 }
2339 case 237:
2340 case 233:
2341 {
2342 PIXEL00_12
2343 PIXEL01_20
2344 if (diff(w[8], w[4]))
2345 {
2346 PIXEL10_0
2347 }
2348 else
2349 {
2350 PIXEL10_100
2351 }
2352 PIXEL11_11
2353 break;
2354 }
2355 case 175:
2356 case 47:
2357 {
2358 if (diff(w[4], w[2]))
2359 {
2360 PIXEL00_0
2361 }
2362 else
2363 {
2364 PIXEL00_100
2365 }
2366 PIXEL01_12
2367 PIXEL10_11
2368 PIXEL11_20
2369 break;
2370 }
2371 case 183:
2372 case 151:
2373 {
2374 PIXEL00_11
2375 if (diff(w[2], w[6]))
2376 {
2377 PIXEL01_0
2378 }
2379 else
2380 {
2381 PIXEL01_100
2382 }
2383 PIXEL10_20
2384 PIXEL11_12
2385 break;
2386 }
2387 case 245:
2388 case 244:
2389 {
2390 PIXEL00_20
2391 PIXEL01_11
2392 PIXEL10_12
2393 if (diff(w[6], w[8]))
2394 {
2395 PIXEL11_0
2396 }
2397 else
2398 {
2399 PIXEL11_100
2400 }
2401 break;
2402 }
2403 case 250:
2404 {
2405 PIXEL00_10
2406 PIXEL01_10
2407 if (diff(w[8], w[4]))
2408 {
2409 PIXEL10_0
2410 }
2411 else
2412 {
2413 PIXEL10_20
2414 }
2415 if (diff(w[6], w[8]))
2416 {
2417 PIXEL11_0
2418 }
2419 else
2420 {
2421 PIXEL11_20
2422 }
2423 break;
2424 }
2425 case 123:
2426 {
2427 if (diff(w[4], w[2]))
2428 {
2429 PIXEL00_0
2430 }
2431 else
2432 {
2433 PIXEL00_20
2434 }
2435 PIXEL01_10
2436 if (diff(w[8], w[4]))
2437 {
2438 PIXEL10_0
2439 }
2440 else
2441 {
2442 PIXEL10_20
2443 }
2444 PIXEL11_10
2445 break;
2446 }
2447 case 95:
2448 {
2449 if (diff(w[4], w[2]))
2450 {
2451 PIXEL00_0
2452 }
2453 else
2454 {
2455 PIXEL00_20
2456 }
2457 if (diff(w[2], w[6]))
2458 {
2459 PIXEL01_0
2460 }
2461 else
2462 {
2463 PIXEL01_20
2464 }
2465 PIXEL10_10
2466 PIXEL11_10
2467 break;
2468 }
2469 case 222:
2470 {
2471 PIXEL00_10
2472 if (diff(w[2], w[6]))
2473 {
2474 PIXEL01_0
2475 }
2476 else
2477 {
2478 PIXEL01_20
2479 }
2480 PIXEL10_10
2481 if (diff(w[6], w[8]))
2482 {
2483 PIXEL11_0
2484 }
2485 else
2486 {
2487 PIXEL11_20
2488 }
2489 break;
2490 }
2491 case 252:
2492 {
2493 PIXEL00_21
2494 PIXEL01_11
2495 if (diff(w[8], w[4]))
2496 {
2497 PIXEL10_0
2498 }
2499 else
2500 {
2501 PIXEL10_20
2502 }
2503 if (diff(w[6], w[8]))
2504 {
2505 PIXEL11_0
2506 }
2507 else
2508 {
2509 PIXEL11_100
2510 }
2511 break;
2512 }
2513 case 249:
2514 {
2515 PIXEL00_12
2516 PIXEL01_22
2517 if (diff(w[8], w[4]))
2518 {
2519 PIXEL10_0
2520 }
2521 else
2522 {
2523 PIXEL10_100
2524 }
2525 if (diff(w[6], w[8]))
2526 {
2527 PIXEL11_0
2528 }
2529 else
2530 {
2531 PIXEL11_20
2532 }
2533 break;
2534 }
2535 case 235:
2536 {
2537 if (diff(w[4], w[2]))
2538 {
2539 PIXEL00_0
2540 }
2541 else
2542 {
2543 PIXEL00_20
2544 }
2545 PIXEL01_21
2546 if (diff(w[8], w[4]))
2547 {
2548 PIXEL10_0
2549 }
2550 else
2551 {
2552 PIXEL10_100
2553 }
2554 PIXEL11_11
2555 break;
2556 }
2557 case 111:
2558 {
2559 if (diff(w[4], w[2]))
2560 {
2561 PIXEL00_0
2562 }
2563 else
2564 {
2565 PIXEL00_100
2566 }
2567 PIXEL01_12
2568 if (diff(w[8], w[4]))
2569 {
2570 PIXEL10_0
2571 }
2572 else
2573 {
2574 PIXEL10_20
2575 }
2576 PIXEL11_22
2577 break;
2578 }
2579 case 63:
2580 {
2581 if (diff(w[4], w[2]))
2582 {
2583 PIXEL00_0
2584 }
2585 else
2586 {
2587 PIXEL00_100
2588 }
2589 if (diff(w[2], w[6]))
2590 {
2591 PIXEL01_0
2592 }
2593 else
2594 {
2595 PIXEL01_20
2596 }
2597 PIXEL10_11
2598 PIXEL11_21
2599 break;
2600 }
2601 case 159:
2602 {
2603 if (diff(w[4], w[2]))
2604 {
2605 PIXEL00_0
2606 }
2607 else
2608 {
2609 PIXEL00_20
2610 }
2611 if (diff(w[2], w[6]))
2612 {
2613 PIXEL01_0
2614 }
2615 else
2616 {
2617 PIXEL01_100
2618 }
2619 PIXEL10_22
2620 PIXEL11_12
2621 break;
2622 }
2623 case 215:
2624 {
2625 PIXEL00_11
2626 if (diff(w[2], w[6]))
2627 {
2628 PIXEL01_0
2629 }
2630 else
2631 {
2632 PIXEL01_100
2633 }
2634 PIXEL10_21
2635 if (diff(w[6], w[8]))
2636 {
2637 PIXEL11_0
2638 }
2639 else
2640 {
2641 PIXEL11_20
2642 }
2643 break;
2644 }
2645 case 246:
2646 {
2647 PIXEL00_22
2648 if (diff(w[2], w[6]))
2649 {
2650 PIXEL01_0
2651 }
2652 else
2653 {
2654 PIXEL01_20
2655 }
2656 PIXEL10_12
2657 if (diff(w[6], w[8]))
2658 {
2659 PIXEL11_0
2660 }
2661 else
2662 {
2663 PIXEL11_100
2664 }
2665 break;
2666 }
2667 case 254:
2668 {
2669 PIXEL00_10
2670 if (diff(w[2], w[6]))
2671 {
2672 PIXEL01_0
2673 }
2674 else
2675 {
2676 PIXEL01_20
2677 }
2678 if (diff(w[8], w[4]))
2679 {
2680 PIXEL10_0
2681 }
2682 else
2683 {
2684 PIXEL10_20
2685 }
2686 if (diff(w[6], w[8]))
2687 {
2688 PIXEL11_0
2689 }
2690 else
2691 {
2692 PIXEL11_100
2693 }
2694 break;
2695 }
2696 case 253:
2697 {
2698 PIXEL00_12
2699 PIXEL01_11
2700 if (diff(w[8], w[4]))
2701 {
2702 PIXEL10_0
2703 }
2704 else
2705 {
2706 PIXEL10_100
2707 }
2708 if (diff(w[6], w[8]))
2709 {
2710 PIXEL11_0
2711 }
2712 else
2713 {
2714 PIXEL11_100
2715 }
2716 break;
2717 }
2718 case 251:
2719 {
2720 if (diff(w[4], w[2]))
2721 {
2722 PIXEL00_0
2723 }
2724 else
2725 {
2726 PIXEL00_20
2727 }
2728 PIXEL01_10
2729 if (diff(w[8], w[4]))
2730 {
2731 PIXEL10_0
2732 }
2733 else
2734 {
2735 PIXEL10_100
2736 }
2737 if (diff(w[6], w[8]))
2738 {
2739 PIXEL11_0
2740 }
2741 else
2742 {
2743 PIXEL11_20
2744 }
2745 break;
2746 }
2747 case 239:
2748 {
2749 if (diff(w[4], w[2]))
2750 {
2751 PIXEL00_0
2752 }
2753 else
2754 {
2755 PIXEL00_100
2756 }
2757 PIXEL01_12
2758 if (diff(w[8], w[4]))
2759 {
2760 PIXEL10_0
2761 }
2762 else
2763 {
2764 PIXEL10_100
2765 }
2766 PIXEL11_11
2767 break;
2768 }
2769 case 127:
2770 {
2771 if (diff(w[4], w[2]))
2772 {
2773 PIXEL00_0
2774 }
2775 else
2776 {
2777 PIXEL00_100
2778 }
2779 if (diff(w[2], w[6]))
2780 {
2781 PIXEL01_0
2782 }
2783 else
2784 {
2785 PIXEL01_20
2786 }
2787 if (diff(w[8], w[4]))
2788 {
2789 PIXEL10_0
2790 }
2791 else
2792 {
2793 PIXEL10_20
2794 }
2795 PIXEL11_10
2796 break;
2797 }
2798 case 191:
2799 {
2800 if (diff(w[4], w[2]))
2801 {
2802 PIXEL00_0
2803 }
2804 else
2805 {
2806 PIXEL00_100
2807 }
2808 if (diff(w[2], w[6]))
2809 {
2810 PIXEL01_0
2811 }
2812 else
2813 {
2814 PIXEL01_100
2815 }
2816 PIXEL10_11
2817 PIXEL11_12
2818 break;
2819 }
2820 case 223:
2821 {
2822 if (diff(w[4], w[2]))
2823 {
2824 PIXEL00_0
2825 }
2826 else
2827 {
2828 PIXEL00_20
2829 }
2830 if (diff(w[2], w[6]))
2831 {
2832 PIXEL01_0
2833 }
2834 else
2835 {
2836 PIXEL01_100
2837 }
2838 PIXEL10_10
2839 if (diff(w[6], w[8]))
2840 {
2841 PIXEL11_0
2842 }
2843 else
2844 {
2845 PIXEL11_20
2846 }
2847 break;
2848 }
2849 case 247:
2850 {
2851 PIXEL00_11
2852 if (diff(w[2], w[6]))
2853 {
2854 PIXEL01_0
2855 }
2856 else
2857 {
2858 PIXEL01_100
2859 }
2860 PIXEL10_12
2861 if (diff(w[6], w[8]))
2862 {
2863 PIXEL11_0
2864 }
2865 else
2866 {
2867 PIXEL11_100
2868 }
2869 break;
2870 }
2871 case 255:
2872 {
2873 if (diff(w[4], w[2]))
2874 {
2875 PIXEL00_0
2876 }
2877 else
2878 {
2879 PIXEL00_100
2880 }
2881 if (diff(w[2], w[6]))
2882 {
2883 PIXEL01_0
2884 }
2885 else
2886 {
2887 PIXEL01_100
2888 }
2889 if (diff(w[8], w[4]))
2890 {
2891 PIXEL10_0
2892 }
2893 else
2894 {
2895 PIXEL10_100
2896 }
2897 if (diff(w[6], w[8]))
2898 {
2899 PIXEL11_0
2900 }
2901 else
2902 {
2903 PIXEL11_100
2904 }
2905 break;
2906 }
2907 }
2908
2909 src++;
2910 dst += 2 * dst_Bpp;
2911 }
2912
2913 src = src_temp + src_pitch;
2914 dst = dst_temp + 2 * dst_pitch;
2915 }
2916 }
2917
2918
2919 #define PIXEL00_1M interp1((Uint32 *)dst, c[5], c[1]);
2920 #define PIXEL00_1U interp1((Uint32 *)dst, c[5], c[2]);
2921 #define PIXEL00_1L interp1((Uint32 *)dst, c[5], c[4]);
2922 #define PIXEL00_2 interp2((Uint32 *)dst, c[5], c[4], c[2]);
2923 #define PIXEL00_4 interp4((Uint32 *)dst, c[5], c[4], c[2]);
2924 #define PIXEL00_5 interp5((Uint32 *)dst, c[4], c[2]);
2925 #define PIXEL00_C *(Uint32 *)dst = c[5];
2926
2927 #define PIXEL01_1 interp1((Uint32 *)(dst + dst_Bpp), c[5], c[2]);
2928 #define PIXEL01_3 interp3((Uint32 *)(dst + dst_Bpp), c[5], c[2]);
2929 #define PIXEL01_6 interp1((Uint32 *)(dst + dst_Bpp), c[2], c[5]);
2930 #define PIXEL01_C *(Uint32 *)(dst + dst_Bpp) = c[5];
2931
2932 #define PIXEL02_1M interp1((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[3]);
2933 #define PIXEL02_1U interp1((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[2]);
2934 #define PIXEL02_1R interp1((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[6]);
2935 #define PIXEL02_2 interp2((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[2], c[6]);
2936 #define PIXEL02_4 interp4((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[2], c[6]);
2937 #define PIXEL02_5 interp5((Uint32 *)(dst + 2 * dst_Bpp), c[2], c[6]);
2938 #define PIXEL02_C *(Uint32 *)(dst + 2 * dst_Bpp) = c[5];
2939
2940 #define PIXEL10_1 interp1((Uint32 *)(dst + dst_pitch), c[5], c[4]);
2941 #define PIXEL10_3 interp3((Uint32 *)(dst + dst_pitch), c[5], c[4]);
2942 #define PIXEL10_6 interp1((Uint32 *)(dst + dst_pitch), c[4], c[5]);
2943 #define PIXEL10_C *(Uint32 *)(dst + dst_pitch) = c[5];
2944
2945 #define PIXEL11 *(Uint32 *)(dst + dst_pitch + dst_Bpp) = c[5];
2946
2947 #define PIXEL12_1 interp1((Uint32 *)(dst + dst_pitch + 2 * dst_Bpp), c[5], c[6]);
2948 #define PIXEL12_3 interp3((Uint32 *)(dst + dst_pitch + 2 * dst_Bpp), c[5], c[6]);
2949 #define PIXEL12_6 interp1((Uint32 *)(dst + dst_pitch + 2 * dst_Bpp), c[6], c[5]);
2950 #define PIXEL12_C *(Uint32 *)(dst + dst_pitch + 2 * dst_Bpp) = c[5];
2951
2952 #define PIXEL20_1M interp1((Uint32 *)(dst + 2 * dst_pitch), c[5], c[7]);
2953 #define PIXEL20_1D interp1((Uint32 *)(dst + 2 * dst_pitch), c[5], c[8]);
2954 #define PIXEL20_1L interp1((Uint32 *)(dst + 2 * dst_pitch), c[5], c[4]);
2955 #define PIXEL20_2 interp2((Uint32 *)(dst + 2 * dst_pitch), c[5], c[8], c[4]);
2956 #define PIXEL20_4 interp4((Uint32 *)(dst + 2 * dst_pitch), c[5], c[8], c[4]);
2957 #define PIXEL20_5 interp5((Uint32 *)(dst + 2 * dst_pitch), c[8], c[4]);
2958 #define PIXEL20_C *(Uint32 *)(dst + 2 * dst_pitch) = c[5];
2959
2960 #define PIXEL21_1 interp1((Uint32 *)(dst + 2 * dst_pitch + dst_Bpp), c[5], c[8]);
2961 #define PIXEL21_3 interp3((Uint32 *)(dst + 2 * dst_pitch + dst_Bpp), c[5], c[8]);
2962 #define PIXEL21_6 interp1((Uint32 *)(dst + 2 * dst_pitch + dst_Bpp), c[8], c[5]);
2963 #define PIXEL21_C *(Uint32 *)(dst + 2 * dst_pitch + dst_Bpp) = c[5];
2964
2965 #define PIXEL22_1M interp1((Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp), c[5], c[9]);
2966 #define PIXEL22_1D interp1((Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp), c[5], c[8]);
2967 #define PIXEL22_1R interp1((Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp), c[5], c[6]);
2968 #define PIXEL22_2 interp2((Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp), c[5], c[6], c[8]);
2969 #define PIXEL22_4 interp4((Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp), c[5], c[6], c[8]);
2970 #define PIXEL22_5 interp5((Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp), c[6], c[8]);
2971 #define PIXEL22_C *(Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp) = c[5];
2972
hq3x_32(SDL_Surface * src_surface,SDL_Surface * dst_surface)2973 void hq3x_32( SDL_Surface *src_surface, SDL_Surface *dst_surface )
2974 {
2975 Uint8 *src = src_surface->pixels, *src_temp,
2976 *dst = dst_surface->pixels, *dst_temp;
2977 int src_pitch = src_surface->pitch,
2978 dst_pitch = dst_surface->pitch;
2979 const int dst_Bpp = 4; // dst_surface->format->BytesPerPixel
2980
2981 const int height = vga_height, // src_surface->h
2982 width = vga_width; // src_surface->w
2983
2984 int prevline, nextline;
2985
2986 Uint32 w[10];
2987 Uint32 c[10];
2988
2989 // +----+----+----+
2990 // | | | |
2991 // | w1 | w2 | w3 |
2992 // +----+----+----+
2993 // | | | |
2994 // | w4 | w5 | w6 |
2995 // +----+----+----+
2996 // | | | |
2997 // | w7 | w8 | w9 |
2998 // +----+----+----+
2999
3000 for (int j = 0; j < height; j++)
3001 {
3002 src_temp = src;
3003 dst_temp = dst;
3004
3005 prevline = (j > 0) ? -width : 0;
3006 nextline = (j < height - 1) ? width : 0;
3007
3008 for (int i = 0; i < width; i++)
3009 {
3010 w[2] = *(src + prevline);
3011 w[5] = *src;
3012 w[8] = *(src + nextline);
3013
3014 if (i>0)
3015 {
3016 w[1] = *(src + prevline - 1);
3017 w[4] = *(src - 1);
3018 w[7] = *(src + nextline - 1);
3019 } else {
3020 w[1] = w[2];
3021 w[4] = w[5];
3022 w[7] = w[8];
3023 }
3024
3025 if (i < width - 1)
3026 {
3027 w[3] = *(src + prevline + 1);
3028 w[6] = *(src + 1);
3029 w[9] = *(src + nextline + 1);
3030 } else {
3031 w[3] = w[2];
3032 w[6] = w[5];
3033 w[9] = w[8];
3034 }
3035
3036 int pattern = 0;
3037 int flag = 1;
3038
3039 YUV1 = yuv_palette[w[5]];
3040
3041 for (int k=1; k<=9; k++)
3042 {
3043 if (k==5) continue;
3044
3045 if ( w[k] != w[5] )
3046 {
3047 YUV2 = yuv_palette[w[k]];
3048 if ( ( abs((YUV1 & Ymask) - (YUV2 & Ymask)) > trY ) ||
3049 ( abs((YUV1 & Umask) - (YUV2 & Umask)) > trU ) ||
3050 ( abs((YUV1 & Vmask) - (YUV2 & Vmask)) > trV ) )
3051 pattern |= flag;
3052 }
3053 flag <<= 1;
3054 }
3055
3056 for (int k=1; k<=9; k++)
3057 c[k] = rgb_palette[w[k]] & 0xfcfcfcfc; // hq3x has a nasty inability to accept more than 6 bits for each component
3058
3059 switch (pattern)
3060 {
3061 case 0:
3062 case 1:
3063 case 4:
3064 case 32:
3065 case 128:
3066 case 5:
3067 case 132:
3068 case 160:
3069 case 33:
3070 case 129:
3071 case 36:
3072 case 133:
3073 case 164:
3074 case 161:
3075 case 37:
3076 case 165:
3077 {
3078 PIXEL00_2
3079 PIXEL01_1
3080 PIXEL02_2
3081 PIXEL10_1
3082 PIXEL11
3083 PIXEL12_1
3084 PIXEL20_2
3085 PIXEL21_1
3086 PIXEL22_2
3087 break;
3088 }
3089 case 2:
3090 case 34:
3091 case 130:
3092 case 162:
3093 {
3094 PIXEL00_1M
3095 PIXEL01_C
3096 PIXEL02_1M
3097 PIXEL10_1
3098 PIXEL11
3099 PIXEL12_1
3100 PIXEL20_2
3101 PIXEL21_1
3102 PIXEL22_2
3103 break;
3104 }
3105 case 16:
3106 case 17:
3107 case 48:
3108 case 49:
3109 {
3110 PIXEL00_2
3111 PIXEL01_1
3112 PIXEL02_1M
3113 PIXEL10_1
3114 PIXEL11
3115 PIXEL12_C
3116 PIXEL20_2
3117 PIXEL21_1
3118 PIXEL22_1M
3119 break;
3120 }
3121 case 64:
3122 case 65:
3123 case 68:
3124 case 69:
3125 {
3126 PIXEL00_2
3127 PIXEL01_1
3128 PIXEL02_2
3129 PIXEL10_1
3130 PIXEL11
3131 PIXEL12_1
3132 PIXEL20_1M
3133 PIXEL21_C
3134 PIXEL22_1M
3135 break;
3136 }
3137 case 8:
3138 case 12:
3139 case 136:
3140 case 140:
3141 {
3142 PIXEL00_1M
3143 PIXEL01_1
3144 PIXEL02_2
3145 PIXEL10_C
3146 PIXEL11
3147 PIXEL12_1
3148 PIXEL20_1M
3149 PIXEL21_1
3150 PIXEL22_2
3151 break;
3152 }
3153 case 3:
3154 case 35:
3155 case 131:
3156 case 163:
3157 {
3158 PIXEL00_1L
3159 PIXEL01_C
3160 PIXEL02_1M
3161 PIXEL10_1
3162 PIXEL11
3163 PIXEL12_1
3164 PIXEL20_2
3165 PIXEL21_1
3166 PIXEL22_2
3167 break;
3168 }
3169 case 6:
3170 case 38:
3171 case 134:
3172 case 166:
3173 {
3174 PIXEL00_1M
3175 PIXEL01_C
3176 PIXEL02_1R
3177 PIXEL10_1
3178 PIXEL11
3179 PIXEL12_1
3180 PIXEL20_2
3181 PIXEL21_1
3182 PIXEL22_2
3183 break;
3184 }
3185 case 20:
3186 case 21:
3187 case 52:
3188 case 53:
3189 {
3190 PIXEL00_2
3191 PIXEL01_1
3192 PIXEL02_1U
3193 PIXEL10_1
3194 PIXEL11
3195 PIXEL12_C
3196 PIXEL20_2
3197 PIXEL21_1
3198 PIXEL22_1M
3199 break;
3200 }
3201 case 144:
3202 case 145:
3203 case 176:
3204 case 177:
3205 {
3206 PIXEL00_2
3207 PIXEL01_1
3208 PIXEL02_1M
3209 PIXEL10_1
3210 PIXEL11
3211 PIXEL12_C
3212 PIXEL20_2
3213 PIXEL21_1
3214 PIXEL22_1D
3215 break;
3216 }
3217 case 192:
3218 case 193:
3219 case 196:
3220 case 197:
3221 {
3222 PIXEL00_2
3223 PIXEL01_1
3224 PIXEL02_2
3225 PIXEL10_1
3226 PIXEL11
3227 PIXEL12_1
3228 PIXEL20_1M
3229 PIXEL21_C
3230 PIXEL22_1R
3231 break;
3232 }
3233 case 96:
3234 case 97:
3235 case 100:
3236 case 101:
3237 {
3238 PIXEL00_2
3239 PIXEL01_1
3240 PIXEL02_2
3241 PIXEL10_1
3242 PIXEL11
3243 PIXEL12_1
3244 PIXEL20_1L
3245 PIXEL21_C
3246 PIXEL22_1M
3247 break;
3248 }
3249 case 40:
3250 case 44:
3251 case 168:
3252 case 172:
3253 {
3254 PIXEL00_1M
3255 PIXEL01_1
3256 PIXEL02_2
3257 PIXEL10_C
3258 PIXEL11
3259 PIXEL12_1
3260 PIXEL20_1D
3261 PIXEL21_1
3262 PIXEL22_2
3263 break;
3264 }
3265 case 9:
3266 case 13:
3267 case 137:
3268 case 141:
3269 {
3270 PIXEL00_1U
3271 PIXEL01_1
3272 PIXEL02_2
3273 PIXEL10_C
3274 PIXEL11
3275 PIXEL12_1
3276 PIXEL20_1M
3277 PIXEL21_1
3278 PIXEL22_2
3279 break;
3280 }
3281 case 18:
3282 case 50:
3283 {
3284 PIXEL00_1M
3285 if (diff(w[2], w[6]))
3286 {
3287 PIXEL01_C
3288 PIXEL02_1M
3289 PIXEL12_C
3290 }
3291 else
3292 {
3293 PIXEL01_3
3294 PIXEL02_4
3295 PIXEL12_3
3296 }
3297 PIXEL10_1
3298 PIXEL11
3299 PIXEL20_2
3300 PIXEL21_1
3301 PIXEL22_1M
3302 break;
3303 }
3304 case 80:
3305 case 81:
3306 {
3307 PIXEL00_2
3308 PIXEL01_1
3309 PIXEL02_1M
3310 PIXEL10_1
3311 PIXEL11
3312 PIXEL20_1M
3313 if (diff(w[6], w[8]))
3314 {
3315 PIXEL12_C
3316 PIXEL21_C
3317 PIXEL22_1M
3318 }
3319 else
3320 {
3321 PIXEL12_3
3322 PIXEL21_3
3323 PIXEL22_4
3324 }
3325 break;
3326 }
3327 case 72:
3328 case 76:
3329 {
3330 PIXEL00_1M
3331 PIXEL01_1
3332 PIXEL02_2
3333 PIXEL11
3334 PIXEL12_1
3335 if (diff(w[8], w[4]))
3336 {
3337 PIXEL10_C
3338 PIXEL20_1M
3339 PIXEL21_C
3340 }
3341 else
3342 {
3343 PIXEL10_3
3344 PIXEL20_4
3345 PIXEL21_3
3346 }
3347 PIXEL22_1M
3348 break;
3349 }
3350 case 10:
3351 case 138:
3352 {
3353 if (diff(w[4], w[2]))
3354 {
3355 PIXEL00_1M
3356 PIXEL01_C
3357 PIXEL10_C
3358 }
3359 else
3360 {
3361 PIXEL00_4
3362 PIXEL01_3
3363 PIXEL10_3
3364 }
3365 PIXEL02_1M
3366 PIXEL11
3367 PIXEL12_1
3368 PIXEL20_1M
3369 PIXEL21_1
3370 PIXEL22_2
3371 break;
3372 }
3373 case 66:
3374 {
3375 PIXEL00_1M
3376 PIXEL01_C
3377 PIXEL02_1M
3378 PIXEL10_1
3379 PIXEL11
3380 PIXEL12_1
3381 PIXEL20_1M
3382 PIXEL21_C
3383 PIXEL22_1M
3384 break;
3385 }
3386 case 24:
3387 {
3388 PIXEL00_1M
3389 PIXEL01_1
3390 PIXEL02_1M
3391 PIXEL10_C
3392 PIXEL11
3393 PIXEL12_C
3394 PIXEL20_1M
3395 PIXEL21_1
3396 PIXEL22_1M
3397 break;
3398 }
3399 case 7:
3400 case 39:
3401 case 135:
3402 {
3403 PIXEL00_1L
3404 PIXEL01_C
3405 PIXEL02_1R
3406 PIXEL10_1
3407 PIXEL11
3408 PIXEL12_1
3409 PIXEL20_2
3410 PIXEL21_1
3411 PIXEL22_2
3412 break;
3413 }
3414 case 148:
3415 case 149:
3416 case 180:
3417 {
3418 PIXEL00_2
3419 PIXEL01_1
3420 PIXEL02_1U
3421 PIXEL10_1
3422 PIXEL11
3423 PIXEL12_C
3424 PIXEL20_2
3425 PIXEL21_1
3426 PIXEL22_1D
3427 break;
3428 }
3429 case 224:
3430 case 228:
3431 case 225:
3432 {
3433 PIXEL00_2
3434 PIXEL01_1
3435 PIXEL02_2
3436 PIXEL10_1
3437 PIXEL11
3438 PIXEL12_1
3439 PIXEL20_1L
3440 PIXEL21_C
3441 PIXEL22_1R
3442 break;
3443 }
3444 case 41:
3445 case 169:
3446 case 45:
3447 {
3448 PIXEL00_1U
3449 PIXEL01_1
3450 PIXEL02_2
3451 PIXEL10_C
3452 PIXEL11
3453 PIXEL12_1
3454 PIXEL20_1D
3455 PIXEL21_1
3456 PIXEL22_2
3457 break;
3458 }
3459 case 22:
3460 case 54:
3461 {
3462 PIXEL00_1M
3463 if (diff(w[2], w[6]))
3464 {
3465 PIXEL01_C
3466 PIXEL02_C
3467 PIXEL12_C
3468 }
3469 else
3470 {
3471 PIXEL01_3
3472 PIXEL02_4
3473 PIXEL12_3
3474 }
3475 PIXEL10_1
3476 PIXEL11
3477 PIXEL20_2
3478 PIXEL21_1
3479 PIXEL22_1M
3480 break;
3481 }
3482 case 208:
3483 case 209:
3484 {
3485 PIXEL00_2
3486 PIXEL01_1
3487 PIXEL02_1M
3488 PIXEL10_1
3489 PIXEL11
3490 PIXEL20_1M
3491 if (diff(w[6], w[8]))
3492 {
3493 PIXEL12_C
3494 PIXEL21_C
3495 PIXEL22_C
3496 }
3497 else
3498 {
3499 PIXEL12_3
3500 PIXEL21_3
3501 PIXEL22_4
3502 }
3503 break;
3504 }
3505 case 104:
3506 case 108:
3507 {
3508 PIXEL00_1M
3509 PIXEL01_1
3510 PIXEL02_2
3511 PIXEL11
3512 PIXEL12_1
3513 if (diff(w[8], w[4]))
3514 {
3515 PIXEL10_C
3516 PIXEL20_C
3517 PIXEL21_C
3518 }
3519 else
3520 {
3521 PIXEL10_3
3522 PIXEL20_4
3523 PIXEL21_3
3524 }
3525 PIXEL22_1M
3526 break;
3527 }
3528 case 11:
3529 case 139:
3530 {
3531 if (diff(w[4], w[2]))
3532 {
3533 PIXEL00_C
3534 PIXEL01_C
3535 PIXEL10_C
3536 }
3537 else
3538 {
3539 PIXEL00_4
3540 PIXEL01_3
3541 PIXEL10_3
3542 }
3543 PIXEL02_1M
3544 PIXEL11
3545 PIXEL12_1
3546 PIXEL20_1M
3547 PIXEL21_1
3548 PIXEL22_2
3549 break;
3550 }
3551 case 19:
3552 case 51:
3553 {
3554 if (diff(w[2], w[6]))
3555 {
3556 PIXEL00_1L
3557 PIXEL01_C
3558 PIXEL02_1M
3559 PIXEL12_C
3560 }
3561 else
3562 {
3563 PIXEL00_2
3564 PIXEL01_6
3565 PIXEL02_5
3566 PIXEL12_1
3567 }
3568 PIXEL10_1
3569 PIXEL11
3570 PIXEL20_2
3571 PIXEL21_1
3572 PIXEL22_1M
3573 break;
3574 }
3575 case 146:
3576 case 178:
3577 {
3578 if (diff(w[2], w[6]))
3579 {
3580 PIXEL01_C
3581 PIXEL02_1M
3582 PIXEL12_C
3583 PIXEL22_1D
3584 }
3585 else
3586 {
3587 PIXEL01_1
3588 PIXEL02_5
3589 PIXEL12_6
3590 PIXEL22_2
3591 }
3592 PIXEL00_1M
3593 PIXEL10_1
3594 PIXEL11
3595 PIXEL20_2
3596 PIXEL21_1
3597 break;
3598 }
3599 case 84:
3600 case 85:
3601 {
3602 if (diff(w[6], w[8]))
3603 {
3604 PIXEL02_1U
3605 PIXEL12_C
3606 PIXEL21_C
3607 PIXEL22_1M
3608 }
3609 else
3610 {
3611 PIXEL02_2
3612 PIXEL12_6
3613 PIXEL21_1
3614 PIXEL22_5
3615 }
3616 PIXEL00_2
3617 PIXEL01_1
3618 PIXEL10_1
3619 PIXEL11
3620 PIXEL20_1M
3621 break;
3622 }
3623 case 112:
3624 case 113:
3625 {
3626 if (diff(w[6], w[8]))
3627 {
3628 PIXEL12_C
3629 PIXEL20_1L
3630 PIXEL21_C
3631 PIXEL22_1M
3632 }
3633 else
3634 {
3635 PIXEL12_1
3636 PIXEL20_2
3637 PIXEL21_6
3638 PIXEL22_5
3639 }
3640 PIXEL00_2
3641 PIXEL01_1
3642 PIXEL02_1M
3643 PIXEL10_1
3644 PIXEL11
3645 break;
3646 }
3647 case 200:
3648 case 204:
3649 {
3650 if (diff(w[8], w[4]))
3651 {
3652 PIXEL10_C
3653 PIXEL20_1M
3654 PIXEL21_C
3655 PIXEL22_1R
3656 }
3657 else
3658 {
3659 PIXEL10_1
3660 PIXEL20_5
3661 PIXEL21_6
3662 PIXEL22_2
3663 }
3664 PIXEL00_1M
3665 PIXEL01_1
3666 PIXEL02_2
3667 PIXEL11
3668 PIXEL12_1
3669 break;
3670 }
3671 case 73:
3672 case 77:
3673 {
3674 if (diff(w[8], w[4]))
3675 {
3676 PIXEL00_1U
3677 PIXEL10_C
3678 PIXEL20_1M
3679 PIXEL21_C
3680 }
3681 else
3682 {
3683 PIXEL00_2
3684 PIXEL10_6
3685 PIXEL20_5
3686 PIXEL21_1
3687 }
3688 PIXEL01_1
3689 PIXEL02_2
3690 PIXEL11
3691 PIXEL12_1
3692 PIXEL22_1M
3693 break;
3694 }
3695 case 42:
3696 case 170:
3697 {
3698 if (diff(w[4], w[2]))
3699 {
3700 PIXEL00_1M
3701 PIXEL01_C
3702 PIXEL10_C
3703 PIXEL20_1D
3704 }
3705 else
3706 {
3707 PIXEL00_5
3708 PIXEL01_1
3709 PIXEL10_6
3710 PIXEL20_2
3711 }
3712 PIXEL02_1M
3713 PIXEL11
3714 PIXEL12_1
3715 PIXEL21_1
3716 PIXEL22_2
3717 break;
3718 }
3719 case 14:
3720 case 142:
3721 {
3722 if (diff(w[4], w[2]))
3723 {
3724 PIXEL00_1M
3725 PIXEL01_C
3726 PIXEL02_1R
3727 PIXEL10_C
3728 }
3729 else
3730 {
3731 PIXEL00_5
3732 PIXEL01_6
3733 PIXEL02_2
3734 PIXEL10_1
3735 }
3736 PIXEL11
3737 PIXEL12_1
3738 PIXEL20_1M
3739 PIXEL21_1
3740 PIXEL22_2
3741 break;
3742 }
3743 case 67:
3744 {
3745 PIXEL00_1L
3746 PIXEL01_C
3747 PIXEL02_1M
3748 PIXEL10_1
3749 PIXEL11
3750 PIXEL12_1
3751 PIXEL20_1M
3752 PIXEL21_C
3753 PIXEL22_1M
3754 break;
3755 }
3756 case 70:
3757 {
3758 PIXEL00_1M
3759 PIXEL01_C
3760 PIXEL02_1R
3761 PIXEL10_1
3762 PIXEL11
3763 PIXEL12_1
3764 PIXEL20_1M
3765 PIXEL21_C
3766 PIXEL22_1M
3767 break;
3768 }
3769 case 28:
3770 {
3771 PIXEL00_1M
3772 PIXEL01_1
3773 PIXEL02_1U
3774 PIXEL10_C
3775 PIXEL11
3776 PIXEL12_C
3777 PIXEL20_1M
3778 PIXEL21_1
3779 PIXEL22_1M
3780 break;
3781 }
3782 case 152:
3783 {
3784 PIXEL00_1M
3785 PIXEL01_1
3786 PIXEL02_1M
3787 PIXEL10_C
3788 PIXEL11
3789 PIXEL12_C
3790 PIXEL20_1M
3791 PIXEL21_1
3792 PIXEL22_1D
3793 break;
3794 }
3795 case 194:
3796 {
3797 PIXEL00_1M
3798 PIXEL01_C
3799 PIXEL02_1M
3800 PIXEL10_1
3801 PIXEL11
3802 PIXEL12_1
3803 PIXEL20_1M
3804 PIXEL21_C
3805 PIXEL22_1R
3806 break;
3807 }
3808 case 98:
3809 {
3810 PIXEL00_1M
3811 PIXEL01_C
3812 PIXEL02_1M
3813 PIXEL10_1
3814 PIXEL11
3815 PIXEL12_1
3816 PIXEL20_1L
3817 PIXEL21_C
3818 PIXEL22_1M
3819 break;
3820 }
3821 case 56:
3822 {
3823 PIXEL00_1M
3824 PIXEL01_1
3825 PIXEL02_1M
3826 PIXEL10_C
3827 PIXEL11
3828 PIXEL12_C
3829 PIXEL20_1D
3830 PIXEL21_1
3831 PIXEL22_1M
3832 break;
3833 }
3834 case 25:
3835 {
3836 PIXEL00_1U
3837 PIXEL01_1
3838 PIXEL02_1M
3839 PIXEL10_C
3840 PIXEL11
3841 PIXEL12_C
3842 PIXEL20_1M
3843 PIXEL21_1
3844 PIXEL22_1M
3845 break;
3846 }
3847 case 26:
3848 case 31:
3849 {
3850 if (diff(w[4], w[2]))
3851 {
3852 PIXEL00_C
3853 PIXEL10_C
3854 }
3855 else
3856 {
3857 PIXEL00_4
3858 PIXEL10_3
3859 }
3860 PIXEL01_C
3861 if (diff(w[2], w[6]))
3862 {
3863 PIXEL02_C
3864 PIXEL12_C
3865 }
3866 else
3867 {
3868 PIXEL02_4
3869 PIXEL12_3
3870 }
3871 PIXEL11
3872 PIXEL20_1M
3873 PIXEL21_1
3874 PIXEL22_1M
3875 break;
3876 }
3877 case 82:
3878 case 214:
3879 {
3880 PIXEL00_1M
3881 if (diff(w[2], w[6]))
3882 {
3883 PIXEL01_C
3884 PIXEL02_C
3885 }
3886 else
3887 {
3888 PIXEL01_3
3889 PIXEL02_4
3890 }
3891 PIXEL10_1
3892 PIXEL11
3893 PIXEL12_C
3894 PIXEL20_1M
3895 if (diff(w[6], w[8]))
3896 {
3897 PIXEL21_C
3898 PIXEL22_C
3899 }
3900 else
3901 {
3902 PIXEL21_3
3903 PIXEL22_4
3904 }
3905 break;
3906 }
3907 case 88:
3908 case 248:
3909 {
3910 PIXEL00_1M
3911 PIXEL01_1
3912 PIXEL02_1M
3913 PIXEL11
3914 if (diff(w[8], w[4]))
3915 {
3916 PIXEL10_C
3917 PIXEL20_C
3918 }
3919 else
3920 {
3921 PIXEL10_3
3922 PIXEL20_4
3923 }
3924 PIXEL21_C
3925 if (diff(w[6], w[8]))
3926 {
3927 PIXEL12_C
3928 PIXEL22_C
3929 }
3930 else
3931 {
3932 PIXEL12_3
3933 PIXEL22_4
3934 }
3935 break;
3936 }
3937 case 74:
3938 case 107:
3939 {
3940 if (diff(w[4], w[2]))
3941 {
3942 PIXEL00_C
3943 PIXEL01_C
3944 }
3945 else
3946 {
3947 PIXEL00_4
3948 PIXEL01_3
3949 }
3950 PIXEL02_1M
3951 PIXEL10_C
3952 PIXEL11
3953 PIXEL12_1
3954 if (diff(w[8], w[4]))
3955 {
3956 PIXEL20_C
3957 PIXEL21_C
3958 }
3959 else
3960 {
3961 PIXEL20_4
3962 PIXEL21_3
3963 }
3964 PIXEL22_1M
3965 break;
3966 }
3967 case 27:
3968 {
3969 if (diff(w[4], w[2]))
3970 {
3971 PIXEL00_C
3972 PIXEL01_C
3973 PIXEL10_C
3974 }
3975 else
3976 {
3977 PIXEL00_4
3978 PIXEL01_3
3979 PIXEL10_3
3980 }
3981 PIXEL02_1M
3982 PIXEL11
3983 PIXEL12_C
3984 PIXEL20_1M
3985 PIXEL21_1
3986 PIXEL22_1M
3987 break;
3988 }
3989 case 86:
3990 {
3991 PIXEL00_1M
3992 if (diff(w[2], w[6]))
3993 {
3994 PIXEL01_C
3995 PIXEL02_C
3996 PIXEL12_C
3997 }
3998 else
3999 {
4000 PIXEL01_3
4001 PIXEL02_4
4002 PIXEL12_3
4003 }
4004 PIXEL10_1
4005 PIXEL11
4006 PIXEL20_1M
4007 PIXEL21_C
4008 PIXEL22_1M
4009 break;
4010 }
4011 case 216:
4012 {
4013 PIXEL00_1M
4014 PIXEL01_1
4015 PIXEL02_1M
4016 PIXEL10_C
4017 PIXEL11
4018 PIXEL20_1M
4019 if (diff(w[6], w[8]))
4020 {
4021 PIXEL12_C
4022 PIXEL21_C
4023 PIXEL22_C
4024 }
4025 else
4026 {
4027 PIXEL12_3
4028 PIXEL21_3
4029 PIXEL22_4
4030 }
4031 break;
4032 }
4033 case 106:
4034 {
4035 PIXEL00_1M
4036 PIXEL01_C
4037 PIXEL02_1M
4038 PIXEL11
4039 PIXEL12_1
4040 if (diff(w[8], w[4]))
4041 {
4042 PIXEL10_C
4043 PIXEL20_C
4044 PIXEL21_C
4045 }
4046 else
4047 {
4048 PIXEL10_3
4049 PIXEL20_4
4050 PIXEL21_3
4051 }
4052 PIXEL22_1M
4053 break;
4054 }
4055 case 30:
4056 {
4057 PIXEL00_1M
4058 if (diff(w[2], w[6]))
4059 {
4060 PIXEL01_C
4061 PIXEL02_C
4062 PIXEL12_C
4063 }
4064 else
4065 {
4066 PIXEL01_3
4067 PIXEL02_4
4068 PIXEL12_3
4069 }
4070 PIXEL10_C
4071 PIXEL11
4072 PIXEL20_1M
4073 PIXEL21_1
4074 PIXEL22_1M
4075 break;
4076 }
4077 case 210:
4078 {
4079 PIXEL00_1M
4080 PIXEL01_C
4081 PIXEL02_1M
4082 PIXEL10_1
4083 PIXEL11
4084 PIXEL20_1M
4085 if (diff(w[6], w[8]))
4086 {
4087 PIXEL12_C
4088 PIXEL21_C
4089 PIXEL22_C
4090 }
4091 else
4092 {
4093 PIXEL12_3
4094 PIXEL21_3
4095 PIXEL22_4
4096 }
4097 break;
4098 }
4099 case 120:
4100 {
4101 PIXEL00_1M
4102 PIXEL01_1
4103 PIXEL02_1M
4104 PIXEL11
4105 PIXEL12_C
4106 if (diff(w[8], w[4]))
4107 {
4108 PIXEL10_C
4109 PIXEL20_C
4110 PIXEL21_C
4111 }
4112 else
4113 {
4114 PIXEL10_3
4115 PIXEL20_4
4116 PIXEL21_3
4117 }
4118 PIXEL22_1M
4119 break;
4120 }
4121 case 75:
4122 {
4123 if (diff(w[4], w[2]))
4124 {
4125 PIXEL00_C
4126 PIXEL01_C
4127 PIXEL10_C
4128 }
4129 else
4130 {
4131 PIXEL00_4
4132 PIXEL01_3
4133 PIXEL10_3
4134 }
4135 PIXEL02_1M
4136 PIXEL11
4137 PIXEL12_1
4138 PIXEL20_1M
4139 PIXEL21_C
4140 PIXEL22_1M
4141 break;
4142 }
4143 case 29:
4144 {
4145 PIXEL00_1U
4146 PIXEL01_1
4147 PIXEL02_1U
4148 PIXEL10_C
4149 PIXEL11
4150 PIXEL12_C
4151 PIXEL20_1M
4152 PIXEL21_1
4153 PIXEL22_1M
4154 break;
4155 }
4156 case 198:
4157 {
4158 PIXEL00_1M
4159 PIXEL01_C
4160 PIXEL02_1R
4161 PIXEL10_1
4162 PIXEL11
4163 PIXEL12_1
4164 PIXEL20_1M
4165 PIXEL21_C
4166 PIXEL22_1R
4167 break;
4168 }
4169 case 184:
4170 {
4171 PIXEL00_1M
4172 PIXEL01_1
4173 PIXEL02_1M
4174 PIXEL10_C
4175 PIXEL11
4176 PIXEL12_C
4177 PIXEL20_1D
4178 PIXEL21_1
4179 PIXEL22_1D
4180 break;
4181 }
4182 case 99:
4183 {
4184 PIXEL00_1L
4185 PIXEL01_C
4186 PIXEL02_1M
4187 PIXEL10_1
4188 PIXEL11
4189 PIXEL12_1
4190 PIXEL20_1L
4191 PIXEL21_C
4192 PIXEL22_1M
4193 break;
4194 }
4195 case 57:
4196 {
4197 PIXEL00_1U
4198 PIXEL01_1
4199 PIXEL02_1M
4200 PIXEL10_C
4201 PIXEL11
4202 PIXEL12_C
4203 PIXEL20_1D
4204 PIXEL21_1
4205 PIXEL22_1M
4206 break;
4207 }
4208 case 71:
4209 {
4210 PIXEL00_1L
4211 PIXEL01_C
4212 PIXEL02_1R
4213 PIXEL10_1
4214 PIXEL11
4215 PIXEL12_1
4216 PIXEL20_1M
4217 PIXEL21_C
4218 PIXEL22_1M
4219 break;
4220 }
4221 case 156:
4222 {
4223 PIXEL00_1M
4224 PIXEL01_1
4225 PIXEL02_1U
4226 PIXEL10_C
4227 PIXEL11
4228 PIXEL12_C
4229 PIXEL20_1M
4230 PIXEL21_1
4231 PIXEL22_1D
4232 break;
4233 }
4234 case 226:
4235 {
4236 PIXEL00_1M
4237 PIXEL01_C
4238 PIXEL02_1M
4239 PIXEL10_1
4240 PIXEL11
4241 PIXEL12_1
4242 PIXEL20_1L
4243 PIXEL21_C
4244 PIXEL22_1R
4245 break;
4246 }
4247 case 60:
4248 {
4249 PIXEL00_1M
4250 PIXEL01_1
4251 PIXEL02_1U
4252 PIXEL10_C
4253 PIXEL11
4254 PIXEL12_C
4255 PIXEL20_1D
4256 PIXEL21_1
4257 PIXEL22_1M
4258 break;
4259 }
4260 case 195:
4261 {
4262 PIXEL00_1L
4263 PIXEL01_C
4264 PIXEL02_1M
4265 PIXEL10_1
4266 PIXEL11
4267 PIXEL12_1
4268 PIXEL20_1M
4269 PIXEL21_C
4270 PIXEL22_1R
4271 break;
4272 }
4273 case 102:
4274 {
4275 PIXEL00_1M
4276 PIXEL01_C
4277 PIXEL02_1R
4278 PIXEL10_1
4279 PIXEL11
4280 PIXEL12_1
4281 PIXEL20_1L
4282 PIXEL21_C
4283 PIXEL22_1M
4284 break;
4285 }
4286 case 153:
4287 {
4288 PIXEL00_1U
4289 PIXEL01_1
4290 PIXEL02_1M
4291 PIXEL10_C
4292 PIXEL11
4293 PIXEL12_C
4294 PIXEL20_1M
4295 PIXEL21_1
4296 PIXEL22_1D
4297 break;
4298 }
4299 case 58:
4300 {
4301 if (diff(w[4], w[2]))
4302 {
4303 PIXEL00_1M
4304 }
4305 else
4306 {
4307 PIXEL00_2
4308 }
4309 PIXEL01_C
4310 if (diff(w[2], w[6]))
4311 {
4312 PIXEL02_1M
4313 }
4314 else
4315 {
4316 PIXEL02_2
4317 }
4318 PIXEL10_C
4319 PIXEL11
4320 PIXEL12_C
4321 PIXEL20_1D
4322 PIXEL21_1
4323 PIXEL22_1M
4324 break;
4325 }
4326 case 83:
4327 {
4328 PIXEL00_1L
4329 PIXEL01_C
4330 if (diff(w[2], w[6]))
4331 {
4332 PIXEL02_1M
4333 }
4334 else
4335 {
4336 PIXEL02_2
4337 }
4338 PIXEL10_1
4339 PIXEL11
4340 PIXEL12_C
4341 PIXEL20_1M
4342 PIXEL21_C
4343 if (diff(w[6], w[8]))
4344 {
4345 PIXEL22_1M
4346 }
4347 else
4348 {
4349 PIXEL22_2
4350 }
4351 break;
4352 }
4353 case 92:
4354 {
4355 PIXEL00_1M
4356 PIXEL01_1
4357 PIXEL02_1U
4358 PIXEL10_C
4359 PIXEL11
4360 PIXEL12_C
4361 if (diff(w[8], w[4]))
4362 {
4363 PIXEL20_1M
4364 }
4365 else
4366 {
4367 PIXEL20_2
4368 }
4369 PIXEL21_C
4370 if (diff(w[6], w[8]))
4371 {
4372 PIXEL22_1M
4373 }
4374 else
4375 {
4376 PIXEL22_2
4377 }
4378 break;
4379 }
4380 case 202:
4381 {
4382 if (diff(w[4], w[2]))
4383 {
4384 PIXEL00_1M
4385 }
4386 else
4387 {
4388 PIXEL00_2
4389 }
4390 PIXEL01_C
4391 PIXEL02_1M
4392 PIXEL10_C
4393 PIXEL11
4394 PIXEL12_1
4395 if (diff(w[8], w[4]))
4396 {
4397 PIXEL20_1M
4398 }
4399 else
4400 {
4401 PIXEL20_2
4402 }
4403 PIXEL21_C
4404 PIXEL22_1R
4405 break;
4406 }
4407 case 78:
4408 {
4409 if (diff(w[4], w[2]))
4410 {
4411 PIXEL00_1M
4412 }
4413 else
4414 {
4415 PIXEL00_2
4416 }
4417 PIXEL01_C
4418 PIXEL02_1R
4419 PIXEL10_C
4420 PIXEL11
4421 PIXEL12_1
4422 if (diff(w[8], w[4]))
4423 {
4424 PIXEL20_1M
4425 }
4426 else
4427 {
4428 PIXEL20_2
4429 }
4430 PIXEL21_C
4431 PIXEL22_1M
4432 break;
4433 }
4434 case 154:
4435 {
4436 if (diff(w[4], w[2]))
4437 {
4438 PIXEL00_1M
4439 }
4440 else
4441 {
4442 PIXEL00_2
4443 }
4444 PIXEL01_C
4445 if (diff(w[2], w[6]))
4446 {
4447 PIXEL02_1M
4448 }
4449 else
4450 {
4451 PIXEL02_2
4452 }
4453 PIXEL10_C
4454 PIXEL11
4455 PIXEL12_C
4456 PIXEL20_1M
4457 PIXEL21_1
4458 PIXEL22_1D
4459 break;
4460 }
4461 case 114:
4462 {
4463 PIXEL00_1M
4464 PIXEL01_C
4465 if (diff(w[2], w[6]))
4466 {
4467 PIXEL02_1M
4468 }
4469 else
4470 {
4471 PIXEL02_2
4472 }
4473 PIXEL10_1
4474 PIXEL11
4475 PIXEL12_C
4476 PIXEL20_1L
4477 PIXEL21_C
4478 if (diff(w[6], w[8]))
4479 {
4480 PIXEL22_1M
4481 }
4482 else
4483 {
4484 PIXEL22_2
4485 }
4486 break;
4487 }
4488 case 89:
4489 {
4490 PIXEL00_1U
4491 PIXEL01_1
4492 PIXEL02_1M
4493 PIXEL10_C
4494 PIXEL11
4495 PIXEL12_C
4496 if (diff(w[8], w[4]))
4497 {
4498 PIXEL20_1M
4499 }
4500 else
4501 {
4502 PIXEL20_2
4503 }
4504 PIXEL21_C
4505 if (diff(w[6], w[8]))
4506 {
4507 PIXEL22_1M
4508 }
4509 else
4510 {
4511 PIXEL22_2
4512 }
4513 break;
4514 }
4515 case 90:
4516 {
4517 if (diff(w[4], w[2]))
4518 {
4519 PIXEL00_1M
4520 }
4521 else
4522 {
4523 PIXEL00_2
4524 }
4525 PIXEL01_C
4526 if (diff(w[2], w[6]))
4527 {
4528 PIXEL02_1M
4529 }
4530 else
4531 {
4532 PIXEL02_2
4533 }
4534 PIXEL10_C
4535 PIXEL11
4536 PIXEL12_C
4537 if (diff(w[8], w[4]))
4538 {
4539 PIXEL20_1M
4540 }
4541 else
4542 {
4543 PIXEL20_2
4544 }
4545 PIXEL21_C
4546 if (diff(w[6], w[8]))
4547 {
4548 PIXEL22_1M
4549 }
4550 else
4551 {
4552 PIXEL22_2
4553 }
4554 break;
4555 }
4556 case 55:
4557 case 23:
4558 {
4559 if (diff(w[2], w[6]))
4560 {
4561 PIXEL00_1L
4562 PIXEL01_C
4563 PIXEL02_C
4564 PIXEL12_C
4565 }
4566 else
4567 {
4568 PIXEL00_2
4569 PIXEL01_6
4570 PIXEL02_5
4571 PIXEL12_1
4572 }
4573 PIXEL10_1
4574 PIXEL11
4575 PIXEL20_2
4576 PIXEL21_1
4577 PIXEL22_1M
4578 break;
4579 }
4580 case 182:
4581 case 150:
4582 {
4583 if (diff(w[2], w[6]))
4584 {
4585 PIXEL01_C
4586 PIXEL02_C
4587 PIXEL12_C
4588 PIXEL22_1D
4589 }
4590 else
4591 {
4592 PIXEL01_1
4593 PIXEL02_5
4594 PIXEL12_6
4595 PIXEL22_2
4596 }
4597 PIXEL00_1M
4598 PIXEL10_1
4599 PIXEL11
4600 PIXEL20_2
4601 PIXEL21_1
4602 break;
4603 }
4604 case 213:
4605 case 212:
4606 {
4607 if (diff(w[6], w[8]))
4608 {
4609 PIXEL02_1U
4610 PIXEL12_C
4611 PIXEL21_C
4612 PIXEL22_C
4613 }
4614 else
4615 {
4616 PIXEL02_2
4617 PIXEL12_6
4618 PIXEL21_1
4619 PIXEL22_5
4620 }
4621 PIXEL00_2
4622 PIXEL01_1
4623 PIXEL10_1
4624 PIXEL11
4625 PIXEL20_1M
4626 break;
4627 }
4628 case 241:
4629 case 240:
4630 {
4631 if (diff(w[6], w[8]))
4632 {
4633 PIXEL12_C
4634 PIXEL20_1L
4635 PIXEL21_C
4636 PIXEL22_C
4637 }
4638 else
4639 {
4640 PIXEL12_1
4641 PIXEL20_2
4642 PIXEL21_6
4643 PIXEL22_5
4644 }
4645 PIXEL00_2
4646 PIXEL01_1
4647 PIXEL02_1M
4648 PIXEL10_1
4649 PIXEL11
4650 break;
4651 }
4652 case 236:
4653 case 232:
4654 {
4655 if (diff(w[8], w[4]))
4656 {
4657 PIXEL10_C
4658 PIXEL20_C
4659 PIXEL21_C
4660 PIXEL22_1R
4661 }
4662 else
4663 {
4664 PIXEL10_1
4665 PIXEL20_5
4666 PIXEL21_6
4667 PIXEL22_2
4668 }
4669 PIXEL00_1M
4670 PIXEL01_1
4671 PIXEL02_2
4672 PIXEL11
4673 PIXEL12_1
4674 break;
4675 }
4676 case 109:
4677 case 105:
4678 {
4679 if (diff(w[8], w[4]))
4680 {
4681 PIXEL00_1U
4682 PIXEL10_C
4683 PIXEL20_C
4684 PIXEL21_C
4685 }
4686 else
4687 {
4688 PIXEL00_2
4689 PIXEL10_6
4690 PIXEL20_5
4691 PIXEL21_1
4692 }
4693 PIXEL01_1
4694 PIXEL02_2
4695 PIXEL11
4696 PIXEL12_1
4697 PIXEL22_1M
4698 break;
4699 }
4700 case 171:
4701 case 43:
4702 {
4703 if (diff(w[4], w[2]))
4704 {
4705 PIXEL00_C
4706 PIXEL01_C
4707 PIXEL10_C
4708 PIXEL20_1D
4709 }
4710 else
4711 {
4712 PIXEL00_5
4713 PIXEL01_1
4714 PIXEL10_6
4715 PIXEL20_2
4716 }
4717 PIXEL02_1M
4718 PIXEL11
4719 PIXEL12_1
4720 PIXEL21_1
4721 PIXEL22_2
4722 break;
4723 }
4724 case 143:
4725 case 15:
4726 {
4727 if (diff(w[4], w[2]))
4728 {
4729 PIXEL00_C
4730 PIXEL01_C
4731 PIXEL02_1R
4732 PIXEL10_C
4733 }
4734 else
4735 {
4736 PIXEL00_5
4737 PIXEL01_6
4738 PIXEL02_2
4739 PIXEL10_1
4740 }
4741 PIXEL11
4742 PIXEL12_1
4743 PIXEL20_1M
4744 PIXEL21_1
4745 PIXEL22_2
4746 break;
4747 }
4748 case 124:
4749 {
4750 PIXEL00_1M
4751 PIXEL01_1
4752 PIXEL02_1U
4753 PIXEL11
4754 PIXEL12_C
4755 if (diff(w[8], w[4]))
4756 {
4757 PIXEL10_C
4758 PIXEL20_C
4759 PIXEL21_C
4760 }
4761 else
4762 {
4763 PIXEL10_3
4764 PIXEL20_4
4765 PIXEL21_3
4766 }
4767 PIXEL22_1M
4768 break;
4769 }
4770 case 203:
4771 {
4772 if (diff(w[4], w[2]))
4773 {
4774 PIXEL00_C
4775 PIXEL01_C
4776 PIXEL10_C
4777 }
4778 else
4779 {
4780 PIXEL00_4
4781 PIXEL01_3
4782 PIXEL10_3
4783 }
4784 PIXEL02_1M
4785 PIXEL11
4786 PIXEL12_1
4787 PIXEL20_1M
4788 PIXEL21_C
4789 PIXEL22_1R
4790 break;
4791 }
4792 case 62:
4793 {
4794 PIXEL00_1M
4795 if (diff(w[2], w[6]))
4796 {
4797 PIXEL01_C
4798 PIXEL02_C
4799 PIXEL12_C
4800 }
4801 else
4802 {
4803 PIXEL01_3
4804 PIXEL02_4
4805 PIXEL12_3
4806 }
4807 PIXEL10_C
4808 PIXEL11
4809 PIXEL20_1D
4810 PIXEL21_1
4811 PIXEL22_1M
4812 break;
4813 }
4814 case 211:
4815 {
4816 PIXEL00_1L
4817 PIXEL01_C
4818 PIXEL02_1M
4819 PIXEL10_1
4820 PIXEL11
4821 PIXEL20_1M
4822 if (diff(w[6], w[8]))
4823 {
4824 PIXEL12_C
4825 PIXEL21_C
4826 PIXEL22_C
4827 }
4828 else
4829 {
4830 PIXEL12_3
4831 PIXEL21_3
4832 PIXEL22_4
4833 }
4834 break;
4835 }
4836 case 118:
4837 {
4838 PIXEL00_1M
4839 if (diff(w[2], w[6]))
4840 {
4841 PIXEL01_C
4842 PIXEL02_C
4843 PIXEL12_C
4844 }
4845 else
4846 {
4847 PIXEL01_3
4848 PIXEL02_4
4849 PIXEL12_3
4850 }
4851 PIXEL10_1
4852 PIXEL11
4853 PIXEL20_1L
4854 PIXEL21_C
4855 PIXEL22_1M
4856 break;
4857 }
4858 case 217:
4859 {
4860 PIXEL00_1U
4861 PIXEL01_1
4862 PIXEL02_1M
4863 PIXEL10_C
4864 PIXEL11
4865 PIXEL20_1M
4866 if (diff(w[6], w[8]))
4867 {
4868 PIXEL12_C
4869 PIXEL21_C
4870 PIXEL22_C
4871 }
4872 else
4873 {
4874 PIXEL12_3
4875 PIXEL21_3
4876 PIXEL22_4
4877 }
4878 break;
4879 }
4880 case 110:
4881 {
4882 PIXEL00_1M
4883 PIXEL01_C
4884 PIXEL02_1R
4885 PIXEL11
4886 PIXEL12_1
4887 if (diff(w[8], w[4]))
4888 {
4889 PIXEL10_C
4890 PIXEL20_C
4891 PIXEL21_C
4892 }
4893 else
4894 {
4895 PIXEL10_3
4896 PIXEL20_4
4897 PIXEL21_3
4898 }
4899 PIXEL22_1M
4900 break;
4901 }
4902 case 155:
4903 {
4904 if (diff(w[4], w[2]))
4905 {
4906 PIXEL00_C
4907 PIXEL01_C
4908 PIXEL10_C
4909 }
4910 else
4911 {
4912 PIXEL00_4
4913 PIXEL01_3
4914 PIXEL10_3
4915 }
4916 PIXEL02_1M
4917 PIXEL11
4918 PIXEL12_C
4919 PIXEL20_1M
4920 PIXEL21_1
4921 PIXEL22_1D
4922 break;
4923 }
4924 case 188:
4925 {
4926 PIXEL00_1M
4927 PIXEL01_1
4928 PIXEL02_1U
4929 PIXEL10_C
4930 PIXEL11
4931 PIXEL12_C
4932 PIXEL20_1D
4933 PIXEL21_1
4934 PIXEL22_1D
4935 break;
4936 }
4937 case 185:
4938 {
4939 PIXEL00_1U
4940 PIXEL01_1
4941 PIXEL02_1M
4942 PIXEL10_C
4943 PIXEL11
4944 PIXEL12_C
4945 PIXEL20_1D
4946 PIXEL21_1
4947 PIXEL22_1D
4948 break;
4949 }
4950 case 61:
4951 {
4952 PIXEL00_1U
4953 PIXEL01_1
4954 PIXEL02_1U
4955 PIXEL10_C
4956 PIXEL11
4957 PIXEL12_C
4958 PIXEL20_1D
4959 PIXEL21_1
4960 PIXEL22_1M
4961 break;
4962 }
4963 case 157:
4964 {
4965 PIXEL00_1U
4966 PIXEL01_1
4967 PIXEL02_1U
4968 PIXEL10_C
4969 PIXEL11
4970 PIXEL12_C
4971 PIXEL20_1M
4972 PIXEL21_1
4973 PIXEL22_1D
4974 break;
4975 }
4976 case 103:
4977 {
4978 PIXEL00_1L
4979 PIXEL01_C
4980 PIXEL02_1R
4981 PIXEL10_1
4982 PIXEL11
4983 PIXEL12_1
4984 PIXEL20_1L
4985 PIXEL21_C
4986 PIXEL22_1M
4987 break;
4988 }
4989 case 227:
4990 {
4991 PIXEL00_1L
4992 PIXEL01_C
4993 PIXEL02_1M
4994 PIXEL10_1
4995 PIXEL11
4996 PIXEL12_1
4997 PIXEL20_1L
4998 PIXEL21_C
4999 PIXEL22_1R
5000 break;
5001 }
5002 case 230:
5003 {
5004 PIXEL00_1M
5005 PIXEL01_C
5006 PIXEL02_1R
5007 PIXEL10_1
5008 PIXEL11
5009 PIXEL12_1
5010 PIXEL20_1L
5011 PIXEL21_C
5012 PIXEL22_1R
5013 break;
5014 }
5015 case 199:
5016 {
5017 PIXEL00_1L
5018 PIXEL01_C
5019 PIXEL02_1R
5020 PIXEL10_1
5021 PIXEL11
5022 PIXEL12_1
5023 PIXEL20_1M
5024 PIXEL21_C
5025 PIXEL22_1R
5026 break;
5027 }
5028 case 220:
5029 {
5030 PIXEL00_1M
5031 PIXEL01_1
5032 PIXEL02_1U
5033 PIXEL10_C
5034 PIXEL11
5035 if (diff(w[8], w[4]))
5036 {
5037 PIXEL20_1M
5038 }
5039 else
5040 {
5041 PIXEL20_2
5042 }
5043 if (diff(w[6], w[8]))
5044 {
5045 PIXEL12_C
5046 PIXEL21_C
5047 PIXEL22_C
5048 }
5049 else
5050 {
5051 PIXEL12_3
5052 PIXEL21_3
5053 PIXEL22_4
5054 }
5055 break;
5056 }
5057 case 158:
5058 {
5059 if (diff(w[4], w[2]))
5060 {
5061 PIXEL00_1M
5062 }
5063 else
5064 {
5065 PIXEL00_2
5066 }
5067 if (diff(w[2], w[6]))
5068 {
5069 PIXEL01_C
5070 PIXEL02_C
5071 PIXEL12_C
5072 }
5073 else
5074 {
5075 PIXEL01_3
5076 PIXEL02_4
5077 PIXEL12_3
5078 }
5079 PIXEL10_C
5080 PIXEL11
5081 PIXEL20_1M
5082 PIXEL21_1
5083 PIXEL22_1D
5084 break;
5085 }
5086 case 234:
5087 {
5088 if (diff(w[4], w[2]))
5089 {
5090 PIXEL00_1M
5091 }
5092 else
5093 {
5094 PIXEL00_2
5095 }
5096 PIXEL01_C
5097 PIXEL02_1M
5098 PIXEL11
5099 PIXEL12_1
5100 if (diff(w[8], w[4]))
5101 {
5102 PIXEL10_C
5103 PIXEL20_C
5104 PIXEL21_C
5105 }
5106 else
5107 {
5108 PIXEL10_3
5109 PIXEL20_4
5110 PIXEL21_3
5111 }
5112 PIXEL22_1R
5113 break;
5114 }
5115 case 242:
5116 {
5117 PIXEL00_1M
5118 PIXEL01_C
5119 if (diff(w[2], w[6]))
5120 {
5121 PIXEL02_1M
5122 }
5123 else
5124 {
5125 PIXEL02_2
5126 }
5127 PIXEL10_1
5128 PIXEL11
5129 PIXEL20_1L
5130 if (diff(w[6], w[8]))
5131 {
5132 PIXEL12_C
5133 PIXEL21_C
5134 PIXEL22_C
5135 }
5136 else
5137 {
5138 PIXEL12_3
5139 PIXEL21_3
5140 PIXEL22_4
5141 }
5142 break;
5143 }
5144 case 59:
5145 {
5146 if (diff(w[4], w[2]))
5147 {
5148 PIXEL00_C
5149 PIXEL01_C
5150 PIXEL10_C
5151 }
5152 else
5153 {
5154 PIXEL00_4
5155 PIXEL01_3
5156 PIXEL10_3
5157 }
5158 if (diff(w[2], w[6]))
5159 {
5160 PIXEL02_1M
5161 }
5162 else
5163 {
5164 PIXEL02_2
5165 }
5166 PIXEL11
5167 PIXEL12_C
5168 PIXEL20_1D
5169 PIXEL21_1
5170 PIXEL22_1M
5171 break;
5172 }
5173 case 121:
5174 {
5175 PIXEL00_1U
5176 PIXEL01_1
5177 PIXEL02_1M
5178 PIXEL11
5179 PIXEL12_C
5180 if (diff(w[8], w[4]))
5181 {
5182 PIXEL10_C
5183 PIXEL20_C
5184 PIXEL21_C
5185 }
5186 else
5187 {
5188 PIXEL10_3
5189 PIXEL20_4
5190 PIXEL21_3
5191 }
5192 if (diff(w[6], w[8]))
5193 {
5194 PIXEL22_1M
5195 }
5196 else
5197 {
5198 PIXEL22_2
5199 }
5200 break;
5201 }
5202 case 87:
5203 {
5204 PIXEL00_1L
5205 if (diff(w[2], w[6]))
5206 {
5207 PIXEL01_C
5208 PIXEL02_C
5209 PIXEL12_C
5210 }
5211 else
5212 {
5213 PIXEL01_3
5214 PIXEL02_4
5215 PIXEL12_3
5216 }
5217 PIXEL10_1
5218 PIXEL11
5219 PIXEL20_1M
5220 PIXEL21_C
5221 if (diff(w[6], w[8]))
5222 {
5223 PIXEL22_1M
5224 }
5225 else
5226 {
5227 PIXEL22_2
5228 }
5229 break;
5230 }
5231 case 79:
5232 {
5233 if (diff(w[4], w[2]))
5234 {
5235 PIXEL00_C
5236 PIXEL01_C
5237 PIXEL10_C
5238 }
5239 else
5240 {
5241 PIXEL00_4
5242 PIXEL01_3
5243 PIXEL10_3
5244 }
5245 PIXEL02_1R
5246 PIXEL11
5247 PIXEL12_1
5248 if (diff(w[8], w[4]))
5249 {
5250 PIXEL20_1M
5251 }
5252 else
5253 {
5254 PIXEL20_2
5255 }
5256 PIXEL21_C
5257 PIXEL22_1M
5258 break;
5259 }
5260 case 122:
5261 {
5262 if (diff(w[4], w[2]))
5263 {
5264 PIXEL00_1M
5265 }
5266 else
5267 {
5268 PIXEL00_2
5269 }
5270 PIXEL01_C
5271 if (diff(w[2], w[6]))
5272 {
5273 PIXEL02_1M
5274 }
5275 else
5276 {
5277 PIXEL02_2
5278 }
5279 PIXEL11
5280 PIXEL12_C
5281 if (diff(w[8], w[4]))
5282 {
5283 PIXEL10_C
5284 PIXEL20_C
5285 PIXEL21_C
5286 }
5287 else
5288 {
5289 PIXEL10_3
5290 PIXEL20_4
5291 PIXEL21_3
5292 }
5293 if (diff(w[6], w[8]))
5294 {
5295 PIXEL22_1M
5296 }
5297 else
5298 {
5299 PIXEL22_2
5300 }
5301 break;
5302 }
5303 case 94:
5304 {
5305 if (diff(w[4], w[2]))
5306 {
5307 PIXEL00_1M
5308 }
5309 else
5310 {
5311 PIXEL00_2
5312 }
5313 if (diff(w[2], w[6]))
5314 {
5315 PIXEL01_C
5316 PIXEL02_C
5317 PIXEL12_C
5318 }
5319 else
5320 {
5321 PIXEL01_3
5322 PIXEL02_4
5323 PIXEL12_3
5324 }
5325 PIXEL10_C
5326 PIXEL11
5327 if (diff(w[8], w[4]))
5328 {
5329 PIXEL20_1M
5330 }
5331 else
5332 {
5333 PIXEL20_2
5334 }
5335 PIXEL21_C
5336 if (diff(w[6], w[8]))
5337 {
5338 PIXEL22_1M
5339 }
5340 else
5341 {
5342 PIXEL22_2
5343 }
5344 break;
5345 }
5346 case 218:
5347 {
5348 if (diff(w[4], w[2]))
5349 {
5350 PIXEL00_1M
5351 }
5352 else
5353 {
5354 PIXEL00_2
5355 }
5356 PIXEL01_C
5357 if (diff(w[2], w[6]))
5358 {
5359 PIXEL02_1M
5360 }
5361 else
5362 {
5363 PIXEL02_2
5364 }
5365 PIXEL10_C
5366 PIXEL11
5367 if (diff(w[8], w[4]))
5368 {
5369 PIXEL20_1M
5370 }
5371 else
5372 {
5373 PIXEL20_2
5374 }
5375 if (diff(w[6], w[8]))
5376 {
5377 PIXEL12_C
5378 PIXEL21_C
5379 PIXEL22_C
5380 }
5381 else
5382 {
5383 PIXEL12_3
5384 PIXEL21_3
5385 PIXEL22_4
5386 }
5387 break;
5388 }
5389 case 91:
5390 {
5391 if (diff(w[4], w[2]))
5392 {
5393 PIXEL00_C
5394 PIXEL01_C
5395 PIXEL10_C
5396 }
5397 else
5398 {
5399 PIXEL00_4
5400 PIXEL01_3
5401 PIXEL10_3
5402 }
5403 if (diff(w[2], w[6]))
5404 {
5405 PIXEL02_1M
5406 }
5407 else
5408 {
5409 PIXEL02_2
5410 }
5411 PIXEL11
5412 PIXEL12_C
5413 if (diff(w[8], w[4]))
5414 {
5415 PIXEL20_1M
5416 }
5417 else
5418 {
5419 PIXEL20_2
5420 }
5421 PIXEL21_C
5422 if (diff(w[6], w[8]))
5423 {
5424 PIXEL22_1M
5425 }
5426 else
5427 {
5428 PIXEL22_2
5429 }
5430 break;
5431 }
5432 case 229:
5433 {
5434 PIXEL00_2
5435 PIXEL01_1
5436 PIXEL02_2
5437 PIXEL10_1
5438 PIXEL11
5439 PIXEL12_1
5440 PIXEL20_1L
5441 PIXEL21_C
5442 PIXEL22_1R
5443 break;
5444 }
5445 case 167:
5446 {
5447 PIXEL00_1L
5448 PIXEL01_C
5449 PIXEL02_1R
5450 PIXEL10_1
5451 PIXEL11
5452 PIXEL12_1
5453 PIXEL20_2
5454 PIXEL21_1
5455 PIXEL22_2
5456 break;
5457 }
5458 case 173:
5459 {
5460 PIXEL00_1U
5461 PIXEL01_1
5462 PIXEL02_2
5463 PIXEL10_C
5464 PIXEL11
5465 PIXEL12_1
5466 PIXEL20_1D
5467 PIXEL21_1
5468 PIXEL22_2
5469 break;
5470 }
5471 case 181:
5472 {
5473 PIXEL00_2
5474 PIXEL01_1
5475 PIXEL02_1U
5476 PIXEL10_1
5477 PIXEL11
5478 PIXEL12_C
5479 PIXEL20_2
5480 PIXEL21_1
5481 PIXEL22_1D
5482 break;
5483 }
5484 case 186:
5485 {
5486 if (diff(w[4], w[2]))
5487 {
5488 PIXEL00_1M
5489 }
5490 else
5491 {
5492 PIXEL00_2
5493 }
5494 PIXEL01_C
5495 if (diff(w[2], w[6]))
5496 {
5497 PIXEL02_1M
5498 }
5499 else
5500 {
5501 PIXEL02_2
5502 }
5503 PIXEL10_C
5504 PIXEL11
5505 PIXEL12_C
5506 PIXEL20_1D
5507 PIXEL21_1
5508 PIXEL22_1D
5509 break;
5510 }
5511 case 115:
5512 {
5513 PIXEL00_1L
5514 PIXEL01_C
5515 if (diff(w[2], w[6]))
5516 {
5517 PIXEL02_1M
5518 }
5519 else
5520 {
5521 PIXEL02_2
5522 }
5523 PIXEL10_1
5524 PIXEL11
5525 PIXEL12_C
5526 PIXEL20_1L
5527 PIXEL21_C
5528 if (diff(w[6], w[8]))
5529 {
5530 PIXEL22_1M
5531 }
5532 else
5533 {
5534 PIXEL22_2
5535 }
5536 break;
5537 }
5538 case 93:
5539 {
5540 PIXEL00_1U
5541 PIXEL01_1
5542 PIXEL02_1U
5543 PIXEL10_C
5544 PIXEL11
5545 PIXEL12_C
5546 if (diff(w[8], w[4]))
5547 {
5548 PIXEL20_1M
5549 }
5550 else
5551 {
5552 PIXEL20_2
5553 }
5554 PIXEL21_C
5555 if (diff(w[6], w[8]))
5556 {
5557 PIXEL22_1M
5558 }
5559 else
5560 {
5561 PIXEL22_2
5562 }
5563 break;
5564 }
5565 case 206:
5566 {
5567 if (diff(w[4], w[2]))
5568 {
5569 PIXEL00_1M
5570 }
5571 else
5572 {
5573 PIXEL00_2
5574 }
5575 PIXEL01_C
5576 PIXEL02_1R
5577 PIXEL10_C
5578 PIXEL11
5579 PIXEL12_1
5580 if (diff(w[8], w[4]))
5581 {
5582 PIXEL20_1M
5583 }
5584 else
5585 {
5586 PIXEL20_2
5587 }
5588 PIXEL21_C
5589 PIXEL22_1R
5590 break;
5591 }
5592 case 205:
5593 case 201:
5594 {
5595 PIXEL00_1U
5596 PIXEL01_1
5597 PIXEL02_2
5598 PIXEL10_C
5599 PIXEL11
5600 PIXEL12_1
5601 if (diff(w[8], w[4]))
5602 {
5603 PIXEL20_1M
5604 }
5605 else
5606 {
5607 PIXEL20_2
5608 }
5609 PIXEL21_C
5610 PIXEL22_1R
5611 break;
5612 }
5613 case 174:
5614 case 46:
5615 {
5616 if (diff(w[4], w[2]))
5617 {
5618 PIXEL00_1M
5619 }
5620 else
5621 {
5622 PIXEL00_2
5623 }
5624 PIXEL01_C
5625 PIXEL02_1R
5626 PIXEL10_C
5627 PIXEL11
5628 PIXEL12_1
5629 PIXEL20_1D
5630 PIXEL21_1
5631 PIXEL22_2
5632 break;
5633 }
5634 case 179:
5635 case 147:
5636 {
5637 PIXEL00_1L
5638 PIXEL01_C
5639 if (diff(w[2], w[6]))
5640 {
5641 PIXEL02_1M
5642 }
5643 else
5644 {
5645 PIXEL02_2
5646 }
5647 PIXEL10_1
5648 PIXEL11
5649 PIXEL12_C
5650 PIXEL20_2
5651 PIXEL21_1
5652 PIXEL22_1D
5653 break;
5654 }
5655 case 117:
5656 case 116:
5657 {
5658 PIXEL00_2
5659 PIXEL01_1
5660 PIXEL02_1U
5661 PIXEL10_1
5662 PIXEL11
5663 PIXEL12_C
5664 PIXEL20_1L
5665 PIXEL21_C
5666 if (diff(w[6], w[8]))
5667 {
5668 PIXEL22_1M
5669 }
5670 else
5671 {
5672 PIXEL22_2
5673 }
5674 break;
5675 }
5676 case 189:
5677 {
5678 PIXEL00_1U
5679 PIXEL01_1
5680 PIXEL02_1U
5681 PIXEL10_C
5682 PIXEL11
5683 PIXEL12_C
5684 PIXEL20_1D
5685 PIXEL21_1
5686 PIXEL22_1D
5687 break;
5688 }
5689 case 231:
5690 {
5691 PIXEL00_1L
5692 PIXEL01_C
5693 PIXEL02_1R
5694 PIXEL10_1
5695 PIXEL11
5696 PIXEL12_1
5697 PIXEL20_1L
5698 PIXEL21_C
5699 PIXEL22_1R
5700 break;
5701 }
5702 case 126:
5703 {
5704 PIXEL00_1M
5705 if (diff(w[2], w[6]))
5706 {
5707 PIXEL01_C
5708 PIXEL02_C
5709 PIXEL12_C
5710 }
5711 else
5712 {
5713 PIXEL01_3
5714 PIXEL02_4
5715 PIXEL12_3
5716 }
5717 PIXEL11
5718 if (diff(w[8], w[4]))
5719 {
5720 PIXEL10_C
5721 PIXEL20_C
5722 PIXEL21_C
5723 }
5724 else
5725 {
5726 PIXEL10_3
5727 PIXEL20_4
5728 PIXEL21_3
5729 }
5730 PIXEL22_1M
5731 break;
5732 }
5733 case 219:
5734 {
5735 if (diff(w[4], w[2]))
5736 {
5737 PIXEL00_C
5738 PIXEL01_C
5739 PIXEL10_C
5740 }
5741 else
5742 {
5743 PIXEL00_4
5744 PIXEL01_3
5745 PIXEL10_3
5746 }
5747 PIXEL02_1M
5748 PIXEL11
5749 PIXEL20_1M
5750 if (diff(w[6], w[8]))
5751 {
5752 PIXEL12_C
5753 PIXEL21_C
5754 PIXEL22_C
5755 }
5756 else
5757 {
5758 PIXEL12_3
5759 PIXEL21_3
5760 PIXEL22_4
5761 }
5762 break;
5763 }
5764 case 125:
5765 {
5766 if (diff(w[8], w[4]))
5767 {
5768 PIXEL00_1U
5769 PIXEL10_C
5770 PIXEL20_C
5771 PIXEL21_C
5772 }
5773 else
5774 {
5775 PIXEL00_2
5776 PIXEL10_6
5777 PIXEL20_5
5778 PIXEL21_1
5779 }
5780 PIXEL01_1
5781 PIXEL02_1U
5782 PIXEL11
5783 PIXEL12_C
5784 PIXEL22_1M
5785 break;
5786 }
5787 case 221:
5788 {
5789 if (diff(w[6], w[8]))
5790 {
5791 PIXEL02_1U
5792 PIXEL12_C
5793 PIXEL21_C
5794 PIXEL22_C
5795 }
5796 else
5797 {
5798 PIXEL02_2
5799 PIXEL12_6
5800 PIXEL21_1
5801 PIXEL22_5
5802 }
5803 PIXEL00_1U
5804 PIXEL01_1
5805 PIXEL10_C
5806 PIXEL11
5807 PIXEL20_1M
5808 break;
5809 }
5810 case 207:
5811 {
5812 if (diff(w[4], w[2]))
5813 {
5814 PIXEL00_C
5815 PIXEL01_C
5816 PIXEL02_1R
5817 PIXEL10_C
5818 }
5819 else
5820 {
5821 PIXEL00_5
5822 PIXEL01_6
5823 PIXEL02_2
5824 PIXEL10_1
5825 }
5826 PIXEL11
5827 PIXEL12_1
5828 PIXEL20_1M
5829 PIXEL21_C
5830 PIXEL22_1R
5831 break;
5832 }
5833 case 238:
5834 {
5835 if (diff(w[8], w[4]))
5836 {
5837 PIXEL10_C
5838 PIXEL20_C
5839 PIXEL21_C
5840 PIXEL22_1R
5841 }
5842 else
5843 {
5844 PIXEL10_1
5845 PIXEL20_5
5846 PIXEL21_6
5847 PIXEL22_2
5848 }
5849 PIXEL00_1M
5850 PIXEL01_C
5851 PIXEL02_1R
5852 PIXEL11
5853 PIXEL12_1
5854 break;
5855 }
5856 case 190:
5857 {
5858 if (diff(w[2], w[6]))
5859 {
5860 PIXEL01_C
5861 PIXEL02_C
5862 PIXEL12_C
5863 PIXEL22_1D
5864 }
5865 else
5866 {
5867 PIXEL01_1
5868 PIXEL02_5
5869 PIXEL12_6
5870 PIXEL22_2
5871 }
5872 PIXEL00_1M
5873 PIXEL10_C
5874 PIXEL11
5875 PIXEL20_1D
5876 PIXEL21_1
5877 break;
5878 }
5879 case 187:
5880 {
5881 if (diff(w[4], w[2]))
5882 {
5883 PIXEL00_C
5884 PIXEL01_C
5885 PIXEL10_C
5886 PIXEL20_1D
5887 }
5888 else
5889 {
5890 PIXEL00_5
5891 PIXEL01_1
5892 PIXEL10_6
5893 PIXEL20_2
5894 }
5895 PIXEL02_1M
5896 PIXEL11
5897 PIXEL12_C
5898 PIXEL21_1
5899 PIXEL22_1D
5900 break;
5901 }
5902 case 243:
5903 {
5904 if (diff(w[6], w[8]))
5905 {
5906 PIXEL12_C
5907 PIXEL20_1L
5908 PIXEL21_C
5909 PIXEL22_C
5910 }
5911 else
5912 {
5913 PIXEL12_1
5914 PIXEL20_2
5915 PIXEL21_6
5916 PIXEL22_5
5917 }
5918 PIXEL00_1L
5919 PIXEL01_C
5920 PIXEL02_1M
5921 PIXEL10_1
5922 PIXEL11
5923 break;
5924 }
5925 case 119:
5926 {
5927 if (diff(w[2], w[6]))
5928 {
5929 PIXEL00_1L
5930 PIXEL01_C
5931 PIXEL02_C
5932 PIXEL12_C
5933 }
5934 else
5935 {
5936 PIXEL00_2
5937 PIXEL01_6
5938 PIXEL02_5
5939 PIXEL12_1
5940 }
5941 PIXEL10_1
5942 PIXEL11
5943 PIXEL20_1L
5944 PIXEL21_C
5945 PIXEL22_1M
5946 break;
5947 }
5948 case 237:
5949 case 233:
5950 {
5951 PIXEL00_1U
5952 PIXEL01_1
5953 PIXEL02_2
5954 PIXEL10_C
5955 PIXEL11
5956 PIXEL12_1
5957 if (diff(w[8], w[4]))
5958 {
5959 PIXEL20_C
5960 }
5961 else
5962 {
5963 PIXEL20_2
5964 }
5965 PIXEL21_C
5966 PIXEL22_1R
5967 break;
5968 }
5969 case 175:
5970 case 47:
5971 {
5972 if (diff(w[4], w[2]))
5973 {
5974 PIXEL00_C
5975 }
5976 else
5977 {
5978 PIXEL00_2
5979 }
5980 PIXEL01_C
5981 PIXEL02_1R
5982 PIXEL10_C
5983 PIXEL11
5984 PIXEL12_1
5985 PIXEL20_1D
5986 PIXEL21_1
5987 PIXEL22_2
5988 break;
5989 }
5990 case 183:
5991 case 151:
5992 {
5993 PIXEL00_1L
5994 PIXEL01_C
5995 if (diff(w[2], w[6]))
5996 {
5997 PIXEL02_C
5998 }
5999 else
6000 {
6001 PIXEL02_2
6002 }
6003 PIXEL10_1
6004 PIXEL11
6005 PIXEL12_C
6006 PIXEL20_2
6007 PIXEL21_1
6008 PIXEL22_1D
6009 break;
6010 }
6011 case 245:
6012 case 244:
6013 {
6014 PIXEL00_2
6015 PIXEL01_1
6016 PIXEL02_1U
6017 PIXEL10_1
6018 PIXEL11
6019 PIXEL12_C
6020 PIXEL20_1L
6021 PIXEL21_C
6022 if (diff(w[6], w[8]))
6023 {
6024 PIXEL22_C
6025 }
6026 else
6027 {
6028 PIXEL22_2
6029 }
6030 break;
6031 }
6032 case 250:
6033 {
6034 PIXEL00_1M
6035 PIXEL01_C
6036 PIXEL02_1M
6037 PIXEL11
6038 if (diff(w[8], w[4]))
6039 {
6040 PIXEL10_C
6041 PIXEL20_C
6042 }
6043 else
6044 {
6045 PIXEL10_3
6046 PIXEL20_4
6047 }
6048 PIXEL21_C
6049 if (diff(w[6], w[8]))
6050 {
6051 PIXEL12_C
6052 PIXEL22_C
6053 }
6054 else
6055 {
6056 PIXEL12_3
6057 PIXEL22_4
6058 }
6059 break;
6060 }
6061 case 123:
6062 {
6063 if (diff(w[4], w[2]))
6064 {
6065 PIXEL00_C
6066 PIXEL01_C
6067 }
6068 else
6069 {
6070 PIXEL00_4
6071 PIXEL01_3
6072 }
6073 PIXEL02_1M
6074 PIXEL10_C
6075 PIXEL11
6076 PIXEL12_C
6077 if (diff(w[8], w[4]))
6078 {
6079 PIXEL20_C
6080 PIXEL21_C
6081 }
6082 else
6083 {
6084 PIXEL20_4
6085 PIXEL21_3
6086 }
6087 PIXEL22_1M
6088 break;
6089 }
6090 case 95:
6091 {
6092 if (diff(w[4], w[2]))
6093 {
6094 PIXEL00_C
6095 PIXEL10_C
6096 }
6097 else
6098 {
6099 PIXEL00_4
6100 PIXEL10_3
6101 }
6102 PIXEL01_C
6103 if (diff(w[2], w[6]))
6104 {
6105 PIXEL02_C
6106 PIXEL12_C
6107 }
6108 else
6109 {
6110 PIXEL02_4
6111 PIXEL12_3
6112 }
6113 PIXEL11
6114 PIXEL20_1M
6115 PIXEL21_C
6116 PIXEL22_1M
6117 break;
6118 }
6119 case 222:
6120 {
6121 PIXEL00_1M
6122 if (diff(w[2], w[6]))
6123 {
6124 PIXEL01_C
6125 PIXEL02_C
6126 }
6127 else
6128 {
6129 PIXEL01_3
6130 PIXEL02_4
6131 }
6132 PIXEL10_C
6133 PIXEL11
6134 PIXEL12_C
6135 PIXEL20_1M
6136 if (diff(w[6], w[8]))
6137 {
6138 PIXEL21_C
6139 PIXEL22_C
6140 }
6141 else
6142 {
6143 PIXEL21_3
6144 PIXEL22_4
6145 }
6146 break;
6147 }
6148 case 252:
6149 {
6150 PIXEL00_1M
6151 PIXEL01_1
6152 PIXEL02_1U
6153 PIXEL11
6154 PIXEL12_C
6155 if (diff(w[8], w[4]))
6156 {
6157 PIXEL10_C
6158 PIXEL20_C
6159 }
6160 else
6161 {
6162 PIXEL10_3
6163 PIXEL20_4
6164 }
6165 PIXEL21_C
6166 if (diff(w[6], w[8]))
6167 {
6168 PIXEL22_C
6169 }
6170 else
6171 {
6172 PIXEL22_2
6173 }
6174 break;
6175 }
6176 case 249:
6177 {
6178 PIXEL00_1U
6179 PIXEL01_1
6180 PIXEL02_1M
6181 PIXEL10_C
6182 PIXEL11
6183 if (diff(w[8], w[4]))
6184 {
6185 PIXEL20_C
6186 }
6187 else
6188 {
6189 PIXEL20_2
6190 }
6191 PIXEL21_C
6192 if (diff(w[6], w[8]))
6193 {
6194 PIXEL12_C
6195 PIXEL22_C
6196 }
6197 else
6198 {
6199 PIXEL12_3
6200 PIXEL22_4
6201 }
6202 break;
6203 }
6204 case 235:
6205 {
6206 if (diff(w[4], w[2]))
6207 {
6208 PIXEL00_C
6209 PIXEL01_C
6210 }
6211 else
6212 {
6213 PIXEL00_4
6214 PIXEL01_3
6215 }
6216 PIXEL02_1M
6217 PIXEL10_C
6218 PIXEL11
6219 PIXEL12_1
6220 if (diff(w[8], w[4]))
6221 {
6222 PIXEL20_C
6223 }
6224 else
6225 {
6226 PIXEL20_2
6227 }
6228 PIXEL21_C
6229 PIXEL22_1R
6230 break;
6231 }
6232 case 111:
6233 {
6234 if (diff(w[4], w[2]))
6235 {
6236 PIXEL00_C
6237 }
6238 else
6239 {
6240 PIXEL00_2
6241 }
6242 PIXEL01_C
6243 PIXEL02_1R
6244 PIXEL10_C
6245 PIXEL11
6246 PIXEL12_1
6247 if (diff(w[8], w[4]))
6248 {
6249 PIXEL20_C
6250 PIXEL21_C
6251 }
6252 else
6253 {
6254 PIXEL20_4
6255 PIXEL21_3
6256 }
6257 PIXEL22_1M
6258 break;
6259 }
6260 case 63:
6261 {
6262 if (diff(w[4], w[2]))
6263 {
6264 PIXEL00_C
6265 }
6266 else
6267 {
6268 PIXEL00_2
6269 }
6270 PIXEL01_C
6271 if (diff(w[2], w[6]))
6272 {
6273 PIXEL02_C
6274 PIXEL12_C
6275 }
6276 else
6277 {
6278 PIXEL02_4
6279 PIXEL12_3
6280 }
6281 PIXEL10_C
6282 PIXEL11
6283 PIXEL20_1D
6284 PIXEL21_1
6285 PIXEL22_1M
6286 break;
6287 }
6288 case 159:
6289 {
6290 if (diff(w[4], w[2]))
6291 {
6292 PIXEL00_C
6293 PIXEL10_C
6294 }
6295 else
6296 {
6297 PIXEL00_4
6298 PIXEL10_3
6299 }
6300 PIXEL01_C
6301 if (diff(w[2], w[6]))
6302 {
6303 PIXEL02_C
6304 }
6305 else
6306 {
6307 PIXEL02_2
6308 }
6309 PIXEL11
6310 PIXEL12_C
6311 PIXEL20_1M
6312 PIXEL21_1
6313 PIXEL22_1D
6314 break;
6315 }
6316 case 215:
6317 {
6318 PIXEL00_1L
6319 PIXEL01_C
6320 if (diff(w[2], w[6]))
6321 {
6322 PIXEL02_C
6323 }
6324 else
6325 {
6326 PIXEL02_2
6327 }
6328 PIXEL10_1
6329 PIXEL11
6330 PIXEL12_C
6331 PIXEL20_1M
6332 if (diff(w[6], w[8]))
6333 {
6334 PIXEL21_C
6335 PIXEL22_C
6336 }
6337 else
6338 {
6339 PIXEL21_3
6340 PIXEL22_4
6341 }
6342 break;
6343 }
6344 case 246:
6345 {
6346 PIXEL00_1M
6347 if (diff(w[2], w[6]))
6348 {
6349 PIXEL01_C
6350 PIXEL02_C
6351 }
6352 else
6353 {
6354 PIXEL01_3
6355 PIXEL02_4
6356 }
6357 PIXEL10_1
6358 PIXEL11
6359 PIXEL12_C
6360 PIXEL20_1L
6361 PIXEL21_C
6362 if (diff(w[6], w[8]))
6363 {
6364 PIXEL22_C
6365 }
6366 else
6367 {
6368 PIXEL22_2
6369 }
6370 break;
6371 }
6372 case 254:
6373 {
6374 PIXEL00_1M
6375 if (diff(w[2], w[6]))
6376 {
6377 PIXEL01_C
6378 PIXEL02_C
6379 }
6380 else
6381 {
6382 PIXEL01_3
6383 PIXEL02_4
6384 }
6385 PIXEL11
6386 if (diff(w[8], w[4]))
6387 {
6388 PIXEL10_C
6389 PIXEL20_C
6390 }
6391 else
6392 {
6393 PIXEL10_3
6394 PIXEL20_4
6395 }
6396 if (diff(w[6], w[8]))
6397 {
6398 PIXEL12_C
6399 PIXEL21_C
6400 PIXEL22_C
6401 }
6402 else
6403 {
6404 PIXEL12_3
6405 PIXEL21_3
6406 PIXEL22_2
6407 }
6408 break;
6409 }
6410 case 253:
6411 {
6412 PIXEL00_1U
6413 PIXEL01_1
6414 PIXEL02_1U
6415 PIXEL10_C
6416 PIXEL11
6417 PIXEL12_C
6418 if (diff(w[8], w[4]))
6419 {
6420 PIXEL20_C
6421 }
6422 else
6423 {
6424 PIXEL20_2
6425 }
6426 PIXEL21_C
6427 if (diff(w[6], w[8]))
6428 {
6429 PIXEL22_C
6430 }
6431 else
6432 {
6433 PIXEL22_2
6434 }
6435 break;
6436 }
6437 case 251:
6438 {
6439 if (diff(w[4], w[2]))
6440 {
6441 PIXEL00_C
6442 PIXEL01_C
6443 }
6444 else
6445 {
6446 PIXEL00_4
6447 PIXEL01_3
6448 }
6449 PIXEL02_1M
6450 PIXEL11
6451 if (diff(w[8], w[4]))
6452 {
6453 PIXEL10_C
6454 PIXEL20_C
6455 PIXEL21_C
6456 }
6457 else
6458 {
6459 PIXEL10_3
6460 PIXEL20_2
6461 PIXEL21_3
6462 }
6463 if (diff(w[6], w[8]))
6464 {
6465 PIXEL12_C
6466 PIXEL22_C
6467 }
6468 else
6469 {
6470 PIXEL12_3
6471 PIXEL22_4
6472 }
6473 break;
6474 }
6475 case 239:
6476 {
6477 if (diff(w[4], w[2]))
6478 {
6479 PIXEL00_C
6480 }
6481 else
6482 {
6483 PIXEL00_2
6484 }
6485 PIXEL01_C
6486 PIXEL02_1R
6487 PIXEL10_C
6488 PIXEL11
6489 PIXEL12_1
6490 if (diff(w[8], w[4]))
6491 {
6492 PIXEL20_C
6493 }
6494 else
6495 {
6496 PIXEL20_2
6497 }
6498 PIXEL21_C
6499 PIXEL22_1R
6500 break;
6501 }
6502 case 127:
6503 {
6504 if (diff(w[4], w[2]))
6505 {
6506 PIXEL00_C
6507 PIXEL01_C
6508 PIXEL10_C
6509 }
6510 else
6511 {
6512 PIXEL00_2
6513 PIXEL01_3
6514 PIXEL10_3
6515 }
6516 if (diff(w[2], w[6]))
6517 {
6518 PIXEL02_C
6519 PIXEL12_C
6520 }
6521 else
6522 {
6523 PIXEL02_4
6524 PIXEL12_3
6525 }
6526 PIXEL11
6527 if (diff(w[8], w[4]))
6528 {
6529 PIXEL20_C
6530 PIXEL21_C
6531 }
6532 else
6533 {
6534 PIXEL20_4
6535 PIXEL21_3
6536 }
6537 PIXEL22_1M
6538 break;
6539 }
6540 case 191:
6541 {
6542 if (diff(w[4], w[2]))
6543 {
6544 PIXEL00_C
6545 }
6546 else
6547 {
6548 PIXEL00_2
6549 }
6550 PIXEL01_C
6551 if (diff(w[2], w[6]))
6552 {
6553 PIXEL02_C
6554 }
6555 else
6556 {
6557 PIXEL02_2
6558 }
6559 PIXEL10_C
6560 PIXEL11
6561 PIXEL12_C
6562 PIXEL20_1D
6563 PIXEL21_1
6564 PIXEL22_1D
6565 break;
6566 }
6567 case 223:
6568 {
6569 if (diff(w[4], w[2]))
6570 {
6571 PIXEL00_C
6572 PIXEL10_C
6573 }
6574 else
6575 {
6576 PIXEL00_4
6577 PIXEL10_3
6578 }
6579 if (diff(w[2], w[6]))
6580 {
6581 PIXEL01_C
6582 PIXEL02_C
6583 PIXEL12_C
6584 }
6585 else
6586 {
6587 PIXEL01_3
6588 PIXEL02_2
6589 PIXEL12_3
6590 }
6591 PIXEL11
6592 PIXEL20_1M
6593 if (diff(w[6], w[8]))
6594 {
6595 PIXEL21_C
6596 PIXEL22_C
6597 }
6598 else
6599 {
6600 PIXEL21_3
6601 PIXEL22_4
6602 }
6603 break;
6604 }
6605 case 247:
6606 {
6607 PIXEL00_1L
6608 PIXEL01_C
6609 if (diff(w[2], w[6]))
6610 {
6611 PIXEL02_C
6612 }
6613 else
6614 {
6615 PIXEL02_2
6616 }
6617 PIXEL10_1
6618 PIXEL11
6619 PIXEL12_C
6620 PIXEL20_1L
6621 PIXEL21_C
6622 if (diff(w[6], w[8]))
6623 {
6624 PIXEL22_C
6625 }
6626 else
6627 {
6628 PIXEL22_2
6629 }
6630 break;
6631 }
6632 case 255:
6633 {
6634 if (diff(w[4], w[2]))
6635 {
6636 PIXEL00_C
6637 }
6638 else
6639 {
6640 PIXEL00_2
6641 }
6642 PIXEL01_C
6643 if (diff(w[2], w[6]))
6644 {
6645 PIXEL02_C
6646 }
6647 else
6648 {
6649 PIXEL02_2
6650 }
6651 PIXEL10_C
6652 PIXEL11
6653 PIXEL12_C
6654 if (diff(w[8], w[4]))
6655 {
6656 PIXEL20_C
6657 }
6658 else
6659 {
6660 PIXEL20_2
6661 }
6662 PIXEL21_C
6663 if (diff(w[6], w[8]))
6664 {
6665 PIXEL22_C
6666 }
6667 else
6668 {
6669 PIXEL22_2
6670 }
6671 break;
6672 }
6673 }
6674
6675 src++;
6676 dst += 3 * dst_Bpp;
6677 }
6678
6679 src = src_temp + src_pitch;
6680 dst = dst_temp + 3 * dst_pitch;
6681 }
6682 }
6683
6684
6685 #define PIXEL4_00_0 *(Uint32 *)(dst) = c[5];
6686 #define PIXEL4_00_11 interp1((Uint32 *)(dst), c[5], c[4]);
6687 #define PIXEL4_00_12 interp1((Uint32 *)(dst), c[5], c[2]);
6688 #define PIXEL4_00_20 interp2((Uint32 *)(dst), c[5], c[2], c[4]);
6689 #define PIXEL4_00_50 interp5((Uint32 *)(dst), c[2], c[4]);
6690 #define PIXEL4_00_80 interp8((Uint32 *)(dst), c[5], c[1]);
6691 #define PIXEL4_00_81 interp8((Uint32 *)(dst), c[5], c[4]);
6692 #define PIXEL4_00_82 interp8((Uint32 *)(dst), c[5], c[2]);
6693 #define PIXEL4_01_0 *(Uint32 *)(dst + dst_Bpp) = c[5];
6694 #define PIXEL4_01_10 interp1((Uint32 *)(dst + dst_Bpp), c[5], c[1]);
6695 #define PIXEL4_01_12 interp1((Uint32 *)(dst + dst_Bpp), c[5], c[2]);
6696 #define PIXEL4_01_14 interp1((Uint32 *)(dst + dst_Bpp), c[2], c[5]);
6697 #define PIXEL4_01_21 interp2((Uint32 *)(dst + dst_Bpp), c[2], c[5], c[4]);
6698 #define PIXEL4_01_31 interp3((Uint32 *)(dst + dst_Bpp), c[5], c[4]);
6699 #define PIXEL4_01_50 interp5((Uint32 *)(dst + dst_Bpp), c[2], c[5]);
6700 #define PIXEL4_01_60 interp6((Uint32 *)(dst + dst_Bpp), c[5], c[2], c[4]);
6701 #define PIXEL4_01_61 interp6((Uint32 *)(dst + dst_Bpp), c[5], c[2], c[1]);
6702 #define PIXEL4_01_82 interp8((Uint32 *)(dst + dst_Bpp), c[5], c[2]);
6703 #define PIXEL4_01_83 interp8((Uint32 *)(dst + dst_Bpp), c[2], c[4]);
6704 #define PIXEL4_02_0 *(Uint32 *)(dst + 2 * dst_Bpp) = c[5];
6705 #define PIXEL4_02_10 interp1((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[3]);
6706 #define PIXEL4_02_11 interp1((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[2]);
6707 #define PIXEL4_02_13 interp1((Uint32 *)(dst + 2 * dst_Bpp), c[2], c[5]);
6708 #define PIXEL4_02_21 interp2((Uint32 *)(dst + 2 * dst_Bpp), c[2], c[5], c[6]);
6709 #define PIXEL4_02_32 interp3((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[6]);
6710 #define PIXEL4_02_50 interp5((Uint32 *)(dst + 2 * dst_Bpp), c[2], c[5]);
6711 #define PIXEL4_02_60 interp6((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[2], c[6]);
6712 #define PIXEL4_02_61 interp6((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[2], c[3]);
6713 #define PIXEL4_02_81 interp8((Uint32 *)(dst + 2 * dst_Bpp), c[5], c[2]);
6714 #define PIXEL4_02_83 interp8((Uint32 *)(dst + 2 * dst_Bpp), c[2], c[6]);
6715 #define PIXEL4_03_0 *(Uint32 *)(dst + 3 * dst_Bpp) = c[5];
6716 #define PIXEL4_03_11 interp1((Uint32 *)(dst + 3 * dst_Bpp), c[5], c[2]);
6717 #define PIXEL4_03_12 interp1((Uint32 *)(dst + 3 * dst_Bpp), c[5], c[6]);
6718 #define PIXEL4_03_20 interp2((Uint32 *)(dst + 3 * dst_Bpp), c[5], c[2], c[6]);
6719 #define PIXEL4_03_50 interp5((Uint32 *)(dst + 3 * dst_Bpp), c[2], c[6]);
6720 #define PIXEL4_03_80 interp8((Uint32 *)(dst + 3 * dst_Bpp), c[5], c[3]);
6721 #define PIXEL4_03_81 interp8((Uint32 *)(dst + 3 * dst_Bpp), c[5], c[2]);
6722 #define PIXEL4_03_82 interp8((Uint32 *)(dst + 3 * dst_Bpp), c[5], c[6]);
6723 #define PIXEL4_10_0 *(Uint32 *)(dst + dst_pitch) = c[5];
6724 #define PIXEL4_10_10 interp1((Uint32 *)(dst + dst_pitch ), c[5], c[1]);
6725 #define PIXEL4_10_11 interp1((Uint32 *)(dst + dst_pitch ), c[5], c[4]);
6726 #define PIXEL4_10_13 interp1((Uint32 *)(dst + dst_pitch ), c[4], c[5]);
6727 #define PIXEL4_10_21 interp2((Uint32 *)(dst + dst_pitch ), c[4], c[5], c[2]);
6728 #define PIXEL4_10_32 interp3((Uint32 *)(dst + dst_pitch ), c[5], c[2]);
6729 #define PIXEL4_10_50 interp5((Uint32 *)(dst + dst_pitch ), c[4], c[5]);
6730 #define PIXEL4_10_60 interp6((Uint32 *)(dst + dst_pitch ), c[5], c[4], c[2]);
6731 #define PIXEL4_10_61 interp6((Uint32 *)(dst + dst_pitch ), c[5], c[4], c[1]);
6732 #define PIXEL4_10_81 interp8((Uint32 *)(dst + dst_pitch ), c[5], c[4]);
6733 #define PIXEL4_10_83 interp8((Uint32 *)(dst + dst_pitch ), c[4], c[2]);
6734 #define PIXEL4_11_0 *(Uint32 *)(dst + dst_pitch + dst_Bpp) = c[5];
6735 #define PIXEL4_11_30 interp3((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[1]);
6736 #define PIXEL4_11_31 interp3((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[4]);
6737 #define PIXEL4_11_32 interp3((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[2]);
6738 #define PIXEL4_11_70 interp7((Uint32 *)(dst + dst_pitch + dst_Bpp), c[5], c[4], c[2]);
6739 #define PIXEL4_12_0 *(Uint32 *)(dst + dst_pitch + 2 * dst_Bpp) = c[5];
6740 #define PIXEL4_12_30 interp3((Uint32 *)(dst + dst_pitch + 2 * dst_Bpp), c[5], c[3]);
6741 #define PIXEL4_12_31 interp3((Uint32 *)(dst + dst_pitch + 2 * dst_Bpp), c[5], c[2]);
6742 #define PIXEL4_12_32 interp3((Uint32 *)(dst + dst_pitch + 2 * dst_Bpp), c[5], c[6]);
6743 #define PIXEL4_12_70 interp7((Uint32 *)(dst + dst_pitch + 2 * dst_Bpp), c[5], c[6], c[2]);
6744 #define PIXEL4_13_0 *(Uint32 *)(dst + dst_pitch + 3 * dst_Bpp) = c[5];
6745 #define PIXEL4_13_10 interp1((Uint32 *)(dst + dst_pitch + 3 * dst_Bpp), c[5], c[3]);
6746 #define PIXEL4_13_12 interp1((Uint32 *)(dst + dst_pitch + 3 * dst_Bpp), c[5], c[6]);
6747 #define PIXEL4_13_14 interp1((Uint32 *)(dst + dst_pitch + 3 * dst_Bpp), c[6], c[5]);
6748 #define PIXEL4_13_21 interp2((Uint32 *)(dst + dst_pitch + 3 * dst_Bpp), c[6], c[5], c[2]);
6749 #define PIXEL4_13_31 interp3((Uint32 *)(dst + dst_pitch + 3 * dst_Bpp), c[5], c[2]);
6750 #define PIXEL4_13_50 interp5((Uint32 *)(dst + dst_pitch + 3 * dst_Bpp), c[6], c[5]);
6751 #define PIXEL4_13_60 interp6((Uint32 *)(dst + dst_pitch + 3 * dst_Bpp), c[5], c[6], c[2]);
6752 #define PIXEL4_13_61 interp6((Uint32 *)(dst + dst_pitch + 3 * dst_Bpp), c[5], c[6], c[3]);
6753 #define PIXEL4_13_82 interp8((Uint32 *)(dst + dst_pitch + 3 * dst_Bpp), c[5], c[6]);
6754 #define PIXEL4_13_83 interp8((Uint32 *)(dst + dst_pitch + 3 * dst_Bpp), c[6], c[2]);
6755 #define PIXEL4_20_0 *(Uint32 *)(dst + 2 * dst_pitch) = c[5];
6756 #define PIXEL4_20_10 interp1((Uint32 *)(dst + 2 * dst_pitch ), c[5], c[7]);
6757 #define PIXEL4_20_12 interp1((Uint32 *)(dst + 2 * dst_pitch ), c[5], c[4]);
6758 #define PIXEL4_20_14 interp1((Uint32 *)(dst + 2 * dst_pitch ), c[4], c[5]);
6759 #define PIXEL4_20_21 interp2((Uint32 *)(dst + 2 * dst_pitch ), c[4], c[5], c[8]);
6760 #define PIXEL4_20_31 interp3((Uint32 *)(dst + 2 * dst_pitch ), c[5], c[8]);
6761 #define PIXEL4_20_50 interp5((Uint32 *)(dst + 2 * dst_pitch ), c[4], c[5]);
6762 #define PIXEL4_20_60 interp6((Uint32 *)(dst + 2 * dst_pitch ), c[5], c[4], c[8]);
6763 #define PIXEL4_20_61 interp6((Uint32 *)(dst + 2 * dst_pitch ), c[5], c[4], c[7]);
6764 #define PIXEL4_20_82 interp8((Uint32 *)(dst + 2 * dst_pitch ), c[5], c[4]);
6765 #define PIXEL4_20_83 interp8((Uint32 *)(dst + 2 * dst_pitch ), c[4], c[8]);
6766 #define PIXEL4_21_0 *(Uint32 *)(dst + 2 * dst_pitch + dst_Bpp) = c[5];
6767 #define PIXEL4_21_30 interp3((Uint32 *)(dst + 2 * dst_pitch + dst_Bpp), c[5], c[7]);
6768 #define PIXEL4_21_31 interp3((Uint32 *)(dst + 2 * dst_pitch + dst_Bpp), c[5], c[8]);
6769 #define PIXEL4_21_32 interp3((Uint32 *)(dst + 2 * dst_pitch + dst_Bpp), c[5], c[4]);
6770 #define PIXEL4_21_70 interp7((Uint32 *)(dst + 2 * dst_pitch + dst_Bpp), c[5], c[4], c[8]);
6771 #define PIXEL4_22_0 *(Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp) = c[5];
6772 #define PIXEL4_22_30 interp3((Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp), c[5], c[9]);
6773 #define PIXEL4_22_31 interp3((Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp), c[5], c[6]);
6774 #define PIXEL4_22_32 interp3((Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp), c[5], c[8]);
6775 #define PIXEL4_22_70 interp7((Uint32 *)(dst + 2 * dst_pitch + 2 * dst_Bpp), c[5], c[6], c[8]);
6776 #define PIXEL4_23_0 *(Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp) = c[5];
6777 #define PIXEL4_23_10 interp1((Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp), c[5], c[9]);
6778 #define PIXEL4_23_11 interp1((Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp), c[5], c[6]);
6779 #define PIXEL4_23_13 interp1((Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp), c[6], c[5]);
6780 #define PIXEL4_23_21 interp2((Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp), c[6], c[5], c[8]);
6781 #define PIXEL4_23_32 interp3((Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp), c[5], c[8]);
6782 #define PIXEL4_23_50 interp5((Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp), c[6], c[5]);
6783 #define PIXEL4_23_60 interp6((Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp), c[5], c[6], c[8]);
6784 #define PIXEL4_23_61 interp6((Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp), c[5], c[6], c[9]);
6785 #define PIXEL4_23_81 interp8((Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp), c[5], c[6]);
6786 #define PIXEL4_23_83 interp8((Uint32 *)(dst + 2 * dst_pitch + 3 * dst_Bpp), c[6], c[8]);
6787 #define PIXEL4_30_0 *(Uint32 *)(dst + 3 * dst_pitch) = c[5];
6788 #define PIXEL4_30_11 interp1((Uint32 *)(dst + 3 * dst_pitch ), c[5], c[8]);
6789 #define PIXEL4_30_12 interp1((Uint32 *)(dst + 3 * dst_pitch ), c[5], c[4]);
6790 #define PIXEL4_30_20 interp2((Uint32 *)(dst + 3 * dst_pitch ), c[5], c[8], c[4]);
6791 #define PIXEL4_30_50 interp5((Uint32 *)(dst + 3 * dst_pitch ), c[8], c[4]);
6792 #define PIXEL4_30_80 interp8((Uint32 *)(dst + 3 * dst_pitch ), c[5], c[7]);
6793 #define PIXEL4_30_81 interp8((Uint32 *)(dst + 3 * dst_pitch ), c[5], c[8]);
6794 #define PIXEL4_30_82 interp8((Uint32 *)(dst + 3 * dst_pitch ), c[5], c[4]);
6795 #define PIXEL4_31_0 *(Uint32 *)(dst + 3 * dst_pitch + dst_Bpp) = c[5];
6796 #define PIXEL4_31_10 interp1((Uint32 *)(dst + 3 * dst_pitch + dst_Bpp), c[5], c[7]);
6797 #define PIXEL4_31_11 interp1((Uint32 *)(dst + 3 * dst_pitch + dst_Bpp), c[5], c[8]);
6798 #define PIXEL4_31_13 interp1((Uint32 *)(dst + 3 * dst_pitch + dst_Bpp), c[8], c[5]);
6799 #define PIXEL4_31_21 interp2((Uint32 *)(dst + 3 * dst_pitch + dst_Bpp), c[8], c[5], c[4]);
6800 #define PIXEL4_31_32 interp3((Uint32 *)(dst + 3 * dst_pitch + dst_Bpp), c[5], c[4]);
6801 #define PIXEL4_31_50 interp5((Uint32 *)(dst + 3 * dst_pitch + dst_Bpp), c[8], c[5]);
6802 #define PIXEL4_31_60 interp6((Uint32 *)(dst + 3 * dst_pitch + dst_Bpp), c[5], c[8], c[4]);
6803 #define PIXEL4_31_61 interp6((Uint32 *)(dst + 3 * dst_pitch + dst_Bpp), c[5], c[8], c[7]);
6804 #define PIXEL4_31_81 interp8((Uint32 *)(dst + 3 * dst_pitch + dst_Bpp), c[5], c[8]);
6805 #define PIXEL4_31_83 interp8((Uint32 *)(dst + 3 * dst_pitch + dst_Bpp), c[8], c[4]);
6806 #define PIXEL4_32_0 *(Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp) = c[5];
6807 #define PIXEL4_32_10 interp1((Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp), c[5], c[9]);
6808 #define PIXEL4_32_12 interp1((Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp), c[5], c[8]);
6809 #define PIXEL4_32_14 interp1((Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp), c[8], c[5]);
6810 #define PIXEL4_32_21 interp2((Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp), c[8], c[5], c[6]);
6811 #define PIXEL4_32_31 interp3((Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp), c[5], c[6]);
6812 #define PIXEL4_32_50 interp5((Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp), c[8], c[5]);
6813 #define PIXEL4_32_60 interp6((Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp), c[5], c[8], c[6]);
6814 #define PIXEL4_32_61 interp6((Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp), c[5], c[8], c[9]);
6815 #define PIXEL4_32_82 interp8((Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp), c[5], c[8]);
6816 #define PIXEL4_32_83 interp8((Uint32 *)(dst + 3 * dst_pitch + 2 * dst_Bpp), c[8], c[6]);
6817 #define PIXEL4_33_0 *(Uint32 *)(dst + 3 * dst_pitch + 3 * dst_Bpp) = c[5];
6818 #define PIXEL4_33_11 interp1((Uint32 *)(dst + 3 * dst_pitch + 3 * dst_Bpp), c[5], c[6]);
6819 #define PIXEL4_33_12 interp1((Uint32 *)(dst + 3 * dst_pitch + 3 * dst_Bpp), c[5], c[8]);
6820 #define PIXEL4_33_20 interp2((Uint32 *)(dst + 3 * dst_pitch + 3 * dst_Bpp), c[5], c[8], c[6]);
6821 #define PIXEL4_33_50 interp5((Uint32 *)(dst + 3 * dst_pitch + 3 * dst_Bpp), c[8], c[6]);
6822 #define PIXEL4_33_80 interp8((Uint32 *)(dst + 3 * dst_pitch + 3 * dst_Bpp), c[5], c[9]);
6823 #define PIXEL4_33_81 interp8((Uint32 *)(dst + 3 * dst_pitch + 3 * dst_Bpp), c[5], c[6]);
6824 #define PIXEL4_33_82 interp8((Uint32 *)(dst + 3 * dst_pitch + 3 * dst_Bpp), c[5], c[8]);
6825
hq4x_32(SDL_Surface * src_surface,SDL_Surface * dst_surface)6826 void hq4x_32( SDL_Surface *src_surface, SDL_Surface *dst_surface )
6827 {
6828 Uint8 *src = src_surface->pixels, *src_temp,
6829 *dst = dst_surface->pixels, *dst_temp;
6830 int src_pitch = src_surface->pitch,
6831 dst_pitch = dst_surface->pitch;
6832 const int dst_Bpp = 4; // dst_surface->format->BytesPerPixel
6833
6834 const int height = vga_height, // src_surface->h
6835 width = vga_width; // src_surface->w
6836
6837 int prevline, nextline;
6838
6839 Uint32 w[10];
6840 Uint32 c[10];
6841
6842 // +----+----+----+
6843 // | | | |
6844 // | w1 | w2 | w3 |
6845 // +----+----+----+
6846 // | | | |
6847 // | w4 | w5 | w6 |
6848 // +----+----+----+
6849 // | | | |
6850 // | w7 | w8 | w9 |
6851 // +----+----+----+
6852
6853 for (int j = 0; j < height; j++)
6854 {
6855 src_temp = src;
6856 dst_temp = dst;
6857
6858 prevline = (j > 0) ? -width : 0;
6859 nextline = (j < height - 1) ? width : 0;
6860
6861 for (int i = 0; i < width; i++)
6862 {
6863 w[2] = *(src + prevline);
6864 w[5] = *src;
6865 w[8] = *(src + nextline);
6866
6867 if (i>0)
6868 {
6869 w[1] = *(src + prevline - 1);
6870 w[4] = *(src - 1);
6871 w[7] = *(src + nextline - 1);
6872 } else {
6873 w[1] = w[2];
6874 w[4] = w[5];
6875 w[7] = w[8];
6876 }
6877
6878 if (i < width - 1)
6879 {
6880 w[3] = *(src + prevline + 1);
6881 w[6] = *(src + 1);
6882 w[9] = *(src + nextline + 1);
6883 } else {
6884 w[3] = w[2];
6885 w[6] = w[5];
6886 w[9] = w[8];
6887 }
6888
6889 int pattern = 0;
6890 int flag = 1;
6891
6892 YUV1 = yuv_palette[w[5]];
6893
6894 for (int k=1; k<=9; k++)
6895 {
6896 if (k==5) continue;
6897
6898 if ( w[k] != w[5] )
6899 {
6900 YUV2 = yuv_palette[w[k]];
6901 if ( ( abs((YUV1 & Ymask) - (YUV2 & Ymask)) > trY ) ||
6902 ( abs((YUV1 & Umask) - (YUV2 & Umask)) > trU ) ||
6903 ( abs((YUV1 & Vmask) - (YUV2 & Vmask)) > trV ) )
6904 pattern |= flag;
6905 }
6906 flag <<= 1;
6907 }
6908
6909 for (int k=1; k<=9; k++)
6910 c[k] = rgb_palette[w[k]] & 0xfcfcfcfc; // hq4x has a nasty inability to accept more than 6 bits for each component
6911
6912 switch (pattern)
6913 {
6914 case 0:
6915 case 1:
6916 case 4:
6917 case 32:
6918 case 128:
6919 case 5:
6920 case 132:
6921 case 160:
6922 case 33:
6923 case 129:
6924 case 36:
6925 case 133:
6926 case 164:
6927 case 161:
6928 case 37:
6929 case 165:
6930 {
6931 PIXEL4_00_20
6932 PIXEL4_01_60
6933 PIXEL4_02_60
6934 PIXEL4_03_20
6935 PIXEL4_10_60
6936 PIXEL4_11_70
6937 PIXEL4_12_70
6938 PIXEL4_13_60
6939 PIXEL4_20_60
6940 PIXEL4_21_70
6941 PIXEL4_22_70
6942 PIXEL4_23_60
6943 PIXEL4_30_20
6944 PIXEL4_31_60
6945 PIXEL4_32_60
6946 PIXEL4_33_20
6947 break;
6948 }
6949 case 2:
6950 case 34:
6951 case 130:
6952 case 162:
6953 {
6954 PIXEL4_00_80
6955 PIXEL4_01_10
6956 PIXEL4_02_10
6957 PIXEL4_03_80
6958 PIXEL4_10_61
6959 PIXEL4_11_30
6960 PIXEL4_12_30
6961 PIXEL4_13_61
6962 PIXEL4_20_60
6963 PIXEL4_21_70
6964 PIXEL4_22_70
6965 PIXEL4_23_60
6966 PIXEL4_30_20
6967 PIXEL4_31_60
6968 PIXEL4_32_60
6969 PIXEL4_33_20
6970 break;
6971 }
6972 case 16:
6973 case 17:
6974 case 48:
6975 case 49:
6976 {
6977 PIXEL4_00_20
6978 PIXEL4_01_60
6979 PIXEL4_02_61
6980 PIXEL4_03_80
6981 PIXEL4_10_60
6982 PIXEL4_11_70
6983 PIXEL4_12_30
6984 PIXEL4_13_10
6985 PIXEL4_20_60
6986 PIXEL4_21_70
6987 PIXEL4_22_30
6988 PIXEL4_23_10
6989 PIXEL4_30_20
6990 PIXEL4_31_60
6991 PIXEL4_32_61
6992 PIXEL4_33_80
6993 break;
6994 }
6995 case 64:
6996 case 65:
6997 case 68:
6998 case 69:
6999 {
7000 PIXEL4_00_20
7001 PIXEL4_01_60
7002 PIXEL4_02_60
7003 PIXEL4_03_20
7004 PIXEL4_10_60
7005 PIXEL4_11_70
7006 PIXEL4_12_70
7007 PIXEL4_13_60
7008 PIXEL4_20_61
7009 PIXEL4_21_30
7010 PIXEL4_22_30
7011 PIXEL4_23_61
7012 PIXEL4_30_80
7013 PIXEL4_31_10
7014 PIXEL4_32_10
7015 PIXEL4_33_80
7016 break;
7017 }
7018 case 8:
7019 case 12:
7020 case 136:
7021 case 140:
7022 {
7023 PIXEL4_00_80
7024 PIXEL4_01_61
7025 PIXEL4_02_60
7026 PIXEL4_03_20
7027 PIXEL4_10_10
7028 PIXEL4_11_30
7029 PIXEL4_12_70
7030 PIXEL4_13_60
7031 PIXEL4_20_10
7032 PIXEL4_21_30
7033 PIXEL4_22_70
7034 PIXEL4_23_60
7035 PIXEL4_30_80
7036 PIXEL4_31_61
7037 PIXEL4_32_60
7038 PIXEL4_33_20
7039 break;
7040 }
7041 case 3:
7042 case 35:
7043 case 131:
7044 case 163:
7045 {
7046 PIXEL4_00_81
7047 PIXEL4_01_31
7048 PIXEL4_02_10
7049 PIXEL4_03_80
7050 PIXEL4_10_81
7051 PIXEL4_11_31
7052 PIXEL4_12_30
7053 PIXEL4_13_61
7054 PIXEL4_20_60
7055 PIXEL4_21_70
7056 PIXEL4_22_70
7057 PIXEL4_23_60
7058 PIXEL4_30_20
7059 PIXEL4_31_60
7060 PIXEL4_32_60
7061 PIXEL4_33_20
7062 break;
7063 }
7064 case 6:
7065 case 38:
7066 case 134:
7067 case 166:
7068 {
7069 PIXEL4_00_80
7070 PIXEL4_01_10
7071 PIXEL4_02_32
7072 PIXEL4_03_82
7073 PIXEL4_10_61
7074 PIXEL4_11_30
7075 PIXEL4_12_32
7076 PIXEL4_13_82
7077 PIXEL4_20_60
7078 PIXEL4_21_70
7079 PIXEL4_22_70
7080 PIXEL4_23_60
7081 PIXEL4_30_20
7082 PIXEL4_31_60
7083 PIXEL4_32_60
7084 PIXEL4_33_20
7085 break;
7086 }
7087 case 20:
7088 case 21:
7089 case 52:
7090 case 53:
7091 {
7092 PIXEL4_00_20
7093 PIXEL4_01_60
7094 PIXEL4_02_81
7095 PIXEL4_03_81
7096 PIXEL4_10_60
7097 PIXEL4_11_70
7098 PIXEL4_12_31
7099 PIXEL4_13_31
7100 PIXEL4_20_60
7101 PIXEL4_21_70
7102 PIXEL4_22_30
7103 PIXEL4_23_10
7104 PIXEL4_30_20
7105 PIXEL4_31_60
7106 PIXEL4_32_61
7107 PIXEL4_33_80
7108 break;
7109 }
7110 case 144:
7111 case 145:
7112 case 176:
7113 case 177:
7114 {
7115 PIXEL4_00_20
7116 PIXEL4_01_60
7117 PIXEL4_02_61
7118 PIXEL4_03_80
7119 PIXEL4_10_60
7120 PIXEL4_11_70
7121 PIXEL4_12_30
7122 PIXEL4_13_10
7123 PIXEL4_20_60
7124 PIXEL4_21_70
7125 PIXEL4_22_32
7126 PIXEL4_23_32
7127 PIXEL4_30_20
7128 PIXEL4_31_60
7129 PIXEL4_32_82
7130 PIXEL4_33_82
7131 break;
7132 }
7133 case 192:
7134 case 193:
7135 case 196:
7136 case 197:
7137 {
7138 PIXEL4_00_20
7139 PIXEL4_01_60
7140 PIXEL4_02_60
7141 PIXEL4_03_20
7142 PIXEL4_10_60
7143 PIXEL4_11_70
7144 PIXEL4_12_70
7145 PIXEL4_13_60
7146 PIXEL4_20_61
7147 PIXEL4_21_30
7148 PIXEL4_22_31
7149 PIXEL4_23_81
7150 PIXEL4_30_80
7151 PIXEL4_31_10
7152 PIXEL4_32_31
7153 PIXEL4_33_81
7154 break;
7155 }
7156 case 96:
7157 case 97:
7158 case 100:
7159 case 101:
7160 {
7161 PIXEL4_00_20
7162 PIXEL4_01_60
7163 PIXEL4_02_60
7164 PIXEL4_03_20
7165 PIXEL4_10_60
7166 PIXEL4_11_70
7167 PIXEL4_12_70
7168 PIXEL4_13_60
7169 PIXEL4_20_82
7170 PIXEL4_21_32
7171 PIXEL4_22_30
7172 PIXEL4_23_61
7173 PIXEL4_30_82
7174 PIXEL4_31_32
7175 PIXEL4_32_10
7176 PIXEL4_33_80
7177 break;
7178 }
7179 case 40:
7180 case 44:
7181 case 168:
7182 case 172:
7183 {
7184 PIXEL4_00_80
7185 PIXEL4_01_61
7186 PIXEL4_02_60
7187 PIXEL4_03_20
7188 PIXEL4_10_10
7189 PIXEL4_11_30
7190 PIXEL4_12_70
7191 PIXEL4_13_60
7192 PIXEL4_20_31
7193 PIXEL4_21_31
7194 PIXEL4_22_70
7195 PIXEL4_23_60
7196 PIXEL4_30_81
7197 PIXEL4_31_81
7198 PIXEL4_32_60
7199 PIXEL4_33_20
7200 break;
7201 }
7202 case 9:
7203 case 13:
7204 case 137:
7205 case 141:
7206 {
7207 PIXEL4_00_82
7208 PIXEL4_01_82
7209 PIXEL4_02_60
7210 PIXEL4_03_20
7211 PIXEL4_10_32
7212 PIXEL4_11_32
7213 PIXEL4_12_70
7214 PIXEL4_13_60
7215 PIXEL4_20_10
7216 PIXEL4_21_30
7217 PIXEL4_22_70
7218 PIXEL4_23_60
7219 PIXEL4_30_80
7220 PIXEL4_31_61
7221 PIXEL4_32_60
7222 PIXEL4_33_20
7223 break;
7224 }
7225 case 18:
7226 case 50:
7227 {
7228 PIXEL4_00_80
7229 PIXEL4_01_10
7230 if (diff(w[2], w[6]))
7231 {
7232 PIXEL4_02_10
7233 PIXEL4_03_80
7234 PIXEL4_12_30
7235 PIXEL4_13_10
7236 }
7237 else
7238 {
7239 PIXEL4_02_50
7240 PIXEL4_03_50
7241 PIXEL4_12_0
7242 PIXEL4_13_50
7243 }
7244 PIXEL4_10_61
7245 PIXEL4_11_30
7246 PIXEL4_20_60
7247 PIXEL4_21_70
7248 PIXEL4_22_30
7249 PIXEL4_23_10
7250 PIXEL4_30_20
7251 PIXEL4_31_60
7252 PIXEL4_32_61
7253 PIXEL4_33_80
7254 break;
7255 }
7256 case 80:
7257 case 81:
7258 {
7259 PIXEL4_00_20
7260 PIXEL4_01_60
7261 PIXEL4_02_61
7262 PIXEL4_03_80
7263 PIXEL4_10_60
7264 PIXEL4_11_70
7265 PIXEL4_12_30
7266 PIXEL4_13_10
7267 PIXEL4_20_61
7268 PIXEL4_21_30
7269 if (diff(w[6], w[8]))
7270 {
7271 PIXEL4_22_30
7272 PIXEL4_23_10
7273 PIXEL4_32_10
7274 PIXEL4_33_80
7275 }
7276 else
7277 {
7278 PIXEL4_22_0
7279 PIXEL4_23_50
7280 PIXEL4_32_50
7281 PIXEL4_33_50
7282 }
7283 PIXEL4_30_80
7284 PIXEL4_31_10
7285 break;
7286 }
7287 case 72:
7288 case 76:
7289 {
7290 PIXEL4_00_80
7291 PIXEL4_01_61
7292 PIXEL4_02_60
7293 PIXEL4_03_20
7294 PIXEL4_10_10
7295 PIXEL4_11_30
7296 PIXEL4_12_70
7297 PIXEL4_13_60
7298 if (diff(w[8], w[4]))
7299 {
7300 PIXEL4_20_10
7301 PIXEL4_21_30
7302 PIXEL4_30_80
7303 PIXEL4_31_10
7304 }
7305 else
7306 {
7307 PIXEL4_20_50
7308 PIXEL4_21_0
7309 PIXEL4_30_50
7310 PIXEL4_31_50
7311 }
7312 PIXEL4_22_30
7313 PIXEL4_23_61
7314 PIXEL4_32_10
7315 PIXEL4_33_80
7316 break;
7317 }
7318 case 10:
7319 case 138:
7320 {
7321 if (diff(w[4], w[2]))
7322 {
7323 PIXEL4_00_80
7324 PIXEL4_01_10
7325 PIXEL4_10_10
7326 PIXEL4_11_30
7327 }
7328 else
7329 {
7330 PIXEL4_00_50
7331 PIXEL4_01_50
7332 PIXEL4_10_50
7333 PIXEL4_11_0
7334 }
7335 PIXEL4_02_10
7336 PIXEL4_03_80
7337 PIXEL4_12_30
7338 PIXEL4_13_61
7339 PIXEL4_20_10
7340 PIXEL4_21_30
7341 PIXEL4_22_70
7342 PIXEL4_23_60
7343 PIXEL4_30_80
7344 PIXEL4_31_61
7345 PIXEL4_32_60
7346 PIXEL4_33_20
7347 break;
7348 }
7349 case 66:
7350 {
7351 PIXEL4_00_80
7352 PIXEL4_01_10
7353 PIXEL4_02_10
7354 PIXEL4_03_80
7355 PIXEL4_10_61
7356 PIXEL4_11_30
7357 PIXEL4_12_30
7358 PIXEL4_13_61
7359 PIXEL4_20_61
7360 PIXEL4_21_30
7361 PIXEL4_22_30
7362 PIXEL4_23_61
7363 PIXEL4_30_80
7364 PIXEL4_31_10
7365 PIXEL4_32_10
7366 PIXEL4_33_80
7367 break;
7368 }
7369 case 24:
7370 {
7371 PIXEL4_00_80
7372 PIXEL4_01_61
7373 PIXEL4_02_61
7374 PIXEL4_03_80
7375 PIXEL4_10_10
7376 PIXEL4_11_30
7377 PIXEL4_12_30
7378 PIXEL4_13_10
7379 PIXEL4_20_10
7380 PIXEL4_21_30
7381 PIXEL4_22_30
7382 PIXEL4_23_10
7383 PIXEL4_30_80
7384 PIXEL4_31_61
7385 PIXEL4_32_61
7386 PIXEL4_33_80
7387 break;
7388 }
7389 case 7:
7390 case 39:
7391 case 135:
7392 {
7393 PIXEL4_00_81
7394 PIXEL4_01_31
7395 PIXEL4_02_32
7396 PIXEL4_03_82
7397 PIXEL4_10_81
7398 PIXEL4_11_31
7399 PIXEL4_12_32
7400 PIXEL4_13_82
7401 PIXEL4_20_60
7402 PIXEL4_21_70
7403 PIXEL4_22_70
7404 PIXEL4_23_60
7405 PIXEL4_30_20
7406 PIXEL4_31_60
7407 PIXEL4_32_60
7408 PIXEL4_33_20
7409 break;
7410 }
7411 case 148:
7412 case 149:
7413 case 180:
7414 {
7415 PIXEL4_00_20
7416 PIXEL4_01_60
7417 PIXEL4_02_81
7418 PIXEL4_03_81
7419 PIXEL4_10_60
7420 PIXEL4_11_70
7421 PIXEL4_12_31
7422 PIXEL4_13_31
7423 PIXEL4_20_60
7424 PIXEL4_21_70
7425 PIXEL4_22_32
7426 PIXEL4_23_32
7427 PIXEL4_30_20
7428 PIXEL4_31_60
7429 PIXEL4_32_82
7430 PIXEL4_33_82
7431 break;
7432 }
7433 case 224:
7434 case 228:
7435 case 225:
7436 {
7437 PIXEL4_00_20
7438 PIXEL4_01_60
7439 PIXEL4_02_60
7440 PIXEL4_03_20
7441 PIXEL4_10_60
7442 PIXEL4_11_70
7443 PIXEL4_12_70
7444 PIXEL4_13_60
7445 PIXEL4_20_82
7446 PIXEL4_21_32
7447 PIXEL4_22_31
7448 PIXEL4_23_81
7449 PIXEL4_30_82
7450 PIXEL4_31_32
7451 PIXEL4_32_31
7452 PIXEL4_33_81
7453 break;
7454 }
7455 case 41:
7456 case 169:
7457 case 45:
7458 {
7459 PIXEL4_00_82
7460 PIXEL4_01_82
7461 PIXEL4_02_60
7462 PIXEL4_03_20
7463 PIXEL4_10_32
7464 PIXEL4_11_32
7465 PIXEL4_12_70
7466 PIXEL4_13_60
7467 PIXEL4_20_31
7468 PIXEL4_21_31
7469 PIXEL4_22_70
7470 PIXEL4_23_60
7471 PIXEL4_30_81
7472 PIXEL4_31_81
7473 PIXEL4_32_60
7474 PIXEL4_33_20
7475 break;
7476 }
7477 case 22:
7478 case 54:
7479 {
7480 PIXEL4_00_80
7481 PIXEL4_01_10
7482 if (diff(w[2], w[6]))
7483 {
7484 PIXEL4_02_0
7485 PIXEL4_03_0
7486 PIXEL4_13_0
7487 }
7488 else
7489 {
7490 PIXEL4_02_50
7491 PIXEL4_03_50
7492 PIXEL4_13_50
7493 }
7494 PIXEL4_10_61
7495 PIXEL4_11_30
7496 PIXEL4_12_0
7497 PIXEL4_20_60
7498 PIXEL4_21_70
7499 PIXEL4_22_30
7500 PIXEL4_23_10
7501 PIXEL4_30_20
7502 PIXEL4_31_60
7503 PIXEL4_32_61
7504 PIXEL4_33_80
7505 break;
7506 }
7507 case 208:
7508 case 209:
7509 {
7510 PIXEL4_00_20
7511 PIXEL4_01_60
7512 PIXEL4_02_61
7513 PIXEL4_03_80
7514 PIXEL4_10_60
7515 PIXEL4_11_70
7516 PIXEL4_12_30
7517 PIXEL4_13_10
7518 PIXEL4_20_61
7519 PIXEL4_21_30
7520 PIXEL4_22_0
7521 if (diff(w[6], w[8]))
7522 {
7523 PIXEL4_23_0
7524 PIXEL4_32_0
7525 PIXEL4_33_0
7526 }
7527 else
7528 {
7529 PIXEL4_23_50
7530 PIXEL4_32_50
7531 PIXEL4_33_50
7532 }
7533 PIXEL4_30_80
7534 PIXEL4_31_10
7535 break;
7536 }
7537 case 104:
7538 case 108:
7539 {
7540 PIXEL4_00_80
7541 PIXEL4_01_61
7542 PIXEL4_02_60
7543 PIXEL4_03_20
7544 PIXEL4_10_10
7545 PIXEL4_11_30
7546 PIXEL4_12_70
7547 PIXEL4_13_60
7548 if (diff(w[8], w[4]))
7549 {
7550 PIXEL4_20_0
7551 PIXEL4_30_0
7552 PIXEL4_31_0
7553 }
7554 else
7555 {
7556 PIXEL4_20_50
7557 PIXEL4_30_50
7558 PIXEL4_31_50
7559 }
7560 PIXEL4_21_0
7561 PIXEL4_22_30
7562 PIXEL4_23_61
7563 PIXEL4_32_10
7564 PIXEL4_33_80
7565 break;
7566 }
7567 case 11:
7568 case 139:
7569 {
7570 if (diff(w[4], w[2]))
7571 {
7572 PIXEL4_00_0
7573 PIXEL4_01_0
7574 PIXEL4_10_0
7575 }
7576 else
7577 {
7578 PIXEL4_00_50
7579 PIXEL4_01_50
7580 PIXEL4_10_50
7581 }
7582 PIXEL4_02_10
7583 PIXEL4_03_80
7584 PIXEL4_11_0
7585 PIXEL4_12_30
7586 PIXEL4_13_61
7587 PIXEL4_20_10
7588 PIXEL4_21_30
7589 PIXEL4_22_70
7590 PIXEL4_23_60
7591 PIXEL4_30_80
7592 PIXEL4_31_61
7593 PIXEL4_32_60
7594 PIXEL4_33_20
7595 break;
7596 }
7597 case 19:
7598 case 51:
7599 {
7600 if (diff(w[2], w[6]))
7601 {
7602 PIXEL4_00_81
7603 PIXEL4_01_31
7604 PIXEL4_02_10
7605 PIXEL4_03_80
7606 PIXEL4_12_30
7607 PIXEL4_13_10
7608 }
7609 else
7610 {
7611 PIXEL4_00_12
7612 PIXEL4_01_14
7613 PIXEL4_02_83
7614 PIXEL4_03_50
7615 PIXEL4_12_70
7616 PIXEL4_13_21
7617 }
7618 PIXEL4_10_81
7619 PIXEL4_11_31
7620 PIXEL4_20_60
7621 PIXEL4_21_70
7622 PIXEL4_22_30
7623 PIXEL4_23_10
7624 PIXEL4_30_20
7625 PIXEL4_31_60
7626 PIXEL4_32_61
7627 PIXEL4_33_80
7628 break;
7629 }
7630 case 146:
7631 case 178:
7632 {
7633 PIXEL4_00_80
7634 PIXEL4_01_10
7635 if (diff(w[2], w[6]))
7636 {
7637 PIXEL4_02_10
7638 PIXEL4_03_80
7639 PIXEL4_12_30
7640 PIXEL4_13_10
7641 PIXEL4_23_32
7642 PIXEL4_33_82
7643 }
7644 else
7645 {
7646 PIXEL4_02_21
7647 PIXEL4_03_50
7648 PIXEL4_12_70
7649 PIXEL4_13_83
7650 PIXEL4_23_13
7651 PIXEL4_33_11
7652 }
7653 PIXEL4_10_61
7654 PIXEL4_11_30
7655 PIXEL4_20_60
7656 PIXEL4_21_70
7657 PIXEL4_22_32
7658 PIXEL4_30_20
7659 PIXEL4_31_60
7660 PIXEL4_32_82
7661 break;
7662 }
7663 case 84:
7664 case 85:
7665 {
7666 PIXEL4_00_20
7667 PIXEL4_01_60
7668 PIXEL4_02_81
7669 if (diff(w[6], w[8]))
7670 {
7671 PIXEL4_03_81
7672 PIXEL4_13_31
7673 PIXEL4_22_30
7674 PIXEL4_23_10
7675 PIXEL4_32_10
7676 PIXEL4_33_80
7677 }
7678 else
7679 {
7680 PIXEL4_03_12
7681 PIXEL4_13_14
7682 PIXEL4_22_70
7683 PIXEL4_23_83
7684 PIXEL4_32_21
7685 PIXEL4_33_50
7686 }
7687 PIXEL4_10_60
7688 PIXEL4_11_70
7689 PIXEL4_12_31
7690 PIXEL4_20_61
7691 PIXEL4_21_30
7692 PIXEL4_30_80
7693 PIXEL4_31_10
7694 break;
7695 }
7696 case 112:
7697 case 113:
7698 {
7699 PIXEL4_00_20
7700 PIXEL4_01_60
7701 PIXEL4_02_61
7702 PIXEL4_03_80
7703 PIXEL4_10_60
7704 PIXEL4_11_70
7705 PIXEL4_12_30
7706 PIXEL4_13_10
7707 PIXEL4_20_82
7708 PIXEL4_21_32
7709 if (diff(w[6], w[8]))
7710 {
7711 PIXEL4_22_30
7712 PIXEL4_23_10
7713 PIXEL4_30_82
7714 PIXEL4_31_32
7715 PIXEL4_32_10
7716 PIXEL4_33_80
7717 }
7718 else
7719 {
7720 PIXEL4_22_70
7721 PIXEL4_23_21
7722 PIXEL4_30_11
7723 PIXEL4_31_13
7724 PIXEL4_32_83
7725 PIXEL4_33_50
7726 }
7727 break;
7728 }
7729 case 200:
7730 case 204:
7731 {
7732 PIXEL4_00_80
7733 PIXEL4_01_61
7734 PIXEL4_02_60
7735 PIXEL4_03_20
7736 PIXEL4_10_10
7737 PIXEL4_11_30
7738 PIXEL4_12_70
7739 PIXEL4_13_60
7740 if (diff(w[8], w[4]))
7741 {
7742 PIXEL4_20_10
7743 PIXEL4_21_30
7744 PIXEL4_30_80
7745 PIXEL4_31_10
7746 PIXEL4_32_31
7747 PIXEL4_33_81
7748 }
7749 else
7750 {
7751 PIXEL4_20_21
7752 PIXEL4_21_70
7753 PIXEL4_30_50
7754 PIXEL4_31_83
7755 PIXEL4_32_14
7756 PIXEL4_33_12
7757 }
7758 PIXEL4_22_31
7759 PIXEL4_23_81
7760 break;
7761 }
7762 case 73:
7763 case 77:
7764 {
7765 if (diff(w[8], w[4]))
7766 {
7767 PIXEL4_00_82
7768 PIXEL4_10_32
7769 PIXEL4_20_10
7770 PIXEL4_21_30
7771 PIXEL4_30_80
7772 PIXEL4_31_10
7773 }
7774 else
7775 {
7776 PIXEL4_00_11
7777 PIXEL4_10_13
7778 PIXEL4_20_83
7779 PIXEL4_21_70
7780 PIXEL4_30_50
7781 PIXEL4_31_21
7782 }
7783 PIXEL4_01_82
7784 PIXEL4_02_60
7785 PIXEL4_03_20
7786 PIXEL4_11_32
7787 PIXEL4_12_70
7788 PIXEL4_13_60
7789 PIXEL4_22_30
7790 PIXEL4_23_61
7791 PIXEL4_32_10
7792 PIXEL4_33_80
7793 break;
7794 }
7795 case 42:
7796 case 170:
7797 {
7798 if (diff(w[4], w[2]))
7799 {
7800 PIXEL4_00_80
7801 PIXEL4_01_10
7802 PIXEL4_10_10
7803 PIXEL4_11_30
7804 PIXEL4_20_31
7805 PIXEL4_30_81
7806 }
7807 else
7808 {
7809 PIXEL4_00_50
7810 PIXEL4_01_21
7811 PIXEL4_10_83
7812 PIXEL4_11_70
7813 PIXEL4_20_14
7814 PIXEL4_30_12
7815 }
7816 PIXEL4_02_10
7817 PIXEL4_03_80
7818 PIXEL4_12_30
7819 PIXEL4_13_61
7820 PIXEL4_21_31
7821 PIXEL4_22_70
7822 PIXEL4_23_60
7823 PIXEL4_31_81
7824 PIXEL4_32_60
7825 PIXEL4_33_20
7826 break;
7827 }
7828 case 14:
7829 case 142:
7830 {
7831 if (diff(w[4], w[2]))
7832 {
7833 PIXEL4_00_80
7834 PIXEL4_01_10
7835 PIXEL4_02_32
7836 PIXEL4_03_82
7837 PIXEL4_10_10
7838 PIXEL4_11_30
7839 }
7840 else
7841 {
7842 PIXEL4_00_50
7843 PIXEL4_01_83
7844 PIXEL4_02_13
7845 PIXEL4_03_11
7846 PIXEL4_10_21
7847 PIXEL4_11_70
7848 }
7849 PIXEL4_12_32
7850 PIXEL4_13_82
7851 PIXEL4_20_10
7852 PIXEL4_21_30
7853 PIXEL4_22_70
7854 PIXEL4_23_60
7855 PIXEL4_30_80
7856 PIXEL4_31_61
7857 PIXEL4_32_60
7858 PIXEL4_33_20
7859 break;
7860 }
7861 case 67:
7862 {
7863 PIXEL4_00_81
7864 PIXEL4_01_31
7865 PIXEL4_02_10
7866 PIXEL4_03_80
7867 PIXEL4_10_81
7868 PIXEL4_11_31
7869 PIXEL4_12_30
7870 PIXEL4_13_61
7871 PIXEL4_20_61
7872 PIXEL4_21_30
7873 PIXEL4_22_30
7874 PIXEL4_23_61
7875 PIXEL4_30_80
7876 PIXEL4_31_10
7877 PIXEL4_32_10
7878 PIXEL4_33_80
7879 break;
7880 }
7881 case 70:
7882 {
7883 PIXEL4_00_80
7884 PIXEL4_01_10
7885 PIXEL4_02_32
7886 PIXEL4_03_82
7887 PIXEL4_10_61
7888 PIXEL4_11_30
7889 PIXEL4_12_32
7890 PIXEL4_13_82
7891 PIXEL4_20_61
7892 PIXEL4_21_30
7893 PIXEL4_22_30
7894 PIXEL4_23_61
7895 PIXEL4_30_80
7896 PIXEL4_31_10
7897 PIXEL4_32_10
7898 PIXEL4_33_80
7899 break;
7900 }
7901 case 28:
7902 {
7903 PIXEL4_00_80
7904 PIXEL4_01_61
7905 PIXEL4_02_81
7906 PIXEL4_03_81
7907 PIXEL4_10_10
7908 PIXEL4_11_30
7909 PIXEL4_12_31
7910 PIXEL4_13_31
7911 PIXEL4_20_10
7912 PIXEL4_21_30
7913 PIXEL4_22_30
7914 PIXEL4_23_10
7915 PIXEL4_30_80
7916 PIXEL4_31_61
7917 PIXEL4_32_61
7918 PIXEL4_33_80
7919 break;
7920 }
7921 case 152:
7922 {
7923 PIXEL4_00_80
7924 PIXEL4_01_61
7925 PIXEL4_02_61
7926 PIXEL4_03_80
7927 PIXEL4_10_10
7928 PIXEL4_11_30
7929 PIXEL4_12_30
7930 PIXEL4_13_10
7931 PIXEL4_20_10
7932 PIXEL4_21_30
7933 PIXEL4_22_32
7934 PIXEL4_23_32
7935 PIXEL4_30_80
7936 PIXEL4_31_61
7937 PIXEL4_32_82
7938 PIXEL4_33_82
7939 break;
7940 }
7941 case 194:
7942 {
7943 PIXEL4_00_80
7944 PIXEL4_01_10
7945 PIXEL4_02_10
7946 PIXEL4_03_80
7947 PIXEL4_10_61
7948 PIXEL4_11_30
7949 PIXEL4_12_30
7950 PIXEL4_13_61
7951 PIXEL4_20_61
7952 PIXEL4_21_30
7953 PIXEL4_22_31
7954 PIXEL4_23_81
7955 PIXEL4_30_80
7956 PIXEL4_31_10
7957 PIXEL4_32_31
7958 PIXEL4_33_81
7959 break;
7960 }
7961 case 98:
7962 {
7963 PIXEL4_00_80
7964 PIXEL4_01_10
7965 PIXEL4_02_10
7966 PIXEL4_03_80
7967 PIXEL4_10_61
7968 PIXEL4_11_30
7969 PIXEL4_12_30
7970 PIXEL4_13_61
7971 PIXEL4_20_82
7972 PIXEL4_21_32
7973 PIXEL4_22_30
7974 PIXEL4_23_61
7975 PIXEL4_30_82
7976 PIXEL4_31_32
7977 PIXEL4_32_10
7978 PIXEL4_33_80
7979 break;
7980 }
7981 case 56:
7982 {
7983 PIXEL4_00_80
7984 PIXEL4_01_61
7985 PIXEL4_02_61
7986 PIXEL4_03_80
7987 PIXEL4_10_10
7988 PIXEL4_11_30
7989 PIXEL4_12_30
7990 PIXEL4_13_10
7991 PIXEL4_20_31
7992 PIXEL4_21_31
7993 PIXEL4_22_30
7994 PIXEL4_23_10
7995 PIXEL4_30_81
7996 PIXEL4_31_81
7997 PIXEL4_32_61
7998 PIXEL4_33_80
7999 break;
8000 }
8001 case 25:
8002 {
8003 PIXEL4_00_82
8004 PIXEL4_01_82
8005 PIXEL4_02_61
8006 PIXEL4_03_80
8007 PIXEL4_10_32
8008 PIXEL4_11_32
8009 PIXEL4_12_30
8010 PIXEL4_13_10
8011 PIXEL4_20_10
8012 PIXEL4_21_30
8013 PIXEL4_22_30
8014 PIXEL4_23_10
8015 PIXEL4_30_80
8016 PIXEL4_31_61
8017 PIXEL4_32_61
8018 PIXEL4_33_80
8019 break;
8020 }
8021 case 26:
8022 case 31:
8023 {
8024 if (diff(w[4], w[2]))
8025 {
8026 PIXEL4_00_0
8027 PIXEL4_01_0
8028 PIXEL4_10_0
8029 }
8030 else
8031 {
8032 PIXEL4_00_50
8033 PIXEL4_01_50
8034 PIXEL4_10_50
8035 }
8036 if (diff(w[2], w[6]))
8037 {
8038 PIXEL4_02_0
8039 PIXEL4_03_0
8040 PIXEL4_13_0
8041 }
8042 else
8043 {
8044 PIXEL4_02_50
8045 PIXEL4_03_50
8046 PIXEL4_13_50
8047 }
8048 PIXEL4_11_0
8049 PIXEL4_12_0
8050 PIXEL4_20_10
8051 PIXEL4_21_30
8052 PIXEL4_22_30
8053 PIXEL4_23_10
8054 PIXEL4_30_80
8055 PIXEL4_31_61
8056 PIXEL4_32_61
8057 PIXEL4_33_80
8058 break;
8059 }
8060 case 82:
8061 case 214:
8062 {
8063 PIXEL4_00_80
8064 PIXEL4_01_10
8065 if (diff(w[2], w[6]))
8066 {
8067 PIXEL4_02_0
8068 PIXEL4_03_0
8069 PIXEL4_13_0
8070 }
8071 else
8072 {
8073 PIXEL4_02_50
8074 PIXEL4_03_50
8075 PIXEL4_13_50
8076 }
8077 PIXEL4_10_61
8078 PIXEL4_11_30
8079 PIXEL4_12_0
8080 PIXEL4_20_61
8081 PIXEL4_21_30
8082 PIXEL4_22_0
8083 if (diff(w[6], w[8]))
8084 {
8085 PIXEL4_23_0
8086 PIXEL4_32_0
8087 PIXEL4_33_0
8088 }
8089 else
8090 {
8091 PIXEL4_23_50
8092 PIXEL4_32_50
8093 PIXEL4_33_50
8094 }
8095 PIXEL4_30_80
8096 PIXEL4_31_10
8097 break;
8098 }
8099 case 88:
8100 case 248:
8101 {
8102 PIXEL4_00_80
8103 PIXEL4_01_61
8104 PIXEL4_02_61
8105 PIXEL4_03_80
8106 PIXEL4_10_10
8107 PIXEL4_11_30
8108 PIXEL4_12_30
8109 PIXEL4_13_10
8110 if (diff(w[8], w[4]))
8111 {
8112 PIXEL4_20_0
8113 PIXEL4_30_0
8114 PIXEL4_31_0
8115 }
8116 else
8117 {
8118 PIXEL4_20_50
8119 PIXEL4_30_50
8120 PIXEL4_31_50
8121 }
8122 PIXEL4_21_0
8123 PIXEL4_22_0
8124 if (diff(w[6], w[8]))
8125 {
8126 PIXEL4_23_0
8127 PIXEL4_32_0
8128 PIXEL4_33_0
8129 }
8130 else
8131 {
8132 PIXEL4_23_50
8133 PIXEL4_32_50
8134 PIXEL4_33_50
8135 }
8136 break;
8137 }
8138 case 74:
8139 case 107:
8140 {
8141 if (diff(w[4], w[2]))
8142 {
8143 PIXEL4_00_0
8144 PIXEL4_01_0
8145 PIXEL4_10_0
8146 }
8147 else
8148 {
8149 PIXEL4_00_50
8150 PIXEL4_01_50
8151 PIXEL4_10_50
8152 }
8153 PIXEL4_02_10
8154 PIXEL4_03_80
8155 PIXEL4_11_0
8156 PIXEL4_12_30
8157 PIXEL4_13_61
8158 if (diff(w[8], w[4]))
8159 {
8160 PIXEL4_20_0
8161 PIXEL4_30_0
8162 PIXEL4_31_0
8163 }
8164 else
8165 {
8166 PIXEL4_20_50
8167 PIXEL4_30_50
8168 PIXEL4_31_50
8169 }
8170 PIXEL4_21_0
8171 PIXEL4_22_30
8172 PIXEL4_23_61
8173 PIXEL4_32_10
8174 PIXEL4_33_80
8175 break;
8176 }
8177 case 27:
8178 {
8179 if (diff(w[4], w[2]))
8180 {
8181 PIXEL4_00_0
8182 PIXEL4_01_0
8183 PIXEL4_10_0
8184 }
8185 else
8186 {
8187 PIXEL4_00_50
8188 PIXEL4_01_50
8189 PIXEL4_10_50
8190 }
8191 PIXEL4_02_10
8192 PIXEL4_03_80
8193 PIXEL4_11_0
8194 PIXEL4_12_30
8195 PIXEL4_13_10
8196 PIXEL4_20_10
8197 PIXEL4_21_30
8198 PIXEL4_22_30
8199 PIXEL4_23_10
8200 PIXEL4_30_80
8201 PIXEL4_31_61
8202 PIXEL4_32_61
8203 PIXEL4_33_80
8204 break;
8205 }
8206 case 86:
8207 {
8208 PIXEL4_00_80
8209 PIXEL4_01_10
8210 if (diff(w[2], w[6]))
8211 {
8212 PIXEL4_02_0
8213 PIXEL4_03_0
8214 PIXEL4_13_0
8215 }
8216 else
8217 {
8218 PIXEL4_02_50
8219 PIXEL4_03_50
8220 PIXEL4_13_50
8221 }
8222 PIXEL4_10_61
8223 PIXEL4_11_30
8224 PIXEL4_12_0
8225 PIXEL4_20_61
8226 PIXEL4_21_30
8227 PIXEL4_22_30
8228 PIXEL4_23_10
8229 PIXEL4_30_80
8230 PIXEL4_31_10
8231 PIXEL4_32_10
8232 PIXEL4_33_80
8233 break;
8234 }
8235 case 216:
8236 {
8237 PIXEL4_00_80
8238 PIXEL4_01_61
8239 PIXEL4_02_61
8240 PIXEL4_03_80
8241 PIXEL4_10_10
8242 PIXEL4_11_30
8243 PIXEL4_12_30
8244 PIXEL4_13_10
8245 PIXEL4_20_10
8246 PIXEL4_21_30
8247 PIXEL4_22_0
8248 if (diff(w[6], w[8]))
8249 {
8250 PIXEL4_23_0
8251 PIXEL4_32_0
8252 PIXEL4_33_0
8253 }
8254 else
8255 {
8256 PIXEL4_23_50
8257 PIXEL4_32_50
8258 PIXEL4_33_50
8259 }
8260 PIXEL4_30_80
8261 PIXEL4_31_10
8262 break;
8263 }
8264 case 106:
8265 {
8266 PIXEL4_00_80
8267 PIXEL4_01_10
8268 PIXEL4_02_10
8269 PIXEL4_03_80
8270 PIXEL4_10_10
8271 PIXEL4_11_30
8272 PIXEL4_12_30
8273 PIXEL4_13_61
8274 if (diff(w[8], w[4]))
8275 {
8276 PIXEL4_20_0
8277 PIXEL4_30_0
8278 PIXEL4_31_0
8279 }
8280 else
8281 {
8282 PIXEL4_20_50
8283 PIXEL4_30_50
8284 PIXEL4_31_50
8285 }
8286 PIXEL4_21_0
8287 PIXEL4_22_30
8288 PIXEL4_23_61
8289 PIXEL4_32_10
8290 PIXEL4_33_80
8291 break;
8292 }
8293 case 30:
8294 {
8295 PIXEL4_00_80
8296 PIXEL4_01_10
8297 if (diff(w[2], w[6]))
8298 {
8299 PIXEL4_02_0
8300 PIXEL4_03_0
8301 PIXEL4_13_0
8302 }
8303 else
8304 {
8305 PIXEL4_02_50
8306 PIXEL4_03_50
8307 PIXEL4_13_50
8308 }
8309 PIXEL4_10_10
8310 PIXEL4_11_30
8311 PIXEL4_12_0
8312 PIXEL4_20_10
8313 PIXEL4_21_30
8314 PIXEL4_22_30
8315 PIXEL4_23_10
8316 PIXEL4_30_80
8317 PIXEL4_31_61
8318 PIXEL4_32_61
8319 PIXEL4_33_80
8320 break;
8321 }
8322 case 210:
8323 {
8324 PIXEL4_00_80
8325 PIXEL4_01_10
8326 PIXEL4_02_10
8327 PIXEL4_03_80
8328 PIXEL4_10_61
8329 PIXEL4_11_30
8330 PIXEL4_12_30
8331 PIXEL4_13_10
8332 PIXEL4_20_61
8333 PIXEL4_21_30
8334 PIXEL4_22_0
8335 if (diff(w[6], w[8]))
8336 {
8337 PIXEL4_23_0
8338 PIXEL4_32_0
8339 PIXEL4_33_0
8340 }
8341 else
8342 {
8343 PIXEL4_23_50
8344 PIXEL4_32_50
8345 PIXEL4_33_50
8346 }
8347 PIXEL4_30_80
8348 PIXEL4_31_10
8349 break;
8350 }
8351 case 120:
8352 {
8353 PIXEL4_00_80
8354 PIXEL4_01_61
8355 PIXEL4_02_61
8356 PIXEL4_03_80
8357 PIXEL4_10_10
8358 PIXEL4_11_30
8359 PIXEL4_12_30
8360 PIXEL4_13_10
8361 if (diff(w[8], w[4]))
8362 {
8363 PIXEL4_20_0
8364 PIXEL4_30_0
8365 PIXEL4_31_0
8366 }
8367 else
8368 {
8369 PIXEL4_20_50
8370 PIXEL4_30_50
8371 PIXEL4_31_50
8372 }
8373 PIXEL4_21_0
8374 PIXEL4_22_30
8375 PIXEL4_23_10
8376 PIXEL4_32_10
8377 PIXEL4_33_80
8378 break;
8379 }
8380 case 75:
8381 {
8382 if (diff(w[4], w[2]))
8383 {
8384 PIXEL4_00_0
8385 PIXEL4_01_0
8386 PIXEL4_10_0
8387 }
8388 else
8389 {
8390 PIXEL4_00_50
8391 PIXEL4_01_50
8392 PIXEL4_10_50
8393 }
8394 PIXEL4_02_10
8395 PIXEL4_03_80
8396 PIXEL4_11_0
8397 PIXEL4_12_30
8398 PIXEL4_13_61
8399 PIXEL4_20_10
8400 PIXEL4_21_30
8401 PIXEL4_22_30
8402 PIXEL4_23_61
8403 PIXEL4_30_80
8404 PIXEL4_31_10
8405 PIXEL4_32_10
8406 PIXEL4_33_80
8407 break;
8408 }
8409 case 29:
8410 {
8411 PIXEL4_00_82
8412 PIXEL4_01_82
8413 PIXEL4_02_81
8414 PIXEL4_03_81
8415 PIXEL4_10_32
8416 PIXEL4_11_32
8417 PIXEL4_12_31
8418 PIXEL4_13_31
8419 PIXEL4_20_10
8420 PIXEL4_21_30
8421 PIXEL4_22_30
8422 PIXEL4_23_10
8423 PIXEL4_30_80
8424 PIXEL4_31_61
8425 PIXEL4_32_61
8426 PIXEL4_33_80
8427 break;
8428 }
8429 case 198:
8430 {
8431 PIXEL4_00_80
8432 PIXEL4_01_10
8433 PIXEL4_02_32
8434 PIXEL4_03_82
8435 PIXEL4_10_61
8436 PIXEL4_11_30
8437 PIXEL4_12_32
8438 PIXEL4_13_82
8439 PIXEL4_20_61
8440 PIXEL4_21_30
8441 PIXEL4_22_31
8442 PIXEL4_23_81
8443 PIXEL4_30_80
8444 PIXEL4_31_10
8445 PIXEL4_32_31
8446 PIXEL4_33_81
8447 break;
8448 }
8449 case 184:
8450 {
8451 PIXEL4_00_80
8452 PIXEL4_01_61
8453 PIXEL4_02_61
8454 PIXEL4_03_80
8455 PIXEL4_10_10
8456 PIXEL4_11_30
8457 PIXEL4_12_30
8458 PIXEL4_13_10
8459 PIXEL4_20_31
8460 PIXEL4_21_31
8461 PIXEL4_22_32
8462 PIXEL4_23_32
8463 PIXEL4_30_81
8464 PIXEL4_31_81
8465 PIXEL4_32_82
8466 PIXEL4_33_82
8467 break;
8468 }
8469 case 99:
8470 {
8471 PIXEL4_00_81
8472 PIXEL4_01_31
8473 PIXEL4_02_10
8474 PIXEL4_03_80
8475 PIXEL4_10_81
8476 PIXEL4_11_31
8477 PIXEL4_12_30
8478 PIXEL4_13_61
8479 PIXEL4_20_82
8480 PIXEL4_21_32
8481 PIXEL4_22_30
8482 PIXEL4_23_61
8483 PIXEL4_30_82
8484 PIXEL4_31_32
8485 PIXEL4_32_10
8486 PIXEL4_33_80
8487 break;
8488 }
8489 case 57:
8490 {
8491 PIXEL4_00_82
8492 PIXEL4_01_82
8493 PIXEL4_02_61
8494 PIXEL4_03_80
8495 PIXEL4_10_32
8496 PIXEL4_11_32
8497 PIXEL4_12_30
8498 PIXEL4_13_10
8499 PIXEL4_20_31
8500 PIXEL4_21_31
8501 PIXEL4_22_30
8502 PIXEL4_23_10
8503 PIXEL4_30_81
8504 PIXEL4_31_81
8505 PIXEL4_32_61
8506 PIXEL4_33_80
8507 break;
8508 }
8509 case 71:
8510 {
8511 PIXEL4_00_81
8512 PIXEL4_01_31
8513 PIXEL4_02_32
8514 PIXEL4_03_82
8515 PIXEL4_10_81
8516 PIXEL4_11_31
8517 PIXEL4_12_32
8518 PIXEL4_13_82
8519 PIXEL4_20_61
8520 PIXEL4_21_30
8521 PIXEL4_22_30
8522 PIXEL4_23_61
8523 PIXEL4_30_80
8524 PIXEL4_31_10
8525 PIXEL4_32_10
8526 PIXEL4_33_80
8527 break;
8528 }
8529 case 156:
8530 {
8531 PIXEL4_00_80
8532 PIXEL4_01_61
8533 PIXEL4_02_81
8534 PIXEL4_03_81
8535 PIXEL4_10_10
8536 PIXEL4_11_30
8537 PIXEL4_12_31
8538 PIXEL4_13_31
8539 PIXEL4_20_10
8540 PIXEL4_21_30
8541 PIXEL4_22_32
8542 PIXEL4_23_32
8543 PIXEL4_30_80
8544 PIXEL4_31_61
8545 PIXEL4_32_82
8546 PIXEL4_33_82
8547 break;
8548 }
8549 case 226:
8550 {
8551 PIXEL4_00_80
8552 PIXEL4_01_10
8553 PIXEL4_02_10
8554 PIXEL4_03_80
8555 PIXEL4_10_61
8556 PIXEL4_11_30
8557 PIXEL4_12_30
8558 PIXEL4_13_61
8559 PIXEL4_20_82
8560 PIXEL4_21_32
8561 PIXEL4_22_31
8562 PIXEL4_23_81
8563 PIXEL4_30_82
8564 PIXEL4_31_32
8565 PIXEL4_32_31
8566 PIXEL4_33_81
8567 break;
8568 }
8569 case 60:
8570 {
8571 PIXEL4_00_80
8572 PIXEL4_01_61
8573 PIXEL4_02_81
8574 PIXEL4_03_81
8575 PIXEL4_10_10
8576 PIXEL4_11_30
8577 PIXEL4_12_31
8578 PIXEL4_13_31
8579 PIXEL4_20_31
8580 PIXEL4_21_31
8581 PIXEL4_22_30
8582 PIXEL4_23_10
8583 PIXEL4_30_81
8584 PIXEL4_31_81
8585 PIXEL4_32_61
8586 PIXEL4_33_80
8587 break;
8588 }
8589 case 195:
8590 {
8591 PIXEL4_00_81
8592 PIXEL4_01_31
8593 PIXEL4_02_10
8594 PIXEL4_03_80
8595 PIXEL4_10_81
8596 PIXEL4_11_31
8597 PIXEL4_12_30
8598 PIXEL4_13_61
8599 PIXEL4_20_61
8600 PIXEL4_21_30
8601 PIXEL4_22_31
8602 PIXEL4_23_81
8603 PIXEL4_30_80
8604 PIXEL4_31_10
8605 PIXEL4_32_31
8606 PIXEL4_33_81
8607 break;
8608 }
8609 case 102:
8610 {
8611 PIXEL4_00_80
8612 PIXEL4_01_10
8613 PIXEL4_02_32
8614 PIXEL4_03_82
8615 PIXEL4_10_61
8616 PIXEL4_11_30
8617 PIXEL4_12_32
8618 PIXEL4_13_82
8619 PIXEL4_20_82
8620 PIXEL4_21_32
8621 PIXEL4_22_30
8622 PIXEL4_23_61
8623 PIXEL4_30_82
8624 PIXEL4_31_32
8625 PIXEL4_32_10
8626 PIXEL4_33_80
8627 break;
8628 }
8629 case 153:
8630 {
8631 PIXEL4_00_82
8632 PIXEL4_01_82
8633 PIXEL4_02_61
8634 PIXEL4_03_80
8635 PIXEL4_10_32
8636 PIXEL4_11_32
8637 PIXEL4_12_30
8638 PIXEL4_13_10
8639 PIXEL4_20_10
8640 PIXEL4_21_30
8641 PIXEL4_22_32
8642 PIXEL4_23_32
8643 PIXEL4_30_80
8644 PIXEL4_31_61
8645 PIXEL4_32_82
8646 PIXEL4_33_82
8647 break;
8648 }
8649 case 58:
8650 {
8651 if (diff(w[4], w[2]))
8652 {
8653 PIXEL4_00_80
8654 PIXEL4_01_10
8655 PIXEL4_10_10
8656 PIXEL4_11_30
8657 }
8658 else
8659 {
8660 PIXEL4_00_20
8661 PIXEL4_01_12
8662 PIXEL4_10_11
8663 PIXEL4_11_0
8664 }
8665 if (diff(w[2], w[6]))
8666 {
8667 PIXEL4_02_10
8668 PIXEL4_03_80
8669 PIXEL4_12_30
8670 PIXEL4_13_10
8671 }
8672 else
8673 {
8674 PIXEL4_02_11
8675 PIXEL4_03_20
8676 PIXEL4_12_0
8677 PIXEL4_13_12
8678 }
8679 PIXEL4_20_31
8680 PIXEL4_21_31
8681 PIXEL4_22_30
8682 PIXEL4_23_10
8683 PIXEL4_30_81
8684 PIXEL4_31_81
8685 PIXEL4_32_61
8686 PIXEL4_33_80
8687 break;
8688 }
8689 case 83:
8690 {
8691 PIXEL4_00_81
8692 PIXEL4_01_31
8693 if (diff(w[2], w[6]))
8694 {
8695 PIXEL4_02_10
8696 PIXEL4_03_80
8697 PIXEL4_12_30
8698 PIXEL4_13_10
8699 }
8700 else
8701 {
8702 PIXEL4_02_11
8703 PIXEL4_03_20
8704 PIXEL4_12_0
8705 PIXEL4_13_12
8706 }
8707 PIXEL4_10_81
8708 PIXEL4_11_31
8709 PIXEL4_20_61
8710 PIXEL4_21_30
8711 if (diff(w[6], w[8]))
8712 {
8713 PIXEL4_22_30
8714 PIXEL4_23_10
8715 PIXEL4_32_10
8716 PIXEL4_33_80
8717 }
8718 else
8719 {
8720 PIXEL4_22_0
8721 PIXEL4_23_11
8722 PIXEL4_32_12
8723 PIXEL4_33_20
8724 }
8725 PIXEL4_30_80
8726 PIXEL4_31_10
8727 break;
8728 }
8729 case 92:
8730 {
8731 PIXEL4_00_80
8732 PIXEL4_01_61
8733 PIXEL4_02_81
8734 PIXEL4_03_81
8735 PIXEL4_10_10
8736 PIXEL4_11_30
8737 PIXEL4_12_31
8738 PIXEL4_13_31
8739 if (diff(w[8], w[4]))
8740 {
8741 PIXEL4_20_10
8742 PIXEL4_21_30
8743 PIXEL4_30_80
8744 PIXEL4_31_10
8745 }
8746 else
8747 {
8748 PIXEL4_20_12
8749 PIXEL4_21_0
8750 PIXEL4_30_20
8751 PIXEL4_31_11
8752 }
8753 if (diff(w[6], w[8]))
8754 {
8755 PIXEL4_22_30
8756 PIXEL4_23_10
8757 PIXEL4_32_10
8758 PIXEL4_33_80
8759 }
8760 else
8761 {
8762 PIXEL4_22_0
8763 PIXEL4_23_11
8764 PIXEL4_32_12
8765 PIXEL4_33_20
8766 }
8767 break;
8768 }
8769 case 202:
8770 {
8771 if (diff(w[4], w[2]))
8772 {
8773 PIXEL4_00_80
8774 PIXEL4_01_10
8775 PIXEL4_10_10
8776 PIXEL4_11_30
8777 }
8778 else
8779 {
8780 PIXEL4_00_20
8781 PIXEL4_01_12
8782 PIXEL4_10_11
8783 PIXEL4_11_0
8784 }
8785 PIXEL4_02_10
8786 PIXEL4_03_80
8787 PIXEL4_12_30
8788 PIXEL4_13_61
8789 if (diff(w[8], w[4]))
8790 {
8791 PIXEL4_20_10
8792 PIXEL4_21_30
8793 PIXEL4_30_80
8794 PIXEL4_31_10
8795 }
8796 else
8797 {
8798 PIXEL4_20_12
8799 PIXEL4_21_0
8800 PIXEL4_30_20
8801 PIXEL4_31_11
8802 }
8803 PIXEL4_22_31
8804 PIXEL4_23_81
8805 PIXEL4_32_31
8806 PIXEL4_33_81
8807 break;
8808 }
8809 case 78:
8810 {
8811 if (diff(w[4], w[2]))
8812 {
8813 PIXEL4_00_80
8814 PIXEL4_01_10
8815 PIXEL4_10_10
8816 PIXEL4_11_30
8817 }
8818 else
8819 {
8820 PIXEL4_00_20
8821 PIXEL4_01_12
8822 PIXEL4_10_11
8823 PIXEL4_11_0
8824 }
8825 PIXEL4_02_32
8826 PIXEL4_03_82
8827 PIXEL4_12_32
8828 PIXEL4_13_82
8829 if (diff(w[8], w[4]))
8830 {
8831 PIXEL4_20_10
8832 PIXEL4_21_30
8833 PIXEL4_30_80
8834 PIXEL4_31_10
8835 }
8836 else
8837 {
8838 PIXEL4_20_12
8839 PIXEL4_21_0
8840 PIXEL4_30_20
8841 PIXEL4_31_11
8842 }
8843 PIXEL4_22_30
8844 PIXEL4_23_61
8845 PIXEL4_32_10
8846 PIXEL4_33_80
8847 break;
8848 }
8849 case 154:
8850 {
8851 if (diff(w[4], w[2]))
8852 {
8853 PIXEL4_00_80
8854 PIXEL4_01_10
8855 PIXEL4_10_10
8856 PIXEL4_11_30
8857 }
8858 else
8859 {
8860 PIXEL4_00_20
8861 PIXEL4_01_12
8862 PIXEL4_10_11
8863 PIXEL4_11_0
8864 }
8865 if (diff(w[2], w[6]))
8866 {
8867 PIXEL4_02_10
8868 PIXEL4_03_80
8869 PIXEL4_12_30
8870 PIXEL4_13_10
8871 }
8872 else
8873 {
8874 PIXEL4_02_11
8875 PIXEL4_03_20
8876 PIXEL4_12_0
8877 PIXEL4_13_12
8878 }
8879 PIXEL4_20_10
8880 PIXEL4_21_30
8881 PIXEL4_22_32
8882 PIXEL4_23_32
8883 PIXEL4_30_80
8884 PIXEL4_31_61
8885 PIXEL4_32_82
8886 PIXEL4_33_82
8887 break;
8888 }
8889 case 114:
8890 {
8891 PIXEL4_00_80
8892 PIXEL4_01_10
8893 if (diff(w[2], w[6]))
8894 {
8895 PIXEL4_02_10
8896 PIXEL4_03_80
8897 PIXEL4_12_30
8898 PIXEL4_13_10
8899 }
8900 else
8901 {
8902 PIXEL4_02_11
8903 PIXEL4_03_20
8904 PIXEL4_12_0
8905 PIXEL4_13_12
8906 }
8907 PIXEL4_10_61
8908 PIXEL4_11_30
8909 PIXEL4_20_82
8910 PIXEL4_21_32
8911 if (diff(w[6], w[8]))
8912 {
8913 PIXEL4_22_30
8914 PIXEL4_23_10
8915 PIXEL4_32_10
8916 PIXEL4_33_80
8917 }
8918 else
8919 {
8920 PIXEL4_22_0
8921 PIXEL4_23_11
8922 PIXEL4_32_12
8923 PIXEL4_33_20
8924 }
8925 PIXEL4_30_82
8926 PIXEL4_31_32
8927 break;
8928 }
8929 case 89:
8930 {
8931 PIXEL4_00_82
8932 PIXEL4_01_82
8933 PIXEL4_02_61
8934 PIXEL4_03_80
8935 PIXEL4_10_32
8936 PIXEL4_11_32
8937 PIXEL4_12_30
8938 PIXEL4_13_10
8939 if (diff(w[8], w[4]))
8940 {
8941 PIXEL4_20_10
8942 PIXEL4_21_30
8943 PIXEL4_30_80
8944 PIXEL4_31_10
8945 }
8946 else
8947 {
8948 PIXEL4_20_12
8949 PIXEL4_21_0
8950 PIXEL4_30_20
8951 PIXEL4_31_11
8952 }
8953 if (diff(w[6], w[8]))
8954 {
8955 PIXEL4_22_30
8956 PIXEL4_23_10
8957 PIXEL4_32_10
8958 PIXEL4_33_80
8959 }
8960 else
8961 {
8962 PIXEL4_22_0
8963 PIXEL4_23_11
8964 PIXEL4_32_12
8965 PIXEL4_33_20
8966 }
8967 break;
8968 }
8969 case 90:
8970 {
8971 if (diff(w[4], w[2]))
8972 {
8973 PIXEL4_00_80
8974 PIXEL4_01_10
8975 PIXEL4_10_10
8976 PIXEL4_11_30
8977 }
8978 else
8979 {
8980 PIXEL4_00_20
8981 PIXEL4_01_12
8982 PIXEL4_10_11
8983 PIXEL4_11_0
8984 }
8985 if (diff(w[2], w[6]))
8986 {
8987 PIXEL4_02_10
8988 PIXEL4_03_80
8989 PIXEL4_12_30
8990 PIXEL4_13_10
8991 }
8992 else
8993 {
8994 PIXEL4_02_11
8995 PIXEL4_03_20
8996 PIXEL4_12_0
8997 PIXEL4_13_12
8998 }
8999 if (diff(w[8], w[4]))
9000 {
9001 PIXEL4_20_10
9002 PIXEL4_21_30
9003 PIXEL4_30_80
9004 PIXEL4_31_10
9005 }
9006 else
9007 {
9008 PIXEL4_20_12
9009 PIXEL4_21_0
9010 PIXEL4_30_20
9011 PIXEL4_31_11
9012 }
9013 if (diff(w[6], w[8]))
9014 {
9015 PIXEL4_22_30
9016 PIXEL4_23_10
9017 PIXEL4_32_10
9018 PIXEL4_33_80
9019 }
9020 else
9021 {
9022 PIXEL4_22_0
9023 PIXEL4_23_11
9024 PIXEL4_32_12
9025 PIXEL4_33_20
9026 }
9027 break;
9028 }
9029 case 55:
9030 case 23:
9031 {
9032 if (diff(w[2], w[6]))
9033 {
9034 PIXEL4_00_81
9035 PIXEL4_01_31
9036 PIXEL4_02_0
9037 PIXEL4_03_0
9038 PIXEL4_12_0
9039 PIXEL4_13_0
9040 }
9041 else
9042 {
9043 PIXEL4_00_12
9044 PIXEL4_01_14
9045 PIXEL4_02_83
9046 PIXEL4_03_50
9047 PIXEL4_12_70
9048 PIXEL4_13_21
9049 }
9050 PIXEL4_10_81
9051 PIXEL4_11_31
9052 PIXEL4_20_60
9053 PIXEL4_21_70
9054 PIXEL4_22_30
9055 PIXEL4_23_10
9056 PIXEL4_30_20
9057 PIXEL4_31_60
9058 PIXEL4_32_61
9059 PIXEL4_33_80
9060 break;
9061 }
9062 case 182:
9063 case 150:
9064 {
9065 PIXEL4_00_80
9066 PIXEL4_01_10
9067 if (diff(w[2], w[6]))
9068 {
9069 PIXEL4_02_0
9070 PIXEL4_03_0
9071 PIXEL4_12_0
9072 PIXEL4_13_0
9073 PIXEL4_23_32
9074 PIXEL4_33_82
9075 }
9076 else
9077 {
9078 PIXEL4_02_21
9079 PIXEL4_03_50
9080 PIXEL4_12_70
9081 PIXEL4_13_83
9082 PIXEL4_23_13
9083 PIXEL4_33_11
9084 }
9085 PIXEL4_10_61
9086 PIXEL4_11_30
9087 PIXEL4_20_60
9088 PIXEL4_21_70
9089 PIXEL4_22_32
9090 PIXEL4_30_20
9091 PIXEL4_31_60
9092 PIXEL4_32_82
9093 break;
9094 }
9095 case 213:
9096 case 212:
9097 {
9098 PIXEL4_00_20
9099 PIXEL4_01_60
9100 PIXEL4_02_81
9101 if (diff(w[6], w[8]))
9102 {
9103 PIXEL4_03_81
9104 PIXEL4_13_31
9105 PIXEL4_22_0
9106 PIXEL4_23_0
9107 PIXEL4_32_0
9108 PIXEL4_33_0
9109 }
9110 else
9111 {
9112 PIXEL4_03_12
9113 PIXEL4_13_14
9114 PIXEL4_22_70
9115 PIXEL4_23_83
9116 PIXEL4_32_21
9117 PIXEL4_33_50
9118 }
9119 PIXEL4_10_60
9120 PIXEL4_11_70
9121 PIXEL4_12_31
9122 PIXEL4_20_61
9123 PIXEL4_21_30
9124 PIXEL4_30_80
9125 PIXEL4_31_10
9126 break;
9127 }
9128 case 241:
9129 case 240:
9130 {
9131 PIXEL4_00_20
9132 PIXEL4_01_60
9133 PIXEL4_02_61
9134 PIXEL4_03_80
9135 PIXEL4_10_60
9136 PIXEL4_11_70
9137 PIXEL4_12_30
9138 PIXEL4_13_10
9139 PIXEL4_20_82
9140 PIXEL4_21_32
9141 if (diff(w[6], w[8]))
9142 {
9143 PIXEL4_22_0
9144 PIXEL4_23_0
9145 PIXEL4_30_82
9146 PIXEL4_31_32
9147 PIXEL4_32_0
9148 PIXEL4_33_0
9149 }
9150 else
9151 {
9152 PIXEL4_22_70
9153 PIXEL4_23_21
9154 PIXEL4_30_11
9155 PIXEL4_31_13
9156 PIXEL4_32_83
9157 PIXEL4_33_50
9158 }
9159 break;
9160 }
9161 case 236:
9162 case 232:
9163 {
9164 PIXEL4_00_80
9165 PIXEL4_01_61
9166 PIXEL4_02_60
9167 PIXEL4_03_20
9168 PIXEL4_10_10
9169 PIXEL4_11_30
9170 PIXEL4_12_70
9171 PIXEL4_13_60
9172 if (diff(w[8], w[4]))
9173 {
9174 PIXEL4_20_0
9175 PIXEL4_21_0
9176 PIXEL4_30_0
9177 PIXEL4_31_0
9178 PIXEL4_32_31
9179 PIXEL4_33_81
9180 }
9181 else
9182 {
9183 PIXEL4_20_21
9184 PIXEL4_21_70
9185 PIXEL4_30_50
9186 PIXEL4_31_83
9187 PIXEL4_32_14
9188 PIXEL4_33_12
9189 }
9190 PIXEL4_22_31
9191 PIXEL4_23_81
9192 break;
9193 }
9194 case 109:
9195 case 105:
9196 {
9197 if (diff(w[8], w[4]))
9198 {
9199 PIXEL4_00_82
9200 PIXEL4_10_32
9201 PIXEL4_20_0
9202 PIXEL4_21_0
9203 PIXEL4_30_0
9204 PIXEL4_31_0
9205 }
9206 else
9207 {
9208 PIXEL4_00_11
9209 PIXEL4_10_13
9210 PIXEL4_20_83
9211 PIXEL4_21_70
9212 PIXEL4_30_50
9213 PIXEL4_31_21
9214 }
9215 PIXEL4_01_82
9216 PIXEL4_02_60
9217 PIXEL4_03_20
9218 PIXEL4_11_32
9219 PIXEL4_12_70
9220 PIXEL4_13_60
9221 PIXEL4_22_30
9222 PIXEL4_23_61
9223 PIXEL4_32_10
9224 PIXEL4_33_80
9225 break;
9226 }
9227 case 171:
9228 case 43:
9229 {
9230 if (diff(w[4], w[2]))
9231 {
9232 PIXEL4_00_0
9233 PIXEL4_01_0
9234 PIXEL4_10_0
9235 PIXEL4_11_0
9236 PIXEL4_20_31
9237 PIXEL4_30_81
9238 }
9239 else
9240 {
9241 PIXEL4_00_50
9242 PIXEL4_01_21
9243 PIXEL4_10_83
9244 PIXEL4_11_70
9245 PIXEL4_20_14
9246 PIXEL4_30_12
9247 }
9248 PIXEL4_02_10
9249 PIXEL4_03_80
9250 PIXEL4_12_30
9251 PIXEL4_13_61
9252 PIXEL4_21_31
9253 PIXEL4_22_70
9254 PIXEL4_23_60
9255 PIXEL4_31_81
9256 PIXEL4_32_60
9257 PIXEL4_33_20
9258 break;
9259 }
9260 case 143:
9261 case 15:
9262 {
9263 if (diff(w[4], w[2]))
9264 {
9265 PIXEL4_00_0
9266 PIXEL4_01_0
9267 PIXEL4_02_32
9268 PIXEL4_03_82
9269 PIXEL4_10_0
9270 PIXEL4_11_0
9271 }
9272 else
9273 {
9274 PIXEL4_00_50
9275 PIXEL4_01_83
9276 PIXEL4_02_13
9277 PIXEL4_03_11
9278 PIXEL4_10_21
9279 PIXEL4_11_70
9280 }
9281 PIXEL4_12_32
9282 PIXEL4_13_82
9283 PIXEL4_20_10
9284 PIXEL4_21_30
9285 PIXEL4_22_70
9286 PIXEL4_23_60
9287 PIXEL4_30_80
9288 PIXEL4_31_61
9289 PIXEL4_32_60
9290 PIXEL4_33_20
9291 break;
9292 }
9293 case 124:
9294 {
9295 PIXEL4_00_80
9296 PIXEL4_01_61
9297 PIXEL4_02_81
9298 PIXEL4_03_81
9299 PIXEL4_10_10
9300 PIXEL4_11_30
9301 PIXEL4_12_31
9302 PIXEL4_13_31
9303 if (diff(w[8], w[4]))
9304 {
9305 PIXEL4_20_0
9306 PIXEL4_30_0
9307 PIXEL4_31_0
9308 }
9309 else
9310 {
9311 PIXEL4_20_50
9312 PIXEL4_30_50
9313 PIXEL4_31_50
9314 }
9315 PIXEL4_21_0
9316 PIXEL4_22_30
9317 PIXEL4_23_10
9318 PIXEL4_32_10
9319 PIXEL4_33_80
9320 break;
9321 }
9322 case 203:
9323 {
9324 if (diff(w[4], w[2]))
9325 {
9326 PIXEL4_00_0
9327 PIXEL4_01_0
9328 PIXEL4_10_0
9329 }
9330 else
9331 {
9332 PIXEL4_00_50
9333 PIXEL4_01_50
9334 PIXEL4_10_50
9335 }
9336 PIXEL4_02_10
9337 PIXEL4_03_80
9338 PIXEL4_11_0
9339 PIXEL4_12_30
9340 PIXEL4_13_61
9341 PIXEL4_20_10
9342 PIXEL4_21_30
9343 PIXEL4_22_31
9344 PIXEL4_23_81
9345 PIXEL4_30_80
9346 PIXEL4_31_10
9347 PIXEL4_32_31
9348 PIXEL4_33_81
9349 break;
9350 }
9351 case 62:
9352 {
9353 PIXEL4_00_80
9354 PIXEL4_01_10
9355 if (diff(w[2], w[6]))
9356 {
9357 PIXEL4_02_0
9358 PIXEL4_03_0
9359 PIXEL4_13_0
9360 }
9361 else
9362 {
9363 PIXEL4_02_50
9364 PIXEL4_03_50
9365 PIXEL4_13_50
9366 }
9367 PIXEL4_10_10
9368 PIXEL4_11_30
9369 PIXEL4_12_0
9370 PIXEL4_20_31
9371 PIXEL4_21_31
9372 PIXEL4_22_30
9373 PIXEL4_23_10
9374 PIXEL4_30_81
9375 PIXEL4_31_81
9376 PIXEL4_32_61
9377 PIXEL4_33_80
9378 break;
9379 }
9380 case 211:
9381 {
9382 PIXEL4_00_81
9383 PIXEL4_01_31
9384 PIXEL4_02_10
9385 PIXEL4_03_80
9386 PIXEL4_10_81
9387 PIXEL4_11_31
9388 PIXEL4_12_30
9389 PIXEL4_13_10
9390 PIXEL4_20_61
9391 PIXEL4_21_30
9392 PIXEL4_22_0
9393 if (diff(w[6], w[8]))
9394 {
9395 PIXEL4_23_0
9396 PIXEL4_32_0
9397 PIXEL4_33_0
9398 }
9399 else
9400 {
9401 PIXEL4_23_50
9402 PIXEL4_32_50
9403 PIXEL4_33_50
9404 }
9405 PIXEL4_30_80
9406 PIXEL4_31_10
9407 break;
9408 }
9409 case 118:
9410 {
9411 PIXEL4_00_80
9412 PIXEL4_01_10
9413 if (diff(w[2], w[6]))
9414 {
9415 PIXEL4_02_0
9416 PIXEL4_03_0
9417 PIXEL4_13_0
9418 }
9419 else
9420 {
9421 PIXEL4_02_50
9422 PIXEL4_03_50
9423 PIXEL4_13_50
9424 }
9425 PIXEL4_10_61
9426 PIXEL4_11_30
9427 PIXEL4_12_0
9428 PIXEL4_20_82
9429 PIXEL4_21_32
9430 PIXEL4_22_30
9431 PIXEL4_23_10
9432 PIXEL4_30_82
9433 PIXEL4_31_32
9434 PIXEL4_32_10
9435 PIXEL4_33_80
9436 break;
9437 }
9438 case 217:
9439 {
9440 PIXEL4_00_82
9441 PIXEL4_01_82
9442 PIXEL4_02_61
9443 PIXEL4_03_80
9444 PIXEL4_10_32
9445 PIXEL4_11_32
9446 PIXEL4_12_30
9447 PIXEL4_13_10
9448 PIXEL4_20_10
9449 PIXEL4_21_30
9450 PIXEL4_22_0
9451 if (diff(w[6], w[8]))
9452 {
9453 PIXEL4_23_0
9454 PIXEL4_32_0
9455 PIXEL4_33_0
9456 }
9457 else
9458 {
9459 PIXEL4_23_50
9460 PIXEL4_32_50
9461 PIXEL4_33_50
9462 }
9463 PIXEL4_30_80
9464 PIXEL4_31_10
9465 break;
9466 }
9467 case 110:
9468 {
9469 PIXEL4_00_80
9470 PIXEL4_01_10
9471 PIXEL4_02_32
9472 PIXEL4_03_82
9473 PIXEL4_10_10
9474 PIXEL4_11_30
9475 PIXEL4_12_32
9476 PIXEL4_13_82
9477 if (diff(w[8], w[4]))
9478 {
9479 PIXEL4_20_0
9480 PIXEL4_30_0
9481 PIXEL4_31_0
9482 }
9483 else
9484 {
9485 PIXEL4_20_50
9486 PIXEL4_30_50
9487 PIXEL4_31_50
9488 }
9489 PIXEL4_21_0
9490 PIXEL4_22_30
9491 PIXEL4_23_61
9492 PIXEL4_32_10
9493 PIXEL4_33_80
9494 break;
9495 }
9496 case 155:
9497 {
9498 if (diff(w[4], w[2]))
9499 {
9500 PIXEL4_00_0
9501 PIXEL4_01_0
9502 PIXEL4_10_0
9503 }
9504 else
9505 {
9506 PIXEL4_00_50
9507 PIXEL4_01_50
9508 PIXEL4_10_50
9509 }
9510 PIXEL4_02_10
9511 PIXEL4_03_80
9512 PIXEL4_11_0
9513 PIXEL4_12_30
9514 PIXEL4_13_10
9515 PIXEL4_20_10
9516 PIXEL4_21_30
9517 PIXEL4_22_32
9518 PIXEL4_23_32
9519 PIXEL4_30_80
9520 PIXEL4_31_61
9521 PIXEL4_32_82
9522 PIXEL4_33_82
9523 break;
9524 }
9525 case 188:
9526 {
9527 PIXEL4_00_80
9528 PIXEL4_01_61
9529 PIXEL4_02_81
9530 PIXEL4_03_81
9531 PIXEL4_10_10
9532 PIXEL4_11_30
9533 PIXEL4_12_31
9534 PIXEL4_13_31
9535 PIXEL4_20_31
9536 PIXEL4_21_31
9537 PIXEL4_22_32
9538 PIXEL4_23_32
9539 PIXEL4_30_81
9540 PIXEL4_31_81
9541 PIXEL4_32_82
9542 PIXEL4_33_82
9543 break;
9544 }
9545 case 185:
9546 {
9547 PIXEL4_00_82
9548 PIXEL4_01_82
9549 PIXEL4_02_61
9550 PIXEL4_03_80
9551 PIXEL4_10_32
9552 PIXEL4_11_32
9553 PIXEL4_12_30
9554 PIXEL4_13_10
9555 PIXEL4_20_31
9556 PIXEL4_21_31
9557 PIXEL4_22_32
9558 PIXEL4_23_32
9559 PIXEL4_30_81
9560 PIXEL4_31_81
9561 PIXEL4_32_82
9562 PIXEL4_33_82
9563 break;
9564 }
9565 case 61:
9566 {
9567 PIXEL4_00_82
9568 PIXEL4_01_82
9569 PIXEL4_02_81
9570 PIXEL4_03_81
9571 PIXEL4_10_32
9572 PIXEL4_11_32
9573 PIXEL4_12_31
9574 PIXEL4_13_31
9575 PIXEL4_20_31
9576 PIXEL4_21_31
9577 PIXEL4_22_30
9578 PIXEL4_23_10
9579 PIXEL4_30_81
9580 PIXEL4_31_81
9581 PIXEL4_32_61
9582 PIXEL4_33_80
9583 break;
9584 }
9585 case 157:
9586 {
9587 PIXEL4_00_82
9588 PIXEL4_01_82
9589 PIXEL4_02_81
9590 PIXEL4_03_81
9591 PIXEL4_10_32
9592 PIXEL4_11_32
9593 PIXEL4_12_31
9594 PIXEL4_13_31
9595 PIXEL4_20_10
9596 PIXEL4_21_30
9597 PIXEL4_22_32
9598 PIXEL4_23_32
9599 PIXEL4_30_80
9600 PIXEL4_31_61
9601 PIXEL4_32_82
9602 PIXEL4_33_82
9603 break;
9604 }
9605 case 103:
9606 {
9607 PIXEL4_00_81
9608 PIXEL4_01_31
9609 PIXEL4_02_32
9610 PIXEL4_03_82
9611 PIXEL4_10_81
9612 PIXEL4_11_31
9613 PIXEL4_12_32
9614 PIXEL4_13_82
9615 PIXEL4_20_82
9616 PIXEL4_21_32
9617 PIXEL4_22_30
9618 PIXEL4_23_61
9619 PIXEL4_30_82
9620 PIXEL4_31_32
9621 PIXEL4_32_10
9622 PIXEL4_33_80
9623 break;
9624 }
9625 case 227:
9626 {
9627 PIXEL4_00_81
9628 PIXEL4_01_31
9629 PIXEL4_02_10
9630 PIXEL4_03_80
9631 PIXEL4_10_81
9632 PIXEL4_11_31
9633 PIXEL4_12_30
9634 PIXEL4_13_61
9635 PIXEL4_20_82
9636 PIXEL4_21_32
9637 PIXEL4_22_31
9638 PIXEL4_23_81
9639 PIXEL4_30_82
9640 PIXEL4_31_32
9641 PIXEL4_32_31
9642 PIXEL4_33_81
9643 break;
9644 }
9645 case 230:
9646 {
9647 PIXEL4_00_80
9648 PIXEL4_01_10
9649 PIXEL4_02_32
9650 PIXEL4_03_82
9651 PIXEL4_10_61
9652 PIXEL4_11_30
9653 PIXEL4_12_32
9654 PIXEL4_13_82
9655 PIXEL4_20_82
9656 PIXEL4_21_32
9657 PIXEL4_22_31
9658 PIXEL4_23_81
9659 PIXEL4_30_82
9660 PIXEL4_31_32
9661 PIXEL4_32_31
9662 PIXEL4_33_81
9663 break;
9664 }
9665 case 199:
9666 {
9667 PIXEL4_00_81
9668 PIXEL4_01_31
9669 PIXEL4_02_32
9670 PIXEL4_03_82
9671 PIXEL4_10_81
9672 PIXEL4_11_31
9673 PIXEL4_12_32
9674 PIXEL4_13_82
9675 PIXEL4_20_61
9676 PIXEL4_21_30
9677 PIXEL4_22_31
9678 PIXEL4_23_81
9679 PIXEL4_30_80
9680 PIXEL4_31_10
9681 PIXEL4_32_31
9682 PIXEL4_33_81
9683 break;
9684 }
9685 case 220:
9686 {
9687 PIXEL4_00_80
9688 PIXEL4_01_61
9689 PIXEL4_02_81
9690 PIXEL4_03_81
9691 PIXEL4_10_10
9692 PIXEL4_11_30
9693 PIXEL4_12_31
9694 PIXEL4_13_31
9695 if (diff(w[8], w[4]))
9696 {
9697 PIXEL4_20_10
9698 PIXEL4_21_30
9699 PIXEL4_30_80
9700 PIXEL4_31_10
9701 }
9702 else
9703 {
9704 PIXEL4_20_12
9705 PIXEL4_21_0
9706 PIXEL4_30_20
9707 PIXEL4_31_11
9708 }
9709 PIXEL4_22_0
9710 if (diff(w[6], w[8]))
9711 {
9712 PIXEL4_23_0
9713 PIXEL4_32_0
9714 PIXEL4_33_0
9715 }
9716 else
9717 {
9718 PIXEL4_23_50
9719 PIXEL4_32_50
9720 PIXEL4_33_50
9721 }
9722 break;
9723 }
9724 case 158:
9725 {
9726 if (diff(w[4], w[2]))
9727 {
9728 PIXEL4_00_80
9729 PIXEL4_01_10
9730 PIXEL4_10_10
9731 PIXEL4_11_30
9732 }
9733 else
9734 {
9735 PIXEL4_00_20
9736 PIXEL4_01_12
9737 PIXEL4_10_11
9738 PIXEL4_11_0
9739 }
9740 if (diff(w[2], w[6]))
9741 {
9742 PIXEL4_02_0
9743 PIXEL4_03_0
9744 PIXEL4_13_0
9745 }
9746 else
9747 {
9748 PIXEL4_02_50
9749 PIXEL4_03_50
9750 PIXEL4_13_50
9751 }
9752 PIXEL4_12_0
9753 PIXEL4_20_10
9754 PIXEL4_21_30
9755 PIXEL4_22_32
9756 PIXEL4_23_32
9757 PIXEL4_30_80
9758 PIXEL4_31_61
9759 PIXEL4_32_82
9760 PIXEL4_33_82
9761 break;
9762 }
9763 case 234:
9764 {
9765 if (diff(w[4], w[2]))
9766 {
9767 PIXEL4_00_80
9768 PIXEL4_01_10
9769 PIXEL4_10_10
9770 PIXEL4_11_30
9771 }
9772 else
9773 {
9774 PIXEL4_00_20
9775 PIXEL4_01_12
9776 PIXEL4_10_11
9777 PIXEL4_11_0
9778 }
9779 PIXEL4_02_10
9780 PIXEL4_03_80
9781 PIXEL4_12_30
9782 PIXEL4_13_61
9783 if (diff(w[8], w[4]))
9784 {
9785 PIXEL4_20_0
9786 PIXEL4_30_0
9787 PIXEL4_31_0
9788 }
9789 else
9790 {
9791 PIXEL4_20_50
9792 PIXEL4_30_50
9793 PIXEL4_31_50
9794 }
9795 PIXEL4_21_0
9796 PIXEL4_22_31
9797 PIXEL4_23_81
9798 PIXEL4_32_31
9799 PIXEL4_33_81
9800 break;
9801 }
9802 case 242:
9803 {
9804 PIXEL4_00_80
9805 PIXEL4_01_10
9806 if (diff(w[2], w[6]))
9807 {
9808 PIXEL4_02_10
9809 PIXEL4_03_80
9810 PIXEL4_12_30
9811 PIXEL4_13_10
9812 }
9813 else
9814 {
9815 PIXEL4_02_11
9816 PIXEL4_03_20
9817 PIXEL4_12_0
9818 PIXEL4_13_12
9819 }
9820 PIXEL4_10_61
9821 PIXEL4_11_30
9822 PIXEL4_20_82
9823 PIXEL4_21_32
9824 PIXEL4_22_0
9825 if (diff(w[6], w[8]))
9826 {
9827 PIXEL4_23_0
9828 PIXEL4_32_0
9829 PIXEL4_33_0
9830 }
9831 else
9832 {
9833 PIXEL4_23_50
9834 PIXEL4_32_50
9835 PIXEL4_33_50
9836 }
9837 PIXEL4_30_82
9838 PIXEL4_31_32
9839 break;
9840 }
9841 case 59:
9842 {
9843 if (diff(w[4], w[2]))
9844 {
9845 PIXEL4_00_0
9846 PIXEL4_01_0
9847 PIXEL4_10_0
9848 }
9849 else
9850 {
9851 PIXEL4_00_50
9852 PIXEL4_01_50
9853 PIXEL4_10_50
9854 }
9855 if (diff(w[2], w[6]))
9856 {
9857 PIXEL4_02_10
9858 PIXEL4_03_80
9859 PIXEL4_12_30
9860 PIXEL4_13_10
9861 }
9862 else
9863 {
9864 PIXEL4_02_11
9865 PIXEL4_03_20
9866 PIXEL4_12_0
9867 PIXEL4_13_12
9868 }
9869 PIXEL4_11_0
9870 PIXEL4_20_31
9871 PIXEL4_21_31
9872 PIXEL4_22_30
9873 PIXEL4_23_10
9874 PIXEL4_30_81
9875 PIXEL4_31_81
9876 PIXEL4_32_61
9877 PIXEL4_33_80
9878 break;
9879 }
9880 case 121:
9881 {
9882 PIXEL4_00_82
9883 PIXEL4_01_82
9884 PIXEL4_02_61
9885 PIXEL4_03_80
9886 PIXEL4_10_32
9887 PIXEL4_11_32
9888 PIXEL4_12_30
9889 PIXEL4_13_10
9890 if (diff(w[8], w[4]))
9891 {
9892 PIXEL4_20_0
9893 PIXEL4_30_0
9894 PIXEL4_31_0
9895 }
9896 else
9897 {
9898 PIXEL4_20_50
9899 PIXEL4_30_50
9900 PIXEL4_31_50
9901 }
9902 PIXEL4_21_0
9903 if (diff(w[6], w[8]))
9904 {
9905 PIXEL4_22_30
9906 PIXEL4_23_10
9907 PIXEL4_32_10
9908 PIXEL4_33_80
9909 }
9910 else
9911 {
9912 PIXEL4_22_0
9913 PIXEL4_23_11
9914 PIXEL4_32_12
9915 PIXEL4_33_20
9916 }
9917 break;
9918 }
9919 case 87:
9920 {
9921 PIXEL4_00_81
9922 PIXEL4_01_31
9923 if (diff(w[2], w[6]))
9924 {
9925 PIXEL4_02_0
9926 PIXEL4_03_0
9927 PIXEL4_13_0
9928 }
9929 else
9930 {
9931 PIXEL4_02_50
9932 PIXEL4_03_50
9933 PIXEL4_13_50
9934 }
9935 PIXEL4_10_81
9936 PIXEL4_11_31
9937 PIXEL4_12_0
9938 PIXEL4_20_61
9939 PIXEL4_21_30
9940 if (diff(w[6], w[8]))
9941 {
9942 PIXEL4_22_30
9943 PIXEL4_23_10
9944 PIXEL4_32_10
9945 PIXEL4_33_80
9946 }
9947 else
9948 {
9949 PIXEL4_22_0
9950 PIXEL4_23_11
9951 PIXEL4_32_12
9952 PIXEL4_33_20
9953 }
9954 PIXEL4_30_80
9955 PIXEL4_31_10
9956 break;
9957 }
9958 case 79:
9959 {
9960 if (diff(w[4], w[2]))
9961 {
9962 PIXEL4_00_0
9963 PIXEL4_01_0
9964 PIXEL4_10_0
9965 }
9966 else
9967 {
9968 PIXEL4_00_50
9969 PIXEL4_01_50
9970 PIXEL4_10_50
9971 }
9972 PIXEL4_02_32
9973 PIXEL4_03_82
9974 PIXEL4_11_0
9975 PIXEL4_12_32
9976 PIXEL4_13_82
9977 if (diff(w[8], w[4]))
9978 {
9979 PIXEL4_20_10
9980 PIXEL4_21_30
9981 PIXEL4_30_80
9982 PIXEL4_31_10
9983 }
9984 else
9985 {
9986 PIXEL4_20_12
9987 PIXEL4_21_0
9988 PIXEL4_30_20
9989 PIXEL4_31_11
9990 }
9991 PIXEL4_22_30
9992 PIXEL4_23_61
9993 PIXEL4_32_10
9994 PIXEL4_33_80
9995 break;
9996 }
9997 case 122:
9998 {
9999 if (diff(w[4], w[2]))
10000 {
10001 PIXEL4_00_80
10002 PIXEL4_01_10
10003 PIXEL4_10_10
10004 PIXEL4_11_30
10005 }
10006 else
10007 {
10008 PIXEL4_00_20
10009 PIXEL4_01_12
10010 PIXEL4_10_11
10011 PIXEL4_11_0
10012 }
10013 if (diff(w[2], w[6]))
10014 {
10015 PIXEL4_02_10
10016 PIXEL4_03_80
10017 PIXEL4_12_30
10018 PIXEL4_13_10
10019 }
10020 else
10021 {
10022 PIXEL4_02_11
10023 PIXEL4_03_20
10024 PIXEL4_12_0
10025 PIXEL4_13_12
10026 }
10027 if (diff(w[8], w[4]))
10028 {
10029 PIXEL4_20_0
10030 PIXEL4_30_0
10031 PIXEL4_31_0
10032 }
10033 else
10034 {
10035 PIXEL4_20_50
10036 PIXEL4_30_50
10037 PIXEL4_31_50
10038 }
10039 PIXEL4_21_0
10040 if (diff(w[6], w[8]))
10041 {
10042 PIXEL4_22_30
10043 PIXEL4_23_10
10044 PIXEL4_32_10
10045 PIXEL4_33_80
10046 }
10047 else
10048 {
10049 PIXEL4_22_0
10050 PIXEL4_23_11
10051 PIXEL4_32_12
10052 PIXEL4_33_20
10053 }
10054 break;
10055 }
10056 case 94:
10057 {
10058 if (diff(w[4], w[2]))
10059 {
10060 PIXEL4_00_80
10061 PIXEL4_01_10
10062 PIXEL4_10_10
10063 PIXEL4_11_30
10064 }
10065 else
10066 {
10067 PIXEL4_00_20
10068 PIXEL4_01_12
10069 PIXEL4_10_11
10070 PIXEL4_11_0
10071 }
10072 if (diff(w[2], w[6]))
10073 {
10074 PIXEL4_02_0
10075 PIXEL4_03_0
10076 PIXEL4_13_0
10077 }
10078 else
10079 {
10080 PIXEL4_02_50
10081 PIXEL4_03_50
10082 PIXEL4_13_50
10083 }
10084 PIXEL4_12_0
10085 if (diff(w[8], w[4]))
10086 {
10087 PIXEL4_20_10
10088 PIXEL4_21_30
10089 PIXEL4_30_80
10090 PIXEL4_31_10
10091 }
10092 else
10093 {
10094 PIXEL4_20_12
10095 PIXEL4_21_0
10096 PIXEL4_30_20
10097 PIXEL4_31_11
10098 }
10099 if (diff(w[6], w[8]))
10100 {
10101 PIXEL4_22_30
10102 PIXEL4_23_10
10103 PIXEL4_32_10
10104 PIXEL4_33_80
10105 }
10106 else
10107 {
10108 PIXEL4_22_0
10109 PIXEL4_23_11
10110 PIXEL4_32_12
10111 PIXEL4_33_20
10112 }
10113 break;
10114 }
10115 case 218:
10116 {
10117 if (diff(w[4], w[2]))
10118 {
10119 PIXEL4_00_80
10120 PIXEL4_01_10
10121 PIXEL4_10_10
10122 PIXEL4_11_30
10123 }
10124 else
10125 {
10126 PIXEL4_00_20
10127 PIXEL4_01_12
10128 PIXEL4_10_11
10129 PIXEL4_11_0
10130 }
10131 if (diff(w[2], w[6]))
10132 {
10133 PIXEL4_02_10
10134 PIXEL4_03_80
10135 PIXEL4_12_30
10136 PIXEL4_13_10
10137 }
10138 else
10139 {
10140 PIXEL4_02_11
10141 PIXEL4_03_20
10142 PIXEL4_12_0
10143 PIXEL4_13_12
10144 }
10145 if (diff(w[8], w[4]))
10146 {
10147 PIXEL4_20_10
10148 PIXEL4_21_30
10149 PIXEL4_30_80
10150 PIXEL4_31_10
10151 }
10152 else
10153 {
10154 PIXEL4_20_12
10155 PIXEL4_21_0
10156 PIXEL4_30_20
10157 PIXEL4_31_11
10158 }
10159 PIXEL4_22_0
10160 if (diff(w[6], w[8]))
10161 {
10162 PIXEL4_23_0
10163 PIXEL4_32_0
10164 PIXEL4_33_0
10165 }
10166 else
10167 {
10168 PIXEL4_23_50
10169 PIXEL4_32_50
10170 PIXEL4_33_50
10171 }
10172 break;
10173 }
10174 case 91:
10175 {
10176 if (diff(w[4], w[2]))
10177 {
10178 PIXEL4_00_0
10179 PIXEL4_01_0
10180 PIXEL4_10_0
10181 }
10182 else
10183 {
10184 PIXEL4_00_50
10185 PIXEL4_01_50
10186 PIXEL4_10_50
10187 }
10188 if (diff(w[2], w[6]))
10189 {
10190 PIXEL4_02_10
10191 PIXEL4_03_80
10192 PIXEL4_12_30
10193 PIXEL4_13_10
10194 }
10195 else
10196 {
10197 PIXEL4_02_11
10198 PIXEL4_03_20
10199 PIXEL4_12_0
10200 PIXEL4_13_12
10201 }
10202 PIXEL4_11_0
10203 if (diff(w[8], w[4]))
10204 {
10205 PIXEL4_20_10
10206 PIXEL4_21_30
10207 PIXEL4_30_80
10208 PIXEL4_31_10
10209 }
10210 else
10211 {
10212 PIXEL4_20_12
10213 PIXEL4_21_0
10214 PIXEL4_30_20
10215 PIXEL4_31_11
10216 }
10217 if (diff(w[6], w[8]))
10218 {
10219 PIXEL4_22_30
10220 PIXEL4_23_10
10221 PIXEL4_32_10
10222 PIXEL4_33_80
10223 }
10224 else
10225 {
10226 PIXEL4_22_0
10227 PIXEL4_23_11
10228 PIXEL4_32_12
10229 PIXEL4_33_20
10230 }
10231 break;
10232 }
10233 case 229:
10234 {
10235 PIXEL4_00_20
10236 PIXEL4_01_60
10237 PIXEL4_02_60
10238 PIXEL4_03_20
10239 PIXEL4_10_60
10240 PIXEL4_11_70
10241 PIXEL4_12_70
10242 PIXEL4_13_60
10243 PIXEL4_20_82
10244 PIXEL4_21_32
10245 PIXEL4_22_31
10246 PIXEL4_23_81
10247 PIXEL4_30_82
10248 PIXEL4_31_32
10249 PIXEL4_32_31
10250 PIXEL4_33_81
10251 break;
10252 }
10253 case 167:
10254 {
10255 PIXEL4_00_81
10256 PIXEL4_01_31
10257 PIXEL4_02_32
10258 PIXEL4_03_82
10259 PIXEL4_10_81
10260 PIXEL4_11_31
10261 PIXEL4_12_32
10262 PIXEL4_13_82
10263 PIXEL4_20_60
10264 PIXEL4_21_70
10265 PIXEL4_22_70
10266 PIXEL4_23_60
10267 PIXEL4_30_20
10268 PIXEL4_31_60
10269 PIXEL4_32_60
10270 PIXEL4_33_20
10271 break;
10272 }
10273 case 173:
10274 {
10275 PIXEL4_00_82
10276 PIXEL4_01_82
10277 PIXEL4_02_60
10278 PIXEL4_03_20
10279 PIXEL4_10_32
10280 PIXEL4_11_32
10281 PIXEL4_12_70
10282 PIXEL4_13_60
10283 PIXEL4_20_31
10284 PIXEL4_21_31
10285 PIXEL4_22_70
10286 PIXEL4_23_60
10287 PIXEL4_30_81
10288 PIXEL4_31_81
10289 PIXEL4_32_60
10290 PIXEL4_33_20
10291 break;
10292 }
10293 case 181:
10294 {
10295 PIXEL4_00_20
10296 PIXEL4_01_60
10297 PIXEL4_02_81
10298 PIXEL4_03_81
10299 PIXEL4_10_60
10300 PIXEL4_11_70
10301 PIXEL4_12_31
10302 PIXEL4_13_31
10303 PIXEL4_20_60
10304 PIXEL4_21_70
10305 PIXEL4_22_32
10306 PIXEL4_23_32
10307 PIXEL4_30_20
10308 PIXEL4_31_60
10309 PIXEL4_32_82
10310 PIXEL4_33_82
10311 break;
10312 }
10313 case 186:
10314 {
10315 if (diff(w[4], w[2]))
10316 {
10317 PIXEL4_00_80
10318 PIXEL4_01_10
10319 PIXEL4_10_10
10320 PIXEL4_11_30
10321 }
10322 else
10323 {
10324 PIXEL4_00_20
10325 PIXEL4_01_12
10326 PIXEL4_10_11
10327 PIXEL4_11_0
10328 }
10329 if (diff(w[2], w[6]))
10330 {
10331 PIXEL4_02_10
10332 PIXEL4_03_80
10333 PIXEL4_12_30
10334 PIXEL4_13_10
10335 }
10336 else
10337 {
10338 PIXEL4_02_11
10339 PIXEL4_03_20
10340 PIXEL4_12_0
10341 PIXEL4_13_12
10342 }
10343 PIXEL4_20_31
10344 PIXEL4_21_31
10345 PIXEL4_22_32
10346 PIXEL4_23_32
10347 PIXEL4_30_81
10348 PIXEL4_31_81
10349 PIXEL4_32_82
10350 PIXEL4_33_82
10351 break;
10352 }
10353 case 115:
10354 {
10355 PIXEL4_00_81
10356 PIXEL4_01_31
10357 if (diff(w[2], w[6]))
10358 {
10359 PIXEL4_02_10
10360 PIXEL4_03_80
10361 PIXEL4_12_30
10362 PIXEL4_13_10
10363 }
10364 else
10365 {
10366 PIXEL4_02_11
10367 PIXEL4_03_20
10368 PIXEL4_12_0
10369 PIXEL4_13_12
10370 }
10371 PIXEL4_10_81
10372 PIXEL4_11_31
10373 PIXEL4_20_82
10374 PIXEL4_21_32
10375 if (diff(w[6], w[8]))
10376 {
10377 PIXEL4_22_30
10378 PIXEL4_23_10
10379 PIXEL4_32_10
10380 PIXEL4_33_80
10381 }
10382 else
10383 {
10384 PIXEL4_22_0
10385 PIXEL4_23_11
10386 PIXEL4_32_12
10387 PIXEL4_33_20
10388 }
10389 PIXEL4_30_82
10390 PIXEL4_31_32
10391 break;
10392 }
10393 case 93:
10394 {
10395 PIXEL4_00_82
10396 PIXEL4_01_82
10397 PIXEL4_02_81
10398 PIXEL4_03_81
10399 PIXEL4_10_32
10400 PIXEL4_11_32
10401 PIXEL4_12_31
10402 PIXEL4_13_31
10403 if (diff(w[8], w[4]))
10404 {
10405 PIXEL4_20_10
10406 PIXEL4_21_30
10407 PIXEL4_30_80
10408 PIXEL4_31_10
10409 }
10410 else
10411 {
10412 PIXEL4_20_12
10413 PIXEL4_21_0
10414 PIXEL4_30_20
10415 PIXEL4_31_11
10416 }
10417 if (diff(w[6], w[8]))
10418 {
10419 PIXEL4_22_30
10420 PIXEL4_23_10
10421 PIXEL4_32_10
10422 PIXEL4_33_80
10423 }
10424 else
10425 {
10426 PIXEL4_22_0
10427 PIXEL4_23_11
10428 PIXEL4_32_12
10429 PIXEL4_33_20
10430 }
10431 break;
10432 }
10433 case 206:
10434 {
10435 if (diff(w[4], w[2]))
10436 {
10437 PIXEL4_00_80
10438 PIXEL4_01_10
10439 PIXEL4_10_10
10440 PIXEL4_11_30
10441 }
10442 else
10443 {
10444 PIXEL4_00_20
10445 PIXEL4_01_12
10446 PIXEL4_10_11
10447 PIXEL4_11_0
10448 }
10449 PIXEL4_02_32
10450 PIXEL4_03_82
10451 PIXEL4_12_32
10452 PIXEL4_13_82
10453 if (diff(w[8], w[4]))
10454 {
10455 PIXEL4_20_10
10456 PIXEL4_21_30
10457 PIXEL4_30_80
10458 PIXEL4_31_10
10459 }
10460 else
10461 {
10462 PIXEL4_20_12
10463 PIXEL4_21_0
10464 PIXEL4_30_20
10465 PIXEL4_31_11
10466 }
10467 PIXEL4_22_31
10468 PIXEL4_23_81
10469 PIXEL4_32_31
10470 PIXEL4_33_81
10471 break;
10472 }
10473 case 205:
10474 case 201:
10475 {
10476 PIXEL4_00_82
10477 PIXEL4_01_82
10478 PIXEL4_02_60
10479 PIXEL4_03_20
10480 PIXEL4_10_32
10481 PIXEL4_11_32
10482 PIXEL4_12_70
10483 PIXEL4_13_60
10484 if (diff(w[8], w[4]))
10485 {
10486 PIXEL4_20_10
10487 PIXEL4_21_30
10488 PIXEL4_30_80
10489 PIXEL4_31_10
10490 }
10491 else
10492 {
10493 PIXEL4_20_12
10494 PIXEL4_21_0
10495 PIXEL4_30_20
10496 PIXEL4_31_11
10497 }
10498 PIXEL4_22_31
10499 PIXEL4_23_81
10500 PIXEL4_32_31
10501 PIXEL4_33_81
10502 break;
10503 }
10504 case 174:
10505 case 46:
10506 {
10507 if (diff(w[4], w[2]))
10508 {
10509 PIXEL4_00_80
10510 PIXEL4_01_10
10511 PIXEL4_10_10
10512 PIXEL4_11_30
10513 }
10514 else
10515 {
10516 PIXEL4_00_20
10517 PIXEL4_01_12
10518 PIXEL4_10_11
10519 PIXEL4_11_0
10520 }
10521 PIXEL4_02_32
10522 PIXEL4_03_82
10523 PIXEL4_12_32
10524 PIXEL4_13_82
10525 PIXEL4_20_31
10526 PIXEL4_21_31
10527 PIXEL4_22_70
10528 PIXEL4_23_60
10529 PIXEL4_30_81
10530 PIXEL4_31_81
10531 PIXEL4_32_60
10532 PIXEL4_33_20
10533 break;
10534 }
10535 case 179:
10536 case 147:
10537 {
10538 PIXEL4_00_81
10539 PIXEL4_01_31
10540 if (diff(w[2], w[6]))
10541 {
10542 PIXEL4_02_10
10543 PIXEL4_03_80
10544 PIXEL4_12_30
10545 PIXEL4_13_10
10546 }
10547 else
10548 {
10549 PIXEL4_02_11
10550 PIXEL4_03_20
10551 PIXEL4_12_0
10552 PIXEL4_13_12
10553 }
10554 PIXEL4_10_81
10555 PIXEL4_11_31
10556 PIXEL4_20_60
10557 PIXEL4_21_70
10558 PIXEL4_22_32
10559 PIXEL4_23_32
10560 PIXEL4_30_20
10561 PIXEL4_31_60
10562 PIXEL4_32_82
10563 PIXEL4_33_82
10564 break;
10565 }
10566 case 117:
10567 case 116:
10568 {
10569 PIXEL4_00_20
10570 PIXEL4_01_60
10571 PIXEL4_02_81
10572 PIXEL4_03_81
10573 PIXEL4_10_60
10574 PIXEL4_11_70
10575 PIXEL4_12_31
10576 PIXEL4_13_31
10577 PIXEL4_20_82
10578 PIXEL4_21_32
10579 if (diff(w[6], w[8]))
10580 {
10581 PIXEL4_22_30
10582 PIXEL4_23_10
10583 PIXEL4_32_10
10584 PIXEL4_33_80
10585 }
10586 else
10587 {
10588 PIXEL4_22_0
10589 PIXEL4_23_11
10590 PIXEL4_32_12
10591 PIXEL4_33_20
10592 }
10593 PIXEL4_30_82
10594 PIXEL4_31_32
10595 break;
10596 }
10597 case 189:
10598 {
10599 PIXEL4_00_82
10600 PIXEL4_01_82
10601 PIXEL4_02_81
10602 PIXEL4_03_81
10603 PIXEL4_10_32
10604 PIXEL4_11_32
10605 PIXEL4_12_31
10606 PIXEL4_13_31
10607 PIXEL4_20_31
10608 PIXEL4_21_31
10609 PIXEL4_22_32
10610 PIXEL4_23_32
10611 PIXEL4_30_81
10612 PIXEL4_31_81
10613 PIXEL4_32_82
10614 PIXEL4_33_82
10615 break;
10616 }
10617 case 231:
10618 {
10619 PIXEL4_00_81
10620 PIXEL4_01_31
10621 PIXEL4_02_32
10622 PIXEL4_03_82
10623 PIXEL4_10_81
10624 PIXEL4_11_31
10625 PIXEL4_12_32
10626 PIXEL4_13_82
10627 PIXEL4_20_82
10628 PIXEL4_21_32
10629 PIXEL4_22_31
10630 PIXEL4_23_81
10631 PIXEL4_30_82
10632 PIXEL4_31_32
10633 PIXEL4_32_31
10634 PIXEL4_33_81
10635 break;
10636 }
10637 case 126:
10638 {
10639 PIXEL4_00_80
10640 PIXEL4_01_10
10641 if (diff(w[2], w[6]))
10642 {
10643 PIXEL4_02_0
10644 PIXEL4_03_0
10645 PIXEL4_13_0
10646 }
10647 else
10648 {
10649 PIXEL4_02_50
10650 PIXEL4_03_50
10651 PIXEL4_13_50
10652 }
10653 PIXEL4_10_10
10654 PIXEL4_11_30
10655 PIXEL4_12_0
10656 if (diff(w[8], w[4]))
10657 {
10658 PIXEL4_20_0
10659 PIXEL4_30_0
10660 PIXEL4_31_0
10661 }
10662 else
10663 {
10664 PIXEL4_20_50
10665 PIXEL4_30_50
10666 PIXEL4_31_50
10667 }
10668 PIXEL4_21_0
10669 PIXEL4_22_30
10670 PIXEL4_23_10
10671 PIXEL4_32_10
10672 PIXEL4_33_80
10673 break;
10674 }
10675 case 219:
10676 {
10677 if (diff(w[4], w[2]))
10678 {
10679 PIXEL4_00_0
10680 PIXEL4_01_0
10681 PIXEL4_10_0
10682 }
10683 else
10684 {
10685 PIXEL4_00_50
10686 PIXEL4_01_50
10687 PIXEL4_10_50
10688 }
10689 PIXEL4_02_10
10690 PIXEL4_03_80
10691 PIXEL4_11_0
10692 PIXEL4_12_30
10693 PIXEL4_13_10
10694 PIXEL4_20_10
10695 PIXEL4_21_30
10696 PIXEL4_22_0
10697 if (diff(w[6], w[8]))
10698 {
10699 PIXEL4_23_0
10700 PIXEL4_32_0
10701 PIXEL4_33_0
10702 }
10703 else
10704 {
10705 PIXEL4_23_50
10706 PIXEL4_32_50
10707 PIXEL4_33_50
10708 }
10709 PIXEL4_30_80
10710 PIXEL4_31_10
10711 break;
10712 }
10713 case 125:
10714 {
10715 if (diff(w[8], w[4]))
10716 {
10717 PIXEL4_00_82
10718 PIXEL4_10_32
10719 PIXEL4_20_0
10720 PIXEL4_21_0
10721 PIXEL4_30_0
10722 PIXEL4_31_0
10723 }
10724 else
10725 {
10726 PIXEL4_00_11
10727 PIXEL4_10_13
10728 PIXEL4_20_83
10729 PIXEL4_21_70
10730 PIXEL4_30_50
10731 PIXEL4_31_21
10732 }
10733 PIXEL4_01_82
10734 PIXEL4_02_81
10735 PIXEL4_03_81
10736 PIXEL4_11_32
10737 PIXEL4_12_31
10738 PIXEL4_13_31
10739 PIXEL4_22_30
10740 PIXEL4_23_10
10741 PIXEL4_32_10
10742 PIXEL4_33_80
10743 break;
10744 }
10745 case 221:
10746 {
10747 PIXEL4_00_82
10748 PIXEL4_01_82
10749 PIXEL4_02_81
10750 if (diff(w[6], w[8]))
10751 {
10752 PIXEL4_03_81
10753 PIXEL4_13_31
10754 PIXEL4_22_0
10755 PIXEL4_23_0
10756 PIXEL4_32_0
10757 PIXEL4_33_0
10758 }
10759 else
10760 {
10761 PIXEL4_03_12
10762 PIXEL4_13_14
10763 PIXEL4_22_70
10764 PIXEL4_23_83
10765 PIXEL4_32_21
10766 PIXEL4_33_50
10767 }
10768 PIXEL4_10_32
10769 PIXEL4_11_32
10770 PIXEL4_12_31
10771 PIXEL4_20_10
10772 PIXEL4_21_30
10773 PIXEL4_30_80
10774 PIXEL4_31_10
10775 break;
10776 }
10777 case 207:
10778 {
10779 if (diff(w[4], w[2]))
10780 {
10781 PIXEL4_00_0
10782 PIXEL4_01_0
10783 PIXEL4_02_32
10784 PIXEL4_03_82
10785 PIXEL4_10_0
10786 PIXEL4_11_0
10787 }
10788 else
10789 {
10790 PIXEL4_00_50
10791 PIXEL4_01_83
10792 PIXEL4_02_13
10793 PIXEL4_03_11
10794 PIXEL4_10_21
10795 PIXEL4_11_70
10796 }
10797 PIXEL4_12_32
10798 PIXEL4_13_82
10799 PIXEL4_20_10
10800 PIXEL4_21_30
10801 PIXEL4_22_31
10802 PIXEL4_23_81
10803 PIXEL4_30_80
10804 PIXEL4_31_10
10805 PIXEL4_32_31
10806 PIXEL4_33_81
10807 break;
10808 }
10809 case 238:
10810 {
10811 PIXEL4_00_80
10812 PIXEL4_01_10
10813 PIXEL4_02_32
10814 PIXEL4_03_82
10815 PIXEL4_10_10
10816 PIXEL4_11_30
10817 PIXEL4_12_32
10818 PIXEL4_13_82
10819 if (diff(w[8], w[4]))
10820 {
10821 PIXEL4_20_0
10822 PIXEL4_21_0
10823 PIXEL4_30_0
10824 PIXEL4_31_0
10825 PIXEL4_32_31
10826 PIXEL4_33_81
10827 }
10828 else
10829 {
10830 PIXEL4_20_21
10831 PIXEL4_21_70
10832 PIXEL4_30_50
10833 PIXEL4_31_83
10834 PIXEL4_32_14
10835 PIXEL4_33_12
10836 }
10837 PIXEL4_22_31
10838 PIXEL4_23_81
10839 break;
10840 }
10841 case 190:
10842 {
10843 PIXEL4_00_80
10844 PIXEL4_01_10
10845 if (diff(w[2], w[6]))
10846 {
10847 PIXEL4_02_0
10848 PIXEL4_03_0
10849 PIXEL4_12_0
10850 PIXEL4_13_0
10851 PIXEL4_23_32
10852 PIXEL4_33_82
10853 }
10854 else
10855 {
10856 PIXEL4_02_21
10857 PIXEL4_03_50
10858 PIXEL4_12_70
10859 PIXEL4_13_83
10860 PIXEL4_23_13
10861 PIXEL4_33_11
10862 }
10863 PIXEL4_10_10
10864 PIXEL4_11_30
10865 PIXEL4_20_31
10866 PIXEL4_21_31
10867 PIXEL4_22_32
10868 PIXEL4_30_81
10869 PIXEL4_31_81
10870 PIXEL4_32_82
10871 break;
10872 }
10873 case 187:
10874 {
10875 if (diff(w[4], w[2]))
10876 {
10877 PIXEL4_00_0
10878 PIXEL4_01_0
10879 PIXEL4_10_0
10880 PIXEL4_11_0
10881 PIXEL4_20_31
10882 PIXEL4_30_81
10883 }
10884 else
10885 {
10886 PIXEL4_00_50
10887 PIXEL4_01_21
10888 PIXEL4_10_83
10889 PIXEL4_11_70
10890 PIXEL4_20_14
10891 PIXEL4_30_12
10892 }
10893 PIXEL4_02_10
10894 PIXEL4_03_80
10895 PIXEL4_12_30
10896 PIXEL4_13_10
10897 PIXEL4_21_31
10898 PIXEL4_22_32
10899 PIXEL4_23_32
10900 PIXEL4_31_81
10901 PIXEL4_32_82
10902 PIXEL4_33_82
10903 break;
10904 }
10905 case 243:
10906 {
10907 PIXEL4_00_81
10908 PIXEL4_01_31
10909 PIXEL4_02_10
10910 PIXEL4_03_80
10911 PIXEL4_10_81
10912 PIXEL4_11_31
10913 PIXEL4_12_30
10914 PIXEL4_13_10
10915 PIXEL4_20_82
10916 PIXEL4_21_32
10917 if (diff(w[6], w[8]))
10918 {
10919 PIXEL4_22_0
10920 PIXEL4_23_0
10921 PIXEL4_30_82
10922 PIXEL4_31_32
10923 PIXEL4_32_0
10924 PIXEL4_33_0
10925 }
10926 else
10927 {
10928 PIXEL4_22_70
10929 PIXEL4_23_21
10930 PIXEL4_30_11
10931 PIXEL4_31_13
10932 PIXEL4_32_83
10933 PIXEL4_33_50
10934 }
10935 break;
10936 }
10937 case 119:
10938 {
10939 if (diff(w[2], w[6]))
10940 {
10941 PIXEL4_00_81
10942 PIXEL4_01_31
10943 PIXEL4_02_0
10944 PIXEL4_03_0
10945 PIXEL4_12_0
10946 PIXEL4_13_0
10947 }
10948 else
10949 {
10950 PIXEL4_00_12
10951 PIXEL4_01_14
10952 PIXEL4_02_83
10953 PIXEL4_03_50
10954 PIXEL4_12_70
10955 PIXEL4_13_21
10956 }
10957 PIXEL4_10_81
10958 PIXEL4_11_31
10959 PIXEL4_20_82
10960 PIXEL4_21_32
10961 PIXEL4_22_30
10962 PIXEL4_23_10
10963 PIXEL4_30_82
10964 PIXEL4_31_32
10965 PIXEL4_32_10
10966 PIXEL4_33_80
10967 break;
10968 }
10969 case 237:
10970 case 233:
10971 {
10972 PIXEL4_00_82
10973 PIXEL4_01_82
10974 PIXEL4_02_60
10975 PIXEL4_03_20
10976 PIXEL4_10_32
10977 PIXEL4_11_32
10978 PIXEL4_12_70
10979 PIXEL4_13_60
10980 PIXEL4_20_0
10981 PIXEL4_21_0
10982 PIXEL4_22_31
10983 PIXEL4_23_81
10984 if (diff(w[8], w[4]))
10985 {
10986 PIXEL4_30_0
10987 }
10988 else
10989 {
10990 PIXEL4_30_20
10991 }
10992 PIXEL4_31_0
10993 PIXEL4_32_31
10994 PIXEL4_33_81
10995 break;
10996 }
10997 case 175:
10998 case 47:
10999 {
11000 if (diff(w[4], w[2]))
11001 {
11002 PIXEL4_00_0
11003 }
11004 else
11005 {
11006 PIXEL4_00_20
11007 }
11008 PIXEL4_01_0
11009 PIXEL4_02_32
11010 PIXEL4_03_82
11011 PIXEL4_10_0
11012 PIXEL4_11_0
11013 PIXEL4_12_32
11014 PIXEL4_13_82
11015 PIXEL4_20_31
11016 PIXEL4_21_31
11017 PIXEL4_22_70
11018 PIXEL4_23_60
11019 PIXEL4_30_81
11020 PIXEL4_31_81
11021 PIXEL4_32_60
11022 PIXEL4_33_20
11023 break;
11024 }
11025 case 183:
11026 case 151:
11027 {
11028 PIXEL4_00_81
11029 PIXEL4_01_31
11030 PIXEL4_02_0
11031 if (diff(w[2], w[6]))
11032 {
11033 PIXEL4_03_0
11034 }
11035 else
11036 {
11037 PIXEL4_03_20
11038 }
11039 PIXEL4_10_81
11040 PIXEL4_11_31
11041 PIXEL4_12_0
11042 PIXEL4_13_0
11043 PIXEL4_20_60
11044 PIXEL4_21_70
11045 PIXEL4_22_32
11046 PIXEL4_23_32
11047 PIXEL4_30_20
11048 PIXEL4_31_60
11049 PIXEL4_32_82
11050 PIXEL4_33_82
11051 break;
11052 }
11053 case 245:
11054 case 244:
11055 {
11056 PIXEL4_00_20
11057 PIXEL4_01_60
11058 PIXEL4_02_81
11059 PIXEL4_03_81
11060 PIXEL4_10_60
11061 PIXEL4_11_70
11062 PIXEL4_12_31
11063 PIXEL4_13_31
11064 PIXEL4_20_82
11065 PIXEL4_21_32
11066 PIXEL4_22_0
11067 PIXEL4_23_0
11068 PIXEL4_30_82
11069 PIXEL4_31_32
11070 PIXEL4_32_0
11071 if (diff(w[6], w[8]))
11072 {
11073 PIXEL4_33_0
11074 }
11075 else
11076 {
11077 PIXEL4_33_20
11078 }
11079 break;
11080 }
11081 case 250:
11082 {
11083 PIXEL4_00_80
11084 PIXEL4_01_10
11085 PIXEL4_02_10
11086 PIXEL4_03_80
11087 PIXEL4_10_10
11088 PIXEL4_11_30
11089 PIXEL4_12_30
11090 PIXEL4_13_10
11091 if (diff(w[8], w[4]))
11092 {
11093 PIXEL4_20_0
11094 PIXEL4_30_0
11095 PIXEL4_31_0
11096 }
11097 else
11098 {
11099 PIXEL4_20_50
11100 PIXEL4_30_50
11101 PIXEL4_31_50
11102 }
11103 PIXEL4_21_0
11104 PIXEL4_22_0
11105 if (diff(w[6], w[8]))
11106 {
11107 PIXEL4_23_0
11108 PIXEL4_32_0
11109 PIXEL4_33_0
11110 }
11111 else
11112 {
11113 PIXEL4_23_50
11114 PIXEL4_32_50
11115 PIXEL4_33_50
11116 }
11117 break;
11118 }
11119 case 123:
11120 {
11121 if (diff(w[4], w[2]))
11122 {
11123 PIXEL4_00_0
11124 PIXEL4_01_0
11125 PIXEL4_10_0
11126 }
11127 else
11128 {
11129 PIXEL4_00_50
11130 PIXEL4_01_50
11131 PIXEL4_10_50
11132 }
11133 PIXEL4_02_10
11134 PIXEL4_03_80
11135 PIXEL4_11_0
11136 PIXEL4_12_30
11137 PIXEL4_13_10
11138 if (diff(w[8], w[4]))
11139 {
11140 PIXEL4_20_0
11141 PIXEL4_30_0
11142 PIXEL4_31_0
11143 }
11144 else
11145 {
11146 PIXEL4_20_50
11147 PIXEL4_30_50
11148 PIXEL4_31_50
11149 }
11150 PIXEL4_21_0
11151 PIXEL4_22_30
11152 PIXEL4_23_10
11153 PIXEL4_32_10
11154 PIXEL4_33_80
11155 break;
11156 }
11157 case 95:
11158 {
11159 if (diff(w[4], w[2]))
11160 {
11161 PIXEL4_00_0
11162 PIXEL4_01_0
11163 PIXEL4_10_0
11164 }
11165 else
11166 {
11167 PIXEL4_00_50
11168 PIXEL4_01_50
11169 PIXEL4_10_50
11170 }
11171 if (diff(w[2], w[6]))
11172 {
11173 PIXEL4_02_0
11174 PIXEL4_03_0
11175 PIXEL4_13_0
11176 }
11177 else
11178 {
11179 PIXEL4_02_50
11180 PIXEL4_03_50
11181 PIXEL4_13_50
11182 }
11183 PIXEL4_11_0
11184 PIXEL4_12_0
11185 PIXEL4_20_10
11186 PIXEL4_21_30
11187 PIXEL4_22_30
11188 PIXEL4_23_10
11189 PIXEL4_30_80
11190 PIXEL4_31_10
11191 PIXEL4_32_10
11192 PIXEL4_33_80
11193 break;
11194 }
11195 case 222:
11196 {
11197 PIXEL4_00_80
11198 PIXEL4_01_10
11199 if (diff(w[2], w[6]))
11200 {
11201 PIXEL4_02_0
11202 PIXEL4_03_0
11203 PIXEL4_13_0
11204 }
11205 else
11206 {
11207 PIXEL4_02_50
11208 PIXEL4_03_50
11209 PIXEL4_13_50
11210 }
11211 PIXEL4_10_10
11212 PIXEL4_11_30
11213 PIXEL4_12_0
11214 PIXEL4_20_10
11215 PIXEL4_21_30
11216 PIXEL4_22_0
11217 if (diff(w[6], w[8]))
11218 {
11219 PIXEL4_23_0
11220 PIXEL4_32_0
11221 PIXEL4_33_0
11222 }
11223 else
11224 {
11225 PIXEL4_23_50
11226 PIXEL4_32_50
11227 PIXEL4_33_50
11228 }
11229 PIXEL4_30_80
11230 PIXEL4_31_10
11231 break;
11232 }
11233 case 252:
11234 {
11235 PIXEL4_00_80
11236 PIXEL4_01_61
11237 PIXEL4_02_81
11238 PIXEL4_03_81
11239 PIXEL4_10_10
11240 PIXEL4_11_30
11241 PIXEL4_12_31
11242 PIXEL4_13_31
11243 if (diff(w[8], w[4]))
11244 {
11245 PIXEL4_20_0
11246 PIXEL4_30_0
11247 PIXEL4_31_0
11248 }
11249 else
11250 {
11251 PIXEL4_20_50
11252 PIXEL4_30_50
11253 PIXEL4_31_50
11254 }
11255 PIXEL4_21_0
11256 PIXEL4_22_0
11257 PIXEL4_23_0
11258 PIXEL4_32_0
11259 if (diff(w[6], w[8]))
11260 {
11261 PIXEL4_33_0
11262 }
11263 else
11264 {
11265 PIXEL4_33_20
11266 }
11267 break;
11268 }
11269 case 249:
11270 {
11271 PIXEL4_00_82
11272 PIXEL4_01_82
11273 PIXEL4_02_61
11274 PIXEL4_03_80
11275 PIXEL4_10_32
11276 PIXEL4_11_32
11277 PIXEL4_12_30
11278 PIXEL4_13_10
11279 PIXEL4_20_0
11280 PIXEL4_21_0
11281 PIXEL4_22_0
11282 if (diff(w[6], w[8]))
11283 {
11284 PIXEL4_23_0
11285 PIXEL4_32_0
11286 PIXEL4_33_0
11287 }
11288 else
11289 {
11290 PIXEL4_23_50
11291 PIXEL4_32_50
11292 PIXEL4_33_50
11293 }
11294 if (diff(w[8], w[4]))
11295 {
11296 PIXEL4_30_0
11297 }
11298 else
11299 {
11300 PIXEL4_30_20
11301 }
11302 PIXEL4_31_0
11303 break;
11304 }
11305 case 235:
11306 {
11307 if (diff(w[4], w[2]))
11308 {
11309 PIXEL4_00_0
11310 PIXEL4_01_0
11311 PIXEL4_10_0
11312 }
11313 else
11314 {
11315 PIXEL4_00_50
11316 PIXEL4_01_50
11317 PIXEL4_10_50
11318 }
11319 PIXEL4_02_10
11320 PIXEL4_03_80
11321 PIXEL4_11_0
11322 PIXEL4_12_30
11323 PIXEL4_13_61
11324 PIXEL4_20_0
11325 PIXEL4_21_0
11326 PIXEL4_22_31
11327 PIXEL4_23_81
11328 if (diff(w[8], w[4]))
11329 {
11330 PIXEL4_30_0
11331 }
11332 else
11333 {
11334 PIXEL4_30_20
11335 }
11336 PIXEL4_31_0
11337 PIXEL4_32_31
11338 PIXEL4_33_81
11339 break;
11340 }
11341 case 111:
11342 {
11343 if (diff(w[4], w[2]))
11344 {
11345 PIXEL4_00_0
11346 }
11347 else
11348 {
11349 PIXEL4_00_20
11350 }
11351 PIXEL4_01_0
11352 PIXEL4_02_32
11353 PIXEL4_03_82
11354 PIXEL4_10_0
11355 PIXEL4_11_0
11356 PIXEL4_12_32
11357 PIXEL4_13_82
11358 if (diff(w[8], w[4]))
11359 {
11360 PIXEL4_20_0
11361 PIXEL4_30_0
11362 PIXEL4_31_0
11363 }
11364 else
11365 {
11366 PIXEL4_20_50
11367 PIXEL4_30_50
11368 PIXEL4_31_50
11369 }
11370 PIXEL4_21_0
11371 PIXEL4_22_30
11372 PIXEL4_23_61
11373 PIXEL4_32_10
11374 PIXEL4_33_80
11375 break;
11376 }
11377 case 63:
11378 {
11379 if (diff(w[4], w[2]))
11380 {
11381 PIXEL4_00_0
11382 }
11383 else
11384 {
11385 PIXEL4_00_20
11386 }
11387 PIXEL4_01_0
11388 if (diff(w[2], w[6]))
11389 {
11390 PIXEL4_02_0
11391 PIXEL4_03_0
11392 PIXEL4_13_0
11393 }
11394 else
11395 {
11396 PIXEL4_02_50
11397 PIXEL4_03_50
11398 PIXEL4_13_50
11399 }
11400 PIXEL4_10_0
11401 PIXEL4_11_0
11402 PIXEL4_12_0
11403 PIXEL4_20_31
11404 PIXEL4_21_31
11405 PIXEL4_22_30
11406 PIXEL4_23_10
11407 PIXEL4_30_81
11408 PIXEL4_31_81
11409 PIXEL4_32_61
11410 PIXEL4_33_80
11411 break;
11412 }
11413 case 159:
11414 {
11415 if (diff(w[4], w[2]))
11416 {
11417 PIXEL4_00_0
11418 PIXEL4_01_0
11419 PIXEL4_10_0
11420 }
11421 else
11422 {
11423 PIXEL4_00_50
11424 PIXEL4_01_50
11425 PIXEL4_10_50
11426 }
11427 PIXEL4_02_0
11428 if (diff(w[2], w[6]))
11429 {
11430 PIXEL4_03_0
11431 }
11432 else
11433 {
11434 PIXEL4_03_20
11435 }
11436 PIXEL4_11_0
11437 PIXEL4_12_0
11438 PIXEL4_13_0
11439 PIXEL4_20_10
11440 PIXEL4_21_30
11441 PIXEL4_22_32
11442 PIXEL4_23_32
11443 PIXEL4_30_80
11444 PIXEL4_31_61
11445 PIXEL4_32_82
11446 PIXEL4_33_82
11447 break;
11448 }
11449 case 215:
11450 {
11451 PIXEL4_00_81
11452 PIXEL4_01_31
11453 PIXEL4_02_0
11454 if (diff(w[2], w[6]))
11455 {
11456 PIXEL4_03_0
11457 }
11458 else
11459 {
11460 PIXEL4_03_20
11461 }
11462 PIXEL4_10_81
11463 PIXEL4_11_31
11464 PIXEL4_12_0
11465 PIXEL4_13_0
11466 PIXEL4_20_61
11467 PIXEL4_21_30
11468 PIXEL4_22_0
11469 if (diff(w[6], w[8]))
11470 {
11471 PIXEL4_23_0
11472 PIXEL4_32_0
11473 PIXEL4_33_0
11474 }
11475 else
11476 {
11477 PIXEL4_23_50
11478 PIXEL4_32_50
11479 PIXEL4_33_50
11480 }
11481 PIXEL4_30_80
11482 PIXEL4_31_10
11483 break;
11484 }
11485 case 246:
11486 {
11487 PIXEL4_00_80
11488 PIXEL4_01_10
11489 if (diff(w[2], w[6]))
11490 {
11491 PIXEL4_02_0
11492 PIXEL4_03_0
11493 PIXEL4_13_0
11494 }
11495 else
11496 {
11497 PIXEL4_02_50
11498 PIXEL4_03_50
11499 PIXEL4_13_50
11500 }
11501 PIXEL4_10_61
11502 PIXEL4_11_30
11503 PIXEL4_12_0
11504 PIXEL4_20_82
11505 PIXEL4_21_32
11506 PIXEL4_22_0
11507 PIXEL4_23_0
11508 PIXEL4_30_82
11509 PIXEL4_31_32
11510 PIXEL4_32_0
11511 if (diff(w[6], w[8]))
11512 {
11513 PIXEL4_33_0
11514 }
11515 else
11516 {
11517 PIXEL4_33_20
11518 }
11519 break;
11520 }
11521 case 254:
11522 {
11523 PIXEL4_00_80
11524 PIXEL4_01_10
11525 if (diff(w[2], w[6]))
11526 {
11527 PIXEL4_02_0
11528 PIXEL4_03_0
11529 PIXEL4_13_0
11530 }
11531 else
11532 {
11533 PIXEL4_02_50
11534 PIXEL4_03_50
11535 PIXEL4_13_50
11536 }
11537 PIXEL4_10_10
11538 PIXEL4_11_30
11539 PIXEL4_12_0
11540 if (diff(w[8], w[4]))
11541 {
11542 PIXEL4_20_0
11543 PIXEL4_30_0
11544 PIXEL4_31_0
11545 }
11546 else
11547 {
11548 PIXEL4_20_50
11549 PIXEL4_30_50
11550 PIXEL4_31_50
11551 }
11552 PIXEL4_21_0
11553 PIXEL4_22_0
11554 PIXEL4_23_0
11555 PIXEL4_32_0
11556 if (diff(w[6], w[8]))
11557 {
11558 PIXEL4_33_0
11559 }
11560 else
11561 {
11562 PIXEL4_33_20
11563 }
11564 break;
11565 }
11566 case 253:
11567 {
11568 PIXEL4_00_82
11569 PIXEL4_01_82
11570 PIXEL4_02_81
11571 PIXEL4_03_81
11572 PIXEL4_10_32
11573 PIXEL4_11_32
11574 PIXEL4_12_31
11575 PIXEL4_13_31
11576 PIXEL4_20_0
11577 PIXEL4_21_0
11578 PIXEL4_22_0
11579 PIXEL4_23_0
11580 if (diff(w[8], w[4]))
11581 {
11582 PIXEL4_30_0
11583 }
11584 else
11585 {
11586 PIXEL4_30_20
11587 }
11588 PIXEL4_31_0
11589 PIXEL4_32_0
11590 if (diff(w[6], w[8]))
11591 {
11592 PIXEL4_33_0
11593 }
11594 else
11595 {
11596 PIXEL4_33_20
11597 }
11598 break;
11599 }
11600 case 251:
11601 {
11602 if (diff(w[4], w[2]))
11603 {
11604 PIXEL4_00_0
11605 PIXEL4_01_0
11606 PIXEL4_10_0
11607 }
11608 else
11609 {
11610 PIXEL4_00_50
11611 PIXEL4_01_50
11612 PIXEL4_10_50
11613 }
11614 PIXEL4_02_10
11615 PIXEL4_03_80
11616 PIXEL4_11_0
11617 PIXEL4_12_30
11618 PIXEL4_13_10
11619 PIXEL4_20_0
11620 PIXEL4_21_0
11621 PIXEL4_22_0
11622 if (diff(w[6], w[8]))
11623 {
11624 PIXEL4_23_0
11625 PIXEL4_32_0
11626 PIXEL4_33_0
11627 }
11628 else
11629 {
11630 PIXEL4_23_50
11631 PIXEL4_32_50
11632 PIXEL4_33_50
11633 }
11634 if (diff(w[8], w[4]))
11635 {
11636 PIXEL4_30_0
11637 }
11638 else
11639 {
11640 PIXEL4_30_20
11641 }
11642 PIXEL4_31_0
11643 break;
11644 }
11645 case 239:
11646 {
11647 if (diff(w[4], w[2]))
11648 {
11649 PIXEL4_00_0
11650 }
11651 else
11652 {
11653 PIXEL4_00_20
11654 }
11655 PIXEL4_01_0
11656 PIXEL4_02_32
11657 PIXEL4_03_82
11658 PIXEL4_10_0
11659 PIXEL4_11_0
11660 PIXEL4_12_32
11661 PIXEL4_13_82
11662 PIXEL4_20_0
11663 PIXEL4_21_0
11664 PIXEL4_22_31
11665 PIXEL4_23_81
11666 if (diff(w[8], w[4]))
11667 {
11668 PIXEL4_30_0
11669 }
11670 else
11671 {
11672 PIXEL4_30_20
11673 }
11674 PIXEL4_31_0
11675 PIXEL4_32_31
11676 PIXEL4_33_81
11677 break;
11678 }
11679 case 127:
11680 {
11681 if (diff(w[4], w[2]))
11682 {
11683 PIXEL4_00_0
11684 }
11685 else
11686 {
11687 PIXEL4_00_20
11688 }
11689 PIXEL4_01_0
11690 if (diff(w[2], w[6]))
11691 {
11692 PIXEL4_02_0
11693 PIXEL4_03_0
11694 PIXEL4_13_0
11695 }
11696 else
11697 {
11698 PIXEL4_02_50
11699 PIXEL4_03_50
11700 PIXEL4_13_50
11701 }
11702 PIXEL4_10_0
11703 PIXEL4_11_0
11704 PIXEL4_12_0
11705 if (diff(w[8], w[4]))
11706 {
11707 PIXEL4_20_0
11708 PIXEL4_30_0
11709 PIXEL4_31_0
11710 }
11711 else
11712 {
11713 PIXEL4_20_50
11714 PIXEL4_30_50
11715 PIXEL4_31_50
11716 }
11717 PIXEL4_21_0
11718 PIXEL4_22_30
11719 PIXEL4_23_10
11720 PIXEL4_32_10
11721 PIXEL4_33_80
11722 break;
11723 }
11724 case 191:
11725 {
11726 if (diff(w[4], w[2]))
11727 {
11728 PIXEL4_00_0
11729 }
11730 else
11731 {
11732 PIXEL4_00_20
11733 }
11734 PIXEL4_01_0
11735 PIXEL4_02_0
11736 if (diff(w[2], w[6]))
11737 {
11738 PIXEL4_03_0
11739 }
11740 else
11741 {
11742 PIXEL4_03_20
11743 }
11744 PIXEL4_10_0
11745 PIXEL4_11_0
11746 PIXEL4_12_0
11747 PIXEL4_13_0
11748 PIXEL4_20_31
11749 PIXEL4_21_31
11750 PIXEL4_22_32
11751 PIXEL4_23_32
11752 PIXEL4_30_81
11753 PIXEL4_31_81
11754 PIXEL4_32_82
11755 PIXEL4_33_82
11756 break;
11757 }
11758 case 223:
11759 {
11760 if (diff(w[4], w[2]))
11761 {
11762 PIXEL4_00_0
11763 PIXEL4_01_0
11764 PIXEL4_10_0
11765 }
11766 else
11767 {
11768 PIXEL4_00_50
11769 PIXEL4_01_50
11770 PIXEL4_10_50
11771 }
11772 PIXEL4_02_0
11773 if (diff(w[2], w[6]))
11774 {
11775 PIXEL4_03_0
11776 }
11777 else
11778 {
11779 PIXEL4_03_20
11780 }
11781 PIXEL4_11_0
11782 PIXEL4_12_0
11783 PIXEL4_13_0
11784 PIXEL4_20_10
11785 PIXEL4_21_30
11786 PIXEL4_22_0
11787 if (diff(w[6], w[8]))
11788 {
11789 PIXEL4_23_0
11790 PIXEL4_32_0
11791 PIXEL4_33_0
11792 }
11793 else
11794 {
11795 PIXEL4_23_50
11796 PIXEL4_32_50
11797 PIXEL4_33_50
11798 }
11799 PIXEL4_30_80
11800 PIXEL4_31_10
11801 break;
11802 }
11803 case 247:
11804 {
11805 PIXEL4_00_81
11806 PIXEL4_01_31
11807 PIXEL4_02_0
11808 if (diff(w[2], w[6]))
11809 {
11810 PIXEL4_03_0
11811 }
11812 else
11813 {
11814 PIXEL4_03_20
11815 }
11816 PIXEL4_10_81
11817 PIXEL4_11_31
11818 PIXEL4_12_0
11819 PIXEL4_13_0
11820 PIXEL4_20_82
11821 PIXEL4_21_32
11822 PIXEL4_22_0
11823 PIXEL4_23_0
11824 PIXEL4_30_82
11825 PIXEL4_31_32
11826 PIXEL4_32_0
11827 if (diff(w[6], w[8]))
11828 {
11829 PIXEL4_33_0
11830 }
11831 else
11832 {
11833 PIXEL4_33_20
11834 }
11835 break;
11836 }
11837 case 255:
11838 {
11839 if (diff(w[4], w[2]))
11840 {
11841 PIXEL4_00_0
11842 }
11843 else
11844 {
11845 PIXEL4_00_20
11846 }
11847 PIXEL4_01_0
11848 PIXEL4_02_0
11849 if (diff(w[2], w[6]))
11850 {
11851 PIXEL4_03_0
11852 }
11853 else
11854 {
11855 PIXEL4_03_20
11856 }
11857 PIXEL4_10_0
11858 PIXEL4_11_0
11859 PIXEL4_12_0
11860 PIXEL4_13_0
11861 PIXEL4_20_0
11862 PIXEL4_21_0
11863 PIXEL4_22_0
11864 PIXEL4_23_0
11865 if (diff(w[8], w[4]))
11866 {
11867 PIXEL4_30_0
11868 }
11869 else
11870 {
11871 PIXEL4_30_20
11872 }
11873 PIXEL4_31_0
11874 PIXEL4_32_0
11875 if (diff(w[6], w[8]))
11876 {
11877 PIXEL4_33_0
11878 }
11879 else
11880 {
11881 PIXEL4_33_20
11882 }
11883 break;
11884 }
11885 }
11886
11887 src++;
11888 dst += 4 * dst_Bpp;
11889 }
11890
11891 src = src_temp + src_pitch;
11892 dst = dst_temp + 4 * dst_pitch;
11893 }
11894 }
11895
11896 // kate: tab-width 4; vim: set noet:
11897