Changeset 850 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
1 Aug 2014, 22:23:56 (10 years ago)
Author:
qualcomm
Message:

Constraint checking such when slice_temporal_mvp_enabled_flag is equal to 0, and TemporalId is equal to 0, succeeding pictures shall not use earlier pictures as TMVP reference

Adoption of JCTVC-R0226. (Macro: R0226_SLICE_TMVP)

From: Hendry <fhendry@…>

Location:
branches/SHM-dev/source/Lib/TLibDecoder
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r849 r850  
    29602960    if (rpcSlice->getSPS()->getTMVPFlagsPresent())
    29612961    {
     2962#if R0226_SLICE_TMVP
     2963      READ_FLAG( uiCode, "slice_temporal_mvp_enabled_flag" );
     2964#else
    29622965      READ_FLAG( uiCode, "slice_temporal_mvp_enable_flag" );
     2966#endif
    29632967      rpcSlice->setEnableTMVPFlag( uiCode == 1 ? true : false );
    29642968    }
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r849 r850  
    13131313#endif
    13141314
     1315#if R0226_SLICE_TMVP
     1316  if ( m_apcSlicePilot->getTLayer() == 0 && m_apcSlicePilot->getEnableTMVPFlag() == 0 )
     1317  {
     1318    //update all pics in the DPB such that they cannot be used for TMPV ref
     1319    TComList<TComPic*>::iterator  iterRefPic = m_cListPic.begin(); 
     1320    while( iterRefPic != m_cListPic.end() )
     1321    {
     1322      TComPic *refPic = *iterRefPic;
     1323      if( ( refPic->getLayerId() == m_apcSlicePilot->getLayerId() ) && refPic->getReconMark() )
     1324      {
     1325        for(Int i = refPic->getNumAllocatedSlice()-1; i >= 0; i--)
     1326        {
     1327
     1328          TComSlice *refSlice = refPic->getSlice(i);
     1329          refSlice->setAvailableForTMVPRefFlag( false );
     1330        }
     1331      }
     1332      iterRefPic++;
     1333    }
     1334  }
     1335  m_apcSlicePilot->setAvailableForTMVPRefFlag( true );
     1336#endif
     1337
    13151338  // actual decoding starts here
    13161339    xActivateParameterSets();
     
    19451968      }
    19461969    }
    1947 
     1970   
    19481971    if( m_layerId > 0 && !pcSlice->isIntra() && pcSlice->getEnableTMVPFlag() )
    19491972    {
     
    19511974
    19521975      assert( refPic );
     1976#if R0226_SLICE_TMVP
     1977      assert ( refPic->getPicSym()->getSlice(0)->getAvailableForTMVPRefFlag() == true );
     1978#endif
    19531979
    19541980      // It is a requirement of bitstream conformance when the collocated picture, used for temporal motion vector prediction, is an inter-layer reference picture,
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.h

    r820 r850  
    165165  Bool                    m_isLastNALWasEos;
    166166#endif
    167 
    168167#if SVC_EXTENSION
    169168  static UInt             m_prevPOC;        // POC of the previous slice
Note: See TracChangeset for help on using the changeset viewer.