Opened 9 years ago

Closed 9 years ago

#484 closed defect (fixed)

Text bug on reference index derivation for temporal merging candidate

Reported by: huiyong Owned by: bbross
Priority: minor Milestone: D7
Component: Text Version: D6 (H1003) dI/dJ/dK
Keywords: Cc: bbross, wjhan, jct-vc@…

Description

In "8.5.2.1.1 Derivation process for luma motion vectors for merge mode", the reference index for temporal merging candidate is derived as follows:

If the following conditions are true, refIdxLX is set equal to refIdxLX[ xP − 1, yP + nPSH − 1 ].
    –	the prediction unit covering luma location ( xP − 1, yP + nPSH − 1 ) is available  
    –	the PartIdx is equal to 0
    –	PredMode is not MODE_INTRA
    –	(xP >> (log2_parallel_merge_level_minus2 + 2)) ! = 
((xP − 1) >> (log2_parallel_merge_level_minus2 + 2))	| |
(yP >> (log2_parallel_merge_level_minus2 + 2)) ! = 
((yP + nPSH − 1) >> (log2_parallel_merge_level_minus2 + 2)

Otherwise, refIdxLX is set equal to 0.

When the singleMCLFlag is equal to 1, however, this may leads to the second PU of a 8x8 CU use a different reference index than the first PU of the same CU, which is incorrect.

The suggested fix is to modify the second condition of the first "If" statement as:

    –	the PartIdx is equal to 0 or the singleMCLFlag is equal to 1 

Note that the HM6.1 software already operates as suggested. Thus we don’t need to modify the software. For more detail, please check the getInterMergeCandidates() function, which is called with uiPUIdx==0 whenever the singleMCLFlag condition is true.

Change History (4)

comment:1 Changed 9 years ago by DefaultCC Plugin

  • Cc bbross wjhan jct-vc@… added

comment:2 in reply to: ↑ description Changed 9 years ago by huiyong

Replying to huiyong:
Issue resolved. The reported mismatch will no more exist due to the adoption of JCTVC-I0116, which fixes TMVP refIdx = 0 and hence removes the condition itself where the mismatch occured.

In "8.5.2.1.1 Derivation process for luma motion vectors for merge mode", the reference index for temporal merging candidate is derived as follows:

If the following conditions are true, refIdxLX is set equal to refIdxLX[ xP − 1, yP + nPSH − 1 ].
    –	the prediction unit covering luma location ( xP − 1, yP + nPSH − 1 ) is available  
    –	the PartIdx is equal to 0
    –	PredMode is not MODE_INTRA
    –	(xP >> (log2_parallel_merge_level_minus2 + 2)) ! = 
((xP − 1) >> (log2_parallel_merge_level_minus2 + 2))	| |
(yP >> (log2_parallel_merge_level_minus2 + 2)) ! = 
((yP + nPSH − 1) >> (log2_parallel_merge_level_minus2 + 2)

Otherwise, refIdxLX is set equal to 0.

When the singleMCLFlag is equal to 1, however, this may leads to the second PU of a 8x8 CU use a different reference index than the first PU of the same CU, which is incorrect.

The suggested fix is to modify the second condition of the first "If" statement as:

    –	the PartIdx is equal to 0 or the singleMCLFlag is equal to 1 

Note that the HM6.1 software already operates as suggested. Thus we don’t need to modify the software. For more detail, please check the getInterMergeCandidates() function, which is called with uiPUIdx==0 whenever the singleMCLFlag condition is true.

comment:3 Changed 9 years ago by bbross

  • Milestone changed from WD6 to D7

comment:4 Changed 9 years ago by bbross

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

Fixed in JCTVC-I1003_d6.

Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Owner, Subscriber, Participant

  • Benjamin Bross(Owner, Subscriber, Participant)
  • Hui Yong Kim(Reporter, Participant)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Always)
  • Woo-Jin Han(Subscriber)