diff --git a/source/Lib/CommonLib/CommonDef.h b/source/Lib/CommonLib/CommonDef.h
index eec85c4ad58ff2d7850bfb1448c51fc6cbfc4a22..7b97928705afcda72cd022f24adf4d0453a70033 100644
--- a/source/Lib/CommonLib/CommonDef.h
+++ b/source/Lib/CommonLib/CommonDef.h
@@ -234,7 +234,7 @@ static const int AMVP_MERGE_MODE_REDUCED_MV_REFINE_SEARCH_ROUND =   8;
 #endif
 
 #if JVET_AA0093_DIVERSITY_CRITERION_FOR_ARMC
-static const double LAMBDA_DEC_SIDE[MAX_QP] = {
+static const double LAMBDA_DEC_SIDE[MAX_QP+1] = {
   0.777106,       0.872272,       0.979092,       1.098994,       1.233579,       1.384646,       1.554212,
   1.744544,       1.958185,       2.197988,       2.467158,       2.769291,       3.108425,       3.489089,
   3.916370,       4.395976,       4.934316,       5.538583,       6.216849,       6.978177,       7.832739,
@@ -243,7 +243,8 @@ static const double LAMBDA_DEC_SIDE[MAX_QP] = {
   44.308664,       49.734793,      55.825418,      62.661913,      70.335619,      78.949063,      88.617327,
   99.469587,       111.650836,     125.323826,     140.671239,     157.898127,     177.234655,     198.939174,
   223.301672,       250.647653,     281.342477,     315.796254,     354.469310,     397.878347,     446.603345,
-  501.295305,       562.684955,     631.592507,     708.938619,     795.756695,     893.206689,     1002.590610
+  501.295305,       562.684955,     631.592507,     708.938619,     795.756695,     893.206689,     1002.590610,
+  1125.369910
 };
 #endif
 
diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp
index b594da9faab71aaf39b145fba6ebd23553039323..6c2c427fd475e18678e56f886c4d2bc68ff99ae8 100644
--- a/source/Lib/EncoderLib/EncLib.cpp
+++ b/source/Lib/EncoderLib/EncLib.cpp
@@ -364,8 +364,8 @@ void EncLib::init( bool isFieldCoding, AUWriterIf* auWriterIf )
     for (int idx = 0; idx < m_numQPOffset; idx++)
     {
       sps0.setQPOffsets(idx, m_qpOffsetList[idx]);
-      sps0.setLambdaVal(idx, (uint32_t)LAMBDA_DEC_SIDE[26 + pps0.getPicInitQPMinus26() + m_qpOffsetList[idx] - 4 * ((int)m_isRA)]);
-      uint32_t lambda = (uint32_t)LAMBDA_DEC_SIDE[26 + pps0.getPicInitQPMinus26() + m_qpOffsetList[idx] - 4 * ((int)m_isRA)];
+      const uint32_t lambda = (uint32_t)LAMBDA_DEC_SIDE[min(max(26 + pps0.getPicInitQPMinus26() + m_qpOffsetList[idx] - 4 * ((int)m_isRA), 0), MAX_QP)];
+      sps0.setLambdaVal(idx, lambda);
       for (int shift = 0; shift < 16; shift++)
         if (lambda >> shift == 0)
         {