diff --git a/source/Lib/CommonLib/IntraPrediction.cpp b/source/Lib/CommonLib/IntraPrediction.cpp index db1837d0edd9d2e387330cac6c65e7e7a1e6a795..8c7b71cbeb0c7119514631c41b0d9f9e3882ff0e 100644 --- a/source/Lib/CommonLib/IntraPrediction.cpp +++ b/source/Lib/CommonLib/IntraPrediction.cpp @@ -710,8 +710,8 @@ void IntraPrediction::xPredIntraAng( const CPelBuf &pSrc, PelBuf &pDst, const Ch if (wT + wL == 0) break; int c = x + y + 1; - const Pel left = refSide[c + 1]; - const Pel top = refMain[c + 1]; + const Pel left = (wL != 0) ? refSide[c + 1] : 0; + const Pel top = (wT != 0) ? refMain[c + 1] : 0; pDsty[x] = ClipPel((wL * left + wT * top + (64 - wL - wT) * pDsty[x] + 32) >> 6, clpRng); } diff --git a/source/Lib/CommonLib/version.h b/source/Lib/CommonLib/version.h index 86d5a1c759b6808ef05da551b23d57575304bce3..700d834e9cf63cc7750e0040970b1935eee7689e 100644 --- a/source/Lib/CommonLib/version.h +++ b/source/Lib/CommonLib/version.h @@ -1,3 +1,3 @@ #if ! defined( NEXT_SOFTWARE_VERSION ) -#define NEXT_SOFTWARE_VERSION "2.0" +#define NEXT_SOFTWARE_VERSION "2.0.1" #endif diff --git a/source/Lib/EncoderLib/InterSearch.cpp b/source/Lib/EncoderLib/InterSearch.cpp index 4eaf82d125e3dd48855e128897092883528d9fe5..1b790b62a1f9f528b4a2c4a1bb97d17a70d9a5a9 100644 --- a/source/Lib/EncoderLib/InterSearch.cpp +++ b/source/Lib/EncoderLib/InterSearch.cpp @@ -2673,7 +2673,11 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, if ( m_pcEncCfg->getFastMEForGenBLowDelayEnabled() && iRefList == 1 ) // list 1 { +#if JVET_K0185_AFFINE_6PARA_ENC + if ( slice.getList1IdxToList0Idx( iRefIdxTemp ) >= 0 && (pu.cu->affineType != AFFINEMODEL_6PARAM || slice.getList1IdxToList0Idx( iRefIdxTemp ) == refIdx4Para[0]) ) +#else if ( slice.getList1IdxToList0Idx( iRefIdxTemp ) >= 0 ) +#endif { int iList1ToList0Idx = slice.getList1IdxToList0Idx( iRefIdxTemp ); ::memcpy( cMvTemp[1][iRefIdxTemp], cMvTemp[0][iList1ToList0Idx], sizeof(Mv)*3 ); @@ -3337,7 +3341,7 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu, #endif DTRACE( g_trace_ctx, D_COMMON, " (%d) yy uiBitsBest=%d\n", DTRACE_GET_COUNTER(g_trace_ctx,D_COMMON), uiBitsBest ); } - uiCostBest = (uint32_t)( floor( fWeight * (double)uiCostBest ) + (double)m_pcRdCost->getCost( uiBitsBest ) ); + uiCostBest = (Distortion)( floor( fWeight * (double)uiCostBest ) + (double)m_pcRdCost->getCost( uiBitsBest ) ); DTRACE( g_trace_ctx, D_COMMON, " (%d) uiBitsBest=%d, uiCostBest=%d\n", DTRACE_GET_COUNTER(g_trace_ctx,D_COMMON), uiBitsBest, uiCostBest ); @@ -3649,7 +3653,7 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu, #endif } - uiCostTemp = (uint32_t)( floor( fWeight * (double)uiCostTemp ) + (double)m_pcRdCost->getCost( uiBitsTemp ) ); + uiCostTemp = (Distortion)( floor( fWeight * (double)uiCostTemp ) + (double)m_pcRdCost->getCost( uiBitsTemp ) ); // store best cost and mv if ( uiCostTemp < uiCostBest )