Changeset 1019 in 3DVCSoftware for branches/HTM-11.2-dev3-HHI/source/Lib/TLibEncoder
- Timestamp:
- 24 Jul 2014, 14:29:09 (10 years ago)
- Location:
- branches/HTM-11.2-dev3-HHI/source/Lib/TLibEncoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-11.2-dev3-HHI/source/Lib/TLibEncoder/TEncCu.cpp
r1014 r1019 1028 1028 // speedup for inter frames 1029 1029 if( rpcBestCU->getSlice()->getSliceType() == I_SLICE || 1030 rpcBestCU->getCbf( 0, TEXT_LUMA ) != 0 ||1031 rpcBestCU->getCbf( 0, TEXT_CHROMA_U ) != 0 ||1030 rpcBestCU->getCbf( 0, TEXT_LUMA ) != 0 || 1031 rpcBestCU->getCbf( 0, TEXT_CHROMA_U ) != 0 || 1032 1032 rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0 1033 1033 #if H_3D_DIM_ENC 1034 #if HHI_DMM4_ENC_I0066 1035 || rpcBestCU->getSlice()->getIsDepth() 1036 #else 1034 1037 || ( rpcBestCU->getSlice()->getIsDepth() && rpcBestCU->getSlice()->isIRAP() ) 1038 #endif 1035 1039 #endif 1036 1040 ) // avoid very complex intra if it is unlikely 1037 1041 { 1042 #if HHI_DMM4_ENC_I0066 1043 Bool bOnlyIVP = false; 1044 if( rpcBestCU->getSlice()->getIsDepth() && !(rpcBestCU->getSlice()->isIRAP()) && 1045 rpcBestCU->getSlice()->getSliceType() != I_SLICE && 1046 rpcBestCU->getCbf( 0, TEXT_LUMA ) == 0 && 1047 rpcBestCU->getCbf( 0, TEXT_CHROMA_U ) == 0 && 1048 rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) == 0 1049 ) 1050 { 1051 bOnlyIVP = true; 1052 } 1053 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bOnlyIVP ); 1054 #else 1038 1055 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); 1056 #endif 1039 1057 1040 1058 #if KWU_RC_MADPRED_E0227 … … 1055 1073 if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) ) 1056 1074 { 1075 #if HHI_DMM4_ENC_I0066 1076 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN, bOnlyIVP ); 1077 #else 1057 1078 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN ); 1079 #endif 1058 1080 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1059 1081 } … … 2628 2650 #endif 2629 2651 2652 #if HHI_DMM4_ENC_I0066 2653 Void TEncCu::xCheckRDCostIntra( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize, Bool bOnlyIVP ) 2654 #else 2630 2655 Void TEncCu::xCheckRDCostIntra( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ) 2656 #endif 2631 2657 { 2632 2658 UInt uiDepth = rpcTempCU->getDepth( 0 ); … … 2656 2682 m_pcPredSearch->preestChromaPredMode( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth] ); 2657 2683 } 2684 #if HHI_DMM4_ENC_I0066 2685 m_pcPredSearch ->estIntraPredQT ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, bSeparateLumaChroma, bOnlyIVP ); 2686 #else 2658 2687 m_pcPredSearch ->estIntraPredQT ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, bSeparateLumaChroma ); 2659 2688 #endif 2660 2689 m_ppcRecoYuvTemp[uiDepth]->copyToPicLuma(rpcTempCU->getPic()->getPicYuvRec(), rpcTempCU->getAddr(), rpcTempCU->getZorderIdxInCU() ); 2661 2690 -
branches/HTM-11.2-dev3-HHI/source/Lib/TLibEncoder/TEncCu.h
r983 r1019 162 162 Void xCheckRDCostSingleDepth ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 163 163 #endif 164 #if HHI_DMM4_ENC_I0066 165 Void xCheckRDCostIntra ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bOnlyIVP ); 166 #else 164 167 Void xCheckRDCostIntra ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 168 #endif 165 169 Void xCheckDQP ( TComDataCU* pcCU ); 166 170 -
branches/HTM-11.2-dev3-HHI/source/Lib/TLibEncoder/TEncSearch.cpp
r1015 r1019 2977 2977 Void 2978 2978 TEncSearch::estIntraPredQT( TComDataCU* pcCU, 2979 TComYuv* pcOrgYuv, 2980 TComYuv* pcPredYuv, 2981 TComYuv* pcResiYuv, 2982 TComYuv* pcRecoYuv, 2983 UInt& ruiDistC, 2984 Bool bLumaOnly ) 2979 TComYuv* pcOrgYuv, 2980 TComYuv* pcPredYuv, 2981 TComYuv* pcResiYuv, 2982 TComYuv* pcRecoYuv, 2983 UInt& ruiDistC, 2984 Bool bLumaOnly 2985 #if HHI_DMM4_ENC_I0066 2986 , Bool bOnlyIVP 2987 #endif 2988 ) 2985 2989 { 2986 2990 UInt uiDepth = pcCU->getDepth(0); … … 3028 3032 Int numModesForFullRD = g_aucIntraModeNumFast[ uiWidthBit ]; 3029 3033 3034 #if HHI_DMM4_ENC_I0066 3035 if( bOnlyIVP ) 3036 { 3037 numModesForFullRD = 0; 3038 } 3039 else 3040 { 3041 #endif 3030 3042 Bool doFastSearch = (numModesForFullRD != numModesAvailable); 3031 3043 if (doFastSearch) … … 3119 3131 } 3120 3132 } 3121 3133 #if HHI_DMM4_ENC_I0066 3134 } 3135 #endif 3136 3122 3137 #if H_3D_DIM 3123 3138 //===== determine set of depth intra modes to be tested ===== 3124 3139 if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight ) 3125 3140 { 3126 3141 #if HHI_DMM4_ENC_I0066 3142 #if SEPARATE_FLAG_I0085 3143 if( bOnlyIVP && m_pcEncCfg->getUseIVP() ) 3144 #else 3145 if( bOnlyIVP ) 3146 #endif 3147 { 3148 TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight ); 3149 xPredContourFromTex( pcCU, uiPartOffset, uiWidth, uiHeight, dmm4Segmentation ); 3150 3151 Pel deltaDC1 = 0; Pel deltaDC2 = 0; 3152 xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, dmm4Segmentation->getPattern(), dmm4Segmentation->getStride(), uiWidth, uiHeight, deltaDC1, deltaDC2 ); 3153 pcCU->setDimDeltaDC( DMM4_IDX, 0, uiPartOffset, deltaDC1 ); 3154 pcCU->setDimDeltaDC( DMM4_IDX, 1, uiPartOffset, deltaDC2 ); 3155 3156 #if HS_DMM_SIGNALLING_I0120 3157 uiRdModeList[ numModesForFullRD++ ] = (DMM4_IDX+DIM_OFFSET); 3158 #else 3159 uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX +DIM_OFFSET); 3160 if( deltaDC1 != 0 || deltaDC2 != 0 ) 3161 uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX+1+DIM_OFFSET); 3162 #endif 3163 dmm4Segmentation->destroy(); delete dmm4Segmentation; 3164 } 3165 else 3166 { 3167 #endif 3127 3168 #if H_3D_FAST_DEPTH_INTRA 3128 3169 Int threshold = max(((pcCU->getQP(0))>>3)-1,3); … … 3223 3264 #else 3224 3265 uiRdModeList[ numModesForFullRD++ ] = (2*dmmType +DIM_OFFSET); 3266 #if HHI_DMM4_ENC_I0066 3267 if( deltaDC1 != 0 || deltaDC2 != 0 ) 3268 #endif 3225 3269 uiRdModeList[ numModesForFullRD++ ] = (2*dmmType+1+DIM_OFFSET); 3226 3270 #endif … … 3230 3274 } 3231 3275 } 3276 #if HHI_DMM4_ENC_I0066 3277 } 3278 #endif 3232 3279 #endif 3233 3280 } -
branches/HTM-11.2-dev3-HHI/source/Lib/TLibEncoder/TEncSearch.h
r983 r1019 180 180 TComYuv* pcRecoYuv, 181 181 UInt& ruiDistC, 182 Bool bLumaOnly ); 182 Bool bLumaOnly 183 #if HHI_DMM4_ENC_I0066 184 , Bool bOnlyIVP 185 #endif 186 ); 183 187 Void estIntraPredChromaQT ( TComDataCU* pcCU, 184 188 TComYuv* pcOrgYuv,
Note: See TracChangeset for help on using the changeset viewer.