diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp
index 59d4167e8a7d3b17a1b3e8ad8a0cebdec804ef92..2052685ab3a793ccf4d4ed7bb98c1eb5e2e4eeb1 100644
--- a/source/App/EncoderApp/EncApp.cpp
+++ b/source/App/EncoderApp/EncApp.cpp
@@ -836,9 +836,7 @@ void EncApp::xInitLibCfg( int layerIdx )
   m_cEncLib.setLog2MinCodingBlockSize                            ( m_log2MinCuSize );
   m_cEncLib.setLog2MaxTbSize                                     ( m_log2MaxTbSize );
   m_cEncLib.setUseEncDbOpt(m_encDbOpt);
-#if JVET_AF0122_ALF_LAMBDA_OPT
   m_cEncLib.setUseAlfLambdaOpt(m_encALFOpt);
-#endif
   m_cEncLib.setUseFastLCTU                                       ( m_useFastLCTU );
   m_cEncLib.setFastInterSearchMode                               ( m_fastInterSearchMode );
   m_cEncLib.setUseEarlyCU                                        ( m_bUseEarlyCU  );
diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp
index 46988f21da63b51231d43cb641106fbbb73e733a..2fd8845528eb1e565e019189a650680c0c4cc3d8 100644
--- a/source/App/EncoderApp/EncAppCfg.cpp
+++ b/source/App/EncoderApp/EncAppCfg.cpp
@@ -1068,9 +1068,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
   ("VirtualBoundariesPosX",                           cfg_virtualBoundariesPosX,    cfg_virtualBoundariesPosX, "Locations of the vertical virtual boundaries in units of luma samples")
   ("VirtualBoundariesPosY",                           cfg_virtualBoundariesPosY,    cfg_virtualBoundariesPosY, "Locations of the horizontal virtual boundaries in units of luma samples")
   ("EncDbOpt",                                        m_encDbOpt,                                       false, "Encoder optimization with deblocking filter")
-#if JVET_AF0122_ALF_LAMBDA_OPT
   ("AlfLambdaOpt",                                    m_encALFOpt,                                      false, "Encoder optimization with adaptive loop filter")
-#endif
   ("LMCSEnable",                                      m_lmcsEnabled,                                    false, "Enable LMCS (luma mapping with chroma scaling")
   ("LMCSSignalType",                                  m_reshapeSignalType,                                 0u, "Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG")
   ("LMCSUpdateCtrl",                                  m_updateCtrl,                                         0, "LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP")
@@ -5609,9 +5607,7 @@ void EncAppCfg::xPrintParameter()
     msg(VERBOSE, "MRL:%d ", m_MRL);
     msg(VERBOSE, "MIP:%d ", m_MIP);
     msg(VERBOSE, "EncDbOpt:%d ", m_encDbOpt);
-#if JVET_AF0122_ALF_LAMBDA_OPT
     msg(VERBOSE, "AlfLambdaOpt:%d ", m_encALFOpt);
-#endif
   msg( VERBOSE, "\nFAST TOOL CFG: " );
   msg( VERBOSE, "LCTUFast:%d ", m_useFastLCTU );
   msg( VERBOSE, "FastMrg:%d ", m_useFastMrg );
diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h
index b155d5cdc7d18ea54b9d58e03515b0ab28a0bb5a..e640cabaf63daf315b7759fa8741452b98882b93 100644
--- a/source/App/EncoderApp/EncAppCfg.h
+++ b/source/App/EncoderApp/EncAppCfg.h
@@ -417,9 +417,7 @@ protected:
   uint32_t  m_initialCW;
   int       m_CSoffset;
   bool      m_encDbOpt;
-#if JVET_AF0122_ALF_LAMBDA_OPT
   bool      m_encALFOpt;
-#endif
   unsigned              m_maxCuWidth;                                      ///< max. CU width in pixel
   unsigned              m_maxCuHeight;                                     ///< max. CU height in pixel
   unsigned m_log2MinCuSize;                                   ///< min. CU size log2
diff --git a/source/Lib/CommonLib/CommonDef.h b/source/Lib/CommonLib/CommonDef.h
index d6632af38306e1c5778bf80e71c73d7ea8d9ad71..f45a3a48f578bdc460850a0bc9ee514ce737a789 100644
--- a/source/Lib/CommonLib/CommonDef.h
+++ b/source/Lib/CommonLib/CommonDef.h
@@ -203,10 +203,8 @@ static constexpr int CCALF_BITS_PER_COEFF_LEVEL     =               3;
 
 static constexpr int ALF_FIXED_FILTER_NUM = 64;
 
