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


Ignore:
Timestamp:
11 Sep 2014, 12:48:48 (11 years ago)
Author:
nokia
Message:

implementation of jct-vc R0247
(1) Only the base layer creates the Active Parameter Sets SEI message.
(2) Active Parameter Sets SEI message can active more than 1 sps.

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

Legend:

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

    r871 r884  
    584584
    585585  sei.activeSeqParameterSetId.resize(sei.numSpsIdsMinus1 + 1);
     586#if R0247_SEI_ACTIVE
     587  sei.layerSpsIdx.resize(sei.numSpsIdsMinus1 + 1);
     588#endif
    586589  for (Int i=0; i < (sei.numSpsIdsMinus1 + 1); i++)
    587590  {
    588591    READ_UVLC(val, "active_seq_parameter_set_id");      sei.activeSeqParameterSetId[i] = val;
    589592  }
    590 
     593#if R0247_SEI_ACTIVE
     594  for (Int i=1; i < (sei.numSpsIdsMinus1 + 1); i++)
     595  {
     596    READ_UVLC(val, "layer_sps_idx"); sei.layerSpsIdx[i] = val;
     597  }
     598#endif
    591599  xParseByteAlign();
    592600}
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r874 r884  
    23982398    {
    23992399      SEIActiveParameterSets *seiAps = (SEIActiveParameterSets*)(*activeParamSets.begin());
     2400#if !R0247_SEI_ACTIVE
    24002401      m_parameterSetManagerDecoder.applyPrefetchedPS();
    24012402      assert(seiAps->activeSeqParameterSetId.size()>0);
     
    24042405        printf ("Warning SPS activation with Active parameter set SEI failed");
    24052406      }
     2407#else
     2408      getLayerDec(0)->m_parameterSetManagerDecoder.applyPrefetchedPS();
     2409      assert(seiAps->activeSeqParameterSetId.size()>0);
     2410      if( !getLayerDec(0)->m_parameterSetManagerDecoder.activateSPSWithSEI( seiAps->activeSeqParameterSetId[0] ) )
     2411      {
     2412        printf ("Warning SPS activation with Active parameter set SEI failed");
     2413      }
     2414      for (Int c=1 ; c <= seiAps->numSpsIdsMinus1; c++)
     2415      {
     2416        Int layerIdx = seiAps->layerSpsIdx[c];
     2417        getLayerDec(layerIdx)->m_parameterSetManagerDecoder.applyPrefetchedPS();
     2418        if( !getLayerDec(layerIdx)->m_parameterSetManagerDecoder.activateSPSWithSEI( seiAps->activeSeqParameterSetId[layerIdx] ) )
     2419        {
     2420          printf ("Warning SPS activation with Active parameter set SEI failed");
     2421        }
     2422      }
     2423#endif
    24062424    }
    24072425  }
Note: See TracChangeset for help on using the changeset viewer.