1 /*
2 * Copyright (C) 2003 Maxim Stepin ( maxst@hiend3d.com )
3 *
4 * Copyright (C) 2010 Cameron Zemek ( grom@zeminvaders.net)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21 #include <stdint.h>
22 #include "hqx/common.h"
23 #include "hqx/hqx.h"
24
25 #define PIXEL00_1M *dp = Interp1(w[5], w[1]);
26 #define PIXEL00_1U *dp = Interp1(w[5], w[2]);
27 #define PIXEL00_1L *dp = Interp1(w[5], w[4]);
28 #define PIXEL00_2 *dp = Interp2(w[5], w[4], w[2]);
29 #define PIXEL00_4 *dp = Interp4(w[5], w[4], w[2]);
30 #define PIXEL00_5 *dp = Interp5(w[4], w[2]);
31 #define PIXEL00_C *dp = w[5];
32
33 #define PIXEL01_1 *(dp+1) = Interp1(w[5], w[2]);
34 #define PIXEL01_3 *(dp+1) = Interp3(w[5], w[2]);
35 #define PIXEL01_6 *(dp+1) = Interp1(w[2], w[5]);
36 #define PIXEL01_C *(dp+1) = w[5];
37
38 #define PIXEL02_1M *(dp+2) = Interp1(w[5], w[3]);
39 #define PIXEL02_1U *(dp+2) = Interp1(w[5], w[2]);
40 #define PIXEL02_1R *(dp+2) = Interp1(w[5], w[6]);
41 #define PIXEL02_2 *(dp+2) = Interp2(w[5], w[2], w[6]);
42 #define PIXEL02_4 *(dp+2) = Interp4(w[5], w[2], w[6]);
43 #define PIXEL02_5 *(dp+2) = Interp5(w[2], w[6]);
44 #define PIXEL02_C *(dp+2) = w[5];
45
46 #define PIXEL10_1 *(dp+dpL) = Interp1(w[5], w[4]);
47 #define PIXEL10_3 *(dp+dpL) = Interp3(w[5], w[4]);
48 #define PIXEL10_6 *(dp+dpL) = Interp1(w[4], w[5]);
49 #define PIXEL10_C *(dp+dpL) = w[5];
50
51 #define PIXEL11 *(dp+dpL+1) = w[5];
52
53 #define PIXEL12_1 *(dp+dpL+2) = Interp1(w[5], w[6]);
54 #define PIXEL12_3 *(dp+dpL+2) = Interp3(w[5], w[6]);
55 #define PIXEL12_6 *(dp+dpL+2) = Interp1(w[6], w[5]);
56 #define PIXEL12_C *(dp+dpL+2) = w[5];
57
58 #define PIXEL20_1M *(dp+dpL+dpL) = Interp1(w[5], w[7]);
59 #define PIXEL20_1D *(dp+dpL+dpL) = Interp1(w[5], w[8]);
60 #define PIXEL20_1L *(dp+dpL+dpL) = Interp1(w[5], w[4]);
61 #define PIXEL20_2 *(dp+dpL+dpL) = Interp2(w[5], w[8], w[4]);
62 #define PIXEL20_4 *(dp+dpL+dpL) = Interp4(w[5], w[8], w[4]);
63 #define PIXEL20_5 *(dp+dpL+dpL) = Interp5(w[8], w[4]);
64 #define PIXEL20_C *(dp+dpL+dpL) = w[5];
65
66 #define PIXEL21_1 *(dp+dpL+dpL+1) = Interp1(w[5], w[8]);
67 #define PIXEL21_3 *(dp+dpL+dpL+1) = Interp3(w[5], w[8]);
68 #define PIXEL21_6 *(dp+dpL+dpL+1) = Interp1(w[8], w[5]);
69 #define PIXEL21_C *(dp+dpL+dpL+1) = w[5];
70
71 #define PIXEL22_1M *(dp+dpL+dpL+2) = Interp1(w[5], w[9]);
72 #define PIXEL22_1D *(dp+dpL+dpL+2) = Interp1(w[5], w[8]);
73 #define PIXEL22_1R *(dp+dpL+dpL+2) = Interp1(w[5], w[6]);
74 #define PIXEL22_2 *(dp+dpL+dpL+2) = Interp2(w[5], w[6], w[8]);
75 #define PIXEL22_4 *(dp+dpL+dpL+2) = Interp4(w[5], w[6], w[8]);
76 #define PIXEL22_5 *(dp+dpL+dpL+2) = Interp5(w[6], w[8]);
77 #define PIXEL22_C *(dp+dpL+dpL+2) = w[5];
78
hq3x_32_rb(uint32_t * sp,uint32_t srb,uint32_t * dp,uint32_t drb,int Xres,int Yres)79 HQX_API void HQX_CALLCONV hq3x_32_rb( uint32_t * sp, uint32_t srb, uint32_t * dp, uint32_t drb, int Xres, int Yres )
80 {
81 int i, j, k;
82 int prevline, nextline;
83 uint32_t w[10];
84 int dpL = (drb >> 2);
85 int spL = (srb >> 2);
86 uint8_t *sRowP = (uint8_t *) sp;
87 uint8_t *dRowP = (uint8_t *) dp;
88 uint32_t yuv1, yuv2;
89
90 // +----+----+----+
91 // | | | |
92 // | w1 | w2 | w3 |
93 // +----+----+----+
94 // | | | |
95 // | w4 | w5 | w6 |
96 // +----+----+----+
97 // | | | |
98 // | w7 | w8 | w9 |
99 // +----+----+----+
100
101 for (j=0; j<Yres; j++)
102 {
103 if (j>0) prevline = -spL; else prevline = 0;
104 if (j<Yres-1) nextline = spL; else nextline = 0;
105
106 for (i=0; i<Xres; i++)
107 {
108 w[2] = *(sp + prevline);
109 w[5] = *sp;
110 w[8] = *(sp + nextline);
111
112 if (i>0)
113 {
114 w[1] = *(sp + prevline - 1);
115 w[4] = *(sp - 1);
116 w[7] = *(sp + nextline - 1);
117 }
118 else
119 {
120 w[1] = w[2];
121 w[4] = w[5];
122 w[7] = w[8];
123 }
124
125 if (i<Xres-1)
126 {
127 w[3] = *(sp + prevline + 1);
128 w[6] = *(sp + 1);
129 w[9] = *(sp + nextline + 1);
130 }
131 else
132 {
133 w[3] = w[2];
134 w[6] = w[5];
135 w[9] = w[8];
136 }
137
138 int pattern = 0;
139 int flag = 1;
140
141 yuv1 = rgb_to_yuv(w[5]);
142
143 for (k=1; k<=9; k++)
144 {
145 if (k==5) continue;
146
147 if ( w[k] != w[5] )
148 {
149 yuv2 = rgb_to_yuv(w[k]);
150 if (yuv_diff(yuv1, yuv2))
151 pattern |= flag;
152 }
153 flag <<= 1;
154 }
155
156 switch (pattern)
157 {
158 case 0:
159 case 1:
160 case 4:
161 case 32:
162 case 128:
163 case 5:
164 case 132:
165 case 160:
166 case 33:
167 case 129:
168 case 36:
169 case 133:
170 case 164:
171 case 161:
172 case 37:
173 case 165:
174 {
175 PIXEL00_2
176 PIXEL01_1
177 PIXEL02_2
178 PIXEL10_1
179 PIXEL11
180 PIXEL12_1
181 PIXEL20_2
182 PIXEL21_1
183 PIXEL22_2
184 break;
185 }
186 case 2:
187 case 34:
188 case 130:
189 case 162:
190 {
191 PIXEL00_1M
192 PIXEL01_C
193 PIXEL02_1M
194 PIXEL10_1
195 PIXEL11
196 PIXEL12_1
197 PIXEL20_2
198 PIXEL21_1
199 PIXEL22_2
200 break;
201 }
202 case 16:
203 case 17:
204 case 48:
205 case 49:
206 {
207 PIXEL00_2
208 PIXEL01_1
209 PIXEL02_1M
210 PIXEL10_1
211 PIXEL11
212 PIXEL12_C
213 PIXEL20_2
214 PIXEL21_1
215 PIXEL22_1M
216 break;
217 }
218 case 64:
219 case 65:
220 case 68:
221 case 69:
222 {
223 PIXEL00_2
224 PIXEL01_1
225 PIXEL02_2
226 PIXEL10_1
227 PIXEL11
228 PIXEL12_1
229 PIXEL20_1M
230 PIXEL21_C
231 PIXEL22_1M
232 break;
233 }
234 case 8:
235 case 12:
236 case 136:
237 case 140:
238 {
239 PIXEL00_1M
240 PIXEL01_1
241 PIXEL02_2
242 PIXEL10_C
243 PIXEL11
244 PIXEL12_1
245 PIXEL20_1M
246 PIXEL21_1
247 PIXEL22_2
248 break;
249 }
250 case 3:
251 case 35:
252 case 131:
253 case 163:
254 {
255 PIXEL00_1L
256 PIXEL01_C
257 PIXEL02_1M
258 PIXEL10_1
259 PIXEL11
260 PIXEL12_1
261 PIXEL20_2
262 PIXEL21_1
263 PIXEL22_2
264 break;
265 }
266 case 6:
267 case 38:
268 case 134:
269 case 166:
270 {
271 PIXEL00_1M
272 PIXEL01_C
273 PIXEL02_1R
274 PIXEL10_1
275 PIXEL11
276 PIXEL12_1
277 PIXEL20_2
278 PIXEL21_1
279 PIXEL22_2
280 break;
281 }
282 case 20:
283 case 21:
284 case 52:
285 case 53:
286 {
287 PIXEL00_2
288 PIXEL01_1
289 PIXEL02_1U
290 PIXEL10_1
291 PIXEL11
292 PIXEL12_C
293 PIXEL20_2
294 PIXEL21_1
295 PIXEL22_1M
296 break;
297 }
298 case 144:
299 case 145:
300 case 176:
301 case 177:
302 {
303 PIXEL00_2
304 PIXEL01_1
305 PIXEL02_1M
306 PIXEL10_1
307 PIXEL11
308 PIXEL12_C
309 PIXEL20_2
310 PIXEL21_1
311 PIXEL22_1D
312 break;
313 }
314 case 192:
315 case 193:
316 case 196:
317 case 197:
318 {
319 PIXEL00_2
320 PIXEL01_1
321 PIXEL02_2
322 PIXEL10_1
323 PIXEL11
324 PIXEL12_1
325 PIXEL20_1M
326 PIXEL21_C
327 PIXEL22_1R
328 break;
329 }
330 case 96:
331 case 97:
332 case 100:
333 case 101:
334 {
335 PIXEL00_2
336 PIXEL01_1
337 PIXEL02_2
338 PIXEL10_1
339 PIXEL11
340 PIXEL12_1
341 PIXEL20_1L
342 PIXEL21_C
343 PIXEL22_1M
344 break;
345 }
346 case 40:
347 case 44:
348 case 168:
349 case 172:
350 {
351 PIXEL00_1M
352 PIXEL01_1
353 PIXEL02_2
354 PIXEL10_C
355 PIXEL11
356 PIXEL12_1
357 PIXEL20_1D
358 PIXEL21_1
359 PIXEL22_2
360 break;
361 }
362 case 9:
363 case 13:
364 case 137:
365 case 141:
366 {
367 PIXEL00_1U
368 PIXEL01_1
369 PIXEL02_2
370 PIXEL10_C
371 PIXEL11
372 PIXEL12_1
373 PIXEL20_1M
374 PIXEL21_1
375 PIXEL22_2
376 break;
377 }
378 case 18:
379 case 50:
380 {
381 PIXEL00_1M
382 if (Diff(w[2], w[6]))
383 {
384 PIXEL01_C
385 PIXEL02_1M
386 PIXEL12_C
387 }
388 else
389 {
390 PIXEL01_3
391 PIXEL02_4
392 PIXEL12_3
393 }
394 PIXEL10_1
395 PIXEL11
396 PIXEL20_2
397 PIXEL21_1
398 PIXEL22_1M
399 break;
400 }
401 case 80:
402 case 81:
403 {
404 PIXEL00_2
405 PIXEL01_1
406 PIXEL02_1M
407 PIXEL10_1
408 PIXEL11
409 PIXEL20_1M
410 if (Diff(w[6], w[8]))
411 {
412 PIXEL12_C
413 PIXEL21_C
414 PIXEL22_1M
415 }
416 else
417 {
418 PIXEL12_3
419 PIXEL21_3
420 PIXEL22_4
421 }
422 break;
423 }
424 case 72:
425 case 76:
426 {
427 PIXEL00_1M
428 PIXEL01_1
429 PIXEL02_2
430 PIXEL11
431 PIXEL12_1
432 if (Diff(w[8], w[4]))
433 {
434 PIXEL10_C
435 PIXEL20_1M
436 PIXEL21_C
437 }
438 else
439 {
440 PIXEL10_3
441 PIXEL20_4
442 PIXEL21_3
443 }
444 PIXEL22_1M
445 break;
446 }
447 case 10:
448 case 138:
449 {
450 if (Diff(w[4], w[2]))
451 {
452 PIXEL00_1M
453 PIXEL01_C
454 PIXEL10_C
455 }
456 else
457 {
458 PIXEL00_4
459 PIXEL01_3
460 PIXEL10_3
461 }
462 PIXEL02_1M
463 PIXEL11
464 PIXEL12_1
465 PIXEL20_1M
466 PIXEL21_1
467 PIXEL22_2
468 break;
469 }
470 case 66:
471 {
472 PIXEL00_1M
473 PIXEL01_C
474 PIXEL02_1M
475 PIXEL10_1
476 PIXEL11
477 PIXEL12_1
478 PIXEL20_1M
479 PIXEL21_C
480 PIXEL22_1M
481 break;
482 }
483 case 24:
484 {
485 PIXEL00_1M
486 PIXEL01_1
487 PIXEL02_1M
488 PIXEL10_C
489 PIXEL11
490 PIXEL12_C
491 PIXEL20_1M
492 PIXEL21_1
493 PIXEL22_1M
494 break;
495 }
496 case 7:
497 case 39:
498 case 135:
499 {
500 PIXEL00_1L
501 PIXEL01_C
502 PIXEL02_1R
503 PIXEL10_1
504 PIXEL11
505 PIXEL12_1
506 PIXEL20_2
507 PIXEL21_1
508 PIXEL22_2
509 break;
510 }
511 case 148:
512 case 149:
513 case 180:
514 {
515 PIXEL00_2
516 PIXEL01_1
517 PIXEL02_1U
518 PIXEL10_1
519 PIXEL11
520 PIXEL12_C
521 PIXEL20_2
522 PIXEL21_1
523 PIXEL22_1D
524 break;
525 }
526 case 224:
527 case 228:
528 case 225:
529 {
530 PIXEL00_2
531 PIXEL01_1
532 PIXEL02_2
533 PIXEL10_1
534 PIXEL11
535 PIXEL12_1
536 PIXEL20_1L
537 PIXEL21_C
538 PIXEL22_1R
539 break;
540 }
541 case 41:
542 case 169:
543 case 45:
544 {
545 PIXEL00_1U
546 PIXEL01_1
547 PIXEL02_2
548 PIXEL10_C
549 PIXEL11
550 PIXEL12_1
551 PIXEL20_1D
552 PIXEL21_1
553 PIXEL22_2
554 break;
555 }
556 case 22:
557 case 54:
558 {
559 PIXEL00_1M
560 if (Diff(w[2], w[6]))
561 {
562 PIXEL01_C
563 PIXEL02_C
564 PIXEL12_C
565 }
566 else
567 {
568 PIXEL01_3
569 PIXEL02_4
570 PIXEL12_3
571 }
572 PIXEL10_1
573 PIXEL11
574 PIXEL20_2
575 PIXEL21_1
576 PIXEL22_1M
577 break;
578 }
579 case 208:
580 case 209:
581 {
582 PIXEL00_2
583 PIXEL01_1
584 PIXEL02_1M
585 PIXEL10_1
586 PIXEL11
587 PIXEL20_1M
588 if (Diff(w[6], w[8]))
589 {
590 PIXEL12_C
591 PIXEL21_C
592 PIXEL22_C
593 }
594 else
595 {
596 PIXEL12_3
597 PIXEL21_3
598 PIXEL22_4
599 }
600 break;
601 }
602 case 104:
603 case 108:
604 {
605 PIXEL00_1M
606 PIXEL01_1
607 PIXEL02_2
608 PIXEL11
609 PIXEL12_1
610 if (Diff(w[8], w[4]))
611 {
612 PIXEL10_C
613 PIXEL20_C
614 PIXEL21_C
615 }
616 else
617 {
618 PIXEL10_3
619 PIXEL20_4
620 PIXEL21_3
621 }
622 PIXEL22_1M
623 break;
624 }
625 case 11:
626 case 139:
627 {
628 if (Diff(w[4], w[2]))
629 {
630 PIXEL00_C
631 PIXEL01_C
632 PIXEL10_C
633 }
634 else
635 {
636 PIXEL00_4
637 PIXEL01_3
638 PIXEL10_3
639 }
640 PIXEL02_1M
641 PIXEL11
642 PIXEL12_1
643 PIXEL20_1M
644 PIXEL21_1
645 PIXEL22_2
646 break;
647 }
648 case 19:
649 case 51:
650 {
651 if (Diff(w[2], w[6]))
652 {
653 PIXEL00_1L
654 PIXEL01_C
655 PIXEL02_1M
656 PIXEL12_C
657 }
658 else
659 {
660 PIXEL00_2
661 PIXEL01_6
662 PIXEL02_5
663 PIXEL12_1
664 }
665 PIXEL10_1
666 PIXEL11
667 PIXEL20_2
668 PIXEL21_1
669 PIXEL22_1M
670 break;
671 }
672 case 146:
673 case 178:
674 {
675 if (Diff(w[2], w[6]))
676 {
677 PIXEL01_C
678 PIXEL02_1M
679 PIXEL12_C
680 PIXEL22_1D
681 }
682 else
683 {
684 PIXEL01_1
685 PIXEL02_5
686 PIXEL12_6
687 PIXEL22_2
688 }
689 PIXEL00_1M
690 PIXEL10_1
691 PIXEL11
692 PIXEL20_2
693 PIXEL21_1
694 break;
695 }
696 case 84:
697 case 85:
698 {
699 if (Diff(w[6], w[8]))
700 {
701 PIXEL02_1U
702 PIXEL12_C
703 PIXEL21_C
704 PIXEL22_1M
705 }
706 else
707 {
708 PIXEL02_2
709 PIXEL12_6
710 PIXEL21_1
711 PIXEL22_5
712 }
713 PIXEL00_2
714 PIXEL01_1
715 PIXEL10_1
716 PIXEL11
717 PIXEL20_1M
718 break;
719 }
720 case 112:
721 case 113:
722 {
723 if (Diff(w[6], w[8]))
724 {
725 PIXEL12_C
726 PIXEL20_1L
727 PIXEL21_C
728 PIXEL22_1M
729 }
730 else
731 {
732 PIXEL12_1
733 PIXEL20_2
734 PIXEL21_6
735 PIXEL22_5
736 }
737 PIXEL00_2
738 PIXEL01_1
739 PIXEL02_1M
740 PIXEL10_1
741 PIXEL11
742 break;
743 }
744 case 200:
745 case 204:
746 {
747 if (Diff(w[8], w[4]))
748 {
749 PIXEL10_C
750 PIXEL20_1M
751 PIXEL21_C
752 PIXEL22_1R
753 }
754 else
755 {
756 PIXEL10_1
757 PIXEL20_5
758 PIXEL21_6
759 PIXEL22_2
760 }
761 PIXEL00_1M
762 PIXEL01_1
763 PIXEL02_2
764 PIXEL11
765 PIXEL12_1
766 break;
767 }
768 case 73:
769 case 77:
770 {
771 if (Diff(w[8], w[4]))
772 {
773 PIXEL00_1U
774 PIXEL10_C
775 PIXEL20_1M
776 PIXEL21_C
777 }
778 else
779 {
780 PIXEL00_2
781 PIXEL10_6
782 PIXEL20_5
783 PIXEL21_1
784 }
785 PIXEL01_1
786 PIXEL02_2
787 PIXEL11
788 PIXEL12_1
789 PIXEL22_1M
790 break;
791 }
792 case 42:
793 case 170:
794 {
795 if (Diff(w[4], w[2]))
796 {
797 PIXEL00_1M
798 PIXEL01_C
799 PIXEL10_C
800 PIXEL20_1D
801 }
802 else
803 {
804 PIXEL00_5
805 PIXEL01_1
806 PIXEL10_6
807 PIXEL20_2
808 }
809 PIXEL02_1M
810 PIXEL11
811 PIXEL12_1
812 PIXEL21_1
813 PIXEL22_2
814 break;
815 }
816 case 14:
817 case 142:
818 {
819 if (Diff(w[4], w[2]))
820 {
821 PIXEL00_1M
822 PIXEL01_C
823 PIXEL02_1R
824 PIXEL10_C
825 }
826 else
827 {
828 PIXEL00_5
829 PIXEL01_6
830 PIXEL02_2
831 PIXEL10_1
832 }
833 PIXEL11
834 PIXEL12_1
835 PIXEL20_1M
836 PIXEL21_1
837 PIXEL22_2
838 break;
839 }
840 case 67:
841 {
842 PIXEL00_1L
843 PIXEL01_C
844 PIXEL02_1M
845 PIXEL10_1
846 PIXEL11
847 PIXEL12_1
848 PIXEL20_1M
849 PIXEL21_C
850 PIXEL22_1M
851 break;
852 }
853 case 70:
854 {
855 PIXEL00_1M
856 PIXEL01_C
857 PIXEL02_1R
858 PIXEL10_1
859 PIXEL11
860 PIXEL12_1
861 PIXEL20_1M
862 PIXEL21_C
863 PIXEL22_1M
864 break;
865 }
866 case 28:
867 {
868 PIXEL00_1M
869 PIXEL01_1
870 PIXEL02_1U
871 PIXEL10_C
872 PIXEL11
873 PIXEL12_C
874 PIXEL20_1M
875 PIXEL21_1
876 PIXEL22_1M
877 break;
878 }
879 case 152:
880 {
881 PIXEL00_1M
882 PIXEL01_1
883 PIXEL02_1M
884 PIXEL10_C
885 PIXEL11
886 PIXEL12_C
887 PIXEL20_1M
888 PIXEL21_1
889 PIXEL22_1D
890 break;
891 }
892 case 194:
893 {
894 PIXEL00_1M
895 PIXEL01_C
896 PIXEL02_1M
897 PIXEL10_1
898 PIXEL11
899 PIXEL12_1
900 PIXEL20_1M
901 PIXEL21_C
902 PIXEL22_1R
903 break;
904 }
905 case 98:
906 {
907 PIXEL00_1M
908 PIXEL01_C
909 PIXEL02_1M
910 PIXEL10_1
911 PIXEL11
912 PIXEL12_1
913 PIXEL20_1L
914 PIXEL21_C
915 PIXEL22_1M
916 break;
917 }
918 case 56:
919 {
920 PIXEL00_1M
921 PIXEL01_1
922 PIXEL02_1M
923 PIXEL10_C
924 PIXEL11
925 PIXEL12_C
926 PIXEL20_1D
927 PIXEL21_1
928 PIXEL22_1M
929 break;
930 }
931 case 25:
932 {
933 PIXEL00_1U
934 PIXEL01_1
935 PIXEL02_1M
936 PIXEL10_C
937 PIXEL11
938 PIXEL12_C
939 PIXEL20_1M
940 PIXEL21_1
941 PIXEL22_1M
942 break;
943 }
944 case 26:
945 case 31:
946 {
947 if (Diff(w[4], w[2]))
948 {
949 PIXEL00_C
950 PIXEL10_C
951 }
952 else
953 {
954 PIXEL00_4
955 PIXEL10_3
956 }
957 PIXEL01_C
958 if (Diff(w[2], w[6]))
959 {
960 PIXEL02_C
961 PIXEL12_C
962 }
963 else
964 {
965 PIXEL02_4
966 PIXEL12_3
967 }
968 PIXEL11
969 PIXEL20_1M
970 PIXEL21_1
971 PIXEL22_1M
972 break;
973 }
974 case 82:
975 case 214:
976 {
977 PIXEL00_1M
978 if (Diff(w[2], w[6]))
979 {
980 PIXEL01_C
981 PIXEL02_C
982 }
983 else
984 {
985 PIXEL01_3
986 PIXEL02_4
987 }
988 PIXEL10_1
989 PIXEL11
990 PIXEL12_C
991 PIXEL20_1M
992 if (Diff(w[6], w[8]))
993 {
994 PIXEL21_C
995 PIXEL22_C
996 }
997 else
998 {
999 PIXEL21_3
1000 PIXEL22_4
1001 }
1002 break;
1003 }
1004 case 88:
1005 case 248:
1006 {
1007 PIXEL00_1M
1008 PIXEL01_1
1009 PIXEL02_1M
1010 PIXEL11
1011 if (Diff(w[8], w[4]))
1012 {
1013 PIXEL10_C
1014 PIXEL20_C
1015 }
1016 else
1017 {
1018 PIXEL10_3
1019 PIXEL20_4
1020 }
1021 PIXEL21_C
1022 if (Diff(w[6], w[8]))
1023 {
1024 PIXEL12_C
1025 PIXEL22_C
1026 }
1027 else
1028 {
1029 PIXEL12_3
1030 PIXEL22_4
1031 }
1032 break;
1033 }
1034 case 74:
1035 case 107:
1036 {
1037 if (Diff(w[4], w[2]))
1038 {
1039 PIXEL00_C
1040 PIXEL01_C
1041 }
1042 else
1043 {
1044 PIXEL00_4
1045 PIXEL01_3
1046 }
1047 PIXEL02_1M
1048 PIXEL10_C
1049 PIXEL11
1050 PIXEL12_1
1051 if (Diff(w[8], w[4]))
1052 {
1053 PIXEL20_C
1054 PIXEL21_C
1055 }
1056 else
1057 {
1058 PIXEL20_4
1059 PIXEL21_3
1060 }
1061 PIXEL22_1M
1062 break;
1063 }
1064 case 27:
1065 {
1066 if (Diff(w[4], w[2]))
1067 {
1068 PIXEL00_C
1069 PIXEL01_C
1070 PIXEL10_C
1071 }
1072 else
1073 {
1074 PIXEL00_4
1075 PIXEL01_3
1076 PIXEL10_3
1077 }
1078 PIXEL02_1M
1079 PIXEL11
1080 PIXEL12_C
1081 PIXEL20_1M
1082 PIXEL21_1
1083 PIXEL22_1M
1084 break;
1085 }
1086 case 86:
1087 {
1088 PIXEL00_1M
1089 if (Diff(w[2], w[6]))
1090 {
1091 PIXEL01_C
1092 PIXEL02_C
1093 PIXEL12_C
1094 }
1095 else
1096 {
1097 PIXEL01_3
1098 PIXEL02_4
1099 PIXEL12_3
1100 }
1101 PIXEL10_1
1102 PIXEL11
1103 PIXEL20_1M
1104 PIXEL21_C
1105 PIXEL22_1M
1106 break;
1107 }
1108 case 216:
1109 {
1110 PIXEL00_1M
1111 PIXEL01_1
1112 PIXEL02_1M
1113 PIXEL10_C
1114 PIXEL11
1115 PIXEL20_1M
1116 if (Diff(w[6], w[8]))
1117 {
1118 PIXEL12_C
1119 PIXEL21_C
1120 PIXEL22_C
1121 }
1122 else
1123 {
1124 PIXEL12_3
1125 PIXEL21_3
1126 PIXEL22_4
1127 }
1128 break;
1129 }
1130 case 106:
1131 {
1132 PIXEL00_1M
1133 PIXEL01_C
1134 PIXEL02_1M
1135 PIXEL11
1136 PIXEL12_1
1137 if (Diff(w[8], w[4]))
1138 {
1139 PIXEL10_C
1140 PIXEL20_C
1141 PIXEL21_C
1142 }
1143 else
1144 {
1145 PIXEL10_3
1146 PIXEL20_4
1147 PIXEL21_3
1148 }
1149 PIXEL22_1M
1150 break;
1151 }
1152 case 30:
1153 {
1154 PIXEL00_1M
1155 if (Diff(w[2], w[6]))
1156 {
1157 PIXEL01_C
1158 PIXEL02_C
1159 PIXEL12_C
1160 }
1161 else
1162 {
1163 PIXEL01_3
1164 PIXEL02_4
1165 PIXEL12_3
1166 }
1167 PIXEL10_C
1168 PIXEL11
1169 PIXEL20_1M
1170 PIXEL21_1
1171 PIXEL22_1M
1172 break;
1173 }
1174 case 210:
1175 {
1176 PIXEL00_1M
1177 PIXEL01_C
1178 PIXEL02_1M
1179 PIXEL10_1
1180 PIXEL11
1181 PIXEL20_1M
1182 if (Diff(w[6], w[8]))
1183 {
1184 PIXEL12_C
1185 PIXEL21_C
1186 PIXEL22_C
1187 }
1188 else
1189 {
1190 PIXEL12_3
1191 PIXEL21_3
1192 PIXEL22_4
1193 }
1194 break;
1195 }
1196 case 120:
1197 {
1198 PIXEL00_1M
1199 PIXEL01_1
1200 PIXEL02_1M
1201 PIXEL11
1202 PIXEL12_C
1203 if (Diff(w[8], w[4]))
1204 {
1205 PIXEL10_C
1206 PIXEL20_C
1207 PIXEL21_C
1208 }
1209 else
1210 {
1211 PIXEL10_3
1212 PIXEL20_4
1213 PIXEL21_3
1214 }
1215 PIXEL22_1M
1216 break;
1217 }
1218 case 75:
1219 {
1220 if (Diff(w[4], w[2]))
1221 {
1222 PIXEL00_C
1223 PIXEL01_C
1224 PIXEL10_C
1225 }
1226 else
1227 {
1228 PIXEL00_4
1229 PIXEL01_3
1230 PIXEL10_3
1231 }
1232 PIXEL02_1M
1233 PIXEL11
1234 PIXEL12_1
1235 PIXEL20_1M
1236 PIXEL21_C
1237 PIXEL22_1M
1238 break;
1239 }
1240 case 29:
1241 {
1242 PIXEL00_1U
1243 PIXEL01_1
1244 PIXEL02_1U
1245 PIXEL10_C
1246 PIXEL11
1247 PIXEL12_C
1248 PIXEL20_1M
1249 PIXEL21_1
1250 PIXEL22_1M
1251 break;
1252 }
1253 case 198:
1254 {
1255 PIXEL00_1M
1256 PIXEL01_C
1257 PIXEL02_1R
1258 PIXEL10_1
1259 PIXEL11
1260 PIXEL12_1
1261 PIXEL20_1M
1262 PIXEL21_C
1263 PIXEL22_1R
1264 break;
1265 }
1266 case 184:
1267 {
1268 PIXEL00_1M
1269 PIXEL01_1
1270 PIXEL02_1M
1271 PIXEL10_C
1272 PIXEL11
1273 PIXEL12_C
1274 PIXEL20_1D
1275 PIXEL21_1
1276 PIXEL22_1D
1277 break;
1278 }
1279 case 99:
1280 {
1281 PIXEL00_1L
1282 PIXEL01_C
1283 PIXEL02_1M
1284 PIXEL10_1
1285 PIXEL11
1286 PIXEL12_1
1287 PIXEL20_1L
1288 PIXEL21_C
1289 PIXEL22_1M
1290 break;
1291 }
1292 case 57:
1293 {
1294 PIXEL00_1U
1295 PIXEL01_1
1296 PIXEL02_1M
1297 PIXEL10_C
1298 PIXEL11
1299 PIXEL12_C
1300 PIXEL20_1D
1301 PIXEL21_1
1302 PIXEL22_1M
1303 break;
1304 }
1305 case 71:
1306 {
1307 PIXEL00_1L
1308 PIXEL01_C
1309 PIXEL02_1R
1310 PIXEL10_1
1311 PIXEL11
1312 PIXEL12_1
1313 PIXEL20_1M
1314 PIXEL21_C
1315 PIXEL22_1M
1316 break;
1317 }
1318 case 156:
1319 {
1320 PIXEL00_1M
1321 PIXEL01_1
1322 PIXEL02_1U
1323 PIXEL10_C
1324 PIXEL11
1325 PIXEL12_C
1326 PIXEL20_1M
1327 PIXEL21_1
1328 PIXEL22_1D
1329 break;
1330 }
1331 case 226:
1332 {
1333 PIXEL00_1M
1334 PIXEL01_C
1335 PIXEL02_1M
1336 PIXEL10_1
1337 PIXEL11
1338 PIXEL12_1
1339 PIXEL20_1L
1340 PIXEL21_C
1341 PIXEL22_1R
1342 break;
1343 }
1344 case 60:
1345 {
1346 PIXEL00_1M
1347 PIXEL01_1
1348 PIXEL02_1U
1349 PIXEL10_C
1350 PIXEL11
1351 PIXEL12_C
1352 PIXEL20_1D
1353 PIXEL21_1
1354 PIXEL22_1M
1355 break;
1356 }
1357 case 195:
1358 {
1359 PIXEL00_1L
1360 PIXEL01_C
1361 PIXEL02_1M
1362 PIXEL10_1
1363 PIXEL11
1364 PIXEL12_1
1365 PIXEL20_1M
1366 PIXEL21_C
1367 PIXEL22_1R
1368 break;
1369 }
1370 case 102:
1371 {
1372 PIXEL00_1M
1373 PIXEL01_C
1374 PIXEL02_1R
1375 PIXEL10_1
1376 PIXEL11
1377 PIXEL12_1
1378 PIXEL20_1L
1379 PIXEL21_C
1380 PIXEL22_1M
1381 break;
1382 }
1383 case 153:
1384 {
1385 PIXEL00_1U
1386 PIXEL01_1
1387 PIXEL02_1M
1388 PIXEL10_C
1389 PIXEL11
1390 PIXEL12_C
1391 PIXEL20_1M
1392 PIXEL21_1
1393 PIXEL22_1D
1394 break;
1395 }
1396 case 58:
1397 {
1398 if (Diff(w[4], w[2]))
1399 {
1400 PIXEL00_1M
1401 }
1402 else
1403 {
1404 PIXEL00_2
1405 }
1406 PIXEL01_C
1407 if (Diff(w[2], w[6]))
1408 {
1409 PIXEL02_1M
1410 }
1411 else
1412 {
1413 PIXEL02_2
1414 }
1415 PIXEL10_C
1416 PIXEL11
1417 PIXEL12_C
1418 PIXEL20_1D
1419 PIXEL21_1
1420 PIXEL22_1M
1421 break;
1422 }
1423 case 83:
1424 {
1425 PIXEL00_1L
1426 PIXEL01_C
1427 if (Diff(w[2], w[6]))
1428 {
1429 PIXEL02_1M
1430 }
1431 else
1432 {
1433 PIXEL02_2
1434 }
1435 PIXEL10_1
1436 PIXEL11
1437 PIXEL12_C
1438 PIXEL20_1M
1439 PIXEL21_C
1440 if (Diff(w[6], w[8]))
1441 {
1442 PIXEL22_1M
1443 }
1444 else
1445 {
1446 PIXEL22_2
1447 }
1448 break;
1449 }
1450 case 92:
1451 {
1452 PIXEL00_1M
1453 PIXEL01_1
1454 PIXEL02_1U
1455 PIXEL10_C
1456 PIXEL11
1457 PIXEL12_C
1458 if (Diff(w[8], w[4]))
1459 {
1460 PIXEL20_1M
1461 }
1462 else
1463 {
1464 PIXEL20_2
1465 }
1466 PIXEL21_C
1467 if (Diff(w[6], w[8]))
1468 {
1469 PIXEL22_1M
1470 }
1471 else
1472 {
1473 PIXEL22_2
1474 }
1475 break;
1476 }
1477 case 202:
1478 {
1479 if (Diff(w[4], w[2]))
1480 {
1481 PIXEL00_1M
1482 }
1483 else
1484 {
1485 PIXEL00_2
1486 }
1487 PIXEL01_C
1488 PIXEL02_1M
1489 PIXEL10_C
1490 PIXEL11
1491 PIXEL12_1
1492 if (Diff(w[8], w[4]))
1493 {
1494 PIXEL20_1M
1495 }
1496 else
1497 {
1498 PIXEL20_2
1499 }
1500 PIXEL21_C
1501 PIXEL22_1R
1502 break;
1503 }
1504 case 78:
1505 {
1506 if (Diff(w[4], w[2]))
1507 {
1508 PIXEL00_1M
1509 }
1510 else
1511 {
1512 PIXEL00_2
1513 }
1514 PIXEL01_C
1515 PIXEL02_1R
1516 PIXEL10_C
1517 PIXEL11
1518 PIXEL12_1
1519 if (Diff(w[8], w[4]))
1520 {
1521 PIXEL20_1M
1522 }
1523 else
1524 {
1525 PIXEL20_2
1526 }
1527 PIXEL21_C
1528 PIXEL22_1M
1529 break;
1530 }
1531 case 154:
1532 {
1533 if (Diff(w[4], w[2]))
1534 {
1535 PIXEL00_1M
1536 }
1537 else
1538 {
1539 PIXEL00_2
1540 }
1541 PIXEL01_C
1542 if (Diff(w[2], w[6]))
1543 {
1544 PIXEL02_1M
1545 }
1546 else
1547 {
1548 PIXEL02_2
1549 }
1550 PIXEL10_C
1551 PIXEL11
1552 PIXEL12_C
1553 PIXEL20_1M
1554 PIXEL21_1
1555 PIXEL22_1D
1556 break;
1557 }
1558 case 114:
1559 {
1560 PIXEL00_1M
1561 PIXEL01_C
1562 if (Diff(w[2], w[6]))
1563 {
1564 PIXEL02_1M
1565 }
1566 else
1567 {
1568 PIXEL02_2
1569 }
1570 PIXEL10_1
1571 PIXEL11
1572 PIXEL12_C
1573 PIXEL20_1L
1574 PIXEL21_C
1575 if (Diff(w[6], w[8]))
1576 {
1577 PIXEL22_1M
1578 }
1579 else
1580 {
1581 PIXEL22_2
1582 }
1583 break;
1584 }
1585 case 89:
1586 {
1587 PIXEL00_1U
1588 PIXEL01_1
1589 PIXEL02_1M
1590 PIXEL10_C
1591 PIXEL11
1592 PIXEL12_C
1593 if (Diff(w[8], w[4]))
1594 {
1595 PIXEL20_1M
1596 }
1597 else
1598 {
1599 PIXEL20_2
1600 }
1601 PIXEL21_C
1602 if (Diff(w[6], w[8]))
1603 {
1604 PIXEL22_1M
1605 }
1606 else
1607 {
1608 PIXEL22_2
1609 }
1610 break;
1611 }
1612 case 90:
1613 {
1614 if (Diff(w[4], w[2]))
1615 {
1616 PIXEL00_1M
1617 }
1618 else
1619 {
1620 PIXEL00_2
1621 }
1622 PIXEL01_C
1623 if (Diff(w[2], w[6]))
1624 {
1625 PIXEL02_1M
1626 }
1627 else
1628 {
1629 PIXEL02_2
1630 }
1631 PIXEL10_C
1632 PIXEL11
1633 PIXEL12_C
1634 if (Diff(w[8], w[4]))
1635 {
1636 PIXEL20_1M
1637 }
1638 else
1639 {
1640 PIXEL20_2
1641 }
1642 PIXEL21_C
1643 if (Diff(w[6], w[8]))
1644 {
1645 PIXEL22_1M
1646 }
1647 else
1648 {
1649 PIXEL22_2
1650 }
1651 break;
1652 }
1653 case 55:
1654 case 23:
1655 {
1656 if (Diff(w[2], w[6]))
1657 {
1658 PIXEL00_1L
1659 PIXEL01_C
1660 PIXEL02_C
1661 PIXEL12_C
1662 }
1663 else
1664 {
1665 PIXEL00_2
1666 PIXEL01_6
1667 PIXEL02_5
1668 PIXEL12_1
1669 }
1670 PIXEL10_1
1671 PIXEL11
1672 PIXEL20_2
1673 PIXEL21_1
1674 PIXEL22_1M
1675 break;
1676 }
1677 case 182:
1678 case 150:
1679 {
1680 if (Diff(w[2], w[6]))
1681 {
1682 PIXEL01_C
1683 PIXEL02_C
1684 PIXEL12_C
1685 PIXEL22_1D
1686 }
1687 else
1688 {
1689 PIXEL01_1
1690 PIXEL02_5
1691 PIXEL12_6
1692 PIXEL22_2
1693 }
1694 PIXEL00_1M
1695 PIXEL10_1
1696 PIXEL11
1697 PIXEL20_2
1698 PIXEL21_1
1699 break;
1700 }
1701 case 213:
1702 case 212:
1703 {
1704 if (Diff(w[6], w[8]))
1705 {
1706 PIXEL02_1U
1707 PIXEL12_C
1708 PIXEL21_C
1709 PIXEL22_C
1710 }
1711 else
1712 {
1713 PIXEL02_2
1714 PIXEL12_6
1715 PIXEL21_1
1716 PIXEL22_5
1717 }
1718 PIXEL00_2
1719 PIXEL01_1
1720 PIXEL10_1
1721 PIXEL11
1722 PIXEL20_1M
1723 break;
1724 }
1725 case 241:
1726 case 240:
1727 {
1728 if (Diff(w[6], w[8]))
1729 {
1730 PIXEL12_C
1731 PIXEL20_1L
1732 PIXEL21_C
1733 PIXEL22_C
1734 }
1735 else
1736 {
1737 PIXEL12_1
1738 PIXEL20_2
1739 PIXEL21_6
1740 PIXEL22_5
1741 }
1742 PIXEL00_2
1743 PIXEL01_1
1744 PIXEL02_1M
1745 PIXEL10_1
1746 PIXEL11
1747 break;
1748 }
1749 case 236:
1750 case 232:
1751 {
1752 if (Diff(w[8], w[4]))
1753 {
1754 PIXEL10_C
1755 PIXEL20_C
1756 PIXEL21_C
1757 PIXEL22_1R
1758 }
1759 else
1760 {
1761 PIXEL10_1
1762 PIXEL20_5
1763 PIXEL21_6
1764 PIXEL22_2
1765 }
1766 PIXEL00_1M
1767 PIXEL01_1
1768 PIXEL02_2
1769 PIXEL11
1770 PIXEL12_1
1771 break;
1772 }
1773 case 109:
1774 case 105:
1775 {
1776 if (Diff(w[8], w[4]))
1777 {
1778 PIXEL00_1U
1779 PIXEL10_C
1780 PIXEL20_C
1781 PIXEL21_C
1782 }
1783 else
1784 {
1785 PIXEL00_2
1786 PIXEL10_6
1787 PIXEL20_5
1788 PIXEL21_1
1789 }
1790 PIXEL01_1
1791 PIXEL02_2
1792 PIXEL11
1793 PIXEL12_1
1794 PIXEL22_1M
1795 break;
1796 }
1797 case 171:
1798 case 43:
1799 {
1800 if (Diff(w[4], w[2]))
1801 {
1802 PIXEL00_C
1803 PIXEL01_C
1804 PIXEL10_C
1805 PIXEL20_1D
1806 }
1807 else
1808 {
1809 PIXEL00_5
1810 PIXEL01_1
1811 PIXEL10_6
1812 PIXEL20_2
1813 }
1814 PIXEL02_1M
1815 PIXEL11
1816 PIXEL12_1
1817 PIXEL21_1
1818 PIXEL22_2
1819 break;
1820 }
1821 case 143:
1822 case 15:
1823 {
1824 if (Diff(w[4], w[2]))
1825 {
1826 PIXEL00_C
1827 PIXEL01_C
1828 PIXEL02_1R
1829 PIXEL10_C
1830 }
1831 else
1832 {
1833 PIXEL00_5
1834 PIXEL01_6
1835 PIXEL02_2
1836 PIXEL10_1
1837 }
1838 PIXEL11
1839 PIXEL12_1
1840 PIXEL20_1M
1841 PIXEL21_1
1842 PIXEL22_2
1843 break;
1844 }
1845 case 124:
1846 {
1847 PIXEL00_1M
1848 PIXEL01_1
1849 PIXEL02_1U
1850 PIXEL11
1851 PIXEL12_C
1852 if (Diff(w[8], w[4]))
1853 {
1854 PIXEL10_C
1855 PIXEL20_C
1856 PIXEL21_C
1857 }
1858 else
1859 {
1860 PIXEL10_3
1861 PIXEL20_4
1862 PIXEL21_3
1863 }
1864 PIXEL22_1M
1865 break;
1866 }
1867 case 203:
1868 {
1869 if (Diff(w[4], w[2]))
1870 {
1871 PIXEL00_C
1872 PIXEL01_C
1873 PIXEL10_C
1874 }
1875 else
1876 {
1877 PIXEL00_4
1878 PIXEL01_3
1879 PIXEL10_3
1880 }
1881 PIXEL02_1M
1882 PIXEL11
1883 PIXEL12_1
1884 PIXEL20_1M
1885 PIXEL21_C
1886 PIXEL22_1R
1887 break;
1888 }
1889 case 62:
1890 {
1891 PIXEL00_1M
1892 if (Diff(w[2], w[6]))
1893 {
1894 PIXEL01_C
1895 PIXEL02_C
1896 PIXEL12_C
1897 }
1898 else
1899 {
1900 PIXEL01_3
1901 PIXEL02_4
1902 PIXEL12_3
1903 }
1904 PIXEL10_C
1905 PIXEL11
1906 PIXEL20_1D
1907 PIXEL21_1
1908 PIXEL22_1M
1909 break;
1910 }
1911 case 211:
1912 {
1913 PIXEL00_1L
1914 PIXEL01_C
1915 PIXEL02_1M
1916 PIXEL10_1
1917 PIXEL11
1918 PIXEL20_1M
1919 if (Diff(w[6], w[8]))
1920 {
1921 PIXEL12_C
1922 PIXEL21_C
1923 PIXEL22_C
1924 }
1925 else
1926 {
1927 PIXEL12_3
1928 PIXEL21_3
1929 PIXEL22_4
1930 }
1931 break;
1932 }
1933 case 118:
1934 {
1935 PIXEL00_1M
1936 if (Diff(w[2], w[6]))
1937 {
1938 PIXEL01_C
1939 PIXEL02_C
1940 PIXEL12_C
1941 }
1942 else
1943 {
1944 PIXEL01_3
1945 PIXEL02_4
1946 PIXEL12_3
1947 }
1948 PIXEL10_1
1949 PIXEL11
1950 PIXEL20_1L
1951 PIXEL21_C
1952 PIXEL22_1M
1953 break;
1954 }
1955 case 217:
1956 {
1957 PIXEL00_1U
1958 PIXEL01_1
1959 PIXEL02_1M
1960 PIXEL10_C
1961 PIXEL11
1962 PIXEL20_1M
1963 if (Diff(w[6], w[8]))
1964 {
1965 PIXEL12_C
1966 PIXEL21_C
1967 PIXEL22_C
1968 }
1969 else
1970 {
1971 PIXEL12_3
1972 PIXEL21_3
1973 PIXEL22_4
1974 }
1975 break;
1976 }
1977 case 110:
1978 {
1979 PIXEL00_1M
1980 PIXEL01_C
1981 PIXEL02_1R
1982 PIXEL11
1983 PIXEL12_1
1984 if (Diff(w[8], w[4]))
1985 {
1986 PIXEL10_C
1987 PIXEL20_C
1988 PIXEL21_C
1989 }
1990 else
1991 {
1992 PIXEL10_3
1993 PIXEL20_4
1994 PIXEL21_3
1995 }
1996 PIXEL22_1M
1997 break;
1998 }
1999 case 155:
2000 {
2001 if (Diff(w[4], w[2]))
2002 {
2003 PIXEL00_C
2004 PIXEL01_C
2005 PIXEL10_C
2006 }
2007 else
2008 {
2009 PIXEL00_4
2010 PIXEL01_3
2011 PIXEL10_3
2012 }
2013 PIXEL02_1M
2014 PIXEL11
2015 PIXEL12_C
2016 PIXEL20_1M
2017 PIXEL21_1
2018 PIXEL22_1D
2019 break;
2020 }
2021 case 188:
2022 {
2023 PIXEL00_1M
2024 PIXEL01_1
2025 PIXEL02_1U
2026 PIXEL10_C
2027 PIXEL11
2028 PIXEL12_C
2029 PIXEL20_1D
2030 PIXEL21_1
2031 PIXEL22_1D
2032 break;
2033 }
2034 case 185:
2035 {
2036 PIXEL00_1U
2037 PIXEL01_1
2038 PIXEL02_1M
2039 PIXEL10_C
2040 PIXEL11
2041 PIXEL12_C
2042 PIXEL20_1D
2043 PIXEL21_1
2044 PIXEL22_1D
2045 break;
2046 }
2047 case 61:
2048 {
2049 PIXEL00_1U
2050 PIXEL01_1
2051 PIXEL02_1U
2052 PIXEL10_C
2053 PIXEL11
2054 PIXEL12_C
2055 PIXEL20_1D
2056 PIXEL21_1
2057 PIXEL22_1M
2058 break;
2059 }
2060 case 157:
2061 {
2062 PIXEL00_1U
2063 PIXEL01_1
2064 PIXEL02_1U
2065 PIXEL10_C
2066 PIXEL11
2067 PIXEL12_C
2068 PIXEL20_1M
2069 PIXEL21_1
2070 PIXEL22_1D
2071 break;
2072 }
2073 case 103:
2074 {
2075 PIXEL00_1L
2076 PIXEL01_C
2077 PIXEL02_1R
2078 PIXEL10_1
2079 PIXEL11
2080 PIXEL12_1
2081 PIXEL20_1L
2082 PIXEL21_C
2083 PIXEL22_1M
2084 break;
2085 }
2086 case 227:
2087 {
2088 PIXEL00_1L
2089 PIXEL01_C
2090 PIXEL02_1M
2091 PIXEL10_1
2092 PIXEL11
2093 PIXEL12_1
2094 PIXEL20_1L
2095 PIXEL21_C
2096 PIXEL22_1R
2097 break;
2098 }
2099 case 230:
2100 {
2101 PIXEL00_1M
2102 PIXEL01_C
2103 PIXEL02_1R
2104 PIXEL10_1
2105 PIXEL11
2106 PIXEL12_1
2107 PIXEL20_1L
2108 PIXEL21_C
2109 PIXEL22_1R
2110 break;
2111 }
2112 case 199:
2113 {
2114 PIXEL00_1L
2115 PIXEL01_C
2116 PIXEL02_1R
2117 PIXEL10_1
2118 PIXEL11
2119 PIXEL12_1
2120 PIXEL20_1M
2121 PIXEL21_C
2122 PIXEL22_1R
2123 break;
2124 }
2125 case 220:
2126 {
2127 PIXEL00_1M
2128 PIXEL01_1
2129 PIXEL02_1U
2130 PIXEL10_C
2131 PIXEL11
2132 if (Diff(w[8], w[4]))
2133 {
2134 PIXEL20_1M
2135 }
2136 else
2137 {
2138 PIXEL20_2
2139 }
2140 if (Diff(w[6], w[8]))
2141 {
2142 PIXEL12_C
2143 PIXEL21_C
2144 PIXEL22_C
2145 }
2146 else
2147 {
2148 PIXEL12_3
2149 PIXEL21_3
2150 PIXEL22_4
2151 }
2152 break;
2153 }
2154 case 158:
2155 {
2156 if (Diff(w[4], w[2]))
2157 {
2158 PIXEL00_1M
2159 }
2160 else
2161 {
2162 PIXEL00_2
2163 }
2164 if (Diff(w[2], w[6]))
2165 {
2166 PIXEL01_C
2167 PIXEL02_C
2168 PIXEL12_C
2169 }
2170 else
2171 {
2172 PIXEL01_3
2173 PIXEL02_4
2174 PIXEL12_3
2175 }
2176 PIXEL10_C
2177 PIXEL11
2178 PIXEL20_1M
2179 PIXEL21_1
2180 PIXEL22_1D
2181 break;
2182 }
2183 case 234:
2184 {
2185 if (Diff(w[4], w[2]))
2186 {
2187 PIXEL00_1M
2188 }
2189 else
2190 {
2191 PIXEL00_2
2192 }
2193 PIXEL01_C
2194 PIXEL02_1M
2195 PIXEL11
2196 PIXEL12_1
2197 if (Diff(w[8], w[4]))
2198 {
2199 PIXEL10_C
2200 PIXEL20_C
2201 PIXEL21_C
2202 }
2203 else
2204 {
2205 PIXEL10_3
2206 PIXEL20_4
2207 PIXEL21_3
2208 }
2209 PIXEL22_1R
2210 break;
2211 }
2212 case 242:
2213 {
2214 PIXEL00_1M
2215 PIXEL01_C
2216 if (Diff(w[2], w[6]))
2217 {
2218 PIXEL02_1M
2219 }
2220 else
2221 {
2222 PIXEL02_2
2223 }
2224 PIXEL10_1
2225 PIXEL11
2226 PIXEL20_1L
2227 if (Diff(w[6], w[8]))
2228 {
2229 PIXEL12_C
2230 PIXEL21_C
2231 PIXEL22_C
2232 }
2233 else
2234 {
2235 PIXEL12_3
2236 PIXEL21_3
2237 PIXEL22_4
2238 }
2239 break;
2240 }
2241 case 59:
2242 {
2243 if (Diff(w[4], w[2]))
2244 {
2245 PIXEL00_C
2246 PIXEL01_C
2247 PIXEL10_C
2248 }
2249 else
2250 {
2251 PIXEL00_4
2252 PIXEL01_3
2253 PIXEL10_3
2254 }
2255 if (Diff(w[2], w[6]))
2256 {
2257 PIXEL02_1M
2258 }
2259 else
2260 {
2261 PIXEL02_2
2262 }
2263 PIXEL11
2264 PIXEL12_C
2265 PIXEL20_1D
2266 PIXEL21_1
2267 PIXEL22_1M
2268 break;
2269 }
2270 case 121:
2271 {
2272 PIXEL00_1U
2273 PIXEL01_1
2274 PIXEL02_1M
2275 PIXEL11
2276 PIXEL12_C
2277 if (Diff(w[8], w[4]))
2278 {
2279 PIXEL10_C
2280 PIXEL20_C
2281 PIXEL21_C
2282 }
2283 else
2284 {
2285 PIXEL10_3
2286 PIXEL20_4
2287 PIXEL21_3
2288 }
2289 if (Diff(w[6], w[8]))
2290 {
2291 PIXEL22_1M
2292 }
2293 else
2294 {
2295 PIXEL22_2
2296 }
2297 break;
2298 }
2299 case 87:
2300 {
2301 PIXEL00_1L
2302 if (Diff(w[2], w[6]))
2303 {
2304 PIXEL01_C
2305 PIXEL02_C
2306 PIXEL12_C
2307 }
2308 else
2309 {
2310 PIXEL01_3
2311 PIXEL02_4
2312 PIXEL12_3
2313 }
2314 PIXEL10_1
2315 PIXEL11
2316 PIXEL20_1M
2317 PIXEL21_C
2318 if (Diff(w[6], w[8]))
2319 {
2320 PIXEL22_1M
2321 }
2322 else
2323 {
2324 PIXEL22_2
2325 }
2326 break;
2327 }
2328 case 79:
2329 {
2330 if (Diff(w[4], w[2]))
2331 {
2332 PIXEL00_C
2333 PIXEL01_C
2334 PIXEL10_C
2335 }
2336 else
2337 {
2338 PIXEL00_4
2339 PIXEL01_3
2340 PIXEL10_3
2341 }
2342 PIXEL02_1R
2343 PIXEL11
2344 PIXEL12_1
2345 if (Diff(w[8], w[4]))
2346 {
2347 PIXEL20_1M
2348 }
2349 else
2350 {
2351 PIXEL20_2
2352 }
2353 PIXEL21_C
2354 PIXEL22_1M
2355 break;
2356 }
2357 case 122:
2358 {
2359 if (Diff(w[4], w[2]))
2360 {
2361 PIXEL00_1M
2362 }
2363 else
2364 {
2365 PIXEL00_2
2366 }
2367 PIXEL01_C
2368 if (Diff(w[2], w[6]))
2369 {
2370 PIXEL02_1M
2371 }
2372 else
2373 {
2374 PIXEL02_2
2375 }
2376 PIXEL11
2377 PIXEL12_C
2378 if (Diff(w[8], w[4]))
2379 {
2380 PIXEL10_C
2381 PIXEL20_C
2382 PIXEL21_C
2383 }
2384 else
2385 {
2386 PIXEL10_3
2387 PIXEL20_4
2388 PIXEL21_3
2389 }
2390 if (Diff(w[6], w[8]))
2391 {
2392 PIXEL22_1M
2393 }
2394 else
2395 {
2396 PIXEL22_2
2397 }
2398 break;
2399 }
2400 case 94:
2401 {
2402 if (Diff(w[4], w[2]))
2403 {
2404 PIXEL00_1M
2405 }
2406 else
2407 {
2408 PIXEL00_2
2409 }
2410 if (Diff(w[2], w[6]))
2411 {
2412 PIXEL01_C
2413 PIXEL02_C
2414 PIXEL12_C
2415 }
2416 else
2417 {
2418 PIXEL01_3
2419 PIXEL02_4
2420 PIXEL12_3
2421 }
2422 PIXEL10_C
2423 PIXEL11
2424 if (Diff(w[8], w[4]))
2425 {
2426 PIXEL20_1M
2427 }
2428 else
2429 {
2430 PIXEL20_2
2431 }
2432 PIXEL21_C
2433 if (Diff(w[6], w[8]))
2434 {
2435 PIXEL22_1M
2436 }
2437 else
2438 {
2439 PIXEL22_2
2440 }
2441 break;
2442 }
2443 case 218:
2444 {
2445 if (Diff(w[4], w[2]))
2446 {
2447 PIXEL00_1M
2448 }
2449 else
2450 {
2451 PIXEL00_2
2452 }
2453 PIXEL01_C
2454 if (Diff(w[2], w[6]))
2455 {
2456 PIXEL02_1M
2457 }
2458 else
2459 {
2460 PIXEL02_2
2461 }
2462 PIXEL10_C
2463 PIXEL11
2464 if (Diff(w[8], w[4]))
2465 {
2466 PIXEL20_1M
2467 }
2468 else
2469 {
2470 PIXEL20_2
2471 }
2472 if (Diff(w[6], w[8]))
2473 {
2474 PIXEL12_C
2475 PIXEL21_C
2476 PIXEL22_C
2477 }
2478 else
2479 {
2480 PIXEL12_3
2481 PIXEL21_3
2482 PIXEL22_4
2483 }
2484 break;
2485 }
2486 case 91:
2487 {
2488 if (Diff(w[4], w[2]))
2489 {
2490 PIXEL00_C
2491 PIXEL01_C
2492 PIXEL10_C
2493 }
2494 else
2495 {
2496 PIXEL00_4
2497 PIXEL01_3
2498 PIXEL10_3
2499 }
2500 if (Diff(w[2], w[6]))
2501 {
2502 PIXEL02_1M
2503 }
2504 else
2505 {
2506 PIXEL02_2
2507 }
2508 PIXEL11
2509 PIXEL12_C
2510 if (Diff(w[8], w[4]))
2511 {
2512 PIXEL20_1M
2513 }
2514 else
2515 {
2516 PIXEL20_2
2517 }
2518 PIXEL21_C
2519 if (Diff(w[6], w[8]))
2520 {
2521 PIXEL22_1M
2522 }
2523 else
2524 {
2525 PIXEL22_2
2526 }
2527 break;
2528 }
2529 case 229:
2530 {
2531 PIXEL00_2
2532 PIXEL01_1
2533 PIXEL02_2
2534 PIXEL10_1
2535 PIXEL11
2536 PIXEL12_1
2537 PIXEL20_1L
2538 PIXEL21_C
2539 PIXEL22_1R
2540 break;
2541 }
2542 case 167:
2543 {
2544 PIXEL00_1L
2545 PIXEL01_C
2546 PIXEL02_1R
2547 PIXEL10_1
2548 PIXEL11
2549 PIXEL12_1
2550 PIXEL20_2
2551 PIXEL21_1
2552 PIXEL22_2
2553 break;
2554 }
2555 case 173:
2556 {
2557 PIXEL00_1U
2558 PIXEL01_1
2559 PIXEL02_2
2560 PIXEL10_C
2561 PIXEL11
2562 PIXEL12_1
2563 PIXEL20_1D
2564 PIXEL21_1
2565 PIXEL22_2
2566 break;
2567 }
2568 case 181:
2569 {
2570 PIXEL00_2
2571 PIXEL01_1
2572 PIXEL02_1U
2573 PIXEL10_1
2574 PIXEL11
2575 PIXEL12_C
2576 PIXEL20_2
2577 PIXEL21_1
2578 PIXEL22_1D
2579 break;
2580 }
2581 case 186:
2582 {
2583 if (Diff(w[4], w[2]))
2584 {
2585 PIXEL00_1M
2586 }
2587 else
2588 {
2589 PIXEL00_2
2590 }
2591 PIXEL01_C
2592 if (Diff(w[2], w[6]))
2593 {
2594 PIXEL02_1M
2595 }
2596 else
2597 {
2598 PIXEL02_2
2599 }
2600 PIXEL10_C
2601 PIXEL11
2602 PIXEL12_C
2603 PIXEL20_1D
2604 PIXEL21_1
2605 PIXEL22_1D
2606 break;
2607 }
2608 case 115:
2609 {
2610 PIXEL00_1L
2611 PIXEL01_C
2612 if (Diff(w[2], w[6]))
2613 {
2614 PIXEL02_1M
2615 }
2616 else
2617 {
2618 PIXEL02_2
2619 }
2620 PIXEL10_1
2621 PIXEL11
2622 PIXEL12_C
2623 PIXEL20_1L
2624 PIXEL21_C
2625 if (Diff(w[6], w[8]))
2626 {
2627 PIXEL22_1M
2628 }
2629 else
2630 {
2631 PIXEL22_2
2632 }
2633 break;
2634 }
2635 case 93:
2636 {
2637 PIXEL00_1U
2638 PIXEL01_1
2639 PIXEL02_1U
2640 PIXEL10_C
2641 PIXEL11
2642 PIXEL12_C
2643 if (Diff(w[8], w[4]))
2644 {
2645 PIXEL20_1M
2646 }
2647 else
2648 {
2649 PIXEL20_2
2650 }
2651 PIXEL21_C
2652 if (Diff(w[6], w[8]))
2653 {
2654 PIXEL22_1M
2655 }
2656 else
2657 {
2658 PIXEL22_2
2659 }
2660 break;
2661 }
2662 case 206:
2663 {
2664 if (Diff(w[4], w[2]))
2665 {
2666 PIXEL00_1M
2667 }
2668 else
2669 {
2670 PIXEL00_2
2671 }
2672 PIXEL01_C
2673 PIXEL02_1R
2674 PIXEL10_C
2675 PIXEL11
2676 PIXEL12_1
2677 if (Diff(w[8], w[4]))
2678 {
2679 PIXEL20_1M
2680 }
2681 else
2682 {
2683 PIXEL20_2
2684 }
2685 PIXEL21_C
2686 PIXEL22_1R
2687 break;
2688 }
2689 case 205:
2690 case 201:
2691 {
2692 PIXEL00_1U
2693 PIXEL01_1
2694 PIXEL02_2
2695 PIXEL10_C
2696 PIXEL11
2697 PIXEL12_1
2698 if (Diff(w[8], w[4]))
2699 {
2700 PIXEL20_1M
2701 }
2702 else
2703 {
2704 PIXEL20_2
2705 }
2706 PIXEL21_C
2707 PIXEL22_1R
2708 break;
2709 }
2710 case 174:
2711 case 46:
2712 {
2713 if (Diff(w[4], w[2]))
2714 {
2715 PIXEL00_1M
2716 }
2717 else
2718 {
2719 PIXEL00_2
2720 }
2721 PIXEL01_C
2722 PIXEL02_1R
2723 PIXEL10_C
2724 PIXEL11
2725 PIXEL12_1
2726 PIXEL20_1D
2727 PIXEL21_1
2728 PIXEL22_2
2729 break;
2730 }
2731 case 179:
2732 case 147:
2733 {
2734 PIXEL00_1L
2735 PIXEL01_C
2736 if (Diff(w[2], w[6]))
2737 {
2738 PIXEL02_1M
2739 }
2740 else
2741 {
2742 PIXEL02_2
2743 }
2744 PIXEL10_1
2745 PIXEL11
2746 PIXEL12_C
2747 PIXEL20_2
2748 PIXEL21_1
2749 PIXEL22_1D
2750 break;
2751 }
2752 case 117:
2753 case 116:
2754 {
2755 PIXEL00_2
2756 PIXEL01_1
2757 PIXEL02_1U
2758 PIXEL10_1
2759 PIXEL11
2760 PIXEL12_C
2761 PIXEL20_1L
2762 PIXEL21_C
2763 if (Diff(w[6], w[8]))
2764 {
2765 PIXEL22_1M
2766 }
2767 else
2768 {
2769 PIXEL22_2
2770 }
2771 break;
2772 }
2773 case 189:
2774 {
2775 PIXEL00_1U
2776 PIXEL01_1
2777 PIXEL02_1U
2778 PIXEL10_C
2779 PIXEL11
2780 PIXEL12_C
2781 PIXEL20_1D
2782 PIXEL21_1
2783 PIXEL22_1D
2784 break;
2785 }
2786 case 231:
2787 {
2788 PIXEL00_1L
2789 PIXEL01_C
2790 PIXEL02_1R
2791 PIXEL10_1
2792 PIXEL11
2793 PIXEL12_1
2794 PIXEL20_1L
2795 PIXEL21_C
2796 PIXEL22_1R
2797 break;
2798 }
2799 case 126:
2800 {
2801 PIXEL00_1M
2802 if (Diff(w[2], w[6]))
2803 {
2804 PIXEL01_C
2805 PIXEL02_C
2806 PIXEL12_C
2807 }
2808 else
2809 {
2810 PIXEL01_3
2811 PIXEL02_4
2812 PIXEL12_3
2813 }
2814 PIXEL11
2815 if (Diff(w[8], w[4]))
2816 {
2817 PIXEL10_C
2818 PIXEL20_C
2819 PIXEL21_C
2820 }
2821 else
2822 {
2823 PIXEL10_3
2824 PIXEL20_4
2825 PIXEL21_3
2826 }
2827 PIXEL22_1M
2828 break;
2829 }
2830 case 219:
2831 {
2832 if (Diff(w[4], w[2]))
2833 {
2834 PIXEL00_C
2835 PIXEL01_C
2836 PIXEL10_C
2837 }
2838 else
2839 {
2840 PIXEL00_4
2841 PIXEL01_3
2842 PIXEL10_3
2843 }
2844 PIXEL02_1M
2845 PIXEL11
2846 PIXEL20_1M
2847 if (Diff(w[6], w[8]))
2848 {
2849 PIXEL12_C
2850 PIXEL21_C
2851 PIXEL22_C
2852 }
2853 else
2854 {
2855 PIXEL12_3
2856 PIXEL21_3
2857 PIXEL22_4
2858 }
2859 break;
2860 }
2861 case 125:
2862 {
2863 if (Diff(w[8], w[4]))
2864 {
2865 PIXEL00_1U
2866 PIXEL10_C
2867 PIXEL20_C
2868 PIXEL21_C
2869 }
2870 else
2871 {
2872 PIXEL00_2
2873 PIXEL10_6
2874 PIXEL20_5
2875 PIXEL21_1
2876 }
2877 PIXEL01_1
2878 PIXEL02_1U
2879 PIXEL11
2880 PIXEL12_C
2881 PIXEL22_1M
2882 break;
2883 }
2884 case 221:
2885 {
2886 if (Diff(w[6], w[8]))
2887 {
2888 PIXEL02_1U
2889 PIXEL12_C
2890 PIXEL21_C
2891 PIXEL22_C
2892 }
2893 else
2894 {
2895 PIXEL02_2
2896 PIXEL12_6
2897 PIXEL21_1
2898 PIXEL22_5
2899 }
2900 PIXEL00_1U
2901 PIXEL01_1
2902 PIXEL10_C
2903 PIXEL11
2904 PIXEL20_1M
2905 break;
2906 }
2907 case 207:
2908 {
2909 if (Diff(w[4], w[2]))
2910 {
2911 PIXEL00_C
2912 PIXEL01_C
2913 PIXEL02_1R
2914 PIXEL10_C
2915 }
2916 else
2917 {
2918 PIXEL00_5
2919 PIXEL01_6
2920 PIXEL02_2
2921 PIXEL10_1
2922 }
2923 PIXEL11
2924 PIXEL12_1
2925 PIXEL20_1M
2926 PIXEL21_C
2927 PIXEL22_1R
2928 break;
2929 }
2930 case 238:
2931 {
2932 if (Diff(w[8], w[4]))
2933 {
2934 PIXEL10_C
2935 PIXEL20_C
2936 PIXEL21_C
2937 PIXEL22_1R
2938 }
2939 else
2940 {
2941 PIXEL10_1
2942 PIXEL20_5
2943 PIXEL21_6
2944 PIXEL22_2
2945 }
2946 PIXEL00_1M
2947 PIXEL01_C
2948 PIXEL02_1R
2949 PIXEL11
2950 PIXEL12_1
2951 break;
2952 }
2953 case 190:
2954 {
2955 if (Diff(w[2], w[6]))
2956 {
2957 PIXEL01_C
2958 PIXEL02_C
2959 PIXEL12_C
2960 PIXEL22_1D
2961 }
2962 else
2963 {
2964 PIXEL01_1
2965 PIXEL02_5
2966 PIXEL12_6
2967 PIXEL22_2
2968 }
2969 PIXEL00_1M
2970 PIXEL10_C
2971 PIXEL11
2972 PIXEL20_1D
2973 PIXEL21_1
2974 break;
2975 }
2976 case 187:
2977 {
2978 if (Diff(w[4], w[2]))
2979 {
2980 PIXEL00_C
2981 PIXEL01_C
2982 PIXEL10_C
2983 PIXEL20_1D
2984 }
2985 else
2986 {
2987 PIXEL00_5
2988 PIXEL01_1
2989 PIXEL10_6
2990 PIXEL20_2
2991 }
2992 PIXEL02_1M
2993 PIXEL11
2994 PIXEL12_C
2995 PIXEL21_1
2996 PIXEL22_1D
2997 break;
2998 }
2999 case 243:
3000 {
3001 if (Diff(w[6], w[8]))
3002 {
3003 PIXEL12_C
3004 PIXEL20_1L
3005 PIXEL21_C
3006 PIXEL22_C
3007 }
3008 else
3009 {
3010 PIXEL12_1
3011 PIXEL20_2
3012 PIXEL21_6
3013 PIXEL22_5
3014 }
3015 PIXEL00_1L
3016 PIXEL01_C
3017 PIXEL02_1M
3018 PIXEL10_1
3019 PIXEL11
3020 break;
3021 }
3022 case 119:
3023 {
3024 if (Diff(w[2], w[6]))
3025 {
3026 PIXEL00_1L
3027 PIXEL01_C
3028 PIXEL02_C
3029 PIXEL12_C
3030 }
3031 else
3032 {
3033 PIXEL00_2
3034 PIXEL01_6
3035 PIXEL02_5
3036 PIXEL12_1
3037 }
3038 PIXEL10_1
3039 PIXEL11
3040 PIXEL20_1L
3041 PIXEL21_C
3042 PIXEL22_1M
3043 break;
3044 }
3045 case 237:
3046 case 233:
3047 {
3048 PIXEL00_1U
3049 PIXEL01_1
3050 PIXEL02_2
3051 PIXEL10_C
3052 PIXEL11
3053 PIXEL12_1
3054 if (Diff(w[8], w[4]))
3055 {
3056 PIXEL20_C
3057 }
3058 else
3059 {
3060 PIXEL20_2
3061 }
3062 PIXEL21_C
3063 PIXEL22_1R
3064 break;
3065 }
3066 case 175:
3067 case 47:
3068 {
3069 if (Diff(w[4], w[2]))
3070 {
3071 PIXEL00_C
3072 }
3073 else
3074 {
3075 PIXEL00_2
3076 }
3077 PIXEL01_C
3078 PIXEL02_1R
3079 PIXEL10_C
3080 PIXEL11
3081 PIXEL12_1
3082 PIXEL20_1D
3083 PIXEL21_1
3084 PIXEL22_2
3085 break;
3086 }
3087 case 183:
3088 case 151:
3089 {
3090 PIXEL00_1L
3091 PIXEL01_C
3092 if (Diff(w[2], w[6]))
3093 {
3094 PIXEL02_C
3095 }
3096 else
3097 {
3098 PIXEL02_2
3099 }
3100 PIXEL10_1
3101 PIXEL11
3102 PIXEL12_C
3103 PIXEL20_2
3104 PIXEL21_1
3105 PIXEL22_1D
3106 break;
3107 }
3108 case 245:
3109 case 244:
3110 {
3111 PIXEL00_2
3112 PIXEL01_1
3113 PIXEL02_1U
3114 PIXEL10_1
3115 PIXEL11
3116 PIXEL12_C
3117 PIXEL20_1L
3118 PIXEL21_C
3119 if (Diff(w[6], w[8]))
3120 {
3121 PIXEL22_C
3122 }
3123 else
3124 {
3125 PIXEL22_2
3126 }
3127 break;
3128 }
3129 case 250:
3130 {
3131 PIXEL00_1M
3132 PIXEL01_C
3133 PIXEL02_1M
3134 PIXEL11
3135 if (Diff(w[8], w[4]))
3136 {
3137 PIXEL10_C
3138 PIXEL20_C
3139 }
3140 else
3141 {
3142 PIXEL10_3
3143 PIXEL20_4
3144 }
3145 PIXEL21_C
3146 if (Diff(w[6], w[8]))
3147 {
3148 PIXEL12_C
3149 PIXEL22_C
3150 }
3151 else
3152 {
3153 PIXEL12_3
3154 PIXEL22_4
3155 }
3156 break;
3157 }
3158 case 123:
3159 {
3160 if (Diff(w[4], w[2]))
3161 {
3162 PIXEL00_C
3163 PIXEL01_C
3164 }
3165 else
3166 {
3167 PIXEL00_4
3168 PIXEL01_3
3169 }
3170 PIXEL02_1M
3171 PIXEL10_C
3172 PIXEL11
3173 PIXEL12_C
3174 if (Diff(w[8], w[4]))
3175 {
3176 PIXEL20_C
3177 PIXEL21_C
3178 }
3179 else
3180 {
3181 PIXEL20_4
3182 PIXEL21_3
3183 }
3184 PIXEL22_1M
3185 break;
3186 }
3187 case 95:
3188 {
3189 if (Diff(w[4], w[2]))
3190 {
3191 PIXEL00_C
3192 PIXEL10_C
3193 }
3194 else
3195 {
3196 PIXEL00_4
3197 PIXEL10_3
3198 }
3199 PIXEL01_C
3200 if (Diff(w[2], w[6]))
3201 {
3202 PIXEL02_C
3203 PIXEL12_C
3204 }
3205 else
3206 {
3207 PIXEL02_4
3208 PIXEL12_3
3209 }
3210 PIXEL11
3211 PIXEL20_1M
3212 PIXEL21_C
3213 PIXEL22_1M
3214 break;
3215 }
3216 case 222:
3217 {
3218 PIXEL00_1M
3219 if (Diff(w[2], w[6]))
3220 {
3221 PIXEL01_C
3222 PIXEL02_C
3223 }
3224 else
3225 {
3226 PIXEL01_3
3227 PIXEL02_4
3228 }
3229 PIXEL10_C
3230 PIXEL11
3231 PIXEL12_C
3232 PIXEL20_1M
3233 if (Diff(w[6], w[8]))
3234 {
3235 PIXEL21_C
3236 PIXEL22_C
3237 }
3238 else
3239 {
3240 PIXEL21_3
3241 PIXEL22_4
3242 }
3243 break;
3244 }
3245 case 252:
3246 {
3247 PIXEL00_1M
3248 PIXEL01_1
3249 PIXEL02_1U
3250 PIXEL11
3251 PIXEL12_C
3252 if (Diff(w[8], w[4]))
3253 {
3254 PIXEL10_C
3255 PIXEL20_C
3256 }
3257 else
3258 {
3259 PIXEL10_3
3260 PIXEL20_4
3261 }
3262 PIXEL21_C
3263 if (Diff(w[6], w[8]))
3264 {
3265 PIXEL22_C
3266 }
3267 else
3268 {
3269 PIXEL22_2
3270 }
3271 break;
3272 }
3273 case 249:
3274 {
3275 PIXEL00_1U
3276 PIXEL01_1
3277 PIXEL02_1M
3278 PIXEL10_C
3279 PIXEL11
3280 if (Diff(w[8], w[4]))
3281 {
3282 PIXEL20_C
3283 }
3284 else
3285 {
3286 PIXEL20_2
3287 }
3288 PIXEL21_C
3289 if (Diff(w[6], w[8]))
3290 {
3291 PIXEL12_C
3292 PIXEL22_C
3293 }
3294 else
3295 {
3296 PIXEL12_3
3297 PIXEL22_4
3298 }
3299 break;
3300 }
3301 case 235:
3302 {
3303 if (Diff(w[4], w[2]))
3304 {
3305 PIXEL00_C
3306 PIXEL01_C
3307 }
3308 else
3309 {
3310 PIXEL00_4
3311 PIXEL01_3
3312 }
3313 PIXEL02_1M
3314 PIXEL10_C
3315 PIXEL11
3316 PIXEL12_1
3317 if (Diff(w[8], w[4]))
3318 {
3319 PIXEL20_C
3320 }
3321 else
3322 {
3323 PIXEL20_2
3324 }
3325 PIXEL21_C
3326 PIXEL22_1R
3327 break;
3328 }
3329 case 111:
3330 {
3331 if (Diff(w[4], w[2]))
3332 {
3333 PIXEL00_C
3334 }
3335 else
3336 {
3337 PIXEL00_2
3338 }
3339 PIXEL01_C
3340 PIXEL02_1R
3341 PIXEL10_C
3342 PIXEL11
3343 PIXEL12_1
3344 if (Diff(w[8], w[4]))
3345 {
3346 PIXEL20_C
3347 PIXEL21_C
3348 }
3349 else
3350 {
3351 PIXEL20_4
3352 PIXEL21_3
3353 }
3354 PIXEL22_1M
3355 break;
3356 }
3357 case 63:
3358 {
3359 if (Diff(w[4], w[2]))
3360 {
3361 PIXEL00_C
3362 }
3363 else
3364 {
3365 PIXEL00_2
3366 }
3367 PIXEL01_C
3368 if (Diff(w[2], w[6]))
3369 {
3370 PIXEL02_C
3371 PIXEL12_C
3372 }
3373 else
3374 {
3375 PIXEL02_4
3376 PIXEL12_3
3377 }
3378 PIXEL10_C
3379 PIXEL11
3380 PIXEL20_1D
3381 PIXEL21_1
3382 PIXEL22_1M
3383 break;
3384 }
3385 case 159:
3386 {
3387 if (Diff(w[4], w[2]))
3388 {
3389 PIXEL00_C
3390 PIXEL10_C
3391 }
3392 else
3393 {
3394 PIXEL00_4
3395 PIXEL10_3
3396 }
3397 PIXEL01_C
3398 if (Diff(w[2], w[6]))
3399 {
3400 PIXEL02_C
3401 }
3402 else
3403 {
3404 PIXEL02_2
3405 }
3406 PIXEL11
3407 PIXEL12_C
3408 PIXEL20_1M
3409 PIXEL21_1
3410 PIXEL22_1D
3411 break;
3412 }
3413 case 215:
3414 {
3415 PIXEL00_1L
3416 PIXEL01_C
3417 if (Diff(w[2], w[6]))
3418 {
3419 PIXEL02_C
3420 }
3421 else
3422 {
3423 PIXEL02_2
3424 }
3425 PIXEL10_1
3426 PIXEL11
3427 PIXEL12_C
3428 PIXEL20_1M
3429 if (Diff(w[6], w[8]))
3430 {
3431 PIXEL21_C
3432 PIXEL22_C
3433 }
3434 else
3435 {
3436 PIXEL21_3
3437 PIXEL22_4
3438 }
3439 break;
3440 }
3441 case 246:
3442 {
3443 PIXEL00_1M
3444 if (Diff(w[2], w[6]))
3445 {
3446 PIXEL01_C
3447 PIXEL02_C
3448 }
3449 else
3450 {
3451 PIXEL01_3
3452 PIXEL02_4
3453 }
3454 PIXEL10_1
3455 PIXEL11
3456 PIXEL12_C
3457 PIXEL20_1L
3458 PIXEL21_C
3459 if (Diff(w[6], w[8]))
3460 {
3461 PIXEL22_C
3462 }
3463 else
3464 {
3465 PIXEL22_2
3466 }
3467 break;
3468 }
3469 case 254:
3470 {
3471 PIXEL00_1M
3472 if (Diff(w[2], w[6]))
3473 {
3474 PIXEL01_C
3475 PIXEL02_C
3476 }
3477 else
3478 {
3479 PIXEL01_3
3480 PIXEL02_4
3481 }
3482 PIXEL11
3483 if (Diff(w[8], w[4]))
3484 {
3485 PIXEL10_C
3486 PIXEL20_C
3487 }
3488 else
3489 {
3490 PIXEL10_3
3491 PIXEL20_4
3492 }
3493 if (Diff(w[6], w[8]))
3494 {
3495 PIXEL12_C
3496 PIXEL21_C
3497 PIXEL22_C
3498 }
3499 else
3500 {
3501 PIXEL12_3
3502 PIXEL21_3
3503 PIXEL22_2
3504 }
3505 break;
3506 }
3507 case 253:
3508 {
3509 PIXEL00_1U
3510 PIXEL01_1
3511 PIXEL02_1U
3512 PIXEL10_C
3513 PIXEL11
3514 PIXEL12_C
3515 if (Diff(w[8], w[4]))
3516 {
3517 PIXEL20_C
3518 }
3519 else
3520 {
3521 PIXEL20_2
3522 }
3523 PIXEL21_C
3524 if (Diff(w[6], w[8]))
3525 {
3526 PIXEL22_C
3527 }
3528 else
3529 {
3530 PIXEL22_2
3531 }
3532 break;
3533 }
3534 case 251:
3535 {
3536 if (Diff(w[4], w[2]))
3537 {
3538 PIXEL00_C
3539 PIXEL01_C
3540 }
3541 else
3542 {
3543 PIXEL00_4
3544 PIXEL01_3
3545 }
3546 PIXEL02_1M
3547 PIXEL11
3548 if (Diff(w[8], w[4]))
3549 {
3550 PIXEL10_C
3551 PIXEL20_C
3552 PIXEL21_C
3553 }
3554 else
3555 {
3556 PIXEL10_3
3557 PIXEL20_2
3558 PIXEL21_3
3559 }
3560 if (Diff(w[6], w[8]))
3561 {
3562 PIXEL12_C
3563 PIXEL22_C
3564 }
3565 else
3566 {
3567 PIXEL12_3
3568 PIXEL22_4
3569 }
3570 break;
3571 }
3572 case 239:
3573 {
3574 if (Diff(w[4], w[2]))
3575 {
3576 PIXEL00_C
3577 }
3578 else
3579 {
3580 PIXEL00_2
3581 }
3582 PIXEL01_C
3583 PIXEL02_1R
3584 PIXEL10_C
3585 PIXEL11
3586 PIXEL12_1
3587 if (Diff(w[8], w[4]))
3588 {
3589 PIXEL20_C
3590 }
3591 else
3592 {
3593 PIXEL20_2
3594 }
3595 PIXEL21_C
3596 PIXEL22_1R
3597 break;
3598 }
3599 case 127:
3600 {
3601 if (Diff(w[4], w[2]))
3602 {
3603 PIXEL00_C
3604 PIXEL01_C
3605 PIXEL10_C
3606 }
3607 else
3608 {
3609 PIXEL00_2
3610 PIXEL01_3
3611 PIXEL10_3
3612 }
3613 if (Diff(w[2], w[6]))
3614 {
3615 PIXEL02_C
3616 PIXEL12_C
3617 }
3618 else
3619 {
3620 PIXEL02_4
3621 PIXEL12_3
3622 }
3623 PIXEL11
3624 if (Diff(w[8], w[4]))
3625 {
3626 PIXEL20_C
3627 PIXEL21_C
3628 }
3629 else
3630 {
3631 PIXEL20_4
3632 PIXEL21_3
3633 }
3634 PIXEL22_1M
3635 break;
3636 }
3637 case 191:
3638 {
3639 if (Diff(w[4], w[2]))
3640 {
3641 PIXEL00_C
3642 }
3643 else
3644 {
3645 PIXEL00_2
3646 }
3647 PIXEL01_C
3648 if (Diff(w[2], w[6]))
3649 {
3650 PIXEL02_C
3651 }
3652 else
3653 {
3654 PIXEL02_2
3655 }
3656 PIXEL10_C
3657 PIXEL11
3658 PIXEL12_C
3659 PIXEL20_1D
3660 PIXEL21_1
3661 PIXEL22_1D
3662 break;
3663 }
3664 case 223:
3665 {
3666 if (Diff(w[4], w[2]))
3667 {
3668 PIXEL00_C
3669 PIXEL10_C
3670 }
3671 else
3672 {
3673 PIXEL00_4
3674 PIXEL10_3
3675 }
3676 if (Diff(w[2], w[6]))
3677 {
3678 PIXEL01_C
3679 PIXEL02_C
3680 PIXEL12_C
3681 }
3682 else
3683 {
3684 PIXEL01_3
3685 PIXEL02_2
3686 PIXEL12_3
3687 }
3688 PIXEL11
3689 PIXEL20_1M
3690 if (Diff(w[6], w[8]))
3691 {
3692 PIXEL21_C
3693 PIXEL22_C
3694 }
3695 else
3696 {
3697 PIXEL21_3
3698 PIXEL22_4
3699 }
3700 break;
3701 }
3702 case 247:
3703 {
3704 PIXEL00_1L
3705 PIXEL01_C
3706 if (Diff(w[2], w[6]))
3707 {
3708 PIXEL02_C
3709 }
3710 else
3711 {
3712 PIXEL02_2
3713 }
3714 PIXEL10_1
3715 PIXEL11
3716 PIXEL12_C
3717 PIXEL20_1L
3718 PIXEL21_C
3719 if (Diff(w[6], w[8]))
3720 {
3721 PIXEL22_C
3722 }
3723 else
3724 {
3725 PIXEL22_2
3726 }
3727 break;
3728 }
3729 case 255:
3730 {
3731 if (Diff(w[4], w[2]))
3732 {
3733 PIXEL00_C
3734 }
3735 else
3736 {
3737 PIXEL00_2
3738 }
3739 PIXEL01_C
3740 if (Diff(w[2], w[6]))
3741 {
3742 PIXEL02_C
3743 }
3744 else
3745 {
3746 PIXEL02_2
3747 }
3748 PIXEL10_C
3749 PIXEL11
3750 PIXEL12_C
3751 if (Diff(w[8], w[4]))
3752 {
3753 PIXEL20_C
3754 }
3755 else
3756 {
3757 PIXEL20_2
3758 }
3759 PIXEL21_C
3760 if (Diff(w[6], w[8]))
3761 {
3762 PIXEL22_C
3763 }
3764 else
3765 {
3766 PIXEL22_2
3767 }
3768 break;
3769 }
3770 }
3771 sp++;
3772 dp += 3;
3773 }
3774
3775 sRowP += srb;
3776 sp = (uint32_t *) sRowP;
3777
3778 dRowP += drb * 3;
3779 dp = (uint32_t *) dRowP;
3780 }
3781 }
3782
hq3x_32(uint32_t * sp,uint32_t * dp,int Xres,int Yres)3783 HQX_API void HQX_CALLCONV hq3x_32( uint32_t * sp, uint32_t * dp, int Xres, int Yres )
3784 {
3785 uint32_t rowBytesL = Xres * 4;
3786 hq3x_32_rb(sp, rowBytesL, dp, rowBytesL * 3, Xres, Yres);
3787 }
3788