Opened 4 years ago

Closed 4 years ago

#850 closed defect (fixed)

issue in the definition of max_num_merge_cand_minus_max_num_gpm_cand

Reported by: lenchik Owned by:
Priority: minor Milestone:
Component: spec Version:
Keywords: Cc: semih.esenlik@…, ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

The constraint related to MaxNumGeoMergeCand below is conflicting with the derivation rule. Futhermore there are typos in the name, MaxNumGeoMergeCand should be MaxNumGpmMergeCand.

max_num_merge_cand_minus_max_num_gpm_cand specifies the maximum number of geometric partitioning merge mode candidates supported in the SPS subtracted from MaxNumMergeCand.
If sps_gpm_enabled_flag is equal to 1 and MaxNumMergeCand is greater than or equal to 3, the maximum number of geometric partitioning merge mode candidates, MaxNumGeoMergeCand, is derived as follows:
if( sps_gpm_enabled_flag && MaxNumMergeCand >= 3 )

MaxNumGpmMergeCand = MaxNumMergeCand −

max_num_merge_cand_minus_max_num_gpm_cand (66)

else if( sps_gpm_enabled_flag && MaxNumMergeCand = = 2 )

MaxNumMergeCand = 2

else

MaxNumGeoMergeCand = 0

The value of MaxNumGeoMergeCand shall be in the range of 2 to MaxNumMergeCand, inclusive.

Suggested fix:
max_num_merge_cand_minus_max_num_gpm_cand specifies the maximum number of geometric partitioning merge mode candidates supported in the SPS subtracted from MaxNumMergeCand.
The maximum number of geometric partitioning merge mode candidates, MaxNumGpmMergeCand, is derived as follows:
if( sps_gpm_enabled_flag && MaxNumMergeCand >= 3 )

MaxNumGpmMergeCand = MaxNumMergeCand −

max_num_merge_cand_minus_max_num_gpm_cand (66)

else

MaxNumGpmMergeCand = 2

The value of MaxNumGpmMergeCand shall be in the range of 2 to MaxNumMergeCand, inclusive.

Change history (3)

comment:1 Changed 4 years ago by yjchang

Thanks for cleaning up the name.

0 value for MaxNumGpmMergeCand is redundant here because sps_gpm_enabled_flag already can control geometric partitioning merge mode on/off. Therefore, the fix you are suggesting also looks cleaner to me.

comment:2 Changed 4 years ago by lingli0

Thank you for pointing out the typo.
It should be


if( sps_gpm_enabled_flag && MaxNumMergeCand >= 3 )

MaxNumGpmMergeCand = MaxNumMergeCand − max_num_merge_cand_minus_max_num_gpm_cand (66)

else if( sps_gpm_enabled_flag && MaxNumMergeCand = = 2 )

MaxNumGpmMergeCand = 2

else

MaxNumGpmMergeCand = 0

The value of MaxNumGpmMergeCand shall be in the range of 2 to MaxNumMergeCand, inclusive.


I believe that MaxNumGpmMergeCand = 0 is still needed to make it more clearer. Because it is strange to have MaxNumGpmMergeCand =2 when sps_gpm_enabled_flag is false. That is the intention to have it as value 0.

comment:3 Changed 4 years ago by yk

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

Thanks for the good catch! Will be fixed in JVET-Q2001-vC, by replacing "If sps_gpm_enabled_flag is equal to 1 and MaxNumMergeCand is greater than or equal to 3, the ..." with "The ..." and changing the three instances of "MaxNumGeoMergeCand" to "MaxNumGpmMergeCand".

Note: See TracTickets for help on using tickets.