Opened 13 years ago

Closed 13 years ago

#117 closed defect (fixed)

AMVP bug in rectangular (2NxN and Nx2N) partition mode

Reported by: wjhan Owned by:
Priority: minor Milestone:
Component: HM Version:
Keywords: Cc: fbossen, ksuehring, davidf, jct-vc@…


Messages from Minhua:

In the TMuC TComDataCU.cpp, fillMvpCand() ----- the mvp list is reordered if the partition is 2NxN or Nx2N.

Line 3915-

else if ( ( ((eCUMode == SIZE_2NxN)
(eCUMode == SIZE_2NxnU) (eCUMode == SIZE_2NxnD)) && uiPartIdx == 0 && m_pcSlice->isEqualRef(eRefPicList, m_cMvFieldB.getRefIdx(), iRefIdx) )

&& iAboveMvIdx > 0 )


cTempMv = pInfo->m_acMvCand[0];
pInfo->m_acMvCand[0] = pInfo->m_acMvCand[iAboveMvIdx];
pInfo->m_acMvCand[iAboveMvIdx] = cTempMv;


else if ( ( ((eCUMode == SIZE_Nx2N)
(eCUMode == SIZE_nLx2N) (eCUMode == SIZE_nRx2N)) && uiPartIdx == 1 && m_pcSlice->isEqualRef(eRefPicList, m_cMvFieldC.getRefIdx(), iRefIdx))

&& iCornerMvIdx > 0 )


cTempMv = pInfo->m_acMvCand[0];
pInfo->m_acMvCand[0] = pInfo->m_acMvCand[iCornerMvIdx];
pInfo->m_acMvCand[iCornerMvIdx] = cTempMv;


The condition (I marked bold) seems incorrect. m_cMvFieldB and m_cMvFieldC aren't initialized in the decoding process, so these conditions are never fulfilled.

And my suggestion:

The goal of these 'boldface' checks is to check the equality of two reference indices, but as Minhua indicated, they does not work due to the non-initialization. Furthermore, the next conditions iAboveMvIdx > 0 and iCornerMvIdx > 0 already do the same thing.

Thus instead of initializing them correctly, simply removal of the bold parts is sufficient to get the original motivation to use the AVC-style motion predictor as the 1st place in AMVP queue for rectangular partition modes.

Change History (4)

comment:1 Changed 13 years ago by fbossen

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

Fixed in r426

comment:2 Changed 12 years ago by davidf

  • Component set to HM

Updating component after adding WD (Text) tickets

comment:3 Changed 12 years ago by davidf

  • Cc fbossen ksuehring davidf added

comment:4 Changed 12 years ago by davidf

  • Cc jct-vc@… added
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

  • David Flynn(Subscriber, Participant)
  • Frank Bossen(Subscriber, Participant)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Subscriber, Always)
  • Woo-Jin Han(Reporter)