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