Changeset 1131 in 3DVCSoftware for branches/HTM-13.0-dev0/source/Lib/TLibCommon/TComDataCU.cpp
- Timestamp:
- 18 Feb 2015, 17:39:40 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-13.0-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r1124 r1131 154 154 #endif 155 155 156 #if !LGE_DDD_REMOVAL_J0042_J0030157 #if H_3D_DDD158 m_pucDisparityDerivedDepth = NULL;159 m_pbUseDDD = NULL;160 #endif161 #endif162 156 } 163 157 … … 301 295 m_pcPattern = (TComPattern*)xMalloc(TComPattern, 1); 302 296 303 #if !LGE_DDD_REMOVAL_J0042_J0030304 #if H_3D_DDD305 m_pucDisparityDerivedDepth = (UChar* )xMalloc( UChar, uiNumPartition);306 m_pbUseDDD = (Bool* ) xMalloc( Bool, uiNumPartition);307 #endif308 #endif309 297 310 298 // create motion vector fields … … 390 378 #endif 391 379 392 #if !LGE_DDD_REMOVAL_J0042_J0030393 #if H_3D_DDD394 if ( m_pucDisparityDerivedDepth ) { xFree(m_pucDisparityDerivedDepth); m_pucDisparityDerivedDepth = NULL; }395 if ( m_pbUseDDD ) { xFree(m_pbUseDDD); m_pbUseDDD = NULL; }396 #endif397 #endif398 380 399 381 #if H_3D_ARP … … 524 506 #endif 525 507 526 #if !LGE_DDD_REMOVAL_J0042_J0030527 #if H_3D_DDD528 m_pucDisparityDerivedDepth[ui] = pcFrom->m_pucDisparityDerivedDepth[ui];529 m_pbUseDDD[ui] = pcFrom->m_pbUseDDD[ui];530 #endif531 #endif532 508 m_puhWidth [ui] = pcFrom->getWidth(ui); 533 509 m_puhHeight [ui] = pcFrom->getHeight(ui); … … 611 587 #endif 612 588 613 #if !LGE_DDD_REMOVAL_J0042_J0030614 #if H_3D_DDD615 memset( m_pucDisparityDerivedDepth + firstElement, 0, numElements * sizeof( *m_pucDisparityDerivedDepth ) );616 memset( m_pbUseDDD + firstElement, 0, numElements * sizeof( *m_pbUseDDD ) );617 #endif618 #endif619 589 620 590 #if H_3D_DIM … … 793 763 #endif 794 764 795 #if !LGE_DDD_REMOVAL_J0042_J0030796 #if H_3D_DDD797 m_pucDisparityDerivedDepth[ui] = 0;798 m_pbUseDDD[ui] = 0;799 #endif800 #endif801 765 802 766 #if H_3D_DIM … … 904 868 #endif 905 869 906 #if !LGE_DDD_REMOVAL_J0042_J0030907 #if H_3D_DDD908 memset( m_pucDisparityDerivedDepth, 0, iSizeInUchar );909 memset( m_pbUseDDD, 0, iSizeInBool );910 #endif911 #endif912 870 913 871 UChar uhWidth = g_uiMaxCUWidth >> uiDepth; … … 1003 961 #endif 1004 962 1005 #if !LGE_DDD_REMOVAL_J0042_J00301006 #if H_3D_DDD1007 m_pucDisparityDerivedDepth[ui] = pcCU->m_pucDisparityDerivedDepth[uiPartOffset+ui];1008 m_pbUseDDD[ui] = pcCU->m_pbUseDDD[uiPartOffset+ui];1009 #endif1010 #endif1011 963 1012 964 #if H_3D_DIM … … 1154 1106 #endif 1155 1107 1156 #if !LGE_DDD_REMOVAL_J0042_J00301157 #if H_3D_DDD1158 m_pucDisparityDerivedDepth = pcCU->getDDDepth() + uiPart;1159 m_pbUseDDD = pcCU->getUseDDD() + uiPart;1160 #endif1161 #endif1162 1108 1163 1109 m_puhLumaIntraDir = pcCU->getLumaIntraDir() + uiPart; … … 1309 1255 #endif 1310 1256 1311 #if !LGE_DDD_REMOVAL_J0042_J00301312 #if H_3D_DDD1313 m_pucDisparityDerivedDepth = pcCU->getDDDepth() + uiAbsPartIdx;1314 m_pbUseDDD = pcCU->getUseDDD() + uiAbsPartIdx;1315 #endif1316 #endif1317 1257 1318 1258 #if H_3D_DBBP … … 1380 1320 memcpy( m_puhCbf[2] + uiOffset, pcCU->getCbf(TEXT_CHROMA_V), iSizeInUchar ); 1381 1321 1382 #if !LGE_DDD_REMOVAL_J0042_J00301383 #if H_3D_DDD1384 memcpy( m_pucDisparityDerivedDepth + uiOffset, pcCU->getDDDepth(), iSizeInUchar );1385 memcpy( m_pbUseDDD + uiOffset, pcCU->getUseDDD(), iSizeInBool );1386 #endif1387 #endif1388 1322 1389 1323 … … 1485 1419 #endif 1486 1420 1487 #if !LGE_DDD_REMOVAL_J0042_J00301488 #if H_3D_DDD1489 memcpy( rpcCU->getDDDepth() + m_uiAbsIdxInLCU, m_pucDisparityDerivedDepth, iSizeInUchar );1490 memcpy( rpcCU->getUseDDD() + m_uiAbsIdxInLCU, m_pbUseDDD, iSizeInBool );1491 #endif1492 #endif1493 1421 1494 1422 memcpy( rpcCU->getPartitionSize() + m_uiAbsIdxInLCU, m_pePartSize, sizeof( *m_pePartSize ) * m_uiNumPartition ); … … 1624 1552 memcpy( rpcCU->getCbf(TEXT_CHROMA_V) + uiPartOffset, m_puhCbf[2], iSizeInUchar ); 1625 1553 1626 #if !LGE_DDD_REMOVAL_J0042_J00301627 #if H_3D_DDD1628 memcpy( rpcCU->getDDDepth() + uiPartOffset, m_pucDisparityDerivedDepth, iSizeInUchar );1629 memcpy( rpcCU->getUseDDD() + uiPartOffset, m_pbUseDDD, iSizeInBool );1630 #endif1631 #endif1632 1554 1633 1555 #if H_3D_DIM … … 1696 1618 } 1697 1619 1698 #if !LGE_DDD_REMOVAL_J0042_J00301699 #if H_3D_DDD1700 Void TComDataCU::setDDDepthSubParts ( UChar ucDDD, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )1701 {1702 setSubPart<UChar>( ucDDD, m_pucDisparityDerivedDepth, uiAbsPartIdx, uiDepth, uiPartIdx );1703 }1704 1705 Void TComDataCU::setUseDDD ( Bool bUseDDD, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )1706 {1707 setSubPart<Bool>( bUseDDD, m_pbUseDDD, uiAbsPartIdx, uiDepth, uiPartIdx );1708 }1709 1710 Void TComDataCU::setUseDDD( Bool bUseDDD, UInt uiAbsPartIdx, UInt uiDepth )1711 {1712 memset( m_pbUseDDD + uiAbsPartIdx, bUseDDD, (m_pcPic->getNumPartInCU() >> ( 2 * uiDepth ))*sizeof(Bool) );1713 }1714 1715 #endif1716 #endif1717 1620 1718 1621 // -------------------------------------------------------------------------------------------------------------------- … … 2425 2328 Bool depthRefineFlag = false; 2426 2329 #if H_3D_NBDV_REF 2427 #if HHI_TOOL_PARAMETERS_I2_J01072428 2330 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 2429 #else2430 depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() );2431 #endif2432 2331 #endif // H_3D_NBDV_REF 2433 2332 … … 3340 3239 inline Bool TComDataCU::xAddVspCand( Int mrgCandIdx, DisInfo* pDInfo, Int& iCount) 3341 3240 { 3342 #if HHI_TOOL_PARAMETERS_I2_J01073343 3241 if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getViewSynthesisPredFlag( ) || m_pcSlice->getIsDepth() || pDInfo->m_aVIdxCan == -1) 3344 #else3345 if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getVPS()->getViewSynthesisPredFlag( m_pcSlice->getLayerIdInVps() ) || m_pcSlice->getIsDepth() || pDInfo->m_aVIdxCan == -1)3346 #endif3347 3242 { 3348 3243 return false; … … 3899 3794 ) 3900 3795 { 3901 #if !SEC_A1_BASED_VSP_J00393902 UInt uiAbsPartAddr = m_uiAbsIdxInLCU + uiAbsPartIdx;3903 #endif3904 3796 #if H_3D_IV_MERGE 3905 3797 //////////////////////////// … … 3914 3806 UChar tmpDir; 3915 3807 3916 #if !LGE_DDD_REMOVAL_J0042_J00303917 #if H_3D_DDD3918 m_iUseDDDCandIdx = -1;3919 #endif3920 #endif3921 3808 3922 3809 ////////////////////////////////// … … 3958 3845 deriveLeftBottomIdxGeneral ( uiAbsPartIdx, uiPUIdx, uiPartIdxLB ); 3959 3846 #if H_3D 3960 #if HHI_TOOL_PARAMETERS_I2_J01073961 3847 Bool bMPIFlag = getSlice()->getMpiFlag(); 3962 #else3963 Bool bMPIFlag = getSlice()->getVPS()->getMPIFlag( getSlice()->getLayerIdInVps() );3964 #endif3965 3848 Bool bIsDepth = getSlice()->getIsDepth(); 3966 3849 #endif … … 4022 3905 4023 3906 // above 4024 #if !SEC_A1_BASED_VSP_J00394025 UInt uiAbovePartIdx = 0;4026 TComDataCU* pcCUAbove = 0;4027 pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT );4028 #endif4029 3907 4030 3908 if (getAvailableFlagB1()) … … 4033 3911 #if H_3D_VSP 4034 3912 , 4035 #if SEC_A1_BASED_VSP_J00394036 3913 false 4037 #else4038 ( ( ( getAddr() - pcCUAbove->getAddr() ) == 0) && (pcCUAbove->getVSPFlag(uiAbovePartIdx) != 0)4039 #if H_3D_IC4040 && !bICFlag4041 #endif4042 #if H_3D_ARP4043 && !bARPFlag4044 #endif4045 #if H_3D_DBBP4046 && !bDBBPFlag4047 #endif4048 )4049 #endif4050 3914 #endif 4051 3915 , false … … 4055 3919 4056 3920 // above right 4057 #if !SEC_A1_BASED_VSP_J00394058 UInt uiAboveRightPartIdx = 0;4059 TComDataCU* pcCUAboveRight = 0;4060 pcCUAboveRight = getPUAboveRight( uiAboveRightPartIdx, uiPartIdxRT );4061 #endif4062 3921 4063 3922 if (getAvailableFlagB0()) … … 4066 3925 #if H_3D_VSP 4067 3926 , 4068 #if SEC_A1_BASED_VSP_J00394069 3927 false 4070 #else4071 ( ( ( getAddr() - pcCUAboveRight->getAddr() ) == 0) && (pcCUAboveRight->getVSPFlag(uiAboveRightPartIdx) != 0)4072 #if H_3D_IC4073 && !bICFlag4074 #endif4075 #if H_3D_ARP4076 && !bARPFlag4077 #endif4078 #if H_3D_DBBP4079 && !bDBBPFlag4080 #endif4081 )4082 #endif4083 3928 #endif 4084 3929 , false … … 4088 3933 4089 3934 // left bottom 4090 #if !SEC_A1_BASED_VSP_J00394091 UInt uiLeftBottomPartIdx = 0;4092 TComDataCU* pcCULeftBottom = getPUBelowLeft( uiLeftBottomPartIdx, uiPartIdxLB );4093 #endif4094 3935 4095 3936 if (getAvailableFlagA0()) … … 4098 3939 #if H_3D_VSP 4099 3940 , 4100 #if SEC_A1_BASED_VSP_J00394101 3941 false 4102 #else4103 (pcCULeftBottom->getVSPFlag(uiLeftBottomPartIdx) != 04104 #if H_3D_IC4105 && !bICFlag4106 #endif4107 #if H_3D_ARP4108 && !bARPFlag4109 #endif4110 #if H_3D_DBBP4111 && !bDBBPFlag4112 #endif4113 )4114 #endif4115 3942 #endif 4116 3943 , false … … 4120 3947 4121 3948 // above left 4122 #if !SEC_A1_BASED_VSP_J00394123 UInt uiAboveLeftPartIdx = 0;4124 TComDataCU* pcCUAboveLeft = 0;4125 pcCUAboveLeft = getPUAboveLeft( uiAboveLeftPartIdx, uiAbsPartAddr );4126 #endif4127 3949 4128 3950 if (getAvailableFlagB2()) … … 4131 3953 #if H_3D_VSP 4132 3954 , 4133 #if SEC_A1_BASED_VSP_J00394134 3955 false 4135 #else4136 ( ( ( getAddr() - pcCUAboveLeft->getAddr() ) == 0) && (pcCUAboveLeft->getVSPFlag(uiAboveLeftPartIdx) != 0)4137 #if H_3D_IC4138 && !bICFlag4139 #endif4140 #if H_3D_ARP4141 && !bARPFlag4142 #endif4143 #if H_3D_DBBP4144 && !bDBBPFlag4145 #endif4146 )4147 #endif4148 3956 #endif 4149 3957 , false … … 4343 4151 } 4344 4152 } 4345 #if !LGE_DDD_REMOVAL_J0042_J00304346 #if H_3D_DDD4347 if( m_pcSlice->getIsDepth() && m_pcSlice->getViewIndex() != 0 && bMPIFlag )4348 {4349 UInt uiPartIdx;4350 TComDataCU *pcTextureCU = m_pcSlice->getTexturePic()->getCU( getAddr() );4351 TComSlice *pcTextureSlice = pcTextureCU->getSlice();4352 4353 4354 tmpMV[0].setMvField( cZeroMv, NOT_VALID );4355 tmpMV[1].setMvField( cZeroMv, NOT_VALID );4356 tmpDir = 0;4357 4358 xDeriveCenterIdx( uiPUIdx, uiPartIdx);4359 4360 if ( pcTextureCU && !pcTextureCU->isIntra( uiPartIdx ) )4361 {4362 4363 TComMvField cMVField;4364 Int iDV = 0;4365 Int iViewIdx = 0;4366 pcTextureCU->getMvField( pcTextureCU, uiPartIdx, REF_PIC_LIST_0, cMVField );4367 if( cMVField.getRefIdx() >= 0 )4368 {4369 if( pcTextureSlice->getRefPOC( REF_PIC_LIST_0, cMVField.getRefIdx()) == pcTextureSlice->getPOC() )4370 {4371 iViewIdx = pcTextureSlice->getRefPic( REF_PIC_LIST_0, cMVField.getRefIdx())->getViewIndex();4372 iDV = cMVField.getHor();4373 4374 4375 Int iValidDepRef = getPic()->isTextRefValid( REF_PIC_LIST_0, cMVField.getRefIdx() );4376 4377 if( iValidDepRef >= 0 )4378 {4379 const TComMv cAdd( 2, 2 );4380 cMVField.getMv() += cAdd;4381 cMVField.getMv() >>= 2;4382 #if !(NTT_BUG_FIX_TK54)4383 clipMv( cMVField.getMv() );4384 #endif4385 tmpMV[ 0 ].setMvField( cMVField.getMv(), iValidDepRef );4386 tmpDir = 1;4387 }4388 }4389 }4390 4391 pcTextureCU->getMvField( pcTextureCU, uiPartIdx, REF_PIC_LIST_1, cMVField );4392 4393 if( !tmpDir && cMVField.getRefIdx() >= 0 )4394 {4395 if( pcTextureSlice->getRefPOC( REF_PIC_LIST_1, cMVField.getRefIdx()) == pcTextureSlice->getPOC() )4396 {4397 iViewIdx = pcTextureSlice->getRefPic( REF_PIC_LIST_1, cMVField.getRefIdx())->getViewIndex();4398 iDV = cMVField.getHor();4399 4400 Int iValidDepRef = getPic()->isTextRefValid( REF_PIC_LIST_1, cMVField.getRefIdx() );4401 4402 if( iValidDepRef >= 0 )4403 {4404 const TComMv cAdd( 2, 2 );4405 cMVField.getMv() += cAdd;4406 cMVField.getMv() >>= 2;4407 #if !(NTT_BUG_FIX_TK54)4408 clipMv( cMVField.getMv() );4409 #endif4410 tmpMV[ 1 ].setMvField( cMVField.getMv(), iValidDepRef );4411 tmpDir = 2;4412 }4413 }4414 }4415 if( tmpDir != 0 )4416 {4417 m_ucDDTmpDepth = m_pcSlice->getDepthFromDV( iDV, iViewIdx );4418 m_iUseDDDCandIdx = iCount;4419 4420 m_mergCands[MRG_D].setCand( tmpMV, tmpDir, false, false);4421 if ( mrgCandIdx == iCount )4422 {4423 return;4424 }4425 iCount ++;4426 }4427 }4428 }4429 #endif4430 #endif4431 4153 ///////////////////////////////////////////////////////////////// 4432 4154 //////// DERIVE IvMC, IvMCShift,IvDCShift, IvDC Candidates ///// … … 4441 4163 Int ivCandDir [4] = {0, 0, 0, 0}; 4442 4164 4443 #if HHI_TOOL_PARAMETERS_I2_J01074444 4165 Bool ivMvPredFlag = getSlice()->getIvMvPredFlag(); 4445 #else4446 Bool ivMvPredFlag = getSlice()->getVPS()->getIvMvPredFlag( getSlice()->getLayerIdInVps() );4447 #endif4448 4166 4449 4167 ivMvPredFlag &= (nPSW + nPSH > 12); … … 4528 4246 4529 4247 #if H_3D 4530 #if SEC_A1_BASED_VSP_J00394531 4248 iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable; 4532 #else4533 iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable + m_mergCands[MRG_B0].m_bAvailable;4534 #endif4535 4249 #else 4536 4250 //left … … 4631 4345 #endif 4632 4346 4633 #if !LGE_DDD_REMOVAL_J0042_J0030 4634 #if H_3D_DDD 4635 // early termination 4636 if ( iCount >= getSlice()->getMaxNumMergeCand()) 4637 { 4638 return; 4639 } 4640 #endif 4641 #endif 4642 4643 #if SEC_A1_BASED_VSP_J0039 4347 4644 4348 #if H_3D_VSP 4645 4349 ///////////////////////////////////////////////// … … 4680 4384 iCount += m_mergCands[MRG_B0].m_bAvailable; 4681 4385 #endif 4682 #endif4683 4386 4684 4387 … … 4736 4439 #endif // H_3D_IV_MERGE 4737 4440 4738 #if !SEC_A1_BASED_VSP_J00394739 #if H_3D_VSP4740 /////////////////////////////////////////////////4741 //////// VIEW SYNTHESIS PREDICTION (VSP) ////////4742 /////////////////////////////////////////////////4743 if (iCount<getSlice()->getMaxNumMergeCand())4744 {4745 4746 if (4747 #if H_3D_IC4748 !bICFlag &&4749 #endif4750 #if H_3D_ARP4751 !bARPFlag &&4752 #endif4753 #if H_3D4754 (nPSW + nPSH > 12) &&4755 #endif4756 #if H_3D_DBBP4757 !bDBBPFlag &&4758 #endif4759 xAddVspCand( mrgCandIdx, &cDisInfo, iCount ) )4760 {4761 return;4762 }4763 4764 // early termination4765 if (iCount == getSlice()->getMaxNumMergeCand())4766 {4767 return;4768 }4769 #endif4770 #if H_3D4771 }4772 #endif4773 #endif4774 4441 4775 4442 #if H_3D … … 6016 5683 iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId ); 6017 5684 6018 #if HHI_TOOL_PARAMETERS_I2_J01076019 5685 if ( iScale != 4096 && m_pcSlice->getIvMvScalingFlag( ) ) 6020 #else6021 if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) )6022 #endif6023 5686 { 6024 5687 rcMv = cColMv.scaleMv( iScale ); … … 6203 5866 6204 5867 TComMv cMv; 6205 #if LGE_DEFAULT_DV_J00466206 5868 if ( getSlice()->getDefaultRefViewIdxAvailableFlag() ) 6207 5869 { 6208 5870 Int iViewIdx = getSlice()->getDefaultRefViewIdx(); 6209 5871 pDisp->m_aVIdxCan = iViewIdx; 6210 #if HHI_TOOL_PARAMETERS_I2_J01076211 5872 Int iDisp = getSlice()->getDepthToDisparityB( iViewIdx )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ]; 6212 #else6213 Int iDisp = getSlice()->getDepthToDisparityB( iViewIdx )[ 1 << ( getSlice()->getSPS()->getBitDepthY() - 1 ) ];6214 #endif6215 5873 6216 5874 cMv.setHor(iDisp); … … 6222 5880 } 6223 5881 return false; 6224 #else6225 #if MTK_I00936226 Int iDisp = getSlice()->getDepthToDisparityB( 0 )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ];6227 #else6228 Int iDisp = getSlice()->getDepthToDisparityB( 0 )[ 128 ];6229 #endif6230 cMv.setHor(iDisp);6231 cMv.setVer(0);6232 pDisp->m_acNBDV = cMv;6233 pDisp->m_aVIdxCan = 0;6234 6235 return true;6236 #endif6237 5882 } 6238 5883 #endif … … 6266 5911 } 6267 5912 break; 6268 #if !SINGLE_DEPTH_SIMP_J01156269 case 2: // Above6270 if(yP != 0)6271 {6272 *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP) ];6273 bDepAvail = true;6274 }6275 break;6276 case 3: // Left6277 if(xP != 0)6278 {6279 *pNeighDepth = pDepth[ (yP) * iDepStride + (xP-1) ];6280 bDepAvail = true;6281 }6282 break;6283 case 4: // Above_Left6284 if(xP != 0 && yP != 0)6285 {6286 *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP-1) ];6287 bDepAvail = true;6288 }6289 break;6290 #endif6291 5913 default: 6292 5914 break; … … 6327 5949 } 6328 5950 #if H_3D_NBDV_REF 6329 #if HHI_TOOL_PARAMETERS_I2_J01076330 5951 if( !m_pcSlice->getDepthRefinementFlag( ) ) 6331 #else6332 if( !m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ) )6333 #endif6334 5952 { 6335 5953 bDepthRefine = false; … … 6492 6110 pDInfo->m_acNBDV = defaultDV; 6493 6111 6494 #if LGE_DEFAULT_DV_J00466495 6112 if (getSlice()->getDefaultRefViewIdxAvailableFlag()) 6496 6113 { … … 6520 6137 pDInfo->m_acDoNBDV = defaultDV; 6521 6138 #endif 6522 #if LGE_SIMP_DISP_AVAIL_J00416523 6139 return true; 6524 #endif 6525 } 6526 #else 6527 Int valid = 0; 6528 Int viewIndex = 0; 6529 for( UInt uiBId = 0; uiBId < getSlice()->getViewIndex() && valid==0; uiBId++ ) 6530 { 6531 UInt uiBaseId = uiBId; 6532 TComPic* pcBasePic = getSlice()->getIvPic( false, uiBaseId ); 6533 for( Int iRefListId = 0; ( iRefListId < (getSlice()->isInterB()? 2:1) ) && !getSlice()->isIntra() && valid==0; iRefListId++ ) 6534 { 6535 RefPicList eRefPicListTest = RefPicList( iRefListId ); 6536 Int iNumRefPics = getSlice()->getNumRefIdx( eRefPicListTest ) ; 6537 for( Int iRefIndex = 0; iRefIndex < iNumRefPics; iRefIndex++ ) 6538 { 6539 if(pcBasePic->getPOC() == getSlice()->getRefPic( eRefPicListTest, iRefIndex )->getPOC() 6540 && pcBasePic->getViewIndex() == getSlice()->getRefPic( eRefPicListTest, iRefIndex )->getViewIndex()) 6541 { 6542 valid=1; 6543 viewIndex = uiBaseId; 6544 break; 6545 } 6546 } 6547 } 6548 } 6549 if(valid) 6550 { 6551 pDInfo->m_aVIdxCan = viewIndex; 6552 #if H_3D_NBDV_REF 6553 TComPic* picDepth = NULL; 6554 #if H_3D_FCO_VSP_DONBDV_E0163 6555 picDepth = getSlice()->getIvPic(true, getSlice()->getViewIndex() ); 6556 if ( picDepth->getPicYuvRec() != NULL ) 6557 { 6558 defaultDV.setZero(); 6559 } 6560 else // Go back with virtual depth 6561 { 6562 picDepth = getSlice()->getIvPic( true, viewIndex ); 6563 } 6564 6565 assert(picDepth != NULL); 6566 #else 6567 picDepth = getSlice()->getIvPic( true, viewIndex ); 6568 #if !BUG_FIX_TK65 6569 assert(picDepth!=NULL); 6570 #endif 6571 #endif 6572 if (picDepth && bDepthRefine) 6573 { 6574 estimateDVFromDM(viewIndex, uiPartIdx, picDepth, uiPartAddr, &defaultDV ); // from base view 6575 } 6576 pDInfo->m_acDoNBDV = defaultDV; 6577 #endif 6578 #if LGE_SIMP_DISP_AVAIL_J0041 6579 return true; 6580 #endif 6581 } 6582 #endif 6140 } 6583 6141 return false; 6584 6142 } … … 6834 6392 Bool depthRefineFlag = false; 6835 6393 #if H_3D_NBDV_REF 6836 #if HHI_TOOL_PARAMETERS_I2_J01076837 6394 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 6838 #else6839 depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() );6840 #endif6841 6395 #endif // H_3D_NBDV_REF 6842 6396 … … 6896 6450 Void TComDataCU::getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight) 6897 6451 { 6898 #if HHI_TOOL_PARAMETERS_I2_J01076899 6452 Int iSubPUSize = ( getSlice()->getIsDepth() ? getSlice()->getMpiSubPbSize() : getSlice()->getSubPbSize() ); 6900 #else6901 Int iSubPUSize = 1<<getSlice()->getVPS()->getSubPULog2Size(getSlice()->getLayerId());6902 if( getSlice()->getIsDepth() )6903 {6904 iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId());6905 }6906 #endif6907 6453 6908 6454 iNumSPInOneLine = iPUWidth/iSubPUSize; 6909 #if !HS_SP_SIMP_J00666910 iNumSPInOneLine = iNumSPInOneLine < 1 ? 1: iNumSPInOneLine;6911 #endif6912 6455 Int iNumSPInOneColumn = iPUHeight/iSubPUSize; 6913 #if !HS_SP_SIMP_J00666914 iNumSPInOneColumn = iNumSPInOneColumn < 1 ? 1: iNumSPInOneColumn;6915 #else6916 6456 iNumSPInOneLine = (iPUHeight % iSubPUSize != 0 || iPUWidth % iSubPUSize != 0 ) ? 1 : iNumSPInOneLine; 6917 6457 iNumSPInOneColumn = (iPUHeight % iSubPUSize != 0 || iPUWidth % iSubPUSize != 0 ) ? 1 : iNumSPInOneColumn; 6918 #endif6919 6458 iNumSP = iNumSPInOneLine * iNumSPInOneColumn; 6920 6459 … … 6990 6529 Bool depthRefineFlag = false; 6991 6530 #if H_3D_NBDV_REF 6992 #if HHI_TOOL_PARAMETERS_I2_J01076993 6531 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 6994 #else6995 depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() );6996 #endif6997 6532 #endif // H_3D_NBDV_REF 6998 6533
Note: See TracChangeset for help on using the changeset viewer.