-#if JVET_AF0122_ALF_LAMBDA_OPT
 static constexpr double ALF_CHROMA_LAMBDA_SCALE_LOW = 0.4;
 static constexpr int ALF_HISAPSNUM_LIMITED = 4;
-#endif
 
 static constexpr int MAX_BDOF_APPLICATION_REGION =                     16;
 
diff --git a/source/Lib/CommonLib/SequenceParameterSet.h b/source/Lib/CommonLib/SequenceParameterSet.h
index 4a6a55e762e28c9b5afbb6b46f0a809cddf3b843..78057524e57497e8847a910aaf53fa9b3a8a3aeb 100644
--- a/source/Lib/CommonLib/SequenceParameterSet.h
+++ b/source/Lib/CommonLib/SequenceParameterSet.h
@@ -494,9 +494,7 @@ private:
 
   bool              m_alfEnabledFlag;
   bool              m_ccalfEnabledFlag;
-#if JVET_AF0122_ALF_LAMBDA_OPT
   bool              m_alfOptEnabledFlag;
-#endif
   bool              m_wrapAroundEnabledFlag;
   bool              m_ibcFlag;
   bool              m_useColorTrans;
@@ -763,10 +761,8 @@ public:
   void                    setALFEnabledFlag(bool val)       { m_alfEnabledFlag = val; }
   bool                    getALFEnabledFlag() const         { return m_alfEnabledFlag; }
 
-#if JVET_AF0122_ALF_LAMBDA_OPT
   void                    setALFOptEnabledFlag( bool b )     { m_alfOptEnabledFlag = b; }
   bool                    getALFOptEnabledFlag() const       { return m_alfOptEnabledFlag; }
-#endif
 
   void                    setCCALFEnabledFlag(bool val)     { m_ccalfEnabledFlag = val; }
   bool                    getCCALFEnabledFlag() const       { return m_ccalfEnabledFlag; }
diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h
index 2d695bb86954e76d8c4f3f807ce93017c1897136..b851fdb70bf1170f5eeda53946b29c359c589a86 100644
--- a/source/Lib/CommonLib/TypeDef.h
+++ b/source/Lib/CommonLib/TypeDef.h
@@ -57,7 +57,6 @@
 
 //########### place macros to be removed in next cycle below this line ###############
 
-#define JVET_AF0122_ALF_LAMBDA_OPT                        1  // JVET-AF0122: Lagrange multiplier optimization for chroma ALF and CCALF
 
 #define JVET_AF0061_ADDITION_PO_ID                        1 // JVET-AF0061, JVET-AF0174, JVET-AF0067, and JVET-AF0310: add po_id in the SEI processing order (SPO) SEI message
 
