diff --git a/cfg/encoder_intra_vtm.cfg b/cfg/encoder_intra_vtm.cfg index 85b43f9520841c7f30e4dd9b3135e1c11b149606..685d9d1ff5d0a8f5d25203532d6f70cca990cb31 100644 --- a/cfg/encoder_intra_vtm.cfg +++ b/cfg/encoder_intra_vtm.cfg @@ -82,7 +82,7 @@ SBT : 1 LFNST : 1 ISP : 1 Affine : 1 -SubPuMvp : 1 +SbTMVP : 1 MaxNumMergeCand : 6 LMChroma : 1 # use CCLM only DepQuant : 1 diff --git a/cfg/encoder_lowdelay_P_vtm.cfg b/cfg/encoder_lowdelay_P_vtm.cfg index f98be307548698dc7b7f7a8038db2737d07f641a..1a78ff8bd9665e68813e1367a7c94a062917f9fa 100644 --- a/cfg/encoder_lowdelay_P_vtm.cfg +++ b/cfg/encoder_lowdelay_P_vtm.cfg @@ -105,7 +105,7 @@ MTSInterMaxCand : 4 SBT : 1 ISP : 1 Affine : 1 -SubPuMvp : 1 +SbTMVP : 1 MaxNumMergeCand : 6 LMChroma : 1 # use CCLM only DepQuant : 1 diff --git a/cfg/encoder_lowdelay_vtm.cfg b/cfg/encoder_lowdelay_vtm.cfg index e4e74010c35366eae19fd4bf294916483ab3aefe..e8b3e708a0fceb7bd262d2c4b840bc7774fc8d14 100644 --- a/cfg/encoder_lowdelay_vtm.cfg +++ b/cfg/encoder_lowdelay_vtm.cfg @@ -106,7 +106,7 @@ SBT : 1 ISP : 1 MMVD : 1 Affine : 1 -SubPuMvp : 1 +SbTMVP : 1 MaxNumMergeCand : 6 LMChroma : 1 # use CCLM only DepQuant : 1 diff --git a/cfg/encoder_randomaccess_vtm.cfg b/cfg/encoder_randomaccess_vtm.cfg index 7e4ff3a5c2b7fe8d0f113c09ea0fa528a9d4871a..745812f752d34a7393da1cc1d0f41933c03e5428 100644 --- a/cfg/encoder_randomaccess_vtm.cfg +++ b/cfg/encoder_randomaccess_vtm.cfg @@ -118,7 +118,7 @@ LFNST : 1 ISP : 1 MMVD : 1 Affine : 1 -SubPuMvp : 1 +SbTMVP : 1 MaxNumMergeCand : 6 LMChroma : 1 # use CCLM only DepQuant : 1 diff --git a/cfg/encoder_randomaccess_vtm_gop32.cfg b/cfg/encoder_randomaccess_vtm_gop32.cfg index 8ce203d4f94a3c04b6474128eafb1d6558dfd3a8..148812b1f161953370baf3d6f7336c24ae3bf595 100644 --- a/cfg/encoder_randomaccess_vtm_gop32.cfg +++ b/cfg/encoder_randomaccess_vtm_gop32.cfg @@ -134,7 +134,7 @@ LFNST : 1 ISP : 1 MMVD : 1 Affine : 1 -SubPuMvp : 1 +SbTMVP : 1 MaxNumMergeCand : 6 LMChroma : 1 # use CCLM only DepQuant : 1 diff --git a/doc/software-manual.tex b/doc/software-manual.tex index ce3a86419367867f2cd7bb0b0ada75ff01f62442..e2dbefb6a4da155cef2574c85571dcd90070821b 100644 --- a/doc/software-manual.tex +++ b/doc/software-manual.tex @@ -2766,6 +2766,12 @@ Controls the temporal motion vector prediction mode. \end{tabular} \\ +\Option{SbTMVP} & +%\ShortOption{\None} & +\Default{false} & +Enables Subblock Temporal Motion Vector Prediction mode. +\\ + \Option{SliceLevelRpl} & %\ShortOption{\None} & \Default{true} & diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp index 8255d06f0ece9cda6d76e26262d45ea43e09f83a..efcfbc0a05e0a72209b3b3a8b04be2db554cc498 100644 --- a/source/App/EncoderApp/EncApp.cpp +++ b/source/App/EncoderApp/EncApp.cpp @@ -307,7 +307,8 @@ void EncApp::xInitLibCfg() CHECK(m_bNoTemporalMvpConstraintFlag && m_TMVPModeId, "Temporal MVP shall be deactivated when m_bNoTemporalMvpConstraintFlag is equal to 1"); m_cEncLib.setNoSbtmvpConstraintFlag(m_bNoSbtmvpConstraintFlag); - CHECK(m_bNoSbtmvpConstraintFlag && m_SubPuMvpMode, "SbTMVP shall be deactivated when m_bNoSbtmvpConstraintFlag is equal to 1"); + CHECK(m_bNoSbtmvpConstraintFlag && m_sbTmvpEnableFlag, + "SbTMVP shall be deactivated when m_bNoSbtmvpConstraintFlag is equal to 1"); m_cEncLib.setNoAmvrConstraintFlag(m_bNoAmvrConstraintFlag); CHECK(m_bNoAmvrConstraintFlag && (m_ImvMode != IMV_OFF || m_AffineAmvr), "AMVR shall be deactivated when m_bNoAmvrConstraintFlag is equal to 1"); @@ -611,7 +612,7 @@ void EncApp::xInitLibCfg() m_cEncLib.setDualITree ( m_dualTree ); m_cEncLib.setLFNST ( m_LFNST ); m_cEncLib.setUseFastLFNST ( m_useFastLFNST ); - m_cEncLib.setSubPuMvpMode ( m_SubPuMvpMode ); + m_cEncLib.setSbTmvpEnabledFlag(m_sbTmvpEnableFlag); m_cEncLib.setAffine ( m_Affine ); m_cEncLib.setAffineType ( m_AffineType ); m_cEncLib.setPROF ( m_PROF ); diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp index c08061e802b92600dc5428c3cb8bda18708f0b4e..0b71aa07e0fbe2699bce4df329df7ff5281ea339 100644 --- a/source/App/EncoderApp/EncAppCfg.cpp +++ b/source/App/EncoderApp/EncAppCfg.cpp @@ -676,6 +676,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) bool sdr = false; + // clang-format off po::Options opts; opts.addOptions() ("help", do_help, false, "this help text") @@ -873,7 +874,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("DualITree", m_dualTree, false, "Use separate QTBT trees for intra slice luma and chroma channel types") ( "LFNST", m_LFNST, false, "Enable LFNST (0:off, 1:on) [default: off]" ) ( "FastLFNST", m_useFastLFNST, false, "Fast methods for LFNST" ) - ("SubPuMvp", m_SubPuMvpMode, 0, "Enable Sub-PU temporal motion vector prediction (0:off, 1:ATMVP, 2:STMVP, 3:ATMVP+STMVP) [default: off]") + ("SbTMVP", m_sbTmvpEnableFlag, false, "Enable Subblock Temporal Motion Vector Prediction (0: off, 1: on) [default: off]") ("MMVD", m_MMVD, true, "Enable Merge mode with Motion Vector Difference (0:off, 1:on) [default: 1]") ("Affine", m_Affine, false, "Enable affine prediction (0:off, 1:on) [default: off]") ("AffineType", m_AffineType, true, "Enable affine type prediction (0:off, 1:on) [default: on]" ) @@ -1397,6 +1398,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("TemporalFilterFutureReference", m_gopBasedTemporalFilterFutureReference, true, "Enable referencing of future frames in the GOP based temporal filter. This is typically disabled for Low Delay configurations.") ("TemporalFilterStrengthFrame*", m_gopBasedTemporalFilterStrengths, std::map<int, double>(), "Strength for every * frame in GOP based temporal filter, where * is an integer." " E.g. --TemporalFilterStrengthFrame8 0.95 will enable GOP based temporal filter at every 8th frame with strength 0.95"); + // clang-format on #if EXTENSION_360_VIDEO TExt360AppEncCfg::TExt360AppEncCfgContext ext360CfgContext; @@ -2605,20 +2607,6 @@ bool EncAppCfg::xCheckParameter() xConfirmPara ( m_level==Level::LEVEL15_5 && !m_onePictureOnlyConstraintFlag, "Currently the only profiles that support level 15.5 are still pictures, which require onePictureOnlyConstraintFlag to be 1" ); } - if( m_SubPuMvpMode == 3 && m_maxNumMergeCand < 7 ) - { - msg( WARNING, "****************************************************************************\n" ); - msg( WARNING, "** WARNING: Allowing less than 7 merge candidates, although both **\n" ); - msg( WARNING, "** advanced sup-pu temporal merging modes are enabled. **\n" ); - msg( WARNING, "****************************************************************************\n" ); - } - else if( m_SubPuMvpMode != 0 && m_maxNumMergeCand < 6 ) - { - msg( WARNING, "****************************************************************************\n" ); - msg( WARNING, "** WARNING: Allowing less than 6 merge candidates, although **\n" ); - msg( WARNING, "** an advanced sup-pu temporal merging mode is enabled. **\n" ); - msg( WARNING, "****************************************************************************\n" ); - } xConfirmPara( m_iQP < -6 * (m_internalBitDepth[CHANNEL_TYPE_LUMA] - 8) || m_iQP > MAX_QP, "QP exceeds supported range (-QpBDOffsety to 63)" ); #if W0038_DB_OPT xConfirmPara( m_deblockingFilterMetric!=0 && (m_bLoopFilterDisable || m_loopFilterOffsetInPPS), "If DeblockingFilterMetric is non-zero then both LoopFilterDisable and LoopFilterOffsetInPPS must be 0"); @@ -2779,11 +2767,12 @@ bool EncAppCfg::xCheckParameter() xConfirmPara( 0 < m_maxNumGeoCand && m_maxNumGeoCand < 2, "MaxNumGeoCand must be no less than 2 unless MaxNumGeoCand is 0." ); xConfirmPara( m_maxNumIBCMergeCand < 1, "MaxNumIBCMergeCand must be 1 or greater." ); xConfirmPara( m_maxNumIBCMergeCand > IBC_MRG_MAX_NUM_CANDS, "MaxNumIBCMergeCand must be no more than IBC_MRG_MAX_NUM_CANDS." ); - xConfirmPara( m_maxNumAffineMergeCand < (m_SubPuMvpMode ? 1 : 0), "MaxNumAffineMergeCand must be greater or equal to SubPuMvp." ); + xConfirmPara(m_maxNumAffineMergeCand < (m_sbTmvpEnableFlag ? 1 : 0), + "MaxNumAffineMergeCand must be greater than 0 when SbTMVP is enabled"); xConfirmPara( m_maxNumAffineMergeCand > AFFINE_MRG_MAX_NUM_CANDS, "MaxNumAffineMergeCand must be no more than AFFINE_MRG_MAX_NUM_CANDS." ); if ( m_Affine == 0 ) { - m_maxNumAffineMergeCand = m_SubPuMvpMode; + m_maxNumAffineMergeCand = m_sbTmvpEnableFlag ? 1 : 0; if (m_PROF) msg(WARNING, "PROF is forcefully disabled when Affine is off \n"); m_PROF = false; } @@ -3847,7 +3836,7 @@ void EncAppCfg::xPrintParameter() msg( VERBOSE, "AffineType:%d ", m_AffineType ); } msg(VERBOSE, "PROF:%d ", m_PROF); - msg(VERBOSE, "SubPuMvp:%d+%d ", m_SubPuMvpMode & 1, (m_SubPuMvpMode & 2) == 2); + msg(VERBOSE, "SbTMVP:%d ", m_sbTmvpEnableFlag); msg( VERBOSE, "DualITree:%d ", m_dualTree ); msg( VERBOSE, "IMV:%d ", m_ImvMode ); msg( VERBOSE, "BIO:%d ", m_BIO ); diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h index 8124d782fa2abc2ba5e51b1139834b92ead9afa6..810978a126af34b91f92964c8efa519db8acbd87 100644 --- a/source/App/EncoderApp/EncAppCfg.h +++ b/source/App/EncoderApp/EncAppCfg.h @@ -307,7 +307,7 @@ protected: bool m_dualTree; bool m_LFNST; bool m_useFastLFNST; - int m_SubPuMvpMode; + bool m_sbTmvpEnableFlag; bool m_Affine; bool m_AffineType; bool m_PROF; diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h index fc74bdd09a1ba5aa3491a363bf7315ee82b10475..68f7afa7b576039519f42e58d96dbba5079b16e3 100644 --- a/source/Lib/CommonLib/Slice.h +++ b/source/Lib/CommonLib/Slice.h @@ -1748,8 +1748,8 @@ void setCCALFEnabledFlag( bool b ) void setJointCbCrEnabledFlag(bool bVal) { m_JointCbCrEnabledFlag = bVal; } bool getJointCbCrEnabledFlag() const { return m_JointCbCrEnabledFlag; } - bool getSBTMVPEnabledFlag() const { return m_sbtmvpEnabledFlag; } - void setSBTMVPEnabledFlag(bool b) { m_sbtmvpEnabledFlag = b; } + bool getSbTMVPEnabledFlag() const { return m_sbtmvpEnabledFlag; } + void setSbTMVPEnabledFlag(bool b) { m_sbtmvpEnabledFlag = b; } void setBDOFEnabledFlag(bool b) { m_bdofEnabledFlag = b; } bool getBDOFEnabledFlag() const { return m_bdofEnabledFlag; } diff --git a/source/Lib/CommonLib/UnitTools.cpp b/source/Lib/CommonLib/UnitTools.cpp index 8e11c1ec0e08881003b7b96e28c32a8e24e012b5..ed3660125fe32c33194ca3a59b44cf4c1f53ebdc 100644 --- a/source/Lib/CommonLib/UnitTools.cpp +++ b/source/Lib/CommonLib/UnitTools.cpp @@ -2623,9 +2623,10 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx affMrgCtx.numValidMergeCand = 0; affMrgCtx.maxNumMergeCand = maxNumAffineMergeCand; - bool enableSubPuMvp = slice.getSPS()->getSBTMVPEnabledFlag() && !(slice.getPOC() == slice.getRefPic(REF_PIC_LIST_0, 0)->getPOC() && slice.isIRAP()); + bool sbTmvpEnableFlag = slice.getSPS()->getSbTMVPEnabledFlag() + && !(slice.getPOC() == slice.getRefPic(REF_PIC_LIST_0, 0)->getPOC() && slice.isIRAP()); bool isAvailableSubPu = false; - if ( enableSubPuMvp && slice.getPicHeader()->getEnableTMVPFlag() ) + if (sbTmvpEnableFlag && slice.getPicHeader()->getEnableTMVPFlag()) { MergeCtx mrgCtx = *affMrgCtx.mrgCtx; bool tmpLICFlag = false; diff --git a/source/Lib/DecoderLib/DecCu.cpp b/source/Lib/DecoderLib/DecCu.cpp index 7f73d66b7d08bc12eec65599022c599c199f8d86..3276ad8c714544c54bf90a6a49dc556d90ade5e1 100644 --- a/source/Lib/DecoderLib/DecCu.cpp +++ b/source/Lib/DecoderLib/DecCu.cpp @@ -907,7 +907,7 @@ void DecCu::xDeriveCUMV( CodingUnit &cu ) if (pu.mmvdMergeFlag || pu.cu->mmvdSkip) { CHECK(pu.ciipFlag == true, "invalid Ciip"); - if (pu.cs->sps->getSBTMVPEnabledFlag()) + if (pu.cs->sps->getSbTMVPEnabledFlag()) { Size bufSize = g_miScaling.scale(pu.lumaSize()); mrgCtx.subPuMvpMiBuf = MotionBuf(m_SubPuMiBuf, bufSize); @@ -934,7 +934,7 @@ void DecCu::xDeriveCUMV( CodingUnit &cu ) if( pu.cu->affine ) { AffineMergeCtx affineMergeCtx; - if ( pu.cs->sps->getSBTMVPEnabledFlag() ) + if (pu.cs->sps->getSbTMVPEnabledFlag()) { Size bufSize = g_miScaling.scale( pu.lumaSize() ); mrgCtx.subPuMvpMiBuf = MotionBuf( m_SubPuMiBuf, bufSize ); diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 2187ff5ed4d00d73a1729c15491a6a198a4fc726..f26e6095f1015ff224ad7bfd3fd6e8c1ee0b343a 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -1953,11 +1953,12 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) if ( pcSPS->getSPSTemporalMVPEnabledFlag() ) { - READ_FLAG( uiCode, "sps_sbtmvp_enabled_flag" ); pcSPS->setSBTMVPEnabledFlag ( uiCode != 0 ); + READ_FLAG(uiCode, "sps_sbtmvp_enabled_flag"); + pcSPS->setSbTMVPEnabledFlag(uiCode != 0); } else { - pcSPS->setSBTMVPEnabledFlag(false); + pcSPS->setSbTMVPEnabledFlag(false); } READ_FLAG( uiCode, "sps_amvr_enabled_flag" ); pcSPS->setAMVREnabledFlag ( uiCode != 0 ); @@ -1997,7 +1998,9 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) if ( pcSPS->getUseAffine() ) { READ_UVLC(uiCode, "five_minus_max_num_subblock_merge_cand"); - CHECK(uiCode > 5 - (pcSPS->getSBTMVPEnabledFlag() ? 1 : 0), "The value of five_minus_max_num_subblock_merge_cand shall be in the range of 0 to 5 - sps_sbtmvp_enabled_flag"); + CHECK( + uiCode > 5 - (pcSPS->getSbTMVPEnabledFlag() ? 1 : 0), + "The value of five_minus_max_num_subblock_merge_cand shall be in the range of 0 to 5 - sps_sbtmvp_enabled_flag"); CHECK(AFFINE_MRG_MAX_NUM_CANDS < uiCode, "The value of five_minus_max_num_subblock_merge_cand shall be in the range of 0 to 5 - sps_sbtmvp_enabled_flag"); pcSPS->setMaxNumAffineMergeCand(AFFINE_MRG_MAX_NUM_CANDS - uiCode); READ_FLAG( uiCode, "sps_affine_type_flag" ); pcSPS->setUseAffineType ( uiCode != 0 ); @@ -3240,7 +3243,7 @@ void HLSyntaxReader::parsePictureHeader( PicHeader* picHeader, ParameterSetManag } else { - picHeader->setMaxNumAffineMergeCand( sps->getSBTMVPEnabledFlag() && picHeader->getEnableTMVPFlag() ); + picHeader->setMaxNumAffineMergeCand(sps->getSbTMVPEnabledFlag() && picHeader->getEnableTMVPFlag()); } // full-pel MMVD flag diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h index f004c8078d394a25a11206eecf65e570aea74613..f432632772a57fdd75344d3ddd3d423d83fa1746 100644 --- a/source/Lib/EncoderLib/EncCfg.h +++ b/source/Lib/EncoderLib/EncCfg.h @@ -321,7 +321,7 @@ protected: bool m_LFNST; bool m_useFastLFNST; - int m_SubPuMvpMode; + bool m_sbTmvpEnableFlag; bool m_Affine; bool m_AffineType; bool m_PROF; @@ -1037,8 +1037,7 @@ public: void setVerCollocatedChromaFlag( bool b ) { m_verCollocatedChromaFlag = b; } bool getVerCollocatedChromaFlag() const { return m_verCollocatedChromaFlag; } - void setSubPuMvpMode(int n) { m_SubPuMvpMode = n; } - bool getSubPuMvpMode() const { return m_SubPuMvpMode; } + void setSbTmvpEnabledFlag(bool val) { m_sbTmvpEnableFlag = val; } void setAffine ( bool b ) { m_Affine = b; } bool getAffine () const { return m_Affine; } diff --git a/source/Lib/EncoderLib/EncCu.cpp b/source/Lib/EncoderLib/EncCu.cpp index 53387aaf2df71f8f356ccdb95eddf12ec84745d6..7997786deb965e2bc12ef687b1ebeb36bea43dce 100644 --- a/source/Lib/EncoderLib/EncCu.cpp +++ b/source/Lib/EncoderLib/EncCu.cpp @@ -2252,7 +2252,7 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *& MergeCtx mergeCtx; const SPS &sps = *tempCS->sps; - if( sps.getSBTMVPEnabledFlag() ) + if (sps.getSbTMVPEnabledFlag()) { Size bufSize = g_miScaling.scale( tempCS->area.lumaSize() ); mergeCtx.subPuMvpMiBuf = MotionBuf( m_SubPuMiBuf, bufSize ); @@ -2821,7 +2821,7 @@ void EncCu::xCheckRDCostMergeGeo2Nx2N(CodingStructure *&tempCS, CodingStructure MergeCtx mergeCtx; const SPS &sps = *tempCS->sps; - if (sps.getSBTMVPEnabledFlag()) + if (sps.getSbTMVPEnabledFlag()) { Size bufSize = g_miScaling.scale(tempCS->area.lumaSize()); mergeCtx.subPuMvpMiBuf = MotionBuf(m_SubPuMiBuf, bufSize); @@ -3118,7 +3118,7 @@ void EncCu::xCheckRDCostAffineMerge2Nx2N( CodingStructure *&tempCS, CodingStruct setAFFBestSATDCost(MAX_DOUBLE); MergeCtx mrgCtx; - if ( sps.getSBTMVPEnabledFlag() ) + if (sps.getSbTMVPEnabledFlag()) { Size bufSize = g_miScaling.scale( tempCS->area.lumaSize() ); mrgCtx.subPuMvpMiBuf = MotionBuf( m_SubPuMiBuf, bufSize ); @@ -3390,8 +3390,7 @@ void EncCu::xCheckRDCostIBCModeMerge2Nx2N(CodingStructure *&tempCS, CodingStruct tempCS->initStructData(encTestMode.qp); MergeCtx mergeCtx; - - if (sps.getSBTMVPEnabledFlag()) + if (sps.getSbTMVPEnabledFlag()) { Size bufSize = g_miScaling.scale(tempCS->area.lumaSize()); mergeCtx.subPuMvpMiBuf = MotionBuf(m_SubPuMiBuf, bufSize); diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp index 66b948eb7e205c200559424ed97003695454f06e..2f1662b125c67d98464c505ab2bf7970296487e1 100644 --- a/source/Lib/EncoderLib/EncLib.cpp +++ b/source/Lib/EncoderLib/EncLib.cpp @@ -1232,7 +1232,7 @@ void EncLib::xInitSPS( SPS& sps ) sps.setIDRRefParamListPresent ( m_idrRefParamList ); sps.setUseDualITree ( m_dualITree ); sps.setUseLFNST ( m_LFNST ); - sps.setSBTMVPEnabledFlag ( m_SubPuMvpMode ); + sps.setSbTMVPEnabledFlag(m_sbTmvpEnableFlag); sps.setAMVREnabledFlag ( m_ImvMode != IMV_OFF ); sps.setBDOFEnabledFlag ( m_BIO ); sps.setMaxNumMergeCand(getMaxNumMergeCand()); diff --git a/source/Lib/EncoderLib/EncModeCtrl.cpp b/source/Lib/EncoderLib/EncModeCtrl.cpp index dfc3cdd4fbc5a75872cd82cb287ca3d4df819de9..85850014726ae9484f59d198da580a868100ac79 100644 --- a/source/Lib/EncoderLib/EncModeCtrl.cpp +++ b/source/Lib/EncoderLib/EncModeCtrl.cpp @@ -1369,7 +1369,7 @@ void EncModeCtrlMTnoRQT::initCULevel( Partitioner &partitioner, const CodingStru m_ComprCUCtxList.back().testModes.push_back( { ETM_MERGE_GEO, ETO_STANDARD, qp } ); } m_ComprCUCtxList.back().testModes.push_back( { ETM_MERGE_SKIP, ETO_STANDARD, qp } ); - if ( cs.sps->getUseAffine() || cs.sps->getSBTMVPEnabledFlag() ) + if (cs.sps->getUseAffine() || cs.sps->getSbTMVPEnabledFlag()) { m_ComprCUCtxList.back().testModes.push_back( { ETM_AFFINE, ETO_STANDARD, qp } ); } @@ -1383,7 +1383,7 @@ void EncModeCtrlMTnoRQT::initCULevel( Partitioner &partitioner, const CodingStru m_ComprCUCtxList.back().testModes.push_back( { ETM_MERGE_GEO, ETO_STANDARD, qp } ); } m_ComprCUCtxList.back().testModes.push_back( { ETM_MERGE_SKIP, ETO_STANDARD, qp } ); - if ( cs.sps->getUseAffine() || cs.sps->getSBTMVPEnabledFlag() ) + if (cs.sps->getUseAffine() || cs.sps->getSbTMVPEnabledFlag()) { m_ComprCUCtxList.back().testModes.push_back( { ETM_AFFINE, ETO_STANDARD, qp } ); } diff --git a/source/Lib/EncoderLib/InterSearch.cpp b/source/Lib/EncoderLib/InterSearch.cpp index e49c6c51be895fddcb1dc94a2aa39d806f258752..c2290f50f73abcf4eb4fd6cad557128fef44b3c4 100644 --- a/source/Lib/EncoderLib/InterSearch.cpp +++ b/source/Lib/EncoderLib/InterSearch.cpp @@ -2321,7 +2321,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner) CHECK(pu.cu != &cu, "PU is contained in another CU"); - if (cu.cs->sps->getSBTMVPEnabledFlag()) + if (cu.cs->sps->getSbTMVPEnabledFlag()) { Size bufSize = g_miScaling.scale(pu.lumaSize()); mergeCtx.subPuMvpMiBuf = MotionBuf(m_SubPuMiBuf, bufSize); diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index 40885b813cb0ed0f83c9f908d05ba063308e0fa4..a5cd4b24e01117058820828bfe375d94b25ca736 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -1156,7 +1156,7 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) if ( pcSPS->getSPSTemporalMVPEnabledFlag() ) { - WRITE_FLAG( pcSPS->getSBTMVPEnabledFlag() ? 1 : 0, "sps_sbtmvp_enabled_flag"); + WRITE_FLAG(pcSPS->getSbTMVPEnabledFlag() ? 1 : 0, "sps_sbtmvp_enabled_flag"); } WRITE_FLAG( pcSPS->getAMVREnabledFlag() ? 1 : 0, "sps_amvr_enabled_flag" ); @@ -2033,7 +2033,7 @@ WRITE_FLAG(picHeader->getGdrOrIrapPicFlag(), "gdr_or_irap_pic_flag"); } else { - picHeader->setMaxNumAffineMergeCand( sps->getSBTMVPEnabledFlag() && picHeader->getEnableTMVPFlag() ); + picHeader->setMaxNumAffineMergeCand(sps->getSbTMVPEnabledFlag() && picHeader->getEnableTMVPFlag()); } // full-pel MMVD flag