Skip to content

Fix: reference POC initialization and add a check for I-slice in reference index setting for AH0069

Vadim Seregin requested to merge seregin/ECM:ECM13_AH0069_FIX into master

Fix reference POC initialization and add a check for I-slice in reference index setting, related to #70.

Reference POCs m_aiRefPOCList are initialized with 0, which is a valid POC values, so not a good initialization in general. Next, in Slice::setRefRefIdxList() the condition is checked whether refRefPOC is equal to the refPOC, so the for the second picture in the decoding order the refPOC is the first I-picture, where refRefPOC, which is a reference picture of the I-picture, is not available, but since it is initialized to 0, the condition check refRefPOC == getRefPOC(RefPicList(iCurrDir), iCurrRefIdx) will pass.

When segments are merged the first I-picture POC is not 0 any more, so that condition won't be true, hence the mismatch.

Solution in the fix is to initialize refPOCs with -1 and add I-slice check.

Merge request reports