Opened 4 years ago

Closed 4 years ago

#991 closed defect (fixed)

mismatch with spec and Encoder bug related to JVET_Q0471_CHROMA_QT_SPLIT

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

Description

Luma minimum QT size is mistakenly reduced by half in 4:2:2 format coding due to the integration of JVET_Q0471_CHROMA_QT_SPLIT. In the following quoted code, CHANNEL_TYPE_CHROMA should be replaced by chType.

#if JVET_Q0471_CHROMA_QT_SPLIT

minQtSize is in luma samples unit
const unsigned minQTThreshold = minQtSize >> ((area.chromaFormat == CHROMA_400) ? 0 : ((int) getChannelTypeScaleX(CHANNEL_TYPE_CHROMA, area.chromaFormat) - (int) getChannelTypeScaleY(CHANNEL_TYPE_CHROMA, area.chromaFormat)));
if( area.width <= minQTThreshold ) canQt = false;

#else

if( area.width <= minQtSize ) canQt = false;

#endif
#if JVET_Q0471_CHROMA_QT_SPLIT

minQtSize is in luma samples unit
const unsigned minQTThreshold = minQtSize >> ((area.chromaFormat == CHROMA_400) ? 0 : ((int) getChannelTypeScaleX(CHANNEL_TYPE_CHROMA, area.chromaFormat) - (int) getChannelTypeScaleY(CHANNEL_TYPE_CHROMA, area.chromaFormat)));
const bool isQtAllowed = area.width > minQTThreshold && currBtDepth == 0;

#else

const bool isQtAllowed = area.width > minQtSize && area.height > minQtSize && currBtDepth == 0;

#endif

Also, some encoder fast algorithm that determine the min and max QT split depth also depends on the minimum Qt size, which is not correctly changed accordingly.

A patch is attached to fix the issues.

Attachments (1)

0001-Fix-for-JVET_Q0471_CHROMA_QT_SPLIT.patch (6.1 KB) - added by hanhuang 4 years ago.

Download all attachments as: .zip

Change history (3)

Changed 4 years ago by hanhuang

comment:1 Changed 4 years ago by hanhuang

  • Summary changed from Encoder bug related to JVET_Q0471_CHROMA_QT_SPLIT to mismatch with spec and Encoder bug related to JVET_Q0471_CHROMA_QT_SPLIT

comment:2 Changed 4 years ago by hanhuang

  • Resolution set to fixed
  • Status changed from new to closed

fixed by JVET-R0131

Note: See TracTickets for help on using tickets.