From d7b6876ae8f77c5db6c4c9b18382676d445668a1 Mon Sep 17 00:00:00 2001 From: Alexey Filippov <alexey.filippov@huawei.com> Date: Mon, 28 Oct 2019 14:28:06 +0300 Subject: [PATCH] JVET-P0599: Cleanup of interpolation filtering for intra prediction --- source/Lib/CommonLib/IntraPrediction.cpp | 7 +++++++ source/Lib/CommonLib/TypeDef.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/source/Lib/CommonLib/IntraPrediction.cpp b/source/Lib/CommonLib/IntraPrediction.cpp index 115a9cf26c..a18f450317 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 e626ef8e89..4b182aced8 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 -- GitLab