diff --git a/source/Lib/CommonLib/CommonDef.h b/source/Lib/CommonLib/CommonDef.h
index 9542468dc19803bc20588b1cc52bdd453bcea232..e5048550991b96f292533f33104543a375088acf 100644
--- a/source/Lib/CommonLib/CommonDef.h
+++ b/source/Lib/CommonLib/CommonDef.h
@@ -1164,7 +1164,6 @@ static const int MAX_RPR_SWITCHING_ORDER_LIST_SIZE           =     32; /// max n
 static const int NTAPS_BILINEAR           =                         2; ///< Number of taps for bilinear filter
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
 static const int NTAPS_LUMA_IBC           =                         8; ///< Number of taps for IBC luma filter
-static const int NTAPS_ALT_LUMA_IBC       =                         4; ///< Number of taps for alternative IBC luma filter
 #endif
 
 #if INTER_RM_SIZE_CONSTRAINTS
diff --git a/source/Lib/CommonLib/InterPrediction.cpp b/source/Lib/CommonLib/InterPrediction.cpp
index 3fa44dff0c4d63be957e256019748b3403323554..56183d8827f9816e565b2fbc07c9456b33d37413 100644
--- a/source/Lib/CommonLib/InterPrediction.cpp
+++ b/source/Lib/CommonLib/InterPrediction.cpp
@@ -2391,7 +2391,7 @@ void InterPrediction::xPredInterBlk ( const ComponentID& compID, const Predictio
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
       if(pu.cs->sps->getIBCFracFlag() && (xFrac != 0 || yFrac != 0))
       {
-        bvValidType = PU::checkValidBv(pu, compID, dstPic.bufs[compID].width, dstPic.bufs[compID].height, mv, false, filterIdx, useAltHpelIf, true);
+        bvValidType = PU::checkValidBv(pu, compID, dstPic.bufs[compID].width, dstPic.bufs[compID].height, mv, false, filterIdx, true);
       }
       else
 #endif
@@ -2437,7 +2437,7 @@ void InterPrediction::xPredInterBlk ( const ComponentID& compID, const Predictio
       {
         xPredIBCBlkPadding(pu, compID, refPic, clpRng
                          , refBuf, offset, xFrac, yFrac
-                         , (int)width, (int)height, filterIdx, useAltHpelIf);
+                         , (int)width, (int)height, filterIdx);
       }
 #endif
     }
@@ -2509,7 +2509,7 @@ void InterPrediction::xPredInterBlk ( const ComponentID& compID, const Predictio
           && !( (xFrac == 8 || yFrac == 8) && useAltHpelIf ) //to avoid (8,12 or 12,8 passes)
           && dmvrWidth == 0                                  //seems to conflict with DMVR, not sure //kolya
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
-          && !(isIBC && pu.cs->sps->getIBCFracFlag() && (filterIdx == 1 || filterIdx == -1 || filterIdx == -2)) // IBC could use non-12-tap filter
+          && !(isIBC && pu.cs->sps->getIBCFracFlag() && (filterIdx == 1 || filterIdx == -1)) // IBC could use non-12-tap filter
 #endif
         )
         m_if.filter4x4(clpRng,  (Pel*)refBuf.buf, refBuf.stride,  dstBuf.buf, dstBuf.stride, xFrac, yFrac, rndRes);
