Opened 3 months ago

Closed 2 months 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)

sl_dc_only_change.txt (7.7 KB) - added by siwamura 3 months ago.

Download all attachments as: .zip

Change history (2)

Changed 3 months ago by siwamura

comment:1 Changed 2 months ago by XiangLi

  • Milestone set to VTM-6.2
  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.