Changeset 636 in SHVCSoftware


Ignore:
Timestamp:
20 Mar 2014, 02:37:50 (11 years ago)
Author:
seregin
Message:

remove parsing dependency in SPS, ticket #17

Location:
branches/SHM-5.1-dev/source/Lib
Files:
7 edited

Legend:

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

    r633 r636  
    778778  TimingInfo* getTimingInfo() { return &m_timingInfo; }
    779779
    780 #if SPS_DPB_PARAMS
    781     Int       getTolsIdx  ()             { return m_TolsIdx;   }
    782     Void      setTolsIdx  ( Int value  ) { m_TolsIdx = value;  }
    783 #endif
    784 
    785780#if SVC_EXTENSION
    786781#if DERIVE_LAYER_ID_LIST_VARIABLES
  • branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r635 r636  
    537537}
    538538
    539 #if SVC_EXTENSION
     539#if SVC_EXTENSION && !SPS_DPB_PARAMS
    540540Void TDecCavlc::parseSPS(TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager)
    541541#else
     
    559559#if SVC_EXTENSION
    560560  }
     561#if !SPS_DPB_PARAMS
    561562  else
    562563  {
     
    565566  }
    566567#endif
     568#endif
     569
    567570  if ( pcSPS->getMaxTLayers() == 1 )
    568571  {
    569572    // sps_temporal_id_nesting_flag must be 1 when sps_max_sub_layers_minus1 is 0
    570573#if SVC_EXTENSION
     574#if !SPS_DPB_PARAMS
    571575    assert( pcSPS->getTemporalIdNestingFlag() == true );
     576#endif
    572577#else
    573578    assert( uiCode == 1 );
  • branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecCAVLC.h

    r595 r636  
    8686  Void  parseVpsDpbSizeTable( TComVPS *vps );
    8787#endif
     88#if SPS_DPB_PARAMS
     89  Void  parseSPS            ( TComSPS* pcSPS ); // it should be removed after macro clean up
     90#else
    8891  Void  parseSPS            ( TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager );
     92#endif
    8993  Void  parseSPSExtension    ( TComSPS* pcSPS );
    9094#else //SVC_EXTENSION
  • branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecEntropy.h

    r595 r636  
    6666
    6767  virtual Void  parseVPS                  ( TComVPS* pcVPS )                       = 0;
    68 #if SVC_EXTENSION
     68#if SVC_EXTENSION && !SPS_DPB_PARAMS
    6969  virtual Void  parseSPS                  ( TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager )           = 0;
    7070#else
     
    133133  Void    resetEntropy                ( TComSlice* p)           { m_pcEntropyDecoderIf->resetEntropy(p);                    }
    134134  Void    decodeVPS                   ( TComVPS* pcVPS ) { m_pcEntropyDecoderIf->parseVPS(pcVPS); }
    135 #if SVC_EXTENSION
     135#if SVC_EXTENSION && !SPS_DPB_PARAMS
    136136  Void    decodeSPS                   ( TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager )    { m_pcEntropyDecoderIf->parseSPS(pcSPS, parameterSetManager);                    }
    137137#else
  • branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecSbac.h

    r609 r636  
    7676  Void  setBitstream              ( TComInputBitstream* p  ) { m_pcBitstream = p; m_pcTDecBinIf->init( p ); }
    7777  Void  parseVPS                  ( TComVPS* /*pcVPS*/ ) {}
    78 #if SVC_EXTENSION
     78#if SVC_EXTENSION && !SPS_DPB_PARAMS
    7979  Void  parseSPS                  ( TComSPS* /*pcSPS*/, ParameterSetManagerDecoder * /*parameterSetManager*/ ) {}
    8080#else
  • branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r633 r636  
    316316    m_iMaxRefPicNum = pcSlice->getVPS()->getMaxVpsDecPicBufferingMinus1( getCommonDecoderParams()->getTargetOutputLayerSetIdx(), pcSlice->getLayerId(), pcSlice->getTLayer() ) + 1; // m_uiMaxDecPicBuffering has the space for the picture currently being decoded
    317317#endif
    318 #if SPS_DPB_PARAMS
    319       pcSlice->getVPS()->setTolsIdx(getCommonDecoderParams()->getTargetOutputLayerSetIdx());
    320 #endif
    321318  }
    322319#else
     
    740737        break;
    741738      }
     739    }
     740  }
     741#endif
     742
     743#if SPS_DPB_PARAMS
     744  if( m_layerId > 0 )
     745  {
     746    // When not present sps_max_sub_layers_minus1 is inferred to be equal to vps_max_sub_layers_minus1.
     747    sps->setMaxTLayers( activeVPS->getMaxTLayers() );
     748
     749    // When not present sps_temporal_id_nesting_flag is inferred to be equal to vps_temporal_id_nesting_flag
     750    sps->setTemporalIdNestingFlag( activeVPS->getTemporalNestingFlag() );
     751
     752    // When sps_max_dec_pic_buffering_minus1[ i ] is not present for i in the range of 0 to sps_max_sub_layers_minus1, inclusive, due to nuh_layer_id being greater than 0,
     753    // it is inferred to be equal to max_vps_dec_pic_buffering_minus1[ TargetOptLayerSetIdx ][ currLayerId ][ i ] of the active VPS, where currLayerId is the nuh_layer_id of the layer that refers to the SPS.
     754    for(UInt i=0; i < sps->getMaxTLayers(); i++)
     755    {
     756      sps->setMaxDecPicBuffering( activeVPS->getMaxVpsDecPicBufferingMinus1( getCommonDecoderParams()->getTargetOutputLayerSetIdx(), sps->getLayerId(), i) + 1, i);
    742757    }
    743758  }
     
    17121727#if SVC_EXTENSION
    17131728  sps->setLayerId(m_layerId);
     1729#if SPS_DPB_PARAMS
     1730  m_cEntropyDecoder.decodeSPS( sps ); // it should be removed after macro clean up
     1731#else
    17141732  m_cEntropyDecoder.decodeSPS( sps, &m_parameterSetManagerDecoder );
     1733#endif
    17151734  m_parameterSetManagerDecoder.storePrefetchedSPS(sps);
    17161735#if !REPN_FORMAT_IN_VPS   // ILRP can only be initialized at activation 
  • branches/SHM-5.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r635 r636  
    519519
    520520#if SPS_DPB_PARAMS
    521     if( pcSPS->getLayerId() == 0 )  {
     521  if( pcSPS->getLayerId() == 0 )
     522  {
    522523#endif
    523524  const Bool subLayerOrderingInfoPresentFlag = 1;
     
    534535  }
    535536#if SPS_DPB_PARAMS
    536     }
     537  }
    537538#endif
    538539  assert( pcSPS->getMaxCUWidth() == pcSPS->getMaxCUHeight() );
Note: See TracChangeset for help on using the changeset viewer.