Changeset 1074 in 3DVCSoftware for branches/HTM-12.1-dev0/source/Lib/TLibCommon/TComDataCU.cpp
- Timestamp:
- 21 Oct 2014, 20:39:50 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-12.1-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r1066 r1074 60 60 61 61 m_skipFlag = NULL; 62 #if MTK_SINGLE_DEPTH_MODE_I009562 #if H_3D_SINGLE_DEPTH 63 63 m_singleDepthFlag = NULL; 64 64 m_apSingleDepthValue = NULL; … … 185 185 186 186 m_skipFlag = new Bool[ uiNumPartition ]; 187 #if MTK_SINGLE_DEPTH_MODE_I0095187 #if H_3D_SINGLE_DEPTH 188 188 m_singleDepthFlag = new Bool[ uiNumPartition ]; 189 189 m_apSingleDepthValue = (Pel*)xMalloc(Pel, uiNumPartition); … … 335 335 336 336 if ( m_skipFlag ) { delete[] m_skipFlag; m_skipFlag = NULL; } 337 #if MTK_SINGLE_DEPTH_MODE_I0095337 #if H_3D_SINGLE_DEPTH 338 338 if ( m_singleDepthFlag ) { delete[] m_singleDepthFlag; m_singleDepthFlag = NULL; } 339 339 if ( m_apSingleDepthValue ) { xFree(m_apSingleDepthValue); m_apSingleDepthValue = NULL; } … … 503 503 TComDataCU * pcFrom = pcPic->getCU(getAddr()); 504 504 m_skipFlag[ui] = pcFrom->getSkipFlag(ui); 505 #if MTK_SINGLE_DEPTH_MODE_I0095505 #if H_3D_SINGLE_DEPTH 506 506 m_singleDepthFlag[ui] = pcFrom->getSingleDepthFlag(ui); 507 507 m_apSingleDepthValue[ui] = pcFrom->getSingleDepthValue(ui); … … 563 563 { 564 564 memset( m_skipFlag + firstElement, false, numElements * sizeof( *m_skipFlag ) ); 565 #if MTK_SINGLE_DEPTH_MODE_I0095565 #if H_3D_SINGLE_DEPTH 566 566 memset( m_singleDepthFlag + firstElement, false, numElements * sizeof( *m_singleDepthFlag ) ); 567 567 memset( m_apSingleDepthValue + firstElement, 0, numElements * sizeof( *m_apSingleDepthValue ) ); … … 754 754 m_puhTransformSkip[2][ui] = 0; 755 755 m_skipFlag[ui] = false; 756 #if MTK_SINGLE_DEPTH_MODE_I0095756 #if H_3D_SINGLE_DEPTH 757 757 m_singleDepthFlag[ui] = false; 758 758 m_apSingleDepthValue[ui] = 0; … … 933 933 { 934 934 m_skipFlag[ui] = false; 935 #if MTK_SINGLE_DEPTH_MODE_I0095935 #if H_3D_SINGLE_DEPTH 936 936 m_singleDepthFlag[ui] = false; 937 937 m_apSingleDepthValue[ui]= 0; … … 958 958 m_puhTransformSkip[2][ui] = pcCU->getTransformSkip(uiPartOffset+ui,TEXT_CHROMA_V); 959 959 m_skipFlag[ui] = pcCU->getSkipFlag(uiPartOffset+ui); 960 #if MTK_SINGLE_DEPTH_MODE_I0095960 #if H_3D_SINGLE_DEPTH 961 961 m_singleDepthFlag[ui] = pcCU->getSingleDepthFlag(uiPartOffset+ui); 962 962 m_apSingleDepthValue[ui] = pcCU->getSingleDepthValue(uiPartOffset+ui); … … 1111 1111 1112 1112 m_skipFlag=pcCU->getSkipFlag() + uiPart; 1113 #if MTK_SINGLE_DEPTH_MODE_I00951113 #if H_3D_SINGLE_DEPTH 1114 1114 m_singleDepthFlag = pcCU->getSingleDepthFlag() + uiPart; 1115 1115 m_apSingleDepthValue = pcCU->getSingleDepthValue() + uiPart; … … 1252 1252 1253 1253 m_skipFlag = pcCU->getSkipFlag () + uiAbsPartIdx; 1254 #if MTK_SINGLE_DEPTH_MODE_I00951254 #if H_3D_SINGLE_DEPTH 1255 1255 m_singleDepthFlag = pcCU->getSingleDepthFlag () + uiAbsPartIdx; 1256 1256 m_apSingleDepthValue = pcCU->getSingleDepthValue () + uiAbsPartIdx; … … 1331 1331 Int sizeInChar = sizeof( Char ) * uiNumPartition; 1332 1332 memcpy( m_skipFlag + uiOffset, pcCU->getSkipFlag(), sizeof( *m_skipFlag ) * uiNumPartition ); 1333 #if MTK_SINGLE_DEPTH_MODE_I00951333 #if H_3D_SINGLE_DEPTH 1334 1334 memcpy( m_singleDepthFlag + uiOffset, pcCU->getSingleDepthFlag(), sizeof( *m_singleDepthFlag ) * uiNumPartition ); 1335 1335 memcpy( m_apSingleDepthValue + uiOffset, pcCU->getSingleDepthValue(), sizeof( *m_apSingleDepthValue ) * uiNumPartition); … … 1455 1455 1456 1456 memcpy( rpcCU->getSkipFlag() + m_uiAbsIdxInLCU, m_skipFlag, sizeof( *m_skipFlag ) * m_uiNumPartition ); 1457 #if MTK_SINGLE_DEPTH_MODE_I00951457 #if H_3D_SINGLE_DEPTH 1458 1458 memcpy( rpcCU->getSingleDepthFlag() + m_uiAbsIdxInLCU, m_singleDepthFlag, sizeof( *m_singleDepthFlag ) * m_uiNumPartition ); 1459 1459 memcpy( rpcCU->getSingleDepthValue() + m_uiAbsIdxInLCU, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * m_uiNumPartition); … … 1574 1574 Int sizeInChar = sizeof( Char ) * uiQNumPart; 1575 1575 memcpy( rpcCU->getSkipFlag() + uiPartOffset, m_skipFlag, sizeof( *m_skipFlag ) * uiQNumPart ); 1576 #if MTK_SINGLE_DEPTH_MODE_I00951576 #if H_3D_SINGLE_DEPTH 1577 1577 memcpy( rpcCU->getSingleDepthFlag() + uiPartOffset, m_singleDepthFlag, sizeof( *m_singleDepthFlag ) * uiQNumPart ); 1578 1578 memcpy( rpcCU->getSingleDepthValue() + uiPartOffset, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * uiQNumPart); … … 2497 2497 memset( m_skipFlag + absPartIdx, skip, m_pcPic->getNumPartInCU() >> ( 2 * depth ) ); 2498 2498 } 2499 #if MTK_SINGLE_DEPTH_MODE_I00952499 #if H_3D_SINGLE_DEPTH 2500 2500 Void TComDataCU::setSingleDepthFlagSubParts( Bool singleDepth, UInt absPartIdx, UInt depth ) 2501 2501 { … … 2677 2677 } 2678 2678 2679 #if HS_DMM_SIGNALLING_I01202680 2679 if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) ) 2681 #else2682 if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) && !isDimDeltaDC( getLumaIntraDir( uiAbsPartIdx ) ) )2683 #endif2684 2680 { 2685 2681 return true; … … 2694 2690 // check prediction mode 2695 2691 UInt uiLumaPredMode = getLumaIntraDir( uiAbsPartIdx ); 2696 #if HS_DMM_SIGNALLING_I01202697 2692 if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX ) ) 2698 #else2699 if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX && !isDimDeltaDC( uiLumaPredMode ) ) )2700 #endif2701 2693 return true; 2702 2694 … … 3373 3365 for(Int iLoop = 0; iLoop < 2; iLoop ++ ) 3374 3366 { 3375 #if !SEC_SIMP_SHIFTED_DV_I00863376 // IvDcShift (Derived from spatial Iv neighboring blocks)3377 if( iLoop == 1 )3378 {3379 Int iFirDispCand = -1;3380 TComMvField mvIvDcShift[2];3381 UChar dirIvDcShift;3382 3383 if (xGetPosFirstAvailDmvCand(MRG_IVSHIFT, iFirDispCand))3384 {3385 TComMv cMv;3386 cMv = m_mergCands[iFirDispCand].m_cMvField[0].getMv();3387 cMv.setHor(cMv.getHor()+4);3388 if(m_pcSlice->getVPS()->getViewSynthesisPredFlag(m_pcSlice->getLayerIdInVps()))3389 {3390 cMv.setVer(0);3391 }3392 #if !(NTT_BUG_FIX_TK54)3393 clipMv( cMv );3394 #endif3395 3396 dirIvDcShift = m_mergCands[iFirDispCand].m_uDir;3397 mvIvDcShift[0].setMvField(cMv, m_mergCands[iFirDispCand].m_cMvField[0].getRefIdx() );3398 mvIvDcShift[1].setMvField(m_mergCands[iFirDispCand].m_cMvField[1].getMv(), m_mergCands[iFirDispCand].m_cMvField[1].getRefIdx() );3399 m_mergCands[MRG_IVSHIFT].setCand(mvIvDcShift, dirIvDcShift, false, false);3400 3401 if( mrgCandIdx == iCount )3402 {3403 return true;3404 }3405 iCount++;3406 break;3407 }3408 }3409 #endif3410 3411 3367 /// iLoop = 0 --> IvMCShift 3412 3368 /// iLoop = 1 --> IvDCShift (Derived from IvDC) … … 3455 3411 } 3456 3412 3457 #if !SEC_SIMP_SHIFTED_DV_I00863458 inline Bool TComDataCU::xGetPosFirstAvailDmvCand(Int iCount, Int& posFirstAvailDmvCand )3459 {3460 for ( Int currListPos = 0; currListPos < iCount; currListPos++ )3461 {3462 if ( !m_mergCands[currListPos].m_bAvailable || ( currListPos == MRG_IVMC ) || ( currListPos == MRG_IVDC ) || ( m_mergCands[currListPos].m_iVspFlag != 0 ))3463 {3464 continue;3465 }3466 else if((m_mergCands[currListPos].m_bAvailable) && (m_mergCands[currListPos].m_cMvField[0].getRefIdx() != -1 ) && (getSlice()->getViewIndex() != getSlice()->getRefPic(RefPicList(0), m_mergCands[currListPos].m_cMvField[0].getRefIdx())->getViewIndex()))3467 {3468 posFirstAvailDmvCand = currListPos;3469 return true;3470 }3471 }3472 return false;3473 }3474 #endif3475 3476 3413 #endif 3477 3414 … … 3921 3858 Void TComDataCU::getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours 3922 3859 #endif 3923 #if H_3D_VSP && !FIX_TICKET_793924 , InheritedVSPDisInfo* inheritedVSPDisInfo3925 #endif3926 3860 #if H_3D_SPIVMP 3927 3861 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP … … 3951 3885 ////////////////////////////////// 3952 3886 DisInfo cDisInfo = getDvInfo(uiAbsPartIdx); 3953 #if !FIX_TICKET_793954 for(Int i = 0; i < MRG_MAX_NUM_CANDS_MEM; i++)3955 {3956 inheritedVSPDisInfo[i].m_acDvInfo = cDisInfo; // To prevent run-time error, this code must be executed always for merging process.3957 }3958 #endif3959 3887 m_cDefaultDisInfo = cDisInfo; 3960 3888 … … 4177 4105 TComPic * pcTexPic = m_pcSlice->getTexturePic(); 4178 4106 #if H_3D_FCO 4179 #if LGE_FCO_I01164107 #if H_3D_FCO 4180 4108 if (pcTexPic && pcTexPic->getReconMark()) 4181 4109 #else … … 4251 4179 TComMv cMv = cDefaultMvField.getMv() + cMvRounding; 4252 4180 cMv >>= 2; 4253 #if !FIX_TICKET_684254 clipMv( cMv );4255 #endif4256 4181 cMvFieldSaved[eCurrRefPicList].setMvField(cMv, iRefPicList) ; 4257 4182 break; … … 5325 5250 #endif 5326 5251 5327 #if !FIX_TICKET_765328 #if H_3D_VSP5329 inline Void TComDataCU::xInheritVSPDisInfo(TComDataCU* pcCURef, UInt uiAbsPartIdx, Int iCount, InheritedVSPDisInfo* inheritedVSPDisInfo)5330 {5331 inheritedVSPDisInfo[iCount].m_acDvInfo.m_acNBDV = pcCURef->getDvInfo(uiAbsPartIdx).m_acNBDV;5332 inheritedVSPDisInfo[iCount].m_acDvInfo.m_aVIdxCan = pcCURef->getDvInfo(uiAbsPartIdx).m_aVIdxCan;5333 }5334 #endif5335 #endif5336 5252 /** Check whether the current PU and a spatial neighboring PU are in a same ME region. 5337 5253 * \param xN, xN location of the upper-left corner pixel of a neighboring PU … … 5976 5892 Int iColRefViewId = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex(); 5977 5893 iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId ); 5978 #if SEC_HLS_CLEANUP_I0100 5894 5979 5895 if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) ) 5980 #else5981 if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag() )5982 #endif5983 5896 { 5984 5897 rcMv = cColMv.scaleMv( iScale ); … … 6164 6077 TComMv cMv; 6165 6078 #if MTK_I0093 6166 #if H_3D_FIX_64BIT_SHIFT6167 6079 Int iDisp = getSlice()->getDepthToDisparityB( 0 )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ]; 6168 #else6169 Int iDisp = getSlice()->getDepthToDisparityB( 0 )[ 1 << ( getSlice()->getSPS()->getBitDepthY() - 1 ) ];6170 #endif6171 6080 #else 6172 6081 Int iDisp = getSlice()->getDepthToDisparityB( 0 )[ 128 ]; … … 6181 6090 #endif 6182 6091 6183 #if MTK_SINGLE_DEPTH_MODE_I00956092 #if H_3D_SINGLE_DEPTH 6184 6093 Bool TComDataCU::getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index) 6185 6094 { … … 6795 6704 if( getSlice()->getIsDepth() ) 6796 6705 { 6797 #if MTK_I0099_VPS_EX26798 6706 iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId()); 6799 #else6800 iSubPUSize = 1 << getSlice()->getVPS()->getSubPUMPILog2Size();6801 #endif6802 6707 } 6803 6708
Note: See TracChangeset for help on using the changeset viewer.