Changeset 853 in SHVCSoftware


Ignore:
Timestamp:
5 Aug 2014, 02:38:23 (10 years ago)
Author:
qualcomm
Message:

Modification to semantics of prev_pics_not_used_flag in temporal motion vector prediction constraints SEI message

Adoption of JCTVC-R0226. (Macro: R0226_CONSTRAINT_TMVP_SEI)

From: Hendry <fhendry@…>

Location:
branches/SHM-dev/source/Lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h

    r852 r853  
    5252#define O0137_MAX_LAYERID                1      ///< JCTVC-O0137, JCTVC-O0200, JCTVC-O0223: restrict nuh_layer_id and vps_max_layers_minus1
    5353
     54#define R0226_CONSTRAINT_TMVP_SEI        1      ///< JCTVC-R0226, Modification to semantics in temporal motion vector prediction constraints SEI message
    5455#define R0226_SLICE_TMVP                 1      ///< JCTVC-R0226, Regarding slice_temporal_mvp_enabled_flag
    5556#define R0279_REP_FORMAT_INBL            1      ///< JCTVC-R0279, For any independent non-base layer the used representation format is the one that is signalled in the active SPS for the layer
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r851 r853  
    13351335#endif
    13361336
     1337
    13371338#if R0226_SLICE_TMVP
    13381339  if ( m_apcSlicePilot->getTLayer() == 0 && m_apcSlicePilot->getEnableTMVPFlag() == 0 )
     
    17431744        isTff =  (pictureTiming->m_picStruct == 1);
    17441745      }
     1746
     1747#if R0226_CONSTRAINT_TMVP_SEI
     1748      // Check if any new temporal motion vector prediction constraints SEI has arrived
     1749      SEIMessages seiTMVPConstrainsList = extractSeisByType (m_SEIs, SEI::TMVP_CONSTRAINTS);
     1750      if (seiTMVPConstrainsList.size() > 0)
     1751      {
     1752        assert ( pcPic->getTLayer() == 0 );  //this SEI can present only for AU with Tid equal to 0
     1753        SEITMVPConstrains* tmvpConstraintSEI = (SEITMVPConstrains*) *(seiTMVPConstrainsList.begin());
     1754        if ( tmvpConstraintSEI->prev_pics_not_used_flag == 1 )
     1755        {
     1756          //update all pics in the DPB such that they cannot be used for TMPV ref
     1757          TComList<TComPic*>::iterator  iterRefPic = m_cListPic.begin(); 
     1758          while( iterRefPic != m_cListPic.end() )
     1759          {
     1760            TComPic *refPic = *iterRefPic;
     1761            if( ( refPic->getLayerId() == pcPic->getLayerId() ) && refPic->getReconMark() )
     1762            {
     1763              for(Int i = refPic->getNumAllocatedSlice()-1; i >= 0; i--)
     1764              {
     1765                TComSlice *refSlice = refPic->getSlice(i);
     1766                refSlice->setAvailableForTMVPRefFlag( false );
     1767              }
     1768            }
     1769            iterRefPic++;
     1770          }
     1771        }
     1772      }
     1773#endif
    17451774    }
    17461775   
Note: See TracChangeset for help on using the changeset viewer.