Opened 4 years ago

Closed 4 years ago

#778 closed defect (fixed)

A bug for combination of CIIP and WP

Reported by: chujoh Owned by:
Priority: minor Milestone: VTM-7.2
Component: VTM Version: VTM-7.0
Keywords: Cc: jvet@…, ksuehring, XiangLi, fbossen, takeshi.chujoh@…

Description

There is a bug for combination of CIIP and WP.
When chroma coefficients or offsets of weighted prediction are existed, results between encoder and decoder are not identical.
The following changes should be introduced.

In /source/Lib/CommonLib/InterPrediction.cpp,
void InterPrediction::xPredInterBi(PredictionUnit &pu, PelUnitBuf &pcYuvPred, const bool luma, const bool chroma, PelUnitBuf *yuvPredTmp /*= NULL*/)

   if (dmvrApplied)
    {
      if (yuvPredTmp)
      {
        yuvPredTmp->addAvg(srcPred0, srcPred1, slice.clpRngs(), false);
      }
      xProcessDMVR(pu, pcYuvPred, slice.clpRngs(), bioApplied);
    }

->

   if (dmvrApplied)
    {
      if (yuvPredTmp)
      {
        if( pps.getWPBiPred() && slice.getSliceType() == B_SLICE &&
            wp0[COMPONENT_Cb].bPresentFlag || wp1[COMPONENT_Cb].bPresentFlag ||
            wp0[COMPONENT_Cr].bPresentFlag || wp1[COMPONENT_Cr].bPresentFlag) )
        {
          yuvPredTmp->addAvg(srcPred0, srcPred1, slice.clpRngs(), false, true);
          xWeightedPredictionBi( pu, srcPred0, srcPred1, pcYuvPred, m_maxCompIDToPred, false, true );
          yuvPredTmp->copyFrom(pcYuvPred, false, true);
        }
        else
        {
          yuvPredTmp->addAvg(srcPred0, srcPred1, slice.clpRngs(), false);
        }
      }
      xProcessDMVR(pu, pcYuvPred, slice.clpRngs(), bioApplied);
    }

Change history (1)

comment:1 Changed 4 years ago by chujoh

  • Cc takeshi.chujoh@… added
  • Resolution set to fixed
  • Status changed from new to closed

As a result of adoption of JVET-Q0128, this bug has been resolved.

Note: See TracTickets for help on using tickets.