Opened 5 years ago
Closed 5 years ago
#496 closed defect (fixed)
Encoder/Decoder mismatch appears when specific user-defined scaling list is signalled
Reported by: | siwamura | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | VTM-6.2 |
Component: | VTM | Version: | VTM-6.1 |
Keywords: | Cc: | ksuehring, XiangLi, fbossen, jvet@… |
Description
Encoder/Decoder mismatch appears when the DC value of a given scaling list is not equal to default value (16) and the rest is the same as the default scaling list.
In ScalingList::checkPredMode(), the scaling list to be signalled is checked whether all entries are completely same as the previously signalled scaling list.
In the current procedure of this duplication check, it is checked whether the scaling list is same as default scaling list (all entries are 16) for the first loop (predListIdx = listId).
However, when predListIdx == listId, a part of the conditions of the duplication check is always true as shown below:
getScalingListDC(sizeId, listId) == getScalingListDC(sizeId, predListIdx)
This should be changed to
listId == predListIdx ? (getScalingListDefaultAddress(sizeId, predListIdx)[0] == getScalingListDC(sizeId, predListIdx)) : (getScalingListDC(sizeId, listId) == getScalingListDC(sizeId, predListIdx))
This change only affects the encoder behavior and no normative change is needed.
Please find attached the example of the user defined scaling list which will cause encoder/decoder mismatch.
Attachments (1)
Change history (2)
Changed 5 years ago by siwamura
comment:1 Changed 5 years ago by XiangLi
- Milestone set to VTM-6.2
- Resolution set to fixed
- Status changed from new to closed
Fixed in https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/merge_requests/900.