Opened 3 years ago

Closed 3 years ago

#301 closed defect (fixed)

Fix JVET-N0847 scaling matrices cause mismatch

Reported by: jennylai Owned by:
Priority: minor Milestone: VTM-5.1
Component: VTM Version: VTM-5.0
Keywords: Cc: ksuehring, XiangLi, fbossen, jvet@…

Description

The following two issues are reported when scaling matrices is enabled.

– Scaling list in HEVC (#HEVC_USE_SCALING_LISTS) will always be applied in 4x4 blocks even if the CUs are coded with TS mode.
– The scan order matrices for 2x2 scaling matrices is wrong with macro #JVET_N0847_SCALING_LISTS.

To fix the first issue, the code shall be changed from:

  bool getUseScalingList         ( const uint32_t width, const uint32_t height, const bool isTransformSkip) { return (m_scalingListEnabledFlag && (!isTransformSkip || ((width == 4) && (height == 4)))); };

to

  bool getUseScalingList         ( const uint32_t width, const uint32_t height, const bool isTransformSkip) { return (m_scalingListEnabledFlag && !isTransformSkip); };

To fix the second issue, the code shall be:

  ScanElement *scan = g_scanOrder[SCAN_UNGROUPED][SCAN_DIAG][gp_sizeIdxInfo->idxFrom(1 << (sizeId == SCALING_LIST_2x2 ? 1 : (sizeId == SCALING_LIST_4x4 ? 2 : 3)))][gp_sizeIdxInfo->idxFrom(1 << (sizeId == SCALING_LIST_2x2 ? 1 : (sizeId == SCALING_LIST_4x4 ? 2 : 3)))];

Change history (1)

comment:1 Changed 3 years ago by ksuehring

  • Milestone set to VTM-5.1
  • Resolution set to fixed
  • Status changed from new to closed

The merge request was merged.

Note: See TracTickets for help on using tickets.