Changeset 468 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2a/source/Lib/TLibEncoder/TEncSearch.cpp
- Timestamp:
- 16 Jun 2013, 05:33:39 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2a/source/Lib/TLibEncoder/TEncSearch.cpp
r464 r468 317 317 318 318 piRefSrch = rcStruct.piRefY + iSearchY * rcStruct.iYStride + iSearchX; 319 319 #if H_3D_IC 320 m_cDistParam.bUseIC = pcPatternKey->getICFlag(); 321 #endif 320 322 //-- jclee for using the SAD function pointer 321 323 m_pcRdCost->setDistParam( pcPatternKey, piRefSrch, rcStruct.iYStride, m_cDistParam ); … … 744 746 745 747 setDistParamComp(0); // Y component 746 748 #if H_3D_IC 749 m_cDistParam.bUseIC = pcPatternKey->getICFlag(); 750 #endif 747 751 m_cDistParam.pCur = piRefPos; 748 752 m_cDistParam.bitDepth = g_bitDepthY; … … 3147 3151 #else 3148 3152 iWidth, iHeight, m_pcEncCfg->getUseHADME() ); 3153 #endif 3154 #if H_3D_IC 3155 cDistParam.bUseIC = false; 3149 3156 #endif 3150 3157 ruiErr = cDistParam.DistFunc( &cDistParam ); … … 4235 4242 pcCU->clipMv( cMvCand ); 4236 4243 4244 #if H_3D_IC 4245 Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getViewIndex() != pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getViewIndex() ); 4246 #endif 4247 4237 4248 // prediction pattern 4238 4249 if ( pcCU->getSlice()->getPPS()->getUseWP() && pcCU->getSlice()->getSliceType()==P_SLICE ) … … 4242 4253 else 4243 4254 { 4244 xPredInterLumaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMvCand, iSizeX, iSizeY, pcTemplateCand, false ); 4255 xPredInterLumaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMvCand, iSizeX, iSizeY, pcTemplateCand, false 4256 #if H_3D_IC 4257 , bICFlag 4258 #endif 4259 ); 4245 4260 } 4246 4261 … … 4295 4310 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iRoiWidth, iRoiHeight ); 4296 4311 4312 #if H_3D_IC 4313 Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getViewIndex() != pcCU->getSlice()->getRefPic( eRefPicList, iRefIdxPred )->getViewIndex() ); 4314 pcPatternKey->setICFlag( bICFlag ); 4315 #endif 4316 4297 4317 if ( bBi ) 4298 4318 { … … 4327 4347 4328 4348 m_pcRdCost->setPredictor ( *pcMvPred ); 4349 #if H_3D_IC 4350 if( pcCU->getSlice()->getIsDepth() ) 4351 m_pcRdCost->setCostScale ( 0 ); 4352 else 4353 #endif 4329 4354 m_pcRdCost->setCostScale ( 2 ); 4330 4355 … … 4342 4367 4343 4368 m_pcRdCost->getMotionCost( 1, 0 ); 4369 #if H_3D_IC 4370 if( ! pcCU->getSlice()->getIsDepth() ) 4371 { 4372 #endif 4344 4373 m_pcRdCost->setCostScale ( 1 ); 4345 4374 … … 4356 4385 rcMv += (cMvHalf <<= 1); 4357 4386 rcMv += cMvQter; 4387 #if H_3D_IC 4388 } 4389 #endif 4358 4390 4359 4391 UInt uiMvBits = m_pcRdCost->getBits( rcMv.getHor(), rcMv.getVer() ); 4360 4392 #if H_3D_IC 4393 if( pcCU->getSlice()->getIsDepth() ) 4394 ruiCost += m_pcRdCost->getCost( uiMvBits ); 4395 #endif 4361 4396 ruiBits += uiMvBits; 4362 4397 ruiCost = (UInt)( floor( fWeight * ( (Double)ruiCost - (Double)m_pcRdCost->getCost( uiMvBits ) ) ) + (Double)m_pcRdCost->getCost( ruiBits ) ); … … 4367 4402 { 4368 4403 Int iMvShift = 2; 4404 #if H_3D_IC 4405 if( pcCU->getSlice()->getIsDepth() ) 4406 iMvShift = 0; 4407 #endif 4369 4408 TComMv cTmpMvPred = cMvPred; 4370 4409 pcCU->clipMv( cTmpMvPred ); … … 4418 4457 4419 4458 setDistParamComp(0); 4420 4459 #if H_3D_IC 4460 m_cDistParam.bUseIC = pcPatternKey->getICFlag(); 4461 #endif 4421 4462 m_cDistParam.bitDepth = g_bitDepthY; 4422 4463 uiSad = m_cDistParam.DistFunc( &m_cDistParam ); … … 4469 4510 UInt uiSearchRange = m_iSearchRange; 4470 4511 pcCU->clipMv( rcMv ); 4512 #if H_3D_IC 4513 if( ! pcCU->getSlice()->getIsDepth() ) 4514 #endif 4471 4515 rcMv >>= 2; 4472 4516 // init TZSearchStruct … … 4486 4530 TComMv cMv = m_acMvPredictors[index]; 4487 4531 pcCU->clipMv( cMv ); 4532 #if H_3D_IC 4533 if( ! pcCU->getSlice()->getIsDepth() ) 4534 #endif 4488 4535 cMv >>= 2; 4489 4536 xTZSearchHelp( pcPatternKey, cStruct, cMv.getHor(), cMv.getVer(), 0, 0 ); … … 4741 4788 m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true); 4742 4789 m_pcEntropyCoder->encodeMergeIndex( pcCU, 0, true ); 4790 #if H_3D_IC 4791 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 4792 #endif 4743 4793 #if H_3D_ARP 4744 4794 m_pcEntropyCoder->encodeARPW( pcCU, 0 ); … … 6152 6202 m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true); 6153 6203 m_pcEntropyCoder->encodeMergeIndex(pcCU, 0, true); 6204 #if H_3D_IC 6205 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 6206 #endif 6154 6207 #if H_3D_ARP 6155 6208 m_pcEntropyCoder->encodeARPW( pcCU, 0 ); … … 6168 6221 m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth(0), true ); 6169 6222 m_pcEntropyCoder->encodePredInfo( pcCU, 0, true ); 6223 #if H_3D_IC 6224 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 6225 #endif 6170 6226 #if H_3D_ARP 6171 6227 m_pcEntropyCoder->encodeARPW( pcCU , 0 );
Note: See TracChangeset for help on using the changeset viewer.