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) {