Changeset 170 in SHVCSoftware for branches/SHM-2.0-dev/source/Lib/TLibCommon


Ignore:
Timestamp:
9 May 2013, 17:40:26 (13 years ago)
Author:
qualcomm
Message:

JCTVC-M0458:signalling and derivation of inter-layer RPS. Author: krapaka@…

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

Legend:

Unmodified
Added
Removed
  • branches/SHM-2.0-dev/source/Lib/TLibCommon/TComSlice.cpp

    r165 r170  
    126126  m_aiNumILRRefIdx = 0;
    127127#endif
     128#if JCTVC_M0458
     129  m_aiActiveNumILRRefIdx      = 0;
     130  m_InterLayerPredEnabledFlag = 0;
     131
     132  for ( Int idx = 0; idx < MAX_VPS_LAYER_ID_PLUS1; idx++ )
     133    m_interLayerPredLayerIdc[idx] = 0;
     134#endif
     135
    128136  initEqualRef();
    129137 
     
    178186  {
    179187    m_aiNumILRRefIdx      = 1;  // to be set to NumDirectRefLayers[LayerIdInVps[nuh_layer_id]]
     188#if JCTVC_M0458
     189    m_aiActiveNumILRRefIdx      = 1;         
     190    m_InterLayerPredEnabledFlag = 1;   
     191#endif
    180192  }
    181193  else
    182194  {
    183195    m_aiNumILRRefIdx = 0;
     196#if JCTVC_M0458
     197    m_aiActiveNumILRRefIdx      = 0;
     198    m_InterLayerPredEnabledFlag = 0;
     199#endif
    184200  }
    185201#endif
     
    528544  TComPic*  rpsCurrList1[MAX_NUM_REF+1];
    529545#if REF_IDX_FRAMEWORK
     546#if JCTVC_M0458
     547  Int numPocTotalCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr + m_aiActiveNumILRRefIdx;
     548#else
    530549  Int numPocTotalCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr + m_aiNumILRRefIdx;
     550#endif
    531551#else
    532552  Int numPocTotalCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr;
     
    574594    if(getLayerId())
    575595    {
     596#if JCTVC_M0458
     597      for( i = 0; i < m_aiActiveNumILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++)     
     598#else
    576599      for( i = 0; i < m_aiNumILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++)
     600#endif
    577601      {
    578602        rpsCurrList0[cIdx] = ilpPic[i];
     
    598622    if(getLayerId())
    599623    {
     624#if JCTVC_M0458
     625      for( i = 0; i < m_aiActiveNumILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++)
     626#else
    600627      for( i = 0; i < m_aiNumILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++)
     628#endif
    601629      {
    602630        rpsCurrList1[cIdx] = ilpPic[i];
     
    668696    else
    669697    {
     698#if JCTVC_M0458
     699      for(Int i = m_aiActiveNumILRRefIdx; i > 0; i-- )
     700#else
    670701      for(Int i = m_aiNumILRRefIdx; i > 0; i-- )
     702#endif
    671703      {
    672704        refPicListModification->setRefPicSetIdxL0(m_aiNumRefIdx[REF_PIC_LIST_0] - i, numberOfRpsCurrTempList - i);
     
    694726    else
    695727    {
     728#if JCTVC_M0458
     729      for(Int i = m_aiActiveNumILRRefIdx; i > 0; i-- )
     730#else
    696731      for(Int i = m_aiNumILRRefIdx; i > 0; i-- )
     732#endif
    697733      {
    698734        refPicListModification->setRefPicSetIdxL1(m_aiNumRefIdx[REF_PIC_LIST_1] - i, numberOfRpsCurrTempList - i);
     
    717753  {
    718754#if REF_IDX_FRAMEWORK
     755#if JCTVC_M0458
     756    return m_aiActiveNumILRRefIdx;
     757#else
    719758    return m_aiNumILRRefIdx;
     759#endif
    720760#else
    721761    return 0;
     
    732772  if(getLayerId())
    733773  {
     774#if JCTVC_M0458
     775    numRpsCurrTempList += getActiveNumILRRefIdx();
     776#else
    734777    numRpsCurrTempList += getNumILRRefIdx();
     778#endif
    735779  }
    736780#endif
     
    15411585#if VPS_PROFILE_OUTPUT_LAYERS
    15421586  ::memset(m_profileLevelTierIdx,  0, sizeof(m_profileLevelTierIdx));
     1587#endif
     1588#if JCTVC_M0458
     1589  m_maxOneActiveRefLayerFlag = true;
    15431590#endif
    15441591}
  • branches/SHM-2.0-dev/source/Lib/TLibCommon/TComSlice.h

    r165 r170  
    557557  Int        m_profileLevelTierIdx[64];     
    558558#endif
     559#if JCTVC_M0458
     560  Bool       m_maxOneActiveRefLayerFlag;
     561#endif
    559562public:
    560563  TComVPS();
     
    705708  Void   setProfileLevelTierIdx(Int i, Int x)                 { m_profileLevelTierIdx[i] = x   ; }
    706709#endif
     710#if JCTVC_M0458
     711  Bool   getMaxOneActiveRefLayerFlag()                                          { return m_maxOneActiveRefLayerFlag;                      }
     712  Void   setMaxOneActiveRefLayerFlag(Bool x)                                    { m_maxOneActiveRefLayerFlag = x;                         }
     713#endif
    707714};
    708715
     
    14131420  Int         m_aiNumILRRefIdx;       //< for inter-layer reference picture ser
    14141421#endif
     1422#if JCTVC_M0458
     1423  UInt         m_aiActiveNumILRRefIdx;        //< Active inter-layer reference pictures
     1424  UInt         m_interLayerPredLayerIdc  [MAX_VPS_LAYER_ID_PLUS1];
     1425#endif
    14151426#if L0034_COMBINED_LIST_CLEANUP
    14161427  Int         m_list1IdxToList0Idx[MAX_NUM_REF];
     
    15051516
    15061517  Bool       m_enableTMVPFlag;
     1518#if JCTVC_M0458
     1519  Bool       m_InterLayerPredEnabledFlag;
     1520  UInt       m_NumInterLayerRefPics;
     1521#endif
    15071522public:
    15081523  TComSlice();
     
    15641579  Void      setNumILRRefIdx     ( Int i )                     { m_aiNumILRRefIdx = i; }
    15651580#endif
     1581#if JCTVC_M0458
     1582  Int       getActiveNumILRRefIdx     ( )               { return  m_aiActiveNumILRRefIdx; }
     1583  Void      setActiveNumILRRefIdx     ( Int i )         { m_aiActiveNumILRRefIdx = i; } 
     1584
     1585  Int       getInterLayerPredLayerIdc (UInt Idx )               { return  m_interLayerPredLayerIdc[Idx];       }
     1586  Void      setInterLayerPredLayerIdc (UInt val,UInt Idx)       { m_interLayerPredLayerIdc[Idx] = val;         }
     1587#endif
    15661588  Int       getNumRefIdx        ( RefPicList e )                { return  m_aiNumRefIdx[e];             }
    15671589  TComPic*  getPic              ()                              { return  m_pcPic;                      }
     
    17671789  Void      setEnableTMVPFlag     ( Bool   b )    { m_enableTMVPFlag = b; }
    17681790  Bool      getEnableTMVPFlag     ()              { return m_enableTMVPFlag;}
     1791#if JCTVC_M0458
     1792  Void      setInterLayerPredEnabledFlag     ( Bool   val )    { m_InterLayerPredEnabledFlag = val; }
     1793  Bool      getInterLayerPredEnabledFlag     ()                { return m_InterLayerPredEnabledFlag;}
     1794
     1795  Void      setNumInterLayerRefPics          ( UInt   val )    { m_NumInterLayerRefPics = val; }
     1796  UInt      getNumInterLayerRefPics          ()                { return m_NumInterLayerRefPics;} 
     1797#endif
    17691798protected:
    17701799  TComPic*  xGetRefPic  (TComList<TComPic*>& rcListPic,
  • branches/SHM-2.0-dev/source/Lib/TLibCommon/TypeDef.h

    r165 r170  
    8888#define ENCODER_FAST_MODE                1      ///< L0174: enable encoder fast mode. TestMethod 1 is enabled by setting to 1 and TestMethod 2 is enable by setting to 2. By default it is set to 1.
    8989#define REF_IDX_MFM                      1      ///< L0336: motion vector mapping of inter-layer reference picture
     90#define JCTVC_M0458                      1      ///< implementation of JCTVC-L0178 (currently only one reference layer is supported )
    9091#else
    9192#define INTRA_BL                         1      ///< inter-layer texture prediction
Note: See TracChangeset for help on using the changeset viewer.