From 0783ed2d06991e440c1754283c4778dedf1d5da8 Mon Sep 17 00:00:00 2001
From: Xiang Li <xlxiangli@tencent.com>
Date: Mon, 24 Dec 2018 15:29:22 -0800
Subject: [PATCH] Use coan to remove REMOVE_MV_ADAPT_PREC

---
 source/App/EncoderApp/EncApp.cpp              |   3 -
 source/App/EncoderApp/EncAppCfg.cpp           |  16 --
 source/App/EncoderApp/EncAppCfg.h             |   3 -
 source/Lib/CommonLib/ContextModelling.cpp     |  65 -------
 source/Lib/CommonLib/InterPrediction.cpp      |  17 --
 source/Lib/CommonLib/LoopFilter.cpp           |  20 --
 source/Lib/CommonLib/Mv.cpp                   |   9 -
 source/Lib/CommonLib/Mv.h                     | 104 ----------
 source/Lib/CommonLib/RdCost.h                 |   6 -
 source/Lib/CommonLib/Slice.cpp                |   3 -
 source/Lib/CommonLib/Slice.h                  |   7 -
 source/Lib/CommonLib/TypeDef.h                |   1 -
 source/Lib/CommonLib/UnitTools.cpp            | 178 ------------------
 source/Lib/CommonLib/UnitTools.h              |   2 -
 .../Lib/CommonLib/dtrace_blockstatistics.cpp  |  56 ------
 source/Lib/DecoderLib/DecCu.cpp               |  16 --
 source/Lib/DecoderLib/VLCReader.cpp           |   3 -
 source/Lib/EncoderLib/CABACWriter.cpp         |   9 -
 source/Lib/EncoderLib/EncCfg.h                |   7 -
 source/Lib/EncoderLib/EncLib.cpp              |   3 -
 source/Lib/EncoderLib/InterSearch.cpp         | 161 ----------------
 source/Lib/EncoderLib/VLCWriter.cpp           |   3 -
 22 files changed, 692 deletions(-)

diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp
index ceddaf7db..297cd18ad 100644
--- a/source/App/EncoderApp/EncApp.cpp
+++ b/source/App/EncoderApp/EncApp.cpp
@@ -225,9 +225,6 @@ void EncApp::xInitLibCfg()
 #endif 
   m_cEncLib.setAffine                                            ( m_Affine );
   m_cEncLib.setAffineType                                        ( m_AffineType );
-#if !REMOVE_MV_ADAPT_PREC
-  m_cEncLib.setHighPrecisionMv                                   (m_highPrecisionMv);
-#endif
 #if JVET_L0256_BIO
   m_cEncLib.setBIO                                               (m_BIO);
 #endif
diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp
index bf8b61851..4a9b98357 100644
--- a/source/App/EncoderApp/EncAppCfg.cpp
+++ b/source/App/EncoderApp/EncAppCfg.cpp
@@ -817,12 +817,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
   ("SubPuMvp",                                       m_SubPuMvpMode,                                       0, "Enable Sub-PU temporal motion vector prediction (0:off, 1:ATMVP, 2:STMVP, 3:ATMVP+STMVP)  [default: off]")
 #if !JVET_L0198_L0468_L0104_ATMVP_8x8SUB_BLOCK
   ("SubPuMvpLog2Size",                               m_SubPuMvpLog2Size,                                   2u, "Sub-PU TMVP size index: 2^n")
-#endif
-#if !REMOVE_MV_ADAPT_PREC 
-  ("HighPrecMv",                                     m_highPrecisionMv,                                false, "High precision motion vectors for temporal merging (0:off, 1:on)  [default: off]")
-#endif
-#if !REMOVE_MV_ADAPT_PREC 
-  ("HighPrecMv",                                     m_highPrecisionMv,                                false, "High precision motion vectors for temporal merging (0:off, 1:on)  [default: off]")
 #endif
   ("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]" )
@@ -1941,10 +1935,6 @@ bool EncAppCfg::xCheckParameter()
     xConfirmPara( m_LMChroma, "LMChroma only allowed with NEXT profile" );
     xConfirmPara( m_LargeCTU, "Large CTU is only allowed with NEXT profile" );
     xConfirmPara( m_SubPuMvpMode != 0, "Sub-PU motion vector prediction is only allowed with NEXT profile" );
-#if !REMOVE_MV_ADAPT_PREC
-    xConfirmPara( m_highPrecisionMv, "High precision MV for temporal merging can only be used with NEXT profile" );
-    xConfirmPara( m_Affine, "Affine is only allowed with NEXT profile" );
-#endif
 #if JVET_L0256_BIO
     xConfirmPara( m_BIO, "BIO only allowed with NEXT profile" );
 #endif
@@ -1984,9 +1974,6 @@ bool EncAppCfg::xCheckParameter()
 #endif
     }
 
-#if !REMOVE_MV_ADAPT_PREC 
-    xConfirmPara(m_Affine && !m_highPrecisionMv, "Affine is not yet implemented for HighPrecMv off.");
-#endif
   }
 
 #if JVET_L0231_WRAPAROUND
@@ -3147,9 +3134,6 @@ void EncAppCfg::xPrintParameter()
     msg( VERBOSE, "DualITree:%d ", m_dualTree );
     msg( VERBOSE, "LargeCTU:%d ", m_LargeCTU );
     msg( VERBOSE, "IMV:%d ", m_ImvMode );
-#if !REMOVE_MV_ADAPT_PREC
-    msg(VERBOSE, "HighPrecMv:%d ", m_highPrecisionMv);
-#endif
 #if JVET_L0256_BIO
     msg( VERBOSE, "BIO:%d ", m_BIO );
 #endif
diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h
index 6737b1356..dc36ab66c 100644
--- a/source/App/EncoderApp/EncAppCfg.h
+++ b/source/App/EncoderApp/EncAppCfg.h
@@ -212,9 +212,6 @@ protected:
 #endif 
   bool      m_Affine;
   bool      m_AffineType;
-#if !REMOVE_MV_ADAPT_PREC
-  bool      m_highPrecisionMv;
-#endif
 #if JVET_L0256_BIO
   bool      m_BIO;
 #endif
diff --git a/source/Lib/CommonLib/ContextModelling.cpp b/source/Lib/CommonLib/ContextModelling.cpp
index f61b32e7d..6acb2c27c 100644
--- a/source/Lib/CommonLib/ContextModelling.cpp
+++ b/source/Lib/CommonLib/ContextModelling.cpp
@@ -403,10 +403,6 @@ void MergeCtx::setMmvdMergeCandiInfo(PredictionUnit& pu, int candIdx)
   fPosPosition = tempIdx - fPosStep * (4);
 
   const int offset = refMvdCands[fPosStep];
-#if !REMOVE_MV_ADAPT_PREC
-  const int highPrecList0 = mmvdBaseMv[fPosBaseIdx][0].mv.highPrec;
-  const int highPrecList1 = mmvdBaseMv[fPosBaseIdx][1].mv.highPrec;
-#endif
   const int refList0 = mmvdBaseMv[fPosBaseIdx][0].refIdx;
   const int refList1 = mmvdBaseMv[fPosBaseIdx][1].refIdx;
 
@@ -421,7 +417,6 @@ void MergeCtx::setMmvdMergeCandiInfo(PredictionUnit& pu, int candIdx)
     {
       refSign = -1;
     }
-#if REMOVE_MV_ADAPT_PREC
     if (fPosPosition == 0)
     {
       tempMv[0] = Mv(offset, 0);
@@ -442,28 +437,6 @@ void MergeCtx::setMmvdMergeCandiInfo(PredictionUnit& pu, int candIdx)
       tempMv[0] = Mv(0, -offset);
       tempMv[1] = Mv(0, -offset * refSign);
     }
