Ignore:
Timestamp:
13 Jul 2013, 10:26:41 (11 years ago)
Author:
tech
Message:

MergeMerged tags/HTM-DEV-1.0.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComSlice.h

    r532 r534  
    487487  UInt        m_numHrdParameters;
    488488#if H_MV
    489   UInt        m_maxNuhLayerId;
     489  UInt        m_maxLayerId;
    490490#else
    491491  UInt        m_maxNuhReservedZeroLayerId;
     
    494494  UInt*       m_hrdOpSetIdx;
    495495  Bool*       m_cprmsPresentFlag;
    496   UInt        m_numOpSets;
    497 #if H_MV
     496#if H_MV
     497  UInt        m_vpsNumLayerSetsMinus1;
    498498  Bool        m_layerIdIncludedFlag[MAX_VPS_OP_SETS_PLUS1][MAX_VPS_NUH_LAYER_ID_PLUS1];
    499499#else
     500  UInt        m_numOpSets;
    500501  Bool        m_layerIdIncludedFlag[MAX_VPS_OP_SETS_PLUS1][MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1];
    501502#endif
     
    514515
    515516#if H_MV
     517  /// VPS EXTENSION SYNTAX ELEMENTS
    516518  Bool        m_avcBaseLayerFlag;
    517519  Bool        m_splittingFlag;
     
    520522  Bool        m_vpsNuhLayerIdPresentFlag;
    521523  Int         m_layerIdInNuh             [MAX_NUM_LAYER_IDS];
     524  Int         m_dimensionId              [MAX_NUM_LAYER_IDS][MAX_NUM_SCALABILITY_TYPES]; 
     525  Bool        m_directDependencyFlag     [MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS];
     526  Int         m_maxTidIlRefPicPlus1      [MAX_NUM_LAYERS];
     527  Int         m_vpsNumberLayerSetsMinus1;
     528  Int         m_vpsNumProfileTierLevelMinus1;   
     529  Bool        m_vpsProfilePresentFlag    [MAX_VPS_OP_SETS_PLUS1];
     530  Int         m_profileRefMinus1         [MAX_VPS_PROFILE_TIER_LEVEL];
     531  Bool        m_moreOutputLayerSetsThanDefaultFlag;
     532  Int         m_numAddOutputLayerSetsMinus1;   
     533  Bool        m_defaultOneTargetOutputLayerFlag;
     534  Int         m_outputLayerSetIdxMinus1  [MAX_VPS_OUTPUTLAYER_SETS]; 
     535  Bool        m_outputLayerFlag          [MAX_VPS_OUTPUTLAYER_SETS][MAX_VPS_NUH_LAYER_ID_PLUS1];
     536  Int         m_profileLevelTierIdx      [MAX_VPS_OUTPUTLAYER_SETS ];
     537  Bool        m_maxOneActiveRefLayerFlag;       
     538  Int         m_directDepTypeLenMinus2;         
     539  Int         m_directDependencyType     [MAX_NUM_LAYERS] [MAX_NUM_LAYERS];
     540
     541  // VPS EXTENSION SEMANTICS VARIABLES
    522542  Int         m_layerIdInVps             [MAX_NUM_LAYERS   ];
    523   Int         m_dimensionId              [MAX_NUM_LAYER_IDS][MAX_NUM_SCALABILITY_TYPES]; 
     543
     544  Int         m_numDirectRefLayers       [MAX_NUM_LAYERS];
     545  Int         m_refLayerId               [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
     546
     547  Int         m_numSamplePredRefLayers   [MAX_NUM_LAYERS];
     548  Bool        m_samplePredEnabledFlag    [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
     549  Int         m_samplePredRefLayerId     [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
     550
     551  Int         m_numMotionPredRefLayers   [MAX_NUM_LAYERS];
     552  Bool        m_motionPredEnabledFlag    [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
     553  Int         m_motionPredRefLayerId     [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    524554#if H_3D
    525555  Int         m_viewIndex                [MAX_NUM_LAYERS   ];
     556#endif
     557
     558  Int         xCeilLog2       ( Int val );
     559  Int         xGetDimBitOffset( Int j );
     560 
    526561#if H_3D_ARP
    527562  UInt        m_uiUseAdvResPred          [MAX_NUM_LAYERS   ];
     
    549584  Bool        m_ivMvScalingFlag;
    550585#endif
    551 
    552 #endif
    553 
    554  
    555   Bool        m_vpsProfilePresentFlag    [MAX_VPS_OP_SETS_PLUS1];
    556   Int         m_profileLayerSetRefMinus1 [MAX_VPS_OP_SETS_PLUS1];
    557   Int         m_numOutputLayerSets;
    558   Int         m_outputLayerSetIdx        [MAX_VPS_OP_SETS_PLUS1];
    559   Bool        m_outputLayerFlag          [MAX_VPS_OP_SETS_PLUS1][MAX_VPS_NUH_LAYER_ID_PLUS1];
    560   Bool        m_directDependencyFlag     [MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS];
    561 
    562   Int         m_numDirectRefLayers       [ MAX_NUM_LAYERS ];
    563   Int         m_refLayerId               [ MAX_NUM_LAYERS ][MAX_NUM_LAYERS]; 
    564586
    565587#endif
     
    606628
    607629#if H_MV
    608   UInt    getMaxNuhLayerId()                                    { return m_maxNuhLayerId; }
    609   Void    setMaxNuhLayerId(UInt v)                              { m_maxNuhLayerId = v;    }
     630  UInt    getVpsMaxLayerId()                                    { return m_maxLayerId; }
     631  Void    setVpsMaxLayerId(UInt v)                              { m_maxLayerId = v;    }
     632
     633  UInt    getVpsNumLayerSetsMinus1()                            { return m_vpsNumLayerSetsMinus1; }
     634  Void    setVpsNumLayerSetsMinus1(UInt v)                      { m_vpsNumLayerSetsMinus1 = v;    }
    610635#else
    611636  UInt    getMaxNuhReservedZeroLayerId()                        { return m_maxNuhReservedZeroLayerId; }
    612637  Void    setMaxNuhReservedZeroLayerId(UInt v)                  { m_maxNuhReservedZeroLayerId = v;    }
    613 #endif
    614638
    615639  UInt    getMaxOpSets()                                        { return m_numOpSets; }
    616640  Void    setMaxOpSets(UInt v)                                  { m_numOpSets = v;    }
     641#endif
    617642  Bool    getLayerIdIncludedFlag(UInt opsIdx, UInt id)          { return m_layerIdIncludedFlag[opsIdx][id]; }
    618643  Void    setLayerIdIncludedFlag(Bool v, UInt opsIdx, UInt id)  { m_layerIdIncludedFlag[opsIdx][id] = v;    }
     
    652677  Int     getLayerIdInNuh( Int layerIdInVps )                              { assert( m_layerIdInNuh[layerIdInVps] >= 0 ); return m_layerIdInNuh[layerIdInVps]; }
    653678
     679  Bool    nuhLayerIdIncluded( Int layerIdinNuh )                           { return ( m_layerIdInVps[ layerIdinNuh ] > 0 );  }
     680
     681  Void    setDimensionId( Int layerIdInVps, Int scalIdx, Int val )         { m_dimensionId[layerIdInVps][scalIdx] = val;  }
     682  Int     getDimensionId( Int layerIdInVps, Int scalIdx )                  { return m_dimensionId[layerIdInVps][scalIdx]; }
     683
     684  Void    setDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Bool val ) { m_directDependencyFlag[depLayeridInVps][refLayeridInVps] = val;  }
     685  Bool    getDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps )           { return m_directDependencyFlag[depLayeridInVps][refLayeridInVps]; }
     686
     687  Void    setMaxTidIlRefPicPlus1( Int layerIdInVps, Int val )              { m_maxTidIlRefPicPlus1[ layerIdInVps ] = val;  }
     688  Int     getMaxTidIlRefPicPlus1( Int layerIdInVps )                       { return m_maxTidIlRefPicPlus1[ layerIdInVps ]; }
     689 
     690  Void    setVpsNumberLayerSetsMinus1( Int val )                           { m_vpsNumberLayerSetsMinus1 = val;  }
     691  Int     getVpsNumberLayerSetsMinus1( )                                   { return m_vpsNumberLayerSetsMinus1; }
     692 
     693  Void    setVpsNumProfileTierLevelMinus1( Int val )                       { m_vpsNumProfileTierLevelMinus1 = val;  }
     694  Int     getVpsNumProfileTierLevelMinus1( )                               { return m_vpsNumProfileTierLevelMinus1; }
     695 
     696  Void    setVpsProfilePresentFlag( Int idx, Bool val )                    { m_vpsProfilePresentFlag[idx] = val;  }
     697  Bool    getVpsProfilePresentFlag( Int idx )                              { return m_vpsProfilePresentFlag[idx]; }
     698
     699  Void    setProfileRefMinus1( Int profileTierLevelIdx, Int val )          { m_profileRefMinus1[ profileTierLevelIdx ] = val;  }
     700  Int     getProfileRefMinus1( Int profileTierLevelIdx )                   { return m_profileRefMinus1[ profileTierLevelIdx ]; }
     701
     702  Void    setMoreOutputLayerSetsThanDefaultFlag( Bool flag )               { m_moreOutputLayerSetsThanDefaultFlag = flag; }
     703  Bool    getMoreOutputLayerSetsThanDefaultFlag()                          { return m_moreOutputLayerSetsThanDefaultFlag; }
     704 
     705  Void    setNumAddOutputLayerSetsMinus1( Int val )                        { m_numAddOutputLayerSetsMinus1 = val; }
     706  Int     getNumAddOutputLayerSetsMinus1( )                                { return m_numAddOutputLayerSetsMinus1; }
     707 
     708  Void    setDefaultOneTargetOutputLayerFlag( Bool flag )                  { m_defaultOneTargetOutputLayerFlag = flag; }
     709  Bool    getDefaultOneTargetOutputLayerFlag( )                            { return m_defaultOneTargetOutputLayerFlag; }
     710 
     711  Void    setOutputLayerSetIdxMinus1( Int outLayerSetIdx, Int val )        { m_outputLayerSetIdxMinus1[ outLayerSetIdx ]  = val; }
     712  Int     getOutputLayerSetIdxMinus1( Int outLayerSetIdx )                 { return m_outputLayerSetIdxMinus1[ outLayerSetIdx ]; }
     713
     714  Void    setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag )       { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; }
     715  Bool    getOutputLayerFlag( Int outLayerSetIdx, Int i )                  { return m_outputLayerFlag[ outLayerSetIdx ][ i ]; }
     716
     717  Void    setProfileLevelTierIdx( Int outLayerSetIdx, Int val )            { m_profileLevelTierIdx[ outLayerSetIdx  = val ]; }
     718  Int     getProfileLevelTierIdx( Int outLayerSetIdx )                     { return m_profileLevelTierIdx[ outLayerSetIdx ]; }
     719
     720  Void    setMaxOneActiveRefLayerFlag( Bool flag)                          { m_maxOneActiveRefLayerFlag = flag; }
     721  Bool    getMaxOneActiveRefLayerFlag( )                                   { return m_maxOneActiveRefLayerFlag; }
     722
     723  Void    setDirectDepTypeLenMinus2( Int val)                              { m_directDepTypeLenMinus2 = val; }
     724  Int     getDirectDepTypeLenMinus2( )                                     { return m_directDepTypeLenMinus2; }
     725
     726  Void    setDirectDependencyType( Int depLayeridInVps, Int refLayeridInVps, Int val) { m_directDependencyType[ depLayeridInVps ][ refLayeridInVps ] = val; }
     727  Int     getDirectDependencyType( Int depLayeridInVps, Int refLayeridInVps)   { return m_directDependencyType[ depLayeridInVps ][ refLayeridInVps ]; }
     728
     729
     730  // VPS EXTENSION SEMANTICS VARIABLES
    654731  Void    setLayerIdInVps( Int layerIdInNuh, Int val )                     { m_layerIdInVps[layerIdInNuh] = val;  }
    655732  Int     getLayerIdInVps( Int layerIdInNuh )                              { assert( m_layerIdInVps[layerIdInNuh] >= 0 ); return m_layerIdInVps[layerIdInNuh]; }
    656733
    657   Bool    nuhLayerIdIncluded( Int layerIdinNuh )                           { return ( m_layerIdInVps[ layerIdinNuh ] > 0 );  }
    658 
    659   Void    setDimensionId( Int layerIdInVps, Int scalIdx, Int val )         { m_dimensionId[layerIdInVps][scalIdx] = val;  }
    660   Int     getDimensionId( Int layerIdInVps, Int scalIdx )                  { return m_dimensionId[layerIdInVps][scalIdx]; }
    661 
    662734  Int     getScalabilityId ( Int layerIdInVps, ScalabilityType scalType );
    663 
    664735  Int     getViewId  ( Int layerIdInVps )                                  { return getScalabilityId( layerIdInVps, VIEW_ID  ); }
     736
     737  Void    setRefLayers();
     738
     739  Int     getNumDirectRefLayers( Int layerIdInVps )          { return m_numDirectRefLayers[ layerIdInVps ];  };                               
     740  Int     getRefLayerId        ( Int layerIdInVps, Int idx );;
     741 
     742  Int     getNumSamplePredRefLayers( Int layerIdInVps )          { return m_numSamplePredRefLayers[layerIdInVps]; }
     743  Bool    getSamplePredEnabledFlag ( Int layerIdInVps, Int idx ) { return m_samplePredEnabledFlag [layerIdInVps][idx]; }
     744  Int     getSamplePredRefLayerId  ( Int layerIdInVps, Int idx ) { return m_samplePredRefLayerId  [layerIdInVps][idx]; }
     745
     746  Int     getNumMotionPredRefLayers( Int layerIdInVps )          { return m_numMotionPredRefLayers[layerIdInVps]; }
     747  Bool    getMotionPredEnabledFlag ( Int layerIdInVps, Int idx ) { return m_motionPredEnabledFlag [layerIdInVps][idx]; }
     748  Int     getMotionPredRefLayerId  ( Int layerIdInVps, Int idx ) { return m_motionPredRefLayerId  [layerIdInVps][idx]; }
     749
     750  Bool    checkVPSExtensionSyntax();
     751  Int     scalTypeToScalIdx   ( ScalabilityType scalType );
     752
     753  Int     getProfileLevelTierIdxLen() { return xCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); };       
     754  Int     getNumLayersInIdList              ( Int lsIdx );;
     755
     756  // inference
     757  Int     inferDimensionId     ( Int i, Int j );
     758  Int     inferLastDimsionIdLenMinus1();
     759
    665760#if H_3D 
    666761  Void    initViewIndex();
    667762  Int     getViewIndex    ( Int layerIdInVps )                             { return m_viewIndex[ layerIdInVps ]; }   
    668763  Int     getDepthId      ( Int layerIdInVps )                             { return getScalabilityId( layerIdInVps, DEPTH_ID ); }
    669   Int     getLayerIdInNuh( Int viewIndex, Bool depthFlag ); 
     764  Int     getLayerIdInNuh( Int viewIndex, Bool depthFlag );   
     765
    670766#if H_3D_ARP
    671767  UInt    getUseAdvRP  ( Int layerIdInVps )                                { return m_uiUseAdvResPred[layerIdInVps];    }
     
    703799  Void    setIvMvScalingFlag   ( Bool b )                 { m_ivMvScalingFlag = b;    } 
    704800#endif
    705 #endif
    706 
    707   Void    setVpsProfilePresentFlag( Int layerSet, Bool val )               { m_vpsProfilePresentFlag[layerSet] = val;  }
    708   Bool    getVpsProfilePresentFlag( Int layerSet )                         { return m_vpsProfilePresentFlag[layerSet]; }
    709 
    710   Void    setProfileLayerSetRefMinus1( Int layerSet, Int val )             { m_profileLayerSetRefMinus1[layerSet] = val;  }
    711   Bool    getProfileLayerSetRefMinus1( Int layerSet )                      { return m_profileLayerSetRefMinus1[layerSet]; }
    712 
    713   Void    setNumOutputLayerSets( Int val )                                 { m_numOutputLayerSets = val;  }
    714   Int     getNumOutputLayerSets()                                          { return m_numOutputLayerSets; }
    715 
    716   Void    setOutputLayerSetIdx( Int layerSet, Int val )                    { m_outputLayerSetIdx[layerSet] = val;  }
    717   Int     getOutputLayerSetIdx( Int layerSet )                             { return m_outputLayerSetIdx[layerSet]; }
    718 
    719   Void    setOutputLayerFlag( Int layerSet, Int layer, Bool val )          { m_outputLayerFlag[layerSet][layer] = val;  }
    720   Bool    getOutputLayerFlag( Int layerSet, Int layer )                    { return m_outputLayerFlag[layerSet][layer]; }
    721 
    722   Void    setDirectDependencyFlag( Int layerHigh, Int layerLow, Bool val ) { m_directDependencyFlag[layerHigh][layerLow] = val;  }
    723   Bool    getDirectDependencyFlag( Int layerHigh, Int layerLow )           { return m_directDependencyFlag[layerHigh][layerLow]; }
    724 
    725   Void    calcIvRefLayers();
    726 
    727   Int     getNumDirectRefLayers( Int layerIdInVps )          { return m_numDirectRefLayers[ layerIdInVps ];  };                               
    728   Int     getRefLayerId        ( Int layerIdInVps, Int idx );;
    729  
    730   Bool    checkVPSExtensionSyntax();
    731   Int     scalTypeToScalIdx   ( ScalabilityType scalType );
     801
     802#endif 
    732803#endif
    733804};
     
    813884  Int  m_numTicksPocDiffOneMinus1;
    814885#endif
    815 
     886#if H_MV
     887  Bool m_tileBoundariesAlignedFlag;
     888#endif
    816889public:
    817890  TComVUI()
     
    849922    ,m_numTicksPocDiffOneMinus1(0)
    850923#endif
     924#if H_MV
     925    ,m_tileBoundariesAlignedFlag(true)
     926#endif
    851927  {}
    852928
     
    9501026  Int  getNumTicksPocDiffOneMinus1() {return m_numTicksPocDiffOneMinus1;}
    9511027  Void setNumTicksPocDiffOneMinus1(Int x) { m_numTicksPocDiffOneMinus1 = x;}
     1028#endif
     1029#if H_MV
     1030  Bool getTileBoundariesAlignedFlag(  ) { return m_tileBoundariesAlignedFlag; }
     1031  Void setTileBoundariesAlignedFlag( Bool flag ) { m_tileBoundariesAlignedFlag = flag; }
    9521032#endif
    9531033};
     
    10351115#if H_MV
    10361116  Bool        m_interViewMvVertConstraintFlag;
     1117  Int         m_numIlpRestrictedRefLayers        ;
     1118  Int         m_minSpatialSegmentOffsetPlus1[MAX_NUM_LAYERS];
     1119  Bool        m_ctuBasedOffsetEnabledFlag   [MAX_NUM_LAYERS];
     1120  Int         m_minHorizontalCtuOffsetPlus1 [MAX_NUM_LAYERS];
    10371121#endif
    10381122#if H_3D
     
    10411125  Int         m_aaiCodedScale [2][MAX_NUM_LAYERS];
    10421126  Int         m_aaiCodedOffset[2][MAX_NUM_LAYERS];
     1127#endif
     1128#if H_MV
     1129  Int         m_layerId;
    10431130#endif
    10441131public:
     
    11751262  Void setInterViewMvVertConstraintFlag(Bool val) { m_interViewMvVertConstraintFlag = val; }
    11761263  Bool getInterViewMvVertConstraintFlag()         { return m_interViewMvVertConstraintFlag;}
     1264
     1265  ////  sps_extension_vui_parameters( )
     1266  Void setNumIlpRestrictedRefLayers   ( Int val )        { m_numIlpRestrictedRefLayers         = val;}
     1267  Int  getNumIlpRestrictedRefLayers   ( )                { return m_numIlpRestrictedRefLayers        ;}
     1268 
     1269  Void setMinSpatialSegmentOffsetPlus1( Int i, Int val ) { m_minSpatialSegmentOffsetPlus1[ i ] = val;}
     1270  Int  getMinSpatialSegmentOffsetPlus1( Int i )          { return m_minSpatialSegmentOffsetPlus1[ i ];}
     1271 
     1272  Void setCtuBasedOffsetEnabledFlag   ( Int i, Bool flag ) { m_ctuBasedOffsetEnabledFlag   [ i ] = flag;}
     1273  Bool getCtuBasedOffsetEnabledFlag   ( Int i )            { return m_ctuBasedOffsetEnabledFlag   [ i ];}
     1274
     1275  Void setMinHorizontalCtuOffsetPlus1 ( Int i, Int val )   { m_minHorizontalCtuOffsetPlus1 [ i ] = val;}
     1276  Int  getMinHorizontalCtuOffsetPlus1 ( Int i )            { return m_minHorizontalCtuOffsetPlus1 [ i ];}
    11771277#endif
    11781278#if H_3D
     
    11851285  Int* getInvCodedOffset     ()  { return m_aaiCodedOffset[1]; }
    11861286#endif
     1287#if H_MV
     1288  Int  getLayerId            ()           { return m_layerId; }
     1289  Void setLayerId            ( Int val )  { m_layerId = val; }
     1290#endif
     1291
    11871292};
    11881293
     
    12131318#if H_MV
    12141319  // Why not an listIdx for all members, would avoid code duplication??
    1215   Void       setRefPicSetIdxL(UInt li, UInt idx, UInt refPicSetIdx) {( li==0 ? m_RefPicSetIdxL0[idx] : m_RefPicSetIdxL1[idx] ) = refPicSetIdx; };
    1216   Void       setRefPicListModificationFlagL(UInt li, Bool flag) { ( li==0  ? m_bRefPicListModificationFlagL0 : m_bRefPicListModificationFlagL1 ) = flag;  }; 
     1320  Void       setRefPicSetIdxL(UInt li, UInt idx, UInt refPicSetIdx) {( li==0 ? m_RefPicSetIdxL0[idx] : m_RefPicSetIdxL1[idx] ) = refPicSetIdx; }
     1321  UInt       getRefPicSetIdxL(UInt li, UInt idx ) { return ( li == 0 ) ? m_RefPicSetIdxL0[idx] : m_RefPicSetIdxL1[idx] ; }
     1322  Void       setRefPicListModificationFlagL(UInt li, Bool flag) { ( li==0  ? m_bRefPicListModificationFlagL0 : m_bRefPicListModificationFlagL1 ) = flag;  }
     1323  Bool       getRefPicListModificationFlagL(UInt li ) { return ( li== 0) ? m_bRefPicListModificationFlagL0 : m_bRefPicListModificationFlagL1; }
    12171324#endif
    12181325};
     
    15391646  Bool       m_enableTMVPFlag;
    15401647#if H_MV
     1648  std::vector<TComPic*>* m_refPicSetInterLayer;
    15411649  Int        m_layerId;
    15421650  Int        m_viewId;
     
    15651673#endif
    15661674#endif
     1675#if H_MV
     1676// Additional slice header syntax elements
     1677  Bool       m_discardableFlag;
     1678  Bool       m_interLayerPredEnabledFlag;
     1679  Int        m_numInterLayerRefPicsMinus1;
     1680  Int        m_interLayerPredLayerIdc       [MAX_NUM_LAYERS];
     1681  Bool       m_interLayerSamplePredOnlyFlag;
     1682  Bool       m_altCollocatedIndicationFlag;
     1683  Int        m_collocatedRefLayerIdx;
     1684// Additional slice header semantics variables
     1685  Int        m_numActiveMotionPredRefLayers;
     1686  Int        m_activeMotionPredRefLayerId   [ MAX_NUM_LAYER_IDS ];
     1687
     1688#endif
     1689
    15671690public:
    15681691  TComSlice();
     
    17571880  Void createAndApplyIvReferencePictureSet( TComPicLists* ivPicLists, std::vector<TComPic*>& refPicSetInterLayer );
    17581881  static Void markIvRefPicsAsShortTerm    ( std::vector<TComPic*> refPicSetInterLayer );
     1882  static Void markCurrPic                 ( TComPic* currPic );;
    17591883  static Void markIvRefPicsAsUnused       ( TComPicLists* ivPicLists, std::vector<Int> targetDecLayerIdSet, TComVPS* vps, Int curLayerId, Int curPoc  );
    17601884
     
    18731997
    18741998#endif
     1999#if H_MV
     2000// Additional slice header syntax elements
     2001Void setDiscardableFlag( Bool flag ) { m_discardableFlag = flag; }
     2002Bool getDiscardableFlag(  ) { return m_discardableFlag; }
     2003
     2004Void setInterLayerPredEnabledFlag( Bool flag ) { m_interLayerPredEnabledFlag = flag; }
     2005Bool getInterLayerPredEnabledFlag(  ) { return m_interLayerPredEnabledFlag; }
     2006
     2007Void setNumInterLayerRefPicsMinus1( Int  val ) { m_numInterLayerRefPicsMinus1 = val; }
     2008Int  getNumInterLayerRefPicsMinus1(  ) { return m_numInterLayerRefPicsMinus1; }
     2009
     2010Void setInterLayerPredLayerIdc( Int i, Int  val ) { m_interLayerPredLayerIdc[i] = val; }
     2011Int  getInterLayerPredLayerIdc( Int i ) { return m_interLayerPredLayerIdc[i]; }
     2012
     2013Void setInterLayerSamplePredOnlyFlag( Bool flag ) { m_interLayerSamplePredOnlyFlag = flag; }
     2014Bool getInterLayerSamplePredOnlyFlag(  ) { return m_interLayerSamplePredOnlyFlag; }
     2015
     2016Void setAltCollocatedIndicationFlag( Bool flag ) { m_altCollocatedIndicationFlag = flag; }
     2017Bool getAltCollocatedIndicationFlag(  ) { return m_altCollocatedIndicationFlag; }
     2018
     2019Void setCollocatedRefLayerIdx( Int  val ) { m_collocatedRefLayerIdx = val; }
     2020Int  getCollocatedRefLayerIdx(  ) { return m_collocatedRefLayerIdx; }
     2021
     2022// Additional variables derived in slice header semantics
     2023Int  getNumInterLayerRefPicsMinus1Len( ) { return xCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerIdInVps() )); }
     2024Int  getInterLayerPredLayerIdcLen    ( ) { return xCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerIdInVps() )); }
     2025
     2026Int  getNumActiveRefLayerPics( );
     2027Int  getRefPicLayerId               ( Int i );
     2028
     2029Void setActiveMotionPredRefLayers   ( );
     2030
     2031Int  getNumActiveMotionPredRefLayers(  )      { return m_numActiveMotionPredRefLayers; }
     2032Int  getActiveMotionPredRefLayerId  ( Int i ) { return m_activeMotionPredRefLayerId[i]; }
     2033
     2034Bool getInterRefEnabledInRPLFlag( );
     2035
     2036Void     setRefPicSetInterLayer       ( std::vector<TComPic*>* m_refPicSetInterLayer );
     2037TComPic* getPicFromRefPicSetInterLayer( Int layerId );
     2038
     2039#endif
    18752040
    18762041protected:
     
    18792044TComPic*  xGetLongTermRefPic(TComList<TComPic*>& rcListPic, Int poc, Bool pocHasMsb);
    18802045#if H_MV
     2046  Int       xCeilLog2( Int val );
    18812047  TComPic*  xGetInterLayerRefPic( std::vector<TComPic*>& rcListIlPic, Int layerId ); 
    18822048#endif
Note: See TracChangeset for help on using the changeset viewer.