HQ2X_RB_FUNC(HQ2X_TYPE * sp,uint32_t srb,HQ2X_TYPE * dp,uint32_t drb,int Xres,int Yres)1 HQX_API void HQX_CALLCONV HQ2X_RB_FUNC( HQ2X_TYPE * sp, uint32_t srb, HQ2X_TYPE * dp, uint32_t drb, int Xres, int Yres )
2 {
3     int  i, j, k;
4     int  prevline, nextline;
5     HQ2X_TYPE  w[10];
6     int dpL = (drb / HQ2X_BYTES);
7     int spL = (srb / HQ2X_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             HQ2X_CPY(w[2], *(sp + prevline));
31             HQ2X_CPY(w[5], *sp);
32             HQ2X_CPY(w[8], *(sp + nextline));
33 
34             if (i>0)
35             {
36                 HQ2X_CPY(w[1], *(sp + prevline - 1));
37                 HQ2X_CPY(w[4], *(sp - 1));
38                 HQ2X_CPY(w[7], *(sp + nextline - 1));
39             }
40             else
41             {
42                 HQ2X_CPY(w[1], w[2]);
43                 HQ2X_CPY(w[4], w[5]);
44                 HQ2X_CPY(w[7], w[8]);
45             }
46 
47             if (i<Xres-1)
48             {
49                 HQ2X_CPY(w[3], *(sp + prevline + 1));
50                 HQ2X_CPY(w[6], *(sp + 1));
51                 HQ2X_CPY(w[9], *(sp + nextline + 1));
52             }
53             else
54             {
55                 HQ2X_CPY(w[3], w[2]);
56                 HQ2X_CPY(w[6], w[5]);
57                 HQ2X_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_20
98                         PIXEL01_20
99                         PIXEL10_20
100                         PIXEL11_20
101                         break;
102                     }
103                 case 2:
104                 case 34:
105                 case 130:
106                 case 162:
107                     {
108                         PIXEL00_22
109                         PIXEL01_21
110                         PIXEL10_20
111                         PIXEL11_20
112                         break;
113                     }
114                 case 16:
115                 case 17:
116                 case 48:
117                 case 49:
118                     {
119                         PIXEL00_20
120                         PIXEL01_22
121                         PIXEL10_20
122                         PIXEL11_21
123                         break;
124                     }
125                 case 64:
126                 case 65:
127                 case 68:
128                 case 69:
129                     {
130                         PIXEL00_20
131                         PIXEL01_20
132                         PIXEL10_21
133                         PIXEL11_22
134                         break;
135                     }
136                 case 8:
137                 case 12:
138                 case 136:
139                 case 140:
140                     {
141                         PIXEL00_21
142                         PIXEL01_20
143                         PIXEL10_22
144                         PIXEL11_20
145                         break;
146                     }
147                 case 3:
148                 case 35:
149                 case 131:
150                 case 163:
151                     {
152                         PIXEL00_11
153                         PIXEL01_21
154                         PIXEL10_20
155                         PIXEL11_20
156                         break;
157                     }
158                 case 6:
159                 case 38:
160                 case 134:
161                 case 166:
162                     {
163                         PIXEL00_22
164                         PIXEL01_12
165                         PIXEL10_20
166                         PIXEL11_20
167                         break;
168                     }
169                 case 20:
170                 case 21:
171                 case 52:
172                 case 53:
173                     {
174                         PIXEL00_20
175                         PIXEL01_11
176                         PIXEL10_20
177                         PIXEL11_21
178                         break;
179                     }
180                 case 144:
181                 case 145:
182                 case 176:
183                 case 177:
184                     {
185                         PIXEL00_20
186                         PIXEL01_22
187                         PIXEL10_20
188                         PIXEL11_12
189                         break;
190                     }
191                 case 192:
192                 case 193:
193                 case 196:
194                 case 197:
195                     {
196                         PIXEL00_20
197                         PIXEL01_20
198                         PIXEL10_21
199                         PIXEL11_11
200                         break;
201                     }
202                 case 96:
203                 case 97:
204                 case 100:
205                 case 101:
206                     {
207                         PIXEL00_20
208                         PIXEL01_20
209                         PIXEL10_12
210                         PIXEL11_22
211                         break;
212                     }
213                 case 40:
214                 case 44:
215                 case 168:
216                 case 172:
217                     {
218                         PIXEL00_21
219                         PIXEL01_20
220                         PIXEL10_11
221                         PIXEL11_20
222                         break;
223                     }
224                 case 9:
225                 case 13:
226                 case 137:
227                 case 141:
228                     {
229                         PIXEL00_12
230                         PIXEL01_20
231                         PIXEL10_22
232                         PIXEL11_20
233                         break;
234                     }
235                 case 18:
236                 case 50:
237                     {
238                         PIXEL00_22
239                         if (DIFF_FUNC(w[2], w[6]))
240                         {
241                             PIXEL01_10
242                         }
243                         else
244                         {
245                             PIXEL01_20
246                         }
247                         PIXEL10_20
248                         PIXEL11_21
249                         break;
250                     }
251                 case 80:
252                 case 81:
253                     {
254                         PIXEL00_20
255                         PIXEL01_22
256                         PIXEL10_21
257                         if (DIFF_FUNC(w[6], w[8]))
258                         {
259                             PIXEL11_10
260                         }
261                         else
262                         {
263                             PIXEL11_20
264                         }
265                         break;
266                     }
267                 case 72:
268                 case 76:
269                     {
270                         PIXEL00_21
271                         PIXEL01_20
272                         if (DIFF_FUNC(w[8], w[4]))
273                         {
274                             PIXEL10_10
275                         }
276                         else
277                         {
278                             PIXEL10_20
279                         }
280                         PIXEL11_22
281                         break;
282                     }
283                 case 10:
284                 case 138:
285                     {
286                         if (DIFF_FUNC(w[4], w[2]))
287                         {
288                             PIXEL00_10
289                         }
290                         else
291                         {
292                             PIXEL00_20
293                         }
294                         PIXEL01_21
295                         PIXEL10_22
296                         PIXEL11_20
297                         break;
298                     }
299                 case 66:
300                     {
301                         PIXEL00_22
302                         PIXEL01_21
303                         PIXEL10_21
304                         PIXEL11_22
305                         break;
306                     }
307                 case 24:
308                     {
309                         PIXEL00_21
310                         PIXEL01_22
311                         PIXEL10_22
312                         PIXEL11_21
313                         break;
314                     }
315                 case 7:
316                 case 39:
317                 case 135:
318                     {
319                         PIXEL00_11
320                         PIXEL01_12
321                         PIXEL10_20
322                         PIXEL11_20
323                         break;
324                     }
325                 case 148:
326                 case 149:
327                 case 180:
328                     {
329                         PIXEL00_20
330                         PIXEL01_11
331                         PIXEL10_20
332                         PIXEL11_12
333                         break;
334                     }
335                 case 224:
336                 case 228:
337                 case 225:
338                     {
339                         PIXEL00_20
340                         PIXEL01_20
341                         PIXEL10_12
342                         PIXEL11_11
343                         break;
344                     }
345                 case 41:
346                 case 169:
347                 case 45:
348                     {
349                         PIXEL00_12
350                         PIXEL01_20
351                         PIXEL10_11
352                         PIXEL11_20
353                         break;
354                     }
355                 case 22:
356                 case 54:
357                     {
358                         PIXEL00_22
359                         if (DIFF_FUNC(w[2], w[6]))
360                         {
361                             PIXEL01_0
362                         }
363                         else
364                         {
365                             PIXEL01_20
366                         }
367                         PIXEL10_20
368                         PIXEL11_21
369                         break;
370                     }
371                 case 208:
372                 case 209:
373                     {
374                         PIXEL00_20
375                         PIXEL01_22
376                         PIXEL10_21
377                         if (DIFF_FUNC(w[6], w[8]))
378                         {
379                             PIXEL11_0
380                         }
381                         else
382                         {
383                             PIXEL11_20
384                         }
385                         break;
386                     }
387                 case 104:
388                 case 108:
389                     {
390                         PIXEL00_21
391                         PIXEL01_20
392                         if (DIFF_FUNC(w[8], w[4]))
393                         {
394                             PIXEL10_0
395                         }
396                         else
397                         {
398                             PIXEL10_20
399                         }
400                         PIXEL11_22
401                         break;
402                     }
403                 case 11:
404                 case 139:
405                     {
406                         if (DIFF_FUNC(w[4], w[2]))
407                         {
408                             PIXEL00_0
409                         }
410                         else
411                         {
412                             PIXEL00_20
413                         }
414                         PIXEL01_21
415                         PIXEL10_22
416                         PIXEL11_20
417                         break;
418                     }
419                 case 19:
420                 case 51:
421                     {
422                         if (DIFF_FUNC(w[2], w[6]))
423                         {
424                             PIXEL00_11
425                             PIXEL01_10
426                         }
427                         else
428                         {
429                             PIXEL00_60
430                             PIXEL01_90
431                         }
432                         PIXEL10_20
433                         PIXEL11_21
434                         break;
435                     }
436                 case 146:
437                 case 178:
438                     {
439                         PIXEL00_22
440                         if (DIFF_FUNC(w[2], w[6]))
441                         {
442                             PIXEL01_10
443                             PIXEL11_12
444                         }
445                         else
446                         {
447                             PIXEL01_90
448                             PIXEL11_61
449                         }
450                         PIXEL10_20
451                         break;
452                     }
453                 case 84:
454                 case 85:
455                     {
456                         PIXEL00_20
457                         if (DIFF_FUNC(w[6], w[8]))
458                         {
459                             PIXEL01_11
460                             PIXEL11_10
461                         }
462                         else
463                         {
464                             PIXEL01_60
465                             PIXEL11_90
466                         }
467                         PIXEL10_21
468                         break;
469                     }
470                 case 112:
471                 case 113:
472                     {
473                         PIXEL00_20
474                         PIXEL01_22
475                         if (DIFF_FUNC(w[6], w[8]))
476                         {
477                             PIXEL10_12
478                             PIXEL11_10
479                         }
480                         else
481                         {
482                             PIXEL10_61
483                             PIXEL11_90
484                         }
485                         break;
486                     }
487                 case 200:
488                 case 204:
489                     {
490                         PIXEL00_21
491                         PIXEL01_20
492                         if (DIFF_FUNC(w[8], w[4]))
493                         {
494                             PIXEL10_10
495                             PIXEL11_11
496                         }
497                         else
498                         {
499                             PIXEL10_90
500                             PIXEL11_60
501                         }
502                         break;
503                     }
504                 case 73:
505                 case 77:
506                     {
507                         if (DIFF_FUNC(w[8], w[4]))
508                         {
509                             PIXEL00_12
510                             PIXEL10_10
511                         }
512                         else
513                         {
514                             PIXEL00_61
515                             PIXEL10_90
516                         }
517                         PIXEL01_20
518                         PIXEL11_22
519                         break;
520                     }
521                 case 42:
522                 case 170:
523                     {
524                         if (DIFF_FUNC(w[4], w[2]))
525                         {
526                             PIXEL00_10
527                             PIXEL10_11
528                         }
529                         else
530                         {
531                             PIXEL00_90
532                             PIXEL10_60
533                         }
534                         PIXEL01_21
535                         PIXEL11_20
536                         break;
537                     }
538                 case 14:
539                 case 142:
540                     {
541                         if (DIFF_FUNC(w[4], w[2]))
542                         {
543                             PIXEL00_10
544                             PIXEL01_12
545                         }
546                         else
547                         {
548                             PIXEL00_90
549                             PIXEL01_61
550                         }
551                         PIXEL10_22
552                         PIXEL11_20
553                         break;
554                     }
555                 case 67:
556                     {
557                         PIXEL00_11
558                         PIXEL01_21
559                         PIXEL10_21
560                         PIXEL11_22
561                         break;
562                     }
563                 case 70:
564                     {
565                         PIXEL00_22
566                         PIXEL01_12
567                         PIXEL10_21
568                         PIXEL11_22
569                         break;
570                     }
571                 case 28:
572                     {
573                         PIXEL00_21
574                         PIXEL01_11
575                         PIXEL10_22
576                         PIXEL11_21
577                         break;
578                     }
579                 case 152:
580                     {
581                         PIXEL00_21
582                         PIXEL01_22
583                         PIXEL10_22
584                         PIXEL11_12
585                         break;
586                     }
587                 case 194:
588                     {
589                         PIXEL00_22
590                         PIXEL01_21
591                         PIXEL10_21
592                         PIXEL11_11
593                         break;
594                     }
595                 case 98:
596                     {
597                         PIXEL00_22
598                         PIXEL01_21
599                         PIXEL10_12
600                         PIXEL11_22
601                         break;
602                     }
603                 case 56:
604                     {
605                         PIXEL00_21
606                         PIXEL01_22
607                         PIXEL10_11
608                         PIXEL11_21
609                         break;
610                     }
611                 case 25:
612                     {
613                         PIXEL00_12
614                         PIXEL01_22
615                         PIXEL10_22
616                         PIXEL11_21
617                         break;
618                     }
619                 case 26:
620                 case 31:
621                     {
622                         if (DIFF_FUNC(w[4], w[2]))
623                         {
624                             PIXEL00_0
625                         }
626                         else
627                         {
628                             PIXEL00_20
629                         }
630                         if (DIFF_FUNC(w[2], w[6]))
631                         {
632                             PIXEL01_0
633                         }
634                         else
635                         {
636                             PIXEL01_20
637                         }
638                         PIXEL10_22
639                         PIXEL11_21
640                         break;
641                     }
642                 case 82:
643                 case 214:
644                     {
645                         PIXEL00_22
646                         if (DIFF_FUNC(w[2], w[6]))
647                         {
648                             PIXEL01_0
649                         }
650                         else
651                         {
652                             PIXEL01_20
653                         }
654                         PIXEL10_21
655                         if (DIFF_FUNC(w[6], w[8]))
656                         {
657                             PIXEL11_0
658                         }
659                         else
660                         {
661                             PIXEL11_20
662                         }
663                         break;
664                     }
665                 case 88:
666                 case 248:
667                     {
668                         PIXEL00_21
669                         PIXEL01_22
670                         if (DIFF_FUNC(w[8], w[4]))
671                         {
672                             PIXEL10_0
673                         }
674                         else
675                         {
676                             PIXEL10_20
677                         }
678                         if (DIFF_FUNC(w[6], w[8]))
679                         {
680                             PIXEL11_0
681                         }
682                         else
683                         {
684                             PIXEL11_20
685                         }
686                         break;
687                     }
688                 case 74:
689                 case 107:
690                     {
691                         if (DIFF_FUNC(w[4], w[2]))
692                         {
693                             PIXEL00_0
694                         }
695                         else
696                         {
697                             PIXEL00_20
698                         }
699                         PIXEL01_21
700                         if (DIFF_FUNC(w[8], w[4]))
701                         {
702                             PIXEL10_0
703                         }
704                         else
705                         {
706                             PIXEL10_20
707                         }
708                         PIXEL11_22
709                         break;
710                     }
711                 case 27:
712                     {
713                         if (DIFF_FUNC(w[4], w[2]))
714                         {
715                             PIXEL00_0
716                         }
717                         else
718                         {
719                             PIXEL00_20
720                         }
721                         PIXEL01_10
722                         PIXEL10_22
723                         PIXEL11_21
724                         break;
725                     }
726                 case 86:
727                     {
728                         PIXEL00_22
729                         if (DIFF_FUNC(w[2], w[6]))
730                         {
731                             PIXEL01_0
732                         }
733                         else
734                         {
735                             PIXEL01_20
736                         }
737                         PIXEL10_21
738                         PIXEL11_10
739                         break;
740                     }
741                 case 216:
742                     {
743                         PIXEL00_21
744                         PIXEL01_22
745                         PIXEL10_10
746                         if (DIFF_FUNC(w[6], w[8]))
747                         {
748                             PIXEL11_0
749                         }
750                         else
751                         {
752                             PIXEL11_20
753                         }
754                         break;
755                     }
756                 case 106:
757                     {
758                         PIXEL00_10
759                         PIXEL01_21
760                         if (DIFF_FUNC(w[8], w[4]))
761                         {
762                             PIXEL10_0
763                         }
764                         else
765                         {
766                             PIXEL10_20
767                         }
768                         PIXEL11_22
769                         break;
770                     }
771                 case 30:
772                     {
773                         PIXEL00_10
774                         if (DIFF_FUNC(w[2], w[6]))
775                         {
776                             PIXEL01_0
777                         }
778                         else
779                         {
780                             PIXEL01_20
781                         }
782                         PIXEL10_22
783                         PIXEL11_21
784                         break;
785                     }
786                 case 210:
787                     {
788                         PIXEL00_22
789                         PIXEL01_10
790                         PIXEL10_21
791                         if (DIFF_FUNC(w[6], w[8]))
792                         {
793                             PIXEL11_0
794                         }
795                         else
796                         {
797                             PIXEL11_20
798                         }
799                         break;
800                     }
801                 case 120:
802                     {
803                         PIXEL00_21
804                         PIXEL01_22
805                         if (DIFF_FUNC(w[8], w[4]))
806                         {
807                             PIXEL10_0
808                         }
809                         else
810                         {
811                             PIXEL10_20
812                         }
813                         PIXEL11_10
814                         break;
815                     }
816                 case 75:
817                     {
818                         if (DIFF_FUNC(w[4], w[2]))
819                         {
820                             PIXEL00_0
821                         }
822                         else
823                         {
824                             PIXEL00_20
825                         }
826                         PIXEL01_21
827                         PIXEL10_10
828                         PIXEL11_22
829                         break;
830                     }
831                 case 29:
832                     {
833                         PIXEL00_12
834                         PIXEL01_11
835                         PIXEL10_22
836                         PIXEL11_21
837                         break;
838                     }
839                 case 198:
840                     {
841                         PIXEL00_22
842                         PIXEL01_12
843                         PIXEL10_21
844                         PIXEL11_11
845                         break;
846                     }
847                 case 184:
848                     {
849                         PIXEL00_21
850                         PIXEL01_22
851                         PIXEL10_11
852                         PIXEL11_12
853                         break;
854                     }
855                 case 99:
856                     {
857                         PIXEL00_11
858                         PIXEL01_21
859                         PIXEL10_12
860                         PIXEL11_22
861                         break;
862                     }
863                 case 57:
864                     {
865                         PIXEL00_12
866                         PIXEL01_22
867                         PIXEL10_11
868                         PIXEL11_21
869                         break;
870                     }
871                 case 71:
872                     {
873                         PIXEL00_11
874                         PIXEL01_12
875                         PIXEL10_21
876                         PIXEL11_22
877                         break;
878                     }
879                 case 156:
880                     {
881                         PIXEL00_21
882                         PIXEL01_11
883                         PIXEL10_22
884                         PIXEL11_12
885                         break;
886                     }
887                 case 226:
888                     {
889                         PIXEL00_22
890                         PIXEL01_21
891                         PIXEL10_12
892                         PIXEL11_11
893                         break;
894                     }
895                 case 60:
896                     {
897                         PIXEL00_21
898                         PIXEL01_11
899                         PIXEL10_11
900                         PIXEL11_21
901                         break;
902                     }
903                 case 195:
904                     {
905                         PIXEL00_11
906                         PIXEL01_21
907                         PIXEL10_21
908                         PIXEL11_11
909                         break;
910                     }
911                 case 102:
912                     {
913                         PIXEL00_22
914                         PIXEL01_12
915                         PIXEL10_12
916                         PIXEL11_22
917                         break;
918                     }
919                 case 153:
920                     {
921                         PIXEL00_12
922                         PIXEL01_22
923                         PIXEL10_22
924                         PIXEL11_12
925                         break;
926                     }
927                 case 58:
928                     {
929                         if (DIFF_FUNC(w[4], w[2]))
930                         {
931                             PIXEL00_10
932                         }
933                         else
934                         {
935                             PIXEL00_70
936                         }
937                         if (DIFF_FUNC(w[2], w[6]))
938                         {
939                             PIXEL01_10
940                         }
941                         else
942                         {
943                             PIXEL01_70
944                         }
945                         PIXEL10_11
946                         PIXEL11_21
947                         break;
948                     }
949                 case 83:
950                     {
951                         PIXEL00_11
952                         if (DIFF_FUNC(w[2], w[6]))
953                         {
954                             PIXEL01_10
955                         }
956                         else
957                         {
958                             PIXEL01_70
959                         }
960                         PIXEL10_21
961                         if (DIFF_FUNC(w[6], w[8]))
962                         {
963                             PIXEL11_10
964                         }
965                         else
966                         {
967                             PIXEL11_70
968                         }
969                         break;
970                     }
971                 case 92:
972                     {
973                         PIXEL00_21
974                         PIXEL01_11
975                         if (DIFF_FUNC(w[8], w[4]))
976                         {
977                             PIXEL10_10
978                         }
979                         else
980                         {
981                             PIXEL10_70
982                         }
983                         if (DIFF_FUNC(w[6], w[8]))
984                         {
985                             PIXEL11_10
986                         }
987                         else
988                         {
989                             PIXEL11_70
990                         }
991                         break;
992                     }
993                 case 202:
994                     {
995                         if (DIFF_FUNC(w[4], w[2]))
996                         {
997                             PIXEL00_10
998                         }
999                         else
1000                         {
1001                             PIXEL00_70
1002                         }
1003                         PIXEL01_21
1004                         if (DIFF_FUNC(w[8], w[4]))
1005                         {
1006                             PIXEL10_10
1007                         }
1008                         else
1009                         {
1010                             PIXEL10_70
1011                         }
1012                         PIXEL11_11
1013                         break;
1014                     }
1015                 case 78:
1016                     {
1017                         if (DIFF_FUNC(w[4], w[2]))
1018                         {
1019                             PIXEL00_10
1020                         }
1021                         else
1022                         {
1023                             PIXEL00_70
1024                         }
1025                         PIXEL01_12
1026                         if (DIFF_FUNC(w[8], w[4]))
1027                         {
1028                             PIXEL10_10
1029                         }
1030                         else
1031                         {
1032                             PIXEL10_70
1033                         }
1034                         PIXEL11_22
1035                         break;
1036                     }
1037                 case 154:
1038                     {
1039                         if (DIFF_FUNC(w[4], w[2]))
1040                         {
1041                             PIXEL00_10
1042                         }
1043                         else
1044                         {
1045                             PIXEL00_70
1046                         }
1047                         if (DIFF_FUNC(w[2], w[6]))
1048                         {
1049                             PIXEL01_10
1050                         }
1051                         else
1052                         {
1053                             PIXEL01_70
1054                         }
1055                         PIXEL10_22
1056                         PIXEL11_12
1057                         break;
1058                     }
1059                 case 114:
1060                     {
1061                         PIXEL00_22
1062                         if (DIFF_FUNC(w[2], w[6]))
1063                         {
1064                             PIXEL01_10
1065                         }
1066                         else
1067                         {
1068                             PIXEL01_70
1069                         }
1070                         PIXEL10_12
1071                         if (DIFF_FUNC(w[6], w[8]))
1072                         {
1073                             PIXEL11_10
1074                         }
1075                         else
1076                         {
1077                             PIXEL11_70
1078                         }
1079                         break;
1080                     }
1081                 case 89:
1082                     {
1083                         PIXEL00_12
1084                         PIXEL01_22
1085                         if (DIFF_FUNC(w[8], w[4]))
1086                         {
1087                             PIXEL10_10
1088                         }
1089                         else
1090                         {
1091                             PIXEL10_70
1092                         }
1093                         if (DIFF_FUNC(w[6], w[8]))
1094                         {
1095                             PIXEL11_10
1096                         }
1097                         else
1098                         {
1099                             PIXEL11_70
1100                         }
1101                         break;
1102                     }
1103                 case 90:
1104                     {
1105                         if (DIFF_FUNC(w[4], w[2]))
1106                         {
1107                             PIXEL00_10
1108                         }
1109                         else
1110                         {
1111                             PIXEL00_70
1112                         }
1113                         if (DIFF_FUNC(w[2], w[6]))
1114                         {
1115                             PIXEL01_10
1116                         }
1117                         else
1118                         {
1119                             PIXEL01_70
1120                         }
1121                         if (DIFF_FUNC(w[8], w[4]))
1122                         {
1123                             PIXEL10_10
1124                         }
1125                         else
1126                         {
1127                             PIXEL10_70
1128                         }
1129                         if (DIFF_FUNC(w[6], w[8]))
1130                         {
1131                             PIXEL11_10
1132                         }
1133                         else
1134                         {
1135                             PIXEL11_70
1136                         }
1137                         break;
1138                     }
1139                 case 55:
1140                 case 23:
1141                     {
1142                         if (DIFF_FUNC(w[2], w[6]))
1143                         {
1144                             PIXEL00_11
1145                             PIXEL01_0
1146                         }
1147                         else
1148                         {
1149                             PIXEL00_60
1150                             PIXEL01_90
1151                         }
1152                         PIXEL10_20
1153                         PIXEL11_21
1154                         break;
1155                     }
1156                 case 182:
1157                 case 150:
1158                     {
1159                         PIXEL00_22
1160                         if (DIFF_FUNC(w[2], w[6]))
1161                         {
1162                             PIXEL01_0
1163                             PIXEL11_12
1164                         }
1165                         else
1166                         {
1167                             PIXEL01_90
1168                             PIXEL11_61
1169                         }
1170                         PIXEL10_20
1171                         break;
1172                     }
1173                 case 213:
1174                 case 212:
1175                     {
1176                         PIXEL00_20
1177                         if (DIFF_FUNC(w[6], w[8]))
1178                         {
1179                             PIXEL01_11
1180                             PIXEL11_0
1181                         }
1182                         else
1183                         {
1184                             PIXEL01_60
1185                             PIXEL11_90
1186                         }
1187                         PIXEL10_21
1188                         break;
1189                     }
1190                 case 241:
1191                 case 240:
1192                     {
1193                         PIXEL00_20
1194                         PIXEL01_22
1195                         if (DIFF_FUNC(w[6], w[8]))
1196                         {
1197                             PIXEL10_12
1198                             PIXEL11_0
1199                         }
1200                         else
1201                         {
1202                             PIXEL10_61
1203                             PIXEL11_90
1204                         }
1205                         break;
1206                     }
1207                 case 236:
1208                 case 232:
1209                     {
1210                         PIXEL00_21
1211                         PIXEL01_20
1212                         if (DIFF_FUNC(w[8], w[4]))
1213                         {
1214                             PIXEL10_0
1215                             PIXEL11_11
1216                         }
1217                         else
1218                         {
1219                             PIXEL10_90
1220                             PIXEL11_60
1221                         }
1222                         break;
1223                     }
1224                 case 109:
1225                 case 105:
1226                     {
1227                         if (DIFF_FUNC(w[8], w[4]))
1228                         {
1229                             PIXEL00_12
1230                             PIXEL10_0
1231                         }
1232                         else
1233                         {
1234                             PIXEL00_61
1235                             PIXEL10_90
1236                         }
1237                         PIXEL01_20
1238                         PIXEL11_22
1239                         break;
1240                     }
1241                 case 171:
1242                 case 43:
1243                     {
1244                         if (DIFF_FUNC(w[4], w[2]))
1245                         {
1246                             PIXEL00_0
1247                             PIXEL10_11
1248                         }
1249                         else
1250                         {
1251                             PIXEL00_90
1252                             PIXEL10_60
1253                         }
1254                         PIXEL01_21
1255                         PIXEL11_20
1256                         break;
1257                     }
1258                 case 143:
1259                 case 15:
1260                     {
1261                         if (DIFF_FUNC(w[4], w[2]))
1262                         {
1263                             PIXEL00_0
1264                             PIXEL01_12
1265                         }
1266                         else
1267                         {
1268                             PIXEL00_90
1269                             PIXEL01_61
1270                         }
1271                         PIXEL10_22
1272                         PIXEL11_20
1273                         break;
1274                     }
1275                 case 124:
1276                     {
1277                         PIXEL00_21
1278                         PIXEL01_11
1279                         if (DIFF_FUNC(w[8], w[4]))
1280                         {
1281                             PIXEL10_0
1282                         }
1283                         else
1284                         {
1285                             PIXEL10_20
1286                         }
1287                         PIXEL11_10
1288                         break;
1289                     }
1290                 case 203:
1291                     {
1292                         if (DIFF_FUNC(w[4], w[2]))
1293                         {
1294                             PIXEL00_0
1295                         }
1296                         else
1297                         {
1298                             PIXEL00_20
1299                         }
1300                         PIXEL01_21
1301                         PIXEL10_10
1302                         PIXEL11_11
1303                         break;
1304                     }
1305                 case 62:
1306                     {
1307                         PIXEL00_10
1308                         if (DIFF_FUNC(w[2], w[6]))
1309                         {
1310                             PIXEL01_0
1311                         }
1312                         else
1313                         {
1314                             PIXEL01_20
1315                         }
1316                         PIXEL10_11
1317                         PIXEL11_21
1318                         break;
1319                     }
1320                 case 211:
1321                     {
1322                         PIXEL00_11
1323                         PIXEL01_10
1324                         PIXEL10_21
1325                         if (DIFF_FUNC(w[6], w[8]))
1326                         {
1327                             PIXEL11_0
1328                         }
1329                         else
1330                         {
1331                             PIXEL11_20
1332                         }
1333                         break;
1334                     }
1335                 case 118:
1336                     {
1337                         PIXEL00_22
1338                         if (DIFF_FUNC(w[2], w[6]))
1339                         {
1340                             PIXEL01_0
1341                         }
1342                         else
1343                         {
1344                             PIXEL01_20
1345                         }
1346                         PIXEL10_12
1347                         PIXEL11_10
1348                         break;
1349                     }
1350                 case 217:
1351                     {
1352                         PIXEL00_12
1353                         PIXEL01_22
1354                         PIXEL10_10
1355                         if (DIFF_FUNC(w[6], w[8]))
1356                         {
1357                             PIXEL11_0
1358                         }
1359                         else
1360                         {
1361                             PIXEL11_20
1362                         }
1363                         break;
1364                     }
1365                 case 110:
1366                     {
1367                         PIXEL00_10
1368                         PIXEL01_12
1369                         if (DIFF_FUNC(w[8], w[4]))
1370                         {
1371                             PIXEL10_0
1372                         }
1373                         else
1374                         {
1375                             PIXEL10_20
1376                         }
1377                         PIXEL11_22
1378                         break;
1379                     }
1380                 case 155:
1381                     {
1382                         if (DIFF_FUNC(w[4], w[2]))
1383                         {
1384                             PIXEL00_0
1385                         }
1386                         else
1387                         {
1388                             PIXEL00_20
1389                         }
1390                         PIXEL01_10
1391                         PIXEL10_22
1392                         PIXEL11_12
1393                         break;
1394                     }
1395                 case 188:
1396                     {
1397                         PIXEL00_21
1398                         PIXEL01_11
1399                         PIXEL10_11
1400                         PIXEL11_12
1401                         break;
1402                     }
1403                 case 185:
1404                     {
1405                         PIXEL00_12
1406                         PIXEL01_22
1407                         PIXEL10_11
1408                         PIXEL11_12
1409                         break;
1410                     }
1411                 case 61:
1412                     {
1413                         PIXEL00_12
1414                         PIXEL01_11
1415                         PIXEL10_11
1416                         PIXEL11_21
1417                         break;
1418                     }
1419                 case 157:
1420                     {
1421                         PIXEL00_12
1422                         PIXEL01_11
1423                         PIXEL10_22
1424                         PIXEL11_12
1425                         break;
1426                     }
1427                 case 103:
1428                     {
1429                         PIXEL00_11
1430                         PIXEL01_12
1431                         PIXEL10_12
1432                         PIXEL11_22
1433                         break;
1434                     }
1435                 case 227:
1436                     {
1437                         PIXEL00_11
1438                         PIXEL01_21
1439                         PIXEL10_12
1440                         PIXEL11_11
1441                         break;
1442                     }
1443                 case 230:
1444                     {
1445                         PIXEL00_22
1446                         PIXEL01_12
1447                         PIXEL10_12
1448                         PIXEL11_11
1449                         break;
1450                     }
1451                 case 199:
1452                     {
1453                         PIXEL00_11
1454                         PIXEL01_12
1455                         PIXEL10_21
1456                         PIXEL11_11
1457                         break;
1458                     }
1459                 case 220:
1460                     {
1461                         PIXEL00_21
1462                         PIXEL01_11
1463                         if (DIFF_FUNC(w[8], w[4]))
1464                         {
1465                             PIXEL10_10
1466                         }
1467                         else
1468                         {
1469                             PIXEL10_70
1470                         }
1471                         if (DIFF_FUNC(w[6], w[8]))
1472                         {
1473                             PIXEL11_0
1474                         }
1475                         else
1476                         {
1477                             PIXEL11_20
1478                         }
1479                         break;
1480                     }
1481                 case 158:
1482                     {
1483                         if (DIFF_FUNC(w[4], w[2]))
1484                         {
1485                             PIXEL00_10
1486                         }
1487                         else
1488                         {
1489                             PIXEL00_70
1490                         }
1491                         if (DIFF_FUNC(w[2], w[6]))
1492                         {
1493                             PIXEL01_0
1494                         }
1495                         else
1496                         {
1497                             PIXEL01_20
1498                         }
1499                         PIXEL10_22
1500                         PIXEL11_12
1501                         break;
1502                     }
1503                 case 234:
1504                     {
1505                         if (DIFF_FUNC(w[4], w[2]))
1506                         {
1507                             PIXEL00_10
1508                         }
1509                         else
1510                         {
1511                             PIXEL00_70
1512                         }
1513                         PIXEL01_21
1514                         if (DIFF_FUNC(w[8], w[4]))
1515                         {
1516                             PIXEL10_0
1517                         }
1518                         else
1519                         {
1520                             PIXEL10_20
1521                         }
1522                         PIXEL11_11
1523                         break;
1524                     }
1525                 case 242:
1526                     {
1527                         PIXEL00_22
1528                         if (DIFF_FUNC(w[2], w[6]))
1529                         {
1530                             PIXEL01_10
1531                         }
1532                         else
1533                         {
1534                             PIXEL01_70
1535                         }
1536                         PIXEL10_12
1537                         if (DIFF_FUNC(w[6], w[8]))
1538                         {
1539                             PIXEL11_0
1540                         }
1541                         else
1542                         {
1543                             PIXEL11_20
1544                         }
1545                         break;
1546                     }
1547                 case 59:
1548                     {
1549                         if (DIFF_FUNC(w[4], w[2]))
1550                         {
1551                             PIXEL00_0
1552                         }
1553                         else
1554                         {
1555                             PIXEL00_20
1556                         }
1557                         if (DIFF_FUNC(w[2], w[6]))
1558                         {
1559                             PIXEL01_10
1560                         }
1561                         else
1562                         {
1563                             PIXEL01_70
1564                         }
1565                         PIXEL10_11
1566                         PIXEL11_21
1567                         break;
1568                     }
1569                 case 121:
1570                     {
1571                         PIXEL00_12
1572                         PIXEL01_22
1573                         if (DIFF_FUNC(w[8], w[4]))
1574                         {
1575                             PIXEL10_0
1576                         }
1577                         else
1578                         {
1579                             PIXEL10_20
1580                         }
1581                         if (DIFF_FUNC(w[6], w[8]))
1582                         {
1583                             PIXEL11_10
1584                         }
1585                         else
1586                         {
1587                             PIXEL11_70
1588                         }
1589                         break;
1590                     }
1591                 case 87:
1592                     {
1593                         PIXEL00_11
1594                         if (DIFF_FUNC(w[2], w[6]))
1595                         {
1596                             PIXEL01_0
1597                         }
1598                         else
1599                         {
1600                             PIXEL01_20
1601                         }
1602                         PIXEL10_21
1603                         if (DIFF_FUNC(w[6], w[8]))
1604                         {
1605                             PIXEL11_10
1606                         }
1607                         else
1608                         {
1609                             PIXEL11_70
1610                         }
1611                         break;
1612                     }
1613                 case 79:
1614                     {
1615                         if (DIFF_FUNC(w[4], w[2]))
1616                         {
1617                             PIXEL00_0
1618                         }
1619                         else
1620                         {
1621                             PIXEL00_20
1622                         }
1623                         PIXEL01_12
1624                         if (DIFF_FUNC(w[8], w[4]))
1625                         {
1626                             PIXEL10_10
1627                         }
1628                         else
1629                         {
1630                             PIXEL10_70
1631                         }
1632                         PIXEL11_22
1633                         break;
1634                     }
1635                 case 122:
1636                     {
1637                         if (DIFF_FUNC(w[4], w[2]))
1638                         {
1639                             PIXEL00_10
1640                         }
1641                         else
1642                         {
1643                             PIXEL00_70
1644                         }
1645                         if (DIFF_FUNC(w[2], w[6]))
1646                         {
1647                             PIXEL01_10
1648                         }
1649                         else
1650                         {
1651                             PIXEL01_70
1652                         }
1653                         if (DIFF_FUNC(w[8], w[4]))
1654                         {
1655                             PIXEL10_0
1656                         }
1657                         else
1658                         {
1659                             PIXEL10_20
1660                         }
1661                         if (DIFF_FUNC(w[6], w[8]))
1662                         {
1663                             PIXEL11_10
1664                         }
1665                         else
1666                         {
1667                             PIXEL11_70
1668                         }
1669                         break;
1670                     }
1671                 case 94:
1672                     {
1673                         if (DIFF_FUNC(w[4], w[2]))
1674                         {
1675                             PIXEL00_10
1676                         }
1677                         else
1678                         {
1679                             PIXEL00_70
1680                         }
1681                         if (DIFF_FUNC(w[2], w[6]))
1682                         {
1683                             PIXEL01_0
1684                         }
1685                         else
1686                         {
1687                             PIXEL01_20
1688                         }
1689                         if (DIFF_FUNC(w[8], w[4]))
1690                         {
1691                             PIXEL10_10
1692                         }
1693                         else
1694                         {
1695                             PIXEL10_70
1696                         }
1697                         if (DIFF_FUNC(w[6], w[8]))
1698                         {
1699                             PIXEL11_10
1700                         }
1701                         else
1702                         {
1703                             PIXEL11_70
1704                         }
1705                         break;
1706                     }
1707                 case 218:
1708                     {
1709                         if (DIFF_FUNC(w[4], w[2]))
1710                         {
1711                             PIXEL00_10
1712                         }
1713                         else
1714                         {
1715                             PIXEL00_70
1716                         }
1717                         if (DIFF_FUNC(w[2], w[6]))
1718                         {
1719                             PIXEL01_10
1720                         }
1721                         else
1722                         {
1723                             PIXEL01_70
1724                         }
1725                         if (DIFF_FUNC(w[8], w[4]))
1726                         {
1727                             PIXEL10_10
1728                         }
1729                         else
1730                         {
1731                             PIXEL10_70
1732                         }
1733                         if (DIFF_FUNC(w[6], w[8]))
1734                         {
1735                             PIXEL11_0
1736                         }
1737                         else
1738                         {
1739                             PIXEL11_20
1740                         }
1741                         break;
1742                     }
1743                 case 91:
1744                     {
1745                         if (DIFF_FUNC(w[4], w[2]))
1746                         {
1747                             PIXEL00_0
1748                         }
1749                         else
1750                         {
1751                             PIXEL00_20
1752                         }
1753                         if (DIFF_FUNC(w[2], w[6]))
1754                         {
1755                             PIXEL01_10
1756                         }
1757                         else
1758                         {
1759                             PIXEL01_70
1760                         }
1761                         if (DIFF_FUNC(w[8], w[4]))
1762                         {
1763                             PIXEL10_10
1764                         }
1765                         else
1766                         {
1767                             PIXEL10_70
1768                         }
1769                         if (DIFF_FUNC(w[6], w[8]))
1770                         {
1771                             PIXEL11_10
1772                         }
1773                         else
1774                         {
1775                             PIXEL11_70
1776                         }
1777                         break;
1778                     }
1779                 case 229:
1780                     {
1781                         PIXEL00_20
1782                         PIXEL01_20
1783                         PIXEL10_12
1784                         PIXEL11_11
1785                         break;
1786                     }
1787                 case 167:
1788                     {
1789                         PIXEL00_11
1790                         PIXEL01_12
1791                         PIXEL10_20
1792                         PIXEL11_20
1793                         break;
1794                     }
1795                 case 173:
1796                     {
1797                         PIXEL00_12
1798                         PIXEL01_20
1799                         PIXEL10_11
1800                         PIXEL11_20
1801                         break;
1802                     }
1803                 case 181:
1804                     {
1805                         PIXEL00_20
1806                         PIXEL01_11
1807                         PIXEL10_20
1808                         PIXEL11_12
1809                         break;
1810                     }
1811                 case 186:
1812                     {
1813                         if (DIFF_FUNC(w[4], w[2]))
1814                         {
1815                             PIXEL00_10
1816                         }
1817                         else
1818                         {
1819                             PIXEL00_70
1820                         }
1821                         if (DIFF_FUNC(w[2], w[6]))
1822                         {
1823                             PIXEL01_10
1824                         }
1825                         else
1826                         {
1827                             PIXEL01_70
1828                         }
1829                         PIXEL10_11
1830                         PIXEL11_12
1831                         break;
1832                     }
1833                 case 115:
1834                     {
1835                         PIXEL00_11
1836                         if (DIFF_FUNC(w[2], w[6]))
1837                         {
1838                             PIXEL01_10
1839                         }
1840                         else
1841                         {
1842                             PIXEL01_70
1843                         }
1844                         PIXEL10_12
1845                         if (DIFF_FUNC(w[6], w[8]))
1846                         {
1847                             PIXEL11_10
1848                         }
1849                         else
1850                         {
1851                             PIXEL11_70
1852                         }
1853                         break;
1854                     }
1855                 case 93:
1856                     {
1857                         PIXEL00_12
1858                         PIXEL01_11
1859                         if (DIFF_FUNC(w[8], w[4]))
1860                         {
1861                             PIXEL10_10
1862                         }
1863                         else
1864                         {
1865                             PIXEL10_70
1866                         }
1867                         if (DIFF_FUNC(w[6], w[8]))
1868                         {
1869                             PIXEL11_10
1870                         }
1871                         else
1872                         {
1873                             PIXEL11_70
1874                         }
1875                         break;
1876                     }
1877                 case 206:
1878                     {
1879                         if (DIFF_FUNC(w[4], w[2]))
1880                         {
1881                             PIXEL00_10
1882                         }
1883                         else
1884                         {
1885                             PIXEL00_70
1886                         }
1887                         PIXEL01_12
1888                         if (DIFF_FUNC(w[8], w[4]))
1889                         {
1890                             PIXEL10_10
1891                         }
1892                         else
1893                         {
1894                             PIXEL10_70
1895                         }
1896                         PIXEL11_11
1897                         break;
1898                     }
1899                 case 205:
1900                 case 201:
1901                     {
1902                         PIXEL00_12
1903                         PIXEL01_20
1904                         if (DIFF_FUNC(w[8], w[4]))
1905                         {
1906                             PIXEL10_10
1907                         }
1908                         else
1909                         {
1910                             PIXEL10_70
1911                         }
1912                         PIXEL11_11
1913                         break;
1914                     }
1915                 case 174:
1916                 case 46:
1917                     {
1918                         if (DIFF_FUNC(w[4], w[2]))
1919                         {
1920                             PIXEL00_10
1921                         }
1922                         else
1923                         {
1924                             PIXEL00_70
1925                         }
1926                         PIXEL01_12
1927                         PIXEL10_11
1928                         PIXEL11_20
1929                         break;
1930                     }
1931                 case 179:
1932                 case 147:
1933                     {
1934                         PIXEL00_11
1935                         if (DIFF_FUNC(w[2], w[6]))
1936                         {
1937                             PIXEL01_10
1938                         }
1939                         else
1940                         {
1941                             PIXEL01_70
1942                         }
1943                         PIXEL10_20
1944                         PIXEL11_12
1945                         break;
1946                     }
1947                 case 117:
1948                 case 116:
1949                     {
1950                         PIXEL00_20
1951                         PIXEL01_11
1952                         PIXEL10_12
1953                         if (DIFF_FUNC(w[6], w[8]))
1954                         {
1955                             PIXEL11_10
1956                         }
1957                         else
1958                         {
1959                             PIXEL11_70
1960                         }
1961                         break;
1962                     }
1963                 case 189:
1964                     {
1965                         PIXEL00_12
1966                         PIXEL01_11
1967                         PIXEL10_11
1968                         PIXEL11_12
1969                         break;
1970                     }
1971                 case 231:
1972                     {
1973                         PIXEL00_11
1974                         PIXEL01_12
1975                         PIXEL10_12
1976                         PIXEL11_11
1977                         break;
1978                     }
1979                 case 126:
1980                     {
1981                         PIXEL00_10
1982                         if (DIFF_FUNC(w[2], w[6]))
1983                         {
1984                             PIXEL01_0
1985                         }
1986                         else
1987                         {
1988                             PIXEL01_20
1989                         }
1990                         if (DIFF_FUNC(w[8], w[4]))
1991                         {
1992                             PIXEL10_0
1993                         }
1994                         else
1995                         {
1996                             PIXEL10_20
1997                         }
1998                         PIXEL11_10
1999                         break;
2000                     }
2001                 case 219:
2002                     {
2003                         if (DIFF_FUNC(w[4], w[2]))
2004                         {
2005                             PIXEL00_0
2006                         }
2007                         else
2008                         {
2009                             PIXEL00_20
2010                         }
2011                         PIXEL01_10
2012                         PIXEL10_10
2013                         if (DIFF_FUNC(w[6], w[8]))
2014                         {
2015                             PIXEL11_0
2016                         }
2017                         else
2018                         {
2019                             PIXEL11_20
2020                         }
2021                         break;
2022                     }
2023                 case 125:
2024                     {
2025                         if (DIFF_FUNC(w[8], w[4]))
2026                         {
2027                             PIXEL00_12
2028                             PIXEL10_0
2029                         }
2030                         else
2031                         {
2032                             PIXEL00_61
2033                             PIXEL10_90
2034                         }
2035                         PIXEL01_11
2036                         PIXEL11_10
2037                         break;
2038                     }
2039                 case 221:
2040                     {
2041                         PIXEL00_12
2042                         if (DIFF_FUNC(w[6], w[8]))
2043                         {
2044                             PIXEL01_11
2045                             PIXEL11_0
2046                         }
2047                         else
2048                         {
2049                             PIXEL01_60
2050                             PIXEL11_90
2051                         }
2052                         PIXEL10_10
2053                         break;
2054                     }
2055                 case 207:
2056                     {
2057                         if (DIFF_FUNC(w[4], w[2]))
2058                         {
2059                             PIXEL00_0
2060                             PIXEL01_12
2061                         }
2062                         else
2063                         {
2064                             PIXEL00_90
2065                             PIXEL01_61
2066                         }
2067                         PIXEL10_10
2068                         PIXEL11_11
2069                         break;
2070                     }
2071                 case 238:
2072                     {
2073                         PIXEL00_10
2074                         PIXEL01_12
2075                         if (DIFF_FUNC(w[8], w[4]))
2076                         {
2077                             PIXEL10_0
2078                             PIXEL11_11
2079                         }
2080                         else
2081                         {
2082                             PIXEL10_90
2083                             PIXEL11_60
2084                         }
2085                         break;
2086                     }
2087                 case 190:
2088                     {
2089                         PIXEL00_10
2090                         if (DIFF_FUNC(w[2], w[6]))
2091                         {
2092                             PIXEL01_0
2093                             PIXEL11_12
2094                         }
2095                         else
2096                         {
2097                             PIXEL01_90
2098                             PIXEL11_61
2099                         }
2100                         PIXEL10_11
2101                         break;
2102                     }
2103                 case 187:
2104                     {
2105                         if (DIFF_FUNC(w[4], w[2]))
2106                         {
2107                             PIXEL00_0
2108                             PIXEL10_11
2109                         }
2110                         else
2111                         {
2112                             PIXEL00_90
2113                             PIXEL10_60
2114                         }
2115                         PIXEL01_10
2116                         PIXEL11_12
2117                         break;
2118                     }
2119                 case 243:
2120                     {
2121                         PIXEL00_11
2122                         PIXEL01_10
2123                         if (DIFF_FUNC(w[6], w[8]))
2124                         {
2125                             PIXEL10_12
2126                             PIXEL11_0
2127                         }
2128                         else
2129                         {
2130                             PIXEL10_61
2131                             PIXEL11_90
2132                         }
2133                         break;
2134                     }
2135                 case 119:
2136                     {
2137                         if (DIFF_FUNC(w[2], w[6]))
2138                         {
2139                             PIXEL00_11
2140                             PIXEL01_0
2141                         }
2142                         else
2143                         {
2144                             PIXEL00_60
2145                             PIXEL01_90
2146                         }
2147                         PIXEL10_12
2148                         PIXEL11_10
2149                         break;
2150                     }
2151                 case 237:
2152                 case 233:
2153                     {
2154                         PIXEL00_12
2155                         PIXEL01_20
2156                         if (DIFF_FUNC(w[8], w[4]))
2157                         {
2158                             PIXEL10_0
2159                         }
2160                         else
2161                         {
2162                             PIXEL10_100
2163                         }
2164                         PIXEL11_11
2165                         break;
2166                     }
2167                 case 175:
2168                 case 47:
2169                     {
2170                         if (DIFF_FUNC(w[4], w[2]))
2171                         {
2172                             PIXEL00_0
2173                         }
2174                         else
2175                         {
2176                             PIXEL00_100
2177                         }
2178                         PIXEL01_12
2179                         PIXEL10_11
2180                         PIXEL11_20
2181                         break;
2182                     }
2183                 case 183:
2184                 case 151:
2185                     {
2186                         PIXEL00_11
2187                         if (DIFF_FUNC(w[2], w[6]))
2188                         {
2189                             PIXEL01_0
2190                         }
2191                         else
2192                         {
2193                             PIXEL01_100
2194                         }
2195                         PIXEL10_20
2196                         PIXEL11_12
2197                         break;
2198                     }
2199                 case 245:
2200                 case 244:
2201                     {
2202                         PIXEL00_20
2203                         PIXEL01_11
2204                         PIXEL10_12
2205                         if (DIFF_FUNC(w[6], w[8]))
2206                         {
2207                             PIXEL11_0
2208                         }
2209                         else
2210                         {
2211                             PIXEL11_100
2212                         }
2213                         break;
2214                     }
2215                 case 250:
2216                     {
2217                         PIXEL00_10
2218                         PIXEL01_10
2219                         if (DIFF_FUNC(w[8], w[4]))
2220                         {
2221                             PIXEL10_0
2222                         }
2223                         else
2224                         {
2225                             PIXEL10_20
2226                         }
2227                         if (DIFF_FUNC(w[6], w[8]))
2228                         {
2229                             PIXEL11_0
2230                         }
2231                         else
2232                         {
2233                             PIXEL11_20
2234                         }
2235                         break;
2236                     }
2237                 case 123:
2238                     {
2239                         if (DIFF_FUNC(w[4], w[2]))
2240                         {
2241                             PIXEL00_0
2242                         }
2243                         else
2244                         {
2245                             PIXEL00_20
2246                         }
2247                         PIXEL01_10
2248                         if (DIFF_FUNC(w[8], w[4]))
2249                         {
2250                             PIXEL10_0
2251                         }
2252                         else
2253                         {
2254                             PIXEL10_20
2255                         }
2256                         PIXEL11_10
2257                         break;
2258                     }
2259                 case 95:
2260                     {
2261                         if (DIFF_FUNC(w[4], w[2]))
2262                         {
2263                             PIXEL00_0
2264                         }
2265                         else
2266                         {
2267                             PIXEL00_20
2268                         }
2269                         if (DIFF_FUNC(w[2], w[6]))
2270                         {
2271                             PIXEL01_0
2272                         }
2273                         else
2274                         {
2275                             PIXEL01_20
2276                         }
2277                         PIXEL10_10
2278                         PIXEL11_10
2279                         break;
2280                     }
2281                 case 222:
2282                     {
2283                         PIXEL00_10
2284                         if (DIFF_FUNC(w[2], w[6]))
2285                         {
2286                             PIXEL01_0
2287                         }
2288                         else
2289                         {
2290                             PIXEL01_20
2291                         }
2292                         PIXEL10_10
2293                         if (DIFF_FUNC(w[6], w[8]))
2294                         {
2295                             PIXEL11_0
2296                         }
2297                         else
2298                         {
2299                             PIXEL11_20
2300                         }
2301                         break;
2302                     }
2303                 case 252:
2304                     {
2305                         PIXEL00_21
2306                         PIXEL01_11
2307                         if (DIFF_FUNC(w[8], w[4]))
2308                         {
2309                             PIXEL10_0
2310                         }
2311                         else
2312                         {
2313                             PIXEL10_20
2314                         }
2315                         if (DIFF_FUNC(w[6], w[8]))
2316                         {
2317                             PIXEL11_0
2318                         }
2319                         else
2320                         {
2321                             PIXEL11_100
2322                         }
2323                         break;
2324                     }
2325                 case 249:
2326                     {
2327                         PIXEL00_12
2328                         PIXEL01_22
2329                         if (DIFF_FUNC(w[8], w[4]))
2330                         {
2331                             PIXEL10_0
2332                         }
2333                         else
2334                         {
2335                             PIXEL10_100
2336                         }
2337                         if (DIFF_FUNC(w[6], w[8]))
2338                         {
2339                             PIXEL11_0
2340                         }
2341                         else
2342                         {
2343                             PIXEL11_20
2344                         }
2345                         break;
2346                     }
2347                 case 235:
2348                     {
2349                         if (DIFF_FUNC(w[4], w[2]))
2350                         {
2351                             PIXEL00_0
2352                         }
2353                         else
2354                         {
2355                             PIXEL00_20
2356                         }
2357                         PIXEL01_21
2358                         if (DIFF_FUNC(w[8], w[4]))
2359                         {
2360                             PIXEL10_0
2361                         }
2362                         else
2363                         {
2364                             PIXEL10_100
2365                         }
2366                         PIXEL11_11
2367                         break;
2368                     }
2369                 case 111:
2370                     {
2371                         if (DIFF_FUNC(w[4], w[2]))
2372                         {
2373                             PIXEL00_0
2374                         }
2375                         else
2376                         {
2377                             PIXEL00_100
2378                         }
2379                         PIXEL01_12
2380                         if (DIFF_FUNC(w[8], w[4]))
2381                         {
2382                             PIXEL10_0
2383                         }
2384                         else
2385                         {
2386                             PIXEL10_20
2387                         }
2388                         PIXEL11_22
2389                         break;
2390                     }
2391                 case 63:
2392                     {
2393                         if (DIFF_FUNC(w[4], w[2]))
2394                         {
2395                             PIXEL00_0
2396                         }
2397                         else
2398                         {
2399                             PIXEL00_100
2400                         }
2401                         if (DIFF_FUNC(w[2], w[6]))
2402                         {
2403                             PIXEL01_0
2404                         }
2405                         else
2406                         {
2407                             PIXEL01_20
2408                         }
2409                         PIXEL10_11
2410                         PIXEL11_21
2411                         break;
2412                     }
2413                 case 159:
2414                     {
2415                         if (DIFF_FUNC(w[4], w[2]))
2416                         {
2417                             PIXEL00_0
2418                         }
2419                         else
2420                         {
2421                             PIXEL00_20
2422                         }
2423                         if (DIFF_FUNC(w[2], w[6]))
2424                         {
2425                             PIXEL01_0
2426                         }
2427                         else
2428                         {
2429                             PIXEL01_100
2430                         }
2431                         PIXEL10_22
2432                         PIXEL11_12
2433                         break;
2434                     }
2435                 case 215:
2436                     {
2437                         PIXEL00_11
2438                         if (DIFF_FUNC(w[2], w[6]))
2439                         {
2440                             PIXEL01_0
2441                         }
2442                         else
2443                         {
2444                             PIXEL01_100
2445                         }
2446                         PIXEL10_21
2447                         if (DIFF_FUNC(w[6], w[8]))
2448                         {
2449                             PIXEL11_0
2450                         }
2451                         else
2452                         {
2453                             PIXEL11_20
2454                         }
2455                         break;
2456                     }
2457                 case 246:
2458                     {
2459                         PIXEL00_22
2460                         if (DIFF_FUNC(w[2], w[6]))
2461                         {
2462                             PIXEL01_0
2463                         }
2464                         else
2465                         {
2466                             PIXEL01_20
2467                         }
2468                         PIXEL10_12
2469                         if (DIFF_FUNC(w[6], w[8]))
2470                         {
2471                             PIXEL11_0
2472                         }
2473                         else
2474                         {
2475                             PIXEL11_100
2476                         }
2477                         break;
2478                     }
2479                 case 254:
2480                     {
2481                         PIXEL00_10
2482                         if (DIFF_FUNC(w[2], w[6]))
2483                         {
2484                             PIXEL01_0
2485                         }
2486                         else
2487                         {
2488                             PIXEL01_20
2489                         }
2490                         if (DIFF_FUNC(w[8], w[4]))
2491                         {
2492                             PIXEL10_0
2493                         }
2494                         else
2495                         {
2496                             PIXEL10_20
2497                         }
2498                         if (DIFF_FUNC(w[6], w[8]))
2499                         {
2500                             PIXEL11_0
2501                         }
2502                         else
2503                         {
2504                             PIXEL11_100
2505                         }
2506                         break;
2507                     }
2508                 case 253:
2509                     {
2510                         PIXEL00_12
2511                         PIXEL01_11
2512                         if (DIFF_FUNC(w[8], w[4]))
2513                         {
2514                             PIXEL10_0
2515                         }
2516                         else
2517                         {
2518                             PIXEL10_100
2519                         }
2520                         if (DIFF_FUNC(w[6], w[8]))
2521                         {
2522                             PIXEL11_0
2523                         }
2524                         else
2525                         {
2526                             PIXEL11_100
2527                         }
2528                         break;
2529                     }
2530                 case 251:
2531                     {
2532                         if (DIFF_FUNC(w[4], w[2]))
2533                         {
2534                             PIXEL00_0
2535                         }
2536                         else
2537                         {
2538                             PIXEL00_20
2539                         }
2540                         PIXEL01_10
2541                         if (DIFF_FUNC(w[8], w[4]))
2542                         {
2543                             PIXEL10_0
2544                         }
2545                         else
2546                         {
2547                             PIXEL10_100
2548                         }
2549                         if (DIFF_FUNC(w[6], w[8]))
2550                         {
2551                             PIXEL11_0
2552                         }
2553                         else
2554                         {
2555                             PIXEL11_20
2556                         }
2557                         break;
2558                     }
2559                 case 239:
2560                     {
2561                         if (DIFF_FUNC(w[4], w[2]))
2562                         {
2563                             PIXEL00_0
2564                         }
2565                         else
2566                         {
2567                             PIXEL00_100
2568                         }
2569                         PIXEL01_12
2570                         if (DIFF_FUNC(w[8], w[4]))
2571                         {
2572                             PIXEL10_0
2573                         }
2574                         else
2575                         {
2576                             PIXEL10_100
2577                         }
2578                         PIXEL11_11
2579                         break;
2580                     }
2581                 case 127:
2582                     {
2583                         if (DIFF_FUNC(w[4], w[2]))
2584                         {
2585                             PIXEL00_0
2586                         }
2587                         else
2588                         {
2589                             PIXEL00_100
2590                         }
2591                         if (DIFF_FUNC(w[2], w[6]))
2592                         {
2593                             PIXEL01_0
2594                         }
2595                         else
2596                         {
2597                             PIXEL01_20
2598                         }
2599                         if (DIFF_FUNC(w[8], w[4]))
2600                         {
2601                             PIXEL10_0
2602                         }
2603                         else
2604                         {
2605                             PIXEL10_20
2606                         }
2607                         PIXEL11_10
2608                         break;
2609                     }
2610                 case 191:
2611                     {
2612                         if (DIFF_FUNC(w[4], w[2]))
2613                         {
2614                             PIXEL00_0
2615                         }
2616                         else
2617                         {
2618                             PIXEL00_100
2619                         }
2620                         if (DIFF_FUNC(w[2], w[6]))
2621                         {
2622                             PIXEL01_0
2623                         }
2624                         else
2625                         {
2626                             PIXEL01_100
2627                         }
2628                         PIXEL10_11
2629                         PIXEL11_12
2630                         break;
2631                     }
2632                 case 223:
2633                     {
2634                         if (DIFF_FUNC(w[4], w[2]))
2635                         {
2636                             PIXEL00_0
2637                         }
2638                         else
2639                         {
2640                             PIXEL00_20
2641                         }
2642                         if (DIFF_FUNC(w[2], w[6]))
2643                         {
2644                             PIXEL01_0
2645                         }
2646                         else
2647                         {
2648                             PIXEL01_100
2649                         }
2650                         PIXEL10_10
2651                         if (DIFF_FUNC(w[6], w[8]))
2652                         {
2653                             PIXEL11_0
2654                         }
2655                         else
2656                         {
2657                             PIXEL11_20
2658                         }
2659                         break;
2660                     }
2661                 case 247:
2662                     {
2663                         PIXEL00_11
2664                         if (DIFF_FUNC(w[2], w[6]))
2665                         {
2666                             PIXEL01_0
2667                         }
2668                         else
2669                         {
2670                             PIXEL01_100
2671                         }
2672                         PIXEL10_12
2673                         if (DIFF_FUNC(w[6], w[8]))
2674                         {
2675                             PIXEL11_0
2676                         }
2677                         else
2678                         {
2679                             PIXEL11_100
2680                         }
2681                         break;
2682                     }
2683                 case 255:
2684                     {
2685                         if (DIFF_FUNC(w[4], w[2]))
2686                         {
2687                             PIXEL00_0
2688                         }
2689                         else
2690                         {
2691                             PIXEL00_100
2692                         }
2693                         if (DIFF_FUNC(w[2], w[6]))
2694                         {
2695                             PIXEL01_0
2696                         }
2697                         else
2698                         {
2699                             PIXEL01_100
2700                         }
2701                         if (DIFF_FUNC(w[8], w[4]))
2702                         {
2703                             PIXEL10_0
2704                         }
2705                         else
2706                         {
2707                             PIXEL10_100
2708                         }
2709                         if (DIFF_FUNC(w[6], w[8]))
2710                         {
2711                             PIXEL11_0
2712                         }
2713                         else
2714                         {
2715                             PIXEL11_100
2716                         }
2717                         break;
2718                     }
2719             }
2720             sp++;
2721             dp += 2;
2722         }
2723 
2724         sRowP += srb;
2725         sp = (HQ2X_TYPE *) sRowP;
2726 
2727         dRowP += drb * 2;
2728         dp = (HQ2X_TYPE *) dRowP;
2729     }
2730 }
2731 
HQ2X_FUNC(HQ2X_TYPE * sp,HQ2X_TYPE * dp,int Xres,int Yres)2732 HQX_API void HQX_CALLCONV HQ2X_FUNC( HQ2X_TYPE * sp, HQ2X_TYPE * dp, int Xres, int Yres )
2733 {
2734     uint32_t rowBytesL = Xres * HQ2X_BYTES;
2735     HQ2X_RB_FUNC(sp, rowBytesL, dp, rowBytesL * 2, Xres, Yres);
2736 }
2737