Changeset 1074 in 3DVCSoftware for branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncSearch.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/TLibEncoder/TEncSearch.cpp
r1066 r1074 915 915 } 916 916 m_pcEntropyCoder->encodeSkipFlag( pcCU, 0, true ); 917 #if MTK_SINGLE_DEPTH_MODE_I0095917 #if H_3D_SINGLE_DEPTH 918 918 m_pcEntropyCoder->encodeSingleDepthMode(pcCU, 0, true ); 919 919 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) … … 921 921 m_pcEntropyCoder->encodePredMode( pcCU, 0, true ); 922 922 } 923 #if MTK_SINGLE_DEPTH_MODE_I0095923 #if H_3D_SINGLE_DEPTH 924 924 else 925 925 { … … 927 927 } 928 928 #endif 929 #if MTK_SINGLE_DEPTH_MODE_I0095929 #if H_3D_SINGLE_DEPTH 930 930 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) 931 931 { … … 945 945 } 946 946 } 947 #if MTK_SINGLE_DEPTH_MODE_I0095948 } 949 #endif 950 } 951 #if MTK_SINGLE_DEPTH_MODE_I0095947 #if H_3D_SINGLE_DEPTH 948 } 949 #endif 950 } 951 #if H_3D_SINGLE_DEPTH 952 952 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) 953 953 { … … 995 995 } 996 996 } 997 #if MTK_SINGLE_DEPTH_MODE_I0095997 #if H_3D_SINGLE_DEPTH 998 998 } 999 999 #endif … … 1859 1859 dRDCost += dSingleCost; 1860 1860 } 1861 #if MTK_SINGLE_DEPTH_MODE_I00951861 #if H_3D_SINGLE_DEPTH 1862 1862 Void TEncSearch::xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel *DepthNeighbor ) 1863 1863 { … … 1970 1970 UInt dimType = getDimType ( uiLumaPredMode ); 1971 1971 UInt patternID = pcCU->getDmmWedgeTabIdx(dimType, uiAbsPartIdx); 1972 #if SHARP_DMM1_I01101973 1972 UInt uiBaseWidth = pcCU->isDMM1UpscaleMode(uiWidth) ? pcCU->getDMM1BasePatternWidth(uiWidth) : uiWidth; 1974 1973 if ( patternID >= g_dmmWedgeLists[g_aucConvertToBit[uiBaseWidth]].size() && dimType == DMM1_IDX ) 1975 #else 1976 if ( patternID >= g_dmmWedgeLists[g_aucConvertToBit[uiWidth]].size() && dimType == DMM1_IDX ) 1977 #endif 1978 { 1979 #if SHARP_DMM1_I0110 1974 { 1980 1975 if (g_aucConvertToBit[uiBaseWidth] == 2) // Encoder method. Avoid DMM1 pattern list index exceeds the maximum DMM1 pattern number when SDC split is used. 1981 #else1982 if (g_aucConvertToBit[uiWidth] == 2) // Encoder method. Avoid DMM1 pattern list index exceeds the maximum DMM1 pattern number when SDC split is used.1983 #endif1984 1976 { 1985 1977 patternID = 1349; // Split 32x32 to 16x16. 1349: Maximum DMM1 pattern number when block size is 16x16 … … 2043 2035 Int uiTabIdx = pcCU->getDmmWedgeTabIdx(DMM1_IDX, uiAbsPartIdx); 2044 2036 2045 #if SHARP_DMM1_I01102046 2037 WedgeList* pacWedgeList = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])]; 2047 #else2048 WedgeList* pacWedgeList = &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];2049 #endif2050 2038 TComWedgelet* pcWedgelet = &(pacWedgeList->at( uiTabIdx )); 2051 2039 2052 2040 uiNumSegments = 2; 2053 #if SHARP_DMM1_I01102054 2041 pbMask = pcCU->isDMM1UpscaleMode( uiWidth ) ? pcWedgelet->getScaledPattern( uiWidth ) : pcWedgelet->getPattern(); 2055 2042 uiMaskStride = pcCU->isDMM1UpscaleMode( uiWidth ) ? uiWidth : pcWedgelet->getStride(); 2056 #else2057 pbMask = pcWedgelet->getPattern();2058 uiMaskStride = pcWedgelet->getStride();2059 #endif2060 2043 } 2061 2044 if( getDimType( uiLumaPredMode ) == DMM4_IDX ) … … 2878 2861 pcCU->setChromIntraDirSubParts( uiBestMode, 0, pcCU->getDepth( 0 ) ); 2879 2862 } 2880 #if MTK_SINGLE_DEPTH_MODE_I00952863 #if H_3D_SINGLE_DEPTH 2881 2864 Void 2882 2865 TEncSearch::estIntraPredSingleDepth( TComDataCU* pcCU, … … 2900 2883 Pel DepthNeighbours[5]; 2901 2884 //construction of depth candidates 2902 for( Int i = 0; (i < 5) && (index< MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE) ; i++ )2885 for( Int i = 0; (i < 5) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ ) 2903 2886 { 2904 2887 if(!pcCU->getNeighDepth (0, 0, &testDepth, i)) … … 2983 2966 UInt& ruiDistC, 2984 2967 Bool bLumaOnly 2985 #if H HI_DMM4_ENC_I00662968 #if H_3D_DIM 2986 2969 , Bool bOnlyIVP 2987 2970 #endif … … 3032 3015 Int numModesForFullRD = g_aucIntraModeNumFast[ uiWidthBit ]; 3033 3016 3034 #if H HI_DMM4_ENC_I00663017 #if H_3D_DIM 3035 3018 if( bOnlyIVP ) 3036 3019 { … … 3080 3063 UInt iModeBits = xModeBitsIntra( pcCU, uiMode, uiPU, uiPartOffset, uiDepth, uiInitTrDepth ); 3081 3064 #if H_3D_VSO // M35 3082 #if H_3D_VSO_FIX // This fix should be enabled after verification3083 3065 Double dLambda; 3084 3066 if ( m_pcRdCost->getUseLambdaScaleVSO() ) … … 3092 3074 3093 3075 Double cost = (Double)uiSad + (Double)iModeBits * dLambda; 3094 #else3095 Double cost = (Double)uiSad + (Double)iModeBits * m_pcRdCost->getSqrtLambda();3096 #endif3097 3076 #else 3098 3077 Double cost = (Double)uiSad + (Double)iModeBits * m_pcRdCost->getSqrtLambda(); … … 3135 3114 } 3136 3115 } 3137 #if H HI_DMM4_ENC_I00663116 #if H_3D_DIM 3138 3117 } 3139 3118 #endif … … 3143 3122 if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight ) 3144 3123 { 3145 #if HHI_DMM4_ENC_I00663146 #if SEPARATE_FLAG_I00853147 3124 if( bOnlyIVP && m_pcEncCfg->getUseIVP() ) 3148 #else3149 if( bOnlyIVP )3150 #endif3151 3125 { 3152 3126 TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight ); … … 3158 3132 pcCU->setDimDeltaDC( DMM4_IDX, 1, uiPartOffset, deltaDC2 ); 3159 3133 3160 #if HS_DMM_SIGNALLING_I01203161 3134 uiRdModeList[ numModesForFullRD++ ] = (DMM4_IDX+DIM_OFFSET); 3162 #else3163 uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX +DIM_OFFSET);3164 if( deltaDC1 != 0 || deltaDC2 != 0 )3165 uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX+1+DIM_OFFSET);3166 #endif3167 3135 dmm4Segmentation->destroy(); delete dmm4Segmentation; 3168 3136 } 3169 3137 else 3170 3138 { 3171 #endif3172 3139 #if H_3D_FAST_DEPTH_INTRA 3173 3140 Int threshold = max(((pcCU->getQP(0))>>3)-1,3); … … 3177 3144 3178 3145 #if H_3D_DIM_DMM 3179 #if SEPARATE_FLAG_I00853180 3146 if( ( m_pcEncCfg->getUseDMM() || m_pcEncCfg->getUseIVP() ) 3181 #else3182 if( m_pcEncCfg->getUseDMM()3183 #endif3184 3147 #if H_3D_FAST_DEPTH_INTRA 3185 3148 && (uiRdModeList[0] != PLANAR_IDX || varCU >= varThreshold) … … 3187 3150 ) 3188 3151 { 3189 #if SEPARATE_FLAG_I00853190 3152 UInt uiStart, uiEnd; 3191 3153 if( m_pcEncCfg->getUseDMM() && m_pcEncCfg->getUseIVP() ) … … 3210 3172 } 3211 3173 for( UInt dmmType = uiStart; dmmType < uiEnd; dmmType++ ) 3212 #else3213 for( UInt dmmType = 0; dmmType < DMM_NUM_TYPE; dmmType++ )3214 #endif3215 3174 { 3216 3175 #if H_3D_FCO 3217 3176 TComPic* picTexture = pcCU->getSlice()->getIvPic(false, pcCU->getSlice()->getViewIndex() ); 3218 #if LGE_FCO_I01163177 #if H_3D_FCO 3219 3178 if ( !picTexture->getReconMark() && (DMM4_IDX == dmmType ) ) 3220 3179 #else … … 3234 3193 xSearchDmm1Wedge( pcCU, uiPartOffset, piOrg, uiStride, uiWidth, uiHeight, uiTabIdx ); 3235 3194 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dmmType, uiPartOffset, uiDepth + uiInitTrDepth ); 3236 #if SHARP_DMM1_I01103237 3195 biSegmentation = pcCU->isDMM1UpscaleMode( uiWidth ) ? 3238 3196 &(g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])][uiTabIdx]) : &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]); 3239 #else3240 biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);3241 #endif3242 3197 } break; 3243 3198 … … 3254 3209 if( biSegmentation ) 3255 3210 { 3256 #if SHARP_DMM1_I01103257 3211 if( dmmType == DMM1_IDX && pcCU->isDMM1UpscaleMode( uiWidth ) ){ 3258 3212 xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getScaledPattern(uiWidth), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 ); … … 3262 3216 xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getPattern(), biSegmentation->getStride(), uiWidth, uiHeight, deltaDC1, deltaDC2 ); 3263 3217 } 3264 #else3265 xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getPattern(), biSegmentation->getStride(), uiWidth, uiHeight, deltaDC1, deltaDC2 );3266 #endif3267 3218 pcCU->setDimDeltaDC( dmmType, 0, uiPartOffset, deltaDC1 ); 3268 3219 pcCU->setDimDeltaDC( dmmType, 1, uiPartOffset, deltaDC2 ); 3269 3220 3270 #if HS_DMM_SIGNALLING_I01203271 3221 uiRdModeList[ numModesForFullRD++ ] = (dmmType +DIM_OFFSET); 3272 #else3273 uiRdModeList[ numModesForFullRD++ ] = (2*dmmType +DIM_OFFSET);3274 #if HHI_DMM4_ENC_I00663275 if( deltaDC1 != 0 || deltaDC2 != 0 )3276 #endif3277 uiRdModeList[ numModesForFullRD++ ] = (2*dmmType+1+DIM_OFFSET);3278 #endif3279 3280 3222 if( DMM4_IDX == dmmType ) { biSegmentation->destroy(); delete biSegmentation; } 3281 3223 } 3282 3224 } 3283 3225 } 3284 #if H HI_DMM4_ENC_I00663226 #if H_3D_DIM 3285 3227 } 3286 3228 #endif … … 3295 3237 3296 3238 UInt uiBestPUMode = 0; 3297 #if SCU_HS_FAST_INTRA_SDC_I01233239 #if H_3D_FAST_INTRA_SDC 3298 3240 UInt uiBestPUModeConv = 0; 3299 3241 UInt uiSecondBestPUModeConv = 0; … … 3309 3251 Double dBestPUCost = MAX_DOUBLE; 3310 3252 3311 #if SCU_HS_FAST_INTRA_SDC_I01233253 #if H_3D_FAST_INTRA_SDC 3312 3254 Double dBestPUCostConv = MAX_DOUBLE; 3313 3255 UInt varCU = m_pcRdCost->calcVAR(piOrg, uiStride, uiWidth,uiHeight,pcCU->getDepth(0)); … … 3319 3261 Pel apBestDCOffsets[2] = {0,0}; 3320 3262 #endif 3321 #if SCU_HS_FAST_INTRA_SDC_I01233263 #if H_3D_FAST_INTRA_SDC 3322 3264 for( UInt uiMode = 0; uiMode < numModesForFullRD + rdSDC; uiMode++ ) 3323 3265 #else … … 3326 3268 { 3327 3269 // set luma prediction mode 3328 #if ! SCU_HS_FAST_INTRA_SDC_I01233270 #if !H_3D_FAST_INTRA_SDC 3329 3271 UInt uiOrgMode = uiRdModeList[uiMode]; 3330 3272 #endif 3331 3273 3332 #if SCU_HS_FAST_INTRA_SDC_I01233274 #if H_3D_FAST_INTRA_SDC 3333 3275 UInt uiOrgMode; 3334 3276 if (uiMode < numModesForFullRD) … … 3356 3298 3357 3299 #if H_3D_DIM_SDC 3358 #if SCU_HS_FAST_INTRA_SDC_I01233300 #if H_3D_FAST_INTRA_SDC 3359 3301 Bool bTestSDC = ( m_pcEncCfg->getUseSDC() && pcCU->getSDCAvailable(uiPartOffset) && uiMode >= numModesForFullRD); 3360 3302 #else … … 3364 3306 for( UInt uiSDC=0; uiSDC<=(bTestSDC?1:0); uiSDC++ ) 3365 3307 { 3366 #if SCU_HS_FAST_INTRA_SDC_I01233308 #if H_3D_FAST_INTRA_SDC 3367 3309 if (!uiSDC && uiMode >= numModesForFullRD) continue; 3368 3310 #endif 3369 3311 pcCU->setSDCFlagSubParts( (uiSDC != 0), uiPartOffset, uiDepth + uiInitTrDepth ); 3370 #if FAST_SDC_OFFSET_DECISION_I00843371 3312 Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE}; 3372 3313 for( Int iOffset = 1; iOffset <= 5; iOffset++ ) 3373 #else 3374 for( Int iSDCDeltaResi = -2; iSDCDeltaResi <= 2; iSDCDeltaResi++ ) 3375 #endif 3376 { 3377 #if FAST_SDC_OFFSET_DECISION_I0084 3314 { 3378 3315 Int iSDCDeltaResi = 0; 3379 3316 if(iOffset % 2 == 0) … … 3385 3322 iSDCDeltaResi = -1 * (iOffset >> 1); 3386 3323 } 3387 #endif3388 3324 if( ( uiSDC == 0 ) && iSDCDeltaResi != 0 ) 3389 3325 { 3390 3326 continue; 3391 3327 } 3392 #if FAST_SDC_OFFSET_DECISION_I00843393 3328 if( iOffset > 3) 3394 3329 { … … 3407 3342 } 3408 3343 #endif 3409 #endif3410 3344 3411 3345 #if H_3D_DIM_ENC || H_3D_DIM_SDC … … 3452 3386 // start encoding with SDC 3453 3387 xIntraCodingSDC(pcCU, uiPartOffset, pcOrgYuv, pcPredYuv, uiPUDistY, dPUCost, ( testZeroResi != 0 ), iSDCDeltaResi ); 3454 #if FAST_SDC_OFFSET_DECISION_I00843455 3388 if ( testZeroResi == 0 && iOffset <= 3 ) 3456 3389 { 3457 3390 dOffsetCost [iOffset -1] = dPUCost; 3458 3391 } 3459 #endif3460 3392 } 3461 3393 else … … 3465 3397 #if H_3D_DIM_ENC 3466 3398 xRecurIntraCodingQT( pcCU, uiInitTrDepth, uiPartOffset, bLumaOnly, pcOrgYuv, pcPredYuv, pcResiYuv, uiPUDistY, uiPUDistC, true, dPUCost, (testZeroResi != 0) ); 3467 #if SCU_HS_FAST_INTRA_SDC_I01233399 #if H_3D_FAST_INTRA_SDC 3468 3400 if( dPUCost < dBestPUCostConv ) 3469 3401 { … … 4017 3949 #if H_3D_VSP 4018 3950 , Int* vspFlag 4019 #if !FIX_TICKET_794020 , InheritedVSPDisInfo* inheritedVSPDisInfo4021 #endif4022 3951 #endif 4023 3952 #if H_3D_SPIVMP … … 4079 4008 pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand); 4080 4009 pcCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 4081 #if H_3D_VSP && !FIX_TICKET_794082 , inheritedVSPDisInfo4083 #endif4084 4010 #if H_3D_SPIVMP 4085 4011 , pcMvFieldSP, puhInterDirSP … … 4109 4035 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand); 4110 4036 pcCU->xGetInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours 4111 #if H_3D_VSP && !FIX_TICKET_794112 , inheritedVSPDisInfo4113 #endif4114 4037 #if H_3D_SPIVMP 4115 4038 , pcMvFieldSP, puhInterDirSP … … 4132 4055 #endif 4133 4056 } 4134 #if H_3D_VSP && !FIX_TICKET_754135 xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours,vspFlag, numValidMergeCand );4136 #else4137 4057 xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 4138 #endif4139 4058 4140 4059 #if H_3D_DBBP … … 4164 4083 #if H_3D_VSP 4165 4084 pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 4166 #if !FIX_TICKET_794167 pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );4168 #endif4169 4085 #endif 4170 4086 … … 4266 4182 * \returns Void 4267 4183 */ 4268 #if H_3D_VSP && !FIX_TICKET_754269 Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int* vspFlag, Int numValidMergeCand )4270 #else4271 4184 Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int numValidMergeCand ) 4272 #endif4273 4185 { 4274 4186 if ( pcCU->isBipredRestriction(puIdx) ) … … 4276 4188 for( UInt mergeCand = 0; mergeCand < numValidMergeCand; ++mergeCand ) 4277 4189 { 4278 #if H_3D_VSP && !FIX_TICKET_754279 if ( (interDirNeighbours[mergeCand] == 3) && (vspFlag[mergeCand] == false) )4280 #else4281 4190 if ( interDirNeighbours[mergeCand] == 3 ) 4282 #endif4283 4191 { 4284 4192 interDirNeighbours[mergeCand] = 1; … … 4902 4810 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 4903 4811 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 4904 #if !FIX_TICKET_794905 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];4906 #endif4907 4812 UInt uiAbsPartIdx = 0; 4908 4813 Int iWidth = 0; … … 4922 4827 #if H_3D_VSP 4923 4828 , vspFlag 4924 #if !FIX_TICKET_794925 , inheritedVSPDisInfo4926 #endif4927 4829 #endif 4928 4830 #if H_3D_SPIVMP … … 4938 4840 #if H_3D_VSP 4939 4841 pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4940 #if !FIX_TICKET_794941 pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );4942 #endif4943 4842 #endif 4944 4843 #if H_3D_DDD … … 7388 7287 } 7389 7288 m_pcEntropyCoder->encodeSkipFlag ( pcCU, 0, true ); 7390 #if MTK_SINGLE_DEPTH_MODE_I00957289 #if H_3D_SINGLE_DEPTH 7391 7290 m_pcEntropyCoder->encodeSingleDepthMode ( pcCU, 0, true ); 7392 7291 #endif … … 7845 7744 7846 7745 Pel refDC1 = 0; Pel refDC2 = 0; 7847 #if SHARP_DMM1_I01107848 7746 WedgeList* pacWedgeList = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])]; 7849 7747 WedgeNodeList* pacWedgeNodeList = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeNodeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeNodeLists[(g_aucConvertToBit[uiWidth])]; 7850 #else7851 WedgeList* pacWedgeList = &g_dmmWedgeLists [(g_aucConvertToBit[uiWidth])];7852 WedgeNodeList* pacWedgeNodeList = &g_dmmWedgeNodeLists[(g_aucConvertToBit[uiWidth])];7853 #endif7854 7748 7855 7749 // coarse wedge search … … 7859 7753 { 7860 7754 TComWedgelet* pcWedgelet = &(pacWedgeList->at(pacWedgeNodeList->at(uiNodeId).getPatternIdx())); 7861 #if SHARP_DMM1_I01107862 7755 Bool *pbPattern = pcCU->isDMM1UpscaleMode(uiWidth) ? pcWedgelet->getScaledPattern(uiWidth) : pcWedgelet->getPattern(); 7863 7756 UInt uiStride = pcCU->isDMM1UpscaleMode(uiWidth) ? uiWidth : pcWedgelet->getStride(); 7864 7757 xCalcBiSegDCs ( piRef, uiRefStride, pbPattern, uiStride, refDC1, refDC2 ); 7865 7758 xAssignBiSegDCs( piPred, uiPredStride, pbPattern, uiStride, refDC1, refDC2 ); 7866 #else7867 xCalcBiSegDCs ( piRef, uiRefStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );7868 xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );7869 #endif7870 7759 7871 7760 Dist uiActDist = RDO_DIST_MAX; … … 7903 7792 { 7904 7793 TComWedgelet* pcWedgelet = &(pacWedgeList->at(pacWedgeNodeList->at(uiBestNodeId).getRefineIdx( uiRefId ))); 7905 #if SHARP_DMM1_I01107906 7794 Bool *pbPattern = pcCU->isDMM1UpscaleMode(uiWidth) ? pcWedgelet->getScaledPattern(uiWidth) : pcWedgelet->getPattern(); 7907 7795 UInt uiStride = pcCU->isDMM1UpscaleMode(uiWidth) ? uiWidth : pcWedgelet->getStride(); 7908 7796 xCalcBiSegDCs ( piRef, uiRefStride, pbPattern, uiStride, refDC1, refDC2 ); 7909 7797 xAssignBiSegDCs( piPred, uiPredStride, pbPattern, uiStride, refDC1, refDC2 ); 7910 #else7911 xCalcBiSegDCs ( piRef, uiRefStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );7912 xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );7913 #endif7914 7798 Dist uiActDist = RDO_DIST_MAX; 7915 7799 #if H_3D_VSO
Note: See TracChangeset for help on using the changeset viewer.