Opened 3 years ago

Last modified 21 months ago

#1336 new defect

Incorrect NoOutputOfPriorPicsFlag flushing behaviour after EOS

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

Description

This ticket is related to #1335.

In TAppDecTop::decode() there is the following section of code:

      // write reconstruction to file
      if( bNewPicture )
      {
        xWriteOutput( pcListPic, nalu.m_temporalId );
      }
      if ( (bNewPicture || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_CRA) && m_cTDecTop.getNoOutputPriorPicsFlag() )
      {
        m_cTDecTop.checkNoOutputPriorPics( pcListPic );
        m_cTDecTop.setNoOutputPriorPicsFlag (false);
      }

There are two bugs here which happen when an EOS is followed by a new CVS beginning with a CRA NAL unit. When the EOS is encountered, xWriteOutput() gets called by this piece of code from further down the function:

      if (nalu.m_nalUnitType == NAL_UNIT_EOS)
      {
        xWriteOutput( pcListPic, nalu.m_temporalId );
        m_cTDecTop.setFirstSliceInPicture (false);
      }

xWriteOutput thus gets called twice before the flush in this case, where it would otherwise be called once, causing incorrect extra output. The call to xWriteOutput when an EOS NUT is encountered should therefore be removed.

The other bug is that asserts validating the state of the RPS (in TComSlice::checkLeadingPictureRestrictions()) can fire on the prior pictures whilst they are still in the buffer after the call to checkNoOutputPriorPics(). To fix this, a call to xFlushOutput() should be added after the call to checkNoOutputPriorPics().

A patch for these changes is attached.

Attachments (1)

0001-Bug-fix-picture-dumping-in-response-to-NoOutputOfPri.patch (1.2 KB) - added by jackh 3 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 3 years ago by DefaultCC Plugin

  • Cc ksuehring davidf karlsharman jct-vc@… added

comment:2 Changed 3 years ago by ksuehring

  • Milestone changed from HM-16.2 to HM-17.0

comment:3 Changed 3 years ago by ksuehring

  • Milestone changed from HM-16.3 to HM-next

comment:4 Changed 3 years ago by ksuehring

  • Milestone changed from HM-16.4 to HM-next

comment:5 Changed 3 years ago by ksuehring

  • Milestone changed from HM-next to HM-16.5

comment:6 Changed 3 years ago by ksuehring

  • Milestone changed from HM-16.5 to HM-next

comment:7 Changed 2 years ago by ksuehring

  • Milestone changed from HM-16.6 to HM-16.7

comment:8 Changed 21 months ago by ksuehring

  • Milestone HM-16.7 deleted
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, Always)
  • Jack Haughton(Reporter)
  • jct-vc@…(Subscriber)
  • Karl Sharman(Subscriber, Always)
  • Karsten Suehring(Subscriber, Participant, Always)