diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index 872027100c6b9ccf1460c48215c295be5c625ea8..d96fc2d4dc53e4b2182e67871f0020f54533c851 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -2364,7 +2364,8 @@ void Slice::scaleRefPicList( Picture *scaledRefPic[], APS** apss, APS& lmcsAps, scaledRefPic[j]->poc = poc; // rescale the reference picture - Picture::rescalePicture( m_apcRefPicList[refList][rIdx]->getRecoBuf(), scaledRefPic[j]->getRecoBuf(), sps->getChromaFormatIdc(), sps->getBitDepths(), true ); + const bool downsampling = scaledRefPic[j]->getRecoBuf().Y().width >= m_apcRefPicList[refList][rIdx]->getRecoBuf().Y().width && scaledRefPic[j]->getRecoBuf().Y().height >= m_apcRefPicList[refList][rIdx]->getRecoBuf().Y().height; + Picture::rescalePicture( m_apcRefPicList[refList][rIdx]->getRecoBuf(), scaledRefPic[j]->getRecoBuf(), sps->getChromaFormatIdc(), sps->getBitDepths(), true, downsampling ); scaledRefPic[j]->extendPicBorder(); m_scaledRefPicList[refList][rIdx] = scaledRefPic[j];