Skip to content
Snippets Groups Projects
Commit 71254040 authored by Karsten Suehring's avatar Karsten Suehring
Browse files

Merge branch 'decoder_check_lmcs_aps' into 'master'

JVET-O0428: add decoder check that all slices in one picture shall use same LMCS aps id

See merge request jvet/VVCSoftware_VTM!926
parents dd2a5a1b 77508dc6
No related branches found
No related tags found
No related merge requests found
...@@ -410,6 +410,9 @@ DecLib::DecLib() ...@@ -410,6 +410,9 @@ DecLib::DecLib()
, m_lastNoIncorrectPicOutputFlag(false) , m_lastNoIncorrectPicOutputFlag(false)
#else #else
, m_craNoRaslOutputFlag(false) , m_craNoRaslOutputFlag(false)
#endif
#if JVET_O0428_LMCS_CLEANUP
, m_sliceLmcsApsId(-1)
#endif #endif
, m_pDecodedSEIOutputStream(NULL) , m_pDecodedSEIOutputStream(NULL)
, m_decodedPictureHashSEIEnabled(false) , m_decodedPictureHashSEIEnabled(false)
...@@ -1562,6 +1565,16 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl ...@@ -1562,6 +1565,16 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl
if (pcSlice->getLmcsEnabledFlag()) if (pcSlice->getLmcsEnabledFlag())
{ {
APS* lmcsAPS = pcSlice->getLmcsAPS(); APS* lmcsAPS = pcSlice->getLmcsAPS();
#if JVET_O0428_LMCS_CLEANUP
if (m_bFirstSliceInPicture)
{
m_sliceLmcsApsId = lmcsAPS->getAPSId();
}
else
{
CHECK(lmcsAPS->getAPSId() != m_sliceLmcsApsId, "same APS ID shall be used for all slices in one picture");
}
#endif
SliceReshapeInfo& sInfo = lmcsAPS->getReshaperAPSInfo(); SliceReshapeInfo& sInfo = lmcsAPS->getReshaperAPSInfo();
SliceReshapeInfo& tInfo = m_cReshaper.getSliceReshaperInfo(); SliceReshapeInfo& tInfo = m_cReshaper.getSliceReshaperInfo();
tInfo.reshaperModelMaxBinIdx = sInfo.reshaperModelMaxBinIdx; tInfo.reshaperModelMaxBinIdx = sInfo.reshaperModelMaxBinIdx;
......
...@@ -121,6 +121,9 @@ private: ...@@ -121,6 +121,9 @@ private:
bool m_lastNoIncorrectPicOutputFlag; //value of variable NoIncorrectPicOutputFlag of the last CRA / GDR pic bool m_lastNoIncorrectPicOutputFlag; //value of variable NoIncorrectPicOutputFlag of the last CRA / GDR pic
#else #else
bool m_craNoRaslOutputFlag; //value of variable NoRaslOutputFlag of the last CRA pic bool m_craNoRaslOutputFlag; //value of variable NoRaslOutputFlag of the last CRA pic
#endif
#if JVET_O0428_LMCS_CLEANUP
int m_sliceLmcsApsId; //value of LmcsApsId, constraint is same id for all slices in one picture
#endif #endif
std::ostream *m_pDecodedSEIOutputStream; std::ostream *m_pDecodedSEIOutputStream;
......
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