Changeset 468 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2a/source/Lib/TLibEncoder/TEncCu.cpp
- Timestamp:
- 16 Jun 2013, 05:33:39 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2a/source/Lib/TLibEncoder/TEncCu.cpp
r465 r468 457 457 } 458 458 #endif 459 459 #if H_3D_IC 460 Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE ); 461 bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC(); 462 #endif 460 463 // If slice start or slice end is within this cu... 461 464 TComSlice * pcSlice = rpcTempCU->getPic()->getSlice(rpcTempCU->getPic()->getCurrSliceIdx()); … … 513 516 if( rpcBestCU->getSlice()->getSliceType() != I_SLICE ) 514 517 { 518 #if H_3D_IC 519 for( UInt uiICId = 0; uiICId < ( bICEnabled ? 2 : 1 ); uiICId++ ) 520 { 521 Bool bICFlag = uiICId ? true : false; 522 #endif 515 523 // 2Nx2N 516 524 if(m_pcEncCfg->getUseEarlySkipDetection()) 517 525 { 526 #if H_3D_IC 527 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 528 #endif 518 529 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); rpcTempCU->initEstData( uiDepth, iQP );//by Competition for inter_2Nx2N 519 530 } 520 531 // SKIP 532 #if H_3D_IC 533 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 534 #endif 521 535 xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU, &earlyDetectionSkipMode );//by Merge for inter_2Nx2N 522 536 rpcTempCU->initEstData( uiDepth, iQP ); … … 538 552 if ( !bEarlySkip ) 539 553 { 554 #if H_3D_IC 555 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 556 #endif 540 557 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); rpcTempCU->initEstData( uiDepth, iQP ); 541 558 if(m_pcEncCfg->getUseCbfFastMode()) … … 545 562 } 546 563 } 564 #if H_3D_IC 565 } 566 #endif 547 567 } 548 568 … … 1245 1265 { 1246 1266 m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx ); 1267 #if H_3D_IC 1268 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx ); 1269 #endif 1247 1270 #if H_3D_ARP 1248 1271 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); … … 1269 1292 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 1270 1293 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1294 #if H_3D_IC 1295 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx ); 1296 #endif 1271 1297 #if H_3D_ARP 1272 1298 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); … … 1299 1325 } 1300 1326 UChar uhDepth = rpcTempCU->getDepth( 0 ); 1301 1327 #if H_3D_IC 1328 Bool bICFlag = rpcTempCU->getICFlag( 0 ); 1329 #endif 1302 1330 #if H_3D_VSO // M1 //nececcary here? 1303 1331 if( m_pcRdCost->getUseRenModel() ) … … 1348 1376 { 1349 1377 { 1378 #if H_3D_IC 1379 if( rpcTempCU->getSlice()->getApplyIC() && rpcTempCU->getSlice()->getIcSkipParseFlag() ) 1380 { 1381 if( bICFlag && uiMergeCand == 0 ) 1382 { 1383 continue; 1384 } 1385 } 1386 #endif 1350 1387 if(!(uiNoResidual==1 && mergeCandBuffer[uiMergeCand]==1)) 1351 1388 { … … 1357 1394 rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth ); 1358 1395 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1396 #if H_3D_IC 1397 rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth ); 1398 #endif 1359 1399 #if H_3D_ARP 1360 1400 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );
Note: See TracChangeset for help on using the changeset viewer.