From 39a8acdb53c4d297314a23dcab439f3441be612d Mon Sep 17 00:00:00 2001 From: Shunsuke Iwamura <0000500636@nhk.or.jp> Date: Mon, 2 Sep 2019 13:30:12 +0900 Subject: [PATCH] Bugfix on DC value check for ScalingList::checkPredMode() --- source/Lib/CommonLib/Slice.cpp | 4 ++++ source/Lib/CommonLib/TypeDef.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index 07786dad7e..2fa77e866f 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -1856,7 +1856,11 @@ void ScalingList::checkPredMode(uint32_t sizeId, uint32_t listId) continue; if( !::memcmp(getScalingListAddress(sizeId,listId),((listId == predListIdx) ? getScalingListDefaultAddress(sizeId, predListIdx): getScalingListAddress(sizeId, predListIdx)),sizeof(int)*std::min(MAX_MATRIX_COEF_NUM,(int)g_scalingListSize[sizeId])) // check value of matrix +#if BUGFIX_CHECK_PRED_MODE + && ((sizeId < SCALING_LIST_16x16) || listId == predListIdx ? getScalingListDefaultAddress(sizeId, predListIdx)[0] == getScalingListDC(sizeId, predListIdx) : (getScalingListDC(sizeId, listId) == getScalingListDC(sizeId, predListIdx)))) // check DC value +#else && ((sizeId < SCALING_LIST_16x16) || (getScalingListDC(sizeId,listId) == getScalingListDC(sizeId,predListIdx)))) // check DC value +#endif { setRefMatrixId(sizeId, listId, predListIdx); setScalingListPredModeFlag(sizeId, listId, false); diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index b1da6b941f..14dd66461e 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -50,6 +50,8 @@ #include <assert.h> #include <cassert> +#define BUGFIX_CHECK_PRED_MODE 1 // bugfix on DC value check of ScalingList::checkPredMode() + #define JVET_O0299_APS_SCALINGLIST 1 // JVET-O0299: Scaling List Matrices Support in APS #define JVET_O1164_RPR 1 // JVET-O1164: Reference picture resampling -- GitLab