Changeset 800 in 3DVCSoftware for branches/HTM-9.3-dev1-KHU
- Timestamp:
- 27 Jan 2014, 01:32:41 (11 years ago)
- Location:
- branches/HTM-9.3-dev1-KHU
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.3-dev1-KHU/source/Lib/TLibCommon/TComDataCU.cpp
r796 r800 7437 7437 Int iDelY = iSPHeight/2; 7438 7438 7439 #if KHU_SIMP_SPIVMP_G0147 7440 Int iCenterPosX = iCurrPosX + ( ( iWidth / iSPWidth ) >> 1 ) * iSPWidth + ( iSPWidth >> 1 ); 7441 Int iCenterPosY = iCurrPosY + ( ( iHeight / iSPHeight ) >> 1 ) * iSPHeight + (iSPHeight >> 1); 7442 Int iRefCenterCUAddr, iRefCenterAbsPartIdx; 7443 7444 if(iWidth == iSPWidth && iHeight == iSPHeight) 7445 { 7446 iCenterPosX = iCurrPosX + (iWidth >> 1); 7447 iCenterPosY = iCurrPosY + (iHeight >> 1); 7448 } 7449 7450 Int iRefCenterPosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCenterPosX + ( (cDv.getHor() + 2 ) >> 2 ) ); 7451 Int iRefCenterPosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCenterPosY + ( (cDv.getVer() + 2 ) >> 2 ) ); 7452 7453 pcBaseRec->getCUAddrAndPartIdx( iRefCenterPosX , iRefCenterPosY , iRefCenterCUAddr, iRefCenterAbsPartIdx ); 7454 TComDataCU* pcDefaultCU = pcBasePic->getCU( iRefCenterCUAddr ); 7455 if(!( pcDefaultCU->getPredictionMode( iRefCenterAbsPartIdx ) == MODE_INTRA )) 7456 { 7457 for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ ) 7458 { 7459 RefPicList eCurrRefPicList = RefPicList( uiCurrRefListId ); 7460 Bool stopLoop = false; 7461 for(Int iLoop = 0; iLoop < 2 && !stopLoop; ++iLoop) 7462 { 7463 RefPicList eDefaultRefPicList = (iLoop ==1)? RefPicList( 1 - uiCurrRefListId ) : RefPicList( uiCurrRefListId ); 7464 TComMvField cDefaultMvField; 7465 pcDefaultCU->getMvField( pcDefaultCU, iRefCenterAbsPartIdx, eDefaultRefPicList, cDefaultMvField ); 7466 Int iDefaultRefIdx = cDefaultMvField.getRefIdx(); 7467 if (iDefaultRefIdx >= 0) 7468 { 7469 Int iDefaultRefPOC = pcDefaultCU->getSlice()->getRefPOC(eDefaultRefPicList, iDefaultRefIdx); 7470 if (iDefaultRefPOC != pcSlice->getPOC()) 7471 { 7472 for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eCurrRefPicList ); iPdmRefIdx++) 7473 { 7474 if (iDefaultRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx)) 7475 { 7476 abPdmAvailable[ uiCurrRefListId ] = true; 7477 TComMv cMv(cDefaultMvField.getHor(), cDefaultMvField.getVer()); 7478 #if H_3D_NBDV 7479 #if H_3D_IV_MERGE 7480 if( !bIsDepth ) 7481 { 7482 #endif 7483 cMv.setIDVFlag (true); 7484 cMv.setIDVHor (cDv.getHor()); 7485 cMv.setIDVVer (cDv.getVer()); 7486 cMv.setIDVVId (iViewIndex); 7487 #if H_3D_IV_MERGE 7488 } 7489 #endif 7490 #endif 7491 clipMv( cMv ); 7492 paiPdmRefIdx [ uiCurrRefListId ] = iPdmRefIdx; 7493 pacPdmMv [ uiCurrRefListId ] = cMv; 7494 stopLoop = true; 7495 break; 7496 } 7497 } 7498 } 7499 } 7500 } 7501 } 7502 } 7503 availableMcDc[0] = ( abPdmAvailable[0]? 1 : 0) + (abPdmAvailable[1]? 2 : 0); 7504 7505 if(availableMcDc[0]) 7506 { 7507 #endif 7439 7508 Int iBasePosX, iBasePosY; 7440 7509 for (Int i=iCurrPosY; i < iCurrPosY + iHeight; i += iSPHeight) … … 7495 7564 if (puhInterDirSP[iPartition] == 0) 7496 7565 { 7566 #if KHU_SIMP_SPIVMP_G0147 7567 puhInterDirSP[iPartition] = availableMcDc[0]; 7568 pcMvFieldSP[2*iPartition].setMvField(pacPdmMv[0], paiPdmRefIdx[0]); 7569 pcMvFieldSP[2*iPartition + 1].setMvField(pacPdmMv[1], paiPdmRefIdx[1]); 7570 #else 7497 7571 if (iInterDirLast != 0) 7498 7572 { … … 7501 7575 pcMvFieldSP[2*iPartition + 1] = cMvFieldLast[1]; 7502 7576 } 7503 } 7577 #endif 7578 } 7579 #if !KHU_SIMP_SPIVMP_G0147 7504 7580 else 7505 7581 { … … 7526 7602 cMvFieldLast[1] = pcMvFieldSP[2*iPartition + 1]; 7527 7603 } 7528 7604 #endif 7529 7605 iPartition ++; 7530 7606 7531 7607 } 7532 } 7608 } 7609 #if KHU_SIMP_SPIVMP_G0147 7610 } 7611 #endif 7533 7612 #if SEC_SPIVMP_MCP_SIZE_G0077 7534 7613 } -
branches/HTM-9.3-dev1-KHU/source/Lib/TLibCommon/TypeDef.h
r795 r800 233 233 #endif 234 234 #define QC_DEPTH_MERGE_SIMP_G0127 1 // Remove DV candidate and shifting candidate for depth coding 235 236 #define KHU_SIMP_SPIVMP_G0147 1 // Simplification on Sub-PU level temporal interview motion prediction 235 237 236 238 ///// ***** DEPTH INTRA MODES *********
Note: See TracChangeset for help on using the changeset viewer.