Changeset 510 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2/source/Lib/TLibEncoder/TEncSearch.cpp
- Timestamp:
- 2 Jul 2013, 21:49:16 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2/source/Lib/TLibEncoder/TEncSearch.cpp
r504 r510 3171 3171 * \returns Void 3172 3172 */ 3173 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost, TComMvField* cMvFieldNeighbours, UChar* uhInterDirNeighbours, Int& numValidMergeCand ) 3173 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost, TComMvField* cMvFieldNeighbours, UChar* uhInterDirNeighbours 3174 #if H_3D_VSP 3175 , Int* vspFlag 3176 #endif 3177 , Int& numValidMergeCand 3178 ) 3174 3179 { 3175 3180 UInt uiAbsPartIdx = 0; … … 3185 3190 if ( iPUIdx == 0 ) 3186 3191 { 3187 pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 3192 pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 3193 #if H_3D_VSP 3194 , vspFlag 3195 #endif 3196 , numValidMergeCand 3197 ); 3188 3198 } 3189 3199 pcCU->setPartSizeSubParts( partSize, 0, uiDepth ); … … 3191 3201 else 3192 3202 { 3193 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 3203 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours 3204 #if H_3D_VSP 3205 , vspFlag 3206 #endif 3207 , numValidMergeCand 3208 ); 3194 3209 } 3195 3210 xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); … … 3206 3221 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3207 3222 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3223 3224 #if H_3D_VSP 3225 pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3226 #endif 3208 3227 3209 3228 xGetInterPredictionError( pcCU, pcYuvOrg, iPUIdx, uiCostCand, m_pcEncCfg->getUseHADME() ); … … 3362 3381 3363 3382 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iRoiWidth, iRoiHeight ); 3383 3384 #if H_3D_VSP 3385 pcCU->setVSPFlagSubParts( 0, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr) ); 3386 #endif 3364 3387 3365 3388 #if AMP_MRG … … 3965 3988 // find Merge result 3966 3989 UInt uiMRGCost = MAX_UINT; 3967 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 3990 #if H_3D_VSP 3991 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 3992 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 3993 #endif 3994 3995 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, cMvFieldNeighbours, uhInterDirNeighbours 3996 #if H_3D_VSP 3997 , vspFlag 3998 #endif 3999 , numValidMergeCand 4000 ); 3968 4001 if ( uiMRGCost < uiMECost ) 3969 4002 { … … 3971 4004 pcCU->setMergeFlagSubParts ( true, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3972 4005 pcCU->setMergeIndexSubParts( uiMRGIndex, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4006 #if H_3D_VSP 4007 pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4008 #endif 3973 4009 pcCU->setInterDirSubParts ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3974 4010 { … … 3990 4026 pcCU->setMergeFlagSubParts( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 3991 4027 pcCU->setInterDirSubParts ( uiMEInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4028 #if H_3D_VSP 4029 pcCU->setVSPFlagSubParts ( 0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4030 #endif 3992 4031 { 3993 4032 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMEMvField[0], ePartSize, uiPartAddr, 0, iPartIdx );
Note: See TracChangeset for help on using the changeset viewer.