Changeset 213 in 3DVCSoftware for branches/HTM-4.0.1-VSP-dev0/source/Lib/TLibEncoder/TEncCu.cpp
- Timestamp:
- 31 Dec 2012, 18:33:14 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-4.0.1-VSP-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r193 r213 451 451 TComPic* pcPic = rpcBestCU->getPic(); 452 452 453 #if OL_DEPTHLIMIT_A0044 454 TComSPS *sps = pcPic->getSlice(0)->getSPS(); 455 TComPic *pcTexture; 456 TComDataCU * pcTextureCU; 457 Bool depthMapDetect = false; 458 //UInt uiPrevTexPartIndex = 0; 459 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 460 Bool bIntraSliceDetect = false; 461 #endif 462 Bool bTry2NxN = false; 463 Bool bTryNx2N = false; 464 pcTexture = rpcBestCU->getSlice()->getTexturePic(); 465 if(pcTexture != NULL) //depth map being encoded 466 { 467 depthMapDetect = true; 468 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 469 bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType()==I_SLICE); 470 #endif 471 if(uiDepth == 0) 472 { 473 pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() ); 474 pcTexture->setPartInfo(pcTextureCU->readPartInfo()); 475 pcTexture->setTexPartIndex(0); 476 } 477 } 478 else 479 { 480 depthMapDetect = false; 481 } 482 #endif 453 #if OL_QTLIMIT_PREDCODING_B0068 454 TComSPS *sps = pcPic->getSlice(0)->getSPS(); 455 TComPic *pcTexture = rpcBestCU->getSlice()->getTexturePic(); 456 457 Bool depthMapDetect = (pcTexture != NULL); 458 Bool bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType() == I_SLICE); 459 460 Bool bTry2NxN = true; 461 Bool bTryNx2N = true; 462 #endif 463 483 464 // get Original YUV data from picture 484 465 m_ppcOrigYuv[uiDepth]->copyFromPicYuv( pcPic->getPicYuvOrg(), rpcBestCU->getAddr(), rpcBestCU->getZorderIdxInCU() ); 485 466 #if FORCE_REF_VSP 486 Bool bWholeCUCanBeSynthesized = false;467 //Bool bWholeCUCanBeSynthesized = false; 487 468 //Bool bOneSubCUCanNotBeSynthesied = false; 488 469 Bool bSubCUCanBeSynthesized[4]; … … 506 487 if(iSubCUCanBeSynthesizedCnt == 4) 507 488 { 508 bWholeCUCanBeSynthesized = true;489 //bWholeCUCanBeSynthesized = true; 509 490 } 510 491 //else if(iSubCUCanBeSynthesizedCnt == 3) … … 543 524 UInt uiTPelY = rpcBestCU->getCUPelY(); 544 525 UInt uiBPelY = uiTPelY + rpcBestCU->getHeight(0) - 1; 526 527 #if LGE_ILLUCOMP_B0045 528 Bool bICEnabled = (!rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getViewId()); 529 530 bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC(); 531 #endif 545 532 546 533 #if HHI_INTERVIEW_SKIP … … 650 637 // variables for fast encoder decision 651 638 bEarlySkip = false; 652 bTrySplit 639 bTrySplit = true; 653 640 fRD_Skip = MAX_DOUBLE; 654 641 655 642 rpcTempCU->initEstData( uiDepth, iQP ); 656 643 657 #if OL_ DEPTHLIMIT_A0044644 #if OL_QTLIMIT_PREDCODING_B0068 658 645 //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU 659 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 660 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 661 #else 662 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 663 #endif 664 { 665 assert(uiDepth == pcTexture->accessPartInfo(1)); 666 if(pcTexture->accessPartInfo(0) == 1) //NxN modes 646 if(depthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC()) 647 { 648 TComDataCU* pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() ); //Corresponding texture LCU 649 UInt uiCUIdx = rpcBestCU->getZorderIdxInCU(); 650 assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth); //Depth cannot be more partitionned than the texture. 651 if (pcTextureCU->getDepth(uiCUIdx) > uiDepth || pcTextureCU->getPartitionSize(uiCUIdx) == SIZE_NxN) //Texture was split. 667 652 { 668 653 bTrySplit = true; 669 bTryNx2N = true; 670 bTry2NxN = true; 671 //uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 672 pcTexture->incrementTexPartIndex(); 654 bTryNx2N = true; 655 bTry2NxN = true; 673 656 } 674 else if(pcTexture->accessPartInfo(0) == 0) //2Nx2N modes 675 { 676 UInt uiTexdepth; 677 UInt temp_uiTexPartIndex; 678 bTrySplit = false; 679 680 //scan ahead till next depth 681 uiTexdepth = pcTexture->accessPartInfo(1); 682 //uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 683 pcTexture->incrementTexPartIndex(); 684 temp_uiTexPartIndex = pcTexture->getTexPartIndex(); //store in case to rewind 685 686 while(uiTexdepth != pcTexture->accessPartInfo(1) && uiTexdepth != 0) 687 { 688 if(pcTexture->accessPartInfo(1) < uiTexdepth) 689 { 690 break; 691 } 692 pcTexture->incrementTexPartIndex(); 693 694 if(pcTexture->accessPartInfo(1) == OL_END_CU) 695 { 696 pcTexture->setTexPartIndex(temp_uiTexPartIndex); 697 uiTexdepth++; 698 if(uiTexdepth >= g_uiMaxCUDepth) 699 { 700 break; 701 } 702 } 703 } 704 } 705 else if(pcTexture->accessPartInfo(0) == OL_END_CU) 657 else 706 658 { 707 659 bTrySplit = false; 708 bTryNx2N = false;709 bTry2NxN = false;660 bTryNx2N = false; 661 bTry2NxN = false; 710 662 } 711 else if(pcTexture->accessPartInfo(0) == 2) //2NxN case 712 { 713 bTrySplit = false; 714 bTryNx2N = false; 715 bTry2NxN = true; 716 //uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 717 pcTexture->incrementTexPartIndex(); ; 718 } 719 else if(pcTexture->accessPartInfo(0) == 3) //Nx2N case 720 { 721 bTrySplit = false; 722 bTryNx2N = true; 723 bTry2NxN = false; 724 //uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 725 pcTexture->incrementTexPartIndex(); ; 726 } 727 } 728 #endif 729 663 } 664 #endif 730 665 731 666 // do inter modes, SKIP and 2Nx2N … … 750 685 { 751 686 Bool bResPredFlag = ( uiResPrdId > 0 ); 752 #endif 753 #if HHI_INTER_VIEW_RESIDUAL_PRED 754 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 755 #endif 756 // SKIP 687 #if LGE_ILLUCOMP_B0045 688 for(UInt uiICId = 0; uiICId < (bICEnabled ? 2 : 1); uiICId++) 689 { 690 Bool bICFlag = (uiICId ? true : false); 691 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 692 #endif 693 #endif 694 #if HHI_INTER_VIEW_RESIDUAL_PRED 695 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 696 #endif 697 // SKIP 757 698 #if HHI_INTERVIEW_SKIP 758 xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU, bFullyRenderedSec ); 759 #else 760 xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU ); 761 #endif 762 rpcTempCU->initEstData( uiDepth, iQP ); 763 764 // fast encoder decision for early skip 765 if ( m_pcEncCfg->getUseFastEnc() ) 766 { 767 Int iIdx = g_aucConvertToBit[ rpcBestCU->getWidth(0) ]; 768 if ( aiNum [ iIdx ] > 5 && fRD_Skip < EARLY_SKIP_THRES*afCost[ iIdx ]/aiNum[ iIdx ] ) 699 xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU, bFullyRenderedSec ); 700 #else 701 xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU ); 702 #endif 703 rpcTempCU->initEstData( uiDepth, iQP ); 704 705 // fast encoder decision for early skip 706 if ( m_pcEncCfg->getUseFastEnc() ) 769 707 { 770 bEarlySkip = true; 771 bTrySplit = false; 708 Int iIdx = g_aucConvertToBit[ rpcBestCU->getWidth(0) ]; 709 if ( aiNum [ iIdx ] > 5 && fRD_Skip < EARLY_SKIP_THRES*afCost[ iIdx ]/aiNum[ iIdx ] ) 710 { 711 bEarlySkip = true; 712 bTrySplit = false; 713 } 772 714 } 773 } 774 775 // 2Nx2N, NxN 776 if ( !bEarlySkip ) 777 { 778 #if HHI_INTER_VIEW_RESIDUAL_PRED 779 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 715 #if LGE_ILLUCOMP_B0045_ENCSIMP 716 if(bICFlag && rpcBestCU->getMergeFlag(0) && !rpcBestCU->getICFlag(0)) 717 { 718 bICEnabled = false; 719 break; 720 } 721 #endif 722 723 // 2Nx2N, NxN 724 if ( !bEarlySkip ) 725 { 726 #if HHI_INTER_VIEW_RESIDUAL_PRED 727 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 780 728 #endif 781 729 #if HHI_INTERVIEW_SKIP 782 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFullyRenderedSec );783 784 #else 785 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N );786 #endif 787 rpcTempCU->initEstData( uiDepth, iQP );788 if(m_pcEncCfg->getUseCbfFastMode())789 {790 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;791 }730 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFullyRenderedSec ); 731 732 #else 733 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); 734 #endif 735 rpcTempCU->initEstData( uiDepth, iQP ); 736 if(m_pcEncCfg->getUseCbfFastMode()) 737 { 738 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 739 } 792 740 793 741 #if FORCE_REF_VSP==1 794 742 #if VSP_CFG 795 if( rpcBestCU->getSlice()->getSPS()->getVspDepthPresentFlag() || !rpcBestCU->getSlice()->getSPS()->isDepth() )796 #else 797 if( !rpcBestCU->getSlice()->getVspDepthDisableFlag() || !rpcBestCU->getSlice()->getSPS()->isDepth() )798 #endif 799 if( bWholeCUCanBeSynthesized )800 {801 #if HHI_INTER_VIEW_RESIDUAL_PRED 802 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );743 if( rpcBestCU->getSlice()->getSPS()->getVspDepthPresentFlag() || !rpcBestCU->getSlice()->getSPS()->isDepth() ) 744 #else 745 if( !rpcBestCU->getSlice()->getVspDepthDisableFlag() || !rpcBestCU->getSlice()->getSPS()->isDepth() ) 746 #endif 747 if( bWholeCUCanBeSynthesized ) 748 { 749 #if HHI_INTER_VIEW_RESIDUAL_PRED 750 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 803 751 #endif 804 752 #if HHI_INTERVIEW_SKIP 805 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFullyRenderedSec, false, true ); // VSP 806 #else 807 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); 808 #endif 809 rpcTempCU->initEstData( uiDepth, iQP ); 753 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFullyRenderedSec, false, true ); // VSP 754 #else 755 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); 756 #endif 757 rpcTempCU->initEstData( uiDepth, iQP ); 758 } 759 //#else 760 // if( bWholeCUCanBeSynthesized ) // To avoid compiling warning 761 // { 762 // } 763 #endif 810 764 } 811 #else 812 if( bWholeCUCanBeSynthesized ) // To avoid compiling warning 813 { 814 } 815 #endif 765 #if LGE_ILLUCOMP_B0045 816 766 } 767 #endif 817 768 #if HHI_INTER_VIEW_RESIDUAL_PRED 818 769 } // uiResPrdId … … 820 771 } // != I_SLICE 821 772 822 #if OL_DEPTHLIMIT_A0044823 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 824 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 825 #else 826 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 827 #endif 773 #if LGE_ILLUCOMP_B0045_ENCSIMP 774 bICEnabled = rpcBestCU->getICFlag(0); 775 #endif 776 777 #if OL_QTLIMIT_PREDCODING_B0068 778 if(depthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC()) 828 779 { 829 780 bTrySplitDQP = bTrySplit; … … 831 782 else 832 783 { 784 #endif 833 785 if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() ) 834 786 { … … 842 794 bTrySplitDQP = bTrySplit; 843 795 } 844 } 845 #else 846 847 if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() ) 848 { 849 if(iQP == iBaseQP) 850 { 851 bTrySplitDQP = bTrySplit; 852 } 853 } 854 else 855 { 856 bTrySplitDQP = bTrySplit; 857 } 858 #endif 796 #if OL_QTLIMIT_PREDCODING_B0068 797 } 798 #endif 799 859 800 #if LOSSLESS_CODING 860 801 if (isAddLowestQP && (iQP == lowestQP)) … … 897 838 { 898 839 Bool bResPredFlag = ( uiResPrdId > 0 ); 899 #endif 900 // 2Nx2N, NxN 901 if ( !bEarlySkip ) 840 #if LGE_ILLUCOMP_B0045 841 for(UInt uiICId = 0; uiICId < (bICEnabled ? 2 : 1); uiICId++) 902 842 { 903 904 if(!( rpcBestCU->getSlice()->getSPS()->getDisInter4x4() && (rpcBestCU->getWidth(0)==8) && (rpcBestCU->getHeight(0)==8) )) 843 Bool bICFlag = (uiICId ? true : false); 844 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 845 #endif 846 #endif 847 // 2Nx2N, NxN 848 if ( !bEarlySkip ) 905 849 { 906 if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth && doNotBlockPu) 850 851 if(!( rpcBestCU->getSlice()->getSPS()->getDisInter4x4() && (rpcBestCU->getWidth(0)==8) && (rpcBestCU->getHeight(0)==8) )) 907 852 { 908 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 909 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 910 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 911 #else 912 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 913 #endif 853 if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth && doNotBlockPu) 914 854 { 915 if (bTrySplit) 855 #if OL_QTLIMIT_PREDCODING_B0068 //try InterNxN 856 if(bTrySplit) 916 857 { 917 858 #endif … … 925 866 #endif 926 867 rpcTempCU->initEstData( uiDepth, iQP ); 927 #if OL_DEPTHLIMIT_A0044 928 }//bTrySplit 929 }//depthMapDetect 930 else//do things normally 931 { 932 #if HHI_INTER_VIEW_RESIDUAL_PRED 933 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 934 #endif 935 #if HHI_INTERVIEW_SKIP 936 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN, bFullyRenderedSec ); 937 #else 938 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN ); 939 #endif 940 rpcTempCU->initEstData( uiDepth, iQP ); 941 } 942 #endif 868 #if OL_QTLIMIT_PREDCODING_B0068 869 } 870 #endif 871 } 943 872 } 944 873 } 945 } 946 947 { // 2NxN, Nx2N 948 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 949 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 950 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 951 #else 952 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 953 #endif 954 { 955 if (bTryNx2N) 874 875 { // 2NxN, Nx2N 876 #if OL_QTLIMIT_PREDCODING_B0068 //try Nx2N 877 if(bTryNx2N) 956 878 { 957 879 #endif … … 972 894 } 973 895 } 974 #if OL_DEPTHLIMIT_A0044 975 }//bTryNx2N 976 }//depthMapDetect 977 else//do things normally 978 { 979 if(doNotBlockPu) 980 { 981 #if HHI_INTER_VIEW_RESIDUAL_PRED 982 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 983 #endif 984 #if HHI_INTERVIEW_SKIP 985 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N, bFullyRenderedSec ); 986 #else 987 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N ); 988 #endif 989 rpcTempCU->initEstData( uiDepth, iQP ); 990 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_Nx2N ) 991 { 992 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 993 } 896 #if OL_QTLIMIT_PREDCODING_B0068 994 897 } 995 } 996 #endif 997 998 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 999 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1000 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1001 #else 1002 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1003 #endif 1004 { 1005 if (bTry2NxN) 898 #endif 899 900 #if OL_QTLIMIT_PREDCODING_B0068 //try 2NxN 901 if(bTry2NxN) 1006 902 { 1007 903 #endif … … 1022 918 } 1023 919 } 1024 #if OL_DEPTHLIMIT_A0044 1025 }//bTryNx2N 1026 }//depthMapDetect 1027 else//do things normally 920 #if OL_QTLIMIT_PREDCODING_B0068 921 } 922 #endif 923 } 924 925 #if 1 926 //! Try AMP (SIZE_2NxnU, SIZE_2NxnD, SIZE_nLx2N, SIZE_nRx2N) 927 if( pcPic->getSlice(0)->getSPS()->getAMPAcc(uiDepth) ) 1028 928 { 1029 if(doNotBlockPu) 929 #if AMP_ENC_SPEEDUP 930 Bool bTestAMP_Hor = false, bTestAMP_Ver = false; 931 932 #if AMP_MRG 933 Bool bTestMergeAMP_Hor = false, bTestMergeAMP_Ver = false; 934 935 deriveTestModeAMP (rpcBestCU, eParentPartSize, bTestAMP_Hor, bTestAMP_Ver, bTestMergeAMP_Hor, bTestMergeAMP_Ver); 936 #else 937 deriveTestModeAMP (rpcBestCU, eParentPartSize, bTestAMP_Hor, bTestAMP_Ver); 938 #endif 939 940 //! Do horizontal AMP 941 if ( bTestAMP_Hor ) 1030 942 { 1031 #if HHI_INTER_VIEW_RESIDUAL_PRED 1032 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1033 #endif 1034 #if HHI_INTERVIEW_SKIP 1035 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxN, bFullyRenderedSec ); 1036 #else 1037 xCheckRDCostInter ( rpcBestCU, rpcTempCU, SIZE_2NxN ); 1038 #endif 1039 rpcTempCU->initEstData( uiDepth, iQP ); 1040 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxN) 1041 { 1042 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1043 } 1044 } 1045 } 1046 #endif 1047 } 1048 1049 #if 1 1050 //! Try AMP (SIZE_2NxnU, SIZE_2NxnD, SIZE_nLx2N, SIZE_nRx2N) 1051 if( pcPic->getSlice(0)->getSPS()->getAMPAcc(uiDepth) ) 1052 { 1053 #if AMP_ENC_SPEEDUP 1054 Bool bTestAMP_Hor = false, bTestAMP_Ver = false; 1055 1056 #if AMP_MRG 1057 Bool bTestMergeAMP_Hor = false, bTestMergeAMP_Ver = false; 1058 1059 deriveTestModeAMP (rpcBestCU, eParentPartSize, bTestAMP_Hor, bTestAMP_Ver, bTestMergeAMP_Hor, bTestMergeAMP_Ver); 1060 #else 1061 deriveTestModeAMP (rpcBestCU, eParentPartSize, bTestAMP_Hor, bTestAMP_Ver); 1062 #endif 1063 1064 //! Do horizontal AMP 1065 if ( bTestAMP_Hor ) 1066 { 1067 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 1068 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1069 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1070 #else 1071 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1072 #endif 1073 { 1074 if (bTry2NxN) 943 #if OL_QTLIMIT_PREDCODING_B0068 //try 2NxnU & 2NxnD 944 if(bTry2NxN) 1075 945 { 1076 946 #endif … … 1107 977 } 1108 978 } 1109 #if OL_DEPTHLIMIT_A0044 1110 }//bTry2NxN 1111 }//depthMapDetect 1112 else//do things normally 979 #if OL_QTLIMIT_PREDCODING_B0068 980 } 981 #endif 982 } 983 #if AMP_MRG 984 else if ( bTestMergeAMP_Hor ) 1113 985 { 1114 if(doNotBlockPu) 1115 { 1116 #if HHI_INTER_VIEW_RESIDUAL_PRED 1117 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1118 #endif 1119 #if HHI_INTERVIEW_SKIP 1120 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec ); 1121 #else 1122 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU ); 1123 #endif 1124 rpcTempCU->initEstData( uiDepth, iQP ); 1125 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU ) 1126 { 1127 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1128 } 1129 } 1130 if(doNotBlockPu) 1131 { 1132 #if HHI_INTER_VIEW_RESIDUAL_PRED 1133 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1134 #endif 1135 #if HHI_INTERVIEW_SKIP 1136 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec ); 1137 #else 1138 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD ); 1139 #endif 1140 rpcTempCU->initEstData( uiDepth, iQP ); 1141 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD ) 1142 { 1143 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1144 } 1145 } 1146 } 1147 #endif 1148 } 1149 #if AMP_MRG 1150 else if ( bTestMergeAMP_Hor ) 1151 { 1152 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 1153 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1154 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1155 #else 1156 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1157 #endif 1158 { 1159 if (bTry2NxN) 986 #if OL_QTLIMIT_PREDCODING_B0068 //try 2NxnU & 2NxnD Merge 987 if(bTry2NxN) 1160 988 { 1161 989 #endif … … 1192 1020 } 1193 1021 } 1194 #if OL_DEPTHLIMIT_A0044 1195 }//bTry2NxN 1196 }//depthMapDetect 1197 else//do things normally 1022 #if OL_QTLIMIT_PREDCODING_B0068 1023 } 1024 #endif 1025 } 1026 #endif 1027 1028 //! Do horizontal AMP 1029 if ( bTestAMP_Ver ) 1198 1030 { 1199 if(doNotBlockPu) 1200 { 1201 #if HHI_INTER_VIEW_RESIDUAL_PRED 1202 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1203 #endif 1204 #if HHI_INTERVIEW_SKIP 1205 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec, true ); 1206 #else 1207 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, true ); 1208 #endif 1209 rpcTempCU->initEstData( uiDepth, iQP ); 1210 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU ) 1211 { 1212 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1213 } 1214 } 1215 if(doNotBlockPu) 1216 { 1217 #if HHI_INTER_VIEW_RESIDUAL_PRED 1218 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1219 #endif 1220 #if HHI_INTERVIEW_SKIP 1221 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec, true ); 1222 #else 1223 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, true ); 1224 #endif 1225 rpcTempCU->initEstData( uiDepth, iQP ); 1226 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD ) 1227 { 1228 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1229 } 1230 } 1231 1232 } 1233 #endif 1234 } 1235 #endif 1236 1237 //! Do horizontal AMP 1238 if ( bTestAMP_Ver ) 1239 { 1240 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 1241 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1242 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1243 #else 1244 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1245 #endif 1246 { 1247 if (bTryNx2N) 1031 #if OL_QTLIMIT_PREDCODING_B0068 //try nLx2N & nRx2N 1032 if(bTryNx2N) 1248 1033 { 1249 1034 #endif … … 1276 1061 rpcTempCU->initEstData( uiDepth, iQP ); 1277 1062 } 1278 #if OL_DEPTHLIMIT_A0044 1279 }//bTryNx2N 1280 }//depthMapDetect 1281 else//do things normally 1063 #if OL_QTLIMIT_PREDCODING_B0068 1064 } 1065 #endif 1066 } 1067 #if AMP_MRG 1068 else if ( bTestMergeAMP_Ver ) 1282 1069 { 1283 if(doNotBlockPu) 1284 { 1285 #if HHI_INTER_VIEW_RESIDUAL_PRED 1286 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1287 #endif 1288 #if HHI_INTERVIEW_SKIP 1289 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec ); 1290 #else 1291 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N ); 1292 #endif 1293 rpcTempCU->initEstData( uiDepth, iQP ); 1294 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N ) 1295 { 1296 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1297 } 1298 } 1299 if(doNotBlockPu) 1300 { 1301 #if HHI_INTER_VIEW_RESIDUAL_PRED 1302 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1303 #endif 1304 #if HHI_INTERVIEW_SKIP 1305 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec ); 1306 #else 1307 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N ); 1308 #endif 1309 rpcTempCU->initEstData( uiDepth, iQP ); 1310 } 1311 } 1312 #endif 1313 } 1314 #if AMP_MRG 1315 else if ( bTestMergeAMP_Ver ) 1316 { 1317 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 1318 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1319 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1320 #else 1321 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1322 #endif 1323 { 1324 if (bTryNx2N) 1070 #if OL_QTLIMIT_PREDCODING_B0068 //try nLx2N & nRx2N (Merge) 1071 if(bTryNx2N) 1325 1072 { 1326 1073 #endif … … 1353 1100 rpcTempCU->initEstData( uiDepth, iQP ); 1354 1101 } 1355 #if OL_ DEPTHLIMIT_A00441356 } //bTryNx2N1357 }//depthMapDetect 1358 else//do things normally1359 { 1360 if(doNotBlockPu) 1361 { 1362 #if HHI_INTER_VIEW_RESIDUAL_PRED 1363 1102 #if OL_QTLIMIT_PREDCODING_B0068 1103 } 1104 #endif 1105 } 1106 #endif 1107 1108 #else 1109 #if HHI_INTER_VIEW_RESIDUAL_PRED 1110 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1364 1111 #endif 1365 1112 #if HHI_INTERVIEW_SKIP 1366 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec, true ); 1367 #else 1368 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, true ); 1369 #endif 1370 rpcTempCU->initEstData( uiDepth, iQP ); 1371 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N ) 1372 { 1373 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1374 } 1375 } 1376 if(doNotBlockPu) 1377 { 1378 #if HHI_INTER_VIEW_RESIDUAL_PRED 1379 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1113 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec ); 1114 #else 1115 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU ); 1116 #endif 1117 rpcTempCU->initEstData( uiDepth, iQP ); 1118 #if HHI_INTER_VIEW_RESIDUAL_PRED 1119 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1380 1120 #endif 1381 1121 #if HHI_INTERVIEW_SKIP 1382 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec, true ); 1383 #else 1384 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, true ); 1385 #endif 1386 rpcTempCU->initEstData( uiDepth, iQP ); 1387 } 1388 } 1389 #endif 1390 } 1391 #endif 1392 1393 #else 1394 #if HHI_INTER_VIEW_RESIDUAL_PRED 1395 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1122 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec ); 1123 #else 1124 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD ); 1125 #endif 1126 rpcTempCU->initEstData( uiDepth, iQP ); 1127 #if HHI_INTER_VIEW_RESIDUAL_PRED 1128 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1396 1129 #endif 1397 1130 #if HHI_INTERVIEW_SKIP 1398 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec );1399 #else 1400 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU);1401 #endif 1402 rpcTempCU->initEstData( uiDepth, iQP );1403 #if HHI_INTER_VIEW_RESIDUAL_PRED 1404 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );1131 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec ); 1132 #else 1133 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N ); 1134 #endif 1135 rpcTempCU->initEstData( uiDepth, iQP ); 1136 #if HHI_INTER_VIEW_RESIDUAL_PRED 1137 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1405 1138 #endif 1406 1139 #if HHI_INTERVIEW_SKIP 1407 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec ); 1408 #else 1409 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD ); 1410 #endif 1411 rpcTempCU->initEstData( uiDepth, iQP ); 1412 #if HHI_INTER_VIEW_RESIDUAL_PRED 1413 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1414 #endif 1415 #if HHI_INTERVIEW_SKIP 1416 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec ); 1417 #else 1418 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N ); 1419 #endif 1420 rpcTempCU->initEstData( uiDepth, iQP ); 1421 #if HHI_INTER_VIEW_RESIDUAL_PRED 1422 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1423 #endif 1424 #if HHI_INTERVIEW_SKIP 1425 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec ); 1426 #else 1427 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N ); 1428 #endif 1429 rpcTempCU->initEstData( uiDepth, iQP ); 1430 1431 #endif 1432 } //! Try AMP (SIZE_2NxnU, SIZE_2NxnD, SIZE_nLx2N, SIZE_nRx2N) 1140 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec ); 1141 #else 1142 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N ); 1143 #endif 1144 rpcTempCU->initEstData( uiDepth, iQP ); 1145 1146 #endif 1147 } //! Try AMP (SIZE_2NxnU, SIZE_2NxnD, SIZE_nLx2N, SIZE_nRx2N) 1148 #endif 1149 #if LGE_ILLUCOMP_B0045 1150 } 1433 1151 #endif 1434 1152 #if HHI_INTER_VIEW_RESIDUAL_PRED … … 1457 1175 #endif 1458 1176 { 1177 #if LGE_ILLUCOMP_B0045 1178 rpcTempCU->setICFlagSubParts(false, 0, 0, uiDepth); 1179 #endif 1459 1180 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); 1460 1181 rpcTempCU->initEstData( uiDepth, iQP ); 1461 1182 if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth ) 1462 1183 { 1463 #if OL_DEPTHLIMIT_A0044 //add code here to select or deselect NxN mode for Intra 1464 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1465 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1466 #else 1467 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1468 #endif 1184 #if OL_QTLIMIT_PREDCODING_B0068 //Try IntraNxN 1185 if(bTrySplit) 1469 1186 { 1470 if (bTrySplit) 1471 { 1472 1473 #endif 1474 if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) ) 1475 { 1476 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN ); 1477 rpcTempCU->initEstData( uiDepth, iQP ); 1478 } 1479 #if OL_DEPTHLIMIT_A0044 1480 }//bTrySplit 1481 }//depthMapDetect 1482 else 1483 { 1187 #endif 1484 1188 if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) ) 1485 1189 { 1190 #if LGE_ILLUCOMP_B0045 1191 rpcTempCU->setICFlagSubParts(false, 0, 0, uiDepth); 1192 #endif 1486 1193 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN ); 1487 1194 rpcTempCU->initEstData( uiDepth, iQP ); 1488 1195 } 1196 #if OL_QTLIMIT_PREDCODING_B0068 1489 1197 } 1490 1198 #endif … … 1507 1215 #endif 1508 1216 { 1217 #if LGE_ILLUCOMP_B0045 1218 rpcTempCU->setICFlagSubParts(false, 0, 0, uiDepth); 1219 #endif 1509 1220 xCheckIntraPCM (rpcBestCU, rpcTempCU); 1510 1221 rpcTempCU->initEstData( uiDepth, iQP ); … … 1694 1405 1695 1406 #if HHI_VSO 1696 #if HHI_VSO_SET_OPTIM1697 #else1698 if( m_pcRdCost->getUseRenModel() ) // necessary ??1699 {1700 UInt uiWidth = m_ppcRecoYuvBest[uhNextDepth]->getWidth ( );1701 UInt uiHeight = m_ppcRecoYuvBest[uhNextDepth]->getHeight ( );1702 Pel* piSrc = m_ppcRecoYuvBest[uhNextDepth]->getLumaAddr( 0 );1703 UInt uiSrcStride = m_ppcRecoYuvBest[uhNextDepth]->getStride ( );1704 m_pcRdCost->setRenModelData( pcSubBestPartCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );1705 }1706 #endif1707 1407 #endif 1708 1408 } … … 2145 1845 #if HHI_MPI 2146 1846 if( pcCU->getTextureModeDepth( uiAbsPartIdx ) == -1 ) 2147 {1847 { 2148 1848 #endif 2149 1849 if( !pcCU->getSlice()->isIntra() ) … … 2164 1864 } 2165 1865 #if HHI_MPI 2166 }1866 } 2167 1867 #endif 2168 1868 … … 2172 1872 #endif 2173 1873 { 2174 #if OL_DEPTHLIMIT_A00442175 if(pcCU->getPartDumpFlag())2176 {2177 pcCU->updatePartInfo(0,uiDepth);2178 pcCU->incrementPartInfo();2179 }2180 #endif2181 1874 m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx, 0 ); 1875 #if LGE_ILLUCOMP_B0045 1876 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx ); 1877 #endif 2182 1878 #if HHI_INTER_VIEW_RESIDUAL_PRED 2183 1879 m_pcEntropyCoder->encodeResPredFlag( pcCU, uiAbsPartIdx, 0 ); … … 2217 1913 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 2218 1914 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1915 #if LGE_ILLUCOMP_B0045 1916 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx ); 1917 #endif 2219 1918 #if HHI_INTER_VIEW_RESIDUAL_PRED 2220 1919 if( !pcCU->isIntra( uiAbsPartIdx ) ) … … 2260 1959 Bool bResPrdAvail = rpcTempCU->getResPredAvail( 0 ); 2261 1960 Bool bResPrdFlag = rpcTempCU->getResPredFlag ( 0 ); 1961 #endif 1962 #if LGE_ILLUCOMP_B0045 1963 Bool bICFlag = rpcTempCU->getICFlag(0); 2262 1964 #endif 2263 1965 … … 2335 2037 rpcTempCU->setResPredFlagSubParts ( bResPrdFlag, 0, 0, uhDepth ); 2336 2038 #endif 2039 #if LGE_ILLUCOMP_B0045 2040 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uhDepth); 2041 #endif 2337 2042 2338 2043 // do MC 2339 2044 #if HHI_INTERVIEW_SKIP 2340 if ( (uiNoResidual == 0) || bSkipRes ){ 2341 #else 2342 if ( uiNoResidual == 0 ){ 2343 #endif 2045 if ( (uiNoResidual == 0) || bSkipRes ) 2046 #else 2047 if ( uiNoResidual == 0 ) 2048 #endif 2049 { 2344 2050 m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); 2345 2051 // save pred adress … … 2584 2290 m_ppcRecoYuvTemp[uiDepth]->copyToPicLuma(rpcTempCU->getPic()->getPicYuvRec(), rpcTempCU->getAddr(), rpcTempCU->getZorderIdxInCU() ); 2585 2291 2292 #if RWTH_SDC_DLT_B0036 2293 if( !rpcTempCU->getSDCFlag( 0 ) ) 2294 #endif 2586 2295 m_pcPredSearch ->estIntraPredChromaQT( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC ); 2587 2296 … … 3052 2761 assert( bRecursiveCall == ( uhDepth != uhTextureModeDepth ) ); 3053 2762 2763 #if !MTK_UNCONSTRAINED_MVI_B0083 3054 2764 if( uhDepth == uhTextureModeDepth ) 3055 2765 { … … 3092 2802 } 3093 2803 } 2804 #endif 3094 2805 3095 2806 #if HHI_VSO … … 3197 2908 rpcTempCU->setTextureModeDepthSubParts( uhTextureModeDepth, 0, uhDepth ); 3198 2909 rpcTempCU->copyTextureMotionDataFrom( pcTextureCU, uhDepth, rpcTempCU->getZorderIdxInCU() ); 2910 #if FIX_MPI_B0065 2911 UInt uiAbsPartIdx = rpcTempCU->getZorderIdxInCU(); 2912 if( rpcTempCU->getDepth(0) > pcTextureCU->getDepth(uiAbsPartIdx)) 2913 { 2914 rpcTempCU->setPartSizeSubParts( SIZE_NxN, 0, uhDepth ); 2915 } 2916 else 2917 { 2918 PartSize partSize = pcTextureCU->getPartitionSize(uiAbsPartIdx); 2919 rpcTempCU->setPartSizeSubParts( partSize, 0, uhDepth ); 2920 } 2921 #else 3199 2922 rpcTempCU->setPartSizeSubParts( SIZE_NxN, 0, uhDepth ); 2923 #endif 3200 2924 for( UInt ui = 0; ui < rpcTempCU->getTotalNumPart(); ui++ ) 3201 2925 { … … 3302 3026 { 3303 3027 m_pcEntropyCoder->encodeMergeIndex( pcCU, 0, 0, true ); 3028 #if LGE_ILLUCOMP_B0045 3029 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 3030 #endif 3304 3031 } 3305 3032 else … … 3309 3036 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 3310 3037 m_pcEntropyCoder->encodePredInfo( pcCU, 0, true ); 3038 #if LGE_ILLUCOMP_B0045 3039 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 3040 #endif 3311 3041 } 3312 3042 xRestoreDepthWidthHeight( pcCU );
Note: See TracChangeset for help on using the changeset viewer.