Opened 4 months ago

Last modified 4 weeks ago

#1628 new defect

Derivation of ModeTypeCondition should say "one or more"

Reported by: peterderivaz Owned by:
Priority: trivial Milestone: H.266/VVC v4
Component: spec Version: H.266/VVC v3
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

The derivation of ModeTypeCondition reads:

The variable ModeTypeCondition is derived as follows:
If one or more of the following conditions are true, ModeTypeCondition is set equal to 0:
  – sh_slice_type is equal to I and sps_qtbtt_dual_tree_intra_flag is equal to 1;
  – modeTypeCurr is not equal to MODE_TYPE_ALL;
  – sps_chroma_format_idc is equal to 0;
  – sps_chroma_format_idc is equal to 3;
– Otherwise, if one or more of the following conditions is true, ModeTypeCondition is set equal to 1:
  – cbWidth * cbHeight is equal to 64 and split_qt_flag is equal to 1;
  – cbWidth * cbHeight is equal to 64 and split_qt_flag is equal to 0 and MttSplitMode[ x0 ][ y0 ][ mttDepth ] is equal to SPLIT_TT_HOR or SPLIT_TT_VER;
  – cbWidth * cbHeight is equal to 32 and MttSplitMode[ x0 ][ y0 ][ mttDepth ] is equal to SPLIT_BT_HOR or SPLIT_BT_VER;
– Otherwise, if one of the following conditions is true, ModeTypeCondition is set equal to 1 + ( sh_slice_type != I ? 
1 : 0 ):
  – cbWidth * cbHeight is equal to 64 and MttSplitMode[ x0 ][ y0 ][ mttDepth ] is equal to SPLIT_BT_HOR or SPLIT_BT_VER and sps_chroma_format_idc is equal to 1;
  – cbWidth * cbHeight is equal to 128 and MttSplitMode[ x0 ][ y0 ][ mttDepth ] is equal to SPLIT_TT_HOR or SPLIT_TT_VER and sps_chroma_format_idc is equal to 1;
  – cbWidth is equal to 8 and MttSplitMode[ x0 ][ y0 ][ mttDepth ] is equal to SPLIT_BT_VER;
  – cbWidth is equal to 16 and split_qt_flag is equal to 0 and MttSplitMode[ x0 ][ y0 ][ mttDepth ] is equal to SPLIT_TT_VER;
– Otherwise, ModeTypeCondition is set equal to 0.

The "if one of the following conditions is true" should read "if one or more of the following conditions is true".

This can cause decoding differences for legal bitstreams. For example, cbWidth = 16, cbHeight = 8, MttSplitMode[ x0 ][ y0 ][ mttDepth ] = SPLIT_TT_VER, sps_chroma_format_idc = 1, split_qt_flag = 0.

In this case, two of the conditions can be true at the same time.

Change history (1)

comment:1 Changed 4 weeks ago by bbross

  • Milestone set to H.266/VVC v4
  • Version set to H.266/VVC v3

Good catch, thanks! Should be be fixed in v4 as suggested.

Note: See TracTickets for help on using tickets.