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 01ab3f1fb66ea26b34e2c5d87ccf573fa2a0acd7..31f9925e2e6d438ab64e403254c2147a920813c6 100644
--- a/source/Lib/EncoderLib/VLCWriter.cpp
+++ b/source/Lib/EncoderLib/VLCWriter.cpp
@@ -1157,7 +1157,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" );
@@ -2035,7 +2035,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