Opened 4 months ago

Closed 4 weeks ago

#435 closed defect (fixed)

Mismatch on use of weighted prediction.

Reported by: bheng Owned by:
Priority: minor Milestone:
Component: spec Version: VVC D6 vE
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

For B-slices, Section 8.5.6.6.1 (Weighted sample prediction process) uses weighted prediction whenever the following condition is met:

"weightedPredFlag is set equal to pps_weighted_bipred_flag."

The corresponding requirements for using weighted prediction in the VTM software are as follows:

    
if( !pu.cu->triangle && (!dmvrApplied) && (!bioApplied) && pps.getWPBiPred() && slice.getSliceType() == B_SLICE && pu.cu->GBiIdx==GBI_DEFAULT)

I believe the text is missing checks for BCW (GBiIdx==GBI_DEFAULT) and DMVR (!dmvrApplied).

Triangle and BDOF are handled in separately in the text, so those conditions are already taken care of.

Change history (1)

comment:1 Changed 4 weeks ago by bbross

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

Thanks for reporting, I check it and the BCW should be covered by a check later in the invocation:

  • If weightedPredFlag is equal to 0 or bcwIdx is not equal to 0, the array pbSamples of the prediction samples is derived by invoking the default weighted sample prediction process as specified in clause 8.5.6.6.2 with the coding block width nCbW, the coding block height nCbH, two (nCbW)x(nCbH) arrays predSamplesL0 and predSamplesL1, the prediction list utilization flags predFlagL0 and predFlagL1, the bi-prediction weight index bcwIdx and the bit depth BitDepth as inputs.
  • Otherwise (weightedPredFlag is equal to 1 and bcwIdx is equal to 0), the array pbSamples of the prediction samples is derived by invoking the weighted sample prediction process as specified in clause 8.5.6.6.3 with the coding block width nCbW, the coding block height nCbH, two (nCbW)x(nCbH) arrays predSamplesL0 and predSamplesL1, the prediction list utilization flags predFlagL0 and predFlagL1, the reference indices refIdxL0 and refIdxL1, the colour component index cIdx and the bit depth BitDepth as inputs.

The DMVR case should be added and I will fix that in JVET-P2001-vC as follows:

  • add dmvrFlag as input
  • change to derivation to "weightedPredFlag is set equal to ( pps_weighted_bipred_flag && !dmvrFlag )"
Note: See TracTickets for help on using tickets.