diff --git a/source/Lib/CommonLib/Quant.cpp b/source/Lib/CommonLib/Quant.cpp index 95bad5fafdc10878c1b299cf42179e1243ecd92f..57a2e457c6535a41e4c33e696e85084feef9c00e 100644 --- a/source/Lib/CommonLib/Quant.cpp +++ b/source/Lib/CommonLib/Quant.cpp @@ -546,33 +546,20 @@ void Quant::setScalingList(ScalingList *scalingList, const int maxLog2TrDynamicR const int minimumQp = 0; const int maximumQp = SCALING_LIST_REM_NUM; -#if JVET_P01034_PRED_1D_SCALING_LIST int scalingListId = 0; int recScalingListId = 0; -#endif for(uint32_t size = SCALING_LIST_FIRST_CODED; size <= SCALING_LIST_LAST_CODED; size++) //2x2->64x64 { for(uint32_t list = 0; list < SCALING_LIST_NUM; list++) { -#if JVET_P01034_PRED_1D_SCALING_LIST if ((size == SCALING_LIST_2x2 && list < 4) || (size == SCALING_LIST_64x64 && list % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0)) // skip 2x2 luma -#else - if (size == SCALING_LIST_2x2 && list % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) == 0) // skip 2x2 luma -#endif continue; for(int qp = minimumQp; qp < maximumQp; qp++) { -#if JVET_P01034_PRED_1D_SCALING_LIST xSetScalingListEnc(scalingList, list, size, qp, scalingListId); xSetScalingListDec(*scalingList, list, size, qp, scalingListId); -#else - xSetScalingListEnc(scalingList,list,size,qp); - xSetScalingListDec(*scalingList,list,size,qp); -#endif } -#if JVET_P01034_PRED_1D_SCALING_LIST scalingListId++; -#endif } } //based on square result and apply downsample technology @@ -583,21 +570,14 @@ void Quant::setScalingList(ScalingList *scalingList, const int maxLog2TrDynamicR if (sizew == sizeh || (sizew == SCALING_LIST_1x1 && sizeh<SCALING_LIST_4x4) || (sizeh == SCALING_LIST_1x1 && sizew<SCALING_LIST_4x4)) continue; for (uint32_t list = 0; list < SCALING_LIST_NUM; list++) //9 { -#if JVET_P01034_PRED_1D_SCALING_LIST int largerSide = (sizew > sizeh) ? sizew : sizeh; if (largerSide == SCALING_LIST_64x64 && list % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0) continue; if (largerSide < SCALING_LIST_4x4) printf("Rectangle Error !\n"); recScalingListId = SCALING_LIST_NUM * (largerSide - 2) + 2 + (list / ((largerSide == SCALING_LIST_64x64) ? 3 : 1)); -#endif for (int qp = minimumQp; qp < maximumQp; qp++) { -#if JVET_P01034_PRED_1D_SCALING_LIST xSetRecScalingListEnc(scalingList, list, sizew, sizeh, qp, recScalingListId); xSetRecScalingListDec(*scalingList, list, sizew, sizeh, qp, recScalingListId); -#else - xSetRecScalingListEnc(scalingList, list, sizew, sizeh, qp); - xSetRecScalingListDec(*scalingList, list, sizew, sizeh, qp); -#endif } } } @@ -612,31 +592,19 @@ void Quant::setScalingListDec(const ScalingList &scalingList) const int minimumQp = 0; const int maximumQp = SCALING_LIST_REM_NUM; -#if JVET_P01034_PRED_1D_SCALING_LIST int scalingListId = 0; int recScalingListId = 0; -#endif for (uint32_t size = SCALING_LIST_FIRST_CODED; size <= SCALING_LIST_LAST_CODED; size++) { for(uint32_t list = 0; list < SCALING_LIST_NUM; list++) { -#if JVET_P01034_PRED_1D_SCALING_LIST if ((size == SCALING_LIST_2x2 && list < 4) || (size == SCALING_LIST_64x64 && list % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0)) // skip 2x2 luma -#else - if (size == SCALING_LIST_2x2 && list % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) == 0) // skip 2x2 luma -#endif continue; for(int qp = minimumQp; qp < maximumQp; qp++) { -#if JVET_P01034_PRED_1D_SCALING_LIST xSetScalingListDec(scalingList, list, size, qp, scalingListId); -#else - xSetScalingListDec(scalingList,list,size,qp); -#endif } -#if JVET_P01034_PRED_1D_SCALING_LIST scalingListId++; -#endif } } //based on square result and apply downsample technology @@ -648,19 +616,13 @@ void Quant::setScalingListDec(const ScalingList &scalingList) if (sizew == sizeh || (sizew == SCALING_LIST_1x1 && sizeh<SCALING_LIST_4x4) || (sizeh == SCALING_LIST_1x1 && sizew<SCALING_LIST_4x4)) continue; for (uint32_t list = 0; list < SCALING_LIST_NUM; list++) //9 { -#if JVET_P01034_PRED_1D_SCALING_LIST int largerSide = (sizew > sizeh) ? sizew : sizeh; if (largerSide == SCALING_LIST_64x64 && list % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0) continue; if (largerSide < SCALING_LIST_4x4) printf("Rectangle Error !\n"); recScalingListId = SCALING_LIST_NUM * (largerSide - 2) + 2 + (list / ((largerSide == SCALING_LIST_64x64) ? 3 : 1)); -#endif for (int qp = minimumQp; qp < maximumQp; qp++) { -#if JVET_P01034_PRED_1D_SCALING_LIST xSetRecScalingListDec(scalingList, list, sizew, sizeh, qp, recScalingListId); -#else - xSetRecScalingListDec(scalingList, list, sizew, sizeh, qp); -#endif } } } @@ -675,21 +637,13 @@ void Quant::setScalingListDec(const ScalingList &scalingList) * \param qp Quantization parameter * \param format chroma format */ -#if JVET_P01034_PRED_1D_SCALING_LIST void Quant::xSetScalingListEnc(ScalingList *scalingList, uint32_t listId, uint32_t sizeId, int qp, uint32_t scalingListId) -#else -void Quant::xSetScalingListEnc(ScalingList *scalingList, uint32_t listId, uint32_t sizeId, int qp) -#endif { uint32_t width = g_scalingListSizeX[sizeId]; uint32_t height = g_scalingListSizeX[sizeId]; uint32_t ratio = g_scalingListSizeX[sizeId]/std::min(MAX_MATRIX_SIZE_NUM,(int)g_scalingListSizeX[sizeId]); int *quantcoeff; -#if JVET_P01034_PRED_1D_SCALING_LIST int *coeff = scalingList->getScalingListAddress(scalingListId); -#else - int *coeff = scalingList->getScalingListAddress(sizeId,listId); -#endif quantcoeff = getQuantCoeff(listId, qp, sizeId, sizeId); const bool blockIsNotPowerOf4 = ((floorLog2(width) + floorLog2(height)) & 1) == 1; @@ -700,11 +654,7 @@ void Quant::xSetScalingListEnc(ScalingList *scalingList, uint32_t listId, uint32 (quantScales << LOG2_SCALING_LIST_NEUTRAL_VALUE), height, width, ratio, std::min(MAX_MATRIX_SIZE_NUM, (int)g_scalingListSizeX[sizeId]), -#if JVET_P01034_PRED_1D_SCALING_LIST scalingList->getScalingListDC(scalingListId)); -#else - scalingList->getScalingListDC(sizeId,listId)); -#endif } /** set quantized matrix coefficient for decode @@ -714,21 +664,13 @@ void Quant::xSetScalingListEnc(ScalingList *scalingList, uint32_t listId, uint32 * \param qp Quantization parameter * \param format chroma format */ -#if JVET_P01034_PRED_1D_SCALING_LIST void Quant::xSetScalingListDec(const ScalingList &scalingList, uint32_t listId, uint32_t sizeId, int qp, uint32_t scalingListId) -#else -void Quant::xSetScalingListDec(const ScalingList &scalingList, uint32_t listId, uint32_t sizeId, int qp) -#endif { uint32_t width = g_scalingListSizeX[sizeId]; uint32_t height = g_scalingListSizeX[sizeId]; uint32_t ratio = g_scalingListSizeX[sizeId]/std::min(MAX_MATRIX_SIZE_NUM,(int)g_scalingListSizeX[sizeId]); int *dequantcoeff; -#if JVET_P01034_PRED_1D_SCALING_LIST const int *coeff = scalingList.getScalingListAddress(scalingListId); -#else - const int *coeff = scalingList.getScalingListAddress(sizeId,listId); -#endif dequantcoeff = getDequantCoeff(listId, qp, sizeId, sizeId); @@ -740,11 +682,7 @@ void Quant::xSetScalingListDec(const ScalingList &scalingList, uint32_t listId, invQuantScale, height, width, ratio, std::min(MAX_MATRIX_SIZE_NUM, (int)g_scalingListSizeX[sizeId]), -#if JVET_P01034_PRED_1D_SCALING_LIST scalingList.getScalingListDC(scalingListId)); -#else - scalingList.getScalingListDC(sizeId,listId)); -#endif } /** set quantized matrix coefficient for encode @@ -754,11 +692,7 @@ void Quant::xSetScalingListDec(const ScalingList &scalingList, uint32_t listId, * \param qp Quantization parameter * \param format chroma format */ -#if JVET_P01034_PRED_1D_SCALING_LIST void Quant::xSetRecScalingListEnc(ScalingList *scalingList, uint32_t listId, uint32_t sizeIdw, uint32_t sizeIdh, int qp, uint32_t scalingListId) -#else -void Quant::xSetRecScalingListEnc(ScalingList *scalingList, uint32_t listId, uint32_t sizeIdw, uint32_t sizeIdh, int qp) -#endif { if (sizeIdw == sizeIdh) return; @@ -766,11 +700,7 @@ void Quant::xSetRecScalingListEnc(ScalingList *scalingList, uint32_t listId, uin uint32_t height = g_scalingListSizeX[sizeIdh]; uint32_t largeSideId = (sizeIdw > sizeIdh) ? sizeIdw : sizeIdh; //16 int *quantcoeff; -#if JVET_P01034_PRED_1D_SCALING_LIST int *coeff = scalingList->getScalingListAddress(scalingListId);//4x4, 8x8 -#else - int *coeff = scalingList->getScalingListAddress(largeSideId, listId);//4x4, 8x8 -#endif quantcoeff = getQuantCoeff(listId, qp, sizeIdw, sizeIdh);//final quantCoeff (downsample) const bool blockIsNotPowerOf4 = ((floorLog2(width) + floorLog2(height)) & 1) == 1; int quantScales = g_quantScales[blockIsNotPowerOf4?1:0][qp]; @@ -781,11 +711,7 @@ void Quant::xSetRecScalingListEnc(ScalingList *scalingList, uint32_t listId, uin height, width, ((largeSideId>3) ? 2 : 1), ((largeSideId >= 3) ? 8 : 4), -#if JVET_P01034_PRED_1D_SCALING_LIST scalingList->getScalingListDC(scalingListId)); -#else - scalingList->getScalingListDC(largeSideId, listId)); -#endif } /** set quantized matrix coefficient for decode * \param scalingList quantaized matrix address @@ -794,22 +720,14 @@ void Quant::xSetRecScalingListEnc(ScalingList *scalingList, uint32_t listId, uin * \param qp Quantization parameter * \param format chroma format */ -#if JVET_P01034_PRED_1D_SCALING_LIST void Quant::xSetRecScalingListDec(const ScalingList &scalingList, uint32_t listId, uint32_t sizeIdw, uint32_t sizeIdh, int qp, uint32_t scalingListId) -#else -void Quant::xSetRecScalingListDec(const ScalingList &scalingList, uint32_t listId, uint32_t sizeIdw, uint32_t sizeIdh, int qp) -#endif { if (sizeIdw == sizeIdh) return; uint32_t width = g_scalingListSizeX[sizeIdw]; uint32_t height = g_scalingListSizeX[sizeIdh]; uint32_t largeSideId = (sizeIdw > sizeIdh) ? sizeIdw : sizeIdh; //16 -#if JVET_P01034_PRED_1D_SCALING_LIST const int *coeff = scalingList.getScalingListAddress(scalingListId); -#else - const int *coeff = scalingList.getScalingListAddress(largeSideId, listId); -#endif int *dequantcoeff; dequantcoeff = getDequantCoeff(listId, qp, sizeIdw, sizeIdh); const bool blockIsNotPowerOf4 = ((floorLog2(width) + floorLog2(height)) & 1) == 1; @@ -819,11 +737,7 @@ void Quant::xSetRecScalingListDec(const ScalingList &scalingList, uint32_t listI invQuantScale, height, width, (largeSideId>3) ? 2 : 1, (largeSideId >= 3 ? 8 : 4), -#if JVET_P01034_PRED_1D_SCALING_LIST scalingList.getScalingListDC(scalingListId)); -#else - scalingList.getScalingListDC(largeSideId, listId)); -#endif } /** set flat matrix value to quantized coefficient */ diff --git a/source/Lib/CommonLib/Quant.h b/source/Lib/CommonLib/Quant.h index 7b5d3c513070dc3096f0b0278fec584646e68996..8aa450074cc685922254cef87eb1b125a5469363 100644 --- a/source/Lib/CommonLib/Quant.h +++ b/source/Lib/CommonLib/Quant.h @@ -170,17 +170,10 @@ private: void xInitScalingList ( const Quant* other ); void xDestroyScalingList(); void xSetFlatScalingList( uint32_t list, uint32_t sizeX, uint32_t sizeY, int qp ); -#if JVET_P01034_PRED_1D_SCALING_LIST void xSetScalingListEnc(ScalingList *scalingList, uint32_t list, uint32_t size, int qp, uint32_t scalingListId); void xSetScalingListDec(const ScalingList &scalingList, uint32_t list, uint32_t size, int qp, uint32_t scalingListId); void xSetRecScalingListEnc(ScalingList *scalingList, uint32_t list, uint32_t sizew, uint32_t sizeh, int qp, uint32_t scalingListId); void xSetRecScalingListDec(const ScalingList &scalingList, uint32_t list, uint32_t sizew, uint32_t sizeh, int qp, uint32_t scalingListId); -#else - void xSetScalingListEnc ( ScalingList *scalingList, uint32_t list, uint32_t size, int qp ); - void xSetScalingListDec ( const ScalingList &scalingList, uint32_t list, uint32_t size, int qp ); - void xSetRecScalingListEnc( ScalingList *scalingList, uint32_t list, uint32_t sizew, uint32_t sizeh, int qp ); - void xSetRecScalingListDec( const ScalingList &scalingList, uint32_t list, uint32_t sizew, uint32_t sizeh, int qp ); -#endif private: void xSignBitHidingHDQ (TCoeff* pQCoef, const TCoeff* pCoef, TCoeff* deltaU, const CoeffCodingContext& cctx, const int maxLog2TrDynamicRange); diff --git a/source/Lib/CommonLib/Rom.cpp b/source/Lib/CommonLib/Rom.cpp index e84b8523819c29a4a26f2215d09fb6983e36b61d..ca20ca318304cb86aa1d410bbb6fcda3531b6e8e 100644 --- a/source/Lib/CommonLib/Rom.cpp +++ b/source/Lib/CommonLib/Rom.cpp @@ -667,21 +667,11 @@ const char *MatrixType[SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM] = }, { "INTRA64X64_LUMA", -#if JVET_P01034_PRED_1D_SCALING_LIST "INTRA64X64_CHROMAU", "INTRA64X64_CHROMAV", -#else - "INTRA64X64_CHROMAU_FROM16x16_CHROMAU", - "INTRA64X64_CHROMAV_FROM16x16_CHROMAV", -#endif "INTER64X64_LUMA", -#if JVET_P01034_PRED_1D_SCALING_LIST "INTER64X64_CHROMAU", "INTER64X64_CHROMAV" -#else - "INTER64X64_CHROMAU_FROM16x16_CHROMAU", - "INTER64X64_CHROMAV_FROM16x16_CHROMAV" -#endif }, { }, @@ -715,21 +705,11 @@ const char *MatrixType_DC[SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM] = }, { "INTRA64X64_LUMA_DC", -#if JVET_P01034_PRED_1D_SCALING_LIST "INTRA64X64_CHROMAU_DC", "INTRA64X64_CHROMAV_DC", -#else - "INTRA64X64_CHROMAU_DC_FROM16x16_CHROMAU", - "INTRA64X64_CHROMAV_DC_FROM16x16_CHROMAV", -#endif "INTER64X64_LUMA_DC", -#if JVET_P01034_PRED_1D_SCALING_LIST "INTER64X64_CHROMAU_DC", "INTER64X64_CHROMAV_DC" -#else - "INTER64X64_CHROMAU_DC_FROM16x16_CHROMAU", - "INTER64X64_CHROMAV_DC_FROM16x16_CHROMAV" -#endif }, { }, diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index 359584175382c86606d2ed94c34065932fbcd00b..e319d72945497d753efba4d254671013c1050b3a 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -2464,41 +2464,21 @@ void ReferencePictureList::printRefPicInfo() const ScalingList::ScalingList() { m_disableScalingMatrixForLfnstBlks = true; -#if JVET_P01034_PRED_1D_SCALING_LIST for (uint32_t scalingListId = 0; scalingListId < 28; scalingListId++) { int matrixSize = (scalingListId < SCALING_LIST_1D_START_4x4) ? 2 : (scalingListId < SCALING_LIST_1D_START_8x8) ? 4 : 8; m_scalingListCoef[scalingListId].resize(matrixSize*matrixSize); } -#else - for(uint32_t sizeId = 0; sizeId < SCALING_LIST_SIZE_NUM; sizeId++) - { - for(uint32_t listId = 0; listId < SCALING_LIST_NUM; listId++) - { - m_scalingListCoef[sizeId][listId].resize(std::min<int>(MAX_MATRIX_COEF_NUM,(int)g_scalingListSize[sizeId])); - } - } -#endif } /** set default quantization matrix to array */ void ScalingList::setDefaultScalingList() { -#if JVET_P01034_PRED_1D_SCALING_LIST for (uint32_t scalingListId = 0; scalingListId < 28; scalingListId++) { processDefaultMatrix(scalingListId); } -#else - for(uint32_t sizeId = 0; sizeId < SCALING_LIST_SIZE_NUM; sizeId++) - { - for(uint32_t listId=0;listId<SCALING_LIST_NUM;listId++) - { - processDefaultMatrix(sizeId, listId); - } - } -#endif } /** check if use default quantization matrix * \returns true if the scaling list is not equal to the default quantization matrix @@ -2506,7 +2486,6 @@ void ScalingList::setDefaultScalingList() bool ScalingList::isNotDefaultScalingList() { bool isAllDefault = true; -#if JVET_P01034_PRED_1D_SCALING_LIST for (uint32_t scalingListId = 0; scalingListId < 28; scalingListId++) { int matrixSize = (scalingListId < SCALING_LIST_1D_START_4x4) ? 2 : (scalingListId < SCALING_LIST_1D_START_8x8) ? 4 : 8; @@ -2528,36 +2507,6 @@ bool ScalingList::isNotDefaultScalingList() } if (!isAllDefault) break; } -#else - for ( uint32_t sizeId = SCALING_LIST_2x2; sizeId <= SCALING_LIST_64x64; sizeId++) - { - for(uint32_t listId=0;listId<SCALING_LIST_NUM;listId++) - { - if (((sizeId == SCALING_LIST_64x64) && (listId % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0)) - || ((sizeId == SCALING_LIST_2x2) && (listId % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) == 0))) - { - continue; - } - if (sizeId < SCALING_LIST_16x16) - { - if (::memcmp(getScalingListAddress(sizeId, listId), getScalingListDefaultAddress(sizeId, listId), sizeof(int) * (int)g_scalingListSize[sizeId])) - { - isAllDefault = false; - break; - } - } - else - { - if ((::memcmp(getScalingListAddress(sizeId, listId), getScalingListDefaultAddress(sizeId, listId), sizeof(int) * MAX_MATRIX_COEF_NUM)) || (getScalingListDC(sizeId, listId) != 16)) - { - isAllDefault = false; - break; - } - } - } - if (!isAllDefault) break; - } -#endif return !isAllDefault; } @@ -2567,7 +2516,6 @@ bool ScalingList::isNotDefaultScalingList() * \param listId index of input matrix * \param refListId index of reference matrix */ -#if JVET_P01034_PRED_1D_SCALING_LIST int ScalingList::lengthUvlc(int uiCode) { if (uiCode < 0) printf("Error UVLC! \n"); @@ -2730,29 +2678,6 @@ void ScalingList::checkPredMode(uint32_t scalingListId) } setScalingListCopyModeFlag(scalingListId, false); } -#else -void ScalingList::processRefMatrix(uint32_t sizeId, uint32_t listId, uint32_t refListId) -{ - ::memcpy(getScalingListAddress(sizeId, listId), ((listId == refListId) ? getScalingListDefaultAddress(sizeId, refListId) : getScalingListAddress(sizeId, refListId)), sizeof(int)*std::min(MAX_MATRIX_COEF_NUM, (int)g_scalingListSize[sizeId])); -} -void ScalingList::checkPredMode(uint32_t sizeId, uint32_t listId) -{ - for (int predListIdx = (int)listId; predListIdx >= 0; predListIdx--) - { - if ((sizeId == SCALING_LIST_64x64 && ((listId % 3) != 0 || (predListIdx % 3) != 0)) || (sizeId == SCALING_LIST_2x2 && ((listId % 3) == 0 || (predListIdx % 3) == 0))) - 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 - && ((sizeId < SCALING_LIST_16x16) || listId == predListIdx ? getScalingListDefaultAddress(sizeId, predListIdx)[0] == getScalingListDC(sizeId, predListIdx) : (getScalingListDC(sizeId, listId) == getScalingListDC(sizeId, predListIdx)))) // check DC value - { - setRefMatrixId(sizeId, listId, predListIdx); - setScalingListPredModeFlag(sizeId, listId, false); - return; - } - } - setScalingListPredModeFlag(sizeId, listId, true); -} -#endif static void outputScalingListHelp(std::ostream &os) { @@ -2786,25 +2711,15 @@ static void outputScalingListHelp(std::ostream &os) void ScalingList::outputScalingLists(std::ostream &os) const { -#if JVET_P01034_PRED_1D_SCALING_LIST int scalingListId = 0; -#endif for (uint32_t sizeIdc = SCALING_LIST_2x2; sizeIdc <= SCALING_LIST_64x64; sizeIdc++) { const uint32_t size = (sizeIdc == 1) ? 2 : ((sizeIdc == 2) ? 4 : 8); for(uint32_t listIdc = 0; listIdc < SCALING_LIST_NUM; listIdc++) { -#if JVET_P01034_PRED_1D_SCALING_LIST if (!((sizeIdc== SCALING_LIST_64x64 && listIdc % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0) || (sizeIdc == SCALING_LIST_2x2 && listIdc < 4))) -#else - if (!(((sizeIdc == SCALING_LIST_64x64) && (listIdc % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0)) || ((sizeIdc == SCALING_LIST_2x2) && (listIdc % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) == 0)))) -#endif { -#if JVET_P01034_PRED_1D_SCALING_LIST const int *src = getScalingListAddress(scalingListId); -#else - const int *src = getScalingListAddress(sizeIdc, listIdc); -#endif os << (MatrixType[sizeIdc][listIdc]) << " =\n "; for(uint32_t y=0; y<size; y++) { @@ -2816,16 +2731,10 @@ void ScalingList::outputScalingLists(std::ostream &os) const } if(sizeIdc > SCALING_LIST_8x8) { -#if JVET_P01034_PRED_1D_SCALING_LIST os << MatrixType_DC[sizeIdc][listIdc] << " = \n " << std::setw(3) << getScalingListDC(scalingListId) << "\n"; -#else - os << MatrixType_DC[sizeIdc][listIdc] << " = \n " << std::setw(3) << getScalingListDC(sizeIdc, listIdc) << "\n"; -#endif } os << "\n"; -#if JVET_P01034_PRED_1D_SCALING_LIST scalingListId++; -#endif } } } @@ -2851,32 +2760,21 @@ bool ScalingList::xParseScalingList(const std::string &fileName) return true; } -#if JVET_P01034_PRED_1D_SCALING_LIST int scalingListId = 0; -#endif for (uint32_t sizeIdc = SCALING_LIST_2x2; sizeIdc <= SCALING_LIST_64x64; sizeIdc++)//2x2-128x128 { const uint32_t size = std::min(MAX_MATRIX_COEF_NUM,(int)g_scalingListSize[sizeIdc]); for(uint32_t listIdc = 0; listIdc < SCALING_LIST_NUM; listIdc++) { -#if !JVET_P01034_PRED_1D_SCALING_LIST - int * const src = getScalingListAddress(sizeIdc, listIdc); -#endif -#if JVET_P01034_PRED_1D_SCALING_LIST if ((sizeIdc == SCALING_LIST_64x64 && listIdc % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0) || (sizeIdc == SCALING_LIST_2x2 && listIdc < 4)) -#else - if (((sizeIdc == SCALING_LIST_64x64) && (listIdc % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0)) || ((sizeIdc == SCALING_LIST_2x2) && (listIdc % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) == 0))) -#endif { continue; } else { -#if JVET_P01034_PRED_1D_SCALING_LIST int * const src = getScalingListAddress(scalingListId); -#endif { fseek(fp, 0, SEEK_SET); bool bFound=false; @@ -2914,11 +2812,7 @@ bool ScalingList::xParseScalingList(const std::string &fileName) } //set DC value for default matrix check -#if JVET_P01034_PRED_1D_SCALING_LIST setScalingListDC(scalingListId, src[0]); -#else - setScalingListDC(sizeIdc, listIdc, src[0]); -#endif if(sizeIdc > SCALING_LIST_8x8) { @@ -2953,16 +2847,10 @@ bool ScalingList::xParseScalingList(const std::string &fileName) return true; } //overwrite DC value when size of matrix is larger than 16x16 -#if JVET_P01034_PRED_1D_SCALING_LIST setScalingListDC(scalingListId, data); -#else - setScalingListDC(sizeIdc, listIdc, data); -#endif } } -#if JVET_P01034_PRED_1D_SCALING_LIST scalingListId++; -#endif } } // std::cout << "\n\nRead scaling lists of:\n\n"; @@ -2978,19 +2866,11 @@ bool ScalingList::xParseScalingList(const std::string &fileName) * \param listId list index * \returns pointer of quantization matrix */ -#if JVET_P01034_PRED_1D_SCALING_LIST const int* ScalingList::getScalingListDefaultAddress(uint32_t scalingListId) -#else -const int* ScalingList::getScalingListDefaultAddress(uint32_t sizeId, uint32_t listId) -#endif { const int *src = 0; -#if JVET_P01034_PRED_1D_SCALING_LIST int sizeId = (scalingListId < SCALING_LIST_1D_START_8x8) ? 2 : 3; switch (sizeId) -#else - switch(sizeId) -#endif { case SCALING_LIST_1x1: case SCALING_LIST_2x2: @@ -3002,11 +2882,7 @@ const int* ScalingList::getScalingListDefaultAddress(uint32_t sizeId, uint32_t l case SCALING_LIST_32x32: case SCALING_LIST_64x64: case SCALING_LIST_128x128: -#if JVET_P01034_PRED_1D_SCALING_LIST src = g_quantInterDefault8x8; -#else - src = (listId < (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES)) ? g_quantIntraDefault8x8 : g_quantInterDefault8x8; -#endif break; default: THROW( "Invalid scaling list" ); @@ -3020,7 +2896,6 @@ const int* ScalingList::getScalingListDefaultAddress(uint32_t sizeId, uint32_t l * \param sizeId size index * \param listId index of input matrix */ -#if JVET_P01034_PRED_1D_SCALING_LIST void ScalingList::processDefaultMatrix(uint32_t scalingListId) { int matrixSize = (scalingListId < SCALING_LIST_1D_START_4x4) ? 2 : (scalingListId < SCALING_LIST_1D_START_8x8) ? 4 : 8; @@ -3041,30 +2916,6 @@ void ScalingList::checkDcOfMatrix() } } } -#else -void ScalingList::processDefaultMatrix(uint32_t sizeId, uint32_t listId) -{ - ::memcpy(getScalingListAddress(sizeId, listId),getScalingListDefaultAddress(sizeId,listId),sizeof(int)*std::min(MAX_MATRIX_COEF_NUM,(int)g_scalingListSize[sizeId])); - setScalingListDC(sizeId,listId,SCALING_LIST_DC); -} - -/** check DC value of matrix for default matrix signaling - */ -void ScalingList::checkDcOfMatrix() -{ - for(uint32_t sizeId = 0; sizeId < SCALING_LIST_SIZE_NUM; sizeId++) - { - for(uint32_t listId = 0; listId < SCALING_LIST_NUM; listId++) - { - //check default matrix? - if(getScalingListDC(sizeId,listId) == 0) - { - processDefaultMatrix(sizeId, listId); - } - } - } -} -#endif ParameterSetManager::ParameterSetManager() : m_spsMap(MAX_NUM_SPS) diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h index 04f86839c48ac6943ea74ae69270892af3ed8dba..2ee732caa27b9f0d8b36943dc4370dd11ce995de 100644 --- a/source/Lib/CommonLib/Slice.h +++ b/source/Lib/CommonLib/Slice.h @@ -159,7 +159,6 @@ public: virtual ~ScalingList() { } bool getDisableScalingMatrixForLfnstBlks() const { return m_disableScalingMatrixForLfnstBlks;} void setDisableScalingMatrixForLfnstBlks(bool flag) { m_disableScalingMatrixForLfnstBlks = flag;} -#if JVET_P01034_PRED_1D_SCALING_LIST int* getScalingListAddress(uint32_t scalingListId) { return &(m_scalingListCoef[scalingListId][0]); } //!< get matrix coefficient const int* getScalingListAddress(uint32_t scalingListId) const { return &(m_scalingListCoef[scalingListId][0]); } //!< get matrix coefficient void checkPredMode(uint32_t scalingListId); @@ -184,24 +183,6 @@ public: void codeScalingList(int* scalingList, int scalingListDC, int scalinListId, int& bitsCost); void setScalingListPreditorModeFlag(uint32_t scalingListId, bool bIsPred) { m_scalingListPreditorModeFlag[scalingListId] = bIsPred; } bool getScalingListPreditorModeFlag(uint32_t scalingListId) const { return m_scalingListPreditorModeFlag[scalingListId]; } -#else - int* getScalingListAddress(uint32_t sizeId, uint32_t listId) { return &(m_scalingListCoef[sizeId][listId][0]); } //!< get matrix coefficient - const int* getScalingListAddress(uint32_t sizeId, uint32_t listId) const { return &(m_scalingListCoef[sizeId][listId][0]); } //!< get matrix coefficient - void checkPredMode(uint32_t sizeId, uint32_t listId); - - void setRefMatrixId(uint32_t sizeId, uint32_t listId, uint32_t u) { m_refMatrixId[sizeId][listId] = u; } //!< set reference matrix ID - uint32_t getRefMatrixId(uint32_t sizeId, uint32_t listId) const { return m_refMatrixId[sizeId][listId]; } //!< get reference matrix ID - - const int* getScalingListDefaultAddress(uint32_t sizeId, uint32_t listId); //!< get default matrix coefficient - void processDefaultMatrix(uint32_t sizeId, uint32_t listId); - - void setScalingListDC(uint32_t sizeId, uint32_t listId, uint32_t u) { m_scalingListDC[sizeId][listId] = u; } //!< set DC value - int getScalingListDC(uint32_t sizeId, uint32_t listId) const { return m_scalingListDC[sizeId][listId]; } //!< get DC value - - void setScalingListPredModeFlag(uint32_t sizeId, uint32_t listId, bool bIsDPCM) { m_scalingListPredModeFlagIsDPCM[sizeId][listId] = bIsDPCM; } - bool getScalingListPredModeFlag(uint32_t sizeId, uint32_t listId) const { return m_scalingListPredModeFlagIsDPCM[sizeId][listId]; } - void processRefMatrix(uint32_t sizeId, uint32_t listId , uint32_t refListId ); -#endif void checkDcOfMatrix(); bool xParseScalingList(const std::string &fileName); @@ -210,11 +191,7 @@ public: bool operator==( const ScalingList& other ) { -#if JVET_P01034_PRED_1D_SCALING_LIST if (memcmp(m_scalingListPredModeFlagIsCopy, other.m_scalingListPredModeFlagIsCopy, sizeof(m_scalingListPredModeFlagIsCopy))) -#else - if( memcmp( m_scalingListPredModeFlagIsDPCM, other.m_scalingListPredModeFlagIsDPCM, sizeof( m_scalingListPredModeFlagIsDPCM ) ) ) -#endif { return false; } @@ -242,18 +219,11 @@ public: private: void outputScalingLists(std::ostream &os) const; bool m_disableScalingMatrixForLfnstBlks; -#if JVET_P01034_PRED_1D_SCALING_LIST bool m_scalingListPredModeFlagIsCopy [30]; //!< reference list index int m_scalingListDC [30]; //!< the DC value of the matrix coefficient for 16x16 uint32_t m_refMatrixId [30]; //!< RefMatrixID bool m_scalingListPreditorModeFlag [30]; //!< reference list index std::vector<int> m_scalingListCoef [30]; //!< quantization matrix -#else - bool m_scalingListPredModeFlagIsDPCM [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< reference list index - int m_scalingListDC [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< the DC value of the matrix coefficient for 16x16 - uint32_t m_refMatrixId [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< RefMatrixID - std::vector<int> m_scalingListCoef [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< quantization matrix -#endif }; class ConstraintInfo diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 266c512f12be0b3f757e3925ecaf8eb86ad221eb..9bafd959b8684b8df108bd9a2e3ffbe427f5b771 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -74,7 +74,6 @@ #define RETRAIN_CABAC 1 // Retrained CABAC probabilities -#define JVET_P01034_PRED_1D_SCALING_LIST 1 // JVET-P1034: 1D Scaling list index and add predictor mode #define JVET_P0410_CHROMA_QP_MAPPING 1 // JVET-P0410: Chroma QP Mapping signalling @@ -825,7 +824,6 @@ enum ScalingListSize SCALING_LIST_LAST_CODED = SCALING_LIST_64x64 }; -#if JVET_P01034_PRED_1D_SCALING_LIST enum ScalingList1dStartIdx { SCALING_LIST_1D_START_2x2 = 0, @@ -835,7 +833,6 @@ enum ScalingList1dStartIdx SCALING_LIST_1D_START_32x32 = 20, SCALING_LIST_1D_START_64x64 = 26, }; -#endif // For use with decoded picture hash SEI messages, generated by encoder. enum HashType diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 1a892047e7dd2d588b412aba13db97a883cc9396..b2898a0ff9d43dfe2b2458df8b44eb29e0574515 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -3458,7 +3458,6 @@ void HLSyntaxReader::parsePredWeightTable( Slice* pcSlice, const SPS *sps ) */ void HLSyntaxReader::parseScalingList(ScalingList* scalingList) { -#if JVET_P01034_PRED_1D_SCALING_LIST uint32_t code; bool scalingListCopyModeFlag; READ_FLAG(code, "scaling_matrix_for_lfnst_disabled_flag"); scalingList->setDisableScalingMatrixForLfnstBlks(code ? true : false); @@ -3498,43 +3497,6 @@ void HLSyntaxReader::parseScalingList(ScalingList* scalingList) { decodeScalingList(scalingList, scalingListId, scalingList->getScalingListPreditorModeFlag(scalingListId)); } -#else - uint32_t code, sizeId, listId; - bool scalingListPredModeFlag; - //for each size - for(sizeId = SCALING_LIST_FIRST_CODED; sizeId <= SCALING_LIST_LAST_CODED; sizeId++) - { - for(listId = 0; listId < SCALING_LIST_NUM; listId++) - { - if (!(((sizeId == SCALING_LIST_2x2) && (listId % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) == 0)) || ((sizeId > SCALING_LIST_32x32) && (listId % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0))))//2x2 luma - { - READ_FLAG( code, "scaling_list_pred_mode_flag"); - scalingListPredModeFlag = (code) ? true : false; - scalingList->setScalingListPredModeFlag(sizeId, listId, scalingListPredModeFlag); - if(!scalingListPredModeFlag) //Copy Mode - { - READ_UVLC( code, "scaling_list_pred_matrix_id_delta"); - - if (sizeId == SCALING_LIST_64x64) - { - code *= (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES); // Adjust the decoded code for this size, to cope with the missing 32x32 chroma entries. - } - - scalingList->setRefMatrixId (sizeId,listId,(uint32_t)((int)(listId)-(code))); - if( sizeId > SCALING_LIST_8x8 ) - { - scalingList->setScalingListDC(sizeId,listId,((listId == scalingList->getRefMatrixId (sizeId,listId))? 16 :scalingList->getScalingListDC(sizeId, scalingList->getRefMatrixId (sizeId,listId)))); - } - scalingList->processRefMatrix( sizeId, listId, scalingList->getRefMatrixId (sizeId,listId)); - - } - else //DPCM Mode - { - decodeScalingList(scalingList, sizeId, listId); - } - } - } -#endif } return; @@ -3545,21 +3507,12 @@ void HLSyntaxReader::parseScalingList(ScalingList* scalingList) * \param sizeId size index * \param listId list index */ -#if JVET_P01034_PRED_1D_SCALING_LIST void HLSyntaxReader::decodeScalingList(ScalingList *scalingList, uint32_t scalingListId, bool isPredictor) -#else -void HLSyntaxReader::decodeScalingList(ScalingList *scalingList, uint32_t sizeId, uint32_t listId) -#endif { -#if JVET_P01034_PRED_1D_SCALING_LIST int matrixSize = (scalingListId < SCALING_LIST_1D_START_4x4) ? 2 : (scalingListId < SCALING_LIST_1D_START_8x8) ? 4 : 8; int i, coefNum = matrixSize * matrixSize; -#else - int i,coefNum = std::min(MAX_MATRIX_COEF_NUM,(int)g_scalingListSize[sizeId]); -#endif int data; int scalingListDcCoefMinus8 = 0; -#if JVET_P01034_PRED_1D_SCALING_LIST int nextCoef = (isPredictor) ? 0 : SCALING_LIST_START_VALUE; ScanElement *scan = g_scanOrder[SCAN_UNGROUPED][SCAN_DIAG][gp_sizeIdxInfo->idxFrom(matrixSize)][gp_sizeIdxInfo->idxFrom(matrixSize)]; int *dst = scalingList->getScalingListAddress(scalingListId); @@ -3580,39 +3533,19 @@ void HLSyntaxReader::decodeScalingList(ScalingList *scalingList, uint32_t sizeId predCoef = (PredListId >= SCALING_LIST_1D_START_16x16) ? scalingList->getScalingListDC(PredListId) : srcPred[0]; } scalingList->setScalingListDC(scalingListId, (nextCoef + predCoef + 256) & 255); -#else - int nextCoef = SCALING_LIST_START_VALUE; - ScanElement *scan = g_scanOrder[SCAN_UNGROUPED][SCAN_DIAG][gp_sizeIdxInfo->idxFrom(1 << (sizeId == SCALING_LIST_2x2 ? 1 : (sizeId == SCALING_LIST_4x4 ? 2 : 3)))][gp_sizeIdxInfo->idxFrom(1 << (sizeId == SCALING_LIST_2x2 ? 1 : (sizeId == SCALING_LIST_4x4 ? 2 : 3)))]; - int *dst = scalingList->getScalingListAddress(sizeId, listId); - - if( sizeId > SCALING_LIST_8x8 ) - { - READ_SVLC( scalingListDcCoefMinus8, "scaling_list_dc_coef_minus8"); - scalingList->setScalingListDC(sizeId,listId,scalingListDcCoefMinus8 + 8); - nextCoef = scalingList->getScalingListDC(sizeId,listId); -#endif } for(i = 0; i < coefNum; i++) { -#if JVET_P01034_PRED_1D_SCALING_LIST if (scalingListId >= SCALING_LIST_1D_START_64x64 && scan[i].x >= 4 && scan[i].y >= 4) -#else - if (sizeId == SCALING_LIST_64x64 && scan[i].x >= 4 && scan[i].y >= 4) -#endif { dst[scan[i].idx] = 0; continue; } READ_SVLC( data, "scaling_list_delta_coef"); -#if JVET_P01034_PRED_1D_SCALING_LIST nextCoef += data; predCoef = (isPredictor) ? srcPred[scan[i].idx] : 0; dst[scan[i].idx] = (nextCoef + predCoef + 256) & 255; -#else - nextCoef = (nextCoef + data + 256) % 256; - dst[scan[i].idx] = nextCoef; -#endif } } diff --git a/source/Lib/DecoderLib/VLCReader.h b/source/Lib/DecoderLib/VLCReader.h index bbfd28e7ae5a6e5c0b2bcdbe5550ccc7a8967f4f..c659841f8a582af68c4a9ae7a7bfaee0e0db3b8a 100644 --- a/source/Lib/DecoderLib/VLCReader.h +++ b/source/Lib/DecoderLib/VLCReader.h @@ -183,11 +183,7 @@ public: void parsePredWeightTable( Slice* pcSlice, const SPS *sps ); void parseScalingList ( ScalingList* scalingList ); -#if JVET_P01034_PRED_1D_SCALING_LIST void decodeScalingList ( ScalingList *scalingList, uint32_t scalingListId, bool isPredictor); -#else - void decodeScalingList ( ScalingList *scalingList, uint32_t sizeId, uint32_t listId); -#endif void parseReshaper ( SliceReshapeInfo& sliceReshaperInfo, const SPS* pcSPS, const bool isIntra ); void alfFilter( AlfParam& alfParam, const bool isChroma, const int altIdx ); diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp index 9fdeb7e49a6b4b1053572c677a5cb33edd7a40cc..dea518460fc0ff0df16c1ca696e5b426af661ecf 100644 --- a/source/Lib/EncoderLib/EncLib.cpp +++ b/source/Lib/EncoderLib/EncLib.cpp @@ -505,25 +505,10 @@ void EncLib::xInitScalingLists( SPS &sps, APS &aps ) if( getUseScalingListId() == SCALING_LIST_FILE_READ ) { // Prepare delta's: -#if JVET_P01034_PRED_1D_SCALING_LIST for (uint32_t scalingListId = 0; scalingListId < 28; scalingListId++) { aps.getScalingList().checkPredMode(scalingListId); } -#else - for (uint32_t sizeId = SCALING_LIST_2x2; sizeId <= SCALING_LIST_64x64; sizeId++) - { - for (uint32_t listId = 0; listId < SCALING_LIST_NUM; listId++) - { - if (((sizeId == SCALING_LIST_64x64) && (listId % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) != 0)) - || ((sizeId == SCALING_LIST_2x2) && (listId % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) == 0))) - { - continue; - } - aps.getScalingList().checkPredMode( sizeId, listId ); - } - } -#endif } } diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index afba721d35368933f0651cd2f431806c2384f743..989872bd41e47e8f68fdee5e6ea53ef2dcd0dcc5 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -2351,7 +2351,6 @@ void HLSWriter::codeScalingList( const ScalingList &scalingList ) { //for each size WRITE_FLAG(scalingList.getDisableScalingMatrixForLfnstBlks(), "scaling_matrix_for_lfnst_disabled_flag"); -#if JVET_P01034_PRED_1D_SCALING_LIST for (uint32_t scalingListId = 0; scalingListId < 28; scalingListId++) { bool scalingListCopyModeFlag = scalingList.getScalingListCopyModeFlag(scalingListId); @@ -2369,37 +2368,6 @@ void HLSWriter::codeScalingList( const ScalingList &scalingList ) //DPCM xCodeScalingList(&scalingList, scalingListId, scalingList.getScalingListPreditorModeFlag(scalingListId)); } -#else - for(uint32_t sizeId = SCALING_LIST_FIRST_CODED; sizeId <= SCALING_LIST_LAST_CODED; sizeId++) - { - const int predListStep = (sizeId > SCALING_LIST_32x32 ? (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) : 1); // if 64x64, skip over chroma entries. - - for(uint32_t listId = 0; listId < SCALING_LIST_NUM; listId+=predListStep) - { - if ((sizeId == SCALING_LIST_2x2) && ((listId % (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES) == 0))) - { - continue; - } - bool scalingListPredModeFlag = scalingList.getScalingListPredModeFlag(sizeId, listId); - WRITE_FLAG( scalingListPredModeFlag, "scaling_list_pred_mode_flag" ); - if(!scalingListPredModeFlag)// Copy Mode - { - if (sizeId > SCALING_LIST_32x32) //64x64 luma - { - // adjust the code, to cope with the missing chroma entries - WRITE_UVLC( ((int)listId - (int)scalingList.getRefMatrixId(sizeId, listId)) / (SCALING_LIST_NUM / SCALING_LIST_PRED_MODES), "scaling_list_pred_matrix_id_delta"); - } - else - { - WRITE_UVLC( (int)listId - (int)scalingList.getRefMatrixId (sizeId,listId), "scaling_list_pred_matrix_id_delta"); - } - } - else// DPCM Mode - { - xCodeScalingList(&scalingList, sizeId, listId); - } - } -#endif } return; } @@ -2408,25 +2376,14 @@ void HLSWriter::codeScalingList( const ScalingList &scalingList ) * \param sizeId size index * \param listId list index */ -#if JVET_P01034_PRED_1D_SCALING_LIST void HLSWriter::xCodeScalingList(const ScalingList* scalingList, uint32_t scalingListId, bool isPredictor) -#else -void HLSWriter::xCodeScalingList(const ScalingList* scalingList, uint32_t sizeId, uint32_t listId) -#endif { -#if JVET_P01034_PRED_1D_SCALING_LIST int matrixSize = (scalingListId < SCALING_LIST_1D_START_4x4) ? 2 : ((scalingListId < SCALING_LIST_1D_START_8x8) ? 4 : 8); int coefNum = matrixSize * matrixSize; ScanElement *scan = g_scanOrder[SCAN_UNGROUPED][SCAN_DIAG][gp_sizeIdxInfo->idxFrom(matrixSize)][gp_sizeIdxInfo->idxFrom(matrixSize)]; int nextCoef = (isPredictor) ? 0 : SCALING_LIST_START_VALUE; -#else - int coefNum = std::min( MAX_MATRIX_COEF_NUM, ( int ) g_scalingListSize[sizeId] ); - ScanElement *scan = g_scanOrder[SCAN_UNGROUPED][SCAN_DIAG][gp_sizeIdxInfo->idxFrom(1 << (sizeId == SCALING_LIST_2x2 ? 1 : (sizeId == SCALING_LIST_4x4 ? 2 : 3)))][gp_sizeIdxInfo->idxFrom(1 << (sizeId == SCALING_LIST_2x2 ? 1 : (sizeId == SCALING_LIST_4x4 ? 2 : 3)))]; - int nextCoef = SCALING_LIST_START_VALUE; -#endif int data; -#if JVET_P01034_PRED_1D_SCALING_LIST const int *src = scalingList->getScalingListAddress(scalingListId); int PredListId = scalingList->getRefMatrixId(scalingListId); const int *srcPred = (isPredictor) ? ((scalingListId==PredListId) ? scalingList->getScalingListDefaultAddress(scalingListId) : scalingList->getScalingListAddress(PredListId)) : NULL; @@ -2457,41 +2414,15 @@ void HLSWriter::xCodeScalingList(const ScalingList* scalingList, uint32_t sizeId } data = ((data + 128) & 255) - 128; WRITE_SVLC((int8_t)data, "scaling_list_dc_coef"); -#else - const int *src = scalingList->getScalingListAddress(sizeId, listId); - if( sizeId > SCALING_LIST_8x8 ) - { - WRITE_SVLC( scalingList->getScalingListDC(sizeId,listId) - 8, "scaling_list_dc_coef_minus8"); - nextCoef = scalingList->getScalingListDC(sizeId,listId); -#endif } for(int i=0;i<coefNum;i++) { -#if JVET_P01034_PRED_1D_SCALING_LIST if (scalingListId >= SCALING_LIST_1D_START_64x64 && scan[i].x >= 4 && scan[i].y >= 4) -#else - if (sizeId == SCALING_LIST_64x64 && scan[i].x >= 4 && scan[i].y >= 4) -#endif continue; -#if JVET_P01034_PRED_1D_SCALING_LIST data = (isPredictor) ? (deltasrc[i] - nextCoef) : (src[scan[i].idx] - nextCoef); nextCoef = (isPredictor) ? deltasrc[i] : src[scan[i].idx]; data = ((data + 128) & 255) - 128; WRITE_SVLC((int8_t)data, "scaling_list_delta_coef"); -#else - data = src[scan[i].idx] - nextCoef; - nextCoef = src[scan[i].idx]; - if (data > 127) - { - data = data - 256; - } - if (data < -128) - { - data = data + 256; - } - - WRITE_SVLC( data, "scaling_list_delta_coef"); -#endif } } diff --git a/source/Lib/EncoderLib/VLCWriter.h b/source/Lib/EncoderLib/VLCWriter.h index 3d9aebf87b34f801d8a28a5a180b17f5061e4248..699054d741f6e4558e30d3f83a0b3fc2ec4f626c 100644 --- a/source/Lib/EncoderLib/VLCWriter.h +++ b/source/Lib/EncoderLib/VLCWriter.h @@ -124,11 +124,7 @@ private: void xCodeRefPicList( const ReferencePictureList* rpl, bool isLongTermPresent, uint32_t ltLsbBitsCount, const bool isForbiddenZeroDeltaPoc ); bool xFindMatchingLTRP ( Slice* pcSlice, uint32_t *ltrpsIndex, int ltrpPOC, bool usedFlag ); void xCodePredWeightTable ( Slice* pcSlice ); -#if JVET_P01034_PRED_1D_SCALING_LIST void xCodeScalingList ( const ScalingList* scalingList, uint32_t scalinListId, bool isPredictor); -#else - void xCodeScalingList ( const ScalingList* scalingList, uint32_t sizeId, uint32_t listId); -#endif public: void setBitstream ( OutputBitstream* p ) { m_pcBitIf = p; } uint32_t getNumberOfWrittenBits () { return m_pcBitIf->getNumberOfWrittenBits(); }