-#else
-    if (fPosPosition == 0)
-    {
-      tempMv[0] = Mv(offset, 0, highPrecList0);
-      tempMv[1] = Mv(offset * refSign, 0, highPrecList1);
-    }
-    else if (fPosPosition == 1)
-    {
-      tempMv[0] = Mv(-offset, 0, highPrecList0);
-      tempMv[1] = Mv(-offset * refSign, 0, highPrecList1);
-    }
-    else if (fPosPosition == 2)
-    {
-      tempMv[0] = Mv(0, offset, highPrecList0);
-      tempMv[1] = Mv(0, offset * refSign, highPrecList1);
-    }
-    else
-    {
-      tempMv[0] = Mv(0, -offset, highPrecList0);
-      tempMv[1] = Mv(0, -offset * refSign, highPrecList1);
-    }
-#endif
     if (abs(poc1 - currPoc) > abs(poc0 - currPoc))
     {
       const int scale = PU::getDistScaleFactor(currPoc, poc0, currPoc, poc1);
@@ -489,7 +462,6 @@ void MergeCtx::setMmvdMergeCandiInfo(PredictionUnit& pu, int candIdx)
   }
   else if (refList0 != -1)
   {
-#if REMOVE_MV_ADAPT_PREC
     if (fPosPosition == 0)
     {
       tempMv[0] = Mv(offset, 0);
@@ -506,24 +478,6 @@ void MergeCtx::setMmvdMergeCandiInfo(PredictionUnit& pu, int candIdx)
     {
       tempMv[0] = Mv(0, -offset);
     }
-#else
-    if (fPosPosition == 0)
-    {
-      tempMv[0] = Mv(offset, 0, highPrecList0);
-    }
-    else if (fPosPosition == 1)
-    {
-      tempMv[0] = Mv(-offset, 0, highPrecList0);
-    }
-    else if (fPosPosition == 2)
-    {
-      tempMv[0] = Mv(0, offset, highPrecList0);
-    }
-    else
-    {
-      tempMv[0] = Mv(0, -offset, highPrecList0);
-    }
-#endif
     pu.interDir = 1;
     pu.mv[REF_PIC_LIST_0] = mmvdBaseMv[fPosBaseIdx][0].mv + tempMv[0];
     pu.refIdx[REF_PIC_LIST_0] = refList0;
@@ -532,7 +486,6 @@ void MergeCtx::setMmvdMergeCandiInfo(PredictionUnit& pu, int candIdx)
   }
   else if (refList1 != -1)
   {
-#if REMOVE_MV_ADAPT_PREC
     if (fPosPosition == 0)
     {
       tempMv[1] = Mv(offset, 0);
@@ -549,24 +502,6 @@ void MergeCtx::setMmvdMergeCandiInfo(PredictionUnit& pu, int candIdx)
     {
       tempMv[1] = Mv(0, -offset);
     }
-#else
-    if (fPosPosition == 0)
-    {
-      tempMv[1] = Mv(offset, 0, highPrecList1);
-    }
-    else if (fPosPosition == 1)
-    {
-      tempMv[1] = Mv(-offset, 0, highPrecList1);
-    }
-    else if (fPosPosition == 2)
-    {
-      tempMv[1] = Mv(0, offset, highPrecList1);
-    }
-    else
-    {
-      tempMv[1] = Mv(0, -offset, highPrecList1);
-    }
-#endif
     pu.interDir = 2;
     pu.mv[REF_PIC_LIST_0] = Mv(0, 0);
     pu.refIdx[REF_PIC_LIST_0] = -1;
diff --git a/source/Lib/CommonLib/InterPrediction.cpp b/source/Lib/CommonLib/InterPrediction.cpp
index aecfc905c..7f8908134 100644
--- a/source/Lib/CommonLib/InterPrediction.cpp
+++ b/source/Lib/CommonLib/InterPrediction.cpp
@@ -639,15 +639,7 @@ void InterPrediction::xPredInterBlk ( const ComponentID& compID, const Predictio
 
   int iAddPrecShift = 0;
 
-#if !REMOVE_MV_ADAPT_PREC
-  if (_mv.highPrec)
-  {
-    CHECKD(!pu.cs->sps->getSpsNext().getUseHighPrecMv(), "Found a high-precision motion vector, but the high-precision MV extension is disabled!");
-#endif
     iAddPrecShift = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#if !REMOVE_MV_ADAPT_PREC
-  }
-#endif
 
   int shiftHor = 2 + iAddPrecShift + ::getComponentScaleX(compID, chFmt);
   int shiftVer = 2 + iAddPrecShift + ::getComponentScaleY(compID, chFmt);
@@ -663,10 +655,6 @@ void InterPrediction::xPredInterBlk ( const ComponentID& compID, const Predictio
 #endif
   xFrac <<= VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE - iAddPrecShift;
   yFrac <<= VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE - iAddPrecShift;
-#if !REMOVE_MV_ADAPT_PREC
-  CHECKD(!pu.cs->sps->getSpsNext().getUseHighPrecMv() && ((xFrac & 3) != 0), "Invalid fraction");
-  CHECKD(!pu.cs->sps->getSpsNext().getUseHighPrecMv() && ((yFrac & 3) != 0), "Invalid fraction");
-#endif
 
   PelBuf &dstBuf  = dstPic.bufs[compID];
   unsigned width  = dstBuf.width;
@@ -781,11 +769,6 @@ void InterPrediction::xPredAffineBlk( const ComponentID& compID, const Predictio
   Mv mvRT =_mv[1];
   Mv mvLB =_mv[2];
 
-#if !REMOVE_MV_ADAPT_PREC
-  mvLT.setHighPrec();
-  mvRT.setHighPrec();
-  mvLB.setHighPrec();
-#endif
 
   // get affine sub-block width and height
   const int width  = pu.Y().width;
diff --git a/source/Lib/CommonLib/LoopFilter.cpp b/source/Lib/CommonLib/LoopFilter.cpp
index d9ed51017..70c9316b3 100644
--- a/source/Lib/CommonLib/LoopFilter.cpp
+++ b/source/Lib/CommonLib/LoopFilter.cpp
@@ -486,18 +486,7 @@ unsigned LoopFilter::xGetBoundaryStrengthSingle ( const CodingUnit& cu, const De
     if( 0 <= miQ.refIdx[1] ) { mvQ1 = miQ.mv[1]; }
 
     int nThreshold = 4;
-#if !REMOVE_MV_ADAPT_PREC
-    if (cu.cs->sps->getSpsNext().getUseHighPrecMv())
-    {
-      mvP0.setHighPrec();
-      mvP1.setHighPrec();
-      mvQ0.setHighPrec();
-      mvQ1.setHighPrec();
-#endif
       nThreshold = 4 << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#if !REMOVE_MV_ADAPT_PREC
-  }
-#endif
     unsigned uiBs = 0;
 
     //th can be optimized
@@ -551,16 +540,7 @@ unsigned LoopFilter::xGetBoundaryStrengthSingle ( const CodingUnit& cu, const De
   Mv mvQ0 = miQ.mv[0];
 
   int nThreshold = 4;
-#if !REMOVE_MV_ADAPT_PREC
-  if (cu.cs->sps->getSpsNext().getUseHighPrecMv())
-  {
-    mvP0.setHighPrec();
-    mvQ0.setHighPrec();
-#endif
     nThreshold = 4 << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#if !REMOVE_MV_ADAPT_PREC
-  }
-#endif
   return ( ( abs( mvQ0.getHor() - mvP0.getHor() ) >= nThreshold ) || ( abs( mvQ0.getVer() - mvP0.getVer() ) >= nThreshold ) ) ? 1 : 0;
 }
 
diff --git a/source/Lib/CommonLib/Mv.cpp b/source/Lib/CommonLib/Mv.cpp
index 81e262407..413815b13 100644
--- a/source/Lib/CommonLib/Mv.cpp
+++ b/source/Lib/CommonLib/Mv.cpp
@@ -43,9 +43,6 @@
 void roundMV( Mv & rMV, unsigned imvShift )
 {
   CHECK( imvShift == 0, "roundMV called for imvShift=0" );
-#if !REMOVE_MV_ADAPT_PREC
-  if (rMV.highPrec) imvShift += VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
   int offset = 1 << ( imvShift - 1 );
 #if JVET_L0377_AMVR_ROUNDING_ALIGN
   rMV.setHor(rMV.getHor() >= 0 ? ((rMV.getHor() + offset) >> imvShift) << imvShift : -(((-rMV.getHor() + offset) >> imvShift)) << imvShift);
@@ -69,14 +66,8 @@ void clipMv( Mv& rcMv, const Position& pos,
 #endif
              const SPS& sps )
 {
-#if !REMOVE_MV_ADAPT_PREC
-  int iMvShift = 2 + (rcMv.highPrec ? VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : 0);
-#else
   int iMvShift = 2;
-#endif
-#if REMOVE_MV_ADAPT_PREC
   iMvShift += VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
   int iOffset = 8;
   int iHorMax = ( sps.getPicWidthInLumaSamples() + iOffset - ( int ) pos.x - 1 ) << iMvShift;
   int iHorMin = ( -( int ) sps.getMaxCUWidth()   - iOffset - ( int ) pos.x + 1 ) << iMvShift;
diff --git a/source/Lib/CommonLib/Mv.h b/source/Lib/CommonLib/Mv.h
index a1525ddc7..ec0146e4a 100644
--- a/source/Lib/CommonLib/Mv.h
+++ b/source/Lib/CommonLib/Mv.h
@@ -53,21 +53,13 @@ class Mv
 public:
   int   hor;     ///< horizontal component of motion vector
   int   ver;     ///< vertical component of motion vector
-#if !REMOVE_MV_ADAPT_PREC
-  bool  highPrec;///< true if the vector is high precision
-#endif
 
   // ------------------------------------------------------------------------------------------------------------------
   // constructors
   // ------------------------------------------------------------------------------------------------------------------
 
-#if !REMOVE_MV_ADAPT_PREC
-  Mv(                                            ) : hor( 0    ), ver( 0    ), highPrec( false     ) {}
-  Mv( int iHor, int iVer, bool _highPrec = false ) : hor( iHor ), ver( iVer ), highPrec( _highPrec ) {}
-#else
   Mv(                    ) : hor( 0    ), ver( 0    ) {}
   Mv( int iHor, int iVer ) : hor( iHor ), ver( iVer ) {}
-#endif
 
   // ------------------------------------------------------------------------------------------------------------------
   // set
@@ -93,21 +85,9 @@ public:
 
   const Mv& operator += (const Mv& _rcMv)
   {
-#if !REMOVE_MV_ADAPT_PREC
-    if( highPrec == _rcMv.highPrec )
-    {
-      hor += _rcMv.hor;
-      ver += _rcMv.ver;
-    }
-    else
-#endif
     {
       Mv rcMv = _rcMv;
 
-#if !REMOVE_MV_ADAPT_PREC
-      if( highPrec && !rcMv.highPrec ) rcMv.setHighPrec();
-      if( !highPrec && rcMv.highPrec )      setHighPrec();
-#endif
       hor += rcMv.hor;
       ver += rcMv.ver;
     }
@@ -116,21 +96,9 @@ public:
 
   const Mv& operator-= (const Mv& _rcMv)
   {
-#if !REMOVE_MV_ADAPT_PREC
-    if( highPrec == _rcMv.highPrec )
-    {
-      hor -= _rcMv.hor;
-      ver -= _rcMv.ver;
-    }
-    else
-#endif
     {
       Mv rcMv = _rcMv;
 
-#if !REMOVE_MV_ADAPT_PREC
-      if( highPrec && !rcMv.highPrec ) rcMv.setHighPrec();
-      if( !highPrec && rcMv.highPrec )      setHighPrec();
-#endif
       hor -= rcMv.hor;
       ver -= rcMv.ver;
     }
@@ -166,60 +134,17 @@ public:
 
   const Mv operator - ( const Mv& rcMv ) const
   {
-#if !REMOVE_MV_ADAPT_PREC
-    if( rcMv.highPrec == highPrec )
-    {
-      return Mv( hor - rcMv.hor, ver - rcMv.ver, highPrec );
-    }
-    else
-    {
-      Mv self = *this; self.setHighPrec();
-      Mv other = rcMv; other.setHighPrec();
-
-      return self - other;
-    }
-#else
     return Mv( hor - rcMv.hor, ver - rcMv.ver );
-#endif
   }
 
   const Mv operator + ( const Mv& rcMv ) const
   {
-#if !REMOVE_MV_ADAPT_PREC
-    if( rcMv.highPrec == highPrec )
-    {
-      return Mv( hor + rcMv.hor, ver + rcMv.ver, highPrec );
-    }
-    else
-    {
-      Mv self = *this; self.setHighPrec();
-      Mv other = rcMv; other.setHighPrec();
-
-      return self + other;
-    }
-#else
     return Mv( hor + rcMv.hor, ver + rcMv.ver );
-#endif
   }
 
   bool operator== ( const Mv& rcMv ) const
   {
-#if !REMOVE_MV_ADAPT_PREC
-    if( rcMv.highPrec == highPrec )
-    {
-      return ( hor == rcMv.hor && ver == rcMv.ver );
-    }
-    else if( rcMv.highPrec )
-    {
-      return ( ( hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE ) == rcMv.hor && ( ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE ) == rcMv.ver );
-    }
-    else
-    {
-      return ( ( rcMv.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE ) == hor && ( rcMv.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE ) == ver );
-    }
-#else
     return ( hor == rcMv.hor && ver == rcMv.ver );
-#endif
   }
 
   bool operator!= ( const Mv& rcMv ) const
@@ -231,47 +156,18 @@ public:
   {
     const int mvx = Clip3( -32768, 32767, (iScale * getHor() + 127 + (iScale * getHor() < 0)) >> 8 );
     const int mvy = Clip3( -32768, 32767, (iScale * getVer() + 127 + (iScale * getVer() < 0)) >> 8 );
-#if !REMOVE_MV_ADAPT_PREC
-    return Mv( mvx, mvy, highPrec );
-#else
     return Mv( mvx, mvy );
-#endif
   }
 
   void roundMV2SignalPrecision()
   {
-#if REMOVE_MV_ADAPT_PREC
     const int nShift = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
     const int nOffset = 1 << (nShift - 1);
     hor = hor >= 0 ? (hor + nOffset) >> nShift : -((-hor + nOffset) >> nShift);
     ver = ver >= 0 ? (ver + nOffset) >> nShift : -((-ver + nOffset) >> nShift);
     hor = hor >= 0 ? (hor) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : -((-hor) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE);
     ver = ver >= 0 ? (ver) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : -((-ver) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE);
-#else
-    const bool isHP = highPrec;
-    setLowPrec();
-    if( isHP ) setHighPrec();
-#endif
-  }
-#if !REMOVE_MV_ADAPT_PREC
-  void setLowPrec()
-  {
-    if( !highPrec ) return;
-    const int nShift  = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-    const int nOffset = 1 << ( nShift - 1 );
-    hor = hor >= 0 ? ( hor + nOffset ) >> nShift : -( ( -hor + nOffset ) >> nShift );
-    ver = ver >= 0 ? ( ver + nOffset ) >> nShift : -( ( -ver + nOffset ) >> nShift );
-    highPrec = false;
   }
-
-  void setHighPrec()
-  {
-    if( highPrec ) return;
-    hor = hor >= 0 ? ( hor ) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : -( ( -hor ) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE );
-    ver = ver >= 0 ? ( ver ) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : -( ( -ver ) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE );
-    highPrec = true;
-  }
-#endif
 };// END CLASS DEFINITION MV
 #if JVET_L0293_CPR
 namespace std
diff --git a/source/Lib/CommonLib/RdCost.h b/source/Lib/CommonLib/RdCost.h
index 8e9a96bb3..129d530ca 100644
--- a/source/Lib/CommonLib/RdCost.h
+++ b/source/Lib/CommonLib/RdCost.h
@@ -167,12 +167,6 @@ public:
   void           setPredictor             ( const Mv& rcMv )
   {
     m_mvPredictor = rcMv;
-#if !REMOVE_MV_ADAPT_PREC
-    if( m_mvPredictor.highPrec )
-    {
-      m_mvPredictor = Mv( m_mvPredictor.hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE, m_mvPredictor.ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE, false );
-    }
-#endif
   }
   void           setCostScale             ( int iCostScale )           { m_iCostScale = iCostScale; }
   Distortion     getCost                  ( uint32_t b )                   { return Distortion( m_motionLambda * b ); }
diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp
index 67a1aa130..73a819f5c 100644
--- a/source/Lib/CommonLib/Slice.cpp
+++ b/source/Lib/CommonLib/Slice.cpp
@@ -1779,9 +1779,6 @@ SPSNext::SPSNext( SPS& sps )
   , m_LargeCTU                  ( false )
   , m_SubPuMvp                  ( false )
   , m_IMV                       ( false )
-#if !REMOVE_MV_ADAPT_PREC
-  , m_highPrecMv                ( false )
-#endif
 #if JVET_L0256_BIO
   , m_BIO                       ( false )
 #endif
diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h
index 71359f0f6..11674fb6c 100644
--- a/source/Lib/CommonLib/Slice.h
+++ b/source/Lib/CommonLib/Slice.h
@@ -803,9 +803,6 @@ private:
   bool              m_LargeCTU;                   // 5
   bool              m_SubPuMvp;
   bool              m_IMV;                        // 9
-#if !REMOVE_MV_ADAPT_PREC
-  bool              m_highPrecMv;
-#endif
 #if JVET_L0256_BIO
   bool              m_BIO;
 #endif
@@ -892,10 +889,6 @@ public:
   bool      getUseAffine          ()                                      const     { return m_Affine; }
   void      setUseAffineType      ( bool b )                                        { m_AffineType = b; }
   bool      getUseAffineType      ()                                      const     { return m_AffineType; }
-#if !REMOVE_MV_ADAPT_PREC
-  void      setUseHighPrecMv(bool b) { m_highPrecMv = b; }
-  bool      getUseHighPrecMv()                                      const { return m_highPrecMv; }
-#endif
 #if JVET_L0256_BIO
   void      setUseBIO(bool b)                                                       { m_BIO = b; }
   bool      getUseBIO()                                                   const     { return m_BIO; }
diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h
index 0589e0dc1..448e59a6a 100644
--- a/source/Lib/CommonLib/TypeDef.h
+++ b/source/Lib/CommonLib/TypeDef.h
@@ -130,7 +130,6 @@
 
 #define REUSE_CU_RESULTS                                  1
 
-#define REMOVE_MV_ADAPT_PREC                              1 // remove the high precision flag in the MV class
 
 #define JVET_L0093_SIMP_PRUNE                             1
 
diff --git a/source/Lib/CommonLib/UnitTools.cpp b/source/Lib/CommonLib/UnitTools.cpp
index fee9892d7..942d98aa4 100644
--- a/source/Lib/CommonLib/UnitTools.cpp
+++ b/source/Lib/CommonLib/UnitTools.cpp
@@ -1664,12 +1664,6 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx,
 
           // average two MVs
           Mv avgMv = MvI;
-#if !REMOVE_MV_ADAPT_PREC
-          if( pu.cs->sps->getSpsNext().getUseHighPrecMv() )
-          {
-            avgMv.setHighPrec();
-          }
-#endif
           avgMv += MvJ;
           avgMv.setHor( avgMv.getHor() / 2 );
           avgMv.setVer( avgMv.getVer() / 2 );
@@ -1691,23 +1685,11 @@ void PU::getInterMergeCandidates( const PredictionUnit &pu, MergeCtx& mrgCtx,
         else if( refIdxI != NOT_VALID )
         {
           Mv singleMv = mrgCtx.mvFieldNeighbours[i * 2 + refListId].mv;
-#if !REMOVE_MV_ADAPT_PREC
-          if( pu.cs->sps->getSpsNext().getUseHighPrecMv() )
-          {
-            singleMv.setHighPrec();
-          }
-#endif
           mrgCtx.mvFieldNeighbours[cnt * 2 + refListId].setMvField( singleMv, refIdxI );
         }
         else if( refIdxJ != NOT_VALID )
         {
           Mv singleMv = mrgCtx.mvFieldNeighbours[j * 2 + refListId].mv;
-#if !REMOVE_MV_ADAPT_PREC
-          if( pu.cs->sps->getSpsNext().getUseHighPrecMv() )
-          {
-            singleMv.setHighPrec();
-          }
-#endif
           mrgCtx.mvFieldNeighbours[cnt * 2 + refListId].setMvField( singleMv, refIdxJ );
         }
       }
@@ -1918,25 +1900,6 @@ void PU::getInterMMVDMergeCandidates(const PredictionUnit &pu, MergeCtx& mrgCtx,
   int currBaseNum = 0;
   const uint16_t maxNumMergeCand = mrgCtx.numValidMergeCand;
 
-#if !REMOVE_MV_ADAPT_PREC
-  if (pu.cu->slice->getSPS()->getSpsNext().getUseHighPrecMv())
-  {
-    for (k = 0; k < maxNumMergeCand; k++)
-    {
-      if (mrgCtx.mrgTypeNeighbours[k] == MRG_TYPE_DEFAULT_N)
-      {
-        if ((mrgCtx.mvFieldNeighbours[(k << 1)].mv.highPrec == false) && (mrgCtx.mvFieldNeighbours[(k << 1)].refIdx >= 0))
-        {
-          mrgCtx.mvFieldNeighbours[(k << 1)].mv.setHighPrec();
-        }
-        if ((mrgCtx.mvFieldNeighbours[(k << 1) + 1].mv.highPrec == false) && (mrgCtx.mvFieldNeighbours[(k << 1) + 1].refIdx >= 0))
-        {
-          mrgCtx.mvFieldNeighbours[(k << 1) + 1].mv.setHighPrec();
-        }
-      }
-    }
-  }
-#endif
   for (k = 0; k < maxNumMergeCand; k++)
   {
     if (mrgCtx.mrgTypeNeighbours[k] == MRG_TYPE_DEFAULT_N)
@@ -2067,13 +2030,6 @@ bool PU::getColocatedMVP(const PredictionUnit &pu, const RefPicList &eRefPicList
     }
     else
     {
-#if !REMOVE_MV_ADAPT_PREC
-      if( pu.cs->sps->getSpsNext().getUseHighPrecMv() )
-      {
-        // allow extended precision for temporal scaling
-        cColMv.setHighPrec();
-      }
-#endif
       rcMv = cColMv.scaleMv(distscale);
     }
   }
@@ -2295,9 +2251,7 @@ void PU::fillMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, const in
   if( pu.cu->imv != 0)
   {
     unsigned imvShift = pu.cu->imv << 1;
-#if REMOVE_MV_ADAPT_PREC
     imvShift += VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
     for( int i = 0; i < pInfo->numCand; i++ )
     {
       roundMV( pInfo->mvCand[i], imvShift );
@@ -2360,9 +2314,7 @@ void PU::fillMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, const in
       if (pu.cu->imv != 0)
       {
         unsigned imvShift = pu.cu->imv << 1;
-#if REMOVE_MV_ADAPT_PREC
         imvShift += VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
         roundMV(cColMv, imvShift);
       }
       int i = 0;
@@ -2397,32 +2349,16 @@ void PU::fillMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, const in
 
   while (pInfo->numCand < AMVP_MAX_NUM_CANDS)
   {
-#if !REMOVE_MV_ADAPT_PREC
-    const bool prec = pInfo->mvCand[pInfo->numCand].highPrec;
-    pInfo->mvCand[pInfo->numCand] = Mv( 0, 0, prec );
-#else
     pInfo->mvCand[pInfo->numCand] = Mv( 0, 0 );
-#endif
     pInfo->numCand++;
   }
-#if !REMOVE_MV_ADAPT_PREC
-  if (pu.cs->sps->getSpsNext().getUseHighPrecMv())
-  {
-#endif
     for (Mv &mv : pInfo->mvCand)
     {
-#if REMOVE_MV_ADAPT_PREC
       const int nShift = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
       const int nOffset = 1 << (nShift - 1);
       mv.hor = mv.hor >= 0 ? (mv.hor + nOffset) >> nShift : -((-mv.hor + nOffset) >> nShift);
       mv.ver = mv.ver >= 0 ? (mv.ver + nOffset) >> nShift : -((-mv.ver + nOffset) >> nShift);
-#else
-      if (mv.highPrec) mv.setLowPrec();
-#endif
     }
-#if !REMOVE_MV_ADAPT_PREC
-  }
-#endif
   if (pu.cu->imv != 0)
   {
     unsigned imvShift = pu.cu->imv << 1;
@@ -2431,15 +2367,6 @@ void PU::fillMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, const in
       roundMV(pInfo->mvCand[i], imvShift);
     }
   }
-#if !REMOVE_MV_ADAPT_PREC
-  if (pu.cs->sps->getSpsNext().getUseHighPrecMv())
-  {
-    for (Mv &mv : pInfo->mvCand)
-    {
-      if (mv.highPrec) mv.setLowPrec();
-    }
-  }
-#endif
 }
 
 #if JVET_L0271_AFFINE_AMVP_SIMPLIFY
@@ -2648,23 +2575,15 @@ void PU::xInheritedAffineMv( const PredictionUnit &pu, const PredictionUnit* puN
   horTmp = iMvScaleHor + iDMvHorX * (posCurX - posNeiX) + iDMvVerX * (posCurY - posNeiY);
   verTmp = iMvScaleVer + iDMvHorY * (posCurX - posNeiX) + iDMvVerY * (posCurY - posNeiY);
   roundAffineMv( horTmp, verTmp, shift );
-#if REMOVE_MV_ADAPT_PREC
   rcMv[0].hor = horTmp;
   rcMv[0].ver = verTmp;
-#else
-  rcMv[0] = Mv(horTmp, verTmp, true);
-#endif
 
   // v1
   horTmp = iMvScaleHor + iDMvHorX * (posCurX + curW - posNeiX) + iDMvVerX * (posCurY - posNeiY);
   verTmp = iMvScaleVer + iDMvHorY * (posCurX + curW - posNeiX) + iDMvVerY * (posCurY - posNeiY);
   roundAffineMv( horTmp, verTmp, shift );
-#if REMOVE_MV_ADAPT_PREC
   rcMv[1].hor = horTmp;
   rcMv[1].ver = verTmp;
-#else
-  rcMv[1] = Mv(horTmp, verTmp, true);
-#endif
 
   // v2
   if ( pu.cu->affineType == AFFINEMODEL_6PARAM )
@@ -2672,22 +2591,16 @@ void PU::xInheritedAffineMv( const PredictionUnit &pu, const PredictionUnit* puN
     horTmp = iMvScaleHor + iDMvHorX * (posCurX - posNeiX) + iDMvVerX * (posCurY + curH - posNeiY);
     verTmp = iMvScaleVer + iDMvHorY * (posCurX - posNeiX) + iDMvVerY * (posCurY + curH - posNeiY);
     roundAffineMv( horTmp, verTmp, shift );
-#if REMOVE_MV_ADAPT_PREC
     rcMv[2].hor = horTmp;
     rcMv[2].ver = verTmp;
-#else
-    rcMv[2] = Mv(horTmp, verTmp, true);
-#endif
   }
 }
 
 
 void PU::fillAffineMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, const int &refIdx, AffineAMVPInfo &affiAMVPInfo)
 {
-#if REMOVE_MV_ADAPT_PREC
   const int nShift = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   const int nOffset = 1 << (nShift - 1);
-#endif
   affiAMVPInfo.numCand = 0;
 
   if (refIdx < 0)
@@ -2765,7 +2678,6 @@ void PU::fillAffineMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, co
 
   if ( affiAMVPInfo.numCand >= AMVP_MAX_NUM_CANDS )
   {
-#if REMOVE_MV_ADAPT_PREC
     for (int i = 0; i < affiAMVPInfo.numCand; i++)
     {
       affiAMVPInfo.mvCandLT[i].hor = affiAMVPInfo.mvCandLT[i].hor >= 0 ? (affiAMVPInfo.mvCandLT[i].hor + nOffset) >> nShift : -((-affiAMVPInfo.mvCandLT[i].hor + nOffset) >> nShift);
@@ -2775,7 +2687,6 @@ void PU::fillAffineMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, co
       affiAMVPInfo.mvCandLB[i].hor = affiAMVPInfo.mvCandLB[i].hor >= 0 ? (affiAMVPInfo.mvCandLB[i].hor + nOffset) >> nShift : -((-affiAMVPInfo.mvCandLB[i].hor + nOffset) >> nShift);
       affiAMVPInfo.mvCandLB[i].ver = affiAMVPInfo.mvCandLB[i].ver >= 0 ? (affiAMVPInfo.mvCandLB[i].ver + nOffset) >> nShift : -((-affiAMVPInfo.mvCandLB[i].ver + nOffset) >> nShift);
     }
-#endif
     return;
   }
 
@@ -2831,11 +2742,6 @@ void PU::fillAffineMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, co
   outputAffineMv[1] = amvpInfo1.mvCand[0];
   outputAffineMv[2] = amvpInfo2.mvCand[0];
 
-#if !REMOVE_MV_ADAPT_PREC
-  outputAffineMv[0].setHighPrec();
-  outputAffineMv[1].setHighPrec();
-  outputAffineMv[2].setHighPrec();
-#endif
 
   outputAffineMv[0].roundMV2SignalPrecision();
   outputAffineMv[1].roundMV2SignalPrecision();
@@ -2944,9 +2850,6 @@ void PU::fillAffineMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, co
 
       if ( (C0Avail && getColocatedMVP( pu, eRefPicList, posC0, cColMv, refIdxCol )) || getColocatedMVP( pu, eRefPicList, posC1, cColMv, refIdxCol ) )
       {
-#if !REMOVE_MV_ADAPT_PREC
-        cColMv.setHighPrec();
-#endif
         cColMv.roundMV2SignalPrecision();
         affiAMVPInfo.mvCandLT[affiAMVPInfo.numCand] = cColMv;
         affiAMVPInfo.mvCandRT[affiAMVPInfo.numCand] = cColMv;
@@ -2963,18 +2866,12 @@ void PU::fillAffineMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, co
         affiAMVPInfo.mvCandLT[affiAMVPInfo.numCand].setZero();
         affiAMVPInfo.mvCandRT[affiAMVPInfo.numCand].setZero();
         affiAMVPInfo.mvCandLB[affiAMVPInfo.numCand].setZero();
-#if !REMOVE_MV_ADAPT_PREC
-        affiAMVPInfo.mvCandLT[affiAMVPInfo.numCand].setHighPrec();
-        affiAMVPInfo.mvCandRT[affiAMVPInfo.numCand].setHighPrec();
-        affiAMVPInfo.mvCandLB[affiAMVPInfo.numCand].setHighPrec();
-#endif
         affiAMVPInfo.numCand++;
       }
     }
   }
 #endif
 
-#if REMOVE_MV_ADAPT_PREC
   for (int i = 0; i < affiAMVPInfo.numCand; i++)
   {
     affiAMVPInfo.mvCandLT[i].hor = affiAMVPInfo.mvCandLT[i].hor >= 0 ? (affiAMVPInfo.mvCandLT[i].hor + nOffset) >> nShift : -((-affiAMVPInfo.mvCandLT[i].hor + nOffset) >> nShift);
@@ -2984,7 +2881,6 @@ void PU::fillAffineMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, co
     affiAMVPInfo.mvCandLB[i].hor = affiAMVPInfo.mvCandLB[i].hor >= 0 ? (affiAMVPInfo.mvCandLB[i].hor + nOffset) >> nShift : -((-affiAMVPInfo.mvCandLB[i].hor + nOffset) >> nShift);
     affiAMVPInfo.mvCandLB[i].ver = affiAMVPInfo.mvCandLB[i].ver >= 0 ? (affiAMVPInfo.mvCandLB[i].ver + nOffset) >> nShift : -((-affiAMVPInfo.mvCandLB[i].ver + nOffset) >> nShift);
   }
-#endif
 
 
 #if !JVET_L0271_AFFINE_AMVP_SIMPLIFY
@@ -2996,9 +2892,6 @@ void PU::fillAffineMvpCand(PredictionUnit &pu, const RefPicList &eRefPicList, co
     int iAdd = amvpInfo.numCand - affiAMVPInfo.numCand;
     for ( int i = 0; i < iAdd; i++ )
     {
-#if !REMOVE_MV_ADAPT_PREC
-      amvpInfo.mvCand[i].setHighPrec();
-#endif
       affiAMVPInfo.mvCandLT[affiAMVPInfo.numCand] = amvpInfo.mvCand[i];
       affiAMVPInfo.mvCandRT[affiAMVPInfo.numCand] = amvpInfo.mvCand[i];
       affiAMVPInfo.mvCandLB[affiAMVPInfo.numCand] = amvpInfo.mvCand[i];
@@ -3133,12 +3026,6 @@ bool PU::addMVPCandWithScaling( const PredictionUnit &pu, const RefPicList &eRef
 
           if( scale != 4096 )
           {
-#if !REMOVE_MV_ADAPT_PREC
-            if( slice.getSPS()->getSpsNext().getUseHighPrecMv() )
-            {
-              cMv.setHighPrec();
-            }
-#endif
             cMv = cMv.scaleMv( scale );
           }
         }
@@ -3160,9 +3047,7 @@ void PU::addAMVPHMVPCand(const PredictionUnit &pu, const RefPicList eRefPicList,
   MotionInfo neibMi;
   int i = 0;
   unsigned imvShift = imv << 1;
-#if REMOVE_MV_ADAPT_PREC
   imvShift += VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
 
   int num_avai_candInLUT = slice.getAvailableLUTMrgNum();
   int num_allowedCand = std::min(MAX_NUM_HMVP_AVMPCANDS, num_avai_candInLUT);
@@ -3281,15 +3166,6 @@ void PU::getAffineControlPointCand( const PredictionUnit &pu, MotionInfo mi[4],
     return;
   }
 
-#if !REMOVE_MV_ADAPT_PREC
-  for ( int l = 0; l < 2; l++ )
-  {
-    for ( int i = 0; i < 4; i++ )
-    {
-      cMv[l][i].highPrec = true;
-    }
-  }
-#endif
 
   for ( int l = 0; l < 2; l++ )
   {
@@ -3710,10 +3586,6 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx
         {
           isAvailable[0] = true;
           mi[0] = puNeigh->getMotionInfo( pos );
-#if !REMOVE_MV_ADAPT_PREC
-          mi[0].mv[0].setHighPrec();
-          mi[0].mv[1].setHighPrec();
-#endif
           break;
         }
       }
@@ -3734,10 +3606,6 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx
         {
           isAvailable[1] = true;
           mi[1] = puNeigh->getMotionInfo( pos );
-#if !REMOVE_MV_ADAPT_PREC
-          mi[1].mv[0].setHighPrec();
-          mi[1].mv[1].setHighPrec();
-#endif
           break;
         }
       }
@@ -3758,10 +3626,6 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx
         {
           isAvailable[2] = true;
           mi[2] = puNeigh->getMotionInfo( pos );
-#if !REMOVE_MV_ADAPT_PREC
-          mi[2].mv[0].setHighPrec();
-          mi[2].mv[1].setHighPrec();
-#endif
           break;
         }
       }
@@ -3810,9 +3674,6 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx
         if ( bExistMV )
         {
           mi[3].mv[0] = cColMv;
-#if !REMOVE_MV_ADAPT_PREC
-          mi[3].mv[0].setHighPrec();
-#endif
           mi[3].refIdx[0] = refIdx;
           mi[3].interDir = 1;
           isAvailable[3] = true;
@@ -3824,9 +3685,6 @@ void PU::getAffineMergeCand( const PredictionUnit &pu, AffineMergeCtx& affMrgCtx
           if ( bExistMV )
           {
             mi[3].mv[1] = cColMv;
-#if !REMOVE_MV_ADAPT_PREC
-            mi[3].mv[1].setHighPrec();
-#endif
             mi[3].refIdx[1] = refIdx;
             mi[3].interDir |= 2;
             isAvailable[3] = true;
@@ -4014,14 +3872,11 @@ void PU::setAllAffineMvField( PredictionUnit &pu, MvField *mvField, RefPicList e
 }
 
 void PU::setAllAffineMv( PredictionUnit& pu, Mv affLT, Mv affRT, Mv affLB, RefPicList eRefList 
-#if REMOVE_MV_ADAPT_PREC
   , bool setHighPrec
-#endif
 )
 {
   int width  = pu.Y().width;
   int shift = MAX_CU_DEPTH;
-#if REMOVE_MV_ADAPT_PREC
   if (setHighPrec)
   {
     affLT.hor = affLT.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
@@ -4031,11 +3886,6 @@ void PU::setAllAffineMv( PredictionUnit& pu, Mv affLT, Mv affRT, Mv affLB, RefPi
     affLB.hor = affLB.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
     affLB.ver = affLB.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   }
-#else
-  affLT.setHighPrec();
-  affRT.setHighPrec();
-  affLB.setHighPrec();
-#endif
   int deltaMvHorX, deltaMvHorY, deltaMvVerX, deltaMvVerY;
   deltaMvHorX = (affRT - affLT).getHor() << (shift - g_aucLog2[width]);
   deltaMvHorY = (affRT - affLT).getVer() << (shift - g_aucLog2[width]);
@@ -4073,12 +3923,8 @@ void PU::setAllAffineMv( PredictionUnit& pu, Mv affLT, Mv affRT, Mv affLB, RefPi
       {
         for ( int x = (w >> MIN_CU_LOG2); x < ((w + blockWidth) >> MIN_CU_LOG2); x++ )
         {
-#if REMOVE_MV_ADAPT_PREC
           mb.at(x, y).mv[eRefList].hor = mvScaleTmpHor;
           mb.at(x, y).mv[eRefList].ver = mvScaleTmpVer;
-#else
-          mb.at(x, y).mv[eRefList] = Mv(mvScaleTmpHor, mvScaleTmpVer, true);
-#endif
         }
       }
     }
@@ -4169,12 +4015,6 @@ static bool deriveScaledMotionTemporal( const Slice&      slice,
 
     if (iScale != 4096)
     {
-#if !REMOVE_MV_ADAPT_PREC
-      if (slice.getSPS()->getSpsNext().getUseHighPrecMv())
-      {
-        cColMv.setHighPrec();
-      }
-#endif
 
       cColMv = cColMv.scaleMv(iScale);
     }
@@ -4298,15 +4138,7 @@ bool PU::getInterMergeSubPuMvpCand(const PredictionUnit &pu, MergeCtx& mrgCtx, b
   ////////          GET Initial Temporal Vector                  ////////
   ///////////////////////////////////////////////////////////////////////
   int mvPrec = 2;
-#if !REMOVE_MV_ADAPT_PREC
-  if (pu.cs->sps->getSpsNext().getUseHighPrecMv())
-  {
-    cTMv.setHighPrec();
-#endif
     mvPrec += VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#if !REMOVE_MV_ADAPT_PREC
-  }
-#endif
 #if !JVET_L0257_ATMVP_COLBLK_CLIP
   int mvRndOffs = (1 << mvPrec) >> 1;
 #endif
@@ -4580,9 +4412,6 @@ void PU::applyImv( PredictionUnit& pu, MergeCtx &mrgCtx, InterPrediction *interP
     {
       if (pu.cu->imv)
       {
-#if !REMOVE_MV_ADAPT_PREC
-        CHECK(pu.mvd[0].highPrec, "Motion vector difference should never be high precision");
-#endif
         pu.mvd[0] = Mv( pu.mvd[0].hor << imvShift, pu.mvd[0].ver << imvShift );
       }
       unsigned mvp_idx = pu.mvpIdx[0];
@@ -4591,10 +4420,8 @@ void PU::applyImv( PredictionUnit& pu, MergeCtx &mrgCtx, InterPrediction *interP
       pu.mvpNum[0] = amvpInfo.numCand;
       pu.mvpIdx[0] = mvp_idx;
       pu.mv    [0] = amvpInfo.mvCand[mvp_idx] + pu.mvd[0];
-#if REMOVE_MV_ADAPT_PREC
       pu.mv[0].hor = pu.mv[0].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
       pu.mv[0].ver = pu.mv[0].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
 #if JVET_L0293_CPR
       if (pu.interDir == 1 && pu.cs->slice->getRefPic(REF_PIC_LIST_0, pu.refIdx[REF_PIC_LIST_0])->getPOC() == pu.cs->slice->getPOC())
       {
@@ -4607,9 +4434,6 @@ void PU::applyImv( PredictionUnit& pu, MergeCtx &mrgCtx, InterPrediction *interP
     {
       if( !( pu.cu->cs->slice->getMvdL1ZeroFlag() && pu.interDir == 3 ) && pu.cu->imv )/* PRED_BI */
       {
-#if !REMOVE_MV_ADAPT_PREC
-        CHECK(pu.mvd[1].highPrec, "Motion vector difference should never be high precision");
-#endif
         pu.mvd[1] = Mv( pu.mvd[1].hor << imvShift, pu.mvd[1].ver << imvShift );
       }
       unsigned mvp_idx = pu.mvpIdx[1];
@@ -4618,10 +4442,8 @@ void PU::applyImv( PredictionUnit& pu, MergeCtx &mrgCtx, InterPrediction *interP
       pu.mvpNum[1] = amvpInfo.numCand;
       pu.mvpIdx[1] = mvp_idx;
       pu.mv    [1] = amvpInfo.mvCand[mvp_idx] + pu.mvd[1];
-#if REMOVE_MV_ADAPT_PREC
       pu.mv[1].hor = pu.mv[1].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
       pu.mv[1].ver = pu.mv[1].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
     }
   }
   else
diff --git a/source/Lib/CommonLib/UnitTools.h b/source/Lib/CommonLib/UnitTools.h
index e111b0ba0..5d2c20535 100644
--- a/source/Lib/CommonLib/UnitTools.h
+++ b/source/Lib/CommonLib/UnitTools.h
@@ -162,9 +162,7 @@ namespace PU
 #endif
   void setAllAffineMvField            (      PredictionUnit &pu, MvField *mvField, RefPicList eRefList );
   void setAllAffineMv                 (      PredictionUnit &pu, Mv affLT, Mv affRT, Mv affLB, RefPicList eRefList 
-#if REMOVE_MV_ADAPT_PREC
     , bool setHighPrec = false
-#endif 
   );
   bool getInterMergeSubPuMvpCand(const PredictionUnit &pu, MergeCtx &mrgCtx, bool& LICFlag, const int count
 #if JVET_L0054_MMVD
diff --git a/source/Lib/CommonLib/dtrace_blockstatistics.cpp b/source/Lib/CommonLib/dtrace_blockstatistics.cpp
index c93f33a21..310c3e151 100644
--- a/source/Lib/CommonLib/dtrace_blockstatistics.cpp
+++ b/source/Lib/CommonLib/dtrace_blockstatistics.cpp
@@ -409,10 +409,8 @@ void getAndStoreBlockStatistics(const CodingStructure& cs, const UnitArea& ctuAr
 void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea)
 {
   const int maxNumChannelType = cs.pcv->chrFormat != CHROMA_400 && CS::isDualITree( cs ) ? 2 : 1;
-#if REMOVE_MV_ADAPT_PREC
   const int nShift = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   const int nOffset = 1 << (nShift - 1);
-#endif
   for( int ch = 0; ch < maxNumChannelType; ch++ )
   {
     const ChannelType chType = ChannelType( ch );
@@ -527,15 +525,10 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea)
               {
                 Mv mv = pu.mv[REF_PIC_LIST_0];
                 Mv mvd = pu.mvd[REF_PIC_LIST_0];
-#if REMOVE_MV_ADAPT_PREC
                 mv.hor = mv.hor >= 0 ? (mv.hor + nOffset) >> nShift : -((-mv.hor + nOffset) >> nShift);
                 mv.ver = mv.ver >= 0 ? (mv.ver + nOffset) >> nShift : -((-mv.ver + nOffset) >> nShift);
                 mvd.hor = mvd.hor >= 0 ? (mvd.hor + nOffset) >> nShift : -((-mvd.hor + nOffset) >> nShift);
                 mvd.ver = mvd.ver >= 0 ? (mvd.ver + nOffset) >> nShift : -((-mvd.ver + nOffset) >> nShift);
-#else
-                mv.setLowPrec();
-                mvd.setLowPrec();
-#endif
                 DTRACE_BLOCK_VECTOR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu, GetBlockStatisticName(BlockStatistic::MVDL0), mvd.hor, mvd.ver);
                 DTRACE_BLOCK_VECTOR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu, GetBlockStatisticName(BlockStatistic::MVL0), mv.hor, mv.ver);
               }
@@ -543,15 +536,10 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea)
               {
                 Mv mv = pu.mv[REF_PIC_LIST_1];
                 Mv mvd = pu.mvd[REF_PIC_LIST_1];
-#if REMOVE_MV_ADAPT_PREC
                 mv.hor = mv.hor >= 0 ? (mv.hor + nOffset) >> nShift : -((-mv.hor + nOffset) >> nShift);
                 mv.ver = mv.ver >= 0 ? (mv.ver + nOffset) >> nShift : -((-mv.ver + nOffset) >> nShift);
                 mvd.hor = mvd.hor >= 0 ? (mvd.hor + nOffset) >> nShift : -((-mvd.hor + nOffset) >> nShift);
                 mvd.ver = mvd.ver >= 0 ? (mvd.ver + nOffset) >> nShift : -((-mvd.ver + nOffset) >> nShift);
-#else
-                mv.setLowPrec();
-                mvd.setLowPrec();
-#endif
                 DTRACE_BLOCK_VECTOR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu, GetBlockStatisticName(BlockStatistic::MVDL1), mvd.hor, mvd.ver);
                 DTRACE_BLOCK_VECTOR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu, GetBlockStatisticName(BlockStatistic::MVL1), mv.hor, mv.ver);
               }
@@ -569,12 +557,8 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea)
               {
                 for (int refIdx = 0; refIdx < 2; refIdx++)
                 {
-#if REMOVE_MV_ADAPT_PREC
                   mi[triangleIdx].mv[refIdx].hor = mi[triangleIdx].mv[refIdx].hor >= 0 ? (mi[triangleIdx].mv[refIdx].hor + nOffset) >> nShift : -((-mi[triangleIdx].mv[refIdx].hor + nOffset) >> nShift);
                   mi[triangleIdx].mv[refIdx].ver = mi[triangleIdx].mv[refIdx].ver >= 0 ? (mi[triangleIdx].mv[refIdx].ver + nOffset) >> nShift : -((-mi[triangleIdx].mv[refIdx].ver + nOffset) >> nShift);
-#else
-                  mv[triangleIdx].setLowPrec();
-#endif
                   if (mi[triangleIdx].refIdx[refIdx] != -1)
                   {
                     DTRACE_POLYGON_VECTOR(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu.cu->slice->getPOC(), triangleCorners[triangleIdx], GetBlockStatisticName(refIdx==0?BlockStatistic::TriangleMVL0:BlockStatistic::TriangleMVL1), mi[triangleIdx].mv[refIdx].hor, mi[triangleIdx].mv[refIdx].ver);
@@ -593,18 +577,12 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea)
                 mv[1] = mb.at(mb.width - 1, 0).mv[REF_PIC_LIST_0];
                 mv[2] = mb.at(0, mb.height - 1).mv[REF_PIC_LIST_0];
                 // motion vectors should use low precision or they will appear to large
-#if REMOVE_MV_ADAPT_PREC
                 mv[0].hor = mv[0].hor >= 0 ? (mv[0].hor + nOffset) >> nShift : -((-mv[0].hor + nOffset) >> nShift);
                 mv[0].ver = mv[0].ver >= 0 ? (mv[0].ver + nOffset) >> nShift : -((-mv[0].ver + nOffset) >> nShift);
                 mv[1].hor = mv[1].hor >= 0 ? (mv[1].hor + nOffset) >> nShift : -((-mv[1].hor + nOffset) >> nShift);
                 mv[1].ver = mv[1].ver >= 0 ? (mv[1].ver + nOffset) >> nShift : -((-mv[1].ver + nOffset) >> nShift);
                 mv[2].hor = mv[2].hor >= 0 ? (mv[2].hor + nOffset) >> nShift : -((-mv[2].hor + nOffset) >> nShift);
                 mv[2].ver = mv[2].ver >= 0 ? (mv[2].ver + nOffset) >> nShift : -((-mv[2].ver + nOffset) >> nShift);
-#else
-                mv[0].setLowPrec();
-                mv[1].setLowPrec();
-                mv[2].setLowPrec();
-#endif
                 DTRACE_BLOCK_AFFINETF(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu, GetBlockStatisticName(BlockStatistic::AffineMVL0), mv[0].hor, mv[0].ver, mv[1].hor, mv[1].ver, mv[2].hor, mv[2].ver);
               }
               if (pu.interDir != 1 /* PRED_L1 */)
@@ -615,18 +593,12 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea)
                 mv[1] = mb.at(mb.width - 1, 0).mv[REF_PIC_LIST_1];
                 mv[2] = mb.at(0, mb.height - 1).mv[REF_PIC_LIST_1];
                 // motion vectors should use low precision or they will appear to large
-#if REMOVE_MV_ADAPT_PREC
                 mv[0].hor = mv[0].hor >= 0 ? (mv[0].hor + nOffset) >> nShift : -((-mv[0].hor + nOffset) >> nShift);
                 mv[0].ver = mv[0].ver >= 0 ? (mv[0].ver + nOffset) >> nShift : -((-mv[0].ver + nOffset) >> nShift);
                 mv[1].hor = mv[1].hor >= 0 ? (mv[1].hor + nOffset) >> nShift : -((-mv[1].hor + nOffset) >> nShift);
                 mv[1].ver = mv[1].ver >= 0 ? (mv[1].ver + nOffset) >> nShift : -((-mv[1].ver + nOffset) >> nShift);
                 mv[2].hor = mv[2].hor >= 0 ? (mv[2].hor + nOffset) >> nShift : -((-mv[2].hor + nOffset) >> nShift);
                 mv[2].ver = mv[2].ver >= 0 ? (mv[2].ver + nOffset) >> nShift : -((-mv[2].ver + nOffset) >> nShift);
-#else
-                mv[0].setLowPrec();
-                mv[1].setLowPrec();
-                mv[2].setLowPrec();
-#endif
                 DTRACE_BLOCK_AFFINETF(g_trace_ctx, D_BLOCK_STATISTICS_ALL, pu, GetBlockStatisticName(BlockStatistic::AffineMVL1), mv[0].hor, mv[0].ver, mv[1].hor, mv[1].ver, mv[2].hor, mv[2].ver);
               }
             }
@@ -710,10 +682,8 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea)
 
 void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea)
 {
-#if REMOVE_MV_ADAPT_PREC
   const int nShift = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   const int nOffset = 1 << (nShift - 1);
-#endif
   const int maxNumChannelType = cs.pcv->chrFormat != CHROMA_400 && CS::isDualITree(cs) ? 2 : 1;
 
   for (int ch = 0; ch < maxNumChannelType; ch++)
@@ -906,15 +876,10 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea)
               {
                 Mv mv = pu.mv[REF_PIC_LIST_0];
                 Mv mvd = pu.mvd[REF_PIC_LIST_0];
-#if REMOVE_MV_ADAPT_PREC
                 mv.hor = mv.hor >= 0 ? (mv.hor + nOffset) >> nShift : -((-mv.hor + nOffset) >> nShift);
                 mv.ver = mv.ver >= 0 ? (mv.ver + nOffset) >> nShift : -((-mv.ver + nOffset) >> nShift);
                 mvd.hor = mvd.hor >= 0 ? (mvd.hor + nOffset) >> nShift : -((-mvd.hor + nOffset) >> nShift);
                 mvd.ver = mvd.ver >= 0 ? (mvd.ver + nOffset) >> nShift : -((-mvd.ver + nOffset) >> nShift);
-#else
-                mv.setLowPrec();
-                mvd.setLowPrec();
-#endif
                 DTRACE_BLOCK_VECTOR(g_trace_ctx, D_BLOCK_STATISTICS_CODED, pu, GetBlockStatisticName(BlockStatistic::MVDL0), mvd.hor, mvd.ver);
                 DTRACE_BLOCK_VECTOR(g_trace_ctx, D_BLOCK_STATISTICS_CODED, pu, GetBlockStatisticName(BlockStatistic::MVL0), mv.hor, mv.ver);
               }
@@ -922,15 +887,10 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea)
               {
                 Mv mv = pu.mv[REF_PIC_LIST_1];
                 Mv mvd = pu.mvd[REF_PIC_LIST_1];
-#if REMOVE_MV_ADAPT_PREC
                 mv.hor = mv.hor >= 0 ? (mv.hor + nOffset) >> nShift : -((-mv.hor + nOffset) >> nShift);
                 mv.ver = mv.ver >= 0 ? (mv.ver + nOffset) >> nShift : -((-mv.ver + nOffset) >> nShift);
                 mvd.hor = mvd.hor >= 0 ? (mvd.hor + nOffset) >> nShift : -((-mvd.hor + nOffset) >> nShift);
                 mvd.ver = mvd.ver >= 0 ? (mvd.ver + nOffset) >> nShift : -((-mvd.ver + nOffset) >> nShift);
-#else
-                mv.setLowPrec();
-                mvd.setLowPrec();
-#endif
                 DTRACE_BLOCK_VECTOR(g_trace_ctx, D_BLOCK_STATISTICS_CODED, pu, GetBlockStatisticName(BlockStatistic::MVDL1), mvd.hor, mvd.ver);
                 DTRACE_BLOCK_VECTOR(g_trace_ctx, D_BLOCK_STATISTICS_CODED, pu, GetBlockStatisticName(BlockStatistic::MVL1), mv.hor, mv.ver);
               }
@@ -948,12 +908,8 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea)
               {
                 for (int refIdx = 0; refIdx < 2; refIdx++)
                 {
-#if REMOVE_MV_ADAPT_PREC
                   mi[triangleIdx].mv[refIdx].hor = mi[triangleIdx].mv[refIdx].hor >= 0 ? (mi[triangleIdx].mv[refIdx].hor + nOffset) >> nShift : -((-mi[triangleIdx].mv[refIdx].hor + nOffset) >> nShift);
                   mi[triangleIdx].mv[refIdx].ver = mi[triangleIdx].mv[refIdx].ver >= 0 ? (mi[triangleIdx].mv[refIdx].ver + nOffset) >> nShift : -((-mi[triangleIdx].mv[refIdx].ver + nOffset) >> nShift);
-#else
-                  mv[triangleIdx].setLowPrec();
-#endif
                   if (mi[triangleIdx].refIdx[refIdx] != -1)
                   {
                     DTRACE_POLYGON_VECTOR(g_trace_ctx, D_BLOCK_STATISTICS_CODED, pu.cu->slice->getPOC(), triangleCorners[triangleIdx], GetBlockStatisticName(refIdx==0?BlockStatistic::TriangleMVL0:BlockStatistic::TriangleMVL1), mi[triangleIdx].mv[refIdx].hor, mi[triangleIdx].mv[refIdx].ver);
@@ -972,18 +928,12 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea)
                 mv[1] = mb.at(mb.width - 1, 0).mv[REF_PIC_LIST_0];
                 mv[2] = mb.at(0, mb.height - 1).mv[REF_PIC_LIST_0];
                 // motion vectors should use low precision or they will appear to large
-#if REMOVE_MV_ADAPT_PREC
                 mv[0].hor = mv[0].hor >= 0 ? (mv[0].hor + nOffset) >> nShift : -((-mv[0].hor + nOffset) >> nShift);
                 mv[0].ver = mv[0].ver >= 0 ? (mv[0].ver + nOffset) >> nShift : -((-mv[0].ver + nOffset) >> nShift);
                 mv[1].hor = mv[1].hor >= 0 ? (mv[1].hor + nOffset) >> nShift : -((-mv[1].hor + nOffset) >> nShift);
                 mv[1].ver = mv[1].ver >= 0 ? (mv[1].ver + nOffset) >> nShift : -((-mv[1].ver + nOffset) >> nShift);
                 mv[2].hor = mv[2].hor >= 0 ? (mv[2].hor + nOffset) >> nShift : -((-mv[2].hor + nOffset) >> nShift);
                 mv[2].ver = mv[2].ver >= 0 ? (mv[2].ver + nOffset) >> nShift : -((-mv[2].ver + nOffset) >> nShift);
-#else
-                mv[0].setLowPrec();
-                mv[1].setLowPrec();
-                mv[2].setLowPrec();
-#endif
                 DTRACE_BLOCK_AFFINETF(g_trace_ctx, D_BLOCK_STATISTICS_CODED, pu, GetBlockStatisticName(BlockStatistic::AffineMVL0), mv[0].hor, mv[0].ver, mv[1].hor, mv[1].ver, mv[2].hor, mv[2].ver);
               }
               if (pu.interDir != 1 /* PRED_L1 */)
@@ -994,18 +944,12 @@ void writeAllCodedData(const CodingStructure & cs, const UnitArea & ctuArea)
                 mv[1] = mb.at(mb.width - 1, 0).mv[REF_PIC_LIST_1];
                 mv[2] = mb.at(0, mb.height - 1).mv[REF_PIC_LIST_1];
                 // motion vectors should use low precision or they will appear to large
-#if REMOVE_MV_ADAPT_PREC
                 mv[0].hor = mv[0].hor >= 0 ? (mv[0].hor + nOffset) >> nShift : -((-mv[0].hor + nOffset) >> nShift);
                 mv[0].ver = mv[0].ver >= 0 ? (mv[0].ver + nOffset) >> nShift : -((-mv[0].ver + nOffset) >> nShift);
                 mv[1].hor = mv[1].hor >= 0 ? (mv[1].hor + nOffset) >> nShift : -((-mv[1].hor + nOffset) >> nShift);
                 mv[1].ver = mv[1].ver >= 0 ? (mv[1].ver + nOffset) >> nShift : -((-mv[1].ver + nOffset) >> nShift);
                 mv[2].hor = mv[2].hor >= 0 ? (mv[2].hor + nOffset) >> nShift : -((-mv[2].hor + nOffset) >> nShift);
                 mv[2].ver = mv[2].ver >= 0 ? (mv[2].ver + nOffset) >> nShift : -((-mv[2].ver + nOffset) >> nShift);
-#else
-                mv[0].setLowPrec();
-                mv[1].setLowPrec();
-                mv[2].setLowPrec();
-#endif
                 DTRACE_BLOCK_AFFINETF(g_trace_ctx, D_BLOCK_STATISTICS_CODED, pu, GetBlockStatisticName(BlockStatistic::AffineMVL1), mv[0].hor, mv[0].ver, mv[1].hor, mv[1].ver, mv[2].hor, mv[2].ver);
               }
             }
diff --git a/source/Lib/DecoderLib/DecCu.cpp b/source/Lib/DecoderLib/DecCu.cpp
index c90d2b52b..5de6917ae 100644
--- a/source/Lib/DecoderLib/DecCu.cpp
+++ b/source/Lib/DecoderLib/DecCu.cpp
@@ -656,27 +656,18 @@ void DecCu::xDeriveCUMV( CodingUnit &cu )
               Mv mvLT = affineAMVPInfo.mvCandLT[mvp_idx] + pu.mvdAffi[eRefList][0];
               Mv mvRT = affineAMVPInfo.mvCandRT[mvp_idx] + pu.mvdAffi[eRefList][1];
               mvRT += pu.mvdAffi[eRefList][0];
-#if REMOVE_MV_ADAPT_PREC
               mvLT.hor = mvLT.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
               mvLT.ver = mvLT.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
               mvRT.hor = mvRT.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
               mvRT.ver = mvRT.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#else
-              CHECK(!mvLT.highPrec, "unexpected lp mv");
-              CHECK(!mvRT.highPrec, "unexpected lp mv");
-#endif
 
               Mv mvLB;
               if ( cu.affineType == AFFINEMODEL_6PARAM )
               {
                 mvLB = affineAMVPInfo.mvCandLB[mvp_idx] + pu.mvdAffi[eRefList][2];
                 mvLB += pu.mvdAffi[eRefList][0];
-#if REMOVE_MV_ADAPT_PREC
                 mvLB.hor = mvLB.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
                 mvLB.ver = mvLB.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#else
-                CHECK(!mvLB.highPrec, "unexpected lp mv");
-#endif
               }
               PU::setAllAffineMv( pu, mvLT, mvRT, mvLB, eRefList );
             }
@@ -707,15 +698,8 @@ void DecCu::xDeriveCUMV( CodingUnit &cu )
               pu.mv     [eRefList] = amvpInfo.mvCand[pu.mvpIdx [eRefList]] + pu.mvd[eRefList];
 #endif
 
-#if REMOVE_MV_ADAPT_PREC
               pu.mv[eRefList].hor = pu.mv[eRefList].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
               pu.mv[eRefList].ver = pu.mv[eRefList].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#else
-              if( pu.cs->sps->getSpsNext().getUseAffine() )
-              {
-                pu.mv[eRefList].setHighPrec();
-              }
-#endif
             }
           }
         }
diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp
index 80a65890e..bc7101518 100644
--- a/source/Lib/DecoderLib/VLCReader.cpp
+++ b/source/Lib/DecoderLib/VLCReader.cpp
@@ -791,9 +791,6 @@ void HLSyntaxReader::parseSPSNext( SPSNext& spsNext, const bool usePCM )
   READ_FLAG( symbol,    "large_ctu_flag" );                         spsNext.setUseLargeCTU            ( symbol != 0 );
   READ_FLAG( symbol,    "subpu_tmvp_flag" );                        spsNext.setSubPuMvpMode           (symbol);
   READ_FLAG( symbol,    "imv_enable_flag" );                        spsNext.setUseIMV                 ( symbol != 0 );
-#if !REMOVE_MV_ADAPT_PREC
-  READ_FLAG( symbol, "high_precision_motion_vectors" );             spsNext.setUseHighPrecMv(symbol != 0);
-#endif
 #if JVET_L0256_BIO
   READ_FLAG( symbol, "bio_enable_flag" );                           spsNext.setUseBIO                 ( symbol != 0 );
 #endif
diff --git a/source/Lib/EncoderLib/CABACWriter.cpp b/source/Lib/EncoderLib/CABACWriter.cpp
index 6197f1f9f..e8906d401 100644
--- a/source/Lib/EncoderLib/CABACWriter.cpp
+++ b/source/Lib/EncoderLib/CABACWriter.cpp
@@ -1996,15 +1996,6 @@ void CABACWriter::mvd_coding( const Mv &rMvd, uint8_t imv )
   unsigned  horAbs  = unsigned( horMvd < 0 ? -horMvd : horMvd );
   unsigned  verAbs  = unsigned( verMvd < 0 ? -verMvd : verMvd );
 
-#if !REMOVE_MV_ADAPT_PREC
-  if (rMvd.highPrec)
-  {
-    CHECK(horAbs & ((1 << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE) - 1), "mvd-x has high precision fractional part.");
-    CHECK(verAbs & ((1 << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE) - 1), "mvd-y has high precision fractional part.");
-    horAbs >>= VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-    verAbs >>= VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-  }
-#endif
 
   // abs_mvd_greater0_flag[ 0 | 1 ]
   m_BinEncoder.encodeBin( (horAbs > 0), Ctx::Mvd() );
diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h
index bf5375dd2..2941d09bb 100644
--- a/source/Lib/EncoderLib/EncCfg.h
+++ b/source/Lib/EncoderLib/EncCfg.h
@@ -217,9 +217,6 @@ protected:
 #endif 
   bool      m_Affine;
   bool      m_AffineType;
-#if !REMOVE_MV_ADAPT_PREC
-  bool      m_highPrecMv;
-#endif
 #if JVET_L0256_BIO
   bool      m_BIO;
 #endif
@@ -714,10 +711,6 @@ public:
   bool      getAffine                       ()         const { return m_Affine; }
   void      setAffineType( bool b )                          { m_AffineType = b; }
   bool      getAffineType()                            const { return m_AffineType; }
-#if !REMOVE_MV_ADAPT_PREC
-  void      setHighPrecisionMv              ( bool b )       { m_highPrecMv = b; }
-  bool      getHighPrecisionMv              ()               { return m_highPrecMv; }
-#endif
 #if JVET_L0256_BIO
   void      setBIO(bool b)                                   { m_BIO = b; }
   bool      getBIO()                                   const { return m_BIO; }
diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp
index 4949777b1..42aca557f 100644
--- a/source/Lib/EncoderLib/EncLib.cpp
+++ b/source/Lib/EncoderLib/EncLib.cpp
@@ -868,9 +868,6 @@ void EncLib::xInitSPS(SPS &sps)
 #endif 
   sps.getSpsNext().setImvMode               ( ImvMode(m_ImvMode) );
   sps.getSpsNext().setUseIMV                ( m_ImvMode != IMV_OFF );
-#if !REMOVE_MV_ADAPT_PREC
-  sps.getSpsNext().setUseHighPrecMv         ( m_highPrecMv );
-#endif
 #if JVET_L0256_BIO
   sps.getSpsNext().setUseBIO                ( m_BIO );
 #endif
diff --git a/source/Lib/EncoderLib/InterSearch.cpp b/source/Lib/EncoderLib/InterSearch.cpp
index 35afb9845..6323700a0 100644
--- a/source/Lib/EncoderLib/InterSearch.cpp
+++ b/source/Lib/EncoderLib/InterSearch.cpp
@@ -1419,10 +1419,8 @@ bool InterSearch::predCPRSearch(CodingUnit& cu, Partitioner& partitioner, const
 
     pu.refIdx[REF_PIC_LIST_0] = pu.cs->slice->getNumRefIdx(REF_PIC_LIST_0) - 1;
 
-#if REMOVE_MV_ADAPT_PREC
 	pu.mv[REF_PIC_LIST_0].hor = pu.mv[REF_PIC_LIST_0].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
 	pu.mv[REF_PIC_LIST_0].ver = pu.mv[REF_PIC_LIST_0].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
 
     m_ctuRecord[cu.lumaPos()][cu.lumaSize()].bvRecord[pu.bv] = cost;
   }
@@ -1734,10 +1732,8 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner)
           cMvBi    [1] = cMvPredBi[1][bestBiPRefIdxL1];
           iRefIdxBi[1] = bestBiPRefIdxL1;
           pu.mv    [REF_PIC_LIST_1] = cMvBi[1];
-#if REMOVE_MV_ADAPT_PREC
           pu.mv[REF_PIC_LIST_1].hor = pu.mv[REF_PIC_LIST_1].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
           pu.mv[REF_PIC_LIST_1].ver = pu.mv[REF_PIC_LIST_1].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
           pu.refIdx[REF_PIC_LIST_1] = iRefIdxBi[1];
           pu.mvpIdx[REF_PIC_LIST_1] = bestBiPMvpL1;
 
@@ -1809,10 +1805,8 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner)
           if ( iIter == 0 && !cs.slice->getMvdL1ZeroFlag())
           {
             pu.mv    [1 - iRefList] = cMv    [1 - iRefList];
-#if REMOVE_MV_ADAPT_PREC
             pu.mv[1 - iRefList].hor = pu.mv[1 - iRefList].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
             pu.mv[1 - iRefList].ver = pu.mv[1 - iRefList].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
             pu.refIdx[1 - iRefList] = iRefIdx[1 - iRefList];
 
             PelUnitBuf predBufTmp = m_tmpPredStorage[1 - iRefList].getBuf( UnitAreaRelative(cu, pu) );
@@ -1883,10 +1877,8 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner)
               {
                 //  Set motion
                 pu.mv    [eRefPicList] = cMvBi    [iRefList];
-#if REMOVE_MV_ADAPT_PREC
                 pu.mv[eRefPicList].hor = pu.mv[eRefPicList].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
                 pu.mv[eRefPicList].ver = pu.mv[eRefPicList].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
                 pu.refIdx[eRefPicList] = iRefIdxBi[iRefList];
 
                 PelUnitBuf predBufTmp = m_tmpPredStorage[iRefList].getBuf( UnitAreaRelative(cu, pu) );
@@ -1955,12 +1947,10 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner)
         uiLastMode = 2;
         pu.mv    [REF_PIC_LIST_0] = cMvBi[0];
         pu.mv    [REF_PIC_LIST_1] = cMvBi[1];
-#if REMOVE_MV_ADAPT_PREC
         pu.mv[REF_PIC_LIST_0].hor = pu.mv[REF_PIC_LIST_0].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         pu.mv[REF_PIC_LIST_0].ver = pu.mv[REF_PIC_LIST_0].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         pu.mv[REF_PIC_LIST_1].hor = pu.mv[REF_PIC_LIST_1].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         pu.mv[REF_PIC_LIST_1].ver = pu.mv[REF_PIC_LIST_1].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
         pu.mvd   [REF_PIC_LIST_0] = cMvBi[0] - cMvPredBi[0][iRefIdxBi[0]];
         pu.mvd   [REF_PIC_LIST_1] = cMvBi[1] - cMvPredBi[1][iRefIdxBi[1]];
         pu.refIdx[REF_PIC_LIST_0] = iRefIdxBi[0];
@@ -1975,10 +1965,8 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner)
       {
         uiLastMode = 0;
         pu.mv    [REF_PIC_LIST_0] = cMv[0];
-#if REMOVE_MV_ADAPT_PREC
         pu.mv    [REF_PIC_LIST_0].hor = pu.mv[REF_PIC_LIST_0].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         pu.mv    [REF_PIC_LIST_0].ver = pu.mv[REF_PIC_LIST_0].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
         pu.mvd   [REF_PIC_LIST_0] = cMv[0] - cMvPred[0][iRefIdx[0]];
         pu.refIdx[REF_PIC_LIST_0] = iRefIdx[0];
         pu.mvpIdx[REF_PIC_LIST_0] = aaiMvpIdx[0][iRefIdx[0]];
@@ -1989,10 +1977,8 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner)
       {
         uiLastMode = 1;
         pu.mv    [REF_PIC_LIST_1] = cMv[1];
-#if REMOVE_MV_ADAPT_PREC
         pu.mv    [REF_PIC_LIST_1].hor = pu.mv[REF_PIC_LIST_1].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         pu.mv    [REF_PIC_LIST_1].ver = pu.mv[REF_PIC_LIST_1].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
         pu.mvd   [REF_PIC_LIST_1] = cMv[1] - cMvPred[1][iRefIdx[1]];
         pu.refIdx[REF_PIC_LIST_1] = iRefIdx[1];
         pu.mvpIdx[REF_PIC_LIST_1] = aaiMvpIdx[1][iRefIdx[1]];
@@ -2113,14 +2099,10 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner)
             }
 
             PU::setAllAffineMv( pu, bestMv[0][0], bestMv[0][1], bestMv[0][2], REF_PIC_LIST_0 
-#if REMOVE_MV_ADAPT_PREC
               , false
-#endif
             );
             PU::setAllAffineMv( pu, bestMv[1][0], bestMv[1][1], bestMv[1][2], REF_PIC_LIST_1 
-#if REMOVE_MV_ADAPT_PREC
               , false
-#endif
             );
           }
           else
@@ -2342,10 +2324,8 @@ Distortion InterSearch::xGetTemplateCost( const PredictionUnit& pu,
   Distortion uiCost = std::numeric_limits<Distortion>::max();
 
   const Picture* picRef = pu.cu->slice->getRefPic( eRefPicList, iRefIdx );
-#if REMOVE_MV_ADAPT_PREC
   cMvCand.hor = cMvCand.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   cMvCand.ver = cMvCand.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
   clipMv( cMvCand, pu.cu->lumaPos(),
 #if JVET_L0231_WRAPAROUND
           pu.cu->lumaSize(),
@@ -2387,7 +2367,6 @@ Distortion InterSearch::xGetAffineTemplateCost( PredictionUnit& pu, PelUnitBuf&
 
   // prediction pattern
   const bool bi = pu.cu->slice->testWeightPred() && pu.cu->slice->getSliceType()==P_SLICE;
-#if REMOVE_MV_ADAPT_PREC
   Mv mv[3];
   mv[0].hor = acMvCand[0].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   mv[0].ver = acMvCand[0].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
@@ -2396,9 +2375,6 @@ Distortion InterSearch::xGetAffineTemplateCost( PredictionUnit& pu, PelUnitBuf&
   mv[2].hor = acMvCand[2].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   mv[2].ver = acMvCand[2].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   xPredAffineBlk(COMPONENT_Y, pu, picRef, mv, predBuf, bi, pu.cu->slice->clpRng(COMPONENT_Y));
-#else
-  xPredAffineBlk(COMPONENT_Y, pu, picRef, acMvCand, predBuf, bi, pu.cu->slice->clpRng(COMPONENT_Y));
-#endif
   if( bi )
   {
     xWeightedPredictionUni( pu, predBuf, eRefPicList, predBuf, iRefIdx, m_maxCompIDToPred );
@@ -2558,11 +2534,7 @@ void InterSearch::xMotionEstimation(PredictionUnit& pu, PelUnitBuf& origBuf, Ref
   {
     xPatternSearchIntRefine( pu, cStruct, rcMv, rcMvPred, riMVPIdx, ruiBits, ruiCost, amvpInfo, fWeight);
   }
-#if REMOVE_MV_ADAPT_PREC
   DTRACE(g_trace_ctx, D_ME, "   MECost<L%d,%d>: %6d (%d)  MV:%d,%d\n", (int)eRefPicList, (int)bBi, ruiCost, ruiBits, rcMv.getHor() << 2, rcMv.getVer() << 2);
-#else
-  DTRACE(g_trace_ctx, D_ME, "   MECost<L%d,%d>: %6d (%d)  MV:%d,%d\n", (int)eRefPicList, (int)bBi, ruiCost, ruiBits, rcMv.getHor() << (pu.cs->sps->getSpsNext().getUseHighPrecMv() ? 2 : 0), rcMv.getVer() << (pu.cs->sps->getSpsNext().getUseHighPrecMv() ? 2 : 0));
-#endif
 }
 
 
@@ -2574,33 +2546,18 @@ void InterSearch::xSetSearchRange ( const PredictionUnit& pu,
                                   , IntTZSearchStruct& cStruct
 )
 {
-#if !REMOVE_MV_ADAPT_PREC
-  const int iMvShift = cMvPred.highPrec ? 4 : 2;
-#else
-#if REMOVE_MV_ADAPT_PREC
   const int iMvShift = 2 + VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#else
-  const int iMvShift = 2;
-#endif
-#endif
   Mv cFPMvPred = cMvPred;
-#if REMOVE_MV_ADAPT_PREC
   cFPMvPred.hor = cFPMvPred.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   cFPMvPred.ver = cFPMvPred.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
   clipMv( cFPMvPred, pu.cu->lumaPos(),
 #if JVET_L0231_WRAPAROUND
           pu.cu->lumaSize(),
 #endif
           *pu.cs->sps );
 
-#if !REMOVE_MV_ADAPT_PREC
-  Mv mvTL(cFPMvPred.getHor() - (iSrchRng << iMvShift), cFPMvPred.getVer() - (iSrchRng << iMvShift), cFPMvPred.highPrec);
-  Mv mvBR(cFPMvPred.getHor() + (iSrchRng << iMvShift), cFPMvPred.getVer() + (iSrchRng << iMvShift), cFPMvPred.highPrec);
-#else
   Mv mvTL(cFPMvPred.getHor() - (iSrchRng << iMvShift), cFPMvPred.getVer() - (iSrchRng << iMvShift));
   Mv mvBR(cFPMvPred.getHor() + (iSrchRng << iMvShift), cFPMvPred.getVer() + (iSrchRng << iMvShift));
-#endif
 
   clipMv( mvTL, pu.cu->lumaPos(),
 #if JVET_L0231_WRAPAROUND
@@ -2687,9 +2644,6 @@ void InterSearch::xPatternSearch( IntTZSearchStruct&    cStruct,
     }
     piRef += cStruct.iRefStride;
   }
-#if !REMOVE_MV_ADAPT_PREC
-  CHECK(rcMv.highPrec, "Unexpected high precision MV.");
-#endif
   rcMv.set( iBestX, iBestY );
 
   cStruct.uiBestSad = uiSadBest; // th for testing
@@ -2757,19 +2711,15 @@ void InterSearch::xTZSearch( const PredictionUnit& pu,
   const bool bNewZeroNeighbourhoodTest               = bExtendedSettings;
 
   int iSearchRange = m_iSearchRange;
-#if REMOVE_MV_ADAPT_PREC
   rcMv.hor = rcMv.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   rcMv.ver = rcMv.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
   clipMv( rcMv, pu.cu->lumaPos(),
 #if JVET_L0231_WRAPAROUND
           pu.cu->lumaSize(),
 #endif
           *pu.cs->sps );
-#if REMOVE_MV_ADAPT_PREC
   rcMv.hor = rcMv.hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   rcMv.ver = rcMv.ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
   rcMv.divideByPowerOf2(2);
 
   // init TZSearchStruct
@@ -2802,19 +2752,15 @@ void InterSearch::xTZSearch( const PredictionUnit& pu,
   {
     Mv integerMv2Nx2NPred = *pIntegerMv2Nx2NPred;
     integerMv2Nx2NPred <<= 2;
-#if REMOVE_MV_ADAPT_PREC
     integerMv2Nx2NPred.hor = integerMv2Nx2NPred.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
     integerMv2Nx2NPred.ver = integerMv2Nx2NPred.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
     clipMv( integerMv2Nx2NPred, pu.cu->lumaPos(),
 #if JVET_L0231_WRAPAROUND
             pu.cu->lumaSize(),
 #endif
             *pu.cs->sps );
-#if REMOVE_MV_ADAPT_PREC
     integerMv2Nx2NPred.hor = integerMv2Nx2NPred.hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
     integerMv2Nx2NPred.ver = integerMv2Nx2NPred.ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
     integerMv2Nx2NPred.divideByPowerOf2(2);
 
     if ((rcMv != integerMv2Nx2NPred) &&
@@ -3014,9 +2960,6 @@ void InterSearch::xTZSearch( const PredictionUnit& pu,
   }
 
   // write out best match
-#if !REMOVE_MV_ADAPT_PREC
-  CHECK(rcMv.highPrec, "Unexpected high precision MV.");
-#endif
   rcMv.set( cStruct.iBestX, cStruct.iBestY );
   ruiSAD = cStruct.uiBestSad - m_pcRdCost->getCostOfVectorWithPredictor( cStruct.iBestX, cStruct.iBestY, cStruct.imvShift );
 }
@@ -3043,19 +2986,15 @@ void InterSearch::xTZSearchSelective( const PredictionUnit& pu,
   int   iStartX                 = 0;
   int   iStartY                 = 0;
   int   iDist                   = 0;
-#if REMOVE_MV_ADAPT_PREC
   rcMv.hor = rcMv.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   rcMv.ver = rcMv.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
   clipMv( rcMv, pu.cu->lumaPos(),
 #if JVET_L0231_WRAPAROUND
           pu.cu->lumaSize(),
 #endif
           *pu.cs->sps );
-#if REMOVE_MV_ADAPT_PREC
   rcMv.hor = rcMv.hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   rcMv.ver = rcMv.ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
   rcMv.divideByPowerOf2(2);
 
   // init TZSearchStruct
@@ -3082,19 +3021,15 @@ void InterSearch::xTZSearchSelective( const PredictionUnit& pu,
   {
     Mv integerMv2Nx2NPred = *pIntegerMv2Nx2NPred;
     integerMv2Nx2NPred <<= 2;
-#if REMOVE_MV_ADAPT_PREC
     integerMv2Nx2NPred.hor = integerMv2Nx2NPred.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
     integerMv2Nx2NPred.ver = integerMv2Nx2NPred.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
     clipMv( integerMv2Nx2NPred, pu.cu->lumaPos(),
 #if JVET_L0231_WRAPAROUND
             pu.cu->lumaSize(),
 #endif
             *pu.cs->sps );
-#if REMOVE_MV_ADAPT_PREC
     integerMv2Nx2NPred.hor = integerMv2Nx2NPred.hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
     integerMv2Nx2NPred.ver = integerMv2Nx2NPred.ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
     integerMv2Nx2NPred.divideByPowerOf2(2);
 
     xTZSearchHelp( cStruct, integerMv2Nx2NPred.getHor(), integerMv2Nx2NPred.getVer(), 0, 0);
@@ -3179,9 +3114,6 @@ void InterSearch::xTZSearchSelective( const PredictionUnit& pu,
   }
 
   // write out best match
-#if !REMOVE_MV_ADAPT_PREC
-  CHECK(rcMv.highPrec, "Unexpected high precision MV.");
-#endif
   rcMv.set( cStruct.iBestX, cStruct.iBestY );
   ruiSAD = cStruct.uiBestSad - m_pcRdCost->getCostOfVectorWithPredictor( cStruct.iBestX, cStruct.iBestY, cStruct.imvShift );
 }
@@ -3237,19 +3169,15 @@ void InterSearch::xPatternSearchIntRefine(PredictionUnit& pu, IntTZSearchStruct&
       if ( iMVPIdx == 0 || cTestMv[0] != cTestMv[1])
       {
         Mv cTempMV = cTestMv[iMVPIdx];
-#if REMOVE_MV_ADAPT_PREC
         cTempMV.hor = cTempMV.hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         cTempMV.ver = cTempMV.ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
         clipMv(cTempMV, pu.cu->lumaPos(),
 #if JVET_L0231_WRAPAROUND
                pu.cu->lumaSize(),
 #endif
                sps);
-#if REMOVE_MV_ADAPT_PREC
         cTempMV.hor = cTempMV.hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         cTempMV.ver = cTempMV.ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
         m_cDistParam.cur.buf = cStruct.piRefY  + cStruct.iRefStride * (cTempMV.getVer() >>  2) + (cTempMV.getHor() >> 2);
         uiDist = uiSATD = (Distortion) (m_cDistParam.distFunc( m_cDistParam ) * fWeight);
       }
@@ -3499,11 +3427,9 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
           int mvScaleHor = nbMv[0].getHor() << shift;
           int mvScaleVer = nbMv[0].getVer() << shift;
           Mv dMv = nbMv[1] - nbMv[0];
-#if REMOVE_MV_ADAPT_PREC
           mvScaleHor <<= VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
           mvScaleVer <<= VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
           dMv <<= VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
           dMvHorX = dMv.getHor() << (shift - g_aucLog2[mvInfo->w]);
           dMvHorY = dMv.getVer() << (shift - g_aucLog2[mvInfo->w]);
           dMvVerX = -dMvHorY;
@@ -3528,12 +3454,10 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
 #endif
                  *pu.cs->sps);
           mvTmp[1].roundMV2SignalPrecision();
-#if REMOVE_MV_ADAPT_PREC
           mvTmp[0].hor = mvTmp[0].hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
           mvTmp[0].ver = mvTmp[0].ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
           mvTmp[1].hor = mvTmp[1].hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
           mvTmp[1].ver = mvTmp[1].ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
           Distortion tmpCost = xGetAffineTemplateCost(pu, origBuf, predBuf, mvTmp, aaiMvpIdx[iRefList][iRefIdxTemp], AMVP_MAX_NUM_CANDS, eRefPicList, iRefIdxTemp);
           if (tmpCost < uiCandCost)
           {
@@ -3546,40 +3470,30 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
       if ( pu.cu->affineType == AFFINEMODEL_6PARAM )
       {
         Mv mvFour[3];
-#if REMOVE_MV_ADAPT_PREC
         mvAffine4Para[iRefList][iRefIdxTemp][0].hor = mvAffine4Para[iRefList][iRefIdxTemp][0].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         mvAffine4Para[iRefList][iRefIdxTemp][0].ver = mvAffine4Para[iRefList][iRefIdxTemp][0].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         mvAffine4Para[iRefList][iRefIdxTemp][1].hor = mvAffine4Para[iRefList][iRefIdxTemp][1].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         mvAffine4Para[iRefList][iRefIdxTemp][1].ver = mvAffine4Para[iRefList][iRefIdxTemp][1].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
         mvFour[0] = mvAffine4Para[iRefList][iRefIdxTemp][0];
         mvFour[1] = mvAffine4Para[iRefList][iRefIdxTemp][1];
-#if REMOVE_MV_ADAPT_PREC
         mvAffine4Para[iRefList][iRefIdxTemp][0].hor = mvAffine4Para[iRefList][iRefIdxTemp][0].hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         mvAffine4Para[iRefList][iRefIdxTemp][0].ver = mvAffine4Para[iRefList][iRefIdxTemp][0].ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         mvAffine4Para[iRefList][iRefIdxTemp][1].hor = mvAffine4Para[iRefList][iRefIdxTemp][1].hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         mvAffine4Para[iRefList][iRefIdxTemp][1].ver = mvAffine4Para[iRefList][iRefIdxTemp][1].ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
 
         int shift = MAX_CU_DEPTH;
         int vx2 = (mvFour[0].getHor() << shift) - ((mvFour[1].getVer() - mvFour[0].getVer()) << (shift + g_aucLog2[pu.lheight()] - g_aucLog2[pu.lwidth()]));
         int vy2 = (mvFour[0].getVer() << shift) + ((mvFour[1].getHor() - mvFour[0].getHor()) << (shift + g_aucLog2[pu.lheight()] - g_aucLog2[pu.lwidth()]));
         vx2 >>= shift;
         vy2 >>= shift;
-#if REMOVE_MV_ADAPT_PREC
         mvFour[2].hor = vx2;
         mvFour[2].ver = vy2;
-#else
-        mvFour[2] = Mv(vx2, vy2, true);
-#endif
         mvFour[2].roundMV2SignalPrecision();
-#if REMOVE_MV_ADAPT_PREC
         for (int i = 0; i < 3; i++)
         {
           mvFour[i].hor = mvFour[i].hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
           mvFour[i].ver = mvFour[i].ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
         }
-#endif
         Distortion uiCandCostInherit = xGetAffineTemplateCost( pu, origBuf, predBuf, mvFour, aaiMvpIdx[iRefList][iRefIdxTemp], AMVP_MAX_NUM_CANDS, eRefPicList, iRefIdxTemp );
         if ( uiCandCostInherit < uiCandCost )
         {
@@ -3623,11 +3537,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
           for (int iVerIdx = 0; iVerIdx < mvNum; iVerIdx++)
           {
             m_pcRdCost->setPredictor( cMvPred[iRefList][iRefIdxTemp][iVerIdx] );
-#if REMOVE_MV_ADAPT_PREC
             const int shift = 0;
-#else
-            const int shift = cMvTemp[1][iRefIdxTemp][iVerIdx].highPrec ? VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : 0;
-#endif
             Mv secondPred;
             if ( iVerIdx != 0 )
             {
@@ -3758,9 +3668,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
 
       // Get list1 prediction block
       PU::setAllAffineMv( pu, cMvBi[1][0], cMvBi[1][1], cMvBi[1][2], REF_PIC_LIST_1 
-#if REMOVE_MV_ADAPT_PREC
         , true
-#endif
       );
       pu.refIdx[REF_PIC_LIST_1] = iRefIdxBi[1];
 
@@ -3827,9 +3735,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
       if( iIter == 0 && !slice.getMvdL1ZeroFlag() )
       {
         PU::setAllAffineMv( pu, aacMv[1-iRefList][0], aacMv[1-iRefList][1], aacMv[1-iRefList][2], RefPicList(1-iRefList) 
-#if REMOVE_MV_ADAPT_PREC
           , true
-#endif
         );
         pu.refIdx[1-iRefList] = iRefIdx[1-iRefList];
 
@@ -3906,9 +3812,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
           {
             //  Set motion
             PU::setAllAffineMv( pu, cMvBi[iRefList][0], cMvBi[iRefList][1], cMvBi[iRefList][2], eRefPicList 
-#if REMOVE_MV_ADAPT_PREC
               , true
-#endif
             );
             pu.refIdx[eRefPicList] = iRefIdxBi[eRefPicList];
             PelUnitBuf predBufTmp = m_tmpPredStorage[iRefList].getBuf( UnitAreaRelative(*pu.cu, pu) );
@@ -3976,14 +3880,10 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
     affineCost = uiCostBi;
 
     PU::setAllAffineMv( pu, cMvBi[0][0], cMvBi[0][1], cMvBi[0][2], REF_PIC_LIST_0 
-#if REMOVE_MV_ADAPT_PREC
       , true
-#endif
     );
     PU::setAllAffineMv( pu, cMvBi[1][0], cMvBi[1][1], cMvBi[1][2], REF_PIC_LIST_1 
-#if REMOVE_MV_ADAPT_PREC
       , true
-#endif
     );
     pu.refIdx[REF_PIC_LIST_0] = iRefIdxBi[0];
     pu.refIdx[REF_PIC_LIST_1] = iRefIdxBi[1];
@@ -4012,9 +3912,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
     affineCost = uiCost[0];
 
     PU::setAllAffineMv( pu, aacMv[0][0], aacMv[0][1], aacMv[0][2], REF_PIC_LIST_0 
-#if REMOVE_MV_ADAPT_PREC
       , true
-#endif
     );
     pu.refIdx[REF_PIC_LIST_0] = iRefIdx[0];
 
@@ -4037,9 +3935,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
     affineCost = uiCost[1];
 
     PU::setAllAffineMv( pu, aacMv[1][0], aacMv[1][1], aacMv[1][2], REF_PIC_LIST_1 
-#if REMOVE_MV_ADAPT_PREC
       , true
-#endif
     );
     pu.refIdx[REF_PIC_LIST_1] = iRefIdx[1];
 
@@ -4154,11 +4050,7 @@ void InterSearch::xCheckBestAffineMVP( PredictionUnit &pu, AffineAMVPInfo &affin
   for ( int iVerIdx = 0; iVerIdx < mvNum; iVerIdx++ )
   {
     m_pcRdCost->setPredictor ( acMvPred[iVerIdx] );
-#if REMOVE_MV_ADAPT_PREC
     const int shift = 0;
-#else
-    const int shift = acMv[iVerIdx].highPrec ? VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : 0;
-#endif
 
     Mv secondPred;
     if ( iVerIdx != 0 )
@@ -4183,11 +4075,7 @@ void InterSearch::xCheckBestAffineMVP( PredictionUnit &pu, AffineAMVPInfo &affin
     {
       m_pcRdCost->setPredictor( iVerIdx == 2 ? affineAMVPInfo.mvCandLB[iMVPIdx] :
         (iVerIdx == 1 ? affineAMVPInfo.mvCandRT[iMVPIdx] : affineAMVPInfo.mvCandLT[iMVPIdx]) );
-#if REMOVE_MV_ADAPT_PREC
       const int shift = 0;
-#else
-      const int shift = acMv[iVerIdx].highPrec ? VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : 0;
-#endif
 
       Mv secondPred;
       if ( iVerIdx != 0 )
@@ -4272,18 +4160,12 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
   // Set start Mv position, use input mv as started search mv
   Mv acMvTemp[3];
   ::memcpy( acMvTemp, acMv, sizeof(Mv)*3 );
-#if REMOVE_MV_ADAPT_PREC
   acMvTemp[0].hor = acMvTemp[0].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   acMvTemp[0].ver = acMvTemp[0].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   acMvTemp[1].hor = acMvTemp[1].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   acMvTemp[1].ver = acMvTemp[1].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   acMvTemp[2].hor = acMvTemp[2].hor << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   acMvTemp[2].ver = acMvTemp[2].ver << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#else
-  acMvTemp[0].setHighPrec();
-  acMvTemp[1].setHighPrec();
-  acMvTemp[2].setHighPrec();
-#endif
 
   // Set delta mv
   // malloc buffer
@@ -4339,23 +4221,15 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
     DTRACE( g_trace_ctx, D_COMMON, "#mvPredForBits=(%d,%d) \n", acMvPred[i].getHor(), acMvPred[i].getVer() );
     m_pcRdCost->setPredictor( acMvPred[i] );
     DTRACE( g_trace_ctx, D_COMMON, "#mvForBits=(%d,%d) \n", acMvTemp[i].getHor(), acMvTemp[i].getVer() );
-#if REMOVE_MV_ADAPT_PREC
     Mv mv0;
     mv0.hor = acMvTemp[0].hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
     mv0.ver = acMvTemp[0].ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
     const int shift = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#else
-    const int shift = acMvTemp[i].highPrec ? VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : 0;
-#endif
     Mv secondPred;
     if ( i != 0 )
     {
-#if REMOVE_MV_ADAPT_PREC
       secondPred.hor = acMvPred[i].hor + mv0.hor - acMvPred[0].hor;
       secondPred.ver = acMvPred[i].ver + mv0.ver - acMvPred[0].ver;
-#else
-      secondPred = acMvPred[i] + (acMvTemp[0] - acMvPred[0]);
-#endif
       m_pcRdCost->setPredictor( secondPred );
     }
     uiBitsBest += m_pcRdCost->getBitsOfVectorWithPredictor( acMvTemp[i].getHor()>>shift, acMvTemp[i].getVer()>>shift, 0 );
@@ -4456,22 +4330,13 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
     }
 
     acDeltaMv[0] = Mv( (int)(dDeltaMv[0] * 4 + SIGN( dDeltaMv[0] ) * 0.5) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE, (int)(dDeltaMv[2] * 4 + SIGN( dDeltaMv[2] ) * 0.5) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
-#if !REMOVE_MV_ADAPT_PREC      
-      , true
-#endif
       );
     acDeltaMv[1] = Mv( (int)(dDeltaMv[1] * 4 + SIGN( dDeltaMv[1] ) * 0.5) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE, (int)(dDeltaMv[3] * 4 + SIGN( dDeltaMv[3] ) * 0.5) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
-#if !REMOVE_MV_ADAPT_PREC
-      , true
-#endif
       );
 
     if ( pu.cu->affineType == AFFINEMODEL_6PARAM )
     {
       acDeltaMv[2] = Mv( (int)(dDeltaMv[4] * 4 + SIGN( dDeltaMv[4] ) * 0.5) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE, (int)(dDeltaMv[5] * 4 + SIGN( dDeltaMv[5] ) * 0.5) << VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
-#if !REMOVE_MV_ADAPT_PREC
-        , true
-#endif
       );
     }
 
@@ -4514,23 +4379,15 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
     for ( int i = 0; i < mvNum; i++ )
     {
       m_pcRdCost->setPredictor( acMvPred[i] );
-#if REMOVE_MV_ADAPT_PREC
       Mv mv0;
       mv0.hor = acMvTemp[0].hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
       mv0.ver = acMvTemp[0].ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
       const int shift = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#else
-      const int shift = acMvTemp[i].highPrec ? VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : 0;
-#endif
       Mv secondPred;
       if ( i != 0 )
       {
-#if REMOVE_MV_ADAPT_PREC
         secondPred.hor = acMvPred[i].hor + mv0.hor - acMvPred[0].hor;
         secondPred.ver = acMvPred[i].ver + mv0.ver - acMvPred[0].ver;
-#else
-        secondPred = acMvPred[i] + (acMvTemp[0] - acMvPred[0]);
-#endif
         m_pcRdCost->setPredictor( secondPred );
       }
       uiBitsTemp += m_pcRdCost->getBitsOfVectorWithPredictor( acMvTemp[i].getHor()>>shift, acMvTemp[i].getVer()>>shift, 0 );
@@ -4559,23 +4416,15 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
     for (int i = 0; i < mvNum; i++)
     {
       m_pcRdCost->setPredictor(acMvPred[i]);
-#if REMOVE_MV_ADAPT_PREC
       Mv mv0;
       mv0.hor = ctrlPtMv[0].hor >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
       mv0.ver = ctrlPtMv[0].ver >> VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
       const int shift = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#else
-      const int shift = ctrlPtMv[i].highPrec ? VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE : 0;
-#endif
       Mv secondPred;
       if (i != 0)
       {
-#if REMOVE_MV_ADAPT_PREC
         secondPred.hor = acMvPred[i].hor + mv0.hor - acMvPred[0].hor;
         secondPred.ver = acMvPred[i].ver + mv0.ver - acMvPred[0].ver;
-#else
-        secondPred = acMvPred[i] + (ctrlPtMv[0] - acMvPred[0]);
-#endif
         m_pcRdCost->setPredictor(secondPred);
       }
       bitsTemp += m_pcRdCost->getBitsOfVectorWithPredictor(ctrlPtMv[i].getHor() >> shift, ctrlPtMv[i].getVer() >> shift, 0);
@@ -4593,11 +4442,9 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
   if (uiCostBest <= AFFINE_ME_LIST_MVP_TH*m_hevcCost)
   {
     Mv mvPredTmp[3] = { acMvPred[0], acMvPred[1], acMvPred[2] };
-#if REMOVE_MV_ADAPT_PREC
     mvPredTmp[0] <<= VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
     mvPredTmp[1] <<= VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
     mvPredTmp[2] <<= VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
-#endif
     Mv mvME[3];
     ::memcpy(mvME, acMv, sizeof(Mv) * 3);
     Mv dMv = mvME[0] - mvPredTmp[0];
@@ -4658,7 +4505,6 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
   }
 #endif
 
-#if REMOVE_MV_ADAPT_PREC
   const int nShift = VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE;
   const int nOffset = 1 << (nShift - 1);
   acMv[0].hor = acMv[0].hor >= 0 ? (acMv[0].hor + nOffset) >> nShift : -((-acMv[0].hor + nOffset) >> nShift);
@@ -4667,7 +4513,6 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
   acMv[1].ver = acMv[1].ver >= 0 ? (acMv[1].ver + nOffset) >> nShift : -((-acMv[1].ver + nOffset) >> nShift);
   acMv[2].hor = acMv[2].hor >= 0 ? (acMv[2].hor + nOffset) >> nShift : -((-acMv[2].hor + nOffset) >> nShift);
   acMv[2].ver = acMv[2].ver >= 0 ? (acMv[2].ver + nOffset) >> nShift : -((-acMv[2].ver + nOffset) >> nShift);
-#endif
 
   // free buffer
   for (int i = 0; i<iParaNum; i++)
@@ -4703,12 +4548,6 @@ void InterSearch::xEstimateAffineAMVP( PredictionUnit&  pu,
   for( int i = 0 ; i < affineAMVPInfo.numCand; i++ )
   {
     Mv mv[3] = { affineAMVPInfo.mvCandLT[i], affineAMVPInfo.mvCandRT[i], affineAMVPInfo.mvCandLB[i] };
-#if !REMOVE_MV_ADAPT_PREC
-    Mv mvTrace[3] = { affineAMVPInfo.mvCandLT[i], affineAMVPInfo.mvCandRT[i], affineAMVPInfo.mvCandLB[i] };
-    mvTrace[0].setHighPrec();
-    mvTrace[1].setHighPrec();
-    mvTrace[2].setHighPrec();
-#endif
 
     Distortion uiTmpCost = xGetAffineTemplateCost( pu, origBuf, predBuf, mv, i, AMVP_MAX_NUM_CANDS, eRefPicList, iRefIdx );
 
diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp
index 64821df89..20dd44479 100644
--- a/source/Lib/EncoderLib/VLCWriter.cpp
+++ b/source/Lib/EncoderLib/VLCWriter.cpp
@@ -531,9 +531,6 @@ void HLSWriter::codeSPSNext( const SPSNext& spsNext, const bool usePCM )
   WRITE_FLAG( spsNext.getUseLargeCTU() ? 1 : 0,                                                 "large_ctu_flag" );
   WRITE_FLAG(spsNext.getUseSubPuMvp() ? 1 : 0,                                                  "subpu_tmvp_flag");
   WRITE_FLAG( spsNext.getUseIMV() ? 1 : 0,                                                      "imv_enable_flag" );
-#if !REMOVE_MV_ADAPT_PREC
-  WRITE_FLAG( spsNext.getUseHighPrecMv() ? 1 : 0,                                               "high_precision_motion_vectors");
-#endif
 #if JVET_L0256_BIO
   WRITE_FLAG( spsNext.getUseBIO() ? 1 : 0,                                                      "bio_enable_flag" );
 #endif
-- 
GitLab