Commit 633288ce authored by Frank Bossen's avatar Frank Bossen

Apply bug fixes from BMS 2.0.1

parent 39b913ea
......@@ -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);
}
......
#if ! defined( NEXT_SOFTWARE_VERSION )
#define NEXT_SOFTWARE_VERSION "2.0"
#define NEXT_SOFTWARE_VERSION "2.0.1"
#endif
......@@ -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 )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment