Skip to content
Snippets Groups Projects
Commit c926e16e authored by Vadim Seregin's avatar Vadim Seregin
Browse files

Merge branch 'jvet-ak0329_fix' into 'master'

JVET-AK0329 encoder/decoder mismatch fix

See merge request ecm/ECM!875
parents 7ba66665 6d73a083
No related branches found
No related tags found
1 merge request!875JVET-AK0329 encoder/decoder mismatch fix
Pipeline #14613 passed
...@@ -4871,29 +4871,35 @@ bool IntraSearch::estIntraPredLumaQT(CodingUnit &cu, Partitioner &partitioner, c ...@@ -4871,29 +4871,35 @@ bool IntraSearch::estIntraPredLumaQT(CodingUnit &cu, Partitioner &partitioner, c
if(cu.eipMerge) if(cu.eipMerge)
{ {
PelBuf eipSaveBuf(m_eipMergePredBuf[modeIdx], pu.Y()); PelBuf eipSaveBuf(m_eipMergePredBuf[modeIdx], pu.Y());
#if JVET_AI0050_INTER_MTSS || JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
int secondMode = 0;
#endif
cu.eipModel.eipDimdMode = m_eipMergeModel[modeIdx].eipDimdMode = deriveIpmForTransform(eipSaveBuf, cu cu.eipModel.eipDimdMode = m_eipMergeModel[modeIdx].eipDimdMode = deriveIpmForTransform(eipSaveBuf, cu
#if JVET_AI0050_INTER_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION #if JVET_AI0050_INTER_MTSS || JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
, cu.dimdDerivedIntraDir2nd , secondMode
#endif #endif
); );
CHECK(modeIdx >= NUM_EIP_MERGE_SIGNAL, "modeIdx >= NUM_EIP_MERGE_SIGNAL"); CHECK(modeIdx >= NUM_EIP_MERGE_SIGNAL, "modeIdx >= NUM_EIP_MERGE_SIGNAL");
#if JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION #if JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
cu.eipModel.eipDimdMode2nd = cu.dimdDerivedIntraDir2nd; cu.dimdDerivedIntraDir2nd = secondMode;
m_eipMergeModel[ modeIdx ].eipDimdMode2nd = cu.dimdDerivedIntraDir2nd; cu.eipModel.eipDimdMode2nd = m_eipMergeModel[ modeIdx ].eipDimdMode2nd = secondMode;
#endif #endif
} }
else else
{ {
PelBuf eipSaveBuf(m_eipPredBuf[modeIdx], pu.Y()); PelBuf eipSaveBuf(m_eipPredBuf[modeIdx], pu.Y());
#if JVET_AI0050_INTER_MTSS || JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
int secondMode = 0;
#endif
cu.eipModel.eipDimdMode = m_eipModel[modeIdx].eipDimdMode = deriveIpmForTransform(eipSaveBuf, cu cu.eipModel.eipDimdMode = m_eipModel[modeIdx].eipDimdMode = deriveIpmForTransform(eipSaveBuf, cu
#if JVET_AI0050_INTER_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION #if JVET_AI0050_INTER_MTSS || JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
, cu.dimdDerivedIntraDir2nd , secondMode
#endif #endif
); );
CHECK(modeIdx >= NUM_DERIVED_EIP, "modeIdx >= NUM_DERIVED_EIP"); CHECK(modeIdx >= NUM_DERIVED_EIP, "modeIdx >= NUM_DERIVED_EIP");
#if JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION #if JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
cu.eipModel.eipDimdMode2nd = cu.dimdDerivedIntraDir2nd; cu.dimdDerivedIntraDir2nd = secondMode;
m_eipModel[ modeIdx ].eipDimdMode2nd = cu.dimdDerivedIntraDir2nd; cu.eipModel.eipDimdMode2nd = m_eipModel[ modeIdx ].eipDimdMode2nd = secondMode;
#endif #endif
} }
} }
...@@ -5781,29 +5787,35 @@ bool IntraSearch::estIntraPredLumaQT(CodingUnit &cu, Partitioner &partitioner, c ...@@ -5781,29 +5787,35 @@ bool IntraSearch::estIntraPredLumaQT(CodingUnit &cu, Partitioner &partitioner, c
if(cu.eipMerge) if(cu.eipMerge)
{ {
PelBuf eipSaveBuf(m_eipMergePredBuf[modeIdx], pu.Y()); PelBuf eipSaveBuf(m_eipMergePredBuf[modeIdx], pu.Y());
#if JVET_AI0050_INTER_MTSS || JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
int secondMode = 0;
#endif
cu.eipModel.eipDimdMode = m_eipMergeModel[modeIdx].eipDimdMode = deriveIpmForTransform(eipSaveBuf, cu cu.eipModel.eipDimdMode = m_eipMergeModel[modeIdx].eipDimdMode = deriveIpmForTransform(eipSaveBuf, cu
#if JVET_AI0050_INTER_MTSS #if JVET_AI0050_INTER_MTSS || JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
, cu.dimdDerivedIntraDir2nd , secondMode
#endif #endif
); );
CHECK(modeIdx >= NUM_EIP_MERGE_SIGNAL, "modeIdx >= NUM_EIP_MERGE_SIGNAL"); CHECK(modeIdx >= NUM_EIP_MERGE_SIGNAL, "modeIdx >= NUM_EIP_MERGE_SIGNAL");
#if JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION #if JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
cu.eipModel.eipDimdMode2nd = cu.dimdDerivedIntraDir2nd; cu.dimdDerivedIntraDir2nd = secondMode;
m_eipMergeModel[ modeIdx ].eipDimdMode2nd = cu.dimdDerivedIntraDir2nd; cu.eipModel.eipDimdMode2nd = m_eipMergeModel[ modeIdx ].eipDimdMode2nd = secondMode;
#endif #endif
} }
else else
{ {
PelBuf eipSaveBuf(m_eipPredBuf[modeIdx], pu.Y()); PelBuf eipSaveBuf(m_eipPredBuf[modeIdx], pu.Y());
#if JVET_AI0050_INTER_MTSS || JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
int secondMode = 0;
#endif
cu.eipModel.eipDimdMode = m_eipModel[modeIdx].eipDimdMode = deriveIpmForTransform(eipSaveBuf, cu cu.eipModel.eipDimdMode = m_eipModel[modeIdx].eipDimdMode = deriveIpmForTransform(eipSaveBuf, cu
#if JVET_AI0050_INTER_MTSS #if JVET_AI0050_INTER_MTSS || JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
, cu.dimdDerivedIntraDir2nd , secondMode
#endif #endif
); );
CHECK(modeIdx >= NUM_DERIVED_EIP, "modeIdx >= NUM_DERIVED_EIP"); CHECK(modeIdx >= NUM_DERIVED_EIP, "modeIdx >= NUM_DERIVED_EIP");
#if JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION #if JVET_AK0217_INTRA_MTSS || JVET_AK0187_IMPLICIT_MTS_LUT_EXTENSION
cu.eipModel.eipDimdMode2nd = cu.dimdDerivedIntraDir2nd; cu.dimdDerivedIntraDir2nd = secondMode;
m_eipModel[ modeIdx ].eipDimdMode2nd = cu.dimdDerivedIntraDir2nd; cu.eipModel.eipDimdMode2nd = m_eipModel[ modeIdx ].eipDimdMode2nd = secondMode;
#endif #endif
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment