Changeset 118 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComYuv.cpp
 Timestamp:
 30 Aug 2012, 17:05:38 (12 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/source/Lib/TLibCommon/TComYuv.cpp
r100 r118 711 711 getPUXYOffset(uhPartitionSize, uiPartSize, uiPartSize, iXOffset, iYOffset); 712 712 713 for ( y = uiPartSize1; y >= iYOffset; y ) 714 { 715 if(iPUResiPredShift[3] >= 0) 716 { 717 for ( x = uiPartSize1; x >= iXOffset; x ) 718 { 719 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[3]); 720 } 721 } 722 723 if(iPUResiPredShift[2] >= 0) 724 { 725 for ( x = iXOffset1; x >= 0; x ) 726 { 727 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[2]); 713 #if FIX_LG_RESTRICTEDRESPRED_M24766 714 for ( y = 0; y < iYOffset; y++ ) 715 { 716 if(iPUResiPredShift[0] >= 0) 717 { 718 for ( x = 0; x < iXOffset; x++ ) 719 { 720 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[0]); 721 } 722 } 723 724 if(iPUResiPredShift[1] >= 0) 725 { 726 for ( x = iXOffset; x < uiPartSize; x++ ) 727 { 728 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[1]); 728 729 } 729 730 } … … 733 734 } 734 735 735 for ( y = iYOffset1; y >= 0; y ) 736 { 737 if(iPUResiPredShift[1] >= 0) 738 { 739 for ( x = uiPartSize1; x >= iXOffset; x ) 736 for ( y = iYOffset; y < uiPartSize; y++ ) 737 { 738 if(iPUResiPredShift[2] >= 0) 739 { 740 for ( x = 0; x < iXOffset; x++ ) 741 { 742 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[2]); 743 } 744 } 745 746 if(iPUResiPredShift[3] >= 0) 747 { 748 for ( x = iXOffset; x < uiPartSize; x++ ) 740 749 { 741 750 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[3]); 742 }743 }744 745 if(iPUResiPredShift[0] >= 0)746 {747 for ( x = iXOffset1; x >= 0; x )748 {749 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[2]);750 751 } 751 752 } … … 754 755 pDst += iDstStride; 755 756 } 756 757 #else 758 for ( y = uiPartSize1; y >= iYOffset; y ) 759 { 760 if(iPUResiPredShift[3] >= 0) 761 { 762 for ( x = uiPartSize1; x >= iXOffset; x ) 763 { 764 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[3]); 765 } 766 } 767 768 if(iPUResiPredShift[2] >= 0) 769 { 770 for ( x = iXOffset1; x >= 0; x ) 771 { 772 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[2]); 773 } 774 } 775 pSrc0 += iSrc0Stride; 776 pSrc1 += iSrc1Stride; 777 pDst += iDstStride; 778 } 779 780 for ( y = iYOffset1; y >= 0; y ) 781 { 782 if(iPUResiPredShift[1] >= 0) 783 { 784 for ( x = uiPartSize1; x >= iXOffset; x ) 785 { 786 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[3]); 787 } 788 } 789 790 if(iPUResiPredShift[0] >= 0) 791 { 792 for ( x = iXOffset1; x >= 0; x ) 793 { 794 pDst[x] = pSrc0[x]  (pSrc1[x] >> iPUResiPredShift[2]); 795 } 796 } 797 pSrc0 += iSrc0Stride; 798 pSrc1 += iSrc1Stride; 799 pDst += iDstStride; 800 } 801 #endif 757 802 #else 758 803 for ( y = uiPartSize1; y >= 0; y ) … … 792 837 getPUXYOffset(uhPartitionSize, uiPartSize, uiPartSize, iXOffset, iYOffset); 793 838 794 for ( y = uiPartSize1; y >= iYOffset; y ) 795 { 796 if(iPUResiPredShift[3] >= 0) 797 { 798 for ( x = uiPartSize1; x >= iXOffset; x ) 799 { 800 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[3]); 801 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[3]); 802 } 803 } 804 805 if(iPUResiPredShift[2] >= 0) 806 { 807 for ( x = iXOffset1; x >= 0; x ) 808 { 809 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[2]); 810 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[2]); 839 #if FIX_LG_RESTRICTEDRESPRED_M24766 840 for ( y = 0; y < iYOffset; y++ ) 841 { 842 if(iPUResiPredShift[0] >= 0) 843 { 844 for ( x = 0; x < iXOffset; x++ ) 845 { 846 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[0]); 847 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[0]); 848 } 849 } 850 851 if(iPUResiPredShift[1] >= 0) 852 { 853 for ( x = iXOffset; x < uiPartSize; x++ ) 854 { 855 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[1]); 856 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[1]); 811 857 } 812 858 } … … 819 865 } 820 866 821 for ( y = iYOffset 1; y >= 0; y)822 { 823 if(iPUResiPredShift[ 1] >= 0)824 { 825 for ( x = uiPartSize1; x >= iXOffset; x)826 { 827 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[ 1]);828 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[ 1]);829 } 830 } 831 832 if(iPUResiPredShift[ 0] >= 0)833 { 834 for ( x = iXOffset 1; x >= 0; x)835 { 836 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[ 0]);837 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[ 0]);867 for ( y = iYOffset; y < uiPartSize; y++ ) 868 { 869 if(iPUResiPredShift[2] >= 0) 870 { 871 for ( x = 0; x < iXOffset; x++ ) 872 { 873 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[2]); 874 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[2]); 875 } 876 } 877 878 if(iPUResiPredShift[3] >= 0) 879 { 880 for ( x = iXOffset; x < uiPartSize; x++ ) 881 { 882 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[3]); 883 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[3]); 838 884 } 839 885 } … … 845 891 pDstV += iDstStride; 846 892 } 893 #else 894 for ( y = uiPartSize1; y >= iYOffset; y ) 895 { 896 if(iPUResiPredShift[3] >= 0) 897 { 898 for ( x = uiPartSize1; x >= iXOffset; x ) 899 { 900 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[3]); 901 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[3]); 902 } 903 } 904 905 if(iPUResiPredShift[2] >= 0) 906 { 907 for ( x = iXOffset1; x >= 0; x ) 908 { 909 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[2]); 910 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[2]); 911 } 912 } 913 pSrcU0 += iSrc0Stride; 914 pSrcU1 += iSrc1Stride; 915 pSrcV0 += iSrc0Stride; 916 pSrcV1 += iSrc1Stride; 917 pDstU += iDstStride; 918 pDstV += iDstStride; 919 } 920 921 for ( y = iYOffset1; y >= 0; y ) 922 { 923 if(iPUResiPredShift[1] >= 0) 924 { 925 for ( x = uiPartSize1; x >= iXOffset; x ) 926 { 927 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[1]); 928 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[1]); 929 } 930 } 931 932 if(iPUResiPredShift[0] >= 0) 933 { 934 for ( x = iXOffset1; x >= 0; x ) 935 { 936 pDstU[x] = pSrcU0[x]  (pSrcU1[x]>>iPUResiPredShift[0]); 937 pDstV[x] = pSrcV0[x]  (pSrcV1[x]>>iPUResiPredShift[0]); 938 } 939 } 940 pSrcU0 += iSrc0Stride; 941 pSrcU1 += iSrc1Stride; 942 pSrcV0 += iSrc0Stride; 943 pSrcV1 += iSrc1Stride; 944 pDstU += iDstStride; 945 pDstV += iDstStride; 946 } 947 #endif 847 948 #else 848 949 for ( y = uiPartSize1; y >= 0; y )
Note: See TracChangeset for help on using the changeset viewer.