@@ -2544,11 +2544,7 @@ void InterPrediction::xPredInterBlk ( const ComponentID& compID, const Predictio
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
         if (isLuma(compID) && filterIdx == -1)
         {
-          vFilterSize = useAltHpelIf && yFrac == 8 ? 6 : NTAPS_LUMA_IBC;
-        }
-        if (isLuma(compID) && filterIdx == -2)
-        {
-          vFilterSize = useAltHpelIf && yFrac == 8 ? 6 : NTAPS_ALT_LUMA_IBC;
+          vFilterSize = NTAPS_LUMA_IBC;
         }
         if (isChroma(compID) && filterIdx == 1 && isIBC && pu.cs->sps->getIBCFracFlag())
         {
@@ -2805,7 +2801,7 @@ void InterPrediction::xPredInterBlk ( const ComponentID& compID, const Predictio
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
 void InterPrediction::xPredIBCBlkPadding(const PredictionUnit& pu, ComponentID compID, const Picture* refPic, const ClpRng& clpRng
                                        , CPelBuf& refBufBeforePadding, const Position& refOffsetByIntBv, int xFrac, int yFrac
-                                       , int width, int height, int filterIdx, bool& useAltHpelIf)
+                                       , int width, int height, int filterIdx)
 {
         Position         offset = refOffsetByIntBv;
         CPelBuf&         refBuf = refBufBeforePadding;
@@ -2821,9 +2817,8 @@ void InterPrediction::xPredIBCBlkPadding(const PredictionUnit& pu, ComponentID c
   if (isLuma(compID))
   {
     int filterTap = filterIdx == 1 ? 2 : NTAPS_LUMA_IBC;
-    useAltHpelIf &= (filterIdx == 0);
-    xFilterTap    = useAltHpelIf && xFrac == 8 ? 6 : filterTap;
-    yFilterTap    = useAltHpelIf && yFrac == 8 ? 6 : filterTap;
+    xFilterTap    = filterTap;
+    yFilterTap    = filterTap;
   }
   else
   {
@@ -7854,7 +7849,7 @@ void  InterPrediction::sortIbcMergeMbvdCandidates(PredictionUnit &pu, MergeCtx&
 #endif
 
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
-    uint32_t bvValidType = PU::checkValidBvPU(pu, COMPONENT_Y, pu.mv[0], true, 0, pu.cu->imv == IMV_HPEL);
+    uint32_t bvValidType = PU::checkValidBvPU(pu, COMPONENT_Y, pu.mv[0], true, 0);
     if (bvValidType == IBC_BV_INVALID)
 #else
     if (!PU::searchBv(pu, cuPelX, cuPelY, roiWidth, roiHeight, picWidth, picHeight, xPred, yPred, lcuWidth)) // not valid bv derived
@@ -15706,7 +15701,7 @@ PelBuf TplMatchingCtrl::xGetRefTemplate(const PredictionUnit& curPu, const Pictu
     tempBv += _mv;
 
     int filterIdx = 1;
-    if (PU::checkValidBv(m_pu, COMPONENT_Y, roiWidth, roiHeight, tempBv, false, filterIdx, m_cu.imv == IMV_HPEL, false, true) != IBC_BV_VALID)
+    if (PU::checkValidBv(m_pu, COMPONENT_Y, roiWidth, roiHeight, tempBv, false, filterIdx, false, true) != IBC_BV_VALID)
     {
       return PelBuf();
     }
@@ -15939,7 +15934,6 @@ void TplMatchingCtrl::xRefineMvSearch(int maxSearchRounds, int searchStepShift)
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
   const int  roiWidth  = m_pu.lwidth();
   const int  roiHeight = m_pu.lheight();
-  const bool altIfHPel = m_cu.imv == IMV_HPEL;
   const int  filterIdx = 1;
 #else
   const int cuPelX       = m_pu.lx();
@@ -15972,9 +15966,9 @@ void TplMatchingCtrl::xRefineMvSearch(int maxSearchRounds, int searchStepShift)
       if( CU::isIBC(m_cu) )
       {
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
-        if (PU::checkValidBv(m_pu, COMPONENT_Y, roiWidth, roiHeight, mvCand, false, 0, altIfHPel, false, true) != IBC_BV_VALID
-          || (m_curTplAbove.buf != nullptr && PU::checkValidBv(m_pu, COMPONENT_Y, roiWidth,  tplSize, mvCand - Mv(0, (tplSize << MV_FRACTIONAL_BITS_INTERNAL)), false, filterIdx, altIfHPel, false, true) != IBC_BV_VALID)
-          || (m_curTplLeft.buf  != nullptr && PU::checkValidBv(m_pu, COMPONENT_Y, tplSize, roiHeight, mvCand - Mv((tplSize << MV_FRACTIONAL_BITS_INTERNAL), 0), false, filterIdx, altIfHPel, false, true) != IBC_BV_VALID))
+        if (PU::checkValidBv(m_pu, COMPONENT_Y, roiWidth, roiHeight, mvCand, false, 0, false, true) != IBC_BV_VALID
+          || (m_curTplAbove.buf != nullptr && PU::checkValidBv(m_pu, COMPONENT_Y, roiWidth,  tplSize, mvCand - Mv(0, (tplSize << MV_FRACTIONAL_BITS_INTERNAL)), false, filterIdx, false, true) != IBC_BV_VALID)
+          || (m_curTplLeft.buf  != nullptr && PU::checkValidBv(m_pu, COMPONENT_Y, tplSize, roiHeight, mvCand - Mv((tplSize << MV_FRACTIONAL_BITS_INTERNAL), 0), false, filterIdx, false, true) != IBC_BV_VALID))
 #else
         Mv tempBv = mvCand;
         tempBv.changePrecision(MV_PRECISION_INTERNAL, MV_PRECISION_INT);
@@ -23482,13 +23476,12 @@ void InterPrediction::deriveMVDcandAffine(const PredictionUnit& pu, RefPicList e
       bool res = true;
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
       int  filterIdx = 1; // Aligned with TMP's setting
-      bool useAltHPleIF = pu.cu->imv == IMV_HPEL;
 #endif
 
       if (doBoundaryCheck)
       {
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
-        res = PU::checkValidBv(pu, COMPONENT_Y, (int)pu.lwidth(), (int)pu.lheight(), cMvTest, false, 0, useAltHPleIF, false, true) == IBC_BV_VALID;
+        res = PU::checkValidBv(pu, COMPONENT_Y, (int)pu.lwidth(), (int)pu.lheight(), cMvTest, false, 0, false, true) == IBC_BV_VALID;
 #else
         res = PU::searchBv(pu, pu.lumaPos().x, pu.lumaPos().y, pu.lwidth(), pu.lheight(), picWidth, picHeight, xPred, yPred, lcuWidth);
 #endif
@@ -23503,9 +23496,9 @@ void InterPrediction::deriveMVDcandAffine(const PredictionUnit& pu, RefPicList e
         {
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
           Mv cMvTemp(cMvTest.hor, cMvTest.ver - (1 << MV_FRACTIONAL_BITS_INTERNAL));
-          useTop  = PU::checkValidBv(pu, COMPONENT_Y, (int)pu.lwidth(),  1, cMvTemp, false, filterIdx, useAltHPleIF, false, true) == IBC_BV_VALID;
+          useTop  = PU::checkValidBv(pu, COMPONENT_Y, (int)pu.lwidth(),  1, cMvTemp, false, filterIdx, false, true) == IBC_BV_VALID;
           cMvTemp.set(cMvTest.hor + (pu.lwidth() << MV_FRACTIONAL_BITS_INTERNAL), cMvTest.ver);
-          useLeft = PU::checkValidBv(pu, COMPONENT_Y, 1, (int)pu.lheight(), cMvTemp, false, filterIdx, useAltHPleIF, false, true) == IBC_BV_VALID;
+          useLeft = PU::checkValidBv(pu, COMPONENT_Y, 1, (int)pu.lheight(), cMvTemp, false, filterIdx, false, true) == IBC_BV_VALID;
 #else
           useTop = PU::searchBv(pu, pu.lumaPos().x, pu.lumaPos().y, pu.lwidth(), 1, picWidth, picHeight, xPred, yPred, lcuWidth);
           xPred += pu.lwidth(); //at least, template size of 1 should be available
@@ -23518,9 +23511,9 @@ void InterPrediction::deriveMVDcandAffine(const PredictionUnit& pu, RefPicList e
           {
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
             Mv cMvTemp(cMvTest.hor - (1 << MV_FRACTIONAL_BITS_INTERNAL), cMvTest.ver);
-            useLeft = PU::checkValidBv(pu, COMPONENT_Y, 1, (int)pu.lheight(), cMvTemp, false, filterIdx, useAltHPleIF, false, true) == IBC_BV_VALID;
+            useLeft = PU::checkValidBv(pu, COMPONENT_Y, 1, (int)pu.lheight(), cMvTemp, false, filterIdx, false, true) == IBC_BV_VALID;
             cMvTemp.set(cMvTest.hor, cMvTest.ver + (pu.lheight() << MV_FRACTIONAL_BITS_INTERNAL));
-            useTop  = PU::checkValidBv(pu, COMPONENT_Y, (int)pu.lwidth(),  1, cMvTemp, false, filterIdx, useAltHPleIF, false, true) == IBC_BV_VALID;
+            useTop  = PU::checkValidBv(pu, COMPONENT_Y, (int)pu.lwidth(),  1, cMvTemp, false, filterIdx, false, true) == IBC_BV_VALID;
 #else
             useLeft = PU::searchBv(pu, pu.lumaPos().x, pu.lumaPos().y, 1, pu.lheight(), picWidth, picHeight, xPred, yPred, lcuWidth);
             yPred += pu.lheight(); //at least, template size of 1 should be available
@@ -23531,9 +23524,9 @@ void InterPrediction::deriveMVDcandAffine(const PredictionUnit& pu, RefPicList e
           {
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
             Mv cMvTemp(cMvTest.hor - (1 << MV_FRACTIONAL_BITS_INTERNAL), cMvTest.ver);
-            useLeft = PU::checkValidBv(pu, COMPONENT_Y, 1, (int)pu.lheight(), cMvTemp, false, filterIdx, useAltHPleIF, false, true) == IBC_BV_VALID;
+            useLeft = PU::checkValidBv(pu, COMPONENT_Y, 1, (int)pu.lheight(), cMvTemp, false, filterIdx, false, true) == IBC_BV_VALID;
             cMvTemp.set(cMvTest.hor, cMvTest.ver - (1 << MV_FRACTIONAL_BITS_INTERNAL));
-            useTop  = PU::checkValidBv(pu, COMPONENT_Y, (int)pu.lwidth(),  1, cMvTemp, false, filterIdx, useAltHPleIF, false, true) == IBC_BV_VALID;
+            useTop  = PU::checkValidBv(pu, COMPONENT_Y, (int)pu.lwidth(),  1, cMvTemp, false, filterIdx, false, true) == IBC_BV_VALID;
 #else
             useLeft = PU::searchBv(pu, pu.lumaPos().x, pu.lumaPos().y, 1, pu.lheight(), picWidth, picHeight, xPred - 1, yPred, lcuWidth);
             useTop = PU::searchBv(pu, pu.lumaPos().x, pu.lumaPos().y, pu.lwidth(), 1, picWidth, picHeight, xPred, yPred - 1, lcuWidth);
@@ -23543,9 +23536,9 @@ void InterPrediction::deriveMVDcandAffine(const PredictionUnit& pu, RefPicList e
 #else
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
         Mv cMvTemp(cMvTest.hor - (1 << MV_FRACTIONAL_BITS_INTERNAL), cMvTest.ver);
-        useLeft = PU::checkValidBv(pu, COMPONENT_Y, 1, (int)pu.lheight(), cMvTemp, false, filterIdx, useAltHPleIF, false, true) == IBC_BV_VALID;
+        useLeft = PU::checkValidBv(pu, COMPONENT_Y, 1, (int)pu.lheight(), cMvTemp, false, filterIdx, false, true) == IBC_BV_VALID;
         cMvTemp.set(cMvTest.hor, cMvTest.ver - (1 << MV_FRACTIONAL_BITS_INTERNAL));
-        useTop  = PU::checkValidBv(pu, COMPONENT_Y, (int)pu.lwidth(),  1, cMvTemp, false, filterIdx, useAltHPleIF, false, true) == IBC_BV_VALID;
+        useTop  = PU::checkValidBv(pu, COMPONENT_Y, (int)pu.lwidth(),  1, cMvTemp, false, filterIdx, false, true) == IBC_BV_VALID;
 #else
         useLeft = PU::searchBv(pu, pu.lumaPos().x, pu.lumaPos().y, 1, pu.lheight(), picWidth, picHeight, xPred - 1, yPred, lcuWidth);
         useTop = PU::searchBv(pu, pu.lumaPos().x, pu.lumaPos().y, pu.lwidth(), 1, picWidth, picHeight, xPred, yPred - 1, lcuWidth);
diff --git a/source/Lib/CommonLib/InterPrediction.h b/source/Lib/CommonLib/InterPrediction.h
index 4c210a07fbb39ad09fce549cac7c79ee27ccec70..f92af79044dc4dc66b0ea500c151e51638dc274b 100644
--- a/source/Lib/CommonLib/InterPrediction.h
+++ b/source/Lib/CommonLib/InterPrediction.h
@@ -367,7 +367,7 @@ protected:
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
   void xPredIBCBlkPadding       (const PredictionUnit& pu, ComponentID compID, const Picture* refPic, const ClpRng& clpRng
                                , CPelBuf& refBufBeforePadding, const Position& refOffsetByIntBv, int xFrac, int yFrac
-                               , int width, int height, int filterIdx, bool& useAltHpelIf);
+                               , int width, int height, int filterIdx);
 #endif
 
   void xAddBIOAvg4              (const Pel* src0, int src0Stride, const Pel* src1, int src1Stride, Pel *dst, int dstStride, const Pel *gradX0, const Pel *gradX1, const Pel *gradY0, const Pel*gradY1, int gradStride, int width, int height, int tmpx, int tmpy, int shift, int offset, const ClpRng& clpRng);
diff --git a/source/Lib/CommonLib/InterpolationFilter.cpp b/source/Lib/CommonLib/InterpolationFilter.cpp
index 9ea4dd65a068588e5c1b3a47e32fda71d6b5af40..04941ec461deb5655b601f0c8a93848be1f22b90 100644
--- a/source/Lib/CommonLib/InterpolationFilter.cpp
+++ b/source/Lib/CommonLib/InterpolationFilter.cpp
@@ -1144,14 +1144,6 @@ const TFilterCoeff InterpolationFilter::m_bilinearFilterChroma[CHROMA_INTERPOLAT
   { _ADJIF_( 2), _ADJIF_(62), },
 };
 
-const TFilterCoeff InterpolationFilter::m_lumaIBCFilter[4][NTAPS_ALT_LUMA_IBC] =
-{
-  { _ADJIF_( 0), _ADJIF_(64), _ADJIF_( 0), _ADJIF_( 0), },
-  { _ADJIF_(-4), _ADJIF_(54), _ADJIF_(16), _ADJIF_(-2), },
-  { _ADJIF_(-4), _ADJIF_(36), _ADJIF_(36), _ADJIF_(-4), },
-  { _ADJIF_(-2), _ADJIF_(16), _ADJIF_(54), _ADJIF_(-4), },
-};
-
 #undef _ADJIF_
 #endif
 
@@ -2016,11 +2008,6 @@ void InterpolationFilter::filterHor(const ComponentID compID, Pel const *src, in
     {
       filterHor<NTAPS_LUMA_IBC>(clpRng, src, srcStride, dst, dstStride, width, height, isLast, m_lumaFilter[frac], biMCForDMVR);
     }
-    else if (nFilterIdx == -2)
-    {
-      frac >>= MV_FRACTIONAL_BITS_DIFF;
-      filterHor<NTAPS_ALT_LUMA_IBC>(clpRng, src, srcStride, dst, dstStride, width, height, isLast, m_lumaIBCFilter[frac], biMCForDMVR);
-    }
 #endif
 #if !AFFINE_RM_CONSTRAINTS_AND_OPT
     else if ((width == 4 && height == 4) || (width == 4 && height == (4 + NTAPS_LUMA(0) - 1)))
@@ -2071,11 +2058,6 @@ void InterpolationFilter::filterHor(const ComponentID compID, Pel const *src, in
     {
       filterHor<NTAPS_LUMA_IBC>(clpRng, src, srcStride, dst, dstStride, width, height, isLast, m_lumaFilter[frac], biMCForDMVR);
     }
-    else if (nFilterIdx == -2)
-    {
-      frac >>= MV_FRACTIONAL_BITS_DIFF;
-      filterHor<NTAPS_ALT_LUMA_IBC>(clpRng, src, srcStride, dst, dstStride, width, height, isLast, m_lumaIBCFilter[frac], biMCForDMVR);
-    }
 #endif
 #if !AFFINE_RM_CONSTRAINTS_AND_OPT
     else if( ( width == 4 && height == 4 ) || ( width == 4 && height == ( 4 + NTAPS_LUMA - 1 ) ) )
@@ -2210,11 +2192,6 @@ void InterpolationFilter::filterVer(const ComponentID compID, Pel const *src, in
     {
       filterVer<NTAPS_LUMA_IBC>(clpRng, src, srcStride, dst, dstStride, width, height, isFirst, isLast, m_lumaFilter[frac], biMCForDMVR);
     }
-    else if (nFilterIdx == -2)
-    {
-      frac >>= MV_FRACTIONAL_BITS_DIFF;
-      filterVer<NTAPS_ALT_LUMA_IBC>(clpRng, src, srcStride, dst, dstStride, width, height, isFirst, isLast, m_lumaIBCFilter[frac], biMCForDMVR);
-    }
 #endif
 #if !AFFINE_RM_CONSTRAINTS_AND_OPT
     else if (width == 4 && height == 4)
@@ -2265,11 +2242,6 @@ void InterpolationFilter::filterVer(const ComponentID compID, Pel const *src, in
     {
       filterVer<NTAPS_LUMA_IBC>(clpRng, src, srcStride, dst, dstStride, width, height, isFirst, isLast, m_lumaFilter[frac], biMCForDMVR);
     }
-    else if (nFilterIdx == -2)
-    {
-      frac >>= MV_FRACTIONAL_BITS_DIFF;
-      filterVer<NTAPS_ALT_LUMA_IBC>(clpRng, src, srcStride, dst, dstStride, width, height, isFirst, isLast, m_lumaIBCFilter[frac], biMCForDMVR);
-    }
 #endif
 #if !AFFINE_RM_CONSTRAINTS_AND_OPT
     else if( width == 4 && height == 4 )
diff --git a/source/Lib/CommonLib/InterpolationFilter.h b/source/Lib/CommonLib/InterpolationFilter.h
index acc4570f9d0bc68bea48d8e8eb96206f5ba5f033..59b7619f2dd1ab7c4fc749b7995831c70da535f9 100644
--- a/source/Lib/CommonLib/InterpolationFilter.h
+++ b/source/Lib/CommonLib/InterpolationFilter.h
@@ -131,7 +131,6 @@ private:
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
 public:
   static const TFilterCoeff m_bilinearFilterChroma[CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS][NTAPS_BILINEAR]; ///< bilinear filter taps for chroma
-  static const TFilterCoeff m_lumaIBCFilter[4][NTAPS_ALT_LUMA_IBC]; ///< alternative IBC luma filter taps
 #endif
 public:
   template<bool isFirst, bool isLast>
diff --git a/source/Lib/CommonLib/IntraPrediction.cpp b/source/Lib/CommonLib/IntraPrediction.cpp
index 165b1eed042ad977c21c8e0c17150b77a989ed16..fc6dcf79b9d79e91cbeb019263cdf7f5dfba5061 100644
--- a/source/Lib/CommonLib/IntraPrediction.cpp
+++ b/source/Lib/CommonLib/IntraPrediction.cpp
@@ -1988,7 +1988,7 @@ Mv IntraPrediction::refineChromaBv(const ComponentID compId, const PredictionUni
   }
 
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
-  int filterIdx = 1;
+  int filterIdx = 0;
   std::vector<Mv> chromaBvList;
   chromaBvList.push_back(pu.cs->sps->getIBCFracFlag() ? pu.mv[0] : Mv((pu.mv[0].hor >> bvShiftHor) << bvShiftHor, (pu.mv[0].ver >> bvShiftVer) << bvShiftVer));
 #else
diff --git a/source/Lib/CommonLib/UnitTools.cpp b/source/Lib/CommonLib/UnitTools.cpp
index 480bd7d0b0b5a5d174a7c45cdb5eaae23b7e8f2b..534516a33baadb9526d7791e74ae22907b4c9ce4 100644
--- a/source/Lib/CommonLib/UnitTools.cpp
+++ b/source/Lib/CommonLib/UnitTools.cpp
@@ -3466,7 +3466,7 @@ bool PU::checkIsChromaBvCandidateValid(const PredictionUnit &pu
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
   int roiWidth  = (isRefTemplate && !isRefAbove) ? DBV_TEMPLATE_SIZE : pu.Cb().width;
   int roiHeight = (isRefTemplate && isRefAbove ) ? DBV_TEMPLATE_SIZE : pu.Cb().height;
-  uint32_t validType = checkValidBv(pu, COMPONENT_Cb, roiWidth, roiHeight, mv, true, filterIdx, false);
+  uint32_t validType = checkValidBv(pu, COMPONENT_Cb, roiWidth, roiHeight, mv, true, filterIdx);
   return validType != IBC_BV_INVALID;
 #else
   const int cuPelX = pu.Cb().x;
@@ -4956,7 +4956,7 @@ bool PU::checkIsIBCCandidateValid(const PredictionUnit& pu
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
   int roiWidth  = (isRefTemplate && !isRefAbove) ? AML_MERGE_TEMPLATE_SIZE : pu.lwidth();
   int roiHeight = (isRefTemplate &&  isRefAbove) ? AML_MERGE_TEMPLATE_SIZE : pu.lheight();
-  uint32_t validType = checkValidBv(pu, COMPONENT_Y, roiWidth, roiHeight, miNeighbor.mv[REF_PIC_LIST_0], true, filterIdx, miNeighbor.useAltHpelIf);
+  uint32_t validType = checkValidBv(pu, COMPONENT_Y, roiWidth, roiHeight, miNeighbor.mv[REF_PIC_LIST_0], true, filterIdx);
   return validType != IBC_BV_INVALID;
 #else
   Mv bv = miNeighbor.mv[REF_PIC_LIST_0];
@@ -4985,12 +4985,12 @@ bool PU::checkIsIBCCandidateValid(const PredictionUnit& pu
 
 #if JVET_Y0058_IBC_LIST_MODIFY || JVET_Z0084_IBC_TM
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
-uint32_t PU::checkValidBvPU(const PredictionUnit& pu, ComponentID compID, Mv mv, bool ignoreFracMv, int filterIdx, bool useAltHPelIF)
+uint32_t PU::checkValidBvPU(const PredictionUnit& pu, ComponentID compID, Mv mv, bool ignoreFracMv, int filterIdx)
 {
-  return PU::checkValidBv(pu, compID, (int)pu.blocks[compID].width, (int)pu.blocks[compID].height, mv, ignoreFracMv, filterIdx, useAltHPelIF);
+  return PU::checkValidBv(pu, compID, (int)pu.blocks[compID].width, (int)pu.blocks[compID].height, mv, ignoreFracMv, filterIdx);
 }
 
-uint32_t PU::checkValidBv(const PredictionUnit& pu, ComponentID compID, int compWidth, int compHeight, Mv mv, bool ignoreFracMv, int filterIdx, bool useAltHPelIF
+uint32_t PU::checkValidBv(const PredictionUnit& pu, ComponentID compID, int compWidth, int compHeight, Mv mv, bool ignoreFracMv, int filterIdx
                         , bool isFinalMC
                         , bool checkAllRefValid
 )
@@ -5028,11 +5028,9 @@ uint32_t PU::checkValidBv(const PredictionUnit& pu, ComponentID compID, int comp
 
   if (compID == COMPONENT_Y)
   {
-    CHECK(useAltHPelIF, "IBC does not support IMV_HPEL");
-
     int filterTap = filterIdx == 1 ? 2 : NTAPS_LUMA_IBC;
-    xFilterTap    = xFrac == 0 ? 0 : (useAltHPelIF && xFrac == 8 ? 6 : filterTap);
-    yFilterTap    = yFrac == 0 ? 0 : (useAltHPelIF && yFrac == 8 ? 6 : filterTap);
+    xFilterTap    = xFrac == 0 ? 0 : filterTap;
+    yFilterTap    = yFrac == 0 ? 0 : filterTap;
   }
   else
   {
diff --git a/source/Lib/CommonLib/UnitTools.h b/source/Lib/CommonLib/UnitTools.h
index 6e4e696003d36b8e918631987300eac5fff9c6bc..67e4a331860031ec9b34b3a50b534acfae78e168 100644
--- a/source/Lib/CommonLib/UnitTools.h
+++ b/source/Lib/CommonLib/UnitTools.h
@@ -285,8 +285,8 @@ namespace PU
   );
 #endif
 #if JVET_AD0208_IBC_ADAPT_FOR_CAM_CAPTURED_CONTENTS
-  uint32_t checkValidBvPU (const PredictionUnit& pu, ComponentID compID,                                Mv mv, bool ignoreFracMv = false, int filterIdx = 0, bool useAltHPelIF = false);
-  uint32_t checkValidBv   (const PredictionUnit& pu, ComponentID compID, int compWidth, int compHeight, Mv mv, bool ignoreFracMv = false, int filterIdx = 0, bool useAltHPelIF = false
+  uint32_t checkValidBvPU (const PredictionUnit& pu, ComponentID compID,                                Mv mv, bool ignoreFracMv = false, int filterIdx = 0);
+  uint32_t checkValidBv   (const PredictionUnit& pu, ComponentID compID, int compWidth, int compHeight, Mv mv, bool ignoreFracMv = false, int filterIdx = 0
                          , bool isFinalMC = false // this flag is for non-normative SW speedup
                          , bool checkAllRefValid = false
   );
diff --git a/source/Lib/EncoderLib/InterSearch.cpp b/source/Lib/EncoderLib/InterSearch.cpp
index f2c1110c090f034bfb4c4650c114c5b82d792090..912cae13b7496f3fc70b34666d623e955b0f3f05 100644
--- a/source/Lib/EncoderLib/InterSearch.cpp
+++ b/source/Lib/EncoderLib/InterSearch.cpp
@@ -3783,7 +3783,7 @@ Distortion InterSearch::xPredIBCFracPelSearch(PredictionUnit&              pu
     for (int j = 0; j < numOffset; ++j)
     {
       pu.mv[0] = centerMv + mvOffset[j];
-      uint32_t validType = PU::checkValidBvPU(pu, COMPONENT_Y, pu.mv[0], true, 0, imv == IMV_HPEL);
+      uint32_t validType = PU::checkValidBvPU(pu, COMPONENT_Y, pu.mv[0], true, 0);
       if (validType == IBC_BV_INVALID)
       {
         continue;