553 | | p += wrap4; |
| 575 | if (width & 1) { |
| 576 | r = p[R_II]; |
| 577 | g = p[G_II]; |
| 578 | b = p[B_II]; |
| 579 | r1 = r; |
| 580 | g1 = g; |
| 581 | b1 = b; |
| 582 | lum[0] = (FIX(0.29900) * r + FIX(0.58700) * g + |
| 583 | FIX(0.11400) * b + ONE_HALF) >> SCALEBITS; |
| 584 | alpha[0] = p[A_II]; |
| 585 | |
| 586 | lum[1] = 16; |
| 587 | alpha[1] = 0; |
| 588 | |
| 589 | p += wrap4; |
| 590 | lum += wrap; |
| 591 | alpha += wrap; |
| 592 | |
| 593 | r = p[R_II]; |
| 594 | g = p[G_II]; |
| 595 | b = p[B_II]; |
| 596 | r1 += r; |
| 597 | g1 += g; |
| 598 | b1 += b; |
| 599 | lum[0] = (FIX(0.29900) * r + FIX(0.58700) * g + |
| 600 | FIX(0.11400) * b + ONE_HALF) >> SCALEBITS; |
| 601 | alpha[0] = p[A_II]; |
| 602 | |
| 603 | lum[1] = 16; |
| 604 | alpha[1] = 0; |
| 605 | |
| 606 | cr[0] = ((- FIX(0.16874) * r1 - FIX(0.33126) * g1 + |
| 607 | FIX(0.50000) * b1 + 2 * ONE_HALF - 1) >> (SCALEBITS + 1)) + |
| 608 | 128; |
| 609 | cb[0] = ((FIX(0.50000) * r1 - FIX(0.41869) * g1 - |
| 610 | FIX(0.08131) * b1 + 2 * ONE_HALF - 1) >> (SCALEBITS + 1)) + |
| 611 | 128; |
| 612 | |
| 613 | cb++; |
| 614 | cr++; |
| 615 | p += -wrap4 + 4; |
| 616 | lum += -wrap + 2; |
| 617 | alpha += -wrap + 2; |
| 618 | } |
| 619 | p += wrap4 * 2 - width * 4; |
| 623 | if (height & 1) { |
| 624 | for(x=0;x+1<width;x+=2) { |
| 625 | r = p[R_II]; |
| 626 | g = p[G_II]; |
| 627 | b = p[B_II]; |
| 628 | r1 = r; |
| 629 | g1 = g; |
| 630 | b1 = b; |
| 631 | lum[0] = (FIX(0.29900) * r + FIX(0.58700) * g + |
| 632 | FIX(0.11400) * b + ONE_HALF) >> SCALEBITS; |
| 633 | alpha[0] = p[A_II]; |
| 634 | |
| 635 | r = p[R_II+4]; |
| 636 | g = p[G_II+4]; |
| 637 | b = p[B_II+4]; |
| 638 | r1 += r; |
| 639 | g1 += g; |
| 640 | b1 += b; |
| 641 | lum[1] = (FIX(0.29900) * r + FIX(0.58700) * g + |
| 642 | FIX(0.11400) * b + ONE_HALF) >> SCALEBITS; |
| 643 | alpha[1] = p[A_II+4]; |
| 644 | |
| 645 | lum += wrap; |
| 646 | alpha += wrap; |
| 647 | |
| 648 | lum[0] = 16; |
| 649 | alpha[0] = 0; |
| 650 | |
| 651 | lum[1] = 16; |
| 652 | alpha[1] = 0; |
| 653 | |
| 654 | cr[0] = ((- FIX(0.16874) * r1 - FIX(0.33126) * g1 + |
| 655 | FIX(0.50000) * b1 + 2 * ONE_HALF - 1) >> (SCALEBITS + 1)) + |
| 656 | 128; |
| 657 | cb[0] = ((FIX(0.50000) * r1 - FIX(0.41869) * g1 - |
| 658 | FIX(0.08131) * b1 + 2 * ONE_HALF - 1) >> (SCALEBITS + 1)) + |
| 659 | 128; |
| 660 | |
| 661 | cb++; |
| 662 | cr++; |
| 663 | p += 2 * 4; |
| 664 | lum += -wrap + 2; |
| 665 | alpha += -wrap + 2; |
| 666 | } |
| 667 | if (width & 1) { |
| 668 | r = p[R_II]; |
| 669 | g = p[G_II]; |
| 670 | b = p[B_II]; |
| 671 | r1 = r; |
| 672 | g1 = g; |
| 673 | b1 = b; |
| 674 | lum[0] = (FIX(0.29900) * r + FIX(0.58700) * g + |
| 675 | FIX(0.11400) * b + ONE_HALF) >> SCALEBITS; |
| 676 | alpha[0] = p[A_II]; |
| 677 | |
| 678 | lum[1] = 16; |
| 679 | alpha[1] = 0; |
| 680 | |
| 681 | lum += wrap; |
| 682 | alpha += wrap; |
| 683 | |
| 684 | lum[0] = 16; |
| 685 | alpha[0] = 0; |
| 686 | |
| 687 | lum[1] = 16; |
| 688 | alpha[1] = 0; |
| 689 | |
| 690 | cr[0] = ((- FIX(0.16874) * r1 - FIX(0.33126) * g1 + |
| 691 | FIX(0.50000) * b1 + ONE_HALF - 1) >> SCALEBITS) + |
| 692 | 128; |
| 693 | cb[0] = ((FIX(0.50000) * r1 - FIX(0.41869) * g1 - |
| 694 | FIX(0.08131) * b1 + ONE_HALF - 1) >> SCALEBITS) + |
| 695 | 128; |
| 696 | |
| 697 | cb++; |
| 698 | cr++; |
| 699 | p += 4; |
| 700 | lum += -wrap + 2; |
| 701 | alpha += -wrap + 2; |
| 702 | } |
| 703 | } |