Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
9837 turbocat 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
24
    {
25
        if (j>0)      prevline = -spL; else prevline = 0;
26
        if (j
27
 
28
        for (i=0; 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
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
 
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
}