Opened 5 years ago
Closed 5 years ago
#851 closed defect (fixed)
Mismatch between spec and VTM on RplsIdx inference.
Reported by: | audrey.turquin | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | VTM | Version: | |
Keywords: | Cc: | ksuehring, XiangLi, fbossen, jvet@… |
Description
It seems there is a mismatch between spec and VTM on the RplsIdx[1] inference in case of:
- rpl1_idx_present_flag = 0
- num_ref_pic_lists_in_sps[0] != 0
- num_ref_pic_lists_in_sps[1] = 0
- rpl_sps_flag[0] = 1
In this case, according to the spec, there are the following inferences for RPL1 :
- rpl_sps_flag[1] = 0 (because num_ref_pic_lists_in_sps[1] = 0)
- RplsIdx[1] = num_ref_pic_lists_in_sps[1] = 0
However, in the VTM, this inference is not done correctly (for both picture header and slice header).
In the parsing of the picture header (parsePictureHeader function), the first condition for the inference is:
if (listIdx == 1 && !pps->getRpl1IdxPresentFlag()) { picHeader->setRPL1idx(picHeader->getRPL0idx()); uiCode = (picHeader->getRPL0idx() != -1); } // RPL in picture header or SPS else if (sps->getNumRPL( listIdx ) == 0) { ... }
In the parsing of the slice header (parseSliceHeader function), the first condition for the inference is:
if (!pps->getRpl1IdxPresentFlag()) { pcSlice->setRPL1idx(pcSlice->getRPL0idx()); if (pcSlice->getRPL1idx() != -1) pcSlice->setRPL1(sps->getRPLList1()->getReferencePictureList(pcSlice->getRPL0idx())); } else { ... }
Consequently, if rpl1_idx_present_flag = 0, RplsIdx[1] is set equal to RplsIdx[0], without taking into account the value of rpl_sps_flag[1].
So RplsIdx[1] is not set to the correct value, and cannot access to the correct RPL from SPS as it doesn't even exist (because num_of_ref_pic_lists_in_sps[1] = 0).
Moreover, in this case, in VTM the function 'parseRefPicList' is not called for L1 while it is the case in the spec (function 'ref_pic_list_struct').
Change history (3)
comment:1 Changed 5 years ago by audrey.turquin
comment:2 Changed 5 years ago by audrey.turquin
comment:3 Changed 5 years ago by ksuehring
- Resolution set to fixed
- Status changed from new to closed
The MR was merged.
Corresponding MR to align VTM on the spec :
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/merge_requests/1314