diff --git a/source/Lib/EncoderLib/EncAdaptiveLoopFilter.cpp b/source/Lib/EncoderLib/EncAdaptiveLoopFilter.cpp
index 7ed3378a210c83e8f33ef1b9ab56cf2751ac15b7..2fbc1e11c7a9938ffc7176d047a10a4d9f51f9f9 100644
--- a/source/Lib/EncoderLib/EncAdaptiveLoopFilter.cpp
+++ b/source/Lib/EncoderLib/EncAdaptiveLoopFilter.cpp
@@ -2667,9 +2667,7 @@ void  EncAdaptiveLoopFilter::alfEncoderCtb(CodingStructure& cs, AlfParam& alfPar
   double costMin = MAX_DOUBLE;
   reconstructCoeffAPSs(cs, true, false, true);
 
-#if JVET_AF0122_ALF_LAMBDA_OPT
   m_lumaNewAps = 0;
-#endif
 
   for (bool useNewFilter: { false, true })
   {
@@ -2929,12 +2927,10 @@ void  EncAdaptiveLoopFilter::alfEncoderCtb(CodingStructure& cs, AlfParam& alfPar
 
     if (alfParamNewFiltersBest.newFilterFlag[ChannelType::LUMA])
     {
-#if JVET_AF0122_ALF_LAMBDA_OPT
       if (cs.slice->getSliceType() != I_SLICE)
       {
         m_lumaNewAps = 1;
       }
-#endif      
       APS *newAPS = m_apsMap->getPS(newApsId);
       if (newAPS == nullptr)
       {
@@ -2997,7 +2993,6 @@ void  EncAdaptiveLoopFilter::alfEncoderCtb(CodingStructure& cs, AlfParam& alfPar
       }
     }
 
-#if JVET_AF0122_ALF_LAMBDA_OPT
     int chromaHisApsNums = 0;
     for (int curApsId = 0; curApsId < ALF_CTB_MAX_NUM_APS; curApsId++)
     {
@@ -3020,7 +3015,6 @@ void  EncAdaptiveLoopFilter::alfEncoderCtb(CodingStructure& cs, AlfParam& alfPar
     }
 
     setLambdaFactor(cs, chromaHisApsNums, m_lumaNewAps);
-#endif    
     
     for (int curApsId = m_encCfg->getALFAPSIDShift(); curApsId < m_encCfg->getALFAPSIDShift() + m_encCfg->getMaxNumALFAPS(); curApsId++)
     {
@@ -3031,20 +3025,12 @@ void  EncAdaptiveLoopFilter::alfEncoderCtb(CodingStructure& cs, AlfParam& alfPar
         continue;
       }
       APS *curAPS = m_apsMap->getPS(curApsId);
-#if JVET_AF0122_ALF_LAMBDA_OPT
       double curCost = m_lambda[COMPONENT_Cb] * m_lambdaFactor * 3;
-#else
-      double curCost = m_lambda[COMPONENT_Cb] * 3;
-#endif
       
       if (!reuseExistingAPS)
       {
         m_alfParamTemp = alfParamNewFilters;
-#if JVET_AF0122_ALF_LAMBDA_OPT
         curCost += m_lambda[COMPONENT_Cb] * m_lambdaFactor * m_bitsNewFilter[ChannelType::CHROMA];
-#else        
-        curCost += m_lambda[COMPONENT_Cb] * m_bitsNewFilter[ChannelType::CHROMA];
-#endif        
       }
       else if (curAPS && curAPS->getTemporalId() <= cs.slice->getTLayer()
                && curAPS->getLayerId() == cs.slice->getPic()->layerId
@@ -3075,20 +3061,11 @@ void  EncAdaptiveLoopFilter::alfEncoderCtb(CodingStructure& cs, AlfParam& alfPar
           // ctb flag
           m_CABACEstimator->codeAlfCtuEnableFlag(cs, ctbIdx, compId, &m_alfParamTemp);
           double rateOn = FRAC_BITS_SCALE * m_CABACEstimator->getEstFracBits();
-#if JVET_AF0122_ALF_LAMBDA_OPT
 #if ENABLE_QPA
           const double ctuLambda = lambdaChromaWeight > 0.0 ? cs.picture->m_uEnerHpCtu[ctbIdx] / lambdaChromaWeight
                                                             : m_lambda[compId] * m_lambdaFactor;
 #else
           const double ctuLambda = m_lambda[compId] * m_lambdaFactor;
-#endif
-#else
-#if ENABLE_QPA
-          const double ctuLambda =
-            lambdaChromaWeight > 0.0 ? cs.picture->m_uEnerHpCtu[ctbIdx] / lambdaChromaWeight : m_lambda[compId];
-#else
-          const double ctuLambda = m_lambda[compId];
-#endif
 #endif
           double dist        = MAX_DOUBLE;
           int    numAlts     = m_alfParamTemp.numAlternativesChroma;
@@ -3139,11 +3116,7 @@ void  EncAdaptiveLoopFilter::alfEncoderCtb(CodingStructure& cs, AlfParam& alfPar
           m_CABACEstimator->resetBits();
           m_CABACEstimator->codeAlfCtuEnableFlag(cs, ctbIdx, compId, &m_alfParamTemp);
           // cost
-#if JVET_AF0122_ALF_LAMBDA_OPT
           double costOff = distUnfilterCtu + m_lambda[compId] * m_lambdaFactor * FRAC_BITS_SCALE * m_CABACEstimator->getEstFracBits();
-#else          
-          double costOff = distUnfilterCtu + m_lambda[compId] * FRAC_BITS_SCALE * m_CABACEstimator->getEstFracBits();
-#endif          
           if (costOn < costOff)
           {
             m_CABACEstimator->getCtx()      = AlfCtx(ctxTempBest);
@@ -3793,12 +3766,8 @@ void EncAdaptiveLoopFilter::deriveCcAlfFilter( CodingStructure& cs, ComponentID
     unfilteredDistortion += (uint64_t) m_alfCovarianceCcAlf[compID - 1][0][ctbIdx].pixAcc;
   }
 
-#if JVET_AF0122_ALF_LAMBDA_OPT
   setLambdaFactor(cs, (int) (getAvailableCcAlfApsIds(cs, compID).size()), m_lumaNewAps);
   double bestUnfilteredTotalCost = 1 * m_lambda[compID] * m_lambdaFactor + unfilteredDistortion;   // 1 bit is for gating flag
-#else
-  double bestUnfilteredTotalCost = 1 * m_lambda[compID] + unfilteredDistortion;   // 1 bit is for gating flag
-#endif
 
   bool             ccAlfFilterIdxEnabled[MAX_NUM_CC_ALF_FILTERS];
   AlfCoeff         ccAlfFilterCoeff[MAX_NUM_CC_ALF_FILTERS][MAX_NUM_CC_ALF_CHROMA_COEFF];
@@ -3934,11 +3903,7 @@ void EncAdaptiveLoopFilter::deriveCcAlfFilter( CodingStructure& cs, ComponentID
             // terminating bit/byte alignment bits)
           }
 
-#if JVET_AF0122_ALF_LAMBDA_OPT
           double curTotalCost = curTotalRate * m_lambda[compID] * m_lambdaFactor + curTotalDistortion;
-#else          
-          double curTotalCost = curTotalRate * m_lambda[compID] + curTotalDistortion;
-#endif
 
           if (curTotalCost < prevTotalCost)
           {
diff --git a/source/Lib/EncoderLib/EncAdaptiveLoopFilter.h b/source/Lib/EncoderLib/EncAdaptiveLoopFilter.h
index 27b5b0d684f9da764d9092ba3053d9372f46e224..e876f6b28d46a9acdeecdfb703e3d2c30b9b25c2 100644
--- a/source/Lib/EncoderLib/EncAdaptiveLoopFilter.h
+++ b/source/Lib/EncoderLib/EncAdaptiveLoopFilter.h
@@ -354,11 +354,9 @@ public:
               const BitDepths& internalBitDepth);
   void destroy();
   void setApsIdStart( int i) { m_apsIdStart = i; }
-#if JVET_AF0122_ALF_LAMBDA_OPT
   bool m_lumaNewAps;
   double m_lambdaFactor;
   void setLambdaFactor( CodingStructure &cs, const int chromaHisApsNums, const bool m_lumaNewAps){ m_lambdaFactor = (cs.sps->getALFOptEnabledFlag() && chromaHisApsNums < ALF_HISAPSNUM_LIMITED && cs.slice->getSliceType() != I_SLICE && m_lumaNewAps == 1) ? ALF_CHROMA_LAMBDA_SCALE_LOW : 1.0 ;};
-#endif
 
 private:
   void firstPass(CodingStructure &cs, AlfParam &alfParam, const PelUnitBuf &orgUnitBuf, const PelUnitBuf &recExtBuf,
diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h
index b16723383c1845627aa393a8f0de9c41e61993cd..19ca9263bb945f202cf052a59e010a12a5a62766 100644
--- a/source/Lib/EncoderLib/EncCfg.h
+++ b/source/Lib/EncoderLib/EncCfg.h
@@ -404,9 +404,7 @@ protected:
   ReshapeCW m_reshapeCW;
   int       m_CSoffset;
   bool      m_encDbOpt;
-#if JVET_AF0122_ALF_LAMBDA_OPT
   bool      m_encALFOpt;
-#endif  
   bool      m_useFastLCTU;
   bool      m_useFastMrg;
   int       m_maxMergeRdCandNumTotal;
@@ -1583,10 +1581,8 @@ public:
   int       getLog2MinCodingBlockSize       () const         { return m_log2MinCUSize;}
   void      setUseEncDbOpt                  ( bool  n )          { m_encDbOpt = n; }
   bool      getUseEncDbOpt                  () const             { return m_encDbOpt; }
-#if JVET_AF0122_ALF_LAMBDA_OPT
   void      setUseAlfLambdaOpt              (bool n)         { m_encALFOpt = n; }
   bool      getUseAlfLambdaOpt              () const         { return m_encALFOpt; }
-#endif
   
   void      setUseFastLCTU                  ( bool  n )      { m_useFastLCTU = n; }
   bool      getUseFastLCTU                  () const         { return m_useFastLCTU; }
diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp
index a3ff50517198bb7c57f4fda31e0733f06c33e96a..e128a5be343dda35450500510884b717d5554a2d 100644
--- a/source/Lib/EncoderLib/EncLib.cpp
+++ b/source/Lib/EncoderLib/EncLib.cpp
@@ -1584,9 +1584,7 @@ void EncLib::xInitSPS( SPS& sps )
   }
   sps.setALFEnabledFlag( m_alf );
   sps.setCCALFEnabledFlag( m_ccalf );
-#if JVET_AF0122_ALF_LAMBDA_OPT
   sps.setALFOptEnabledFlag(m_encALFOpt);
-#endif
   sps.setFieldSeqFlag(m_fieldSeqFlag);
   sps.setVuiParametersPresentFlag(getVuiParametersPresentFlag());