Changeset 181 in 3DVCSoftware for branches/HTM-4.1-dev2-Orange/source/Lib/TLibEncoder/TEncCu.cpp
- Timestamp:
- 14 Nov 2012, 17:23:56 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-4.1-dev2-Orange/source/Lib/TLibEncoder/TEncCu.cpp
r177 r181 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 #if !LGE_CLEAN_UP 459 UInt uiPrevTexPartIndex = 0; 460 #endif 461 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 462 Bool bIntraSliceDetect = false; 463 #endif 464 Bool bTry2NxN = false; 465 Bool bTryNx2N = false; 466 pcTexture = rpcBestCU->getSlice()->getTexturePic(); 467 if(pcTexture != NULL) //depth map being encoded 468 { 469 depthMapDetect = true; 470 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 471 bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType()==I_SLICE); 472 #endif 473 if(uiDepth == 0) 474 { 475 pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() ); 476 pcTexture->setPartInfo(pcTextureCU->readPartInfo()); 477 pcTexture->setTexPartIndex(0); 478 } 479 } 480 else 481 { 482 depthMapDetect = false; 483 } 484 #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 485 464 // get Original YUV data from picture 486 465 m_ppcOrigYuv[uiDepth]->copyFromPicYuv( pcPic->getPicYuvOrg(), rpcBestCU->getAddr(), rpcBestCU->getZorderIdxInCU() ); … … 626 605 // variables for fast encoder decision 627 606 bEarlySkip = false; 628 bTrySplit 607 bTrySplit = true; 629 608 fRD_Skip = MAX_DOUBLE; 630 609 631 610 rpcTempCU->initEstData( uiDepth, iQP ); 632 611 633 #if OL_ DEPTHLIMIT_A0044612 #if OL_QTLIMIT_PREDCODING_B0068 634 613 //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU 635 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 636 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 637 #else 638 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 639 #endif 640 { 641 assert(uiDepth == pcTexture->accessPartInfo(1)); 642 if(pcTexture->accessPartInfo(0) == 1) //NxN modes 614 if(depthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC()) 615 { 616 TComDataCU* pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() ); //Corresponding texture LCU 617 UInt uiCUIdx = rpcBestCU->getZorderIdxInCU(); 618 assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth); //Depth cannot be more partitionned than the texture. 619 if (pcTextureCU->getDepth(uiCUIdx) > uiDepth || pcTextureCU->getPartitionSize(uiCUIdx) == SIZE_NxN) //Texture was split. 643 620 { 644 621 bTrySplit = true; 645 bTryNx2N = true; 646 bTry2NxN = true; 647 #if !LGE_CLEAN_UP 648 uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 649 #endif 650 pcTexture->incrementTexPartIndex(); 622 bTryNx2N = true; 623 bTry2NxN = true; 651 624 } 652 else if(pcTexture->accessPartInfo(0) == 0) //2Nx2N modes 653 { 654 UInt uiTexdepth; 655 UInt temp_uiTexPartIndex; 656 bTrySplit = false; 657 658 //scan ahead till next depth 659 uiTexdepth = pcTexture->accessPartInfo(1); 660 #if !LGE_CLEAN_UP 661 uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 662 #endif 663 pcTexture->incrementTexPartIndex(); 664 temp_uiTexPartIndex = pcTexture->getTexPartIndex(); //store in case to rewind 665 666 while(uiTexdepth != pcTexture->accessPartInfo(1) && uiTexdepth != 0) 667 { 668 if(pcTexture->accessPartInfo(1) < uiTexdepth) 669 { 670 break; 671 } 672 pcTexture->incrementTexPartIndex(); 673 674 if(pcTexture->accessPartInfo(1) == OL_END_CU) 675 { 676 pcTexture->setTexPartIndex(temp_uiTexPartIndex); 677 uiTexdepth++; 678 if(uiTexdepth >= g_uiMaxCUDepth) 679 { 680 break; 681 } 682 } 683 } 684 } 685 else if(pcTexture->accessPartInfo(0) == OL_END_CU) 625 else 686 626 { 687 627 bTrySplit = false; 688 bTryNx2N = false;689 bTry2NxN = false;628 bTryNx2N = false; 629 bTry2NxN = false; 690 630 } 691 else if(pcTexture->accessPartInfo(0) == 2) //2NxN case 692 { 693 bTrySplit = false; 694 bTryNx2N = false; 695 bTry2NxN = true; 696 #if !LGE_CLEAN_UP 697 uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 698 #endif 699 pcTexture->incrementTexPartIndex(); ; 700 } 701 else if(pcTexture->accessPartInfo(0) == 3) //Nx2N case 702 { 703 bTrySplit = false; 704 bTryNx2N = true; 705 bTry2NxN = false; 706 #if !LGE_CLEAN_UP 707 uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 708 #endif 709 pcTexture->incrementTexPartIndex(); ; 710 } 711 } 712 #endif 713 631 } 632 #endif 714 633 715 634 // do inter modes, SKIP and 2Nx2N … … 799 718 #endif 800 719 801 #if OL_DEPTHLIMIT_A0044 802 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 803 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 804 #else 805 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 806 #endif 720 #if OL_QTLIMIT_PREDCODING_B0068 721 if(depthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC()) 807 722 { 808 723 bTrySplitDQP = bTrySplit; … … 810 725 else 811 726 { 727 #endif 812 728 if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() ) 813 729 { … … 821 737 bTrySplitDQP = bTrySplit; 822 738 } 823 } 824 #else 825 826 if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() ) 827 { 828 if(iQP == iBaseQP) 829 { 830 bTrySplitDQP = bTrySplit; 831 } 832 } 833 else 834 { 835 bTrySplitDQP = bTrySplit; 836 } 837 #endif 739 #if OL_QTLIMIT_PREDCODING_B0068 740 } 741 #endif 742 838 743 #if LOSSLESS_CODING 839 744 if (isAddLowestQP && (iQP == lowestQP)) … … 891 796 if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth && doNotBlockPu) 892 797 { 893 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 894 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 895 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 896 #else 897 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 898 #endif 798 #if OL_QTLIMIT_PREDCODING_B0068 //try InterNxN 799 if(bTrySplit) 899 800 { 900 if (bTrySplit) 901 { 902 #endif 903 #if HHI_INTER_VIEW_RESIDUAL_PRED 904 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 905 #endif 906 #if HHI_INTERVIEW_SKIP 907 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN, bFullyRenderedSec ); 908 #else 909 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN ); 910 #endif 911 rpcTempCU->initEstData( uiDepth, iQP ); 912 #if OL_DEPTHLIMIT_A0044 913 }//bTrySplit 914 }//depthMapDetect 915 else//do things normally 916 { 801 #endif 917 802 #if HHI_INTER_VIEW_RESIDUAL_PRED 918 803 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); … … 924 809 #endif 925 810 rpcTempCU->initEstData( uiDepth, iQP ); 811 #if OL_QTLIMIT_PREDCODING_B0068 926 812 } 927 813 #endif … … 931 817 932 818 { // 2NxN, Nx2N 933 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 934 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 935 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 936 #else 937 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 938 #endif 819 #if OL_QTLIMIT_PREDCODING_B0068 //try Nx2N 820 if(bTryNx2N) 939 821 { 940 if (bTryNx2N) 941 { 942 #endif 943 if(doNotBlockPu) 944 { 945 #if HHI_INTER_VIEW_RESIDUAL_PRED 946 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 947 #endif 948 #if HHI_INTERVIEW_SKIP 949 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N, bFullyRenderedSec ); 950 #else 951 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N ); 952 #endif 953 rpcTempCU->initEstData( uiDepth, iQP ); 954 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_Nx2N ) 955 { 956 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 957 } 958 } 959 #if OL_DEPTHLIMIT_A0044 960 }//bTryNx2N 961 }//depthMapDetect 962 else//do things normally 963 { 822 #endif 964 823 if(doNotBlockPu) 965 824 { … … 978 837 } 979 838 } 839 #if OL_QTLIMIT_PREDCODING_B0068 980 840 } 981 841 #endif 982 842 983 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 984 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 985 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 986 #else 987 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 988 #endif 843 #if OL_QTLIMIT_PREDCODING_B0068 //try 2NxN 844 if(bTry2NxN) 989 845 { 990 if (bTry2NxN) 991 { 992 #endif 993 if(doNotBlockPu) 994 { 995 #if HHI_INTER_VIEW_RESIDUAL_PRED 996 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 997 #endif 998 #if HHI_INTERVIEW_SKIP 999 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxN, bFullyRenderedSec ); 1000 #else 1001 xCheckRDCostInter ( rpcBestCU, rpcTempCU, SIZE_2NxN ); 1002 #endif 1003 rpcTempCU->initEstData( uiDepth, iQP ); 1004 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxN) 1005 { 1006 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1007 } 1008 } 1009 #if OL_DEPTHLIMIT_A0044 1010 }//bTryNx2N 1011 }//depthMapDetect 1012 else//do things normally 1013 { 846 #endif 1014 847 if(doNotBlockPu) 1015 848 { … … 1028 861 } 1029 862 } 863 #if OL_QTLIMIT_PREDCODING_B0068 1030 864 } 1031 865 #endif … … 1050 884 if ( bTestAMP_Hor ) 1051 885 { 1052 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 1053 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1054 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1055 #else 1056 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1057 #endif 886 #if OL_QTLIMIT_PREDCODING_B0068 //try 2NxnU & 2NxnD 887 if(bTry2NxN) 1058 888 { 1059 if (bTry2NxN) 1060 { 1061 #endif 1062 if(doNotBlockPu) 1063 { 1064 #if HHI_INTER_VIEW_RESIDUAL_PRED 1065 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1066 #endif 1067 #if HHI_INTERVIEW_SKIP 1068 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec ); 1069 #else 1070 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU ); 1071 #endif 1072 rpcTempCU->initEstData( uiDepth, iQP ); 1073 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU ) 1074 { 1075 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1076 } 1077 } 1078 if(doNotBlockPu) 1079 { 1080 #if HHI_INTER_VIEW_RESIDUAL_PRED 1081 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1082 #endif 1083 #if HHI_INTERVIEW_SKIP 1084 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec ); 1085 #else 1086 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD ); 1087 #endif 1088 rpcTempCU->initEstData( uiDepth, iQP ); 1089 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD ) 1090 { 1091 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1092 } 1093 } 1094 #if OL_DEPTHLIMIT_A0044 1095 }//bTry2NxN 1096 }//depthMapDetect 1097 else//do things normally 1098 { 889 #endif 1099 890 if(doNotBlockPu) 1100 891 { … … 1129 920 } 1130 921 } 922 #if OL_QTLIMIT_PREDCODING_B0068 1131 923 } 1132 924 #endif … … 1135 927 else if ( bTestMergeAMP_Hor ) 1136 928 { 1137 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 1138 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1139 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1140 #else 1141 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1142 #endif 929 #if OL_QTLIMIT_PREDCODING_B0068 //try 2NxnU & 2NxnD Merge 930 if(bTry2NxN) 1143 931 { 1144 if (bTry2NxN) 1145 { 1146 #endif 1147 if(doNotBlockPu) 1148 { 1149 #if HHI_INTER_VIEW_RESIDUAL_PRED 1150 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1151 #endif 1152 #if HHI_INTERVIEW_SKIP 1153 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec, true ); 1154 #else 1155 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, true ); 1156 #endif 1157 rpcTempCU->initEstData( uiDepth, iQP ); 1158 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU ) 1159 { 1160 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1161 } 1162 } 1163 if(doNotBlockPu) 1164 { 1165 #if HHI_INTER_VIEW_RESIDUAL_PRED 1166 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1167 #endif 1168 #if HHI_INTERVIEW_SKIP 1169 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec, true ); 1170 #else 1171 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, true ); 1172 #endif 1173 rpcTempCU->initEstData( uiDepth, iQP ); 1174 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD ) 1175 { 1176 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1177 } 1178 } 1179 #if OL_DEPTHLIMIT_A0044 1180 }//bTry2NxN 1181 }//depthMapDetect 1182 else//do things normally 1183 { 932 #endif 1184 933 if(doNotBlockPu) 1185 934 { … … 1214 963 } 1215 964 } 1216 965 #if OL_QTLIMIT_PREDCODING_B0068 1217 966 } 1218 967 #endif … … 1223 972 if ( bTestAMP_Ver ) 1224 973 { 1225 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 1226 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1227 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1228 #else 1229 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1230 #endif 974 #if OL_QTLIMIT_PREDCODING_B0068 //try nLx2N & nRx2N 975 if(bTryNx2N) 1231 976 { 1232 if (bTryNx2N) 1233 { 1234 #endif 1235 if(doNotBlockPu) 1236 { 1237 #if HHI_INTER_VIEW_RESIDUAL_PRED 1238 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1239 #endif 1240 #if HHI_INTERVIEW_SKIP 1241 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec ); 1242 #else 1243 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N ); 1244 #endif 1245 rpcTempCU->initEstData( uiDepth, iQP ); 1246 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N ) 1247 { 1248 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1249 } 1250 } 1251 if(doNotBlockPu) 1252 { 1253 #if HHI_INTER_VIEW_RESIDUAL_PRED 1254 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1255 #endif 1256 #if HHI_INTERVIEW_SKIP 1257 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec ); 1258 #else 1259 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N ); 1260 #endif 1261 rpcTempCU->initEstData( uiDepth, iQP ); 1262 } 1263 #if OL_DEPTHLIMIT_A0044 1264 }//bTryNx2N 1265 }//depthMapDetect 1266 else//do things normally 1267 { 977 #endif 1268 978 if(doNotBlockPu) 1269 979 { … … 1294 1004 rpcTempCU->initEstData( uiDepth, iQP ); 1295 1005 } 1006 #if OL_QTLIMIT_PREDCODING_B0068 1296 1007 } 1297 1008 #endif … … 1300 1011 else if ( bTestMergeAMP_Ver ) 1301 1012 { 1302 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none 1303 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1304 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1305 #else 1306 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1307 #endif 1013 #if OL_QTLIMIT_PREDCODING_B0068 //try nLx2N & nRx2N (Merge) 1014 if(bTryNx2N) 1308 1015 { 1309 if (bTryNx2N) 1310 { 1311 #endif 1312 if(doNotBlockPu) 1313 { 1314 #if HHI_INTER_VIEW_RESIDUAL_PRED 1315 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1316 #endif 1317 #if HHI_INTERVIEW_SKIP 1318 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec, true ); 1319 #else 1320 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, true ); 1321 #endif 1322 rpcTempCU->initEstData( uiDepth, iQP ); 1323 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N ) 1324 { 1325 doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0; 1326 } 1327 } 1328 if(doNotBlockPu) 1329 { 1330 #if HHI_INTER_VIEW_RESIDUAL_PRED 1331 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1332 #endif 1333 #if HHI_INTERVIEW_SKIP 1334 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec, true ); 1335 #else 1336 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, true ); 1337 #endif 1338 rpcTempCU->initEstData( uiDepth, iQP ); 1339 } 1340 #if OL_DEPTHLIMIT_A0044 1341 }//bTryNx2N 1342 }//depthMapDetect 1343 else//do things normally 1344 { 1016 #endif 1345 1017 if(doNotBlockPu) 1346 1018 { … … 1371 1043 rpcTempCU->initEstData( uiDepth, iQP ); 1372 1044 } 1045 #if OL_QTLIMIT_PREDCODING_B0068 1373 1046 } 1374 1047 #endif … … 1452 1125 if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth ) 1453 1126 { 1454 #if OL_DEPTHLIMIT_A0044 //add code here to select or deselect NxN mode for Intra 1455 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1456 if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL()) 1457 #else 1458 if(depthMapDetect && sps->getUseDPL()) //depth map being encoded 1459 #endif 1127 #if OL_QTLIMIT_PREDCODING_B0068 //Try IntraNxN 1128 if(bTrySplit) 1460 1129 { 1461 if (bTrySplit) 1462 { 1463 1464 #endif 1465 if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) ) 1466 { 1467 #if LGE_ILLUCOMP_B0045 1468 rpcTempCU->setICFlagSubParts(false, 0, 0, uiDepth); 1469 #endif 1470 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN ); 1471 rpcTempCU->initEstData( uiDepth, iQP ); 1472 } 1473 #if OL_DEPTHLIMIT_A0044 1474 }//bTrySplit 1475 }//depthMapDetect 1476 else 1477 { 1130 #endif 1478 1131 if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) ) 1479 1132 { 1133 #if LGE_ILLUCOMP_B0045 1134 rpcTempCU->setICFlagSubParts(false, 0, 0, uiDepth); 1135 #endif 1480 1136 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN ); 1481 1137 rpcTempCU->initEstData( uiDepth, iQP ); 1482 1138 } 1139 #if OL_QTLIMIT_PREDCODING_B0068 1483 1140 } 1484 1141 #endif … … 2139 1796 if( pcCU->isSkipped( uiAbsPartIdx ) ) 2140 1797 { 2141 #if OL_DEPTHLIMIT_A00442142 if(pcCU->getPartDumpFlag())2143 {2144 pcCU->updatePartInfo(0,uiDepth);2145 pcCU->incrementPartInfo();2146 }2147 #endif2148 1798 m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx, 0 ); 2149 1799 #if LGE_ILLUCOMP_B0045
Note: See TracChangeset for help on using the changeset viewer.