Ticket #1418: IBCcheck.patch
File IBCcheck.patch, 3.8 KB (added by Vadim, 9 years ago) |
---|
-
Lib/TLibCommon/TypeDef.h
45 45 #include <vector> 46 46 #include <cstdlib> 47 47 48 #define IBC_BUGFIX 1 49 48 50 //! \ingroup TLibCommon 49 51 //! \{ 50 52 -
Lib/TLibEncoder/TEncCu.cpp
2342 2342 2343 2343 #if AMP_MRG 2344 2344 rpcTempCU->setMergeAMP (true); 2345 #if IBC_BUGFIX 2346 Bool valid = 2347 #endif 2345 2348 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] DEBUG_STRING_PASS_INTO(sTest), false, bUseMRG, iMVCandList ); 2346 2349 #else 2347 2350 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], false, iMVCandList ); 2348 2351 #endif 2349 2352 2353 #if IBC_BUGFIX 2354 if( !valid ) 2355 { 2356 return; 2357 } 2358 #endif 2359 2350 2360 #if AMP_MRG 2351 2361 if ( !rpcTempCU->getMergeAMP() ) 2352 2362 { -
Lib/TLibEncoder/TEncSearch.cpp
6474 6474 6475 6475 //! search of the best candidate for inter prediction 6476 6476 #if AMP_MRG 6477 #if IBC_BUGFIX 6478 Bool TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, TComYuv* pcResiYuv, TComYuv* pcRecoYuv DEBUG_STRING_FN_DECLARE(sDebug), Bool bUseRes, Bool bUseMRG, TComMv* iMVCandList ) 6479 #else 6477 6480 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, TComYuv* pcResiYuv, TComYuv* pcRecoYuv DEBUG_STRING_FN_DECLARE(sDebug), Bool bUseRes, Bool bUseMRG, TComMv* iMVCandList ) 6481 #endif 6478 6482 #else 6479 6483 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, TComYuv* pcResiYuv, TComYuv* pcRecoYuv, Bool bUseRes, TComMv* iMVCandList ) 6480 6484 #endif … … 7024 7028 pcCU->setMVPIdxSubParts( -1, REF_PIC_LIST_1, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr)); 7025 7029 pcCU->setMVPNumSubParts( -1, REF_PIC_LIST_1, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr)); 7026 7030 } 7031 #if IBC_BUGFIX 7032 else if( uiMECost < std::numeric_limits<Distortion>::max() ) 7033 #else 7027 7034 else 7035 #endif 7028 7036 { 7029 7037 // set ME result 7030 7038 pcCU->setMergeFlagSubParts( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); … … 7032 7040 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMEMvField[0], ePartSize, uiPartAddr, 0, iPartIdx ); 7033 7041 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMEMvField[1], ePartSize, uiPartAddr, 0, iPartIdx ); 7034 7042 } 7043 #if IBC_BUGFIX 7044 else 7045 { 7046 return false; 7047 } 7048 #endif 7035 7049 } 7036 7050 7037 7051 // MC … … 7041 7055 7042 7056 setWpScalingDistParam( pcCU, -1, REF_PIC_LIST_X ); 7043 7057 7058 #if IBC_BUGFIX 7059 return true; 7060 #else 7044 7061 return; 7062 #endif 7045 7063 } 7046 7064 7047 7065 Bool TEncSearch::isBlockVectorValid( Int xPos, Int yPos, Int width, Int height, TComDataCU *pcCU, UInt uiAbsPartIdx, -
Lib/TLibEncoder/TEncSearch.h
282 282 ); 283 283 284 284 /// encoder estimation - inter prediction (non-skip) 285 #if IBC_BUGFIX 286 Bool predInterSearch ( TComDataCU* pcCU, 287 #else 285 288 Void predInterSearch ( TComDataCU* pcCU, 289 #endif 286 290 TComYuv* pcOrgYuv, 287 291 TComYuv* pcPredYuv, 288 292 TComYuv* pcResiYuv,