Changeset 1255 in 3DVCSoftware for branches/HTM-14.1-update-dev3-NTT
- Timestamp:
- 11 Jun 2015, 01:07:43 (10 years ago)
- Location:
- branches/HTM-14.1-update-dev3-NTT
- Files:
-
- 2 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibCommon/TComDataCU.cpp
r1233 r1255 128 128 m_pDvInfo = NULL; 129 129 #endif 130 #if H_3D_VSP130 #if NH_3D_VSP 131 131 m_piVSPFlag = NULL; 132 132 #endif … … 185 185 m_pbMergeFlag = (Bool* )xMalloc(Bool, uiNumPartition); 186 186 m_puhMergeIndex = (UChar* )xMalloc(UChar, uiNumPartition); 187 #if H_3D_VSP187 #if NH_3D_VSP 188 188 m_piVSPFlag = (Char* )xMalloc(Char, uiNumPartition); 189 189 #endif … … 372 372 } 373 373 374 #if H_3D_VSP 375 if ( m_piVSPFlag ) { xFree(m_piVSPFlag); m_piVSPFlag = NULL; } 374 #if NH_3D_VSP 375 if ( m_piVSPFlag ) 376 { 377 xFree(m_piVSPFlag); 378 m_piVSPFlag = NULL; 379 } 376 380 #endif 377 381 #if H_3D_SPIVMP … … 623 627 memset( m_puhMergeIndex , 0, m_uiNumPartition * sizeof( *m_puhMergeIndex ) ); 624 628 625 #if H_3D_VSP626 m_piVSPFlag[ui] = pcFrom->m_piVSPFlag[ui];629 #if NH_3D_VSP 630 memset( m_piVSPFlag , 0, m_uiNumPartition * sizeof( *m_piVSPFlag ) ); 627 631 #endif 628 632 #if H_3D_SPIVMP … … 638 642 memset( m_bDISFlag + firstElement, false, numElements * sizeof( *m_bDISFlag ) ); 639 643 memset( m_uiDISType + firstElement, 0, numElements * sizeof( *m_uiDISType) ); 640 #endif641 #if H_3D_VSP642 memset( m_piVSPFlag + firstElement, 0, numElements * sizeof( *m_piVSPFlag ) );643 644 #endif 644 645 #if H_3D_SPIVMP … … 795 796 m_pbMergeFlag[ui] = 0; 796 797 m_puhMergeIndex[ui] = 0; 797 #if H_3D_VSP798 m_piVSPFlag[ui]= 0;798 #if NH_3D_VSP 799 m_piVSPFlag[ui] = 0; 799 800 #endif 800 801 #if H_3D_SPIVMP … … 896 897 memset( m_pbMergeFlag, 0, iSizeInBool ); 897 898 memset( m_puhMergeIndex, 0, iSizeInUchar ); 898 #if H_3D_VSP899 #if NH_3D_VSP 899 900 memset( m_piVSPFlag, 0, sizeof( Char ) * m_uiNumPartition ); 900 901 #endif … … 976 977 m_uiDISType[ui] = pcCU->getDISType(uiPartOffset+ui); 977 978 #endif 978 #if H_3D_VSP979 m_piVSPFlag[ui]=pcCU->m_piVSPFlag[uiPartOffset+ui];980 979 #if NH_3D_VSP 980 m_piVSPFlag[ui] = pcCU->m_piVSPFlag[uiPartOffset+ui]; 981 m_pDvInfo[ ui ] = pcCU->m_pDvInfo[uiPartOffset+ui]; 981 982 #endif 982 983 #if H_3D_SPIVMP … … 1084 1085 m_pbMergeFlag = pcCU->getMergeFlag() + uiPart; 1085 1086 m_puhMergeIndex = pcCU->getMergeIndex() + uiPart; 1086 #if H_3D_VSP1087 #if NH_3D_VSP 1087 1088 m_piVSPFlag = pcCU->getVSPFlag() + uiPart; 1088 1089 #endif … … 1238 1239 m_pbMergeFlag = pcCU->getMergeFlag() + uiAbsPartIdx; 1239 1240 m_puhMergeIndex = pcCU->getMergeIndex() + uiAbsPartIdx; 1240 #if H_3D_VSP1241 #if NH_3D_VSP 1241 1242 m_piVSPFlag = pcCU->getVSPFlag() + uiAbsPartIdx; 1242 1243 m_pDvInfo = pcCU->getDvInfo() + uiAbsPartIdx; … … 1296 1297 memcpy( m_pbMergeFlag + uiOffset, pcCU->getMergeFlag(), iSizeInBool ); 1297 1298 memcpy( m_puhMergeIndex + uiOffset, pcCU->getMergeIndex(), iSizeInUchar ); 1298 #if H_3D_VSP1299 #if NH_3D_VSP 1299 1300 memcpy( m_piVSPFlag + uiOffset, pcCU->getVSPFlag(), sizeof( Char ) * uiNumPartition ); 1300 1301 memcpy( m_pDvInfo + uiOffset, pcCU->getDvInfo(), sizeof( *m_pDvInfo ) * uiNumPartition ); … … 1423 1424 memcpy( pCtu->getMergeFlag() + m_absZIdxInCtu, m_pbMergeFlag, iSizeInBool ); 1424 1425 memcpy( pCtu->getMergeIndex() + m_absZIdxInCtu, m_puhMergeIndex, iSizeInUchar ); 1425 #if H_3D_VSP 1426 memcpy( rpcCU->getVSPFlag() + m_uiAbsIdxInLCU, m_piVSPFlag, sizeof( Char ) * m_uiNumPartition ); 1427 memcpy( rpcCU->getDvInfo() + m_uiAbsIdxInLCU, m_pDvInfo, sizeof( *m_pDvInfo ) * m_uiNumPartition ); 1426 #if NH_3D_VSP 1427 memcpy( pCtu->getVSPFlag() + m_absZIdxInCtu, m_piVSPFlag, sizeof( Char ) * m_uiNumPartition ); 1428 1428 #endif 1429 1429 #if H_3D_SPIVMP … … 1516 1516 #endif 1517 1517 1518 #if H_3D_VSP1519 memcpy( rpcCU->getVSPFlag() + uiPartOffset, m_piVSPFlag, sizeof(Char) * uiQNumPart );1520 #endif1521 1518 #if H_3D_SPIVMP 1522 1519 memcpy( rpcCU->getSPIVMPFlag() + uiPartOffset, m_pbSPIVMPFlag, sizeof(Bool) * uiQNumPart ); … … 2504 2501 #endif 2505 2502 2506 #if H_3D_VSP2503 #if NH_3D_VSP 2507 2504 Void TComDataCU::setVSPFlagSubParts( Char iVSPFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) 2508 2505 { 2509 2506 setSubPart<Char>( iVSPFlag, m_piVSPFlag, uiAbsPartIdx, uiDepth, uiPartIdx ); 2510 2507 } 2511 #if H_3D_VSP2512 2508 template<typename T> 2513 2509 Void TComDataCU::setSubPartT( T uiParameter, T* puhBaseLCU, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx ) 2514 2510 { 2515 UInt uiCurrPartNumQ = (m_pcPic->getNumPart InCU() >> (2 * uiCUDepth)) >> 2;2511 UInt uiCurrPartNumQ = (m_pcPic->getNumPartitionsInCtu() >> (2 * uiCUDepth)) >> 2; 2516 2512 switch ( m_pePartSize[ uiCUAddr ] ) 2517 2513 { … … 2645 2641 } 2646 2642 #endif 2647 #endif2648 2643 2649 2644 Void TComDataCU::setInterDirSubParts( UInt uiDir, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) … … 2731 2726 2732 2727 // This is for use by a leaf/sub CU object only, with no additional AbsPartIdx 2733 #if H_3D_IC 2728 #if H_3D_IC | NH_3D_VSP 2734 2729 Void TComDataCU::getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx, Bool bLCU) 2735 2730 { … … 3065 3060 } 3066 3061 3067 #if H_3D_VSP 3068 3062 #if NH_3D_VSP 3069 3063 /** Add a VSP merging candidate 3070 3064 * \Inputs … … 3128 3122 3129 3123 dirVSP = (predFlag[0] | (predFlag[1] << 1)); 3130 m_mergCands[MRG_VSP].setCand( mvVSP, dirVSP, true, false); 3124 m_mergCands[MRG_VSP].setCand( mvVSP, dirVSP, true 3125 #if H_3D_SPIVMP 3126 , false 3127 #endif 3128 ); 3131 3129 if ( mrgCandIdx == iCount ) 3132 3130 { … … 3138 3136 return false; 3139 3137 } 3140 3141 3138 #endif 3142 3139 … … 3202 3199 */ 3203 3200 Void TComDataCU::buildMCL(TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours 3204 #if H_3D_VSP3201 #if NH_3D_VSP 3205 3202 , Int* vspFlag 3206 3203 #endif … … 3227 3224 extMergeCandList[ui<<1].setMvField(cZeroMv, NOT_VALID); 3228 3225 extMergeCandList[(ui<<1)+1].setMvField(cZeroMv, NOT_VALID); 3229 #if H_3D_VSP3226 #if NH_3D_VSP 3230 3227 vspFlag[ui] = 0; 3231 3228 #endif … … 3238 3235 { 3239 3236 m_mergCands[i].getCand(iCount, extMergeCandList, uhInterDirNeighboursExt 3240 #if H_3D_VSP3237 #if NH_3D_VSP 3241 3238 , vspFlag 3242 3239 #endif … … 3313 3310 DisInfo cDisInfo = getDvInfo(uiAbsPartIdx); 3314 3311 m_cDefaultDisInfo = cDisInfo; 3312 #elif NH_3D_VSP 3313 // for xAddVspCand() 3314 DisInfo cDisInfo = getDvInfo(uiAbsPartIdx); 3315 3315 #endif 3316 3316 … … 3371 3371 { 3372 3372 m_mergCands[MRG_A1].setCand( &pcMFieldNeighbours[m_numSpatialCands<<1], puhInterDirNeighbours[m_numSpatialCands] 3373 #if H_3D_VSP3373 #if NH_3D_VSP 3374 3374 , (pcCULeft->getVSPFlag(uiLeftPartIdx) != 0 3375 3375 #if H_3D_IC … … 3395 3395 { 3396 3396 m_mergCands[MRG_B1].setCand( &pcMFieldNeighbours[m_numSpatialCands<<1], puhInterDirNeighbours[m_numSpatialCands] 3397 #if H_3D_VSP3397 #if NH_3D_VSP 3398 3398 , false 3399 3399 #endif … … 3409 3409 { 3410 3410 m_mergCands[MRG_B0].setCand( &pcMFieldNeighbours[m_numSpatialCands<<1], puhInterDirNeighbours[m_numSpatialCands] 3411 #if H_3D_VSP 3412 , 3413 false 3411 #if NH_3D_VSP 3412 , false 3414 3413 #endif 3415 3414 #if H_3D_SPIVMP … … 3424 3423 { 3425 3424 m_mergCands[MRG_A0].setCand( &pcMFieldNeighbours[m_numSpatialCands<<1], puhInterDirNeighbours[m_numSpatialCands] 3426 #if H_3D_VSP3425 #if NH_3D_VSP 3427 3426 , false 3428 3427 #endif … … 3438 3437 { 3439 3438 m_mergCands[MRG_B2].setCand( &pcMFieldNeighbours[m_numSpatialCands<<1], puhInterDirNeighbours[m_numSpatialCands] 3440 #if H_3D_VSP3439 #if NH_3D_VSP 3441 3440 , false 3442 3441 #endif … … 3718 3717 iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable; 3719 3718 3720 #if H_3D_VSP3719 #if NH_3D_VSP 3721 3720 ///////////////////////////////////////////////// 3722 3721 //////// VIEW SYNTHESIS PREDICTION (VSP) //////// … … 3748 3747 return; 3749 3748 } 3750 #endif3751 #if H_3D_VSP3752 3749 } 3753 3750 #endif … … 5467 5464 Void TComDataCU::setDvInfoSubParts( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiDepth ) 5468 5465 { 5466 #if NH_3D_VSP // bug fix 5467 UInt uiCurrPartNumb = m_pcPic->getNumPartitionsInCtu() >> (uiDepth << 1); 5468 #else 5469 5469 UInt uiCurrPartNumb = m_pcPic->getNumPartInCtuWidth() >> (uiDepth << 1); 5470 #endif 5470 5471 for (UInt ui = 0; ui < uiCurrPartNumb; ui++ ) 5471 5472 { … … 5473 5474 } 5474 5475 } 5475 #if H_3D_VSP5476 #if NH_3D_VSP 5476 5477 Void TComDataCU::setDvInfoSubParts( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth ) 5477 5478 { … … 6084 6085 #endif 6085 6086 6086 #if H_3D_VSP6087 #if NH_3D_VSP 6087 6088 Void TComDataCU::setMvFieldPUForVSP( TComDataCU* pcCU, UInt partAddr, Int width, Int height, RefPicList eRefPicList, Int iRefIdx, Int &vspSize ) 6088 6089 { … … 6140 6141 TComCUMvField *cuMvField = cu->getCUMvField( refPicList ); 6141 6142 Int partAddrRasterSubPULine = g_auiZscanToRaster[ partAddr ]; 6142 Int numPartsLine = cu->getPic()->getNumPartIn Width();6143 Int numPartsLine = cu->getPic()->getNumPartInCtuWidth(); 6143 6144 6144 6145 Int nTxtPerMvInfoX = 4; // cu->getPic()->getMinCUWidth(); 6145 6146 Int nTxtPerMvInfoY = 4; // cu->getPic()->getMinCUHeight(); 6146 6147 6147 Int refDepStride = picRefDepth->getStride( );6148 Int refDepStride = picRefDepth->getStride( COMPONENT_Y ); 6148 6149 6149 6150 TComMv tmpMv(0, 0); … … 6151 6152 6152 6153 Int refDepOffset = ( (dv->getHor()+2) >> 2 ) + ( (dv->getVer()+2) >> 2 ) * refDepStride; 6153 Pel *refDepth = picRefDepth->get LumaAddr( cu->getAddr(), cu->getZorderIdxInCU() + partAddr ) + refDepOffset;6154 Pel *refDepth = picRefDepth->getAddr( COMPONENT_Y, cu->getCtuRsAddr(), cu->getZorderIdxInCtu() + partAddr ) + refDepOffset; 6154 6155 6155 6156 if ((height % 8)) -
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibCommon/TComDataCU.h
r1233 r1255 170 170 DisInfo* m_pDvInfo; 171 171 #endif 172 #if H_3D_VSP172 #if NH_3D_VSP 173 173 Char* m_piVSPFlag; ///< array of VSP flags to indicate whehter a block uses VSP or not ///< 0: non-VSP; 1: VSP 174 174 #endif … … 233 233 Bool xAddMVPCand ( AMVPInfo* pInfo, RefPicList eRefPicList, Int iRefIdx, UInt uiPartUnitIdx, MVP_DIR eDir ); 234 234 Bool xAddMVPCandOrder ( AMVPInfo* pInfo, RefPicList eRefPicList, Int iRefIdx, UInt uiPartUnitIdx, MVP_DIR eDir ); 235 #if H_3D_VSP235 #if NH_3D_VSP 236 236 Bool xAddVspCand( Int mrgCandIdx, DisInfo* pDInfo, Int& iCount); 237 237 #endif … … 255 255 Void xDeriveCenterIdx( UInt uiPartIdx, UInt& ruiPartIdxCenter ); 256 256 257 #if H_3D_VSP257 #if NH_3D_VSP 258 258 Void xSetMvFieldForVSP ( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *dv, UInt partAddr, Int width, Int height, Int *shiftLUT, RefPicList refPicList, Int refIdx, Bool isDepth, Int &vspSize ); 259 259 #endif … … 452 452 template <typename T> 453 453 Void setSubPart ( T bParameter, T* pbBaseCtu, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx ); 454 #if H_3D_VSP454 #if NH_3D_VSP 455 455 template<typename T> 456 456 Void setSubPartT ( T uiParameter, T* puhBaseLCU, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx ); … … 541 541 Bool isICFlagRequired ( UInt uiAbsPartIdx ); 542 542 Void getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx = 0, Bool bLCU = false); 543 #elif NH_3D_VSP 544 Void getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx = 0, Bool bLCU = false); 543 545 #else 544 546 // ------------------------------------------------------------------------------------------------------------------- … … 660 662 Void initAvailableFlags() { m_bAvailableFlagA1 = m_bAvailableFlagB1 = m_bAvailableFlagB0 = m_bAvailableFlagA0 = m_bAvailableFlagB2 = 0; } 661 663 Void buildMCL(TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 662 #if H_3D_VSP664 #if NH_3D_VSP 663 665 , Int* vspFlag 664 666 #endif … … 676 678 Void getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx = -1 ); 677 679 678 #if H_3D_VSP680 #if NH_3D_VSP 679 681 #if H_3D_SPIVMP 680 682 Bool* getSPIVMPFlag () { return m_pbSPIVMPFlag; } -
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibCommon/TComMotionInfo.h
r1233 r1255 170 170 Void setMvFieldSP ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComMvField cMvField, Int iWidth, Int iHeight ); 171 171 #endif 172 #if H_3D_VSP172 #if NH_3D_VSP 173 173 Void setMv ( Int iIdx, TComMv const & rcMv ) { m_pcMv[iIdx] = rcMv; } 174 174 Void setRefIdx ( Int iIdx, Int iRefIdx ) { m_piRefIdx[iIdx] = iRefIdx; } … … 200 200 TComMvField m_cMvField[2]; 201 201 UChar m_uDir; 202 #if H_3D_VSP202 #if NH_3D_VSP 203 203 Int m_iVspFlag; 204 #endif 204 #endif 205 205 #if H_3D_SPIVMP 206 206 Bool m_bSPIVMPFlag; … … 212 212 m_bAvailable = false; 213 213 m_uDir = 0; 214 #if H_3D_VSP214 #if NH_3D_VSP 215 215 m_iVspFlag = 0; 216 216 #endif … … 231 231 m_bAvailable = false; 232 232 m_uDir = 0; 233 #if H_3D_VSP233 #if NH_3D_VSP 234 234 m_iVspFlag = 0; 235 235 #endif … … 242 242 243 243 Void setCand(TComMvField* pcMvFieldNeighbours, UChar uhInterDirNeighbours 244 #if H_3D_VSP244 #if NH_3D_VSP 245 245 , Int vspFlag 246 246 #endif … … 254 254 m_cMvField[1] = pcMvFieldNeighbours[1]; 255 255 m_uDir = uhInterDirNeighbours; 256 #if H_3D_VSP256 #if NH_3D_VSP 257 257 m_iVspFlag = vspFlag; 258 258 #endif … … 263 263 264 264 Void getCand(Int iCount, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours 265 #if H_3D_VSP265 #if NH_3D_VSP 266 266 , Int* vspFlag 267 267 #endif … … 274 274 pcMvFieldNeighbours[(iCount<<1) + 1] = m_cMvField[1]; 275 275 puhInterDirNeighbours[iCount] = m_uDir; 276 #if H_3D_VSP276 #if NH_3D_VSP 277 277 vspFlag[iCount] = m_iVspFlag; 278 278 #endif -
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibCommon/TComPrediction.cpp
r1210 r1255 82 82 } 83 83 } 84 #if H_3D_VSP85 m_pDepthBlock = (Int*) malloc(MAX_NUM_ SPU_W*MAX_NUM_SPU_W*sizeof(Int));84 #if NH_3D_VSP 85 m_pDepthBlock = (Int*) malloc(MAX_NUM_PART_IDXS_IN_CTU_WIDTH*MAX_NUM_PART_IDXS_IN_CTU_WIDTH*sizeof(Int)); 86 86 if (m_pDepthBlock == NULL) 87 87 { … … 94 94 TComPrediction::~TComPrediction() 95 95 { 96 #if H_3D_VSP96 #if NH_3D_VSP 97 97 if (m_pDepthBlock != NULL) 98 98 { … … 186 186 m_acYuvPredBase[1] .create( g_uiMaxCUWidth, g_uiMaxCUHeight ); 187 187 #endif 188 #if H_3D_VSP189 m_cYuvDepthOnVsp.create( g_uiMaxCUWidth, g_uiMaxCUHeight);188 #if NH_3D_VSP 189 m_cYuvDepthOnVsp.create( MAX_CU_SIZE, MAX_CU_SIZE, chromaFormatIDC ); 190 190 #endif 191 191 … … 1205 1205 { 1206 1206 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iWidth, iHeight ); 1207 #if H_3D_VSP1207 #if NH_3D_VSP 1208 1208 if ( pcCU->getVSPFlag(uiPartAddr) == 0) 1209 1209 { … … 1270 1270 #endif 1271 1271 } 1272 #if H_3D_VSP1272 #if NH_3D_VSP 1273 1273 } 1274 1274 else … … 1291 1291 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iWidth, iHeight ); 1292 1292 1293 #if H_3D_VSP1293 #if NH_3D_VSP 1294 1294 if ( pcCU->getVSPFlag(uiPartAddr) == 0 ) 1295 1295 { … … 1355 1355 #endif 1356 1356 } 1357 #if H_3D_VSP1357 #if NH_3D_VSP 1358 1358 } 1359 1359 else … … 1425 1425 } 1426 1426 1427 #if H_3D_VSP1427 #if NH_3D_VSP 1428 1428 Void TComPrediction::xPredInterUniVSP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi ) 1429 1429 { … … 1446 1446 Void TComPrediction::xPredInterUniSubPU( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, Int widthSubPU, Int heightSubPU ) 1447 1447 { 1448 UInt numPartsInLine = pcCU->getPic()->getNumPartIn Width();1448 UInt numPartsInLine = pcCU->getPic()->getNumPartInCtuWidth(); 1449 1449 UInt horiNumPartsInSubPU = widthSubPU >> 2; 1450 1450 UInt vertNumPartsInSubPU = (heightSubPU >> 2) * numPartsInLine; … … 1462 1462 pcCU->clipMv(cMv); 1463 1463 1464 xPredInterLumaBlk ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi ); 1465 xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi ); 1466 1467 } 1468 } 1469 } 1470 1464 xPredInterBlk( COMPONENT_Y, pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) ); 1465 xPredInterBlk( COMPONENT_Cb, pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA) ); 1466 xPredInterBlk( COMPONENT_Cr, pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA) ); 1467 } 1468 } 1469 } 1471 1470 #endif 1472 1471 … … 1854 1853 } 1855 1854 1856 #if H_3D_VSP 1857 1855 #if NH_3D_VSP 1858 1856 Void TComPrediction::xPredInterBiVSP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred ) 1859 1857 { … … 1877 1875 } 1878 1876 1879 xWeightedAverage( &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred ); 1880 } 1881 1877 xWeightedAverage( &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred, pcCU->getSlice()->getSPS()->getBitDepths() ); 1878 } 1882 1879 #endif 1883 1880 -
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibCommon/TComPrediction.h
r1200 r1255 91 91 #endif 92 92 93 #if H_3D_VSP93 #if NH_3D_VSP 94 94 Int* m_pDepthBlock; ///< Store a depth block, local variable, to prevent memory allocation every time 95 95 TComYuv m_cYuvDepthOnVsp; … … 108 108 Void xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv* pcYuvPred, Bool bi=false ); 109 109 Void xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv* pcYuvPred ); 110 #if H_3D_VSP110 #if NH_3D_VSP 111 111 Void xPredInterUniVSP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false ); 112 112 Void xPredInterBiVSP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred ); … … 128 128 , Bool bICFlag = false 129 129 #endif 130 #if H_3D_VSP130 #if NH_3D_VSP 131 131 Void xPredInterUniSubPU ( TComDataCU *cu, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, Int widthSubPU=4, Int heightSubPU=4 ); 132 132 #endif -
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibCommon/TypeDef.h
r1233 r1255 72 72 #define NH_3D_NBDV_REF 1 73 73 #define NH_3D_MLC 1 74 #define NH_3D_VSP 1 74 75 #endif 75 76 … … 312 313 /// GT: Move values which are not flags to CommonDef.h and convert to static int !! 313 314 /////////////////////////////////////////////////////////////////////////////////// 314 ///// ***** VIEW SYNTHESIS PREDICTION *********315 #if H_3D_VSP316 #define H_3D_VSP_BLOCKSIZE 4 // Supported values: 1, 2, and 4317 #if H_3D_VSP_BLOCKSIZE == 1318 #define H_3D_VSP_CONSTRAINED 1 // Constrained VSP @ 1x1319 #else320 #define H_3D_VSP_CONSTRAINED 0321 #endif322 #endif323 315 ///// ***** ILLUMATION COMPENSATION ********* 324 316 #if H_3D_IC -
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibDecoder/TDecCu.cpp
r1233 r1255 152 152 setIsChromaQpAdjCoded(true); 153 153 } 154 154 155 155 // start from the top level CU 156 156 xDecodeCU( pCtu, 0, 0, isLastCtuOfSliceSegment); … … 293 293 if(!pcCU->getSlice()->isIntra()) 294 294 { 295 #if H_3D_ARP && H_3D_IV_MERGE296 if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() )295 #if NH_3D_ARP && NH_3D_IV_MERGE && NH_3D_VSP 296 if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() ) 297 297 #else 298 #if NH_3D_IV_MERGE && NH_3D_VSP 299 if( pcCU->getSlice()->getIvMvPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() ) 300 #else 301 #if NH_3D_ARP && NH_3D_VSP 302 if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() ) 303 #else 304 #if NH_3D_VSP 305 if( pcCU->getSlice()->getViewSynthesisPredFlag() ) 306 #else 298 307 #if H_3D_ARP 299 308 if( pcCU->getSlice()->getVPS()->getUseAdvRP(pcCU->getSlice()->getLayerId()) ) … … 303 312 #else 304 313 if (0) 314 #endif 315 #endif 316 #endif 305 317 #endif 306 318 #endif … … 408 420 409 421 410 #if H_3D_VSP422 #if NH_3D_VSP 411 423 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 412 424 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 433 445 434 446 m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 435 #if H_3D_VSP447 #if NH_3D_VSP 436 448 , vspFlag 437 449 #endif … … 441 453 , numValidMergeCand ); 442 454 #endif 443 #if H_3D_VSP455 #if NH_3D_VSP 444 456 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 445 457 #endif … … 456 468 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 457 469 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 458 #if H_3D_VSP470 #if NH_3D_VSP 459 471 if( pcCU->getVSPFlag( uiAbsPartIdx ) != 0 ) 460 472 { -
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibDecoder/TDecEntropy.cpp
r1233 r1255 318 318 if ( !isMerged ) 319 319 { 320 #if H_3D_VSP320 #if NH_3D_VSP 321 321 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 322 322 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 337 337 , numValidMergeCand ); 338 338 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 339 340 339 #else 341 340 #if H_3D … … 355 354 { 356 355 uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 357 #if H_3D_VSP356 #if NH_3D_VSP 358 357 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 359 358 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 395 394 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 396 395 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 397 #if H_3D_VSP396 #if NH_3D_VSP 398 397 #if H_3D_DBBP 399 398 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 && !pcCU->getDBBPFlag( uiAbsPartIdx ) ) … … 486 485 487 486 #if NH_3D_MLC 488 #if H_3D_VSP487 #if NH_3D_VSP 489 488 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 490 489 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 503 502 , numValidMergeCand ); 504 503 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 505 #if H_3D_VSP504 #if NH_3D_VSP 506 505 , vspFlag 507 506 #endif … … 510 509 #endif 511 510 , numValidMergeCand ); 512 #if H_3D_VSP511 #if NH_3D_VSP 513 512 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 514 513 #endif … … 523 522 524 523 #if NH_3D_MLC 525 #if H_3D_VSP524 #if NH_3D_VSP 526 525 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 527 526 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 540 539 ,numValidMergeCand, uiMergeIndex ); 541 540 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 542 #if H_3D_VSP541 #if NH_3D_VSP 543 542 , vspFlag 544 543 #endif … … 547 546 #endif 548 547 ,numValidMergeCand ); 549 #if H_3D_VSP548 #if NH_3D_VSP 550 549 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 551 550 #endif … … 564 563 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 565 564 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 566 565 #if NH_3D_VSP 566 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 ) 567 { 568 if ( uhInterDirNeighbours[ uiMergeIndex ] & (1<<uiRefListIdx) ) 569 { 570 UInt dummy; 571 Int vspSize; 572 Int width, height; 573 pcCU->getPartIndexAndSize( uiPartIdx, dummy, width, height, uiSubPartIdx, pcCU->getTotalNumPart()==256 ); 574 pcCU->setMvFieldPUForVSP( pcCU, uiSubPartIdx, width, height, RefPicList( uiRefListIdx ), cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ].getRefIdx(), vspSize ); 575 pcCU->setVSPFlag( uiSubPartIdx, vspSize ); 576 } 577 } 578 #endif 567 579 } 568 580 } -
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibEncoder/TEncCu.cpp
r1233 r1255 587 587 if( rpcTempCU->getSlice()->getSliceType() != I_SLICE ) 588 588 { 589 #if H_3D_ARP && H_3D_IV_MERGE590 if( rpcTempCU->getSlice()->getIvResPredFlag() || rpcTempCU->getSlice()->getIvMvPredFlag() )589 #if NH_3D_ARP && NH_3D_IV_MERGE && NH_3D_VSP 590 if( rpcTempCU->getSlice()->getIvResPredFlag() || rpcTempCU->getSlice()->getIvMvPredFlag() || rpcTempCU->getSlice()->getViewSynthesisPredFlag() ) 591 591 #else 592 #if NH_3D_IV_MERGE && NH_3D_VSP 593 if( rpcTempCU->getSlice()->getIvMvPredFlag() || rpcTempCU->getSlice()->getViewSynthesisPredFlag() ) 594 #else 595 #if NH_3D_ARP && NH_3D_VSP 596 if( rpcTempCU->getSlice()->getIvResPredFlag() || rpcTempCU->getSlice()->getViewSynthesisPredFlag() ) 597 #else 598 #if NH_3D_VSP 599 if( rpcTempCU->getSlice()->getViewSynthesisPredFlag() ) 600 #else 592 601 #if H_3D_ARP 593 602 if( rpcTempCU->getSlice()->getVPS()->getUseAdvRP(rpcTempCU->getSlice()->getLayerId()) ) … … 597 606 #else 598 607 if (0) 608 #endif 609 #endif 610 #endif 599 611 #endif 600 612 #endif … … 659 671 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );//by Competition for inter_2Nx2N 660 672 #endif 661 #if H_3D_VSP662 673 #if NH_3D_VSP 674 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 663 675 #endif 664 676 } … … 673 685 674 686 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 675 #if H_3D_VSP676 687 #if NH_3D_VSP 688 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 677 689 #endif 678 690 … … 690 702 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 691 703 #endif 692 #if H_3D_VSP693 704 #if NH_3D_VSP 705 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 694 706 #endif 695 707 #if H_3D_DBBP … … 698 710 xCheckRDCostInterDBBP( rpcBestCU, rpcTempCU, false ); 699 711 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 700 #if H_3D_VSP712 #if NH_3D_VSP 701 713 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 702 714 #endif … … 780 792 #endif 781 793 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 782 #if H_3D_VSP783 794 #if NH_3D_VSP 795 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 784 796 #endif 785 797 … … 799 811 #endif 800 812 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 801 #if H_3D_VSP813 #if NH_3D_VSP 802 814 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 803 815 #endif … … 822 834 823 835 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 824 #if H_3D_VSP836 #if NH_3D_VSP 825 837 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 826 838 #endif … … 861 873 #endif 862 874 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 863 #if H_3D_VSP875 #if NH_3D_VSP 864 876 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 865 877 #endif … … 882 894 883 895 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 884 #if H_3D_VSP896 #if NH_3D_VSP 885 897 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 886 898 #endif … … 909 921 910 922 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 911 #if H_3D_VSP923 #if NH_3D_VSP 912 924 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 913 925 #endif … … 929 941 #endif 930 942 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 931 #if H_3D_VSP943 #if NH_3D_VSP 932 944 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 933 945 #endif … … 957 969 958 970 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 959 #if H_3D_VSP971 #if NH_3D_VSP 960 972 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 961 973 #endif … … 977 989 #endif 978 990 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 979 #if H_3D_VSP991 #if NH_3D_VSP 980 992 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 981 993 #endif … … 997 1009 #endif 998 1010 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 999 #if H_3D_VSP1011 #if NH_3D_VSP 1000 1012 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1001 1013 #endif … … 1018 1030 #endif 1019 1031 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1020 #if H_3D_VSP1032 #if NH_3D_VSP 1021 1033 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1022 1034 #endif … … 1034 1046 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU ); 1035 1047 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1036 #if H_3D_VSP1037 1048 #if NH_3D_VSP 1049 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1038 1050 #endif 1039 1051 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD ); 1040 1052 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1041 #if H_3D_VSP1042 1053 #if NH_3D_VSP 1054 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1043 1055 #endif 1044 1056 #if H_3D_QTLPC … … 1049 1061 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N ); 1050 1062 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1051 #if H_3D_VSP1052 1063 #if NH_3D_VSP 1064 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1053 1065 #endif 1054 1066 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N ); 1055 1067 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1056 #if H_3D_VSP1057 1068 #if NH_3D_VSP 1069 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1058 1070 #endif 1059 1071 #if H_3D_QTLPC … … 1798 1810 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to CTU level 1799 1811 1800 #if H_3D_VSP1812 #if NH_3D_VSP 1801 1813 #if !H_3D_ARP 1802 1814 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 1803 1815 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 1804 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];1805 1816 #if NH_3D_MLC 1806 1817 rpcTempCU->initAvailableFlags(); … … 1921 1932 1922 1933 rpcTempCU->buildMCL( cMvFieldNeighbours,uhInterDirNeighbours 1923 #if H_3D_VSP1934 #if NH_3D_VSP 1924 1935 , vspFlag 1925 1936 #endif … … 1969 1980 rpcTempCU->setMergeFlagSubParts( true, 0, 0, uhDepth ); // interprets depth relative to CTU level 1970 1981 rpcTempCU->setMergeIndexSubParts( uiMergeCand, 0, 0, uhDepth ); // interprets depth relative to CTU level 1971 #if H_3D_VSP1982 #if NH_3D_VSP 1972 1983 rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth ); 1973 1984 #endif … … 1991 2002 else 1992 2003 #endif 1993 #if H_3D_VSP1994 2004 { 2005 #if NH_3D_VSP 1995 2006 if ( vspFlag[uiMergeCand] ) 1996 2007 { … … 2022 2033 { 2023 2034 #endif 2024 rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to CTU level2025 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level2026 rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level2027 #if H_3D_VSP2035 rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to CTU level 2036 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 2037 rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 2038 #if NH_3D_VSP 2028 2039 } 2029 } 2030 #endif 2040 #endif 2041 } 2031 2042 // do MC 2032 2043 m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); … … 2062 2073 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2063 2074 #endif 2064 #if H_3D_VSP // possible bug fix2075 #if NH_3D_VSP 2065 2076 if( rpcTempCU->getSkipFlag(0) ) 2066 2077 { … … 2316 2327 2317 2328 m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false DEBUG_STRING_PASS_INTO(sTest) ); 2318 #if H_3D_VSP // possible bug fix2319 2320 2321 2322 2329 #if NH_3D_VSP 2330 if( rpcTempCU->getQtRootCbf(0)==0 ) 2331 { 2332 rpcTempCU->setTrIdxSubParts(0, 0, uhDepth); 2333 } 2323 2334 #endif 2324 2335 #if NH_3D_VSO // M4 -
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibEncoder/TEncSearch.cpp
r1233 r1255 3869 3869 //! estimation of best merge coding 3870 3870 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, Distortion& ruiCost, TComMvField* cMvFieldNeighbours, UChar* uhInterDirNeighbours, Int& numValidMergeCand 3871 #if H_3D_VSP3871 #if NH_3D_VSP 3872 3872 , Int* vspFlag 3873 3873 #endif … … 3936 3936 3937 3937 pcCU->buildMCL( cMvFieldNeighbours,uhInterDirNeighbours 3938 #if H_3D_VSP3938 #if NH_3D_VSP 3939 3939 , vspFlag 3940 3940 #endif … … 3963 3963 3964 3964 pcCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 3965 #if H_3D_VSP3965 #if NH_3D_VSP 3966 3966 , vspFlag 3967 3967 #endif … … 4001 4001 4002 4002 PartSize ePartSize = pcCU->getPartitionSize( 0 ); 4003 #if H_3D_VSP4003 #if NH_3D_VSP 4004 4004 pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 4005 4005 #endif … … 4024 4024 else 4025 4025 #endif 4026 #if H_3D_VSP4026 #if NH_3D_VSP 4027 4027 #if H_3D_DBBP 4028 4028 if ( vspFlag[uiMergeCand] && !pcCU->getDBBPFlag(0) ) … … 4061 4061 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 4062 4062 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 4063 #if H_3D_VSP4063 #if NH_3D_VSP 4064 4064 } 4065 4065 #endif … … 4207 4207 4208 4208 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iRoiWidth, iRoiHeight ); 4209 #if H_3D_VSP4209 #if NH_3D_VSP 4210 4210 pcCU->setVSPFlagSubParts( 0, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr) ); 4211 4211 #endif … … 4590 4590 Distortion uiMRGCost = std::numeric_limits<Distortion>::max(); 4591 4591 4592 #if H_3D_VSP4592 #if NH_3D_VSP 4593 4593 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 4594 4594 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 4607 4607 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()]; 4608 4608 #endif 4609 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, cMvFieldNeighbours, uhInterDirNeighbours 4610 4611 #if H_3D_VSP 4609 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand 4610 #if NH_3D_VSP 4612 4611 , vspFlag 4613 4612 #endif … … 4615 4614 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 4616 4615 #endif 4617 , numValidMergeCand);4616 ); 4618 4617 4619 4618 if ( uiMRGCost < uiMECost ) … … 4622 4621 pcCU->setMergeFlagSubParts ( true, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4623 4622 pcCU->setMergeIndexSubParts( uiMRGIndex, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4624 #if H_3D_VSP4623 #if NH_3D_VSP 4625 4624 pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4626 4625 #endif … … 4648 4647 else 4649 4648 #endif 4650 #if H_3D_VSP4649 #if NH_3D_VSP 4651 4650 #if H_3D_DBBP 4652 4651 if ( vspFlag[uiMRGIndex] && !pcCU->getDBBPFlag(uiPartAddr) ) … … 4685 4684 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMRGMvField[0], ePartSize, uiPartAddr, 0, iPartIdx ); 4686 4685 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx ); 4686 #if NH_3D_VSP 4687 } 4688 #endif 4687 4689 #if H_3D 4688 4690 } … … 4704 4706 pcCU->setMergeFlagSubParts( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4705 4707 pcCU->setInterDirSubParts ( uiMEInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4706 #if H_3D_VSP4708 #if NH_3D_VSP 4707 4709 pcCU->setVSPFlagSubParts ( 0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4708 4710 pcCU->setDvInfoSubParts(OriginalDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); -
branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibEncoder/TEncSearch.h
r1200 r1255 409 409 TComMvField* cMvFieldNeighbours, 410 410 UChar* uhInterDirNeighbours, 411 #if H_3D_VSP 411 Int& numValidMergeCand 412 #if NH_3D_VSP 412 413 , Int* vspFlag 413 414 #endif … … 415 416 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP 416 417 #endif 417 Int& numValidMergeCand418 418 ); 419 419
Note: See TracChangeset for help on using the changeset viewer.