Ignore:
Timestamp:
21 Jun 2013, 18:58:29 (11 years ago)
Author:
tech
Message:

Incorporated VPS syntax elements. Intermediate version.

File:
1 edited

Legend:

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

    r446 r488  
    487487  UInt        m_numHrdParameters;
    488488#if H_MV
    489   UInt        m_maxNuhLayerId;
     489  UInt        m_maxLayerId;
    490490#else
    491491  UInt        m_maxNuhReservedZeroLayerId;
     
    512512  TimingInfo  m_timingInfo;
    513513#endif
     514
     515
     516
     517Int  m_maxTidIlRefPicPlus1            [ MAX_NUM_LAYERS ];
     518Int  m_vpsNumberLayerSetsMinus1;       
     519Int  m_vpsNumProfileTierLevelMinus1;   
     520Int  m_profileRefMinus1               [ MAX_VPS_PROFILE_TIER_LEVEL ];
     521Bool m_vpsMoreOutputLayerSetsThanDefaultFlag;
     522Int  m_numAddOutputLayerSetsMinus1;   
     523Bool m_defaultOneTargetOutputLayerFlag;
     524Int  m_outputLayerSetIdxMinus1        [ MAX_VPS_OUTPUTLAYER_SETS ]; 
     525Int  m_profileLevelTierIdx            [ MAX_VPS_OUTPUTLAYER_SETS ];
     526Bool m_maxOneActiveRefLayerFlag;       
     527Int  m_directDepTypeLenMinus2;         
     528Int  m_directDependencyType           [ MAX_NUM_LAYERS ] [ MAX_NUM_LAYERS ];
    514529
    515530#if H_MV
     
    529544  Bool        m_vpsProfilePresentFlag    [MAX_VPS_OP_SETS_PLUS1];
    530545  Int         m_profileLayerSetRefMinus1 [MAX_VPS_OP_SETS_PLUS1];
    531   Int         m_numOutputLayerSets;
    532   Int         m_outputLayerSetIdx        [MAX_VPS_OP_SETS_PLUS1];
    533   Bool        m_outputLayerFlag          [MAX_VPS_OP_SETS_PLUS1][MAX_VPS_NUH_LAYER_ID_PLUS1];
     546  Int         m_numOutputLayerSets; 
     547  Bool        m_outputLayerFlag          [MAX_VPS_OUTPUTLAYER_SETS][MAX_VPS_NUH_LAYER_ID_PLUS1];
    534548  Bool        m_directDependencyFlag     [MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS];
    535549
    536550  Int         m_numDirectRefLayers       [ MAX_NUM_LAYERS ];
    537551  Int         m_refLayerId               [ MAX_NUM_LAYERS ][MAX_NUM_LAYERS]; 
     552 
     553  Int xCeilLog2( Int val )
     554  {
     555    assert( val > 0 );
     556    Int ceilLog2 = 0;
     557    while( val > ( 1 << ceilLog2 ) ) ceilLog2++;
     558    return ceilLog2;
     559  }
    538560
    539561#endif
     
    580602
    581603#if H_MV
    582   UInt    getMaxNuhLayerId()                                    { return m_maxNuhLayerId; }
    583   Void    setMaxNuhLayerId(UInt v)                              { m_maxNuhLayerId = v;    }
     604  UInt    getVpsMaxLayerId()                                    { return m_maxLayerId; }
     605  Void    setVpsMaxLayerId(UInt v)                              { m_maxLayerId = v;    }
    584606#else
    585607  UInt    getMaxNuhReservedZeroLayerId()                        { return m_maxNuhReservedZeroLayerId; }
     
    654676  Int     getNumOutputLayerSets()                                          { return m_numOutputLayerSets; }
    655677
    656   Void    setOutputLayerSetIdx( Int layerSet, Int val )                    { m_outputLayerSetIdx[layerSet] = val;  }
    657   Int     getOutputLayerSetIdx( Int layerSet )                             { return m_outputLayerSetIdx[layerSet]; }
    658 
    659   Void    setOutputLayerFlag( Int layerSet, Int layer, Bool val )          { m_outputLayerFlag[layerSet][layer] = val;  }
    660   Bool    getOutputLayerFlag( Int layerSet, Int layer )                    { return m_outputLayerFlag[layerSet][layer]; }
    661 
    662   Void    setDirectDependencyFlag( Int layerHigh, Int layerLow, Bool val ) { m_directDependencyFlag[layerHigh][layerLow] = val;  }
    663   Bool    getDirectDependencyFlag( Int layerHigh, Int layerLow )           { return m_directDependencyFlag[layerHigh][layerLow]; }
     678  Void    setDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Bool val ) { m_directDependencyFlag[depLayeridInVps][refLayeridInVps] = val;  }
     679  Bool    getDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps )           { return m_directDependencyFlag[depLayeridInVps][refLayeridInVps]; }
    664680
    665681  Void    calcIvRefLayers();
     
    670686  Bool    checkVPSExtensionSyntax();
    671687  Int     scalTypeToScalIdx   ( ScalabilityType scalType );
     688 
     689 
     690  Int  getMaxTidIlRefPicPlus1                  ( Int layerIdInVps )                          { return m_maxTidIlRefPicPlus1          [ layerIdInVps        ]; }
     691  Void setMaxTidIlRefPicPlus1                  ( Int layerIdInVps, Int val )                 { m_maxTidIlRefPicPlus1          [ layerIdInVps        ] = val;  }
     692 
     693  Int  getVpsNumberLayerSetsMinus1             ()                                            { return m_vpsNumberLayerSetsMinus1                            ; }
     694  Void setVpsNumberLayerSetsMinus1             ( Int val )                                   { m_vpsNumberLayerSetsMinus1                             = val;  }
     695 
     696  Int  getVpsNumProfileTierLevelMinus1         ()                                            { return m_vpsNumProfileTierLevelMinus1                        ; }
     697  Void setVpsNumProfileTierLevelMinus1         ( Int val )                                   { m_vpsNumProfileTierLevelMinus1                         = val;  }
     698
     699  Void setProfileRefMinus1                     ( Int profileTierLevelIdx, Int val )          { m_profileRefMinus1             [ profileTierLevelIdx ] = val;  }
     700  Int  getProfileRefMinus1                     ( Int profileTierLevelIdx )                   { return m_profileRefMinus1             [ profileTierLevelIdx ]; }
     701 
     702  Bool getVpsMoreOutputLayerSetsThanDefaultFlag()                                            { return m_vpsMoreOutputLayerSetsThanDefaultFlag               ; }
     703  Void setVpsMoreOutputLayerSetsThanDefaultFlag( Bool flag )                                 { m_vpsMoreOutputLayerSetsThanDefaultFlag                = flag; }
     704
     705  Int  getNumAddOutputLayerSetsMinus1          ()                                            { return m_numAddOutputLayerSetsMinus1                         ; }
     706  Void setNumAddOutputLayerSetsMinus1          ( Int val )                                   { m_numAddOutputLayerSetsMinus1                          = val;  }
     707 
     708  Bool getDefaultOneTargetOutputLayerFlag      ()                                            { return m_defaultOneTargetOutputLayerFlag                     ; }
     709  Void setDefaultOneTargetOutputLayerFlag      ( Bool flag )                                 { m_defaultOneTargetOutputLayerFlag                      = flag; }
     710 
     711  Int  getOutputLayerSetIdxMinus1              ( Int outLayerSetIdx )                        { return m_outputLayerSetIdxMinus1      [ outLayerSetIdx ]     ; }
     712  Void setOutputLayerSetIdxMinus1              ( Int outLayerSetIdx, Int val )               { m_outputLayerSetIdxMinus1      [ outLayerSetIdx ]      = val;  }
     713 
     714  Int  getProfileLevelTierIdx                  ( Int outLayerSetIdx )                        { return m_profileLevelTierIdx          [ outLayerSetIdx ]     ; }
     715  Void setProfileLevelTierIdx                  ( Int outLayerSetIdx, Int val )               { m_profileLevelTierIdx          [ outLayerSetIdx ]      = val;  }
     716 
     717  Bool getMaxOneActiveRefLayerFlag()                                                         { return m_maxOneActiveRefLayerFlag                            ; }
     718  Void setMaxOneActiveRefLayerFlag             ( Bool flag)                                  { m_maxOneActiveRefLayerFlag                             = flag; }
     719 
     720  Int  getDirectDepTypeLenMinus2()                                                           { return m_directDepTypeLenMinus2                              ; }
     721  Void setDirectDepTypeLenMinus2               ( Int val)                                    { m_directDepTypeLenMinus2                               = val;  }
     722 
     723  Int  getDirectDependencyType                 ( Int depLayeridInVps, Int refLayeridInVps)   { return m_directDependencyType         [ depLayeridInVps ][ refLayeridInVps ]; }
     724  Void setDirectDependencyType                 ( Int depLayeridInVps, Int refLayeridInVps, Int val) { m_directDependencyType         [ depLayeridInVps ][ refLayeridInVps ] = val ; }
     725
     726  Int  getProfileLevelTierIdxLen()
     727  {
     728    return xCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 );     
     729  };
     730
     731  Int  getNumLayersInIdList              ( Int lsIdx )
     732  {
     733    assert( lsIdx > 0 );
     734    assert( lsIdx <= getMaxOpSets() );
     735    Int numLayersInIdList = 0;
     736    for (Int layerId = 0; layerId < getVpsMaxLayerId(); layerId++ )
     737    {
     738      numLayersInIdList += ( getLayerIdIncludedFlag( lsIdx, layerId ) );
     739    }
     740    return numLayersInIdList;
     741  };
     742 
    672743#endif
    673744};
Note: See TracChangeset for help on using the changeset viewer.