diff --git a/cfg/encoder_lowdelay_P_vtm.cfg b/cfg/encoder_lowdelay_P_vtm.cfg index caea7e3b634aca301a32073e5f177110c3b3ace2..38290d2e5098c9867b722a17d2afaf81c6429c3d 100644 --- a/cfg/encoder_lowdelay_P_vtm.cfg +++ b/cfg/encoder_lowdelay_P_vtm.cfg @@ -116,7 +116,7 @@ LMChroma : 1 # use CCLM only DepQuant : 1 IMV : 1 ALF : 1 -MHIntra : 1 +CIIP : 1 IBC : 0 # turned off in CTC AllowDisFracMMVD : 1 AffineAmvr : 0 diff --git a/cfg/encoder_lowdelay_vtm.cfg b/cfg/encoder_lowdelay_vtm.cfg index 5898b6fc0a8ab84ebaa6fef6de0075ba99b0f4b4..9dd0a4f85131590d5e4ee67d11491b7d6e187760 100644 --- a/cfg/encoder_lowdelay_vtm.cfg +++ b/cfg/encoder_lowdelay_vtm.cfg @@ -117,9 +117,9 @@ LMChroma : 1 # use CCLM only DepQuant : 1 IMV : 1 ALF : 1 -GBi : 1 -GBiFast : 1 -MHIntra : 1 +BCW : 1 +BcwFast : 1 +CIIP : 1 Triangle : 1 IBC : 0 # turned off in CTC AllowDisFracMMVD : 1 diff --git a/cfg/encoder_randomaccess_vtm.cfg b/cfg/encoder_randomaccess_vtm.cfg index c5b87e8d29fa68737487bbd5d77cc414cf09fea9..ae4ee74a250d3df78285c012502c8903b36ce3d4 100644 --- a/cfg/encoder_randomaccess_vtm.cfg +++ b/cfg/encoder_randomaccess_vtm.cfg @@ -129,10 +129,10 @@ LMChroma : 1 # use CCLM only DepQuant : 1 IMV : 1 ALF : 1 -GBi : 1 -GBiFast : 1 +BCW : 1 +BcwFast : 1 BIO : 1 -MHIntra : 1 +CIIP : 1 Triangle : 1 IBC : 0 # turned off in CTC AllowDisFracMMVD : 1 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg index e2352c36ece776ca045ec697152555cbba14aa47..3fe9956cffe556f5508ecab6a4c17093eb79aabc 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg @@ -129,10 +129,10 @@ LMChroma : 1 # use CCLM only DepQuant : 1 IMV : 1 ALF : 1 -GBi : 1 -GBiFast : 1 +BCW : 1 +BcwFast : 1 BIO : 1 -MHIntra : 1 +CIIP : 1 Triangle : 1 IBC : 0 # turned off in CTC AllowDisFracMMVD : 1 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg index abe82d62af9e3dca34c02a448efe080623ededfb..e0b44a508ab77e4568bc175db51c9851ba710a40 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg @@ -129,10 +129,10 @@ LMChroma : 1 # use CCLM only DepQuant : 1 IMV : 1 ALF : 1 -GBi : 1 -GBiFast : 1 +BCW : 1 +BcwFast : 1 BIO : 1 -MHIntra : 1 +CIIP : 1 Triangle : 1 IBC : 0 # turned off in CTC AllowDisFracMMVD : 1 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSliceFixedSize.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSliceFixedSize.cfg index 136ac9e0ef1cd1ccf6a588ff325dbc12fb9d6e7a..a28aef1dfcbab7972c7886a1234e8cd7b59bb03f 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSliceFixedSize.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSliceFixedSize.cfg @@ -130,10 +130,10 @@ LMChroma : 1 # use CCLM only DepQuant : 1 IMV : 1 ALF : 1 -GBi : 1 -GBiFast : 1 +BCW : 1 +BcwFast : 1 BIO : 1 -MHIntra : 1 +CIIP : 1 Triangle : 1 IBC : 0 # turned off in CTC AllowDisFracMMVD : 1 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg index d575d71f55bbe3f91cae79bf187162e550b73479..b1067fff0c140c9f930979389f8b886874c0c6ee 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg @@ -127,10 +127,10 @@ LMChroma : 1 # use CCLM only DepQuant : 1 IMV : 1 ALF : 1 -GBi : 1 -GBiFast : 1 +BCW : 1 +BcwFast : 1 BIO : 1 -MHIntra : 1 +CIIP : 1 Triangle : 1 IBC : 0 # turned off in CTC AllowDisFracMMVD : 1 diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp index eeb2776f9215005c5150069a7ff9d1d69d763c43..0165b18e17c967f8a4e70dff93900f349987bf64 100644 --- a/source/App/EncoderApp/EncApp.cpp +++ b/source/App/EncoderApp/EncApp.cpp @@ -157,9 +157,9 @@ void EncApp::xInitLibCfg() m_cEncLib.setNoMtsConstraintFlag ( (m_MTS || m_MTSImplicit) ? false : true ); m_cEncLib.setNoSbtConstraintFlag ( !m_SBT ); m_cEncLib.setNoAffineMotionConstraintFlag ( !m_Affine ); - m_cEncLib.setNoGbiConstraintFlag ( !m_GBi ); + m_cEncLib.setNoBcwConstraintFlag ( !m_bcw ); m_cEncLib.setNoIbcConstraintFlag ( m_IBCMode ? false : true ); - m_cEncLib.setNoMhIntraConstraintFlag ( !m_MHIntra ); + m_cEncLib.setNoCiipConstraintFlag ( !m_ciip ); m_cEncLib.setNoFPelMmvdConstraintFlag ( !(m_MMVD && m_allowDisFracMMVD) ); m_cEncLib.setNoTriangleConstraintFlag ( !m_Triangle ); m_cEncLib.setNoLadfConstraintFlag ( !m_LadfEnabed ); @@ -181,7 +181,7 @@ void EncApp::xInitLibCfg() m_cEncLib.setNoIdrConstraintFlag ( false ); // Not yet possible to encode bitstream starting with a GDR picture m_cEncLib.setNoCraConstraintFlag ( m_iDecodingRefreshType != 1 ); m_cEncLib.setNoGdrConstraintFlag ( false ); // Not yet possible to encode GDR using config parameters - m_cEncLib.setNoApsConstraintFlag ( !m_alf && !m_lumaReshapeEnable && m_useScalingListId == SCALING_LIST_OFF); + m_cEncLib.setNoApsConstraintFlag ( !m_alf && !m_lmcsEnabled && m_useScalingListId == SCALING_LIST_OFF); #endif //====== Coding Structure ======== @@ -326,8 +326,8 @@ void EncApp::xInitLibCfg() #endif m_cEncLib.setUseCompositeRef ( m_compositeRefEnabled ); m_cEncLib.setUseSMVD ( m_SMVD ); - m_cEncLib.setUseGBi ( m_GBi ); - m_cEncLib.setUseGBiFast ( m_GBiFast ); + m_cEncLib.setUseBcw ( m_bcw ); + m_cEncLib.setUseBcwFast ( m_BcwFast ); #if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET m_cEncLib.setUseLadf ( m_LadfEnabed ); if ( m_LadfEnabed ) @@ -340,7 +340,7 @@ void EncApp::xInitLibCfg() } } #endif - m_cEncLib.setUseMHIntra ( m_MHIntra ); + m_cEncLib.setUseCiip ( m_ciip ); m_cEncLib.setUseTriangle ( m_Triangle ); m_cEncLib.setUseHashME ( m_HashME ); @@ -758,7 +758,7 @@ void EncApp::xInitLibCfg() #endif m_cEncLib.setUseALF ( m_alf ); - m_cEncLib.setReshaper ( m_lumaReshapeEnable ); + m_cEncLib.setLmcs ( m_lmcsEnabled ); m_cEncLib.setReshapeSignalType ( m_reshapeSignalType ); m_cEncLib.setReshapeIntraCMD ( m_intraCMD ); m_cEncLib.setReshapeCW ( m_reshapeCW ); diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp index e59d51b160778c1dddc7e665a15b3c86204025f2..60593f081cccb846af7abf7cfe96c9ccb9ae8b2d 100644 --- a/source/App/EncoderApp/EncAppCfg.cpp +++ b/source/App/EncoderApp/EncAppCfg.cpp @@ -126,9 +126,9 @@ EncAppCfg::EncAppCfg() , m_bNoMtsConstraintFlag(false) , m_noSbtConstraintFlag(false) , m_bNoAffineMotionConstraintFlag(false) -, m_bNoGbiConstraintFlag(false) +, m_bNoBcwConstraintFlag(false) , m_noIbcConstraintFlag(false) -, m_bNoMhIntraConstraintFlag(false) +, m_bNoCiipConstraintFlag(false) , m_noFPelMmvdConstraintFlag(false) , m_bNoTriangleConstraintFlag(false) , m_bNoLadfConstraintFlag(false) @@ -1096,15 +1096,15 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ( "ISP", m_ISP, false, "Enable Intra Sub-Partitions\n" ) ("SMVD", m_SMVD, false, "Enable Symmetric MVD\n") ("CompositeLTReference", m_compositeRefEnabled, false, "Enable Composite Long Term Reference Frame") - ("GBi", m_GBi, false, "Enable Generalized Bi-prediction(GBi)") - ("GBiFast", m_GBiFast, false, "Fast methods for Generalized Bi-prediction(GBi)\n") + ("BCW", m_bcw, false, "Enable Generalized Bi-prediction(Bcw)") + ("BcwFast", m_BcwFast, false, "Fast methods for Generalized Bi-prediction(Bcw)\n") #if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET ("LADF", m_LadfEnabed, false, "Luma adaptive deblocking filter QP Offset(L0414)") ("LadfNumIntervals", m_LadfNumIntervals, 3, "LADF number of intervals (2-5, inclusive)") ("LadfQpOffset", cfg_LadfQpOffset, cfg_LadfQpOffset, "LADF QP offset") ("LadfIntervalLowerBound", cfg_LadfIntervalLowerBound, cfg_LadfIntervalLowerBound, "LADF lower bound for 2nd lowest interval") #endif - ("MHIntra", m_MHIntra, false, "Enable MHIntra mode") + ("CIIP", m_ciip, false, "Enable CIIP mode") ("Triangle", m_Triangle, false, "Enable triangular shape motion vector prediction (0:off, 1:on)") ("HashME", m_HashME, false, "Enable hash motion estimation (0:off, 1:on)") @@ -1136,7 +1136,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("VirtualBoundariesPosX", cfg_virtualBoundariesPosX, cfg_virtualBoundariesPosX, "Locations of the vertical virtual boundaries in units of luma samples") ("VirtualBoundariesPosY", cfg_virtualBoundariesPosY, cfg_virtualBoundariesPosY, "Locations of the horizontal virtual boundaries in units of luma samples") ("EncDbOpt", m_encDbOpt, false, "Encoder optimization with deblocking filter") - ("LMCSEnable", m_lumaReshapeEnable, false, "Enable LMCS (luma mapping with chroma scaling") + ("LMCSEnable", m_lmcsEnabled, false, "Enable LMCS (luma mapping with chroma scaling") ("LMCSSignalType", m_reshapeSignalType, 0u, "Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG") ("LMCSUpdateCtrl", m_updateCtrl, 0, "LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP") ("LMCSAdpOption", m_adpOption, 0, "LMCS adaptation options: 0:automatic(default)," @@ -2838,8 +2838,8 @@ bool EncAppCfg::xCheckParameter() xConfirmPara( m_MTSInterMaxCand, "MTS only allowed with NEXT profile" ); xConfirmPara( m_SMVD, "SMVD is only allowed with NEXT profile" ); xConfirmPara( m_compositeRefEnabled, "Composite Reference Frame is only allowed with NEXT profile" ); - xConfirmPara( m_GBi, "GBi is only allowed with NEXT profile" ); - xConfirmPara( m_GBiFast, "GBiFast is only allowed with NEXT profile" ); + xConfirmPara( m_bcw, "Bcw is only allowed with NEXT profile" ); + xConfirmPara( m_BcwFast, "BcwFast is only allowed with NEXT profile" ); xConfirmPara( m_Triangle, "Triangle is only allowed with NEXT profile" ); xConfirmPara(m_DMVR, "DMVR only allowed with NEXT profile"); xConfirmPara(m_MmvdDisNum, "Number of distance MMVD entry setting only allowed with NEXT profile"); @@ -3104,34 +3104,34 @@ bool EncAppCfg::xCheckParameter() #if SHARP_LUMA_DELTA_QP xConfirmPara( m_lumaLevelToDeltaQPMapping.mode && m_uiDeltaQpRD > 0, "Luma-level-based Delta QP cannot be used together with slice level multiple-QP optimization\n" ); #endif - if (m_lumaLevelToDeltaQPMapping.mode && m_lumaReshapeEnable) + if (m_lumaLevelToDeltaQPMapping.mode && m_lmcsEnabled) { #if !JVET_P0335_HDRCTC_CHANGE msg(WARNING, "For HDR-PQ, reshaper should be used mutual-exclusively with Luma-level-based Delta QP. If use luma DQP, turn reshaper off.\n"); - m_lumaReshapeEnable = false; + m_lmcsEnabled = false; #else msg(WARNING, "For HDR-PQ, LMCS should be used mutual-exclusively with Luma-level-based Delta QP. If use LMCS, turn lumaDQP off.\n"); m_lumaLevelToDeltaQPMapping.mode = LUMALVL_TO_DQP_DISABLED; #endif } - if (!m_lumaReshapeEnable) + if (!m_lmcsEnabled) { m_reshapeSignalType = RESHAPE_SIGNAL_NULL; m_intraCMD = 0; } - if (m_lumaReshapeEnable && m_reshapeSignalType == RESHAPE_SIGNAL_PQ) + if (m_lmcsEnabled && m_reshapeSignalType == RESHAPE_SIGNAL_PQ) { m_intraCMD = 1; } - else if (m_lumaReshapeEnable && (m_reshapeSignalType == RESHAPE_SIGNAL_SDR || m_reshapeSignalType == RESHAPE_SIGNAL_HLG)) + else if (m_lmcsEnabled && (m_reshapeSignalType == RESHAPE_SIGNAL_SDR || m_reshapeSignalType == RESHAPE_SIGNAL_HLG)) { m_intraCMD = 0; } else { - m_lumaReshapeEnable = false; + m_lmcsEnabled = false; } - if (m_lumaReshapeEnable) + if (m_lmcsEnabled) { xConfirmPara(m_updateCtrl < 0, "Min. LMCS Update Control is 0"); xConfirmPara(m_updateCtrl > 2, "Max. LMCS Update Control is 2"); @@ -4419,12 +4419,12 @@ void EncAppCfg::xPrintParameter() msg( VERBOSE, "ISP:%d ", m_ISP ); msg( VERBOSE, "SMVD:%d ", m_SMVD ); msg( VERBOSE, "CompositeLTReference:%d ", m_compositeRefEnabled); - msg( VERBOSE, "GBi:%d ", m_GBi ); - msg( VERBOSE, "GBiFast:%d ", m_GBiFast ); + msg( VERBOSE, "Bcw:%d ", m_bcw ); + msg( VERBOSE, "BcwFast:%d ", m_BcwFast ); #if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET msg( VERBOSE, "LADF:%d ", m_LadfEnabed ); #endif - msg(VERBOSE, "MHIntra:%d ", m_MHIntra); + msg(VERBOSE, "CIIP:%d ", m_ciip); msg( VERBOSE, "Triangle:%d ", m_Triangle ); m_allowDisFracMMVD = m_MMVD ? m_allowDisFracMMVD : false; if ( m_MMVD ) @@ -4465,8 +4465,8 @@ void EncAppCfg::xPrintParameter() } msg(VERBOSE, " ] "); } - msg(VERBOSE, "Reshape:%d ", m_lumaReshapeEnable); - if (m_lumaReshapeEnable) + msg(VERBOSE, "Reshape:%d ", m_lmcsEnabled); + if (m_lmcsEnabled) { msg(VERBOSE, "(Signal:%s ", m_reshapeSignalType == 0 ? "SDR" : (m_reshapeSignalType == 2 ? "HDR-HLG" : "HDR-PQ")); msg(VERBOSE, "Opt:%d", m_adpOption); diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h index 516b48c298808b800315304e24fdec975d68cb2a..f293a9f1146e96a94453b79760a258634a3c0ffa 100644 --- a/source/App/EncoderApp/EncAppCfg.h +++ b/source/App/EncoderApp/EncAppCfg.h @@ -151,9 +151,9 @@ protected: bool m_bNoMtsConstraintFlag; bool m_noSbtConstraintFlag; bool m_bNoAffineMotionConstraintFlag; - bool m_bNoGbiConstraintFlag; + bool m_bNoBcwConstraintFlag; bool m_noIbcConstraintFlag; - bool m_bNoMhIntraConstraintFlag; + bool m_bNoCiipConstraintFlag; bool m_noFPelMmvdConstraintFlag; bool m_bNoTriangleConstraintFlag; bool m_bNoLadfConstraintFlag; @@ -306,8 +306,8 @@ protected: #endif bool m_SMVD; bool m_compositeRefEnabled; - bool m_GBi; - bool m_GBiFast; + bool m_bcw; + bool m_BcwFast; #if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET bool m_LadfEnabed; int m_LadfNumIntervals; @@ -315,7 +315,7 @@ protected: int m_LadfIntervalLowerBound[MAX_LADF_INTERVALS]; #endif - bool m_MHIntra; + bool m_ciip; bool m_Triangle; bool m_HashME; bool m_allowDisFracMMVD; @@ -350,7 +350,7 @@ protected: unsigned m_numHorVirtualBoundaries; std::vector<unsigned> m_virtualBoundariesPosX; std::vector<unsigned> m_virtualBoundariesPosY; - bool m_lumaReshapeEnable; + bool m_lmcsEnabled; uint32_t m_reshapeSignalType; uint32_t m_intraCMD; ReshapeCW m_reshapeCW; diff --git a/source/Lib/CommonLib/Buffer.cpp b/source/Lib/CommonLib/Buffer.cpp index 5bd275e4cf0aef33930cfe17a09489c367192a0b..78eef2b9fb31d37b21e1088176ebefb738ca581f 100644 --- a/source/Lib/CommonLib/Buffer.cpp +++ b/source/Lib/CommonLib/Buffer.cpp @@ -100,14 +100,14 @@ void applyBiPROFCore (Pel* dst, int dstStride, const Pel* src0, const Pel* src1, #endif const int clipbd = clpRng.bd; - const int shiftNum = std::max<int>(2, (IF_INTERNAL_PREC - clipbd)) + g_GbiLog2WeightBase; - const int offset = (1 << (shiftNum - 1)) + (IF_INTERNAL_OFFS << g_GbiLog2WeightBase); + const int shiftNum = std::max<int>(2, (IF_INTERNAL_PREC - clipbd)) + g_BcwLog2WeightBase; + const int offset = (1 << (shiftNum - 1)) + (IF_INTERNAL_OFFS << g_BcwLog2WeightBase); #if JVET_P0154_PROF_SAMPLE_OFFSET_CLIPPING const int dILimit = 1 << std::max<int>(clpRng.bd + 1, 13); #endif - const int8_t w1 = g_GbiWeightBase - w0; + const int8_t w1 = g_BcwWeightBase - w0; for (int h = 0; h < height; h++) { @@ -354,12 +354,12 @@ void calcBlkGradientCore(int sx, int sy, int *arraysGx2, int *arraysGxGy } } -#if ENABLE_SIMD_OPT_GBI -void removeWeightHighFreq(int16_t* dst, int dstStride, const int16_t* src, int srcStride, int width, int height, int shift, int gbiWeight) +#if ENABLE_SIMD_OPT_BCW +void removeWeightHighFreq(int16_t* dst, int dstStride, const int16_t* src, int srcStride, int width, int height, int shift, int bcwWeight) { - int normalizer = ((1 << 16) + (gbiWeight > 0 ? (gbiWeight >> 1) : -(gbiWeight >> 1))) / gbiWeight; - int weight0 = normalizer << g_GbiLog2WeightBase; - int weight1 = (g_GbiWeightBase - gbiWeight)*normalizer; + int normalizer = ((1 << 16) + (bcwWeight > 0 ? (bcwWeight >> 1) : -(bcwWeight >> 1))) / bcwWeight; + int weight0 = normalizer << g_BcwLog2WeightBase; + int weight1 = (g_BcwWeightBase - bcwWeight)*normalizer; #define REM_HF_INC \ src += srcStride; \ dst += dstStride; \ @@ -436,7 +436,7 @@ PelBufferOps::PelBufferOps() copyBuffer = copyBufferCore; padding = paddingCore; -#if ENABLE_SIMD_OPT_GBI +#if ENABLE_SIMD_OPT_BCW removeWeightHighFreq8 = removeWeightHighFreq; removeWeightHighFreq4 = removeWeightHighFreq; removeHighFreq8 = removeHighFreq; @@ -489,11 +489,11 @@ void paddingCore(Pel *ptr, int stride, int width, int height, int padSize) } } template<> -void AreaBuf<Pel>::addWeightedAvg(const AreaBuf<const Pel> &other1, const AreaBuf<const Pel> &other2, const ClpRng& clpRng, const int8_t gbiIdx) +void AreaBuf<Pel>::addWeightedAvg(const AreaBuf<const Pel> &other1, const AreaBuf<const Pel> &other2, const ClpRng& clpRng, const int8_t bcwIdx) { - const int8_t w0 = getGbiWeight(gbiIdx, REF_PIC_LIST_0); - const int8_t w1 = getGbiWeight(gbiIdx, REF_PIC_LIST_1); - const int8_t log2WeightBase = g_GbiLog2WeightBase; + const int8_t w0 = getBcwWeight(bcwIdx, REF_PIC_LIST_0); + const int8_t w1 = getBcwWeight(bcwIdx, REF_PIC_LIST_1); + const int8_t log2WeightBase = g_BcwLog2WeightBase; const Pel* src0 = other1.buf; const Pel* src2 = other2.buf; diff --git a/source/Lib/CommonLib/Buffer.h b/source/Lib/CommonLib/Buffer.h index 46f26ace336ed8cb6143675596d682c6c7da2685..073ce01653ed26a0c8cd9e593d4a7b98b133d318 100644 --- a/source/Lib/CommonLib/Buffer.h +++ b/source/Lib/CommonLib/Buffer.h @@ -74,9 +74,9 @@ struct PelBufferOps void(*calcBlkGradient)(int sx, int sy, int *arraysGx2, int *arraysGxGy, int *arraysGxdI, int *arraysGy2, int *arraysGydI, int &sGx2, int &sGy2, int &sGxGy, int &sGxdI, int &sGydI, int width, int height, int unitSize); void(*copyBuffer)(Pel *src, int srcStride, Pel *dst, int dstStride, int width, int height); void(*padding)(Pel *dst, int stride, int width, int height, int padSize); -#if ENABLE_SIMD_OPT_GBI - void ( *removeWeightHighFreq8) ( Pel* src0, int src0Stride, const Pel* src1, int src1Stride, int width, int height, int shift, int gbiWeight); - void ( *removeWeightHighFreq4) ( Pel* src0, int src0Stride, const Pel* src1, int src1Stride, int width, int height, int shift, int gbiWeight); +#if ENABLE_SIMD_OPT_BCW + void ( *removeWeightHighFreq8) ( Pel* src0, int src0Stride, const Pel* src1, int src1Stride, int width, int height, int shift, int bcwWeight); + void ( *removeWeightHighFreq4) ( Pel* src0, int src0Stride, const Pel* src1, int src1Stride, int width, int height, int shift, int bcwWeight); void ( *removeHighFreq8) ( Pel* src0, int src0Stride, const Pel* src1, int src1Stride, int width, int height); void ( *removeHighFreq4) ( Pel* src0, int src0Stride, const Pel* src1, int src1Stride, int width, int height); #endif @@ -85,7 +85,7 @@ struct PelBufferOps void (*applyPROF) (Pel* dst, int dstStride, const Pel* src, int srcStride, int width, int height, const Pel* gradX, const Pel* gradY, int gradStride, const int* dMvX, const int* dMvY, int dMvStride, const bool& bi, int shiftNum, Pel offset, const ClpRng& clpRng); #else void (*applyPROF) (Pel* dst, int dstStride, const Pel* src, int srcStride, int width, int height, const Pel* gradX, const Pel* gradY, int gradStride, const int* dMvX, const int* dMvY, int dMvStride, int shiftNum, Pel offset, const ClpRng& clpRng); - void (*applyBiPROF[2]) (Pel* dst, int dstStride, const Pel* src0, const Pel* src1, int srcStride, int width, int height, const Pel* gradX0, const Pel* gradY0, const Pel* gradX1, const Pel* gradY1, int gradStride, const int* dMvX0, const int* dMvY0, const int* dMvX1, const int* dMvY1, int dMvStride, const int8_t gbiWeightL0, const ClpRng& clpRng); + void (*applyBiPROF[2]) (Pel* dst, int dstStride, const Pel* src0, const Pel* src1, int srcStride, int width, int height, const Pel* gradX0, const Pel* gradY0, const Pel* gradX1, const Pel* gradY1, int gradStride, const int* dMvX0, const int* dMvY0, const int* dMvX1, const int* dMvY1, int dMvStride, const int8_t bcwWeightL0, const ClpRng& clpRng); #endif void (*roundIntVector) (int* v, int size, unsigned int nShift, const int dmvLimit); }; @@ -125,8 +125,8 @@ struct AreaBuf : public Size #if JVET_O0549_ENCODER_ONLY_FILTER void extendBorderPel(unsigned marginX, unsigned marginY); #endif - void addWeightedAvg ( const AreaBuf<const T> &other1, const AreaBuf<const T> &other2, const ClpRng& clpRng, const int8_t gbiIdx); - void removeWeightHighFreq ( const AreaBuf<T>& other, const bool bClip, const ClpRng& clpRng, const int8_t iGbiWeight); + void addWeightedAvg ( const AreaBuf<const T> &other1, const AreaBuf<const T> &other2, const ClpRng& clpRng, const int8_t bcwIdx); + void removeWeightHighFreq ( const AreaBuf<T>& other, const bool bClip, const ClpRng& clpRng, const int8_t iBcwWeight); void addAvg ( const AreaBuf<const T> &other1, const AreaBuf<const T> &other2, const ClpRng& clpRng ); void removeHighFreq ( const AreaBuf<T>& other, const bool bClip, const ClpRng& clpRng); void updateHistogram ( std::vector<int32_t>& hist ) const; @@ -420,10 +420,10 @@ template<> void AreaBuf<Pel>::toLast( const ClpRng& clpRng ); template<typename T> -void AreaBuf<T>::removeWeightHighFreq(const AreaBuf<T>& other, const bool bClip, const ClpRng& clpRng, const int8_t gbiWeight) +void AreaBuf<T>::removeWeightHighFreq(const AreaBuf<T>& other, const bool bClip, const ClpRng& clpRng, const int8_t bcwWeight) { - const int8_t gbiWeightOther = g_GbiWeightBase - gbiWeight; - const int8_t log2WeightBase = g_GbiLog2WeightBase; + const int8_t bcwWeightOther = g_BcwWeightBase - bcwWeight; + const int8_t log2WeightBase = g_BcwLog2WeightBase; const Pel* src = other.buf; const int srcStride = other.stride; @@ -431,22 +431,22 @@ void AreaBuf<T>::removeWeightHighFreq(const AreaBuf<T>& other, const bool bClip, Pel* dst = buf; const int dstStride = stride; -#if ENABLE_SIMD_OPT_GBI +#if ENABLE_SIMD_OPT_BCW if(!bClip) { if(!(width & 7)) - g_pelBufOP.removeWeightHighFreq8(dst, dstStride, src, srcStride, width, height, 16, gbiWeight); + g_pelBufOP.removeWeightHighFreq8(dst, dstStride, src, srcStride, width, height, 16, bcwWeight); else if(!(width & 3)) - g_pelBufOP.removeWeightHighFreq4(dst, dstStride, src, srcStride, width, height, 16, gbiWeight); + g_pelBufOP.removeWeightHighFreq4(dst, dstStride, src, srcStride, width, height, 16, bcwWeight); else CHECK(true, "Not supported"); } else { #endif - int normalizer = ((1 << 16) + (gbiWeight > 0 ? (gbiWeight >> 1) : -(gbiWeight >> 1))) / gbiWeight; + int normalizer = ((1 << 16) + (bcwWeight > 0 ? (bcwWeight >> 1) : -(bcwWeight >> 1))) / bcwWeight; int weight0 = normalizer << log2WeightBase; - int weight1 = gbiWeightOther * normalizer; + int weight1 = bcwWeightOther * normalizer; #define REM_HF_INC \ src += srcStride; \ dst += dstStride; \ @@ -466,7 +466,7 @@ void AreaBuf<T>::removeWeightHighFreq(const AreaBuf<T>& other, const bool bClip, #undef REM_HF_INC #undef REM_HF_OP #undef REM_HF_OP_CLIP -#if ENABLE_SIMD_OPT_GBI +#if ENABLE_SIMD_OPT_BCW } #endif } @@ -480,7 +480,7 @@ void AreaBuf<T>::removeHighFreq( const AreaBuf<T>& other, const bool bClip, cons T* dst = buf; const int dstStride = stride; -#if ENABLE_SIMD_OPT_GBI +#if ENABLE_SIMD_OPT_BCW if (!bClip) { if(!(width & 7)) @@ -514,7 +514,7 @@ void AreaBuf<T>::removeHighFreq( const AreaBuf<T>& other, const bool bClip, cons #undef REM_HF_OP #undef REM_HF_OP_CLIP -#if ENABLE_SIMD_OPT_GBI +#if ENABLE_SIMD_OPT_BCW } #endif } @@ -745,7 +745,7 @@ struct UnitBuf void copyClip ( const UnitBuf<const T> &src, const ClpRngs& clpRngs ); #endif void subtract ( const UnitBuf<const T> &other ); - void addWeightedAvg ( const UnitBuf<const T> &other1, const UnitBuf<const T> &other2, const ClpRngs& clpRngs, const uint8_t gbiIdx = GBI_DEFAULT, const bool chromaOnly = false, const bool lumaOnly = false); + void addWeightedAvg ( const UnitBuf<const T> &other1, const UnitBuf<const T> &other2, const ClpRngs& clpRngs, const uint8_t bcwIdx = BCW_DEFAULT, const bool chromaOnly = false, const bool lumaOnly = false); void addAvg ( const UnitBuf<const T> &other1, const UnitBuf<const T> &other2, const ClpRngs& clpRngs, const bool chromaOnly = false, const bool lumaOnly = false); void extendSingleBorderPel(); #if JVET_O0549_ENCODER_ONLY_FILTER @@ -753,7 +753,7 @@ struct UnitBuf #endif void extendBorderPel ( unsigned margin ); void removeHighFreq ( const UnitBuf<T>& other, const bool bClip, const ClpRngs& clpRngs - , const int8_t gbiWeight = g_GbiWeights[GBI_DEFAULT] + , const int8_t bcwWeight = g_BcwWeights[BCW_DEFAULT] ); UnitBuf< T> subBuf (const UnitArea& subArea); @@ -849,7 +849,7 @@ void UnitBuf<T>::reconstruct(const UnitBuf<const T> &pred, const UnitBuf<const T } template<typename T> -void UnitBuf<T>::addWeightedAvg(const UnitBuf<const T> &other1, const UnitBuf<const T> &other2, const ClpRngs& clpRngs, const uint8_t gbiIdx /* = GBI_DEFAULT */, const bool chromaOnly /* = false */, const bool lumaOnly /* = false */) +void UnitBuf<T>::addWeightedAvg(const UnitBuf<const T> &other1, const UnitBuf<const T> &other2, const ClpRngs& clpRngs, const uint8_t bcwIdx /* = BCW_DEFAULT */, const bool chromaOnly /* = false */, const bool lumaOnly /* = false */) { const size_t istart = chromaOnly ? 1 : 0; const size_t iend = lumaOnly ? 1 : bufs.size(); @@ -858,7 +858,7 @@ void UnitBuf<T>::addWeightedAvg(const UnitBuf<const T> &other1, const UnitBuf<co for(size_t i = istart; i < iend; i++) { - bufs[i].addWeightedAvg(other1.bufs[i], other2.bufs[i], clpRngs.comp[i], gbiIdx); + bufs[i].addWeightedAvg(other1.bufs[i], other2.bufs[i], clpRngs.comp[i], bcwIdx); } } @@ -918,12 +918,12 @@ void UnitBuf<T>::extendBorderPel( unsigned margin ) template<typename T> void UnitBuf<T>::removeHighFreq( const UnitBuf<T>& other, const bool bClip, const ClpRngs& clpRngs - , const int8_t gbiWeight + , const int8_t bcwWeight ) { - if(gbiWeight != g_GbiWeights[GBI_DEFAULT]) + if(bcwWeight != g_BcwWeights[BCW_DEFAULT]) { - bufs[0].removeWeightHighFreq(other.bufs[0], bClip, clpRngs.comp[0], gbiWeight); + bufs[0].removeWeightHighFreq(other.bufs[0], bClip, clpRngs.comp[0], bcwWeight); return; } bufs[0].removeHighFreq(other.bufs[0], bClip, clpRngs.comp[0]); diff --git a/source/Lib/CommonLib/CodingStatistics.h b/source/Lib/CommonLib/CodingStatistics.h index 0b73663aa1bb0b9ff98f48d63fc800387fac0509..25f54d6a8a0e0fe5b97e586248367da2e5ac5dd2 100644 --- a/source/Lib/CommonLib/CodingStatistics.h +++ b/source/Lib/CommonLib/CodingStatistics.h @@ -109,7 +109,7 @@ enum CodingStatisticsType STATS__CABAC_BITS__OTHER, STATS__CABAC_BITS__INVALID, STATS__CABAC_BITS__IMV_FLAG, - STATS__CABAC_BITS__GBI_IDX, + STATS__CABAC_BITS__BCW_IDX, STATS__CABAC_BITS__SBT_MODE, STATS__CABAC_BITS__MH_INTRA_FLAG, STATS__CABAC_BITS__TRIANGLE_FLAG, @@ -201,7 +201,7 @@ static inline const char* getName(CodingStatisticsType name) "CABAC_BITS__OTHER", "CABAC_BITS__INVALID", "CABAC_BITS__IMV_FLAG", - "CABAC_BITS__GBI_IDX", + "CABAC_BITS__BCW_IDX", "CABAC_BITS__SBT_MODE", "CABAC_BITS__MH_INTRA_FLAG", "CABAC_BITS__TRIANGLE_FLAG", diff --git a/source/Lib/CommonLib/CommonDef.h b/source/Lib/CommonLib/CommonDef.h index 163b72e961eb0b3b238af585a02f48643ced6e4b..b07bccab846be8dc9052ac6dbafb3851d59e48af 100644 --- a/source/Lib/CommonLib/CommonDef.h +++ b/source/Lib/CommonLib/CommonDef.h @@ -364,9 +364,9 @@ static const int BIO_TEMP_BUFFER_SIZE = (MAX_CU_SIZE static const int PROF_BORDER_EXT_W = 1; static const int PROF_BORDER_EXT_H = 1; -static const int GBI_NUM = 5; ///< the number of weight options -static const int GBI_DEFAULT = ((uint8_t)(GBI_NUM >> 1)); ///< Default weighting index representing for w=0.5 -static const int GBI_SIZE_CONSTRAINT = 256; ///< disabling GBi if cu size is smaller than 256 +static const int BCW_NUM = 5; ///< the number of weight options +static const int BCW_DEFAULT = ((uint8_t)(BCW_NUM >> 1)); ///< Default weighting index representing for w=0.5 +static const int BCW_SIZE_CONSTRAINT = 256; ///< disabling Bcw if cu size is smaller than 256 static const int MAX_NUM_HMVP_CANDS = (MRG_MAX_NUM_CANDS-1); ///< maximum number of HMVP candidates to be stored and used in merge list static const int MAX_NUM_HMVP_AVMPCANDS = 4; ///< maximum number of HMVP candidates to be used in AMVP list diff --git a/source/Lib/CommonLib/ContextModelling.cpp b/source/Lib/CommonLib/ContextModelling.cpp index bbd174e5f380ace2d47bdcb85b5845c84b227efc..b3853f900fa67d3e5972c59c667184c1daac0015 100644 --- a/source/Lib/CommonLib/ContextModelling.cpp +++ b/source/Lib/CommonLib/ContextModelling.cpp @@ -332,7 +332,7 @@ unsigned DeriveCtx::CtxIBCFlag(const CodingUnit& cu) void MergeCtx::setMergeInfo( PredictionUnit& pu, int candIdx ) { CHECK( candIdx >= numValidMergeCand, "Merge candidate does not exist" ); - pu.regularMergeFlag = !(pu.mhIntraFlag || pu.cu->triangle); + pu.regularMergeFlag = !(pu.ciipFlag || pu.cu->triangle); pu.mergeFlag = true; pu.mmvdMergeFlag = false; pu.interDir = interDirNeighbours[candIdx]; @@ -355,7 +355,7 @@ void MergeCtx::setMergeInfo( PredictionUnit& pu, int candIdx ) pu.bv.changePrecision(MV_PRECISION_INTERNAL, MV_PRECISION_INT); // used for only integer resolution pu.cu->imv = pu.cu->imv == IMV_HPEL ? 0 : pu.cu->imv; } - pu.cu->GBiIdx = ( interDirNeighbours[candIdx] == 3 ) ? GBiIdx[candIdx] : GBI_DEFAULT; + pu.cu->BcwIdx = ( interDirNeighbours[candIdx] == 3 ) ? BcwIdx[candIdx] : BCW_DEFAULT; PU::restrictBiPredMergeCandsOne(pu); pu.mmvdEncOptMode = 0; @@ -525,7 +525,7 @@ void MergeCtx::setMmvdMergeCandiInfo(PredictionUnit& pu, int candIdx) pu.mvpNum[REF_PIC_LIST_1] = NOT_VALID; pu.cu->imv = mmvdUseAltHpelIf[fPosBaseIdx] ? IMV_HPEL : 0; - pu.cu->GBiIdx = (interDirNeighbours[fPosBaseIdx] == 3) ? GBiIdx[fPosBaseIdx] : GBI_DEFAULT; + pu.cu->BcwIdx = (interDirNeighbours[fPosBaseIdx] == 3) ? BcwIdx[fPosBaseIdx] : BCW_DEFAULT; for (int refList = 0; refList < 2; refList++) { diff --git a/source/Lib/CommonLib/ContextModelling.h b/source/Lib/CommonLib/ContextModelling.h index 48dd16d8b2302f5c96d7caa9d24681117611a94f..b6eca5a84b2124933f8b08d4c651092dbcd8cf40 100644 --- a/source/Lib/CommonLib/ContextModelling.h +++ b/source/Lib/CommonLib/ContextModelling.h @@ -484,7 +484,7 @@ public: ~MergeCtx() {} public: MvField mvFieldNeighbours [ MRG_MAX_NUM_CANDS << 1 ]; // double length for mv of both lists - uint8_t GBiIdx [ MRG_MAX_NUM_CANDS ]; + uint8_t BcwIdx [ MRG_MAX_NUM_CANDS ]; unsigned char interDirNeighbours[ MRG_MAX_NUM_CANDS ]; MergeType mrgTypeNeighbours [ MRG_MAX_NUM_CANDS ]; int numValidMergeCand; @@ -508,7 +508,7 @@ public: MvField mvFieldNeighbours[AFFINE_MRG_MAX_NUM_CANDS << 1][3]; // double length for mv of both lists unsigned char interDirNeighbours[AFFINE_MRG_MAX_NUM_CANDS]; EAffineModel affineType[AFFINE_MRG_MAX_NUM_CANDS]; - uint8_t GBiIdx[AFFINE_MRG_MAX_NUM_CANDS]; + uint8_t BcwIdx[AFFINE_MRG_MAX_NUM_CANDS]; int numValidMergeCand; int maxNumMergeCand; diff --git a/source/Lib/CommonLib/Contexts.cpp b/source/Lib/CommonLib/Contexts.cpp index c4c7cc9f9debc11ffa31f959e08de7eab89ad81e..162bb9c375878f785141afcdd6f6d0d82a6a463b 100644 --- a/source/Lib/CommonLib/Contexts.cpp +++ b/source/Lib/CommonLib/Contexts.cpp @@ -419,7 +419,7 @@ const CtxSet ContextSetCfg::AffMergeIdx = ContextSetCfg::addCtxSet { 0, }, }); -const CtxSet ContextSetCfg::GBiIdx = ContextSetCfg::addCtxSet +const CtxSet ContextSetCfg::BcwIdx = ContextSetCfg::addCtxSet ({ { 5, }, { 4, }, @@ -893,7 +893,7 @@ const CtxSet ContextSetCfg::AlfUseTemporalFilt = ContextSetCfg::addCtxSet { 0, }, }); -const CtxSet ContextSetCfg::MHIntraFlag = ContextSetCfg::addCtxSet +const CtxSet ContextSetCfg::CiipFlag = ContextSetCfg::addCtxSet ({ { 50, }, { 50, }, @@ -1202,7 +1202,7 @@ const CtxSet ContextSetCfg::AffMergeIdx = ContextSetCfg::addCtxSet { 0, }, }); -const CtxSet ContextSetCfg::GBiIdx = ContextSetCfg::addCtxSet +const CtxSet ContextSetCfg::BcwIdx = ContextSetCfg::addCtxSet ({ { 20, }, { 5, }, @@ -1676,7 +1676,7 @@ const CtxSet ContextSetCfg::AlfUseTemporalFilt = ContextSetCfg::addCtxSet { 0, }, }); -const CtxSet ContextSetCfg::MHIntraFlag = ContextSetCfg::addCtxSet +const CtxSet ContextSetCfg::CiipFlag = ContextSetCfg::addCtxSet ({ { 58, }, { 58, }, diff --git a/source/Lib/CommonLib/Contexts.h b/source/Lib/CommonLib/Contexts.h index 868e2b477570370d8581a2f0e4d61e3a3d818079..c283f879779120d6cc8863bc812117d1fa7e0419 100644 --- a/source/Lib/CommonLib/Contexts.h +++ b/source/Lib/CommonLib/Contexts.h @@ -264,14 +264,14 @@ public: static const CtxSet ChromaQpAdjFlag; static const CtxSet ChromaQpAdjIdc; static const CtxSet ImvFlag; - static const CtxSet GBiIdx; + static const CtxSet BcwIdx; static const CtxSet ctbAlfFlag; static const CtxSet ctbAlfAlternative; #if !JVET_P0162_REMOVE_ALF_CTB_FIRST_USE_APS_FLAG static const CtxSet AlfUseLatestFilt; #endif static const CtxSet AlfUseTemporalFilt; - static const CtxSet MHIntraFlag; + static const CtxSet CiipFlag; static const CtxSet SmvdFlag; static const CtxSet IBCFlag; static const CtxSet ISPMode; diff --git a/source/Lib/CommonLib/InterPrediction.cpp b/source/Lib/CommonLib/InterPrediction.cpp index a5a8257f9aa6bf0cbd3f601851ba35afb81e36e6..c67f3e220a65bb0321553b57941b88c2094127cc 100644 --- a/source/Lib/CommonLib/InterPrediction.cpp +++ b/source/Lib/CommonLib/InterPrediction.cpp @@ -424,7 +424,7 @@ void InterPrediction::xSubPuBio(PredictionUnit& pu, PelUnitBuf& predBuf, const R subPu.mmvdMergeFlag = pu.mmvdMergeFlag; subPu.mmvdEncOptMode = pu.mmvdEncOptMode; subPu.mergeFlag = pu.mergeFlag; - subPu.mhIntraFlag = pu.mhIntraFlag; + subPu.ciipFlag = pu.ciipFlag; subPu.mvRefine = pu.mvRefine; subPu.refIdx[0] = pu.refIdx[0]; subPu.refIdx[1] = pu.refIdx[1]; @@ -586,7 +586,7 @@ void InterPrediction::xPredInterBi(PredictionUnit& pu, PelUnitBuf &pcYuvPred, Pe } } - if (bioApplied && pu.mhIntraFlag) + if (bioApplied && pu.ciipFlag) bioApplied = false; if (bioApplied && pu.cu->smvdMode) @@ -594,7 +594,7 @@ void InterPrediction::xPredInterBi(PredictionUnit& pu, PelUnitBuf &pcYuvPred, Pe bioApplied = false; } - if (pu.cu->cs->sps->getUseGBi() && bioApplied && pu.cu->GBiIdx != GBI_DEFAULT) + if (pu.cu->cs->sps->getUseBcw() && bioApplied && pu.cu->BcwIdx != BCW_DEFAULT) { bioApplied = false; } @@ -688,7 +688,7 @@ void InterPrediction::xPredInterBi(PredictionUnit& pu, PelUnitBuf &pcYuvPred, Pe const bool lumaOnly = luma && !chroma; const bool chromaOnly = !luma && chroma; #endif - if( !pu.cu->triangle && (!dmvrApplied) && (!bioApplied) && pps.getWPBiPred() && slice.getSliceType() == B_SLICE && pu.cu->GBiIdx==GBI_DEFAULT) + if( !pu.cu->triangle && (!dmvrApplied) && (!bioApplied) && pps.getWPBiPred() && slice.getSliceType() == B_SLICE && pu.cu->BcwIdx==BCW_DEFAULT) { #if JVET_P0445_SUBBLOCK_MERGE_ENC_SPEEDUP xWeightedPredictionBi( pu, srcPred0, srcPred1, pcYuvPred, m_maxCompIDToPred, lumaOnly, chromaOnly ); @@ -1532,18 +1532,18 @@ void InterPrediction::xWeightedAverage(const PredictionUnit& pu, const CPelUnitB #endif { xApplyBiPROF(pu, pcYuvSrc0.bufs[COMPONENT_Y], pcYuvSrc1.bufs[COMPONENT_Y], pcYuvDst.bufs[COMPONENT_Y], clpRngs.comp[COMPONENT_Y]); - pcYuvDst.addWeightedAvg(pcYuvSrc0, pcYuvSrc1, clpRngs, pu.cu->GBiIdx, true); + pcYuvDst.addWeightedAvg(pcYuvSrc0, pcYuvSrc1, clpRngs, pu.cu->BcwIdx, true); CHECK(yuvDstTmp, "yuvDstTmp is disallowed with PROF"); return; } #endif - if( pu.cu->GBiIdx != GBI_DEFAULT && (yuvDstTmp || !pu.mhIntraFlag) ) + if( pu.cu->BcwIdx != BCW_DEFAULT && (yuvDstTmp || !pu.ciipFlag) ) { - CHECK(bioApplied, "GBi is disallowed with BIO"); + CHECK(bioApplied, "Bcw is disallowed with BIO"); #if JVET_P0445_SUBBLOCK_MERGE_ENC_SPEEDUP - pcYuvDst.addWeightedAvg(pcYuvSrc0, pcYuvSrc1, clpRngs, pu.cu->GBiIdx, chromaOnly, lumaOnly); + pcYuvDst.addWeightedAvg(pcYuvSrc0, pcYuvSrc1, clpRngs, pu.cu->BcwIdx, chromaOnly, lumaOnly); #else - pcYuvDst.addWeightedAvg(pcYuvSrc0, pcYuvSrc1, clpRngs, pu.cu->GBiIdx); + pcYuvDst.addWeightedAvg(pcYuvSrc0, pcYuvSrc1, clpRngs, pu.cu->BcwIdx); #endif if (yuvDstTmp) #if JVET_P0445_SUBBLOCK_MERGE_ENC_SPEEDUP @@ -1802,11 +1802,11 @@ void InterPrediction::xApplyBiPROF(const PredictionUnit &pu, const CPelBuf& pcYu Pel* dstY = pcYuvDst.bufAt(0, 0); if(m_applyPROF[0] && m_applyPROF[1]) - g_pelBufOP.applyBiPROF[1](dstY, pcYuvDst.stride, srcY0, srcY1, pcYuvSrc0.stride, width, height, gX0, gY0, gX1, gY1, gradXExt0.stride, dMvX0, dMvY0, dMvX1, dMvY1, blockWidth, getGbiWeight(pu.cu->GBiIdx, REF_PIC_LIST_0), clpRng); + g_pelBufOP.applyBiPROF[1](dstY, pcYuvDst.stride, srcY0, srcY1, pcYuvSrc0.stride, width, height, gX0, gY0, gX1, gY1, gradXExt0.stride, dMvX0, dMvY0, dMvX1, dMvY1, blockWidth, getBcwWeight(pu.cu->BcwIdx, REF_PIC_LIST_0), clpRng); else if (m_applyPROF[0]) - g_pelBufOP.applyBiPROF[0](dstY, pcYuvDst.stride, srcY0, srcY1, pcYuvSrc0.stride, width, height, gX0, gY0, gX1, gY1, gradXExt0.stride, dMvX0, dMvY0, dMvX1, dMvY1, blockWidth, getGbiWeight(pu.cu->GBiIdx, REF_PIC_LIST_0), clpRng); + g_pelBufOP.applyBiPROF[0](dstY, pcYuvDst.stride, srcY0, srcY1, pcYuvSrc0.stride, width, height, gX0, gY0, gX1, gY1, gradXExt0.stride, dMvX0, dMvY0, dMvX1, dMvY1, blockWidth, getBcwWeight(pu.cu->BcwIdx, REF_PIC_LIST_0), clpRng); else - g_pelBufOP.applyBiPROF[0](dstY, pcYuvDst.stride, srcY1, srcY0, pcYuvSrc0.stride, width, height, gX1, gY1, gX0, gY0, gradXExt0.stride, dMvX1, dMvY1, dMvX0, dMvY0, blockWidth, getGbiWeight(pu.cu->GBiIdx, REF_PIC_LIST_1), clpRng); + g_pelBufOP.applyBiPROF[0](dstY, pcYuvDst.stride, srcY1, srcY0, pcYuvSrc0.stride, width, height, gX1, gY1, gX0, gY0, gradXExt0.stride, dMvX1, dMvY1, dMvX0, dMvY0, blockWidth, getBcwWeight(pu.cu->BcwIdx, REF_PIC_LIST_1), clpRng); } #endif @@ -1815,7 +1815,7 @@ void InterPrediction::motionCompensation( PredictionUnit &pu, PelUnitBuf &predBu , PelUnitBuf* predBufWOBIO /*= NULL*/ ) { - CHECK(predBufWOBIO && pu.mhIntraFlag, "the case should not happen!"); + CHECK(predBufWOBIO && pu.ciipFlag, "the case should not happen!"); if (!pu.cs->pcv->isEncoder) { @@ -1922,7 +1922,7 @@ void InterPrediction::motionCompensation( PredictionUnit &pu, PelUnitBuf &predBu } } - if (bioApplied && pu.mhIntraFlag) + if (bioApplied && pu.ciipFlag) { bioApplied = false; } @@ -1931,7 +1931,7 @@ void InterPrediction::motionCompensation( PredictionUnit &pu, PelUnitBuf &predBu { bioApplied = false; } - if (pu.cu->cs->sps->getUseGBi() && bioApplied && pu.cu->GBiIdx != GBI_DEFAULT) + if (pu.cu->cs->sps->getUseBcw() && bioApplied && pu.cu->BcwIdx != BCW_DEFAULT) { bioApplied = false; } diff --git a/source/Lib/CommonLib/IntraPrediction.cpp b/source/Lib/CommonLib/IntraPrediction.cpp index 1914b2da6494aa53d1db6c43830797178cc7f1dc..cf9f303b2891c0f908b4949dece4479beaad66a1 100644 --- a/source/Lib/CommonLib/IntraPrediction.cpp +++ b/source/Lib/CommonLib/IntraPrediction.cpp @@ -815,7 +815,7 @@ void IntraPrediction::switchBuffer(const PredictionUnit &pu, ComponentID compID, void IntraPrediction::geneIntrainterPred(const CodingUnit &cu) { - if (!cu.firstPU->mhIntraFlag) + if (!cu.firstPU->ciipFlag) { return; } diff --git a/source/Lib/CommonLib/LoopFilter.cpp b/source/Lib/CommonLib/LoopFilter.cpp index 2d21dfd4b74b57b43b01f0a1a25cdf09b065f288..74f571f1b13eb0208e241d1f51ec0a58c8b058f7 100644 --- a/source/Lib/CommonLib/LoopFilter.cpp +++ b/source/Lib/CommonLib/LoopFilter.cpp @@ -760,7 +760,7 @@ unsigned LoopFilter::xGetBoundaryStrengthSingle ( const CodingUnit& cu, const De const TransformUnit& tuP = *cuP.cs->getTU(posP, cuQ.chType); //based on chType of the current cu, because cuQ.chType and cuP.chType are not the same when local dual-tree is applied const PreCalcValues& pcv = *cu.cs->pcv; const unsigned rasterIdx = getRasterIdx( Position{ localPos.x, localPos.y }, pcv ); - if (m_aapucBS[edgeDir][rasterIdx] && (cuP.firstPU->mhIntraFlag || cuQ.firstPU->mhIntraFlag)) + if (m_aapucBS[edgeDir][rasterIdx] && (cuP.firstPU->ciipFlag || cuQ.firstPU->ciipFlag)) { return (BsSet(2, COMPONENT_Y) + BsSet(2, COMPONENT_Cb) + BsSet(2, COMPONENT_Cr)); } @@ -786,7 +786,7 @@ unsigned LoopFilter::xGetBoundaryStrengthSingle ( const CodingUnit& cu, const De { return tmpBs; } - if ((cuP.firstPU->mhIntraFlag || cuQ.firstPU->mhIntraFlag)) + if ((cuP.firstPU->ciipFlag || cuQ.firstPU->ciipFlag)) { return 1; } diff --git a/source/Lib/CommonLib/MotionInfo.h b/source/Lib/CommonLib/MotionInfo.h index 3e7ad1f975c5ca0ab2bfd37312f2e24e44bcc9bc..a32ff584a8242d5f8a40eb0f3e1a957e100fe887 100644 --- a/source/Lib/CommonLib/MotionInfo.h +++ b/source/Lib/CommonLib/MotionInfo.h @@ -107,11 +107,11 @@ struct MotionInfo uint16_t sliceIdx; Mv mv [ NUM_REF_PIC_LIST_01 ]; int16_t refIdx [ NUM_REF_PIC_LIST_01 ]; - uint8_t GBiIdx; + uint8_t BcwIdx; Mv bv; - MotionInfo() : isInter(false), isIBCmot(false), interDir(0), useAltHpelIf(false), sliceIdx(0), refIdx{ NOT_VALID, NOT_VALID }, GBiIdx(0) { } + MotionInfo() : isInter(false), isIBCmot(false), interDir(0), useAltHpelIf(false), sliceIdx(0), refIdx{ NOT_VALID, NOT_VALID }, BcwIdx(0) { } // ensure that MotionInfo(0) produces '\x000....' bit pattern - needed to work with AreaBuf - don't use this constructor for anything else - MotionInfo(int i) : isInter(i != 0), isIBCmot(false), interDir(0), useAltHpelIf(false), sliceIdx(0), refIdx{ 0, 0 }, GBiIdx(0) { CHECKD(i != 0, "The argument for this constructor has to be '0'"); } + MotionInfo(int i) : isInter(i != 0), isIBCmot(false), interDir(0), useAltHpelIf(false), sliceIdx(0), refIdx{ 0, 0 }, BcwIdx(0) { CHECKD(i != 0, "The argument for this constructor has to be '0'"); } bool operator==( const MotionInfo& mi ) const { @@ -144,7 +144,7 @@ struct MotionInfo } }; -class GBiMotionParam +class BcwMotionParam { bool m_readOnly[2][33]; // 2 RefLists, 33 RefFrams Mv m_mv[2][33]; diff --git a/source/Lib/CommonLib/Rom.cpp b/source/Lib/CommonLib/Rom.cpp index 61891f4b8777825afb6a17350046d1cb4820aa18..8ad8b93cb65d468a0aea3a937582d01f36ced8ee 100644 --- a/source/Lib/CommonLib/Rom.cpp +++ b/source/Lib/CommonLib/Rom.cpp @@ -216,50 +216,50 @@ public: return rtn; } }; -const int8_t g_GbiLog2WeightBase = 3; -const int8_t g_GbiWeightBase = (1 << g_GbiLog2WeightBase); -const int8_t g_GbiWeights[GBI_NUM] = { -2, 3, 4, 5, 10 }; -const int8_t g_GbiSearchOrder[GBI_NUM] = { GBI_DEFAULT, GBI_DEFAULT - 2, GBI_DEFAULT + 2, GBI_DEFAULT - 1, GBI_DEFAULT + 1 }; -int8_t g_GbiCodingOrder[GBI_NUM]; -int8_t g_GbiParsingOrder[GBI_NUM]; - -int8_t getGbiWeight(uint8_t gbiIdx, uint8_t uhRefFrmList) +const int8_t g_BcwLog2WeightBase = 3; +const int8_t g_BcwWeightBase = (1 << g_BcwLog2WeightBase); +const int8_t g_BcwWeights[BCW_NUM] = { -2, 3, 4, 5, 10 }; +const int8_t g_BcwSearchOrder[BCW_NUM] = { BCW_DEFAULT, BCW_DEFAULT - 2, BCW_DEFAULT + 2, BCW_DEFAULT - 1, BCW_DEFAULT + 1 }; +int8_t g_BcwCodingOrder[BCW_NUM]; +int8_t g_BcwParsingOrder[BCW_NUM]; + +int8_t getBcwWeight(uint8_t bcwIdx, uint8_t uhRefFrmList) { // Weghts for the model: P0 + w * (P1 - P0) = (1-w) * P0 + w * P1 // Retuning 1-w for P0 or w for P1 - return (uhRefFrmList == REF_PIC_LIST_0 ? g_GbiWeightBase - g_GbiWeights[gbiIdx] : g_GbiWeights[gbiIdx]); + return (uhRefFrmList == REF_PIC_LIST_0 ? g_BcwWeightBase - g_BcwWeights[bcwIdx] : g_BcwWeights[bcwIdx]); } -void resetGbiCodingOrder(bool bRunDecoding, const CodingStructure &cs) +void resetBcwCodingOrder(bool bRunDecoding, const CodingStructure &cs) { - // Form parsing order: { GBI_DEFAULT, GBI_DEFAULT+1, GBI_DEFAULT-1, GBI_DEFAULT+2, GBI_DEFAULT-2, ... } - g_GbiParsingOrder[0] = GBI_DEFAULT; - for (int i = 1; i <= (GBI_NUM >> 1); ++i) + // Form parsing order: { BCW_DEFAULT, BCW_DEFAULT+1, BCW_DEFAULT-1, BCW_DEFAULT+2, BCW_DEFAULT-2, ... } + g_BcwParsingOrder[0] = BCW_DEFAULT; + for (int i = 1; i <= (BCW_NUM >> 1); ++i) { - g_GbiParsingOrder[2 * i - 1] = GBI_DEFAULT + (int8_t)i; - g_GbiParsingOrder[2 * i] = GBI_DEFAULT - (int8_t)i; + g_BcwParsingOrder[2 * i - 1] = BCW_DEFAULT + (int8_t)i; + g_BcwParsingOrder[2 * i] = BCW_DEFAULT - (int8_t)i; } // Form encoding order if (!bRunDecoding) { - for (int i = 0; i < GBI_NUM; ++i) + for (int i = 0; i < BCW_NUM; ++i) { - g_GbiCodingOrder[(uint32_t)g_GbiParsingOrder[i]] = i; + g_BcwCodingOrder[(uint32_t)g_BcwParsingOrder[i]] = i; } } } -uint32_t deriveWeightIdxBits(uint8_t gbiIdx) // Note: align this with TEncSbac::codeGbiIdx and TDecSbac::parseGbiIdx +uint32_t deriveWeightIdxBits(uint8_t bcwIdx) // Note: align this with TEncSbac::codeBcwIdx and TDecSbac::parseBcwIdx { uint32_t numBits = 1; - uint8_t gbiCodingIdx = (uint8_t)g_GbiCodingOrder[gbiIdx]; + uint8_t bcwCodingIdx = (uint8_t)g_BcwCodingOrder[bcwIdx]; - if (GBI_NUM > 2 && gbiCodingIdx != 0) + if (BCW_NUM > 2 && bcwCodingIdx != 0) { - uint32_t prefixNumBits = GBI_NUM - 2; + uint32_t prefixNumBits = BCW_NUM - 2; uint32_t step = 1; - uint8_t prefixSymbol = gbiCodingIdx; + uint8_t prefixSymbol = bcwCodingIdx; // Truncated unary code uint8_t idx = 1; diff --git a/source/Lib/CommonLib/Rom.h b/source/Lib/CommonLib/Rom.h index 8c61f66b77c3f4ce59c3f9607b0b8282aca85a28..fcfc57772ebaaf3b46324353ad8e6e7a4ad385bf 100644 --- a/source/Lib/CommonLib/Rom.h +++ b/source/Lib/CommonLib/Rom.h @@ -184,17 +184,17 @@ extern const uint32_t g_scalingListSizeX[SCALING_LIST_SIZE_NUM]; extern MsgLevel g_verbosity; -extern const int8_t g_GbiLog2WeightBase; -extern const int8_t g_GbiWeightBase; -extern const int8_t g_GbiWeights[GBI_NUM]; -extern const int8_t g_GbiSearchOrder[GBI_NUM]; -extern int8_t g_GbiCodingOrder[GBI_NUM]; -extern int8_t g_GbiParsingOrder[GBI_NUM]; +extern const int8_t g_BcwLog2WeightBase; +extern const int8_t g_BcwWeightBase; +extern const int8_t g_BcwWeights[BCW_NUM]; +extern const int8_t g_BcwSearchOrder[BCW_NUM]; +extern int8_t g_BcwCodingOrder[BCW_NUM]; +extern int8_t g_BcwParsingOrder[BCW_NUM]; class CodingStructure; -int8_t getGbiWeight(uint8_t gbiIdx, uint8_t uhRefFrmList); -void resetGbiCodingOrder(bool bRunDecoding, const CodingStructure &cs); -uint32_t deriveWeightIdxBits(uint8_t gbiIdx); +int8_t getBcwWeight(uint8_t bcwIdx, uint8_t uhRefFrmList); +void resetBcwCodingOrder(bool bRunDecoding, const CodingStructure &cs); +uint32_t deriveWeightIdxBits(uint8_t bcwIdx); constexpr uint8_t g_tbMax[257] = { 0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index f20409953431e674d642518c7894345016eed2d0..740957b29fd7953c013678d074146e89c3bf289b 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -2091,7 +2091,7 @@ SPS::SPS() , m_wrapAroundOffset ( 0) , m_IBCFlag ( 0) , m_PLTMode ( 0) -, m_lumaReshapeEnable (false) +, m_lmcsEnabled (false) , m_AMVREnabledFlag ( false ) , m_LMChroma ( false ) #if JVET_P0592_CHROMA_PHASE @@ -2106,7 +2106,7 @@ SPS::SPS() , m_Affine ( false ) , m_AffineType ( false ) , m_PROF ( false ) -, m_MHIntra ( false ) +, m_ciip ( false ) , m_Triangle ( false ) #if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET , m_LadfEnabled ( false ) diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h index e566d095fb52195d59afc4c1aaaa702efa965632..3e7571fcc511866482148bff8dddb3010aa21846 100644 --- a/source/Lib/CommonLib/Slice.h +++ b/source/Lib/CommonLib/Slice.h @@ -273,9 +273,9 @@ class ConstraintInfo bool m_noMtsConstraintFlag; bool m_noSbtConstraintFlag; bool m_noAffineMotionConstraintFlag; - bool m_noGbiConstraintFlag; + bool m_noBcwConstraintFlag; bool m_noIbcConstraintFlag; - bool m_noMhIntraConstraintFlag; + bool m_noCiipConstraintFlag; bool m_noFPelMmvdConstraintFlag; bool m_noTriangleConstraintFlag; bool m_noLadfConstraintFlag; @@ -319,9 +319,9 @@ public: , m_noMtsConstraintFlag (false) , m_noSbtConstraintFlag (false) , m_noAffineMotionConstraintFlag(false) - , m_noGbiConstraintFlag (false) + , m_noBcwConstraintFlag (false) , m_noIbcConstraintFlag (false) - , m_noMhIntraConstraintFlag (false) + , m_noCiipConstraintFlag (false) , m_noFPelMmvdConstraintFlag (false) , m_noTriangleConstraintFlag (false) , m_noLadfConstraintFlag (false) @@ -400,12 +400,12 @@ public: void setNoSbtConstraintFlag(bool bVal) { m_noSbtConstraintFlag = bVal; } bool getNoAffineMotionConstraintFlag() const { return m_noAffineMotionConstraintFlag; } void setNoAffineMotionConstraintFlag(bool bVal) { m_noAffineMotionConstraintFlag = bVal; } - bool getNoGbiConstraintFlag() const { return m_noGbiConstraintFlag; } - void setNoGbiConstraintFlag(bool bVal) { m_noGbiConstraintFlag = bVal; } + bool getNoBcwConstraintFlag() const { return m_noBcwConstraintFlag; } + void setNoBcwConstraintFlag(bool bVal) { m_noBcwConstraintFlag = bVal; } bool getNoIbcConstraintFlag() const { return m_noIbcConstraintFlag; } void setNoIbcConstraintFlag(bool bVal) { m_noIbcConstraintFlag = bVal; } - bool getNoMhIntraConstraintFlag() const { return m_noMhIntraConstraintFlag; } - void setNoMhIntraConstraintFlag(bool bVal) { m_noMhIntraConstraintFlag = bVal; } + bool getNoCiipConstraintFlag() const { return m_noCiipConstraintFlag; } + void setNoCiipConstraintFlag(bool bVal) { m_noCiipConstraintFlag = bVal; } bool getNoFPelMmvdConstraintFlag() const { return m_noFPelMmvdConstraintFlag; } void setNoFPelMmvdConstraintFlag(bool bVal) { m_noFPelMmvdConstraintFlag = bVal; } bool getNoTriangleConstraintFlag() const { return m_noTriangleConstraintFlag; } @@ -1085,7 +1085,7 @@ private: #endif unsigned m_PLTMode; - bool m_lumaReshapeEnable; + bool m_lmcsEnabled; bool m_AMVREnabledFlag; bool m_LMChroma; #if JVET_P0592_CHROMA_PHASE @@ -1102,8 +1102,8 @@ private: bool m_Affine; bool m_AffineType; bool m_PROF; - bool m_GBi; // - bool m_MHIntra; + bool m_bcw; // + bool m_ciip; bool m_Triangle; #if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET bool m_LadfEnabled; @@ -1360,8 +1360,8 @@ public: bool getWrapAroundEnabledFlag() const { return m_wrapAroundEnabledFlag; } void setWrapAroundOffset(unsigned offset) { m_wrapAroundOffset = offset; } unsigned getWrapAroundOffset() const { return m_wrapAroundOffset; } - void setUseReshaper(bool b) { m_lumaReshapeEnable = b; } - bool getUseReshaper() const { return m_lumaReshapeEnable; } + void setUseLmcs(bool b) { m_lmcsEnabled = b; } + bool getUseLmcs() const { return m_lmcsEnabled; } void setIBCFlag(unsigned IBCFlag) { m_IBCFlag = IBCFlag; } unsigned getIBCFlag() const { return m_IBCFlag; } #if JVET_P0517_ADAPTIVE_COLOR_TRANSFORM @@ -1410,8 +1410,8 @@ public: bool getUseLFNST () const { return m_LFNST; } void setUseSMVD(bool b) { m_SMVD = b; } bool getUseSMVD() const { return m_SMVD; } - void setUseGBi ( bool b ) { m_GBi = b; } - bool getUseGBi () const { return m_GBi; } + void setUseBcw ( bool b ) { m_bcw = b; } + bool getUseBcw () const { return m_bcw; } #if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET void setLadfEnabled ( bool b ) { m_LadfEnabled = b; } bool getLadfEnabled () const { return m_LadfEnabled; } @@ -1423,8 +1423,8 @@ public: int getLadfIntervalLowerBound( int idx ) const { return m_LadfIntervalLowerBound[ idx ]; } #endif - void setUseMHIntra ( bool b ) { m_MHIntra = b; } - bool getUseMHIntra () const { return m_MHIntra; } + void setUseCiip ( bool b ) { m_ciip = b; } + bool getUseCiip () const { return m_ciip; } void setUseTriangle ( bool b ) { m_Triangle = b; } bool getUseTriangle () const { return m_Triangle; } #if JVET_P2001_SYNTAX_ORDER_MISMATCHES diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 67d733aedbae6e2ade62b094b9460a6bd5ee6c0e..ee6c4529fc3ce3993ba5d666a4831d5a5359b4de 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -386,7 +386,7 @@ typedef std::pair<int, int> TrCost; #define ENABLE_SIMD_OPT_AFFINE_ME ( 1 && ENABLE_SIMD_OPT ) ///< SIMD optimization for affine ME, no impact on RD performance #define ENABLE_SIMD_OPT_ALF ( 1 && ENABLE_SIMD_OPT ) ///< SIMD optimization for ALF #if ENABLE_SIMD_OPT_BUFFER -#define ENABLE_SIMD_OPT_GBI 1 ///< SIMD optimization for GBi +#define ENABLE_SIMD_OPT_BCW 1 ///< SIMD optimization for Bcw #endif // End of SIMD optimizations diff --git a/source/Lib/CommonLib/Unit.cpp b/source/Lib/CommonLib/Unit.cpp index cd3eb03ed5498ad23f171b05048161354526a719..ba0966dc9ae79f55e1d9b5ce059f90ac81a8276b 100644 --- a/source/Lib/CommonLib/Unit.cpp +++ b/source/Lib/CommonLib/Unit.cpp @@ -283,7 +283,7 @@ CodingUnit& CodingUnit::operator=( const CodingUnit& other ) tileIdx = other.tileIdx; imv = other.imv; imvNumCand = other.imvNumCand; - GBiIdx = other.GBiIdx; + BcwIdx = other.BcwIdx; for (int i = 0; i<2; i++) refIdxBi[i] = other.refIdxBi[i]; @@ -352,7 +352,7 @@ void CodingUnit::initData() tileIdx = 0; imv = 0; imvNumCand = 0; - GBiIdx = GBI_DEFAULT; + BcwIdx = BCW_DEFAULT; for (int i = 0; i < 2; i++) refIdxBi[i] = -1; #if !JVET_P0400_REMOVE_SHARED_MERGE_LIST @@ -473,7 +473,7 @@ const uint8_t CodingUnit::checkAllowedSbt() const { return 0; } - if( firstPU->mhIntraFlag ) + if( firstPU->ciipFlag ) { return 0; } @@ -583,7 +583,7 @@ void PredictionUnit::initData() mvAffi[i][j].setZero(); } } - mhIntraFlag = false; + ciipFlag = false; #if !JVET_P0400_REMOVE_SHARED_MERGE_LIST shareParentPos = Position(-1, -1); shareParentSize.width = -1; @@ -641,7 +641,7 @@ PredictionUnit& PredictionUnit::operator=(const InterPredictionData& predData) mvAffi[i][j] = predData.mvAffi[i][j]; } } - mhIntraFlag = predData.mhIntraFlag; + ciipFlag = predData.ciipFlag; #if !JVET_P0400_REMOVE_SHARED_MERGE_LIST shareParentPos = predData.shareParentPos; shareParentSize = predData.shareParentSize; @@ -693,7 +693,7 @@ PredictionUnit& PredictionUnit::operator=( const PredictionUnit& other ) mvAffi[i][j] = other.mvAffi[i][j]; } } - mhIntraFlag = other.mhIntraFlag; + ciipFlag = other.ciipFlag; #if !JVET_P0400_REMOVE_SHARED_MERGE_LIST shareParentPos = other.shareParentPos; shareParentSize = other.shareParentSize; diff --git a/source/Lib/CommonLib/Unit.h b/source/Lib/CommonLib/Unit.h index 3c848403456c2fbbec3bf3e56779af0912ec56c6..8aadc0d222366aee54200aba79d7241d253458a2 100644 --- a/source/Lib/CommonLib/Unit.h +++ b/source/Lib/CommonLib/Unit.h @@ -323,7 +323,7 @@ struct CodingUnit : public UnitArea uint32_t tileIdx; uint8_t mtsFlag; uint32_t lfnstIdx; - uint8_t GBiIdx; + uint8_t BcwIdx; int refIdxBi[2]; bool mipFlag; @@ -410,7 +410,7 @@ struct InterPredictionData Mv mvdL0SubPu[MAX_NUM_SUBCU_DMVR]; Mv mvdAffi [NUM_REF_PIC_LIST_01][3]; Mv mvAffi[NUM_REF_PIC_LIST_01][3]; - bool mhIntraFlag; + bool ciipFlag; #if !JVET_P0400_REMOVE_SHARED_MERGE_LIST Position shareParentPos; diff --git a/source/Lib/CommonLib/UnitTools.cpp b/source/Lib/CommonLib/UnitTools.cpp index a58261f2af1fad1df6c1190910b5a0df90db0f0e..64da02bedbd777bf7ccedd4b61d1b7657900405e 100644 --- a/source/Lib/CommonLib/UnitTools.cpp +++ b/source/Lib/CommonLib/UnitTools.cpp @@ -264,7 +264,7 @@ void CU::saveMotionInHMVP( const CodingUnit& cu, const bool isToBeDone ) { MotionInfo mi = pu.getMotionInfo(); - mi.GBiIdx = (mi.interDir == 3) ? cu.GBiIdx : GBI_DEFAULT; + mi.BcwIdx = (mi.interDir == 3) ? cu.BcwIdx : BCW_DEFAULT; cu.cs->addMiToLut(CU::isIBC(cu) ? cu.cs->motionLut.lutIbc : cu.cs->motionLut.lut, mi); } @@ -717,7 +717,7 @@ bool PU::addMergeHMVPCand(const CodingStructure &cs, MergeCtx& mrgCtx, const int { mrgCtx.interDirNeighbours[cnt] = miNeighbor.interDir; mrgCtx.useAltHpelIf [cnt] = !ibcFlag && miNeighbor.useAltHpelIf; - mrgCtx.GBiIdx [cnt] = (miNeighbor.interDir == 3) ? miNeighbor.GBiIdx : GBI_DEFAULT; + mrgCtx.BcwIdx [cnt] = (miNeighbor.interDir == 3) ? miNeighbor.BcwIdx : BCW_DEFAULT; mrgCtx.mvFieldNeighbours[cnt << 1].setMvField(miNeighbor.mv[0], miNeighbor.refIdx[0]); if (slice.isInterB()) @@ -758,7 +758,7 @@ void PU::getIBCMergeCandidates(const PredictionUnit &pu, MergeCtx& mrgCtx, const for (uint32_t ui = 0; ui < maxNumMergeCand; ++ui) { - mrgCtx.GBiIdx[ui] = GBI_DEFAULT; + mrgCtx.BcwIdx[ui] = BCW_DEFAULT; mrgCtx.interDirNeighbours[ui] = 0; mrgCtx.mrgTypeNeighbours[ui] = MRG_TYPE_IBC; mrgCtx.mvFieldNeighbours[ui * 2].refIdx = NOT_VALID; @@ -894,7 +894,7 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx, for (uint32_t ui = 0; ui < maxNumMergeCand; ++ui) { - mrgCtx.GBiIdx[ui] = GBI_DEFAULT; + mrgCtx.BcwIdx[ui] = BCW_DEFAULT; mrgCtx.interDirNeighbours[ui] = 0; mrgCtx.mrgTypeNeighbours [ui] = MRG_TYPE_DEFAULT_N; mrgCtx.mvFieldNeighbours[(ui << 1) ].refIdx = NOT_VALID; @@ -926,7 +926,7 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx, mrgCtx.interDirNeighbours[cnt] = miAbove.interDir; mrgCtx.useAltHpelIf[cnt] = miAbove.useAltHpelIf; // get Mv from Above - mrgCtx.GBiIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puAbove->cu->GBiIdx : GBI_DEFAULT; + mrgCtx.BcwIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puAbove->cu->BcwIdx : BCW_DEFAULT; mrgCtx.mvFieldNeighbours[cnt << 1].setMvField(miAbove.mv[0], miAbove.refIdx[0]); if (slice.isInterB()) @@ -961,7 +961,7 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx, // get Inter Dir mrgCtx.interDirNeighbours[cnt] = miLeft.interDir; mrgCtx.useAltHpelIf[cnt] = miLeft.useAltHpelIf; - mrgCtx.GBiIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puLeft->cu->GBiIdx : GBI_DEFAULT; + mrgCtx.BcwIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puLeft->cu->BcwIdx : BCW_DEFAULT; // get Mv from Left mrgCtx.mvFieldNeighbours[cnt << 1].setMvField(miLeft.mv[0], miLeft.refIdx[0]); @@ -991,7 +991,7 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx, // get Inter Dir mrgCtx.interDirNeighbours[cnt] = miLeft.interDir; mrgCtx.useAltHpelIf[cnt] = miLeft.useAltHpelIf; - mrgCtx.GBiIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puLeft->cu->GBiIdx : GBI_DEFAULT; + mrgCtx.BcwIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puLeft->cu->BcwIdx : BCW_DEFAULT; // get Mv from Left mrgCtx.mvFieldNeighbours[cnt << 1].setMvField(miLeft.mv[0], miLeft.refIdx[0]); @@ -1030,7 +1030,7 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx, mrgCtx.interDirNeighbours[cnt] = miAbove.interDir; mrgCtx.useAltHpelIf[cnt] = miAbove.useAltHpelIf; // get Mv from Above - mrgCtx.GBiIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puAbove->cu->GBiIdx : GBI_DEFAULT; + mrgCtx.BcwIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puAbove->cu->BcwIdx : BCW_DEFAULT; mrgCtx.mvFieldNeighbours[cnt << 1].setMvField( miAbove.mv[0], miAbove.refIdx[0] ); if( slice.isInterB() ) @@ -1069,7 +1069,7 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx, mrgCtx.interDirNeighbours[cnt] = miAboveRight.interDir; mrgCtx.useAltHpelIf[cnt] = miAboveRight.useAltHpelIf; // get Mv from Above-right - mrgCtx.GBiIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puAboveRight->cu->GBiIdx : GBI_DEFAULT; + mrgCtx.BcwIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puAboveRight->cu->BcwIdx : BCW_DEFAULT; mrgCtx.mvFieldNeighbours[cnt << 1].setMvField( miAboveRight.mv[0], miAboveRight.refIdx[0] ); if( slice.isInterB() ) @@ -1106,7 +1106,7 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx, // get Inter Dir mrgCtx.interDirNeighbours[cnt] = miBelowLeft.interDir; mrgCtx.useAltHpelIf[cnt] = miBelowLeft.useAltHpelIf; - mrgCtx.GBiIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puLeftBottom->cu->GBiIdx : GBI_DEFAULT; + mrgCtx.BcwIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puLeftBottom->cu->BcwIdx : BCW_DEFAULT; // get Mv from Bottom-Left mrgCtx.mvFieldNeighbours[cnt << 1].setMvField( miBelowLeft.mv[0], miBelowLeft.refIdx[0] ); @@ -1147,7 +1147,7 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx, // get Inter Dir mrgCtx.interDirNeighbours[cnt] = miAboveLeft.interDir; mrgCtx.useAltHpelIf[cnt] = miAboveLeft.useAltHpelIf; - mrgCtx.GBiIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puAboveLeft->cu->GBiIdx : GBI_DEFAULT; + mrgCtx.BcwIdx[cnt] = (mrgCtx.interDirNeighbours[cnt] == 3) ? puAboveLeft->cu->BcwIdx : BCW_DEFAULT; // get Mv from Above-Left mrgCtx.mvFieldNeighbours[cnt << 1].setMvField( miAboveLeft.mv[0], miAboveLeft.refIdx[0] ); @@ -1224,7 +1224,7 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx, if( addTMvp ) { mrgCtx.interDirNeighbours[uiArrayAddr] = dir; - mrgCtx.GBiIdx[uiArrayAddr] = GBI_DEFAULT; + mrgCtx.BcwIdx[uiArrayAddr] = BCW_DEFAULT; mrgCtx.useAltHpelIf[uiArrayAddr] = false; if (mrgCandIdx == cnt) { @@ -1342,7 +1342,7 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx, while (uiArrayAddr < maxNumMergeCand) { mrgCtx.interDirNeighbours [uiArrayAddr ] = 1; - mrgCtx.GBiIdx [uiArrayAddr ] = GBI_DEFAULT; + mrgCtx.BcwIdx [uiArrayAddr ] = BCW_DEFAULT; mrgCtx.mvFieldNeighbours [uiArrayAddr << 1].setMvField(Mv(0, 0), r); mrgCtx.useAltHpelIf[uiArrayAddr] = false; @@ -1392,7 +1392,7 @@ bool PU::checkDMVRCondition(const PredictionUnit& pu) { return pu.mergeFlag && pu.mergeType == MRG_TYPE_DEFAULT_N - && !pu.mhIntraFlag + && !pu.ciipFlag && !pu.cu->affine && !pu.mmvdMergeFlag && !pu.cu->mmvdSkip @@ -1400,7 +1400,7 @@ bool PU::checkDMVRCondition(const PredictionUnit& pu) && (pu.lheight() >= 8) && (pu.lwidth() >= 8) && ((pu.lheight() * pu.lwidth()) >= 128) - && (pu.cu->GBiIdx == GBI_DEFAULT) + && (pu.cu->BcwIdx == BCW_DEFAULT) && ((!wp0[COMPONENT_Y].bPresentFlag) && (!wp1[COMPONENT_Y].bPresentFlag)) #if JVET_P0590_SCALING_WINDOW && ( refIdx0 < 0 ? true : pu.cu->slice->getScalingRatio( REF_PIC_LIST_0, refIdx0 ) == SCALE_1X ) && ( refIdx1 < 0 ? true : pu.cu->slice->getScalingRatio( REF_PIC_LIST_1, refIdx1 ) == SCALE_1X ) @@ -2357,7 +2357,7 @@ bool PU::isBipredRestriction(const PredictionUnit &pu) return false; } -void PU::getAffineControlPointCand(const PredictionUnit &pu, MotionInfo mi[4], bool isAvailable[4], int verIdx[4], int8_t gbiIdx, int modelIdx, int verNum, AffineMergeCtx& affMrgType) +void PU::getAffineControlPointCand(const PredictionUnit &pu, MotionInfo mi[4], bool isAvailable[4], int verIdx[4], int8_t bcwIdx, int modelIdx, int verNum, AffineMergeCtx& affMrgType) { int cuW = pu.Y().width; int cuH = pu.Y().height; @@ -2491,7 +2491,7 @@ void PU::getAffineControlPointCand(const PredictionUnit &pu, MotionInfo mi[4], b } affMrgType.interDirNeighbours[affMrgType.numValidMergeCand] = dir; affMrgType.affineType[affMrgType.numValidMergeCand] = curType; - affMrgType.GBiIdx[affMrgType.numValidMergeCand] = (dir == 3) ? gbiIdx : GBI_DEFAULT; + affMrgType.BcwIdx[affMrgType.numValidMergeCand] = (dir == 3) ? bcwIdx : BCW_DEFAULT; affMrgType.numValidMergeCand++; @@ -2580,7 +2580,7 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx affMrgCtx.interDirNeighbours[i] = 0; affMrgCtx.affineType[i] = AFFINEMODEL_4PARAM; affMrgCtx.mergeType[i] = MRG_TYPE_DEFAULT_N; - affMrgCtx.GBiIdx[i] = GBI_DEFAULT; + affMrgCtx.BcwIdx[i] = BCW_DEFAULT; } affMrgCtx.numValidMergeCand = 0; @@ -2686,7 +2686,7 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx } affMrgCtx.interDirNeighbours[affMrgCtx.numValidMergeCand] = puNeigh->interDir; affMrgCtx.affineType[affMrgCtx.numValidMergeCand] = (EAffineModel)(puNeigh->cu->affineType); - affMrgCtx.GBiIdx[affMrgCtx.numValidMergeCand] = puNeigh->cu->GBiIdx; + affMrgCtx.BcwIdx[affMrgCtx.numValidMergeCand] = puNeigh->cu->BcwIdx; if ( affMrgCtx.numValidMergeCand == mrgCandIdx ) { @@ -2707,7 +2707,7 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx MotionInfo mi[4]; bool isAvailable[4] = { false }; - int8_t neighGbi[2] = { GBI_DEFAULT, GBI_DEFAULT }; + int8_t neighBcw[2] = { BCW_DEFAULT, BCW_DEFAULT }; // control point: LT B2->B3->A2 const Position posLT[3] = { pu.Y().topLeft().offset( -1, -1 ), pu.Y().topLeft().offset( 0, -1 ), pu.Y().topLeft().offset( -1, 0 ) }; for ( int i = 0; i < 3; i++ ) @@ -2720,7 +2720,7 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx { isAvailable[0] = true; mi[0] = puNeigh->getMotionInfo( pos ); - neighGbi[0] = puNeigh->cu->GBiIdx; + neighBcw[0] = puNeigh->cu->BcwIdx; break; } } @@ -2738,7 +2738,7 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx { isAvailable[1] = true; mi[1] = puNeigh->getMotionInfo( pos ); - neighGbi[1] = puNeigh->cu->GBiIdx; + neighBcw[1] = puNeigh->cu->BcwIdx; break; } } @@ -2826,7 +2826,7 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx for ( int idx = startIdx; idx < modelNum; idx++ ) { int modelIdx = order[idx]; - getAffineControlPointCand(pu, mi, isAvailable, model[modelIdx], ((modelIdx == 3) ? neighGbi[1] : neighGbi[0]), modelIdx, verNum[modelIdx], affMrgCtx); + getAffineControlPointCand(pu, mi, isAvailable, model[modelIdx], ((modelIdx == 3) ? neighBcw[1] : neighBcw[0]), modelIdx, verNum[modelIdx], affMrgCtx); if ( affMrgCtx.numValidMergeCand != 0 && affMrgCtx.numValidMergeCand - 1 == mrgCandIdx ) { return; @@ -3058,7 +3058,7 @@ bool PU::getInterMergeSubPuMvpCand(const PredictionUnit &pu, MergeCtx& mrgCtx, b mrgCtx.mvFieldNeighbours[(count << 1) + currRefListId].setMvField(cColMv, 0); mrgCtx.interDirNeighbours[count] |= (1 << currRefListId); LICFlag = tempLICFlag; - mrgCtx.GBiIdx[count] = GBI_DEFAULT; + mrgCtx.BcwIdx[count] = BCW_DEFAULT; found = true; } else @@ -3327,7 +3327,7 @@ void PU::restrictBiPredMergeCandsOne(PredictionUnit &pu) pu.interDir = 1; pu.refIdx[1] = -1; pu.mv[1] = Mv(0, 0); - pu.cu->GBiIdx = GBI_DEFAULT; + pu.cu->BcwIdx = BCW_DEFAULT; } } } @@ -3347,7 +3347,7 @@ void PU::getTriangleMergeCandidates( const PredictionUnit &pu, MergeCtx& triangl for (int32_t i = 0; i < TRIANGLE_MAX_NUM_UNI_CANDS; i++) { - triangleMrgCtx.GBiIdx[i] = GBI_DEFAULT; + triangleMrgCtx.BcwIdx[i] = BCW_DEFAULT; triangleMrgCtx.interDirNeighbours[i] = 0; triangleMrgCtx.mrgTypeNeighbours[i] = MRG_TYPE_DEFAULT_N; triangleMrgCtx.mvFieldNeighbours[(i << 1)].refIdx = NOT_VALID; @@ -3698,11 +3698,11 @@ void CU::adjustPredArea(CompArea &area) area.width = std::max<int>(PRED_REG_MIN_WIDTH, area.width); } -bool CU::isGBiIdxCoded( const CodingUnit &cu ) +bool CU::isBcwIdxCoded( const CodingUnit &cu ) { - if( cu.cs->sps->getUseGBi() == false ) + if( cu.cs->sps->getUseBcw() == false ) { - CHECK(cu.GBiIdx != GBI_DEFAULT, "Error: cu.GBiIdx != GBI_DEFAULT"); + CHECK(cu.BcwIdx != BCW_DEFAULT, "Error: cu.BcwIdx != BCW_DEFAULT"); return false; } @@ -3716,7 +3716,7 @@ bool CU::isGBiIdxCoded( const CodingUnit &cu ) return false; } - if( cu.lwidth() * cu.lheight() < GBI_SIZE_CONSTRAINT ) + if( cu.lwidth() * cu.lheight() < BCW_SIZE_CONSTRAINT ) { return false; } @@ -3744,11 +3744,11 @@ bool CU::isGBiIdxCoded( const CodingUnit &cu ) return false; } -uint8_t CU::getValidGbiIdx( const CodingUnit &cu ) +uint8_t CU::getValidBcwIdx( const CodingUnit &cu ) { if( cu.firstPU->interDir == 3 && !cu.firstPU->mergeFlag ) { - return cu.GBiIdx; + return cu.BcwIdx; } else if( cu.firstPU->interDir == 3 && cu.firstPU->mergeFlag && cu.firstPU->mergeType == MRG_TYPE_DEFAULT_N ) { @@ -3756,23 +3756,23 @@ uint8_t CU::getValidGbiIdx( const CodingUnit &cu ) } else if( cu.firstPU->mergeFlag && cu.firstPU->mergeType == MRG_TYPE_SUBPU_ATMVP ) { - CHECK(cu.GBiIdx != GBI_DEFAULT, " cu.GBiIdx != GBI_DEFAULT "); + CHECK(cu.BcwIdx != BCW_DEFAULT, " cu.BcwIdx != BCW_DEFAULT "); } else { - CHECK(cu.GBiIdx != GBI_DEFAULT, " cu.GBiIdx != GBI_DEFAULT "); + CHECK(cu.BcwIdx != BCW_DEFAULT, " cu.BcwIdx != BCW_DEFAULT "); } - return GBI_DEFAULT; + return BCW_DEFAULT; } -void CU::setGbiIdx( CodingUnit &cu, uint8_t uh ) +void CU::setBcwIdx( CodingUnit &cu, uint8_t uh ) { int8_t uhCnt = 0; if( cu.firstPU->interDir == 3 && !cu.firstPU->mergeFlag ) { - cu.GBiIdx = uh; + cu.BcwIdx = uh; ++uhCnt; } else if( cu.firstPU->interDir == 3 && cu.firstPU->mergeFlag && cu.firstPU->mergeType == MRG_TYPE_DEFAULT_N ) @@ -3781,40 +3781,40 @@ void CU::setGbiIdx( CodingUnit &cu, uint8_t uh ) } else if( cu.firstPU->mergeFlag && cu.firstPU->mergeType == MRG_TYPE_SUBPU_ATMVP ) { - cu.GBiIdx = GBI_DEFAULT; + cu.BcwIdx = BCW_DEFAULT; } else { - cu.GBiIdx = GBI_DEFAULT; + cu.BcwIdx = BCW_DEFAULT; } CHECK(uhCnt <= 0, " uhCnt <= 0 "); } -uint8_t CU::deriveGbiIdx( uint8_t gbiLO, uint8_t gbiL1 ) +uint8_t CU::deriveBcwIdx( uint8_t bcwLO, uint8_t bcwL1 ) { - if( gbiLO == gbiL1 ) + if( bcwLO == bcwL1 ) { - return gbiLO; + return bcwLO; } - const int8_t w0 = getGbiWeight(gbiLO, REF_PIC_LIST_0); - const int8_t w1 = getGbiWeight(gbiL1, REF_PIC_LIST_1); - const int8_t th = g_GbiWeightBase >> 1; + const int8_t w0 = getBcwWeight(bcwLO, REF_PIC_LIST_0); + const int8_t w1 = getBcwWeight(bcwL1, REF_PIC_LIST_1); + const int8_t th = g_BcwWeightBase >> 1; const int8_t off = 1; if( w0 == w1 || (w0 < (th - off) && w1 < (th - off)) || (w0 >(th + off) && w1 >(th + off)) ) { - return GBI_DEFAULT; + return BCW_DEFAULT; } else { if( w0 > w1 ) { - return ( w0 >= th ? gbiLO : gbiL1 ); + return ( w0 >= th ? bcwLO : bcwL1 ); } else { - return ( w1 >= th ? gbiL1 : gbiLO ); + return ( w1 >= th ? bcwL1 : bcwLO ); } } } diff --git a/source/Lib/CommonLib/UnitTools.h b/source/Lib/CommonLib/UnitTools.h index b779c153275d8ea149f7d1a0c309cf7af52e61cc..996ab02d096b21b42173d512d90b7a649c31c1e0 100644 --- a/source/Lib/CommonLib/UnitTools.h +++ b/source/Lib/CommonLib/UnitTools.h @@ -89,10 +89,10 @@ namespace CU bool isFirstTBInPredReg(const CodingUnit& cu, const ComponentID compID, const CompArea &area); bool isMinWidthPredEnabledForBlkSize(const int w, const int h); void adjustPredArea(CompArea &area); - bool isGBiIdxCoded (const CodingUnit& cu); - uint8_t getValidGbiIdx (const CodingUnit& cu); - void setGbiIdx (CodingUnit& cu, uint8_t uh); - uint8_t deriveGbiIdx (uint8_t gbiLO, uint8_t gbiL1); + bool isBcwIdxCoded (const CodingUnit& cu); + uint8_t getValidBcwIdx (const CodingUnit& cu); + void setBcwIdx (CodingUnit& cu, uint8_t uh); + uint8_t deriveBcwIdx (uint8_t bcwLO, uint8_t bcwL1); bool bdpcmAllowed (const CodingUnit& cu, const ComponentID compID); #if JVET_P1026_MTS_SIGNALLING bool isMTSAllowed (const CodingUnit& cu, const ComponentID compID); @@ -171,7 +171,7 @@ namespace PU bool isBipredRestriction (const PredictionUnit &pu); void spanMotionInfo ( PredictionUnit &pu, const MergeCtx &mrgCtx = MergeCtx() ); void applyImv ( PredictionUnit &pu, MergeCtx &mrgCtx, InterPrediction *interPred = NULL ); - void getAffineControlPointCand(const PredictionUnit &pu, MotionInfo mi[4], bool isAvailable[4], int verIdx[4], int8_t gbiIdx, int modelIdx, int verNum, AffineMergeCtx& affMrgCtx); + void getAffineControlPointCand(const PredictionUnit &pu, MotionInfo mi[4], bool isAvailable[4], int verIdx[4], int8_t bcwIdx, int modelIdx, int verNum, AffineMergeCtx& affMrgCtx); void getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx, const int mrgCandIdx = -1 ); void setAllAffineMvField ( PredictionUnit &pu, MvField *mvField, RefPicList eRefList ); void setAllAffineMv ( PredictionUnit &pu, Mv affLT, Mv affRT, Mv affLB, RefPicList eRefList, bool clipCPMVs = false ); diff --git a/source/Lib/CommonLib/dtrace_blockstatistics.cpp b/source/Lib/CommonLib/dtrace_blockstatistics.cpp index 1a088b6a6cdaed216ee69750e9b4c47a77c3353d..a00e68f74b655b9fbf59b4673229e729da00ac64 100644 --- a/source/Lib/CommonLib/dtrace_blockstatistics.cpp +++ b/source/Lib/CommonLib/dtrace_blockstatistics.cpp @@ -486,8 +486,8 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea) { DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu, GetBlockStatisticName(BlockStatistic::MMVDMergeIdx), pu.mmvdMergeIdx); } - DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu, GetBlockStatisticName(BlockStatistic::MHIntraFlag), pu.mhIntraFlag); - if (pu.mhIntraFlag) + DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu, GetBlockStatisticName(BlockStatistic::CiipFlag), pu.ciipFlag); + if (pu.ciipFlag) { DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu, GetBlockStatisticName(BlockStatistic::Luma_IntraMode), pu.intraDir[COMPONENT_Y]); } @@ -669,7 +669,7 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea) DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::SMVDFlag), cu.smvdMode); DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::IMVMode), cu.imv); DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::RootCbf), cu.rootCbf); - DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::GBIIndex), cu.GBiIdx); + DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::BCWIndex), cu.BcwIdx); DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::SbtIdx), cu.getSbtIdx()); DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::SbtPos), cu.getSbtPos()); } @@ -870,12 +870,12 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea) { DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_CODED, pu, GetBlockStatisticName(BlockStatistic::AffineFlag), pu.cu->affine); } - if (pu.cs->sps->getUseMHIntra() && !pu.cu->skip && !pu.cu->affine && !(pu.cu->lwidth() * pu.cu->lheight() < 64 || pu.cu->lwidth() >= MAX_CU_SIZE || pu.cu->lheight() >= MAX_CU_SIZE) + if (pu.cs->sps->getUseCiip() && !pu.cu->skip && !pu.cu->affine && !(pu.cu->lwidth() * pu.cu->lheight() < 64 || pu.cu->lwidth() >= MAX_CU_SIZE || pu.cu->lheight() >= MAX_CU_SIZE) && !pu.mmvdMergeFlag ) { - DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_CODED, pu, GetBlockStatisticName(BlockStatistic::MHIntraFlag), pu.mhIntraFlag); - if (pu.mhIntraFlag) + DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_CODED, pu, GetBlockStatisticName(BlockStatistic::CiipFlag), pu.ciipFlag); + if (pu.ciipFlag) { if (cu.Y().valid()) { @@ -995,9 +995,9 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea) { DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_CODED, cu, GetBlockStatisticName(BlockStatistic::IMVMode), cu.imv); } - if (CU::isGBiIdxCoded(cu)) + if (CU::isBcwIdxCoded(cu)) { - DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::GBIIndex), cu.GBiIdx); + DTRACE_BLOCK_SCALAR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, cu, GetBlockStatisticName(BlockStatistic::BCWIndex), cu.BcwIdx); } break; } diff --git a/source/Lib/CommonLib/dtrace_blockstatistics.h b/source/Lib/CommonLib/dtrace_blockstatistics.h index afe07885eb978705263fb040162b2ac81f717fde..b3f427b481e9e5af3e20b325d0bf023b0e752d4b 100644 --- a/source/Lib/CommonLib/dtrace_blockstatistics.h +++ b/source/Lib/CommonLib/dtrace_blockstatistics.h @@ -123,12 +123,12 @@ enum class BlockStatistic { MMVDSkipFlag, MMVDMergeFlag, MMVDMergeIdx, - MHIntraFlag, + CiipFlag, SMVDFlag, TrianglePartitioning, TriangleMVL0, //<< currently only uni-prediction enabled TriangleMVL1, //<< currently only uni-prediction enabled - GBIIndex, + BCWIndex, // for dual tree // general Depth_Chroma, @@ -225,12 +225,12 @@ static const std::map<BlockStatistic, std::tuple<std::string, BlockStatisticType { BlockStatistic::MMVDSkipFlag, std::tuple<std::string, BlockStatisticType, std::string>{"MMVDSkipFlag", BlockStatisticType::Flag, ""}}, { BlockStatistic::MMVDMergeFlag, std::tuple<std::string, BlockStatisticType, std::string>{"MMVDMergeFlag", BlockStatisticType::Flag, ""}}, { BlockStatistic::MMVDMergeIdx, std::tuple<std::string, BlockStatisticType, std::string>{"MMVDMergeIdx", BlockStatisticType::Integer, "[0, 1]"}}, - { BlockStatistic::MHIntraFlag, std::tuple<std::string, BlockStatisticType, std::string>{"MHIntraFlag", BlockStatisticType::Flag, ""}}, + { BlockStatistic::CiipFlag, std::tuple<std::string, BlockStatisticType, std::string>{"CiipFlag", BlockStatisticType::Flag, ""}}, { BlockStatistic::SMVDFlag, std::tuple<std::string, BlockStatisticType, std::string>{"SMVDFlag", BlockStatisticType::Flag, ""}}, { BlockStatistic::TrianglePartitioning, std::tuple<std::string, BlockStatisticType, std::string>{"TrianglePartitioning", BlockStatisticType::Line, ""}}, { BlockStatistic::TriangleMVL0, std::tuple<std::string, BlockStatisticType, std::string>{"TriangleMVL0", BlockStatisticType::VectorPolygon, "Scale: 4"}}, { BlockStatistic::TriangleMVL1, std::tuple<std::string, BlockStatisticType, std::string>{"TriangleMVL1", BlockStatisticType::VectorPolygon, "Scale: 4"}}, - { BlockStatistic::GBIIndex, std::tuple<std::string, BlockStatisticType, std::string>{"GBIIndex", BlockStatisticType::Integer, "[0, 4]"}}, + { BlockStatistic::BCWIndex, std::tuple<std::string, BlockStatisticType, std::string>{"BCWIndex", BlockStatisticType::Integer, "[0, 4]"}}, // for dual tree { BlockStatistic::Depth_Chroma, std::tuple<std::string, BlockStatisticType, std::string>{"Depth_Chroma", BlockStatisticType::Integer, "[0, 10]"}}, // todo: actual limits? { BlockStatistic::QT_Depth_Chroma, std::tuple<std::string, BlockStatisticType, std::string>{"QT_Depth_Chroma", BlockStatisticType::Integer, "[0, 10]"}}, // todo: actual limits? diff --git a/source/Lib/CommonLib/x86/BufferX86.h b/source/Lib/CommonLib/x86/BufferX86.h index 7e3c4104f6b70c5d75cf265a70e2fd77fddc00c9..c8e1f023e904aab3303883b3c14b9cbf5967979b 100644 --- a/source/Lib/CommonLib/x86/BufferX86.h +++ b/source/Lib/CommonLib/x86/BufferX86.h @@ -556,9 +556,9 @@ template< X86_VEXT vext, bool l1PROFEnabled = true> void applyBiPROF_SSE(Pel* dst, int dstStride, const Pel* src0, const Pel* src1, int srcStride, int width, int height, const Pel* gradX0, const Pel* gradY0, const Pel* gradX1, const Pel* gradY1, int gradStride, const int* dMvX0, const int* dMvY0, const int* dMvX1, const int* dMvY1, int dMvStride, const int8_t w0, const ClpRng& clpRng) { const int rShift = IF_INTERNAL_PREC - clpRng.bd; - const int shiftNum = (rShift > 2 ? rShift : 2) + g_GbiLog2WeightBase; - const int offset = (1 << (shiftNum - 1)) + (IF_INTERNAL_OFFS << g_GbiLog2WeightBase); - const int8_t w1 = g_GbiWeightBase - w0; + const int shiftNum = (rShift > 2 ? rShift : 2) + g_BcwLog2WeightBase; + const int offset = (1 << (shiftNum - 1)) + (IF_INTERNAL_OFFS << g_BcwLog2WeightBase); + const int8_t w1 = g_BcwWeightBase - w0; __m128i mm_offset = _mm_set1_epi32(offset); __m128i mm_w0 = _mm_set1_epi32(w0); @@ -1125,13 +1125,13 @@ void reco_SSE( const int16_t* src0, int src0Stride, const int16_t* src1, int src } } -#if ENABLE_SIMD_OPT_GBI +#if ENABLE_SIMD_OPT_BCW template< X86_VEXT vext, int W > -void removeWeightHighFreq_SSE(int16_t* src0, int src0Stride, const int16_t* src1, int src1Stride, int width, int height, int shift, int gbiWeight) +void removeWeightHighFreq_SSE(int16_t* src0, int src0Stride, const int16_t* src1, int src1Stride, int width, int height, int shift, int bcwWeight) { - int normalizer = ((1 << 16) + (gbiWeight>0 ? (gbiWeight >> 1) : -(gbiWeight >> 1))) / gbiWeight; - int weight0 = normalizer << g_GbiLog2WeightBase; - int weight1 = (g_GbiWeightBase - gbiWeight)*normalizer; + int normalizer = ((1 << 16) + (bcwWeight>0 ? (bcwWeight >> 1) : -(bcwWeight >> 1))) / bcwWeight; + int weight0 = normalizer << g_BcwLog2WeightBase; + int weight1 = (g_BcwWeightBase - bcwWeight)*normalizer; int offset = 1 << (shift - 1); if (W == 8) { @@ -1431,7 +1431,7 @@ void PelBufferOps::_initPelBufOpsX86() linTf8 = linTf_SSE_entry<vext, 8>; linTf4 = linTf_SSE_entry<vext, 4>; -#if ENABLE_SIMD_OPT_GBI +#if ENABLE_SIMD_OPT_BCW removeWeightHighFreq8 = removeWeightHighFreq_SSE<vext, 8>; removeWeightHighFreq4 = removeWeightHighFreq_SSE<vext, 4>; removeHighFreq8 = removeHighFreq_SSE<vext, 8>; diff --git a/source/Lib/DecoderLib/CABACReader.cpp b/source/Lib/DecoderLib/CABACReader.cpp index d4ae962efbf5e0c1646a805d9a843743cdbfd0f4..25450b33a32da2426368ea6fb0f4e68445e63f96 100644 --- a/source/Lib/DecoderLib/CABACReader.cpp +++ b/source/Lib/DecoderLib/CABACReader.cpp @@ -1393,29 +1393,29 @@ void CABACReader::cu_pred_data( CodingUnit &cu ) imv_mode ( cu, mrgCtx ); affine_amvr_mode( cu, mrgCtx ); - cu_gbi_flag( cu ); + cu_bcw_flag( cu ); } -void CABACReader::cu_gbi_flag(CodingUnit& cu) +void CABACReader::cu_bcw_flag(CodingUnit& cu) { - if(!CU::isGBiIdxCoded(cu)) + if(!CU::isBcwIdxCoded(cu)) { return; } - CHECK(!(GBI_NUM > 1 && (GBI_NUM == 2 || (GBI_NUM & 0x01) == 1)), " !( GBI_NUM > 1 && ( GBI_NUM == 2 || ( GBI_NUM & 0x01 ) == 1 ) ) "); + CHECK(!(BCW_NUM > 1 && (BCW_NUM == 2 || (BCW_NUM & 0x01) == 1)), " !( BCW_NUM > 1 && ( BCW_NUM == 2 || ( BCW_NUM & 0x01 ) == 1 ) ) "); - RExt__DECODER_DEBUG_BIT_STATISTICS_CREATE_SET(STATS__CABAC_BITS__GBI_IDX); + RExt__DECODER_DEBUG_BIT_STATISTICS_CREATE_SET(STATS__CABAC_BITS__BCW_IDX); uint32_t idx = 0; - uint32_t symbol = m_BinDecoder.decodeBin(Ctx::GBiIdx(0)); + uint32_t symbol = m_BinDecoder.decodeBin(Ctx::BcwIdx(0)); - int32_t numGBi = (cu.slice->getCheckLDC()) ? 5 : 3; + int32_t numBcw = (cu.slice->getCheckLDC()) ? 5 : 3; if(symbol == 1) { - uint32_t prefixNumBits = numGBi - 2; + uint32_t prefixNumBits = numBcw - 2; uint32_t step = 1; idx = 1; @@ -1431,10 +1431,10 @@ void CABACReader::cu_gbi_flag(CodingUnit& cu) } } - uint8_t gbiIdx = (uint8_t)g_GbiParsingOrder[idx]; - CU::setGbiIdx(cu, gbiIdx); + uint8_t bcwIdx = (uint8_t)g_BcwParsingOrder[idx]; + CU::setBcwIdx(cu, bcwIdx); - DTRACE(g_trace_ctx, D_SYNTAX, "cu_gbi_flag() gbi_idx=%d\n", cu.GBiIdx ? 1 : 0); + DTRACE(g_trace_ctx, D_SYNTAX, "cu_bcw_flag() bcw_idx=%d\n", cu.BcwIdx ? 1 : 0); } void CABACReader::xReadTruncBinCode(uint32_t& symbol, uint32_t maxSymbol) @@ -2568,7 +2568,7 @@ void CABACReader::prediction_unit( PredictionUnit& pu, MergeCtx& mrgCtx ) pu.mv [REF_PIC_LIST_1] = Mv(0, 0); pu.refIdx[REF_PIC_LIST_1] = -1; pu.interDir = 1; - pu.cu->GBiIdx = GBI_DEFAULT; + pu.cu->BcwIdx = BCW_DEFAULT; } if ( pu.cu->smvdMode ) @@ -2684,7 +2684,7 @@ void CABACReader::merge_data( PredictionUnit& pu ) #else const bool triangleAvailable = pu.cu->cs->slice->getSPS()->getUseTriangle() && pu.cu->cs->slice->isInterB() && pu.cu->cs->slice->getMaxNumTriangleCand() > 1; #endif - const bool ciipAvailable = pu.cs->sps->getUseMHIntra() && !pu.cu->skip && pu.cu->lwidth() < MAX_CU_SIZE && pu.cu->lheight() < MAX_CU_SIZE; + const bool ciipAvailable = pu.cs->sps->getUseCiip() && !pu.cu->skip && pu.cu->lwidth() < MAX_CU_SIZE && pu.cu->lheight() < MAX_CU_SIZE; if (pu.cu->lwidth() * pu.cu->lheight() >= 64 && (triangleAvailable || ciipAvailable)) { @@ -2715,17 +2715,17 @@ void CABACReader::merge_data( PredictionUnit& pu ) pu.cu->mmvdSkip = false; if (triangleAvailable && ciipAvailable) { - MHIntra_flag(pu); + Ciip_flag(pu); } else if (ciipAvailable) { - pu.mhIntraFlag = true; + pu.ciipFlag = true; } else { - pu.mhIntraFlag = false; + pu.ciipFlag = false; } - if (pu.mhIntraFlag) + if (pu.ciipFlag) { pu.intraDir[0] = PLANAR_IDX; pu.intraDir[1] = DM_CHROMA_IDX; @@ -2998,23 +2998,23 @@ void CABACReader::mvp_flag( PredictionUnit& pu, RefPicList eRefList ) } -void CABACReader::MHIntra_flag(PredictionUnit& pu) +void CABACReader::Ciip_flag(PredictionUnit& pu) { - if (!pu.cs->sps->getUseMHIntra()) + if (!pu.cs->sps->getUseCiip()) { - pu.mhIntraFlag = false; + pu.ciipFlag = false; return; } if (pu.cu->skip) { - pu.mhIntraFlag = false; + pu.ciipFlag = false; return; } RExt__DECODER_DEBUG_BIT_STATISTICS_CREATE_SET(STATS__CABAC_BITS__MH_INTRA_FLAG); - pu.mhIntraFlag = (m_BinDecoder.decodeBin(Ctx::MHIntraFlag())); - DTRACE(g_trace_ctx, D_SYNTAX, "MHIntra_flag() MHIntra=%d pos=(%d,%d) size=%dx%d\n", pu.mhIntraFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); + pu.ciipFlag = (m_BinDecoder.decodeBin(Ctx::CiipFlag())); + DTRACE(g_trace_ctx, D_SYNTAX, "Ciip_flag() Ciip=%d pos=(%d,%d) size=%dx%d\n", pu.ciipFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); } diff --git a/source/Lib/DecoderLib/CABACReader.h b/source/Lib/DecoderLib/CABACReader.h index 5fe581c304871b2c0e747b006aaa7b2dd63692cc..b5afbe8120a8afed08bc254bd1513d1a16468893 100644 --- a/source/Lib/DecoderLib/CABACReader.h +++ b/source/Lib/DecoderLib/CABACReader.h @@ -98,7 +98,7 @@ public: void pred_mode ( CodingUnit& cu ); void bdpcm_mode ( CodingUnit& cu, const ComponentID compID ); void cu_pred_data ( CodingUnit& cu ); - void cu_gbi_flag ( CodingUnit& cu ); + void cu_bcw_flag ( CodingUnit& cu ); void extend_ref_line (CodingUnit& cu); void intra_luma_pred_modes ( CodingUnit& cu ); void intra_chroma_pred_modes ( CodingUnit& cu ); @@ -135,7 +135,7 @@ public: void inter_pred_idc ( PredictionUnit& pu ); void ref_idx ( PredictionUnit& pu, RefPicList eRefList ); void mvp_flag ( PredictionUnit& pu, RefPicList eRefList ); - void MHIntra_flag ( PredictionUnit& pu ); + void Ciip_flag ( PredictionUnit& pu ); void smvd_mode ( PredictionUnit& pu ); diff --git a/source/Lib/DecoderLib/DecCu.cpp b/source/Lib/DecoderLib/DecCu.cpp index 90c4ba07b5250fce678947031d002e355600eb3d..dc56eabd3f06b1e861ba1e08f7aa293a246ffb40 100644 --- a/source/Lib/DecoderLib/DecCu.cpp +++ b/source/Lib/DecoderLib/DecCu.cpp @@ -733,7 +733,7 @@ void DecCu::xReconInter(CodingUnit &cu) m_pcIntraPred->geneIntrainterPred(cu); // inter prediction - CHECK(CU::isIBC(cu) && cu.firstPU->mhIntraFlag, "IBC and MHIntra cannot be used together"); + CHECK(CU::isIBC(cu) && cu.firstPU->ciipFlag, "IBC and Ciip cannot be used together"); CHECK(CU::isIBC(cu) && cu.affine, "IBC and Affine cannot be used together"); CHECK(CU::isIBC(cu) && cu.triangle, "IBC and triangle cannot be used together"); CHECK(CU::isIBC(cu) && cu.firstPU->mmvdMergeFlag, "IBC and MMVD cannot be used together"); @@ -759,7 +759,7 @@ void DecCu::xReconInter(CodingUnit &cu) #endif } - if (cu.firstPU->mhIntraFlag) + if (cu.firstPU->ciipFlag) { #if JVET_P1006_PICTURE_HEADER if (cu.cs->picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()) @@ -816,7 +816,7 @@ void DecCu::xReconInter(CodingUnit &cu) tmpPred.copyFrom(cs.getPredBuf(cu).get(COMPONENT_Y)); } #endif - if (!cu.firstPU->mhIntraFlag && !CU::isIBC(cu)) + if (!cu.firstPU->ciipFlag && !CU::isIBC(cu)) cs.getPredBuf(cu).get(COMPONENT_Y).rspSignal(m_pcReshape->getFwdLUT()); } #if KEEP_PRED_AND_RESI_SIGNALS @@ -843,9 +843,9 @@ void DecCu::xReconInter(CodingUnit &cu) { cs.getRecoBuf(cu).copyClip(cs.getPredBuf(cu), cs.slice->clpRngs()); #if JVET_P1006_PICTURE_HEADER - if (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag() && !cu.firstPU->mhIntraFlag && !CU::isIBC(cu)) + if (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag() && !cu.firstPU->ciipFlag && !CU::isIBC(cu)) #else - if (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag() && !cu.firstPU->mhIntraFlag && !CU::isIBC(cu)) + if (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag() && !cu.firstPU->ciipFlag && !CU::isIBC(cu)) #endif { cs.getRecoBuf(cu).get(COMPONENT_Y).rspSignal(m_pcReshape->getFwdLUT()); @@ -992,7 +992,7 @@ void DecCu::xDeriveCUMV( CodingUnit &cu ) { if (pu.mmvdMergeFlag || pu.cu->mmvdSkip) { - CHECK(pu.mhIntraFlag == true, "invalid MHIntra"); + CHECK(pu.ciipFlag == true, "invalid Ciip"); if (pu.cs->sps->getSBTMVPEnabledFlag()) { Size bufSize = g_miScaling.scale(pu.lumaSize()); @@ -1033,7 +1033,7 @@ void DecCu::xDeriveCUMV( CodingUnit &cu ) PU::getAffineMergeCand( pu, affineMergeCtx, pu.mergeIdx ); pu.interDir = affineMergeCtx.interDirNeighbours[pu.mergeIdx]; pu.cu->affineType = affineMergeCtx.affineType[pu.mergeIdx]; - pu.cu->GBiIdx = affineMergeCtx.GBiIdx[pu.mergeIdx]; + pu.cu->BcwIdx = affineMergeCtx.BcwIdx[pu.mergeIdx]; pu.mergeType = affineMergeCtx.mergeType[pu.mergeIdx]; if ( pu.mergeType == MRG_TYPE_SUBPU_ATMVP ) { diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp index f68088c1bee0f26cf321909b119193dc02a146c2..7a4e9cc7112f82c68711ffe4d2834345ca84f134 100644 --- a/source/Lib/DecoderLib/DecLib.cpp +++ b/source/Lib/DecoderLib/DecLib.cpp @@ -587,7 +587,7 @@ void DecLib::executeLoopFilters() CodingStructure& cs = *m_pcPic->cs; - if (cs.sps->getUseReshaper() && m_cReshaper.getSliceReshaperInfo().getUseSliceReshaper()) + if (cs.sps->getUseLmcs() && m_cReshaper.getSliceReshaperInfo().getUseSliceReshaper()) { CHECK((m_cReshaper.getRecReshaped() == false), "Rec picture is not reshaped!"); m_pcPic->getRecoBuf(COMPONENT_Y).rspSignal(m_cReshaper.getInvLUT()); @@ -1143,7 +1143,7 @@ void DecLib::xActivateParameterSets() m_cLoopFilter.create( sps->getMaxCodingDepth() ); m_cIntraPred.init( sps->getChromaFormatIdc(), sps->getBitDepth( CHANNEL_TYPE_LUMA ) ); m_cInterPred.init( &m_cRdCost, sps->getChromaFormatIdc(), sps->getMaxCUHeight() ); - if (sps->getUseReshaper()) + if (sps->getUseLmcs()) { m_cReshaper.createDec(sps->getBitDepth(CHANNEL_TYPE_LUMA)); } @@ -1173,7 +1173,7 @@ void DecLib::xActivateParameterSets() // Recursive structure m_cCuDecoder.init( &m_cTrQuant, &m_cIntraPred, &m_cInterPred ); - if (sps->getUseReshaper()) + if (sps->getUseLmcs()) { m_cCuDecoder.initDecCuReshaper(&m_cReshaper, sps->getChromaFormatIdc()); } @@ -1838,7 +1838,7 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl } - if (pcSlice->getSPS()->getUseReshaper()) + if (pcSlice->getSPS()->getUseLmcs()) { if (m_bFirstSliceInPicture) m_sliceLmcsApsId = -1; diff --git a/source/Lib/DecoderLib/DecSlice.cpp b/source/Lib/DecoderLib/DecSlice.cpp index 75d9c56fdc82937d29290e3aabb1ad7a86384e44..4d979e046ec9197cac8d695c46b0edf74e096926 100644 --- a/source/Lib/DecoderLib/DecSlice.cpp +++ b/source/Lib/DecoderLib/DecSlice.cpp @@ -231,13 +231,13 @@ void DecSlice::decompressSlice( Slice* slice, InputBitstream* bitstream, int deb } #if JVET_P1004_REMOVE_BRICKS - bool updateGbiCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuIdx == 0; + bool updateBcwCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuIdx == 0; #else - bool updateGbiCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuTsAddr == startCtuTsAddr; + bool updateBcwCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuTsAddr == startCtuTsAddr; #endif - if(updateGbiCodingOrder) + if(updateBcwCodingOrder) { - resetGbiCodingOrder(true, cs); + resetBcwCodingOrder(true, cs); } if ((cs.slice->getSliceType() != I_SLICE || cs.sps->getIBCFlag()) && ctuXPosInCtus == tileXPosInCtus) diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 4537af73fb91efd0d93371e5ac8e24d3b03e7510..ec3cc60317d6e279cd2f57a9717482f5f26ab144 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -459,8 +459,8 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS, ParameterSetManager *parameterSetMana pcPPS->resetTileSliceInfo(); // CTU size - required to match size in SPS - READ_CODE(2, uiCode, "log2_pps_ctu_size_minus5"); pcPPS->setLog2CtuSize(uiCode + 5); - CHECK(uiCode > 2, "log2_pps_ctu_size_minus5 must be less than or equal to 2"); + READ_CODE(2, uiCode, "pps_log2_ctu_size_minus5"); pcPPS->setLog2CtuSize(uiCode + 5); + CHECK(uiCode > 2, "pps_log2_ctu_size_minus5 must be less than or equal to 2"); // number of explicit tile columns/rows READ_UVLC( uiCode, "num_exp_tile_columns_minus1" ); pcPPS->setNumExpTileColumns( uiCode + 1 ); @@ -633,7 +633,7 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS, ParameterSetManager *parameterSetMana if (pcPPS->getJointCbCrQpOffsetPresentFlag()) { - READ_SVLC(iCode, "pps_joint_cbcr_qp_offset"); + READ_SVLC(iCode, "pps_joint_cbcr_qp_offset_value"); } else { @@ -652,7 +652,7 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS, ParameterSetManager *parameterSetMana READ_FLAG( uiCode, "pps_slice_chroma_qp_offsets_present_flag" ); pcPPS->setSliceChromaQpFlag( uiCode ? true : false ); - READ_FLAG( uiCode, "cu_chroma_qp_offset_enabled_flag"); + READ_FLAG( uiCode, "pps_cu_chroma_qp_offset_enabled_flag"); if (uiCode == 0) { pcPPS->clearChromaQpOffsetList(); @@ -1044,7 +1044,7 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS, ParameterSetManager *parameterSetMana READ_FLAG( uiCode, "picture_header_extension_present_flag"); pcPPS->setPictureHeaderExtensionPresentFlag(uiCode); #endif - READ_FLAG( uiCode, "slice_segment_header_extension_present_flag"); + READ_FLAG( uiCode, "slice_header_extension_present_flag"); pcPPS->setSliceHeaderExtensionPresentFlag(uiCode); @@ -1790,7 +1790,7 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) #if JVET_P2001_SYNTAX_ORDER_MISMATCHES READ_FLAG(uiCode, "sps_smvd_enabled_flag"); pcSPS->setUseSMVD( uiCode != 0 ); #endif - READ_FLAG(uiCode, "sps_dmvr_enable_flag"); pcSPS->setUseDMVR(uiCode != 0); + READ_FLAG(uiCode, "sps_dmvr_enabled_flag"); pcSPS->setUseDMVR(uiCode != 0); #if JVET_P2001_SYNTAX_ORDER_MISMATCHES && JVET_P0314_PROF_BDOF_DMVR_HLS if (pcSPS->getUseDMVR()) { @@ -1800,7 +1800,7 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) pcSPS->setDmvrControlPresentFlag( false ); } #endif - READ_FLAG(uiCode, "sps_mmvd_enable_flag"); pcSPS->setUseMMVD(uiCode != 0); + READ_FLAG(uiCode, "sps_mmvd_enabled_flag"); pcSPS->setUseMMVD(uiCode != 0); #if JVET_P2001_SYNTAX_ORDER_MISMATCHES READ_FLAG(uiCode, "sps_isp_enabled_flag"); pcSPS->setUseISP( uiCode != 0 ); READ_FLAG(uiCode, "sps_mrl_enabled_flag"); pcSPS->setUseMRL( uiCode != 0 ); @@ -1830,11 +1830,11 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) } #endif - READ_FLAG( uiCode, "mts_enabled_flag" ); pcSPS->setUseMTS ( uiCode != 0 ); + READ_FLAG( uiCode, "sps_mts_enabled_flag" ); pcSPS->setUseMTS ( uiCode != 0 ); if ( pcSPS->getUseMTS() ) { - READ_FLAG( uiCode, "mts_intra_enabled_flag" ); pcSPS->setUseIntraMTS ( uiCode != 0 ); - READ_FLAG( uiCode, "mts_inter_enabled_flag" ); pcSPS->setUseInterMTS ( uiCode != 0 ); + READ_FLAG( uiCode, "sps_explicit_mts_intra_enabled_flag" ); pcSPS->setUseIntraMTS ( uiCode != 0 ); + READ_FLAG( uiCode, "sps_explicit_mts_inter_enabled_flag" ); pcSPS->setUseInterMTS ( uiCode != 0 ); } #if JVET_P2001_SYNTAX_ORDER_MISMATCHES READ_FLAG(uiCode, "sps_sbt_enabled_flag"); pcSPS->setUseSBT ( uiCode != 0 ); @@ -1842,11 +1842,10 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) READ_FLAG( uiCode, "lfnst_enabled_flag" ); pcSPS->setUseLFNST ( uiCode != 0 ); READ_FLAG(uiCode, "smvd_flag"); pcSPS->setUseSMVD ( uiCode != 0 ); #endif - // KJS: sps_affine_enabled_flag - READ_FLAG( uiCode, "affine_flag" ); pcSPS->setUseAffine ( uiCode != 0 ); + READ_FLAG( uiCode, "sps_affine_enabled_flag" ); pcSPS->setUseAffine ( uiCode != 0 ); if ( pcSPS->getUseAffine() ) { - READ_FLAG( uiCode, "affine_type_flag" ); pcSPS->setUseAffineType ( uiCode != 0 ); + READ_FLAG( uiCode, "sps_affine_type_flag" ); pcSPS->setUseAffineType ( uiCode != 0 ); #if JVET_P2001_SYNTAX_ORDER_MISMATCHES READ_FLAG( uiCode, "sps_affine_amvr_enabled_flag" ); pcSPS->setAffineAmvrEnabledFlag ( uiCode != 0 ); READ_FLAG( uiCode, "sps_affine_prof_enabled_flag" ); pcSPS->setUsePROF ( uiCode != 0 ); @@ -1865,12 +1864,12 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) #endif } #if !JVET_P2001_SYNTAX_ORDER_MISMATCHES - READ_FLAG( uiCode, "gbi_flag" ); pcSPS->setUseGBi ( uiCode != 0 ); + READ_FLAG( uiCode, "bcw_flag" ); pcSPS->setUseBcw ( uiCode != 0 ); #endif #if JVET_P0517_ADAPTIVE_COLOR_TRANSFORM if (pcSPS->getChromaFormatIdc() == CHROMA_444) { - READ_FLAG(uiCode, "act_flag"); pcSPS->setUseColorTrans(uiCode != 0); + READ_FLAG(uiCode, "sps_act_enabled_flag"); pcSPS->setUseColorTrans(uiCode != 0); } else { @@ -1879,18 +1878,18 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) #endif if (pcSPS->getChromaFormatIdc() == CHROMA_444) { - READ_FLAG( uiCode, "plt_flag"); pcSPS->setPLTMode ( uiCode != 0 ); + READ_FLAG( uiCode, "sps_palette_enabled_flag"); pcSPS->setPLTMode ( uiCode != 0 ); } else { pcSPS->setPLTMode(false); } #if JVET_P2001_SYNTAX_ORDER_MISMATCHES - READ_FLAG( uiCode, "sps_bcw_enabled_flag" ); pcSPS->setUseGBi( uiCode != 0 ); + READ_FLAG( uiCode, "sps_bcw_enabled_flag" ); pcSPS->setUseBcw( uiCode != 0 ); #endif - READ_FLAG(uiCode, "ibc_flag"); pcSPS->setIBCFlag(uiCode); + READ_FLAG(uiCode, "sps_ibc_enabled_flag"); pcSPS->setIBCFlag(uiCode); // KJS: sps_ciip_enabled_flag - READ_FLAG( uiCode, "mhintra_flag" ); pcSPS->setUseMHIntra ( uiCode != 0 ); + READ_FLAG( uiCode, "sps_ciip_enabled_flag" ); pcSPS->setUseCiip ( uiCode != 0 ); if ( pcSPS->getUseMMVD() ) { @@ -1931,8 +1930,7 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) READ_FLAG(uiCode, "max_sbt_size_64_flag"); pcSPS->setMaxSbtSize(std::min((int)(1 << pcSPS->getLog2MaxTbSize()), uiCode != 0 ? 64 : 32)); } #endif - // KJS: not in draft yet - READ_FLAG(uiCode, "sps_reshaper_enable_flag"); pcSPS->setUseReshaper(uiCode == 1); + READ_FLAG(uiCode, "sps_lmcs_enable_flag"); pcSPS->setUseLmcs(uiCode == 1); #if JVET_P2001_SYNTAX_ORDER_MISMATCHES READ_FLAG( uiCode, "sps_lfnst_enabled_flag" ); pcSPS->setUseLFNST( uiCode != 0 ); #else @@ -2797,7 +2795,7 @@ void HLSyntaxReader::parsePictureHeader( PicHeader* picHeader, ParameterSetManag } // luma mapping / chroma scaling controls - if (sps->getUseReshaper()) + if (sps->getUseLmcs()) { READ_FLAG(uiCode, "pic_lmcs_enabled_flag"); picHeader->setLmcsEnabledFlag(uiCode != 0); @@ -3838,7 +3836,7 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para } pcSlice->setLFCrossSliceBoundaryFlag( (uiCode==1)?true:false); - if (sps->getUseReshaper()) + if (sps->getUseLmcs()) { READ_FLAG(uiCode, "slice_lmcs_enabled_flag"); pcSlice->setLmcsEnabledFlag(uiCode == 1); @@ -4070,9 +4068,9 @@ void HLSyntaxReader::parseConstraintInfo(ConstraintInfo *cinfo) READ_FLAG(symbol, "no_mts_constraint_flag"); cinfo->setNoMtsConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "no_sbt_constraint_flag"); cinfo->setNoSbtConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "no_affine_motion_constraint_flag"); cinfo->setNoAffineMotionConstraintFlag(symbol > 0 ? true : false); - READ_FLAG(symbol, "no_gbi_constraint_flag"); cinfo->setNoGbiConstraintFlag(symbol > 0 ? true : false); + READ_FLAG(symbol, "no_bcw_constraint_flag"); cinfo->setNoBcwConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "no_ibc_constraint_flag"); cinfo->setNoIbcConstraintFlag(symbol > 0 ? true : false); - READ_FLAG(symbol, "no_mh_intra_constraint_flag"); cinfo->setNoMhIntraConstraintFlag(symbol > 0 ? true : false); + READ_FLAG(symbol, "no_ciip_constraint_flag"); cinfo->setNoCiipConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "no_fpel_mmvd_constraint_flag"); cinfo->setNoFPelMmvdConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "no_triangle_constraint_flag"); cinfo->setNoTriangleConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "no_ladf_constraint_flag"); cinfo->setNoLadfConstraintFlag(symbol > 0 ? true : false); diff --git a/source/Lib/EncoderLib/CABACWriter.cpp b/source/Lib/EncoderLib/CABACWriter.cpp index 1d2bc2583c8e51fda8f25864bfec042efaa6c6da..0b4c3d6889c33b7d251509298e09c5bb345a63fa 100644 --- a/source/Lib/EncoderLib/CABACWriter.cpp +++ b/source/Lib/EncoderLib/CABACWriter.cpp @@ -878,31 +878,31 @@ void CABACWriter::cu_pred_data( const CodingUnit& cu ) imv_mode ( cu ); affine_amvr_mode( cu ); - cu_gbi_flag( cu ); + cu_bcw_flag( cu ); } -void CABACWriter::cu_gbi_flag(const CodingUnit& cu) +void CABACWriter::cu_bcw_flag(const CodingUnit& cu) { - if(!CU::isGBiIdxCoded(cu)) + if(!CU::isBcwIdxCoded(cu)) { return; } - CHECK(!(GBI_NUM > 1 && (GBI_NUM == 2 || (GBI_NUM & 0x01) == 1)), " !( GBI_NUM > 1 && ( GBI_NUM == 2 || ( GBI_NUM & 0x01 ) == 1 ) ) "); - const uint8_t gbiCodingIdx = (uint8_t)g_GbiCodingOrder[CU::getValidGbiIdx(cu)]; + CHECK(!(BCW_NUM > 1 && (BCW_NUM == 2 || (BCW_NUM & 0x01) == 1)), " !( BCW_NUM > 1 && ( BCW_NUM == 2 || ( BCW_NUM & 0x01 ) == 1 ) ) "); + const uint8_t bcwCodingIdx = (uint8_t)g_BcwCodingOrder[CU::getValidBcwIdx(cu)]; - const int32_t numGBi = (cu.slice->getCheckLDC()) ? 5 : 3; - m_BinEncoder.encodeBin((gbiCodingIdx == 0 ? 0 : 1), Ctx::GBiIdx(0)); - if(numGBi > 2 && gbiCodingIdx != 0) + const int32_t numBcw = (cu.slice->getCheckLDC()) ? 5 : 3; + m_BinEncoder.encodeBin((bcwCodingIdx == 0 ? 0 : 1), Ctx::BcwIdx(0)); + if(numBcw > 2 && bcwCodingIdx != 0) { - const uint32_t prefixNumBits = numGBi - 2; + const uint32_t prefixNumBits = numBcw - 2; const uint32_t step = 1; uint8_t idx = 1; for(int ui = 0; ui < prefixNumBits; ++ui) { - if (gbiCodingIdx == idx) + if (bcwCodingIdx == idx) { m_BinEncoder.encodeBinEP(0); break; @@ -915,7 +915,7 @@ void CABACWriter::cu_gbi_flag(const CodingUnit& cu) } } - DTRACE(g_trace_ctx, D_SYNTAX, "cu_gbi_flag() gbi_idx=%d\n", cu.GBiIdx ? 1 : 0); + DTRACE(g_trace_ctx, D_SYNTAX, "cu_bcw_flag() bcw_idx=%d\n", cu.BcwIdx ? 1 : 0); } void CABACWriter::xWriteTruncBinCode(uint32_t symbol, uint32_t maxSymbol) @@ -2215,7 +2215,7 @@ void CABACWriter::merge_data(const PredictionUnit& pu) #else const bool triangleAvailable = pu.cu->cs->slice->getSPS()->getUseTriangle() && pu.cu->cs->slice->isInterB() && pu.cu->cs->slice->getMaxNumTriangleCand() > 1; #endif - const bool ciipAvailable = pu.cs->sps->getUseMHIntra() && !pu.cu->skip && pu.cu->lwidth() < MAX_CU_SIZE && pu.cu->lheight() < MAX_CU_SIZE; + const bool ciipAvailable = pu.cs->sps->getUseCiip() && !pu.cu->skip && pu.cu->lwidth() < MAX_CU_SIZE && pu.cu->lheight() < MAX_CU_SIZE; if (pu.cu->lwidth() * pu.cu->lheight() >= 64 && (triangleAvailable || ciipAvailable)) { @@ -2241,7 +2241,7 @@ void CABACWriter::merge_data(const PredictionUnit& pu) { if (triangleAvailable && ciipAvailable) { - MHIntra_flag(pu); + Ciip_flag(pu); } merge_idx(pu); } @@ -2563,20 +2563,20 @@ void CABACWriter::mvp_flag( const PredictionUnit& pu, RefPicList eRefList ) DTRACE( g_trace_ctx, D_SYNTAX, "mvpIdx(refList:%d)=%d\n", eRefList, pu.mvpIdx[eRefList] ); } -void CABACWriter::MHIntra_flag(const PredictionUnit& pu) +void CABACWriter::Ciip_flag(const PredictionUnit& pu) { - if (!pu.cs->sps->getUseMHIntra()) + if (!pu.cs->sps->getUseCiip()) { - CHECK(pu.mhIntraFlag == true, "invalid MHIntra SPS"); + CHECK(pu.ciipFlag == true, "invalid Ciip SPS"); return; } if (pu.cu->skip) { - CHECK(pu.mhIntraFlag == true, "invalid MHIntra and skip"); + CHECK(pu.ciipFlag == true, "invalid Ciip and skip"); return; } - m_BinEncoder.encodeBin(pu.mhIntraFlag, Ctx::MHIntraFlag()); - DTRACE(g_trace_ctx, D_SYNTAX, "MHIntra_flag() MHIntra=%d pos=(%d,%d) size=%dx%d\n", pu.mhIntraFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); + m_BinEncoder.encodeBin(pu.ciipFlag, Ctx::CiipFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "Ciip_flag() Ciip=%d pos=(%d,%d) size=%dx%d\n", pu.ciipFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); } diff --git a/source/Lib/EncoderLib/CABACWriter.h b/source/Lib/EncoderLib/CABACWriter.h index ecb5f977002b52c708882b815a791baba4122acf..6024a4566ee6016e95b0e61e279a5b2ec71045bc 100644 --- a/source/Lib/EncoderLib/CABACWriter.h +++ b/source/Lib/EncoderLib/CABACWriter.h @@ -93,7 +93,7 @@ public: void bdpcm_mode ( const CodingUnit& cu, const ComponentID compID ); void cu_pred_data ( const CodingUnit& cu ); - void cu_gbi_flag ( const CodingUnit& cu ); + void cu_bcw_flag ( const CodingUnit& cu ); void extend_ref_line (const PredictionUnit& pu ); void extend_ref_line (const CodingUnit& cu ); void intra_luma_pred_modes ( const CodingUnit& cu ); @@ -133,7 +133,7 @@ public: void ref_idx ( const PredictionUnit& pu, RefPicList eRefList ); void mvp_flag ( const PredictionUnit& pu, RefPicList eRefList ); - void MHIntra_flag ( const PredictionUnit& pu ); + void Ciip_flag ( const PredictionUnit& pu ); void smvd_mode ( const PredictionUnit& pu ); diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h index e7908916372834b24e3adb20fbbf756b9b406c5b..f300a1e1480d226f29a2de771fad837c7034ae3e 100644 --- a/source/Lib/EncoderLib/EncCfg.h +++ b/source/Lib/EncoderLib/EncCfg.h @@ -204,9 +204,9 @@ protected: bool m_bNoMtsConstraintFlag; bool m_noSbtConstraintFlag; bool m_bNoAffineMotionConstraintFlag; - bool m_bNoGbiConstraintFlag; + bool m_bNoBcwConstraintFlag; bool m_noIbcConstraintFlag; - bool m_bNoMhIntraConstraintFlag; + bool m_bNoCiipConstraintFlag; bool m_noFPelMmvdConstraintFlag; bool m_bNoTriangleConstraintFlag; bool m_bNoLadfConstraintFlag; @@ -316,8 +316,8 @@ protected: bool m_SMVD; bool m_compositeRefEnabled; //composite reference - bool m_GBi; - bool m_GBiFast; + bool m_bcw; + bool m_BcwFast; #if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET bool m_LadfEnabled; int m_LadfNumIntervals; @@ -325,7 +325,7 @@ protected: int m_LadfIntervalLowerBound[MAX_LADF_INTERVALS]; #endif - bool m_MHIntra; + bool m_ciip; bool m_Triangle; bool m_allowDisFracMMVD; bool m_AffineAmvr; @@ -357,7 +357,7 @@ protected: unsigned m_numHorVirtualBoundaries; unsigned m_virtualBoundariesPosX[3]; unsigned m_virtualBoundariesPosY[3]; - bool m_lumaReshapeEnable; + bool m_lmcsEnabled; unsigned m_reshapeSignalType; unsigned m_intraCMD; ReshapeCW m_reshapeCW; @@ -854,12 +854,12 @@ public: void setNoSbtConstraintFlag(bool bVal) { m_noSbtConstraintFlag = bVal; } bool getNoAffineMotionConstraintFlag() const { return m_bNoAffineMotionConstraintFlag; } void setNoAffineMotionConstraintFlag(bool bVal) { m_bNoAffineMotionConstraintFlag = bVal; } - bool getNoGbiConstraintFlag() const { return m_bNoGbiConstraintFlag; } - void setNoGbiConstraintFlag(bool bVal) { m_bNoGbiConstraintFlag = bVal; } + bool getNoBcwConstraintFlag() const { return m_bNoBcwConstraintFlag; } + void setNoBcwConstraintFlag(bool bVal) { m_bNoBcwConstraintFlag = bVal; } bool getNoIbcConstraintFlag() const { return m_noIbcConstraintFlag; } void setNoIbcConstraintFlag(bool bVal) { m_noIbcConstraintFlag = bVal; } - bool getNoMhIntraConstraintFlag() const { return m_bNoMhIntraConstraintFlag; } - void setNoMhIntraConstraintFlag(bool bVal) { m_bNoMhIntraConstraintFlag = bVal; } + bool getNoCiipConstraintFlag() const { return m_bNoCiipConstraintFlag; } + void setNoCiipConstraintFlag(bool bVal) { m_bNoCiipConstraintFlag = bVal; } bool getNoFPelMmvdConstraintFlag() const { return m_noFPelMmvdConstraintFlag; } void setNoFPelMmvdConstraintFlag(bool bVal) { m_noFPelMmvdConstraintFlag = bVal; } bool getNoTriangleConstraintFlag() const { return m_bNoTriangleConstraintFlag; } @@ -1044,10 +1044,10 @@ public: bool getUseCompositeRef () const { return m_compositeRefEnabled; } void setUseSMVD ( bool b ) { m_SMVD = b; } bool getUseSMVD () const { return m_SMVD; } - void setUseGBi ( bool b ) { m_GBi = b; } - bool getUseGBi () const { return m_GBi; } - void setUseGBiFast ( uint32_t b ) { m_GBiFast = b; } - bool getUseGBiFast () const { return m_GBiFast; } + void setUseBcw ( bool b ) { m_bcw = b; } + bool getUseBcw () const { return m_bcw; } + void setUseBcwFast ( uint32_t b ) { m_BcwFast = b; } + bool getUseBcwFast () const { return m_BcwFast; } #if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET void setUseLadf ( bool b ) { m_LadfEnabled = b; } @@ -1061,8 +1061,8 @@ public: #endif - void setUseMHIntra ( bool b ) { m_MHIntra = b; } - bool getUseMHIntra () const { return m_MHIntra; } + void setUseCiip ( bool b ) { m_ciip = b; } + bool getUseCiip () const { return m_ciip; } void setUseTriangle ( bool b ) { m_Triangle = b; } bool getUseTriangle () const { return m_Triangle; } void setAllowDisFracMMVD ( bool b ) { m_allowDisFracMMVD = b; } @@ -1122,8 +1122,8 @@ public: unsigned getVirtualBoundariesPosY ( unsigned idx ) const { return m_virtualBoundariesPosY[idx]; } void setUseISP ( bool b ) { m_ISP = b; } bool getUseISP () const { return m_ISP; } - void setReshaper ( bool b ) { m_lumaReshapeEnable = b; } - bool getReshaper () const { return m_lumaReshapeEnable; } + void setLmcs ( bool b ) { m_lmcsEnabled = b; } + bool getLmcs () const { return m_lmcsEnabled; } void setReshapeSignalType ( uint32_t signalType ) { m_reshapeSignalType = signalType; } uint32_t getReshapeSignalType () const { return m_reshapeSignalType; } void setReshapeIntraCMD (uint32_t intraCMD) { m_intraCMD = intraCMD; } diff --git a/source/Lib/EncoderLib/EncCu.cpp b/source/Lib/EncoderLib/EncCu.cpp index d37f058c4e6a4344bde91f3794d7769c7dc37184..1e802b56d4213874b3aa1d8afa719af2e7a2a698 100644 --- a/source/Lib/EncoderLib/EncCu.cpp +++ b/source/Lib/EncoderLib/EncCu.cpp @@ -1293,7 +1293,7 @@ void EncCu::copyState( EncCu* other, Partitioner& partitioner, const UnitArea& c m_modeCtrl ->copyState( *other->m_modeCtrl, partitioner.currArea() ); m_pcRdCost ->copyState( *other->m_pcRdCost ); m_pcTrQuant ->copyState( *other->m_pcTrQuant ); - if( m_pcEncCfg->getReshaper() ) + if( m_pcEncCfg->getLmcs() ) { EncReshape *encReshapeThis = dynamic_cast<EncReshape*>( m_pcReshape); EncReshape *encReshapeOther = dynamic_cast<EncReshape*>(other->m_pcReshape); @@ -2439,13 +2439,13 @@ void EncCu::xCheckRDCostHashInter( CodingStructure *&tempCS, CodingStructure *&b if (m_pcInterSearch->predInterHashSearch(cu, partitioner, isPerfectMatch)) { - double equGBiCost = MAX_DOUBLE; + double equBcwCost = MAX_DOUBLE; m_bestModeUpdated = tempCS->useDbCost = bestCS->useDbCost = false; xEncodeInterResidual(tempCS, bestCS, partitioner, encTestMode, 0 , 0 - , &equGBiCost + , &equBcwCost ); if ( m_bestModeUpdated && bestCS->cost != MAX_DOUBLE ) @@ -2563,7 +2563,7 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *& } } - bool isIntrainterEnabled = sps.getUseMHIntra(); + bool isIntrainterEnabled = sps.getUseCiip(); if (bestCS->area.lwidth() * bestCS->area.lheight() < 64 || bestCS->area.lwidth() >= MAX_CU_SIZE || bestCS->area.lheight() >= MAX_CU_SIZE) { isIntrainterEnabled = false; @@ -2696,17 +2696,17 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *& if (isIntrainterEnabled) { // prepare for Intra bits calculation - pu.mhIntraFlag = true; + pu.ciipFlag = true; // save the to-be-tested merge candidates - uint32_t MHIntraMergeCand[NUM_MRG_SATD_CAND]; + uint32_t CiipMergeCand[NUM_MRG_SATD_CAND]; for (uint32_t mergeCnt = 0; mergeCnt < std::min(NUM_MRG_SATD_CAND, (const int)mergeCtx.numValidMergeCand); mergeCnt++) { - MHIntraMergeCand[mergeCnt] = RdModeList[mergeCnt].mergeCand; + CiipMergeCand[mergeCnt] = RdModeList[mergeCnt].mergeCand; } for (uint32_t mergeCnt = 0; mergeCnt < std::min(std::min(NUM_MRG_SATD_CAND, (const int)mergeCtx.numValidMergeCand), 4); mergeCnt++) { - uint32_t mergeCand = MHIntraMergeCand[mergeCnt]; + uint32_t mergeCand = CiipMergeCand[mergeCnt]; acMergeTmpBuffer[mergeCand] = m_acMergeTmpBuffer[mergeCand].getBuf(localUnitArea); // estimate merge bits @@ -2767,7 +2767,7 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *& swap(singleMergeTempBuffer, acMergeTempBuffer[insertPos]); } } - pu.mhIntraFlag = false; + pu.ciipFlag = false; } if ( pu.cs->sps->getUseMMVD() ) { @@ -2822,7 +2822,7 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *& if (isIntrainterEnabled) { - pu.mhIntraFlag = true; + pu.ciipFlag = true; for (uint32_t mergeCnt = 0; mergeCnt < uiNumMrgSATDCand; mergeCnt++) { if (RdModeList[mergeCnt].isCIIP) @@ -2843,7 +2843,7 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *& m_pcIntraSearch->switchBuffer(pu, COMPONENT_Cr, pu.cs->getPredBuf(pu).Cr(), m_pcIntraSearch->getPredictorPtr2(COMPONENT_Cr, bufIdx)); } } - pu.mhIntraFlag = false; + pu.ciipFlag = false; } tempCS->initStructData( encTestMode.qp, encTestMode.lossless ); @@ -2917,7 +2917,7 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *& { cu.mmvdSkip = false; mergeCtx.setMergeInfo(pu, uiMergeCand); - pu.mhIntraFlag = true; + pu.ciipFlag = true; pu.regularMergeFlag = false; pu.intraDir[0] = PLANAR_IDX; CHECK(pu.intraDir[0]<0 || pu.intraDir[0]>(NUM_LUMA_MODE - 1), "out of intra mode"); @@ -2965,7 +2965,7 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *& } } } - if (pu.mhIntraFlag) + if (pu.ciipFlag) { uint32_t bufIdx = 0; PelBuf tmpBuf = tempCS->getPredBuf(pu).Y(); @@ -3023,7 +3023,7 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *& m_pcInterSearch->motionCompensation( pu ); pu.mvRefine = false; } - if (!cu.mmvdSkip && !pu.mhIntraFlag && uiNoResidualPass != 0) + if (!cu.mmvdSkip && !pu.ciipFlag && uiNoResidualPass != 0) { CHECK(uiMergeCand >= mergeCtx.numValidMergeCand, "out of normal merge"); isTestSkipMerge[uiMergeCand] = true; @@ -3031,7 +3031,7 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *& xEncodeInterResidual( tempCS, bestCS, partitioner, encTestMode, uiNoResidualPass, uiNoResidualPass == 0 ? &candHasNoResidual[uiMrgHADIdx] : NULL ); - if( m_pcEncCfg->getUseFastDecisionForMerge() && !bestIsSkip && !pu.mhIntraFlag) + if( m_pcEncCfg->getUseFastDecisionForMerge() && !bestIsSkip && !pu.ciipFlag) { bestIsSkip = !bestCS->cus.empty() && bestCS->getCU( partitioner.chType )->rootCbf == 0; } @@ -3132,7 +3132,7 @@ void EncCu::xCheckRDCostMergeTriangle2Nx2N( CodingStructure *&tempCS, CodingStru #endif cu.triangle = true; cu.mmvdSkip = false; - cu.GBiIdx = GBI_DEFAULT; + cu.BcwIdx = BCW_DEFAULT; PredictionUnit pu( tempCS->area ); pu.cu = &cu; @@ -3179,7 +3179,7 @@ void EncCu::xCheckRDCostMergeTriangle2Nx2N( CodingStructure *&tempCS, CodingStru cu.qp = encTestMode.qp; cu.triangle = true; cu.mmvdSkip = false; - cu.GBiIdx = GBI_DEFAULT; + cu.BcwIdx = BCW_DEFAULT; PredictionUnit &pu = tempCS->addPU( cu, partitioner.chType ); @@ -3297,7 +3297,7 @@ void EncCu::xCheckRDCostMergeTriangle2Nx2N( CodingStructure *&tempCS, CodingStru cu.qp = encTestMode.qp; cu.triangle = true; cu.mmvdSkip = false; - cu.GBiIdx = GBI_DEFAULT; + cu.BcwIdx = BCW_DEFAULT; PredictionUnit &pu = tempCS->addPU(cu, partitioner.chType); pu.triangleSplitDir = splitDir; @@ -3454,7 +3454,7 @@ void EncCu::xCheckRDCostAffineMerge2Nx2N( CodingStructure *&tempCS, CodingStruct pu.regularMergeFlag = false; pu.mergeIdx = uiMergeCand; cu.affineType = affineMergeCtx.affineType[uiMergeCand]; - cu.GBiIdx = affineMergeCtx.GBiIdx[uiMergeCand]; + cu.BcwIdx = affineMergeCtx.BcwIdx[uiMergeCand]; pu.mergeType = affineMergeCtx.mergeType[uiMergeCand]; if ( pu.mergeType == MRG_TYPE_SUBPU_ATMVP ) @@ -3559,7 +3559,7 @@ void EncCu::xCheckRDCostAffineMerge2Nx2N( CodingStructure *&tempCS, CodingStruct pu.mergeIdx = uiMergeCand; pu.interDir = affineMergeCtx.interDirNeighbours[uiMergeCand]; cu.affineType = affineMergeCtx.affineType[uiMergeCand]; - cu.GBiIdx = affineMergeCtx.GBiIdx[uiMergeCand]; + cu.BcwIdx = affineMergeCtx.BcwIdx[uiMergeCand]; pu.mergeType = affineMergeCtx.mergeType[uiMergeCand]; if ( pu.mergeType == MRG_TYPE_SUBPU_ATMVP ) @@ -4017,36 +4017,36 @@ void EncCu::xCheckRDCostInter( CodingStructure *&tempCS, CodingStructure *&bestC if( tempCS->slice->getCheckLDC() ) { - m_bestGbiCost[0] = m_bestGbiCost[1] = std::numeric_limits<double>::max(); - m_bestGbiIdx[0] = m_bestGbiIdx[1] = -1; + m_bestBcwCost[0] = m_bestBcwCost[1] = std::numeric_limits<double>::max(); + m_bestBcwIdx[0] = m_bestBcwIdx[1] = -1; } m_pcInterSearch->resetBufferedUniMotions(); - int gbiLoopNum = (tempCS->slice->isInterB() ? GBI_NUM : 1); - gbiLoopNum = (tempCS->sps->getUseGBi() ? gbiLoopNum : 1); + int bcwLoopNum = (tempCS->slice->isInterB() ? BCW_NUM : 1); + bcwLoopNum = (tempCS->sps->getUseBcw() ? bcwLoopNum : 1); - if( tempCS->area.lwidth() * tempCS->area.lheight() < GBI_SIZE_CONSTRAINT ) + if( tempCS->area.lwidth() * tempCS->area.lheight() < BCW_SIZE_CONSTRAINT ) { - gbiLoopNum = 1; + bcwLoopNum = 1; } double curBestCost = bestCS->cost; - double equGBiCost = MAX_DOUBLE; + double equBcwCost = MAX_DOUBLE; m_bestModeUpdated = tempCS->useDbCost = bestCS->useDbCost = false; - for( int gbiLoopIdx = 0; gbiLoopIdx < gbiLoopNum; gbiLoopIdx++ ) + for( int bcwLoopIdx = 0; bcwLoopIdx < bcwLoopNum; bcwLoopIdx++ ) { - if( m_pcEncCfg->getUseGBiFast() ) + if( m_pcEncCfg->getUseBcwFast() ) { auto blkCache = dynamic_cast< CacheBlkInfoCtrl* >(m_modeCtrl); if( blkCache ) { bool isBestInter = blkCache->getInter(bestCS->area); - uint8_t bestGBiIdx = blkCache->getGbiIdx(bestCS->area); + uint8_t bestBcwIdx = blkCache->getBcwIdx(bestCS->area); - if( isBestInter && g_GbiSearchOrder[gbiLoopIdx] != GBI_DEFAULT && g_GbiSearchOrder[gbiLoopIdx] != bestGBiIdx ) + if( isBestInter && g_BcwSearchOrder[bcwLoopIdx] != BCW_DEFAULT && g_BcwSearchOrder[bcwLoopIdx] != bestBcwIdx ) { continue; } @@ -4054,7 +4054,7 @@ void EncCu::xCheckRDCostInter( CodingStructure *&tempCS, CodingStructure *&bestC } if( !tempCS->slice->getCheckLDC() ) { - if( gbiLoopIdx != 0 && gbiLoopIdx != 3 && gbiLoopIdx != 4 ) + if( bcwLoopIdx != 0 && bcwLoopIdx != 3 && bcwLoopIdx != 4 ) { continue; } @@ -4078,24 +4078,24 @@ void EncCu::xCheckRDCostInter( CodingStructure *&tempCS, CodingStructure *&bestC cu.qp = encTestMode.qp; CU::addPUs( cu ); - cu.GBiIdx = g_GbiSearchOrder[gbiLoopIdx]; - uint8_t gbiIdx = cu.GBiIdx; - bool testGbi = (gbiIdx != GBI_DEFAULT); + cu.BcwIdx = g_BcwSearchOrder[bcwLoopIdx]; + uint8_t bcwIdx = cu.BcwIdx; + bool testBcw = (bcwIdx != BCW_DEFAULT); m_pcInterSearch->predInterSearch( cu, partitioner ); - gbiIdx = CU::getValidGbiIdx(cu); - if( testGbi && gbiIdx == GBI_DEFAULT ) // Enabled GBi but the search results is uni. + bcwIdx = CU::getValidBcwIdx(cu); + if( testBcw && bcwIdx == BCW_DEFAULT ) // Enabled Bcw but the search results is uni. { tempCS->initStructData(encTestMode.qp, encTestMode.lossless); continue; } - CHECK(!(testGbi || (!testGbi && gbiIdx == GBI_DEFAULT)), " !( bTestGbi || (!bTestGbi && gbiIdx == GBI_DEFAULT ) )"); + CHECK(!(testBcw || (!testBcw && bcwIdx == BCW_DEFAULT)), " !( bTestBcw || (!bTestBcw && bcwIdx == BCW_DEFAULT ) )"); bool isEqualUni = false; - if( m_pcEncCfg->getUseGBiFast() ) + if( m_pcEncCfg->getUseBcwFast() ) { - if( cu.firstPU->interDir != 3 && testGbi == 0 ) + if( cu.firstPU->interDir != 3 && testBcw == 0 ) { isEqualUni = true; } @@ -4103,33 +4103,33 @@ void EncCu::xCheckRDCostInter( CodingStructure *&tempCS, CodingStructure *&bestC xEncodeInterResidual( tempCS, bestCS, partitioner, encTestMode, 0 , 0 - , &equGBiCost + , &equBcwCost ); - if( g_GbiSearchOrder[gbiLoopIdx] == GBI_DEFAULT ) + if( g_BcwSearchOrder[bcwLoopIdx] == BCW_DEFAULT ) m_pcInterSearch->setAffineModeSelected((bestCS->cus.front()->affine && !(bestCS->cus.front()->firstPU->mergeFlag))); tempCS->initStructData(encTestMode.qp, encTestMode.lossless); double skipTH = MAX_DOUBLE; - skipTH = (m_pcEncCfg->getUseGBiFast() ? 1.05 : MAX_DOUBLE); - if( equGBiCost > curBestCost * skipTH ) + skipTH = (m_pcEncCfg->getUseBcwFast() ? 1.05 : MAX_DOUBLE); + if( equBcwCost > curBestCost * skipTH ) { break; } - if( m_pcEncCfg->getUseGBiFast() ) + if( m_pcEncCfg->getUseBcwFast() ) { if( isEqualUni == true && m_pcEncCfg->getIntraPeriod() == -1 ) { break; } } - if( g_GbiSearchOrder[gbiLoopIdx] == GBI_DEFAULT && xIsGBiSkip(cu) && m_pcEncCfg->getUseGBiFast() ) + if( g_BcwSearchOrder[bcwLoopIdx] == BCW_DEFAULT && xIsBcwSkip(cu) && m_pcEncCfg->getUseBcwFast() ) { break; } - } // for( UChar gbiLoopIdx = 0; gbiLoopIdx < gbiLoopNum; gbiLoopIdx++ ) + } // for( UChar bcwLoopIdx = 0; bcwLoopIdx < bcwLoopNum; bcwLoopIdx++ ) if ( m_bestModeUpdated && bestCS->cost != MAX_DOUBLE ) { xCalDebCost( *bestCS, partitioner ); @@ -4156,30 +4156,30 @@ bool EncCu::xCheckRDCostInterIMV(CodingStructure *&tempCS, CodingStructure *&bes tempCS->initStructData( encTestMode.qp, encTestMode.lossless ); m_pcInterSearch->resetBufferedUniMotions(); - int gbiLoopNum = (tempCS->slice->isInterB() ? GBI_NUM : 1); - gbiLoopNum = (tempCS->slice->getSPS()->getUseGBi() ? gbiLoopNum : 1); + int bcwLoopNum = (tempCS->slice->isInterB() ? BCW_NUM : 1); + bcwLoopNum = (tempCS->slice->getSPS()->getUseBcw() ? bcwLoopNum : 1); - if( tempCS->area.lwidth() * tempCS->area.lheight() < GBI_SIZE_CONSTRAINT ) + if( tempCS->area.lwidth() * tempCS->area.lheight() < BCW_SIZE_CONSTRAINT ) { - gbiLoopNum = 1; + bcwLoopNum = 1; } bool validMode = false; double curBestCost = bestCS->cost; - double equGBiCost = MAX_DOUBLE; + double equBcwCost = MAX_DOUBLE; - for( int gbiLoopIdx = 0; gbiLoopIdx < gbiLoopNum; gbiLoopIdx++ ) + for( int bcwLoopIdx = 0; bcwLoopIdx < bcwLoopNum; bcwLoopIdx++ ) { - if( m_pcEncCfg->getUseGBiFast() ) + if( m_pcEncCfg->getUseBcwFast() ) { auto blkCache = dynamic_cast< CacheBlkInfoCtrl* >(m_modeCtrl); if( blkCache ) { bool isBestInter = blkCache->getInter(bestCS->area); - uint8_t bestGBiIdx = blkCache->getGbiIdx(bestCS->area); + uint8_t bestBcwIdx = blkCache->getBcwIdx(bestCS->area); - if( isBestInter && g_GbiSearchOrder[gbiLoopIdx] != GBI_DEFAULT && g_GbiSearchOrder[gbiLoopIdx] != bestGBiIdx ) + if( isBestInter && g_BcwSearchOrder[bcwLoopIdx] != BCW_DEFAULT && g_BcwSearchOrder[bcwLoopIdx] != bestBcwIdx ) { continue; } @@ -4188,15 +4188,15 @@ bool EncCu::xCheckRDCostInterIMV(CodingStructure *&tempCS, CodingStructure *&bes if( !tempCS->slice->getCheckLDC() ) { - if( gbiLoopIdx != 0 && gbiLoopIdx != 3 && gbiLoopIdx != 4 ) + if( bcwLoopIdx != 0 && bcwLoopIdx != 3 && bcwLoopIdx != 4 ) { continue; } } - if( m_pcEncCfg->getUseGBiFast() && tempCS->slice->getCheckLDC() && g_GbiSearchOrder[gbiLoopIdx] != GBI_DEFAULT - && (m_bestGbiIdx[0] >= 0 && g_GbiSearchOrder[gbiLoopIdx] != m_bestGbiIdx[0]) - && (m_bestGbiIdx[1] >= 0 && g_GbiSearchOrder[gbiLoopIdx] != m_bestGbiIdx[1])) + if( m_pcEncCfg->getUseBcwFast() && tempCS->slice->getCheckLDC() && g_BcwSearchOrder[bcwLoopIdx] != BCW_DEFAULT + && (m_bestBcwIdx[0] >= 0 && g_BcwSearchOrder[bcwLoopIdx] != m_bestBcwIdx[0]) + && (m_bestBcwIdx[1] >= 0 && g_BcwSearchOrder[bcwLoopIdx] != m_bestBcwIdx[1])) { continue; } @@ -4229,13 +4229,13 @@ bool EncCu::xCheckRDCostInterIMV(CodingStructure *&tempCS, CodingStructure *&bes cu.imv = iIMV == 1 ? IMV_FPEL : IMV_4PEL; } - bool testGbi; - uint8_t gbiIdx; + bool testBcw; + uint8_t bcwIdx; bool affineAmvrEanbledFlag = !testAltHpelFilter && cu.slice->getSPS()->getAffineAmvrEnabledFlag(); - cu.GBiIdx = g_GbiSearchOrder[gbiLoopIdx]; - gbiIdx = cu.GBiIdx; - testGbi = (gbiIdx != GBI_DEFAULT); + cu.BcwIdx = g_BcwSearchOrder[bcwLoopIdx]; + bcwIdx = cu.BcwIdx; + testBcw = (bcwIdx != BCW_DEFAULT); cu.firstPU->interDir = 10; @@ -4243,7 +4243,7 @@ bool EncCu::xCheckRDCostInterIMV(CodingStructure *&tempCS, CodingStructure *&bes if ( cu.firstPU->interDir <= 3 ) { - gbiIdx = CU::getValidGbiIdx(cu); + bcwIdx = CU::getValidBcwIdx(cu); } else { @@ -4256,17 +4256,17 @@ bool EncCu::xCheckRDCostInterIMV(CodingStructure *&tempCS, CodingStructure *&bes tempCS->initStructData( encTestMode.qp, encTestMode.lossless ); continue; } - if( testGbi && gbiIdx == GBI_DEFAULT ) // Enabled GBi but the search results is uni. + if( testBcw && bcwIdx == BCW_DEFAULT ) // Enabled Bcw but the search results is uni. { tempCS->initStructData(encTestMode.qp, encTestMode.lossless); continue; } - CHECK(!(testGbi || (!testGbi && gbiIdx == GBI_DEFAULT)), " !( bTestGbi || (!bTestGbi && gbiIdx == GBI_DEFAULT ) )"); + CHECK(!(testBcw || (!testBcw && bcwIdx == BCW_DEFAULT)), " !( bTestBcw || (!bTestBcw && bcwIdx == BCW_DEFAULT ) )"); bool isEqualUni = false; - if( m_pcEncCfg->getUseGBiFast() ) + if( m_pcEncCfg->getUseBcwFast() ) { - if( cu.firstPU->interDir != 3 && testGbi == 0 ) + if( cu.firstPU->interDir != 3 && testBcw == 0 ) { isEqualUni = true; } @@ -4293,7 +4293,7 @@ bool EncCu::xCheckRDCostInterIMV(CodingStructure *&tempCS, CodingStructure *&bes xEncodeInterResidual( tempCS, bestCS, partitioner, encTestModeBase, 0 , 0 - , &equGBiCost + , &equBcwCost ); if( cu.imv == IMV_FPEL && tempCS->cost < bestIntPelCost ) @@ -4303,25 +4303,25 @@ bool EncCu::xCheckRDCostInterIMV(CodingStructure *&tempCS, CodingStructure *&bes tempCS->initStructData(encTestMode.qp, encTestMode.lossless); double skipTH = MAX_DOUBLE; - skipTH = (m_pcEncCfg->getUseGBiFast() ? 1.05 : MAX_DOUBLE); - if( equGBiCost > curBestCost * skipTH ) + skipTH = (m_pcEncCfg->getUseBcwFast() ? 1.05 : MAX_DOUBLE); + if( equBcwCost > curBestCost * skipTH ) { break; } - if( m_pcEncCfg->getUseGBiFast() ) + if( m_pcEncCfg->getUseBcwFast() ) { if( isEqualUni == true && m_pcEncCfg->getIntraPeriod() == -1 ) { break; } } - if( g_GbiSearchOrder[gbiLoopIdx] == GBI_DEFAULT && xIsGBiSkip(cu) && m_pcEncCfg->getUseGBiFast() ) + if( g_BcwSearchOrder[bcwLoopIdx] == BCW_DEFAULT && xIsBcwSkip(cu) && m_pcEncCfg->getUseBcwFast() ) { break; } validMode = true; - } // for( UChar gbiLoopIdx = 0; gbiLoopIdx < gbiLoopNum; gbiLoopIdx++ ) + } // for( UChar bcwLoopIdx = 0; bcwLoopIdx < bcwLoopNum; bcwLoopIdx++ ) if ( m_bestModeUpdated && bestCS->cost != MAX_DOUBLE ) { @@ -4495,9 +4495,9 @@ Distortion EncCu::getDistortionDb( CodingStructure &cs, CPelBuf org, CPelBuf rec CPelBuf orgLuma = cs.picture->getOrigBuf( cs.area.blocks[COMPONENT_Y] ); if ( m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || ( #if JVET_P1006_PICTURE_HEADER - m_pcEncCfg->getReshaper() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) + m_pcEncCfg->getLmcs() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) #else - m_pcEncCfg->getReshaper() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) + m_pcEncCfg->getLmcs() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) #endif { if ( compID == COMPONENT_Y && !afterDb && !m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled()) @@ -4514,9 +4514,9 @@ Distortion EncCu::getDistortionDb( CodingStructure &cs, CPelBuf org, CPelBuf rec } } #if JVET_P1006_PICTURE_HEADER - else if (m_pcEncCfg->getReshaper() && cs.picHeader->getLmcsEnabledFlag() && cs.slice->isIntra()) //intra slice + else if (m_pcEncCfg->getLmcs() && cs.picHeader->getLmcsEnabledFlag() && cs.slice->isIntra()) //intra slice #else - else if (m_pcEncCfg->getReshaper() && cs.slice->getLmcsEnabledFlag() && cs.slice->isIntra()) //intra slice + else if (m_pcEncCfg->getLmcs() && cs.slice->getLmcsEnabledFlag() && cs.slice->isIntra()) //intra slice #endif { if ( compID == COMPONENT_Y && afterDb ) @@ -4546,7 +4546,7 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS , const EncTestMode& encTestMode , int residualPass , bool* bestHasNonResi - , double* equGBiCost + , double* equBcwCost ) { if( residualPass == 1 && encTestMode.lossless ) @@ -4738,13 +4738,13 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS if( NULL != bestHasNonResi && (bestCostInternal > tempCS->cost) ) { bestCostInternal = tempCS->cost; - if (!(tempCS->getPU(partitioner.chType)->mhIntraFlag)) + if (!(tempCS->getPU(partitioner.chType)->ciipFlag)) *bestHasNonResi = !cu->rootCbf; } if (cu->rootCbf == false) { - if (tempCS->getPU(partitioner.chType)->mhIntraFlag) + if (tempCS->getPU(partitioner.chType)->ciipFlag) { tempCS->cost = MAX_DOUBLE; tempCS->costDbOffset = 0; @@ -4892,7 +4892,7 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS if( NULL != bestHasNonResi && ( bestCostInternal > tempCS->cost ) ) { bestCostInternal = tempCS->cost; - if( !( tempCS->getPU( partitioner.chType )->mhIntraFlag ) ) + if( !( tempCS->getPU( partitioner.chType )->ciipFlag ) ) *bestHasNonResi = !cu->rootCbf; } @@ -4930,30 +4930,30 @@ void EncCu::xEncodeInterResidual( CodingStructure *&tempCS tempCS->cost = currBestCost; if( ETM_INTER_ME == encTestMode.type ) { - if( equGBiCost != NULL ) + if( equBcwCost != NULL ) { - if( tempCS->cost < ( *equGBiCost ) && cu->GBiIdx == GBI_DEFAULT ) + if( tempCS->cost < ( *equBcwCost ) && cu->BcwIdx == BCW_DEFAULT ) { - ( *equGBiCost ) = tempCS->cost; + ( *equBcwCost ) = tempCS->cost; } } else { - CHECK( equGBiCost == NULL, "equGBiCost == NULL" ); + CHECK( equBcwCost == NULL, "equBcwCost == NULL" ); } - if( tempCS->slice->getCheckLDC() && !cu->imv && cu->GBiIdx != GBI_DEFAULT && tempCS->cost < m_bestGbiCost[1] ) + if( tempCS->slice->getCheckLDC() && !cu->imv && cu->BcwIdx != BCW_DEFAULT && tempCS->cost < m_bestBcwCost[1] ) { - if( tempCS->cost < m_bestGbiCost[0] ) + if( tempCS->cost < m_bestBcwCost[0] ) { - m_bestGbiCost[1] = m_bestGbiCost[0]; - m_bestGbiCost[0] = tempCS->cost; - m_bestGbiIdx[1] = m_bestGbiIdx[0]; - m_bestGbiIdx[0] = cu->GBiIdx; + m_bestBcwCost[1] = m_bestBcwCost[0]; + m_bestBcwCost[0] = tempCS->cost; + m_bestBcwIdx[1] = m_bestBcwIdx[0]; + m_bestBcwIdx[0] = cu->BcwIdx; } else { - m_bestGbiCost[1] = tempCS->cost; - m_bestGbiIdx[1] = cu->GBiIdx; + m_bestBcwCost[1] = tempCS->cost; + m_bestBcwIdx[1] = cu->BcwIdx; } } } @@ -5029,9 +5029,9 @@ void EncCu::xReuseCachedResult( CodingStructure *&tempCS, CodingStructure *&best #if WCG_EXT if (m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || ( #if JVET_P1006_PICTURE_HEADER - m_pcEncCfg->getReshaper() && (tempCS->picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) + m_pcEncCfg->getLmcs() && (tempCS->picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) #else - m_pcEncCfg->getReshaper() && (tempCS->slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) + m_pcEncCfg->getLmcs() && (tempCS->slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) #endif { const CPelBuf orgLuma = tempCS->getOrgBuf(tempCS->area.blocks[COMPONENT_Y]); diff --git a/source/Lib/EncoderLib/EncCu.h b/source/Lib/EncoderLib/EncCu.h index 5a7efe54bf32496cfd7ecd96231f7f7d31833f96..b67a26d8f4bf5d0b4f8c156cea65210ff76d908f 100644 --- a/source/Lib/EncoderLib/EncCu.h +++ b/source/Lib/EncoderLib/EncCu.h @@ -137,8 +137,8 @@ private: #if ENABLE_SPLIT_PARALLELISM || ENABLE_WPP_PARALLELISM EncLib* m_pcEncLib; #endif - int m_bestGbiIdx[2]; - double m_bestGbiCost[2]; + int m_bestBcwIdx[2]; + double m_bestBcwCost[2]; TriangleMotionInfo m_triangleModeTest[TRIANGLE_MAX_NUM_CANDS]; uint8_t m_triangleIdxBins[2][TRIANGLE_MAX_NUM_UNI_CANDS][TRIANGLE_MAX_NUM_UNI_CANDS]; #if SHARP_LUMA_DELTA_QP || ENABLE_QPA_SUB_CTU @@ -218,12 +218,12 @@ protected: , const EncTestMode& encTestMode , int residualPass = 0 , bool* bestHasNonResi = NULL - , double* equGBiCost = NULL + , double* equBcwCost = NULL ); #if REUSE_CU_RESULTS void xReuseCachedResult ( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &Partitioner ); #endif - bool xIsGBiSkip(const CodingUnit& cu) + bool xIsBcwSkip(const CodingUnit& cu) { if (cu.slice->getSliceType() != B_SLICE) { diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp index 03f8e495ea5ddd987ffdfe109d71b301e3acd893..862822531338d1bc0bad3ed48cd8fe4fcfae1c7f 100644 --- a/source/Lib/EncoderLib/EncGOP.cpp +++ b/source/Lib/EncoderLib/EncGOP.cpp @@ -218,7 +218,7 @@ void EncGOP::init ( EncLib* pcEncLib ) m_AUWriterIf = pcEncLib->getAUWriterIf(); #if WCG_EXT - if (m_pcCfg->getReshaper()) + if (m_pcCfg->getLmcs()) { pcEncLib->getRdCost()->setReshapeInfo(m_pcCfg->getReshapeSignalType(), m_pcCfg->getBitDepth(CHANNEL_TYPE_LUMA)); pcEncLib->getRdCost()->initLumaLevelToWeightTableReshape(); @@ -230,7 +230,7 @@ void EncGOP::init ( EncLib* pcEncLib ) } pcEncLib->getALF()->getLumaLevelWeightTable() = pcEncLib->getRdCost()->getLumaLevelWeightTable(); int alfWSSD = 0; - if (m_pcCfg->getReshaper() && m_pcCfg->getReshapeSignalType() == RESHAPE_SIGNAL_PQ ) + if (m_pcCfg->getLmcs() && m_pcCfg->getReshapeSignalType() == RESHAPE_SIGNAL_PQ ) { alfWSSD = 1; } @@ -1901,7 +1901,7 @@ void EncGOP::xPicInitLMCS(Picture *pic, PicHeader *picHeader, Slice *slice) void EncGOP::xPicInitLMCS(Picture *pic, Slice *slice) #endif { - if (slice->getSPS()->getUseReshaper()) + if (slice->getSPS()->getUseLmcs()) { const SliceType sliceType = slice->getSliceType(); @@ -3007,7 +3007,7 @@ void EncGOP::compressGOP( int iPOCLast, int iNumPicRcvd, PicList& rcListPic, CodingStructure& cs = *pcPic->cs; pcSlice = pcPic->slices[0]; - if (pcSlice->getSPS()->getUseReshaper() && m_pcReshaper->getSliceReshaperInfo().getUseSliceReshaper()) + if (pcSlice->getSPS()->getUseLmcs() && m_pcReshaper->getSliceReshaperInfo().getUseSliceReshaper()) { #if JVET_P1006_PICTURE_HEADER picHeader->setLmcsEnabledFlag(true); @@ -3252,7 +3252,7 @@ void EncGOP::compressGOP( int iPOCLast, int iNumPicRcvd, PicList& rcListPic, //send LMCS APS when LMCSModel is updated. It can be updated even current slice does not enable reshaper. //For example, in RA, update is on intra slice, but intra slice may not use reshaper - if (pcSlice->getSPS()->getUseReshaper()) + if (pcSlice->getSPS()->getUseLmcs()) { //only 1 LMCS data for 1 picture #if JVET_P1006_PICTURE_HEADER @@ -3689,7 +3689,7 @@ void EncGOP::printOutSummary( uint32_t uiNumAllPicCoded, bool isField, const boo const bool useWPSNR = m_pcEncLib->getUseWPSNR(); #endif #if WCG_WPSNR - const bool useLumaWPSNR = m_pcEncLib->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcCfg->getReshaper() && m_pcCfg->getReshapeSignalType() == RESHAPE_SIGNAL_PQ); + const bool useLumaWPSNR = m_pcEncLib->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcCfg->getLmcs() && m_pcCfg->getReshapeSignalType() == RESHAPE_SIGNAL_PQ); #endif if( m_pcCfg->getDecodeBitstream(0).empty() && m_pcCfg->getDecodeBitstream(1).empty() && !m_pcCfg->useFastForwardToPOC() ) @@ -4045,7 +4045,7 @@ uint64_t EncGOP::xFindDistortionPlane(const CPelBuf& pic0, const CPelBuf& pic1, double EncGOP::xFindDistortionPlaneWPSNR(const CPelBuf& pic0, const CPelBuf& pic1, const uint32_t rshift, const CPelBuf& picLuma0, ComponentID compID, const ChromaFormat chfmt ) { - const bool useLumaWPSNR = m_pcEncLib->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcCfg->getReshaper() && m_pcCfg->getReshapeSignalType() == RESHAPE_SIGNAL_PQ); + const bool useLumaWPSNR = m_pcEncLib->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcCfg->getLmcs() && m_pcCfg->getReshapeSignalType() == RESHAPE_SIGNAL_PQ); if (!useLumaWPSNR) { return 0; @@ -4179,16 +4179,16 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni CHECK(!(conversion == IPCOLOURSPACE_UNCHANGED), "Unspecified error"); // const CPelUnitBuf& org = (conversion != IPCOLOURSPACE_UNCHANGED) ? pcPic->getPicYuvTrueOrg()->getBuf() : pcPic->getPicYuvOrg()->getBuf(); #if JVET_O0549_ENCODER_ONLY_FILTER - const CPelUnitBuf& org = (sps.getUseReshaper() || m_pcCfg->getGopBasedTemporalFilterEnabled()) ? pcPic->getTrueOrigBuf() : pcPic->getOrigBuf(); + const CPelUnitBuf& org = (sps.getUseLmcs() || m_pcCfg->getGopBasedTemporalFilterEnabled()) ? pcPic->getTrueOrigBuf() : pcPic->getOrigBuf(); #else - const CPelUnitBuf& org = sps.getUseReshaper() ? pcPic->getTrueOrigBuf() : pcPic->getOrigBuf(); + const CPelUnitBuf& org = sps.getUseLmcs() ? pcPic->getTrueOrigBuf() : pcPic->getOrigBuf(); #endif #if ENABLE_QPA const bool useWPSNR = m_pcEncLib->getUseWPSNR(); #endif double dPSNR[MAX_NUM_COMPONENT]; #if WCG_WPSNR - const bool useLumaWPSNR = m_pcEncLib->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcCfg->getReshaper() && m_pcCfg->getReshapeSignalType() == RESHAPE_SIGNAL_PQ); + const bool useLumaWPSNR = m_pcEncLib->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcCfg->getLmcs() && m_pcCfg->getReshapeSignalType() == RESHAPE_SIGNAL_PQ); double dPSNRWeighted[MAX_NUM_COMPONENT]; double MSEyuvframeWeighted[MAX_NUM_COMPONENT]; #endif @@ -4234,7 +4234,7 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni if( m_pcEncLib->isRPREnabled() ) { - const CPelBuf& upscaledOrg = sps.getUseReshaper() ? pcPic->M_BUFS( 0, PIC_TRUE_ORIGINAL_INPUT).get( COMPONENT_Y ) : pcPic->M_BUFS( 0, PIC_ORIGINAL_INPUT).get( COMPONENT_Y ); + const CPelBuf& upscaledOrg = sps.getUseLmcs() ? pcPic->M_BUFS( 0, PIC_TRUE_ORIGINAL_INPUT).get( COMPONENT_Y ) : pcPic->M_BUFS( 0, PIC_ORIGINAL_INPUT).get( COMPONENT_Y ); upscaledRec.create( pic.chromaFormat, Area( Position(), upscaledOrg ) ); #if JVET_P0590_SCALING_WINDOW @@ -4318,7 +4318,7 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni if( m_pcEncLib->isRPREnabled() ) { - const CPelBuf& upscaledOrg = sps.getUseReshaper() ? pcPic->M_BUFS( 0, PIC_TRUE_ORIGINAL_INPUT ).get( compID ) : pcPic->M_BUFS( 0, PIC_ORIGINAL_INPUT ).get( compID ); + const CPelBuf& upscaledOrg = sps.getUseLmcs() ? pcPic->M_BUFS( 0, PIC_TRUE_ORIGINAL_INPUT ).get( compID ) : pcPic->M_BUFS( 0, PIC_ORIGINAL_INPUT ).get( compID ); #if JVET_P0590_SCALING_WINDOW const uint32_t upscaledWidth = upscaledOrg.width - ( m_pcEncLib->getPad( 0 ) >> ::getComponentScaleX( compID, format ) ); diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp index 1acaa54335f0241a1b1a689eb2c0f9f8228bb355..84193fd8dfaa39bed99c27497edc7b12bde7bc19 100644 --- a/source/Lib/EncoderLib/EncLib.cpp +++ b/source/Lib/EncoderLib/EncLib.cpp @@ -155,7 +155,7 @@ void EncLib::create () #if ENABLE_SPLIT_PARALLELISM || ENABLE_WPP_PARALLELISM m_cReshaper = new EncReshape[m_numCuEncStacks]; #endif - if (m_lumaReshapeEnable) + if (m_lmcsEnabled) { #if ENABLE_SPLIT_PARALLELISM || ENABLE_WPP_PARALLELISM for (int jId = 0; jId < m_numCuEncStacks; jId++) @@ -1389,9 +1389,9 @@ void EncLib::xInitSPS(SPS &sps) cinfo->setNoMtsConstraintFlag(m_bNoMtsConstraintFlag); cinfo->setNoSbtConstraintFlag(m_noSbtConstraintFlag); cinfo->setNoAffineMotionConstraintFlag(m_bNoAffineMotionConstraintFlag); - cinfo->setNoGbiConstraintFlag(m_bNoGbiConstraintFlag); + cinfo->setNoBcwConstraintFlag(m_bNoBcwConstraintFlag); cinfo->setNoIbcConstraintFlag(m_noIbcConstraintFlag); - cinfo->setNoMhIntraConstraintFlag(m_bNoMhIntraConstraintFlag); + cinfo->setNoCiipConstraintFlag(m_bNoCiipConstraintFlag); cinfo->setNoFPelMmvdConstraintFlag(m_noFPelMmvdConstraintFlag); cinfo->setNoTriangleConstraintFlag(m_bNoTriangleConstraintFlag); cinfo->setNoLadfConstraintFlag(m_bNoLadfConstraintFlag); @@ -1483,7 +1483,7 @@ void EncLib::xInitSPS(SPS &sps) } #endif sps.setUseSMVD ( m_SMVD ); - sps.setUseGBi ( m_GBi ); + sps.setUseBcw ( m_bcw ); #if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET sps.setLadfEnabled ( m_LadfEnabled ); if ( m_LadfEnabled ) @@ -1498,7 +1498,7 @@ void EncLib::xInitSPS(SPS &sps) } #endif - sps.setUseMHIntra ( m_MHIntra ); + sps.setUseCiip ( m_ciip ); sps.setUseTriangle ( m_Triangle ); sps.setUseMMVD ( m_MMVD ); sps.setFpelMmvdEnabledFlag (( m_MMVD ) ? m_allowDisFracMMVD : false); @@ -1520,7 +1520,7 @@ void EncLib::xInitSPS(SPS &sps) sps.setWrapAroundOffset ( m_wrapAroundOffset ); // ADD_NEW_TOOL : (encoder lib) set tool enabling flags and associated parameters here sps.setUseISP ( m_ISP ); - sps.setUseReshaper ( m_lumaReshapeEnable ); + sps.setUseLmcs ( m_lmcsEnabled ); #if JVET_P2001_SYNTAX_ORDER_MISMATCHES sps.setUseMRL ( m_MRL ); #endif diff --git a/source/Lib/EncoderLib/EncModeCtrl.cpp b/source/Lib/EncoderLib/EncModeCtrl.cpp index e781453c4dad8f71e712eabebdbfa957d3d9d5d8..d7820329de91cc788ee7bf78b204a4f93adf3edd 100644 --- a/source/Lib/EncoderLib/EncModeCtrl.cpp +++ b/source/Lib/EncoderLib/EncModeCtrl.cpp @@ -600,19 +600,19 @@ bool CacheBlkInfoCtrl::getInter(const UnitArea& area) return m_codedCUInfo[idx1][idx2][idx3][idx4]->isInter; } -void CacheBlkInfoCtrl::setGbiIdx(const UnitArea& area, uint8_t gBiIdx) +void CacheBlkInfoCtrl::setBcwIdx(const UnitArea& area, uint8_t gBiIdx) { unsigned idx1, idx2, idx3, idx4; getAreaIdx(area.Y(), *m_slice_chblk->getPPS()->pcv, idx1, idx2, idx3, idx4); - m_codedCUInfo[idx1][idx2][idx3][idx4]->GBiIdx = gBiIdx; + m_codedCUInfo[idx1][idx2][idx3][idx4]->BcwIdx = gBiIdx; } -uint8_t CacheBlkInfoCtrl::getGbiIdx(const UnitArea& area) +uint8_t CacheBlkInfoCtrl::getBcwIdx(const UnitArea& area) { unsigned idx1, idx2, idx3, idx4; getAreaIdx(area.Y(), *m_slice_chblk->getPPS()->pcv, idx1, idx2, idx3, idx4); - return m_codedCUInfo[idx1][idx2][idx3][idx4]->GBiIdx; + return m_codedCUInfo[idx1][idx2][idx3][idx4]->BcwIdx; } #if REUSE_CU_RESULTS @@ -1919,7 +1919,7 @@ bool EncModeCtrlMTnoRQT::tryMode( const EncTestMode& encTestmode, const CodingSt relatedCU.isInter = true; relatedCU.isSkip |= bestCU->skip; relatedCU.isMMVDSkip |= bestCU->mmvdSkip; - relatedCU.GBiIdx = bestCU->GBiIdx; + relatedCU.BcwIdx = bestCU->BcwIdx; #if JVET_P0517_ADAPTIVE_COLOR_TRANSFORM if (bestCU->slice->getSPS()->getUseColorTrans()) { diff --git a/source/Lib/EncoderLib/EncModeCtrl.h b/source/Lib/EncoderLib/EncModeCtrl.h index 55947d907ad30cb647d9b44ed66b681112abf56d..aabbb220b9e4804b1cd18cfb0a524950c3f965ec 100644 --- a/source/Lib/EncoderLib/EncModeCtrl.h +++ b/source/Lib/EncoderLib/EncModeCtrl.h @@ -438,7 +438,7 @@ struct CodedCUInfo bool validMv[NUM_REF_PIC_LIST_01][MAX_STORED_CU_INFO_REFS]; Mv saveMv [NUM_REF_PIC_LIST_01][MAX_STORED_CU_INFO_REFS]; - uint8_t GBiIdx; + uint8_t BcwIdx; #if JVET_P0517_ADAPTIVE_COLOR_TRANSFORM char selectColorSpaceOption; // 0 - test both two color spaces; 1 - only test the first color spaces; 2 - only test the second color spaces #endif @@ -499,8 +499,8 @@ public: void setMv ( const UnitArea& area, const RefPicList refPicList, const int iRefIdx, const Mv& rMv ); bool getInter( const UnitArea& area ); - void setGbiIdx( const UnitArea& area, uint8_t gBiIdx ); - uint8_t getGbiIdx( const UnitArea& area ); + void setBcwIdx( const UnitArea& area, uint8_t gBiIdx ); + uint8_t getBcwIdx( const UnitArea& area ); #if JVET_P0517_ADAPTIVE_COLOR_TRANSFORM char getSelectColorSpaceOption(const UnitArea& area); diff --git a/source/Lib/EncoderLib/EncSlice.cpp b/source/Lib/EncoderLib/EncSlice.cpp index 0fa4a21058e6bb667a4dc99654d590d721ea1091..98854a84aeba8240f7fcc006f83692fd5f63bf11 100644 --- a/source/Lib/EncoderLib/EncSlice.cpp +++ b/source/Lib/EncoderLib/EncSlice.cpp @@ -1853,16 +1853,16 @@ void EncSlice::encodeCtus( Picture* pcPic, const bool bCompressEntireSlice, cons #endif #if JVET_P1004_REMOVE_BRICKS - bool updateGbiCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuIdx == 0; + bool updateBcwCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuIdx == 0; #else - bool updateGbiCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuTsAddr == startCtuTsAddr; + bool updateBcwCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuTsAddr == startCtuTsAddr; #endif - if( updateGbiCodingOrder ) + if( updateBcwCodingOrder ) { - resetGbiCodingOrder(false, cs); + resetBcwCodingOrder(false, cs); m_pcInterSearch->initWeightIdxBits(); } - if (pcSlice->getSPS()->getUseReshaper()) + if (pcSlice->getSPS()->getUseLmcs()) { m_pcCuEncoder->setDecCuReshaperInEncCU(m_pcLib->getReshaper(), pcSlice->getSPS()->getChromaFormatIdc()); @@ -2109,13 +2109,13 @@ void EncSlice::encodeSlice ( Picture* pcPic, OutputBitstream* pcSubstreams, ui } #if JVET_P1004_REMOVE_BRICKS - bool updateGbiCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuIdx == 0; + bool updateBcwCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuIdx == 0; #else - bool updateGbiCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuTsAddr == startCtuTsAddr; + bool updateBcwCodingOrder = cs.slice->getSliceType() == B_SLICE && ctuTsAddr == startCtuTsAddr; #endif - if( updateGbiCodingOrder ) + if( updateBcwCodingOrder ) { - resetGbiCodingOrder(false, cs); + resetBcwCodingOrder(false, cs); } m_CABACWriter->coding_tree_unit( cs, ctuArea, pcPic->m_prevQP, ctuRsAddr ); diff --git a/source/Lib/EncoderLib/InterSearch.cpp b/source/Lib/EncoderLib/InterSearch.cpp index e997f9d811fb045144595d1d599283111288587d..a3c8d4c8299fd299d07920253b607cd42a04e232 100644 --- a/source/Lib/EncoderLib/InterSearch.cpp +++ b/source/Lib/EncoderLib/InterSearch.cpp @@ -298,9 +298,9 @@ void InterSearch::resetSavedAffineMotion() m_affineMotion.affine6ParaAvail = false; } -void InterSearch::storeAffineMotion( Mv acAffineMv[2][3], int16_t affineRefIdx[2], EAffineModel affineType, int gbiIdx ) +void InterSearch::storeAffineMotion( Mv acAffineMv[2][3], int16_t affineRefIdx[2], EAffineModel affineType, int bcwIdx ) { - if ( ( gbiIdx == GBI_DEFAULT || !m_affineMotion.affine6ParaAvail ) && affineType == AFFINEMODEL_6PARAM ) + if ( ( bcwIdx == BCW_DEFAULT || !m_affineMotion.affine6ParaAvail ) && affineType == AFFINEMODEL_6PARAM ) { for ( int i = 0; i < 2; i++ ) { @@ -313,7 +313,7 @@ void InterSearch::storeAffineMotion( Mv acAffineMv[2][3], int16_t affineRefIdx[2 m_affineMotion.affine6ParaAvail = true; } - if ( ( gbiIdx == GBI_DEFAULT || !m_affineMotion.affine4ParaAvail ) && affineType == AFFINEMODEL_4PARAM ) + if ( ( bcwIdx == BCW_DEFAULT || !m_affineMotion.affine4ParaAvail ) && affineType == AFFINEMODEL_4PARAM ) { for ( int i = 0; i < 2; i++ ) { @@ -2285,8 +2285,8 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) int bestBiPMvpL1 = 0; Distortion biPDistTemp = std::numeric_limits<Distortion>::max(); - uint8_t gbiIdx = (cu.cs->slice->isInterB() ? cu.GBiIdx : GBI_DEFAULT); - bool enforceGBiPred = false; + uint8_t bcwIdx = (cu.cs->slice->isInterB() ? cu.BcwIdx : BCW_DEFAULT); + bool enforceBcwPred = false; MergeCtx mergeCtx; // Loop over Prediction Units @@ -2417,7 +2417,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) { xMotionEstimation( pu, origBuf, eRefPicList, cMvPred[iRefList][iRefIdxTemp], iRefIdxTemp, cMvTemp[iRefList][iRefIdxTemp], aaiMvpIdx[iRefList][iRefIdxTemp], uiBitsTemp, uiCostTemp, amvp[eRefPicList] ); } - if( cu.cs->sps->getUseGBi() && cu.GBiIdx == GBI_DEFAULT && cu.cs->slice->isInterB() ) + if( cu.cs->sps->getUseBcw() && cu.BcwIdx == BCW_DEFAULT && cu.cs->slice->isInterB() ) { const bool checkIdentical = true; m_uniMotions.setReadMode(checkIdentical, (uint32_t)iRefList, (uint32_t)iRefIdxTemp); @@ -2454,7 +2454,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) } ::memcpy(cMvHevcTemp, cMvTemp, sizeof(cMvTemp)); - if (cu.imv == 0 && (!cu.slice->getSPS()->getUseGBi() || gbiIdx == GBI_DEFAULT)) + if (cu.imv == 0 && (!cu.slice->getSPS()->getUseBcw() || bcwIdx == BCW_DEFAULT)) { insertUniMvCands(pu.Y(), cMvTemp); @@ -2465,7 +2465,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) } // Bi-predictive Motion estimation if( ( cs.slice->isInterB() ) && ( PU::isBipredRestriction( pu ) == false ) - && (cu.slice->getCheckLDC() || gbiIdx == GBI_DEFAULT || !m_affineModeSelected || !m_pcEncCfg->getUseGBiFast()) + && (cu.slice->getCheckLDC() || bcwIdx == BCW_DEFAULT || !m_affineModeSelected || !m_pcEncCfg->getUseBcwFast()) ) { bool doBiPred = true; @@ -2552,7 +2552,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) iNumIter = 1; } - enforceGBiPred = (gbiIdx != GBI_DEFAULT); + enforceBcwPred = (bcwIdx != BCW_DEFAULT); for ( int iIter = 0; iIter < iNumIter; iIter++ ) { int iRefList = iIter % 2; @@ -2567,9 +2567,9 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) { iRefList = 0; } - if( gbiIdx != GBI_DEFAULT ) + if( bcwIdx != BCW_DEFAULT ) { - iRefList = ( abs( getGbiWeight(gbiIdx, REF_PIC_LIST_0 ) ) > abs( getGbiWeight(gbiIdx, REF_PIC_LIST_1 ) ) ? 1 : 0 ); + iRefList = ( abs( getBcwWeight(bcwIdx, REF_PIC_LIST_0 ) ) > abs( getBcwWeight(bcwIdx, REF_PIC_LIST_1 ) ) ? 1 : 0 ); } } else if ( iIter == 0 ) @@ -2607,14 +2607,14 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) iRefEnd = cs.slice->getNumRefIdx(eRefPicList)-1; for (int iRefIdxTemp = iRefStart; iRefIdxTemp <= iRefEnd; iRefIdxTemp++) { - if( m_pcEncCfg->getUseGBiFast() && (gbiIdx != GBI_DEFAULT) + if( m_pcEncCfg->getUseBcwFast() && (bcwIdx != BCW_DEFAULT) && (pu.cu->slice->getRefPic(eRefPicList, iRefIdxTemp)->getPOC() == pu.cu->slice->getRefPic(RefPicList(1 - iRefList), pu.refIdx[1 - iRefList])->getPOC()) && (!pu.cu->imv && pu.cu->slice->getTLayer()>1)) { continue; } uiBitsTemp = uiMbBits[2] + uiMotBits[1-iRefList]; - uiBitsTemp += ((cs.slice->getSPS()->getUseGBi() == true) ? getWeightIdxBits(gbiIdx) : 0); + uiBitsTemp += ((cs.slice->getSPS()->getUseBcw() == true) ? getWeightIdxBits(bcwIdx) : 0); if ( cs.slice->getNumRefIdx(eRefPicList) > 1 ) { uiBitsTemp += iRefIdxTemp+1; @@ -2641,7 +2641,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) uiCostBi = uiCostTemp; uiMotBits[iRefList] = uiBitsTemp - uiMbBits[2] - uiMotBits[1-iRefList]; - uiMotBits[iRefList] -= ((cs.slice->getSPS()->getUseGBi() == true) ? getWeightIdxBits(gbiIdx) : 0); + uiMotBits[iRefList] -= ((cs.slice->getSPS()->getUseBcw() == true) ? getWeightIdxBits(bcwIdx) : 0); uiBits[2] = uiBitsTemp; if(iNumIter!=1) @@ -2658,7 +2658,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) if ( !bChanged ) { - if ((uiCostBi <= uiCost[0] && uiCostBi <= uiCost[1]) || enforceGBiPred) + if ((uiCostBi <= uiCost[0] && uiCostBi <= uiCost[1]) || enforceBcwPred) { xCopyAMVPInfo(&aacAMVPInfo[0][iRefIdxBi[0]], &amvp[REF_PIC_LIST_0]); xCheckBestMVP( REF_PIC_LIST_0, cMvBi[0], cMvPredBi[0][iRefIdxBi[0]], aaiMvpIdxBi[0][iRefIdxBi[0]], amvp[REF_PIC_LIST_0], uiBits[2], uiCostBi, pu.cu->imv); @@ -2706,7 +2706,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) { cCurMvField.setMvField( aacAMVPInfo[curRefList][refIdxCur].mvCand[i], refIdxCur ); cTarMvField.setMvField( aacAMVPInfo[tarRefList][refIdxTar].mvCand[j], refIdxTar ); - Distortion cost = xGetSymmetricCost( pu, origBuf, eCurRefList, cCurMvField, cTarMvField, gbiIdx ); + Distortion cost = xGetSymmetricCost( pu, origBuf, eCurRefList, cCurMvField, cTarMvField, bcwIdx ); if ( cost < costStart ) { costStart = cost; @@ -2784,7 +2784,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) } Distortion bestCost = costStart; - symmvdCheckBestMvp(pu, origBuf, mvStart, (RefPicList)curRefList, aacAMVPInfo, gbiIdx, cMvPredSym, mvpIdxSym, costStart); + symmvdCheckBestMvp(pu, origBuf, mvStart, (RefPicList)curRefList, aacAMVPInfo, bcwIdx, cMvPredSym, mvpIdxSym, costStart); if (costStart < bestCost) { cCurMvField.setMvField(mvStart, refIdxCur); @@ -2797,18 +2797,18 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) symCost = costStart - mvpCost; // ME - xSymmetricMotionEstimation( pu, origBuf, cMvPredSym[curRefList], cMvPredSym[tarRefList], eCurRefList, cCurMvField, cTarMvField, symCost, gbiIdx ); + xSymmetricMotionEstimation( pu, origBuf, cMvPredSym[curRefList], cMvPredSym[tarRefList], eCurRefList, cCurMvField, cTarMvField, symCost, bcwIdx ); symCost += mvpCost; if (startPtMv != cCurMvField.mv) { // if ME change MV, run a final check for best MVP. - symmvdCheckBestMvp(pu, origBuf, cCurMvField.mv, (RefPicList)curRefList, aacAMVPInfo, gbiIdx, cMvPredSym, mvpIdxSym, symCost, true); + symmvdCheckBestMvp(pu, origBuf, cCurMvField.mv, (RefPicList)curRefList, aacAMVPInfo, bcwIdx, cMvPredSym, mvpIdxSym, symCost, true); } bits = uiMbBits[2]; bits += 1; // add one bit for #symmetrical MVD mode - bits += ((cs.slice->getSPS()->getUseGBi() == true) ? getWeightIdxBits(gbiIdx) : 0); + bits += ((cs.slice->getSPS()->getUseBcw() == true) ? getWeightIdxBits(bcwIdx) : 0); symCost += m_pcRdCost->getCost(bits); cTarMvField.setMvField(cCurMvField.mv.getSymmvdMv(cMvPredSym[curRefList], cMvPredSym[tarRefList]), refIdxTar); @@ -2857,7 +2857,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) iRefIdx[1] = refIdxValidList1; uiBits [1] = bitsValidList1; uiCost [1] = costValidList1; - if (cu.cs->pps->getWPBiPred() == true && tryBipred && (gbiIdx != GBI_DEFAULT)) + if (cu.cs->pps->getWPBiPred() == true && tryBipred && (bcwIdx != BCW_DEFAULT)) { CHECK(iRefIdxBi[0]<0, "Invalid picture reference index"); CHECK(iRefIdxBi[1]<0, "Invalid picture reference index"); @@ -2867,10 +2867,10 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) || wp1[COMPONENT_Y].bPresentFlag || wp1[COMPONENT_Cb].bPresentFlag || wp1[COMPONENT_Cr].bPresentFlag)) { uiCostBi = MAX_UINT; - enforceGBiPred = false; + enforceBcwPred = false; } } - if( enforceGBiPred ) + if( enforceBcwPred ) { uiCost[0] = uiCost[1] = MAX_UINT; } @@ -2914,16 +2914,16 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) pu.interDir = 2; } - if( gbiIdx != GBI_DEFAULT ) + if( bcwIdx != BCW_DEFAULT ) { - cu.GBiIdx = GBI_DEFAULT; // Reset to default for the Non-NormalMC modes. + cu.BcwIdx = BCW_DEFAULT; // Reset to default for the Non-NormalMC modes. } uiHevcCost = ( uiCostBi <= uiCost[0] && uiCostBi <= uiCost[1] ) ? uiCostBi : ( ( uiCost[0] <= uiCost[1] ) ? uiCost[0] : uiCost[1] ); } if (cu.Y().width > 8 && cu.Y().height > 8 && cu.slice->getSPS()->getUseAffine() && checkAffine - && (gbiIdx == GBI_DEFAULT || m_affineModeSelected || !m_pcEncCfg->getUseGBiFast()) + && (bcwIdx == BCW_DEFAULT || m_affineModeSelected || !m_pcEncCfg->getUseBcwFast()) ) { m_hevcCost = uiHevcCost; @@ -2951,12 +2951,12 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) Mv acMvAffine4Para[2][33][3]; int refIdx4Para[2] = { -1, -1 }; - xPredAffineInterSearch(pu, origBuf, puIdx, uiLastModeTemp, uiAffineCost, cMvHevcTemp, acMvAffine4Para, refIdx4Para, gbiIdx, enforceGBiPred, - ((cu.slice->getSPS()->getUseGBi() == true) ? getWeightIdxBits(gbiIdx) : 0)); + xPredAffineInterSearch(pu, origBuf, puIdx, uiLastModeTemp, uiAffineCost, cMvHevcTemp, acMvAffine4Para, refIdx4Para, bcwIdx, enforceBcwPred, + ((cu.slice->getSPS()->getUseBcw() == true) ? getWeightIdxBits(bcwIdx) : 0)); if ( pu.cu->imv == 0 ) { - storeAffineMotion( pu.mvAffi, pu.refIdx, AFFINEMODEL_4PARAM, gbiIdx ); + storeAffineMotion( pu.mvAffi, pu.refIdx, AFFINEMODEL_4PARAM, bcwIdx ); } if ( cu.slice->getSPS()->getUseAffineType() ) @@ -2991,12 +2991,12 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) Distortion uiAffine6Cost = std::numeric_limits<Distortion>::max(); cu.affineType = AFFINEMODEL_6PARAM; - xPredAffineInterSearch(pu, origBuf, puIdx, uiLastModeTemp, uiAffine6Cost, cMvHevcTemp, acMvAffine4Para, refIdx4Para, gbiIdx, enforceGBiPred, - ((cu.slice->getSPS()->getUseGBi() == true) ? getWeightIdxBits(gbiIdx) : 0)); + xPredAffineInterSearch(pu, origBuf, puIdx, uiLastModeTemp, uiAffine6Cost, cMvHevcTemp, acMvAffine4Para, refIdx4Para, bcwIdx, enforceBcwPred, + ((cu.slice->getSPS()->getUseBcw() == true) ? getWeightIdxBits(bcwIdx) : 0)); if ( pu.cu->imv == 0 ) { - storeAffineMotion( pu.mvAffi, pu.refIdx, AFFINEMODEL_6PARAM, gbiIdx ); + storeAffineMotion( pu.mvAffi, pu.refIdx, AFFINEMODEL_6PARAM, bcwIdx ); } // reset to 4 parameter affine inter mode @@ -3066,9 +3066,9 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) if( cu.firstPU->interDir == 3 && !cu.firstPU->mergeFlag ) { - if (gbiIdx != GBI_DEFAULT) + if (bcwIdx != BCW_DEFAULT) { - cu.GBiIdx = gbiIdx; + cu.BcwIdx = bcwIdx; } } m_maxCompIDToPred = MAX_NUM_COMPONENT; @@ -3081,7 +3081,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) m_encOnly = false; // MC PelUnitBuf predBuf = pu.cs->getPredBuf(pu); - if ( gbiIdx == GBI_DEFAULT || !m_affineMotion.affine4ParaAvail || !m_affineMotion.affine6ParaAvail ) + if ( bcwIdx == BCW_DEFAULT || !m_affineMotion.affine4ParaAvail || !m_affineMotion.affine6ParaAvail ) { m_affineMotion.hevcCost[pu.cu->imv] = uiHevcCost; } @@ -3327,7 +3327,7 @@ Distortion InterSearch::xGetAffineTemplateCost( PredictionUnit& pu, PelUnitBuf& void InterSearch::xMotionEstimation(PredictionUnit& pu, PelUnitBuf& origBuf, RefPicList eRefPicList, Mv& rcMvPred, int iRefIdxPred, Mv& rcMv, int& riMVPIdx, uint32_t& ruiBits, Distortion& ruiCost, const AMVPInfo& amvpInfo, bool bBi) { - if( pu.cu->cs->sps->getUseGBi() && pu.cu->GBiIdx != GBI_DEFAULT && !bBi && xReadBufferedUniMv(pu, eRefPicList, iRefIdxPred, rcMvPred, rcMv, ruiBits, ruiCost) ) + if( pu.cu->cs->sps->getUseBcw() && pu.cu->BcwIdx != BCW_DEFAULT && !bBi && xReadBufferedUniMv(pu, eRefPicList, iRefIdxPred, rcMvPred, rcMv, ruiBits, ruiCost) ) { return; } @@ -3349,11 +3349,11 @@ void InterSearch::xMotionEstimation(PredictionUnit& pu, PelUnitBuf& origBuf, Ref PelUnitBuf otherBuf = m_tmpPredStorage[1 - (int)eRefPicList].getBuf( UnitAreaRelative(*pu.cu, pu )); origBufTmp.copyFrom(origBuf); origBufTmp.removeHighFreq( otherBuf, m_pcEncCfg->getClipForBiPredMeEnabled(), pu.cu->slice->clpRngs() - ,getGbiWeight( pu.cu->GBiIdx, eRefPicList ) + ,getBcwWeight( pu.cu->BcwIdx, eRefPicList ) ); pBuf = &origBufTmp; - fWeight = xGetMEDistortionWeight( pu.cu->GBiIdx, eRefPicList ); + fWeight = xGetMEDistortionWeight( pu.cu->BcwIdx, eRefPicList ); } m_cDistParam.isBiPred = bBi; @@ -4371,7 +4371,7 @@ void InterSearch::xPatternSearchFracDIF( } } -Distortion InterSearch::xGetSymmetricCost( PredictionUnit& pu, PelUnitBuf& origBuf, RefPicList eCurRefPicList, const MvField& cCurMvField, MvField& cTarMvField, int gbiIdx ) +Distortion InterSearch::xGetSymmetricCost( PredictionUnit& pu, PelUnitBuf& origBuf, RefPicList eCurRefPicList, const MvField& cCurMvField, MvField& cTarMvField, int bcwIdx ) { Distortion cost = std::numeric_limits<Distortion>::max(); RefPicList eTarRefPicList = (RefPicList)(1 - (int)eCurRefPicList); @@ -4423,15 +4423,15 @@ Distortion InterSearch::xGetSymmetricCost( PredictionUnit& pu, PelUnitBuf& origB PelUnitBuf bufTmp = m_tmpStorageLCU.getBuf( UnitAreaRelative( *pu.cu, pu ) ); #if JVET_P0092_SMVD_SPEED_UP bufTmp.copyFrom( origBuf ); - bufTmp.removeHighFreq( predBufA, m_pcEncCfg->getClipForBiPredMeEnabled(), pu.cu->slice->clpRngs(), getGbiWeight( pu.cu->GBiIdx, eTarRefPicList ) ); - double fWeight = xGetMEDistortionWeight( pu.cu->GBiIdx, eTarRefPicList ); + bufTmp.removeHighFreq( predBufA, m_pcEncCfg->getClipForBiPredMeEnabled(), pu.cu->slice->clpRngs(), getBcwWeight( pu.cu->BcwIdx, eTarRefPicList ) ); + double fWeight = xGetMEDistortionWeight( pu.cu->BcwIdx, eTarRefPicList ); // calc distortion DFunc distFunc = (!pu.cu->transQuantBypass && !pu.cu->slice->getDisableSATDForRD()) ? DF_HAD : DF_SAD; cost = (Distortion)floor( fWeight * (double)m_pcRdCost->getDistPart( bufTmp.Y(), predBufB.Y(), pu.cs->sps->getBitDepth( CHANNEL_TYPE_LUMA ), COMPONENT_Y, distFunc ) ); #else - if (gbiIdx != GBI_DEFAULT) - bufTmp.Y().addWeightedAvg(predBufA.Y(), predBufB.Y(), pu.cu->slice->clpRng(COMPONENT_Y), gbiIdx); + if (bcwIdx != BCW_DEFAULT) + bufTmp.Y().addWeightedAvg(predBufA.Y(), predBufB.Y(), pu.cu->slice->clpRng(COMPONENT_Y), bcwIdx); else bufTmp.Y().addAvg( predBufA.Y(), predBufB.Y(), pu.cu->slice->clpRng( COMPONENT_Y ) ); @@ -4443,7 +4443,7 @@ Distortion InterSearch::xGetSymmetricCost( PredictionUnit& pu, PelUnitBuf& origB } Distortion InterSearch::xSymmeticRefineMvSearch( PredictionUnit &pu, PelUnitBuf& origBuf, Mv& rcMvCurPred, Mv& rcMvTarPred - , RefPicList eRefPicList, MvField& rCurMvField, MvField& rTarMvField, Distortion uiMinCost, int SearchPattern, int nSearchStepShift, uint32_t uiMaxSearchRounds, int gbiIdx ) + , RefPicList eRefPicList, MvField& rCurMvField, MvField& rTarMvField, Distortion uiMinCost, int SearchPattern, int nSearchStepShift, uint32_t uiMaxSearchRounds, int bcwIdx ) { const Mv mvSearchOffsetCross[4] = { Mv( 0 , 1 ) , Mv( 1 , 0 ) , Mv( 0 , -1 ) , Mv( -1 , 0 ) }; const Mv mvSearchOffsetSquare[8] = { Mv( -1 , 1 ) , Mv( 0 , 1 ) , Mv( 1 , 1 ) , Mv( 1 , 0 ) , Mv( 1 , -1 ) , Mv( 0 , -1 ) , Mv( -1 , -1 ) , Mv( -1 , 0 ) }; @@ -4528,7 +4528,7 @@ Distortion InterSearch::xSymmeticRefineMvSearch( PredictionUnit &pu, PelUnitBuf& if( !( MCTSHelper::checkMvForMCTSConstraint( pu, mvPair.mv ) ) ) continue; // Skip this this pos } - uiCost += xGetSymmetricCost( pu, origBuf, eRefPicList, mvCand, mvPair, gbiIdx ); + uiCost += xGetSymmetricCost( pu, origBuf, eRefPicList, mvCand, mvPair, bcwIdx ); if ( uiCost < uiMinCost ) { uiMinCost = uiCost; @@ -4555,7 +4555,7 @@ Distortion InterSearch::xSymmeticRefineMvSearch( PredictionUnit &pu, PelUnitBuf& } -void InterSearch::xSymmetricMotionEstimation( PredictionUnit& pu, PelUnitBuf& origBuf, Mv& rcMvCurPred, Mv& rcMvTarPred, RefPicList eRefPicList, MvField& rCurMvField, MvField& rTarMvField, Distortion& ruiCost, int gbiIdx ) +void InterSearch::xSymmetricMotionEstimation( PredictionUnit& pu, PelUnitBuf& origBuf, Mv& rcMvCurPred, Mv& rcMvTarPred, RefPicList eRefPicList, MvField& rCurMvField, MvField& rTarMvField, Distortion& ruiCost, int bcwIdx ) { // Refine Search int nSearchStepShift = MV_FRACTIONAL_BITS_DIFF; @@ -4565,8 +4565,8 @@ void InterSearch::xSymmetricMotionEstimation( PredictionUnit& pu, PelUnitBuf& or nSearchStepShift += pu.cu->imv == IMV_HPEL ? 1 : (pu.cu->imv << 1); nDiamondRound >>= pu.cu->imv; - ruiCost = xSymmeticRefineMvSearch( pu, origBuf, rcMvCurPred, rcMvTarPred, eRefPicList, rCurMvField, rTarMvField, ruiCost, 2, nSearchStepShift, nDiamondRound, gbiIdx ); - ruiCost = xSymmeticRefineMvSearch( pu, origBuf, rcMvCurPred, rcMvTarPred, eRefPicList, rCurMvField, rTarMvField, ruiCost, 0, nSearchStepShift, nCrossRound, gbiIdx ); + ruiCost = xSymmeticRefineMvSearch( pu, origBuf, rcMvCurPred, rcMvTarPred, eRefPicList, rCurMvField, rTarMvField, ruiCost, 2, nSearchStepShift, nDiamondRound, bcwIdx ); + ruiCost = xSymmeticRefineMvSearch( pu, origBuf, rcMvCurPred, rcMvTarPred, eRefPicList, rCurMvField, rTarMvField, ruiCost, 0, nSearchStepShift, nCrossRound, bcwIdx ); } void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, @@ -4577,9 +4577,9 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, Mv hevcMv[2][33] , Mv mvAffine4Para[2][33][3] , int refIdx4Para[2] - , uint8_t gbiIdx - , bool enforceGBiPred - , uint32_t gbiIdxBits + , uint8_t bcwIdx + , bool enforceBcwPred + , uint32_t bcwIdxBits ) { const Slice &slice = *pu.cu->slice; @@ -4646,9 +4646,9 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, pu.cu->affine = true; pu.mergeFlag = false; pu.regularMergeFlag = false; - if( gbiIdx != GBI_DEFAULT ) + if( bcwIdx != BCW_DEFAULT ) { - pu.cu->GBiIdx = gbiIdx; + pu.cu->BcwIdx = bcwIdx; } // Uni-directional prediction @@ -4724,7 +4724,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, } if (pu.cu->affineType == AFFINEMODEL_4PARAM && m_affMVListSize - && (!pu.cu->cs->sps->getUseGBi() || gbiIdx == GBI_DEFAULT) + && (!pu.cu->cs->sps->getUseBcw() || bcwIdx == BCW_DEFAULT) ) { int shift = MAX_CU_DEPTH; @@ -4871,7 +4871,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, , aaiMvpIdx[iRefList][iRefIdxTemp], affiAMVPInfoTemp[eRefPicList] ); } - if(pu.cu->cs->sps->getUseGBi() && pu.cu->GBiIdx == GBI_DEFAULT && pu.cu->slice->isInterB()) + if(pu.cu->cs->sps->getUseBcw() && pu.cu->BcwIdx == BCW_DEFAULT && pu.cu->slice->isInterB()) { m_uniMotions.setReadModeAffine(true, (uint8_t)iRefList, (uint8_t)iRefIdxTemp, pu.cu->affineType); m_uniMotions.copyAffineMvFrom(cMvTemp[iRefList][iRefIdxTemp], uiCostTemp - m_pcRdCost->getCost(uiBitsTemp), (uint8_t)iRefList, (uint8_t)iRefIdxTemp, pu.cu->affineType @@ -4914,7 +4914,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, if ( pu.cu->affineType == AFFINEMODEL_4PARAM ) { ::memcpy( mvAffine4Para, cMvTemp, sizeof( cMvTemp ) ); - if ( pu.cu->imv == 0 && ( !pu.cu->cs->sps->getUseGBi() || gbiIdx == GBI_DEFAULT ) ) + if ( pu.cu->imv == 0 && ( !pu.cu->cs->sps->getUseBcw() || bcwIdx == BCW_DEFAULT ) ) { AffineMVInfo *affMVInfo = m_affMVList + m_affMVListIdx; @@ -5055,9 +5055,9 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, { iRefList = 0; } - if( gbiIdx != GBI_DEFAULT ) + if( bcwIdx != BCW_DEFAULT ) { - iRefList = ( abs( getGbiWeight( gbiIdx, REF_PIC_LIST_0 ) ) > abs( getGbiWeight( gbiIdx, REF_PIC_LIST_1 ) ) ? 1 : 0 ); + iRefList = ( abs( getBcwWeight( bcwIdx, REF_PIC_LIST_0 ) ) > abs( getBcwWeight( bcwIdx, REF_PIC_LIST_1 ) ) ? 1 : 0 ); } } else if ( iIter == 0 ) @@ -5101,7 +5101,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, { continue; } - if(m_pcEncCfg->getUseGBiFast() && (gbiIdx != GBI_DEFAULT) + if(m_pcEncCfg->getUseBcwFast() && (bcwIdx != BCW_DEFAULT) && (pu.cu->slice->getRefPic(eRefPicList, iRefIdxTemp)->getPOC() == pu.cu->slice->getRefPic(RefPicList(1 - iRefList), pu.refIdx[1 - iRefList])->getPOC()) && (pu.cu->affineType == AFFINEMODEL_4PARAM && pu.cu->slice->getTLayer()>1)) { @@ -5109,7 +5109,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, } // update bits uiBitsTemp = uiMbBits[2] + uiMotBits[1-iRefList]; - uiBitsTemp += ((pu.cu->slice->getSPS()->getUseGBi() == true) ? gbiIdxBits : 0); + uiBitsTemp += ((pu.cu->slice->getSPS()->getUseBcw() == true) ? bcwIdxBits : 0); if( slice.getNumRefIdx(eRefPicList) > 1 ) { uiBitsTemp += iRefIdxTemp+1; @@ -5136,7 +5136,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, uiCostBi = uiCostTemp; uiMotBits[iRefList] = uiBitsTemp - uiMbBits[2] - uiMotBits[1-iRefList]; - uiMotBits[iRefList] -= ((pu.cu->slice->getSPS()->getUseGBi() == true) ? gbiIdxBits : 0); + uiMotBits[iRefList] -= ((pu.cu->slice->getSPS()->getUseBcw() == true) ? bcwIdxBits : 0); uiBits[2] = uiBitsTemp; if ( iNumIter != 1 ) // MC for next iter @@ -5152,7 +5152,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, if ( !bChanged ) { - if ((uiCostBi <= uiCost[0] && uiCostBi <= uiCost[1]) || enforceGBiPred) + if ((uiCostBi <= uiCost[0] && uiCostBi <= uiCost[1]) || enforceBcwPred) { xCopyAffineAMVPInfo( aacAffineAMVPInfo[0][iRefIdxBi[0]], affiAMVPInfoTemp[REF_PIC_LIST_0] ); xCheckBestAffineMVP( pu, affiAMVPInfoTemp[REF_PIC_LIST_0], REF_PIC_LIST_0, cMvBi[0], cMvPredBi[0][iRefIdxBi[0]], aaiMvpIdxBi[0][iRefIdxBi[0]], uiBits[2], uiCostBi ); @@ -5196,7 +5196,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, iRefIdx[1] = refIdxValidList1; uiBits[1] = bitsValidList1; uiCost[1] = costValidList1; - if (pu.cs->pps->getWPBiPred() == true && tryBipred && (gbiIdx != GBI_DEFAULT)) + if (pu.cs->pps->getWPBiPred() == true && tryBipred && (bcwIdx != BCW_DEFAULT)) { CHECK(iRefIdxBi[0]<0, "Invalid picture reference index"); CHECK(iRefIdxBi[1]<0, "Invalid picture reference index"); @@ -5206,10 +5206,10 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, || wp1[COMPONENT_Y].bPresentFlag || wp1[COMPONENT_Cb].bPresentFlag || wp1[COMPONENT_Cr].bPresentFlag)) { uiCostBi = MAX_UINT; - enforceGBiPred = false; + enforceBcwPred = false; } } - if( enforceGBiPred ) + if( enforceBcwPred ) { uiCost[0] = uiCost[1] = MAX_UINT; } @@ -5282,9 +5282,9 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu, pu.mvpIdx[REF_PIC_LIST_1] = aaiMvpIdx[1][iRefIdx[1]]; pu.mvpNum[REF_PIC_LIST_1] = aaiMvpNum[1][iRefIdx[1]]; } - if( gbiIdx != GBI_DEFAULT ) + if( bcwIdx != BCW_DEFAULT ) { - pu.cu->GBiIdx = GBI_DEFAULT; + pu.cu->BcwIdx = BCW_DEFAULT; } } @@ -5425,7 +5425,7 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu, const AffineAMVPInfo& aamvpi, bool bBi) { - if( pu.cu->cs->sps->getUseGBi() && pu.cu->GBiIdx != GBI_DEFAULT && !bBi && xReadBufferedAffineUniMv(pu, eRefPicList, iRefIdxPred, acMvPred, acMv, ruiBits, ruiCost + if( pu.cu->cs->sps->getUseBcw() && pu.cu->BcwIdx != BCW_DEFAULT && !bBi && xReadBufferedAffineUniMv(pu, eRefPicList, iRefIdxPred, acMvPred, acMv, ruiBits, ruiCost , mvpIdx, aamvpi ) ) { @@ -5454,11 +5454,11 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu, PelUnitBuf otherBuf = m_tmpPredStorage[1 - (int)eRefPicList].getBuf( UnitAreaRelative( *pu.cu, pu ) ); origBufTmp.copyFrom(origBuf); origBufTmp.removeHighFreq(otherBuf, m_pcEncCfg->getClipForBiPredMeEnabled(), pu.cu->slice->clpRngs() - ,getGbiWeight(pu.cu->GBiIdx, eRefPicList) + ,getBcwWeight(pu.cu->BcwIdx, eRefPicList) ); pBuf = &origBufTmp; - fWeight = xGetMEDistortionWeight( pu.cu->GBiIdx, eRefPicList ); + fWeight = xGetMEDistortionWeight( pu.cu->BcwIdx, eRefPicList ); } // pred YUV @@ -7463,9 +7463,9 @@ void InterSearch::encodeResAndCalcRdInterCU(CodingStructure &cs, Partitioner &pa { cs.getRecoBuf().copyFrom(cs.getPredBuf() ); #if JVET_P1006_PICTURE_HEADER - if (m_pcEncCfg->getReshaper() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()) && !cu.firstPU->mhIntraFlag && !CU::isIBC(cu)) + if (m_pcEncCfg->getLmcs() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()) && !cu.firstPU->ciipFlag && !CU::isIBC(cu)) #else - if (m_pcEncCfg->getReshaper() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()) && !cu.firstPU->mhIntraFlag && !CU::isIBC(cu)) + if (m_pcEncCfg->getLmcs() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()) && !cu.firstPU->ciipFlag && !CU::isIBC(cu)) #endif { cs.getRecoBuf().Y().rspSignal(m_pcReshape->getFwdLUT()); @@ -7489,9 +7489,9 @@ void InterSearch::encodeResAndCalcRdInterCU(CodingStructure &cs, Partitioner &pa #if WCG_EXT if (m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || ( #if JVET_P1006_PICTURE_HEADER - m_pcEncCfg->getReshaper() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) ) + m_pcEncCfg->getLmcs() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) ) #else - m_pcEncCfg->getReshaper() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) ) + m_pcEncCfg->getLmcs() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) ) #endif { const CPelBuf orgLuma = cs.getOrgBuf( cs.area.blocks[COMPONENT_Y] ); @@ -7546,7 +7546,7 @@ void InterSearch::encodeResAndCalcRdInterCU(CodingStructure &cs, Partitioner &pa PelBuf tmpPred = m_tmpStorageLCU.getBuf(tmpArea); tmpPred.copyFrom(cs.getPredBuf(COMPONENT_Y)); - if (!cu.firstPU->mhIntraFlag && !CU::isIBC(cu)) + if (!cu.firstPU->ciipFlag && !CU::isIBC(cu)) tmpPred.rspSignal(m_pcReshape->getFwdLUT()); cs.getResiBuf(COMPONENT_Y).rspSignal(m_pcReshape->getFwdLUT()); cs.getResiBuf(COMPONENT_Y).subtract(tmpPred); @@ -7833,7 +7833,7 @@ void InterSearch::encodeResAndCalcRdInterCU(CodingStructure &cs, Partitioner &pa PelBuf tmpPred = m_tmpStorageLCU.getBuf(tmpArea); tmpPred.copyFrom(cs.getPredBuf(COMPONENT_Y)); - if (!cu.firstPU->mhIntraFlag && !CU::isIBC(cu)) + if (!cu.firstPU->ciipFlag && !CU::isIBC(cu)) tmpPred.rspSignal(m_pcReshape->getFwdLUT()); cs.getRecoBuf(COMPONENT_Y).reconstruct(tmpPred, cs.getResiBuf(COMPONENT_Y), cs.slice->clpRng(COMPONENT_Y)); @@ -7842,9 +7842,9 @@ void InterSearch::encodeResAndCalcRdInterCU(CodingStructure &cs, Partitioner &pa { cs.getRecoBuf().bufs[0].reconstruct(cs.getPredBuf().bufs[0], cs.getResiBuf().bufs[0], cs.slice->clpRngs().comp[0]); #if JVET_P1006_PICTURE_HEADER - if (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag() && !cu.firstPU->mhIntraFlag && !CU::isIBC(cu)) + if (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag() && !cu.firstPU->ciipFlag && !CU::isIBC(cu)) #else - if (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag() && !cu.firstPU->mhIntraFlag && !CU::isIBC(cu)) + if (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag() && !cu.firstPU->ciipFlag && !CU::isIBC(cu)) #endif { cs.getRecoBuf().bufs[0].rspSignal(m_pcReshape->getFwdLUT()); @@ -7873,9 +7873,9 @@ void InterSearch::encodeResAndCalcRdInterCU(CodingStructure &cs, Partitioner &pa #if WCG_EXT if (m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || ( #if JVET_P1006_PICTURE_HEADER - m_pcEncCfg->getReshaper() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) + m_pcEncCfg->getLmcs() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) #else - m_pcEncCfg->getReshaper() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) + m_pcEncCfg->getLmcs() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) #endif { const CPelBuf orgLuma = cs.getOrgBuf( cs.area.blocks[COMPONENT_Y] ); @@ -7941,7 +7941,7 @@ uint64_t InterSearch::xGetSymbolFracBitsInter(CodingStructure &cs, Partitioner & } m_CABACEstimator->cu_skip_flag ( cu ); - if (cu.firstPU->mhIntraFlag) + if (cu.firstPU->ciipFlag) { // CIIP shouldn't be skip, the upper level function will deal with it, i.e. setting the overall cost to MAX_DOUBLE } @@ -7973,11 +7973,11 @@ uint64_t InterSearch::xGetSymbolFracBitsInter(CodingStructure &cs, Partitioner & return fracBits; } -double InterSearch::xGetMEDistortionWeight(uint8_t gbiIdx, RefPicList eRefPicList) +double InterSearch::xGetMEDistortionWeight(uint8_t bcwIdx, RefPicList eRefPicList) { - if( gbiIdx != GBI_DEFAULT ) + if( bcwIdx != BCW_DEFAULT ) { - return fabs((double)getGbiWeight(gbiIdx, eRefPicList) / (double)g_GbiWeightBase); + return fabs((double)getBcwWeight(bcwIdx, eRefPicList) / (double)g_BcwWeightBase); } else { @@ -8036,7 +8036,7 @@ bool InterSearch::xReadBufferedAffineUniMv(PredictionUnit& pu, RefPicList eRefPi } void InterSearch::initWeightIdxBits() { - for (int n = 0; n < GBI_NUM; ++n) + for (int n = 0; n < BCW_NUM; ++n) { m_estWeightIdxBits[n] = deriveWeightIdxBits(n); } @@ -8092,7 +8092,7 @@ void InterSearch::symmvdCheckBestMvp( Mv curMv, RefPicList curRefList, AMVPInfo amvpInfo[2][33], - int32_t gbiIdx, + int32_t bcwIdx, Mv cMvPredSym[2], int32_t mvpIdxSym[2], Distortion& bestCost, @@ -8129,9 +8129,9 @@ void InterSearch::symmvdCheckBestMvp( } PelUnitBuf bufTmp = m_tmpStorageLCU.getBuf( UnitAreaRelative( *pu.cu, pu ) ); bufTmp.copyFrom( origBuf ); - bufTmp.removeHighFreq( predBufA, m_pcEncCfg->getClipForBiPredMeEnabled(), pu.cu->slice->clpRngs(), getGbiWeight( pu.cu->GBiIdx, tarRefList ) ); + bufTmp.removeHighFreq( predBufA, m_pcEncCfg->getClipForBiPredMeEnabled(), pu.cu->slice->clpRngs(), getBcwWeight( pu.cu->BcwIdx, tarRefList ) ); - double fWeight = xGetMEDistortionWeight( pu.cu->GBiIdx, tarRefList ); + double fWeight = xGetMEDistortionWeight( pu.cu->BcwIdx, tarRefList ); #else xPredInterBlk(COMPONENT_Y, pu, picRefA, mvA, predBufA, true, pu.cu->slice->clpRng(COMPONENT_Y), false, false); #endif @@ -8173,8 +8173,8 @@ void InterSearch::symmvdCheckBestMvp( xPredInterBlk(COMPONENT_Y, pu, picRefB, mvB, predBufB, true, pu.cu->slice->clpRng(COMPONENT_Y), false, false); PelUnitBuf bufTmp = m_tmpStorageLCU.getBuf(UnitAreaRelative(*pu.cu, pu)); - if (gbiIdx != GBI_DEFAULT) - bufTmp.Y().addWeightedAvg(predBufA.Y(), predBufB.Y(), pu.cu->slice->clpRng(COMPONENT_Y), gbiIdx); + if (bcwIdx != BCW_DEFAULT) + bufTmp.Y().addWeightedAvg(predBufA.Y(), predBufB.Y(), pu.cu->slice->clpRng(COMPONENT_Y), bcwIdx); else bufTmp.Y().addAvg(predBufA.Y(), predBufB.Y(), pu.cu->slice->clpRng(COMPONENT_Y)); diff --git a/source/Lib/EncoderLib/InterSearch.h b/source/Lib/EncoderLib/InterSearch.h index de6ed7729f6470d85a1600c02ab0d97d9c66c8b1..be4bf61bdf9278e806fac93d8f56e0e4d532140b 100644 --- a/source/Lib/EncoderLib/InterSearch.h +++ b/source/Lib/EncoderLib/InterSearch.h @@ -114,8 +114,8 @@ private: CodingStructure **m_pSaveCS; ClpRng m_lumaClpRng; - uint32_t m_estWeightIdxBits[GBI_NUM]; - GBiMotionParam m_uniMotions; + uint32_t m_estWeightIdxBits[BCW_NUM]; + BcwMotionParam m_uniMotions; bool m_affineModeSelected; std::unordered_map< Position, std::unordered_map< Size, BlkRecord> > m_ctuRecord; AffineMVInfo *m_affMVList; @@ -315,7 +315,7 @@ public: } } void resetSavedAffineMotion(); - void storeAffineMotion( Mv acAffineMv[2][3], int16_t affineRefIdx[2], EAffineModel affineType, int gbiIdx ); + void storeAffineMotion( Mv acAffineMv[2][3], int16_t affineRefIdx[2], EAffineModel affineType, int bcwIdx ); bool searchBv(PredictionUnit& pu, int xPos, int yPos, int width, int height, int picWidth, int picHeight, int xBv, int yBv, int ctuSize); protected: @@ -517,9 +517,9 @@ protected: Mv hevcMv[2][33] , Mv mvAffine4Para[2][33][3] , int refIdx4Para[2] - , uint8_t gbiIdx = GBI_DEFAULT - , bool enforceGBiPred = false - , uint32_t gbiIdxBits = 0 + , uint8_t bcwIdx = BCW_DEFAULT + , bool enforceBcwPred = false + , uint32_t bcwIdxBits = 0 ); void xAffineMotionEstimation ( PredictionUnit& pu, @@ -549,24 +549,24 @@ protected: void xCopyAffineAMVPInfo ( AffineAMVPInfo& src, AffineAMVPInfo& dst ); void xCheckBestAffineMVP ( PredictionUnit &pu, AffineAMVPInfo &affineAMVPInfo, RefPicList eRefPicList, Mv acMv[3], Mv acMvPred[3], int& riMVPIdx, uint32_t& ruiBits, Distortion& ruiCost ); - Distortion xGetSymmetricCost( PredictionUnit& pu, PelUnitBuf& origBuf, RefPicList eCurRefPicList, const MvField& cCurMvField, MvField& cTarMvField , int gbiIdx ); + Distortion xGetSymmetricCost( PredictionUnit& pu, PelUnitBuf& origBuf, RefPicList eCurRefPicList, const MvField& cCurMvField, MvField& cTarMvField , int bcwIdx ); Distortion xSymmeticRefineMvSearch( PredictionUnit& pu, PelUnitBuf& origBuf, Mv& rcMvCurPred, Mv& rcMvTarPred - , RefPicList eRefPicList, MvField& rCurMvField, MvField& rTarMvField, Distortion uiMinCost, int searchPattern, int nSearchStepShift, uint32_t uiMaxSearchRounds , int gbiIdx ); + , RefPicList eRefPicList, MvField& rCurMvField, MvField& rTarMvField, Distortion uiMinCost, int searchPattern, int nSearchStepShift, uint32_t uiMaxSearchRounds , int bcwIdx ); - void xSymmetricMotionEstimation( PredictionUnit& pu, PelUnitBuf& origBuf, Mv& rcMvCurPred, Mv& rcMvTarPred, RefPicList eRefPicList, MvField& rCurMvField, MvField& rTarMvField, Distortion& ruiCost, int gbiIdx ); + void xSymmetricMotionEstimation( PredictionUnit& pu, PelUnitBuf& origBuf, Mv& rcMvCurPred, Mv& rcMvTarPred, RefPicList eRefPicList, MvField& rCurMvField, MvField& rTarMvField, Distortion& ruiCost, int bcwIdx ); bool xReadBufferedAffineUniMv ( PredictionUnit& pu, RefPicList eRefPicList, int32_t iRefIdx, Mv acMvPred[3], Mv acMv[3], uint32_t& ruiBits, Distortion& ruiCost , int& mvpIdx, const AffineAMVPInfo& aamvpi ); - double xGetMEDistortionWeight ( uint8_t gbiIdx, RefPicList eRefPicList); + double xGetMEDistortionWeight ( uint8_t bcwIdx, RefPicList eRefPicList); bool xReadBufferedUniMv ( PredictionUnit& pu, RefPicList eRefPicList, int32_t iRefIdx, Mv& pcMvPred, Mv& rcMv, uint32_t& ruiBits, Distortion& ruiCost); void xClipMv ( Mv& rcMv, const struct Position& pos, const struct Size& size, const class SPS& sps, const class PPS& pps ); public: void resetBufferedUniMotions () { m_uniMotions.reset(); } - uint32_t getWeightIdxBits ( uint8_t gbiIdx ) { return m_estWeightIdxBits[gbiIdx]; } + uint32_t getWeightIdxBits ( uint8_t bcwIdx ) { return m_estWeightIdxBits[bcwIdx]; } void initWeightIdxBits (); void symmvdCheckBestMvp( PredictionUnit& pu, @@ -574,7 +574,7 @@ public: Mv curMv, RefPicList curRefList, AMVPInfo amvpInfo[2][33], - int32_t gbiIdx, + int32_t bcwIdx, Mv cMvPredSym[2], int32_t mvpIdxSym[2], Distortion& bestCost, diff --git a/source/Lib/EncoderLib/IntraSearch.cpp b/source/Lib/EncoderLib/IntraSearch.cpp index 93a1217a0c6d731afc1ec197f6a853049db28b2d..70c864fdfa4d47ed410451879b3649e2f24a7a78 100644 --- a/source/Lib/EncoderLib/IntraSearch.cpp +++ b/source/Lib/EncoderLib/IntraSearch.cpp @@ -1854,9 +1854,9 @@ void IntraSearch::PLTSearch(CodingStructure &cs, Partitioner& partitioner, Compo #endif #if JVET_P1006_PICTURE_HEADER - if (m_pcEncCfg->getReshaper() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) + if (m_pcEncCfg->getLmcs() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) #else - if (m_pcEncCfg->getReshaper() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) + if (m_pcEncCfg->getLmcs() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) #endif { cs.getPredBuf().copyFrom(cs.getOrgBuf()); @@ -1949,9 +1949,9 @@ void IntraSearch::PLTSearch(CodingStructure &cs, Partitioner& partitioner, Compo #if WCG_EXT if (m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || ( #if JVET_P1006_PICTURE_HEADER - m_pcEncCfg->getReshaper() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) + m_pcEncCfg->getLmcs() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) #else - m_pcEncCfg->getReshaper() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) + m_pcEncCfg->getLmcs() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag()))) #endif { const CPelBuf orgLuma = cs.getOrgBuf(cs.area.blocks[COMPONENT_Y]); @@ -2032,9 +2032,9 @@ void IntraSearch::preCalcPLTIndexRD(CodingStructure& cs, Partitioner& partitione { CompArea area = cu.blocks[comp]; #if JVET_P1006_PICTURE_HEADER - if (m_pcEncCfg->getReshaper() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) + if (m_pcEncCfg->getLmcs() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) #else - if (m_pcEncCfg->getReshaper() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) + if (m_pcEncCfg->getLmcs() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) #endif { orgBuf[comp] = cs.getPredBuf(area); @@ -2640,7 +2640,7 @@ void IntraSearch::preCalcPLTIndex(CodingStructure& cs, Partitioner& partitioner, for (int comp = compBegin; comp < (compBegin + numComp); comp++) { CompArea area = cu.blocks[comp]; - if (m_pcEncCfg->getReshaper() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) + if (m_pcEncCfg->getLmcs() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) { orgBuf[comp] = cs.getPredBuf(area); } @@ -2715,9 +2715,9 @@ void IntraSearch::calcPixelPred(CodingStructure& cs, Partitioner& partitioner, u { CompArea area = cu.blocks[comp]; #if JVET_P1006_PICTURE_HEADER - if (m_pcEncCfg->getReshaper() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) + if (m_pcEncCfg->getLmcs() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) #else - if (m_pcEncCfg->getReshaper() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) + if (m_pcEncCfg->getLmcs() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) #endif { orgBuf[comp] = cs.getPredBuf(area); @@ -2795,9 +2795,9 @@ void IntraSearch::derivePLTLossy(CodingStructure& cs, Partitioner& partitioner, { CompArea area = cu.blocks[comp]; #if JVET_P1006_PICTURE_HEADER - if (m_pcEncCfg->getReshaper() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) + if (m_pcEncCfg->getLmcs() && (cs.picHeader->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) #else - if (m_pcEncCfg->getReshaper() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) + if (m_pcEncCfg->getLmcs() && (cs.slice->getLmcsEnabledFlag() && m_pcReshape->getCTUFlag())) #endif { orgBuf[comp] = cs.getPredBuf(area); @@ -3739,7 +3739,7 @@ void IntraSearch::xIntraCodingTUBlock(TransformUnit &tu, const ComponentID &comp //===== update distortion ===== #if WCG_EXT - if (m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcEncCfg->getReshaper() + if (m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcEncCfg->getLmcs() #if JVET_P1006_PICTURE_HEADER && slice.getPicHeader()->getLmcsEnabledFlag() && (m_pcReshape->getCTUFlag() || (isChroma(compID) && m_pcEncCfg->getReshapeIntraCMD())))) #else @@ -5043,7 +5043,7 @@ bool IntraSearch::xRecurIntraCodingACTQT(CodingStructure &cs, Partitioner &parti piReco.reconstruct(piPred, piResi, cs.slice->clpRng(compID)); - if (m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcEncCfg->getReshaper() + if (m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcEncCfg->getLmcs() #if JVET_P1006_PICTURE_HEADER & slice.getPicHeader()->getLmcsEnabledFlag() && (m_pcReshape->getCTUFlag() || (isChroma(compID) && m_pcEncCfg->getReshapeIntraCMD())))) #else @@ -5122,7 +5122,7 @@ bool IntraSearch::xRecurIntraCodingACTQT(CodingStructure &cs, Partitioner &parti PelBuf piResi = invColorTransResidual.bufs[compID]; piReco.reconstruct(piPred, piResi, cs.slice->clpRng(compID)); - if (m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcEncCfg->getReshaper() + if (m_pcEncCfg->getLumaLevelToDeltaQPMapping().isEnabled() || (m_pcEncCfg->getLmcs() #if JVET_P1006_PICTURE_HEADER & slice.getPicHeader()->getLmcsEnabledFlag() && (m_pcReshape->getCTUFlag() || (isChroma(compID) && m_pcEncCfg->getReshapeIntraCMD())))) #else @@ -5775,14 +5775,14 @@ uint64_t IntraSearch::xFracModeBitsIntra(PredictionUnit &pu, const uint32_t &uiM { uint32_t orgMode = uiMode; - if (!pu.mhIntraFlag) + if (!pu.ciipFlag) std::swap(orgMode, pu.intraDir[chType]); m_CABACEstimator->resetBits(); if( isLuma( chType ) ) { - if (!pu.mhIntraFlag) + if (!pu.ciipFlag) { m_CABACEstimator->intra_luma_pred_mode(pu); } @@ -5792,7 +5792,7 @@ uint64_t IntraSearch::xFracModeBitsIntra(PredictionUnit &pu, const uint32_t &uiM m_CABACEstimator->intra_chroma_pred_mode( pu ); } - if ( !pu.mhIntraFlag ) + if ( !pu.ciipFlag ) std::swap(orgMode, pu.intraDir[chType]); return m_CABACEstimator->getEstFracBits(); diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index 804612f3ef9080384e1890b5029c8a08b484d099..22d51e979b6a2496e1e03238aaaf7c6fcfda0adf 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -289,7 +289,7 @@ void HLSWriter::codePPS( const PPS* pcPPS, const SPS* pcSPS ) int colIdx, rowIdx; // CTU size - required to match size in SPS - WRITE_CODE( pcPPS->getLog2CtuSize() - 5, 2, "log2_pps_ctu_size_minus5" ); + WRITE_CODE( pcPPS->getLog2CtuSize() - 5, 2, "pps_log2_ctu_size_minus5" ); // number of explicit tile columns/rows WRITE_UVLC( pcPPS->getNumExpTileColumns() - 1, "num_exp_tile_columns_minus1" ); @@ -399,7 +399,7 @@ void HLSWriter::codePPS( const PPS* pcPPS, const SPS* pcSPS ) WRITE_FLAG(pcPPS->getJointCbCrQpOffsetPresentFlag() ? 1 : 0, "pps_joint_cbcr_qp_offset_present_flag"); if (pcPPS->getJointCbCrQpOffsetPresentFlag()) { - WRITE_SVLC(pcPPS->getQpOffset(JOINT_CbCr), "pps_joint_cbcr_qp_offset"); + WRITE_SVLC(pcPPS->getQpOffset(JOINT_CbCr), "pps_joint_cbcr_qp_offset_value"); } #else WRITE_SVLC( pcPPS->getQpOffset(JOINT_CbCr), "pps_joint_cbcr_qp_offset" ); @@ -411,7 +411,7 @@ void HLSWriter::codePPS( const PPS* pcPPS, const SPS* pcSPS ) if (pcPPS->getCuChromaQpOffsetEnabledFlag()) { #if !JVET_P1006_PICTURE_HEADER - WRITE_UVLC(pcPPS->getCuChromaQpOffsetSubdiv(), "cu_chroma_qp_offset_subdiv"); + WRITE_UVLC(pcPPS->getCuChromaQpOffsetSubdiv(), "pps_cu_chroma_qp_offset_subdiv"); #endif WRITE_UVLC(pcPPS->getChromaQpOffsetListLen() - 1, "chroma_qp_offset_list_len_minus1"); /* skip zero index */ @@ -611,7 +611,7 @@ void HLSWriter::codePPS( const PPS* pcPPS, const SPS* pcSPS ) #if JVET_P1006_PICTURE_HEADER WRITE_FLAG( pcPPS->getPictureHeaderExtensionPresentFlag() ? 1 : 0, "picture_header_extension_present_flag"); #endif - WRITE_FLAG( pcPPS->getSliceHeaderExtensionPresentFlag() ? 1 : 0, "slice_segment_header_extension_present_flag"); + WRITE_FLAG( pcPPS->getSliceHeaderExtensionPresentFlag() ? 1 : 0, "slice_header_extension_present_flag"); bool pps_extension_present_flag=false; bool pps_extension_flags[NUM_PPS_EXTENSION_FLAGS]={false}; @@ -1144,14 +1144,14 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) #if JVET_P2001_SYNTAX_ORDER_MISMATCHES WRITE_FLAG( pcSPS->getUseSMVD() ? 1 : 0, "sps_smvd_enabled_flag" ); #endif - WRITE_FLAG( pcSPS->getUseDMVR() ? 1 : 0, "sps_dmvr_enable_flag" ); + WRITE_FLAG( pcSPS->getUseDMVR() ? 1 : 0, "sps_dmvr_enabled_flag" ); #if JVET_P2001_SYNTAX_ORDER_MISMATCHES && JVET_P0314_PROF_BDOF_DMVR_HLS if (pcSPS->getUseDMVR()) { WRITE_FLAG(pcSPS->getDmvrControlPresentFlag() ? 1 : 0, "sps_dmvr_pic_present_flag"); } #endif - WRITE_FLAG(pcSPS->getUseMMVD() ? 1 : 0, "sps_mmvd_enable_flag"); + WRITE_FLAG(pcSPS->getUseMMVD() ? 1 : 0, "sps_mmvd_enabled_flag"); #if JVET_P2001_SYNTAX_ORDER_MISMATCHES WRITE_FLAG( pcSPS->getUseISP() ? 1 : 0, "sps_isp_enabled_flag"); WRITE_FLAG( pcSPS->getUseMRL() ? 1 : 0, "sps_mrl_enabled_flag"); @@ -1178,11 +1178,11 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) } #endif - WRITE_FLAG( pcSPS->getUseMTS() ? 1 : 0, "mts_enabled_flag" ); + WRITE_FLAG( pcSPS->getUseMTS() ? 1 : 0, "sps_mts_enabled_flag" ); if ( pcSPS->getUseMTS() ) { - WRITE_FLAG( pcSPS->getUseIntraMTS() ? 1 : 0, "mts_intra_enabled_flag" ); - WRITE_FLAG( pcSPS->getUseInterMTS() ? 1 : 0, "mts_inter_enabled_flag" ); + WRITE_FLAG( pcSPS->getUseIntraMTS() ? 1 : 0, "sps_explicit_mts_intra_enabled_flag" ); + WRITE_FLAG( pcSPS->getUseInterMTS() ? 1 : 0, "sps_explicit_mts_inter_enabled_flag" ); } #if JVET_P2001_SYNTAX_ORDER_MISMATCHES WRITE_FLAG( pcSPS->getUseSBT() ? 1 : 0, "sps_sbt_enabled_flag"); @@ -1190,11 +1190,10 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) WRITE_FLAG( pcSPS->getUseLFNST() ? 1 : 0, "lfnst_enabled_flag" ); WRITE_FLAG( pcSPS->getUseSMVD() ? 1 : 0, "smvd_flag" ); #endif - // KJS: sps_affine_enabled_flag - WRITE_FLAG( pcSPS->getUseAffine() ? 1 : 0, "affine_flag" ); + WRITE_FLAG( pcSPS->getUseAffine() ? 1 : 0, "sps_affine_enabled_flag" ); if ( pcSPS->getUseAffine() ) { - WRITE_FLAG( pcSPS->getUseAffineType() ? 1 : 0, "affine_type_flag" ); + WRITE_FLAG( pcSPS->getUseAffineType() ? 1 : 0, "sps_affine_type_flag" ); #if JVET_P2001_SYNTAX_ORDER_MISMATCHES WRITE_FLAG( pcSPS->getAffineAmvrEnabledFlag() ? 1 : 0, "sps_affine_amvr_enabled_flag" ); WRITE_FLAG( pcSPS->getUsePROF() ? 1 : 0, "sps_affine_prof_enabled_flag" ); @@ -1210,25 +1209,25 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) #endif } #if !JVET_P2001_SYNTAX_ORDER_MISMATCHES - WRITE_FLAG( pcSPS->getUseGBi() ? 1 : 0, "gbi_flag" ); + WRITE_FLAG( pcSPS->getUseBcw() ? 1 : 0, "bcw_flag" ); #endif #if JVET_P0517_ADAPTIVE_COLOR_TRANSFORM if (pcSPS->getChromaFormatIdc() == CHROMA_444) { - WRITE_FLAG(pcSPS->getUseColorTrans() ? 1 : 0, "act_flag"); + WRITE_FLAG(pcSPS->getUseColorTrans() ? 1 : 0, "sps_act_enabled_flag"); } #endif if (pcSPS->getChromaFormatIdc() == CHROMA_444) { - WRITE_FLAG(pcSPS->getPLTMode() ? 1 : 0, "plt_flag" ); + WRITE_FLAG(pcSPS->getPLTMode() ? 1 : 0, "sps_palette_enabled_flag" ); } #if JVET_P2001_SYNTAX_ORDER_MISMATCHES - WRITE_FLAG( pcSPS->getUseGBi() ? 1 : 0, "sps_bcw_enabled_flag" ); + WRITE_FLAG( pcSPS->getUseBcw() ? 1 : 0, "sps_bcw_enabled_flag" ); #endif - WRITE_FLAG(pcSPS->getIBCFlag() ? 1 : 0, "ibc_flag"); + WRITE_FLAG(pcSPS->getIBCFlag() ? 1 : 0, "sps_ibc_enabled_flag"); // KJS: sps_ciip_enabled_flag - WRITE_FLAG( pcSPS->getUseMHIntra() ? 1 : 0, "mhintra_flag" ); + WRITE_FLAG( pcSPS->getUseCiip() ? 1 : 0, "sps_ciip_enabled_flag" ); if ( pcSPS->getUseMMVD() ) { @@ -1255,7 +1254,7 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) WRITE_FLAG(pcSPS->getBdofDmvrSlicePresentFlag() ? 1 : 0, "sps_bdof_dmvr_slice_level_present_flag"); } #endif - WRITE_FLAG( pcSPS->getUseTriangle() ? 1: 0, "triangle_flag" ); + WRITE_FLAG( pcSPS->getUseTriangle() ? 1: 0, "sps_triangle_enabled_flag" ); #if !JVET_P2001_SYNTAX_ORDER_MISMATCHES WRITE_FLAG( pcSPS->getUseMIP() ? 1: 0, "sps_mip_flag" ); @@ -1268,8 +1267,7 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) WRITE_FLAG(pcSPS->getMaxSbtSize() == 64 ? 1 : 0, "max_sbt_size_64_flag"); } #endif - // KJS: not in draft yet - WRITE_FLAG(pcSPS->getUseReshaper() ? 1 : 0, "sps_reshaper_enable_flag"); + WRITE_FLAG(pcSPS->getUseLmcs() ? 1 : 0, "sps_lmcs_enable_flag"); #if JVET_P2001_SYNTAX_ORDER_MISMATCHES WRITE_FLAG( pcSPS->getUseLFNST() ? 1 : 0, "sps_lfnst_enabled_flag" ); #else @@ -1294,7 +1292,7 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) // KJS: remove scaling lists? - WRITE_FLAG( pcSPS->getScalingListFlag() ? 1 : 0, "scaling_list_enabled_flag" ); + WRITE_FLAG( pcSPS->getScalingListFlag() ? 1 : 0, "sps_scaling_list_enabled_flag" ); #if JVET_P1006_PICTURE_HEADER WRITE_FLAG( pcSPS->getLoopFilterAcrossVirtualBoundariesDisabledFlag(), "sps_loop_filter_across_virtual_boundaries_disabled_present_flag" ); @@ -1957,7 +1955,7 @@ void HLSWriter::codePictureHeader( PicHeader* picHeader ) } // luma mapping / chroma scaling controls - if (sps->getUseReshaper()) + if (sps->getUseLmcs()) { WRITE_FLAG(picHeader->getLmcsEnabledFlag(), "pic_lmcs_enabled_flag"); if (picHeader->getLmcsEnabledFlag()) @@ -2587,7 +2585,7 @@ void HLSWriter::codeSliceHeader ( Slice* pcSlice ) WRITE_FLAG(pcSlice->getLFCrossSliceBoundaryFlag()?1:0, "slice_loop_filter_across_slices_enabled_flag"); } - if (pcSlice->getSPS()->getUseReshaper()) + if (pcSlice->getSPS()->getUseLmcs()) { WRITE_FLAG( pcSlice->getLmcsEnabledFlag()? 1 : 0, "slice_lmcs_enabled_flag"); if (pcSlice->getLmcsEnabledFlag()) @@ -2642,9 +2640,9 @@ void HLSWriter::codeConstraintInfo ( const ConstraintInfo* cinfo ) WRITE_FLAG(cinfo->getNoMtsConstraintFlag() ? 1 : 0, "no_mts_constraint_flag"); WRITE_FLAG(cinfo->getNoSbtConstraintFlag() ? 1 : 0, "no_sbt_constraint_flag"); WRITE_FLAG(cinfo->getNoAffineMotionConstraintFlag() ? 1 : 0, "no_affine_motion_constraint_flag"); - WRITE_FLAG(cinfo->getNoGbiConstraintFlag() ? 1 : 0, "no_gbi_constraint_flag"); + WRITE_FLAG(cinfo->getNoBcwConstraintFlag() ? 1 : 0, "no_bcw_constraint_flag"); WRITE_FLAG(cinfo->getNoIbcConstraintFlag() ? 1 : 0, "no_ibc_constraint_flag"); - WRITE_FLAG(cinfo->getNoMhIntraConstraintFlag() ? 1 : 0, "no_mh_intra_constraint_flag"); + WRITE_FLAG(cinfo->getNoCiipConstraintFlag() ? 1 : 0, "no_ciip_constraint_flag"); WRITE_FLAG(cinfo->getNoFPelMmvdConstraintFlag() ? 1 : 0, "no_fpel_mmvd_constraint_flag"); WRITE_FLAG(cinfo->getNoTriangleConstraintFlag() ? 1 : 0, "no_triangle_constraint_flag"); WRITE_FLAG(cinfo->getNoLadfConstraintFlag() ? 1 : 0, "no_ladf_constraint_flag");