Opened 11 years ago

Closed 9 years ago

#109 closed defect (fixed)

One potential bug may lead to mismatch

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

Description

At encoder, both skip mode and direct mode are checked in xCheckRDCostSkip(). When the encoder selects the bi-predicted direct mode and this CU has no residue (it will only happen with CABAC, when the encoder thinks this direct mode will cost less bits than skip mode), the variables should be reset as the skip mode.
Actually, when this happens, xEncodeCU() will take it as skip mode, and the decoder will receive skip mode too. But at the encoder TransformIdx may not always be 0 (because in RD process, the encoder takes it as direct mode, not skip mode), at the decoder TransformIdx will always be 0(because the decoder takes it as skip mode). This will lead to mismatch after deblocking filter.
So, in my opinion, after the RD process, when pcCU->isSkipped( uiAbsPartIdx ) is true, the variables should be reset as the skip mode, to avoid the mismatch between the encoder and the decoder.

Change History (8)

comment:1 follow-up: Changed 10 years ago by dthoang

I am debugging a similar mismatch issue and question why TEncSearch::encodeResAndCalcRdInterCU() takes rpcYuvResiBest as a parameter. This function can modify rpcYuvResiBest but not update the corresponding reconstruction Yuv buffer. This looks like the root cause of this mismatch bug.

comment:2 in reply to: ↑ 1 Changed 10 years ago by dthoang

Replying to dthoang:

I am debugging a similar mismatch issue and question why TEncSearch::encodeResAndCalcRdInterCU() takes rpcYuvResiBest as a parameter. This function can modify rpcYuvResiBest but not update the corresponding reconstruction Yuv buffer. This looks like the root cause of this mismatch bug.

Please disregard the above. After debugging, a different cause for mismatch was found.

comment:3 follow-up: Changed 10 years ago by fbossen

Does this still apply to version 3.1?

comment:4 in reply to: ↑ 3 Changed 10 years ago by libin

Replying to fbossen:

Does this still apply to version 3.1?

No, I do not think it still applies to HM-3.1.
It is only related to direct mode and skip mode (not merge skip) in the old version.

comment:5 Changed 10 years ago by davidf

  • Component set to HM

Updating component after adding WD (Text) tickets

comment:6 Changed 9 years ago by davidf

  • Cc fbossen ksuehring davidf added

comment:7 Changed 9 years ago by davidf

  • Cc jct-vc@… added

comment:8 Changed 9 years ago by ksuehring

  • Milestone set to HM-3.1
  • Resolution set to fixed
  • Status changed from new to closed

looks like this should have been closed already

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

  • Bin Li(Reporter, Participant)
  • David Flynn(Subscriber, Participant)
  • Dzung Hoang(Participant)
  • Frank Bossen(Subscriber, Participant)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Subscriber, Participant, Always)