Opened 9 years ago

Closed 9 years ago

#753 closed defect (fixed)

Low Delay flag isn't set for P slices

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

Description

In TDecTop.cpp, the flag bLowDelay is computed only for B slices, so for P slices it remains at the default false value, which is not necessarily the case. This results in incorrectly decoded motion vectors. The draft text makes no such distinction.
A suggested fix is below:
Before:

    if (pcSlice->isInterB())
    {
      Bool bLowDelay = true;
      Int  iCurrPOC  = pcSlice->getPOC();
      Int iRefIdx = 0;

      for (iRefIdx = 0; iRefIdx < pcSlice->getNumRefIdx(REF_PIC_LIST_0) && bLowDelay; iRefIdx++)
      {
        if ( pcSlice->getRefPic(REF_PIC_LIST_0, iRefIdx)->getPOC() > iCurrPOC )
        {
          bLowDelay = false;
        }
      }
      for (iRefIdx = 0; iRefIdx < pcSlice->getNumRefIdx(REF_PIC_LIST_1) && bLowDelay; iRefIdx++)
      {
        if ( pcSlice->getRefPic(REF_PIC_LIST_1, iRefIdx)->getPOC() > iCurrPOC )
        {
          bLowDelay = false;
        }
      }

      pcSlice->setCheckLDC(bLowDelay);            
    }

After:

    Bool bLowDelay = true;
    Int  iCurrPOC  = pcSlice->getPOC();
    Int iRefIdx = 0;
    for (iRefIdx = 0; iRefIdx < pcSlice->getNumRefIdx(REF_PIC_LIST_0) && bLowDelay; iRefIdx++)
    {
      if ( pcSlice->getRefPic(REF_PIC_LIST_0, iRefIdx)->getPOC() > iCurrPOC )
      {
        bLowDelay = false;
      }
    }
    if (pcSlice->isInterB())
    {
      for (iRefIdx = 0; iRefIdx < pcSlice->getNumRefIdx(REF_PIC_LIST_1) && bLowDelay; iRefIdx++)
      {
        if ( pcSlice->getRefPic(REF_PIC_LIST_1, iRefIdx)->getPOC() > iCurrPOC )
        {
          bLowDelay = false;
        }
      }
    }
    pcSlice->setCheckLDC(bLowDelay);            

Change History (4)

comment:1 Changed 9 years ago by DefaultCC Plugin

  • Cc fbossen ksuehring davidf jct-vc@… added

comment:2 Changed 9 years ago by ksuehring

Ticket #886 has been marked as a duplicate of this ticket.

comment:3 Changed 9 years ago by ksuehring

  • Milestone changed from HM-8.1 to HM-9.2
  • Version changed from HM-8.0 to HM-9.0

comment:4 Changed 9 years ago by fbossen

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

Fixed in r3114

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)
  • Frank Bossen(Subscriber, Participant)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Subscriber, Participant, Always)
  • Pieter Kapsenberg(Reporter)