Changeset 993 in 3DVCSoftware for branches/HTM-11.2-dev3-HiSilicon
- Timestamp:
- 15 Jul 2014, 15:32:14 (10 years ago)
- Location:
- branches/HTM-11.2-dev3-HiSilicon
- Files:
-
- 5 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibCommon/TypeDef.h
r983 r993 242 242 #define H_3D_FCO 0 // Flexible coding order for 3D 243 243 244 244 #define SCU_HS_FAST_INTRA_SDC_I0123 1 245 245 246 246 // OTHERS -
branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibEncoder/TEncSearch.cpp
r983 r993 3174 3174 3175 3175 UInt uiBestPUMode = 0; 3176 #if SCU_HS_FAST_INTRA_SDC_I0123 3177 UInt uiBestPUModeConv = 0; 3178 UInt uiSecondBestPUModeConv = 0; 3179 UInt uiThirdBestPUModeConv = 0; 3180 #endif 3181 3176 3182 #if H_3D_VSO 3177 3183 Dist uiBestPUDistY = 0; … … 3181 3187 UInt uiBestPUDistC = 0; 3182 3188 Double dBestPUCost = MAX_DOUBLE; 3189 3190 #if SCU_HS_FAST_INTRA_SDC_I0123 3191 Double dBestPUCostConv = MAX_DOUBLE; 3192 UInt varCU = m_pcRdCost->calcVAR(piOrg, uiStride, uiWidth,uiHeight,pcCU->getDepth(0)); 3193 UInt rdSDC = m_pcEncCfg->getIsDepth() ? numModesForFullRD : 0; 3194 #endif 3195 3183 3196 #if H_3D_DIM_SDC 3184 3197 Bool bBestUseSDC = false; 3185 3198 Pel apBestDCOffsets[2] = {0,0}; 3186 3199 #endif 3200 #if SCU_HS_FAST_INTRA_SDC_I0123 3201 for( UInt uiMode = 0; uiMode < numModesForFullRD + rdSDC; uiMode++ ) 3202 #else 3187 3203 for( UInt uiMode = 0; uiMode < numModesForFullRD; uiMode++ ) 3204 #endif 3188 3205 { 3189 3206 // set luma prediction mode 3190 UInt uiOrgMode = uiRdModeList[uiMode]; 3207 #if !SCU_HS_FAST_INTRA_SDC_I0123 3208 UInt uiOrgMode = uiRdModeList[uiMode]; 3209 #endif 3191 3210 3211 #if SCU_HS_FAST_INTRA_SDC_I0123 3212 UInt uiOrgMode; 3213 if (uiMode < numModesForFullRD) 3214 { 3215 uiOrgMode = uiRdModeList[uiMode]; 3216 } 3217 else 3218 { 3219 uiOrgMode = uiRdModeList[uiMode - numModesForFullRD]; 3220 3221 if (uiBestPUModeConv <= 1 ) 3222 { 3223 if (uiOrgMode > 1 && varCU < 1) continue; 3224 } 3225 else 3226 { 3227 if (uiOrgMode != uiBestPUModeConv && uiOrgMode != uiSecondBestPUModeConv && uiOrgMode != uiThirdBestPUModeConv 3228 && uiOrgMode > 1 && uiOrgMode < NUM_INTRA_MODE && varCU < 4) 3229 continue; 3230 } 3231 } 3232 #endif 3233 3192 3234 pcCU->setLumaIntraDirSubParts ( uiOrgMode, uiPartOffset, uiDepth + uiInitTrDepth ); 3193 3235 3194 3236 #if H_3D_DIM_SDC 3237 #if SCU_HS_FAST_INTRA_SDC_I0123 3238 Bool bTestSDC = ( m_pcEncCfg->getUseSDC() && pcCU->getSDCAvailable(uiPartOffset) && uiMode >= numModesForFullRD); 3239 #else 3195 3240 Bool bTestSDC = ( m_pcEncCfg->getUseSDC() && pcCU->getSDCAvailable(uiPartOffset) ); 3241 #endif 3196 3242 3197 3243 for( UInt uiSDC=0; uiSDC<=(bTestSDC?1:0); uiSDC++ ) 3198 3244 { 3245 #if SCU_HS_FAST_INTRA_SDC_I0123 3246 if (!uiSDC && uiMode >= numModesForFullRD) continue; 3247 #endif 3199 3248 pcCU->setSDCFlagSubParts( (uiSDC != 0), uiPartOffset, uiDepth + uiInitTrDepth ); 3200 3249 for( Int iSDCDeltaResi = -2; iSDCDeltaResi <= 2; iSDCDeltaResi++ ) … … 3256 3305 #if H_3D_DIM_ENC 3257 3306 xRecurIntraCodingQT( pcCU, uiInitTrDepth, uiPartOffset, bLumaOnly, pcOrgYuv, pcPredYuv, pcResiYuv, uiPUDistY, uiPUDistC, true, dPUCost, (testZeroResi != 0) ); 3307 #if SCU_HS_FAST_INTRA_SDC_I0123 3308 if( dPUCost < dBestPUCostConv ) 3309 { 3310 uiThirdBestPUModeConv = uiSecondBestPUModeConv; 3311 uiSecondBestPUModeConv = uiBestPUModeConv; 3312 uiBestPUModeConv = uiOrgMode; 3313 dBestPUCostConv = dPUCost; 3314 } 3315 #endif 3258 3316 #else 3259 3317 xRecurIntraCodingQT( pcCU, uiInitTrDepth, uiPartOffset, bLumaOnly, pcOrgYuv, pcPredYuv, pcResiYuv, uiPUDistY, uiPUDistC, true, dPUCost );
Note: See TracChangeset for help on using the changeset viewer.