diff --git a/source/Lib/CommonLib/IntraPrediction.cpp b/source/Lib/CommonLib/IntraPrediction.cpp index ea6f7124f8c995e37b1d3b57ac560ca269393822..01295fa4e31ca594aec6b52a1800ac349a7e5c75 100644 --- a/source/Lib/CommonLib/IntraPrediction.cpp +++ b/source/Lib/CommonLib/IntraPrediction.cpp @@ -67,6 +67,7 @@ const uint8_t IntraPrediction::m_aucIntraFilter[MAX_INTRA_FILTER_DEPTHS] = 0 // 128xn }; +#if !JVET_P0599_INTRA_SMOOTHING_INTERP_FILT const TFilterCoeff g_intraGaussFilter[32][4] = { { 16, 32, 16, 0 }, { 15, 29, 17, 3 }, @@ -101,6 +102,7 @@ const TFilterCoeff g_intraGaussFilter[32][4] = { { 3, 17, 29, 15 }, { 3, 17, 29, 15 } }; +#endif //!JVET_P0599_INTRA_SMOOTHING_INTERP_FILT // ==================================================================================================================== // Constructor / destructor / initialize @@ -618,8 +620,13 @@ void IntraPrediction::xPredIntraAng( const CPelBuf &pSrc, PelBuf &pDst, const Ch { const bool useCubicFilter = !m_ipaParam.interpolationFlag; +#if JVET_P0599_INTRA_SMOOTHING_INTERP_FILT + const TFilterCoeff intraSmoothingFilter[4] = {TFilterCoeff(16 - (deltaFract >> 1)), TFilterCoeff(32 - (deltaFract >> 1)), TFilterCoeff(16 + (deltaFract >> 1)), TFilterCoeff(deltaFract >> 1)}; + const TFilterCoeff* const f = (useCubicFilter) ? InterpolationFilter::getChromaFilterTable(deltaFract) : intraSmoothingFilter; +#else //!JVET_P0599_INTRA_SMOOTHING_INTERP_FILT const TFilterCoeff *const f = (useCubicFilter) ? InterpolationFilter::getChromaFilterTable(deltaFract) : g_intraGaussFilter[deltaFract]; +#endif //JVET_P0599_INTRA_SMOOTHING_INTERP_FILT for (int x = 0; x < width; x++) { diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index e626ef8e89ac44a4860af713b9a0ce0f17911e0f..4b182aced8252d079c3e5c6c006bc87f6f6a7814 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -50,6 +50,8 @@ #include <assert.h> #include <cassert> +#define JVET_P0599_INTRA_SMOOTHING_INTERP_FILT 1 // JVET-P0599: Cleanup of interpolation filtering for intra prediction + #define JVET_P1026_MTS_SIGNALLING 1 // JVET-P1026: CU level MTS signalling #define JVET_P0571_FIX_BS_BDPCM_CHROMA 1 // JVET-P0571: align boundary strength for Chroma BDPCM