Changeset 178 in SHVCSoftware for branches/SHM-2.0-dev


Ignore:
Timestamp:
10 May 2013, 18:04:28 (12 years ago)
Author:
seregin
Message:

set NumDirectRefLayers for a slice at decoder

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

Legend:

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

    r176 r178  
    183183#if REF_IDX_FRAMEWORK
    184184#if JCTVC_M0458_INTERLAYER_RPS_SIG
    185     m_activeNumILRRefIdx        = 0;
    186     m_interLayerPredEnabledFlag = 0;
     185  m_activeNumILRRefIdx        = 0;
     186  m_interLayerPredEnabledFlag = 0;
    187187#else
    188     m_numILRRefIdx              = 0;
     188  m_numILRRefIdx              = 0;
    189189#endif 
    190190
  • branches/SHM-2.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r175 r178  
    16071607  }
    16081608
    1609   #if JCTVC_M0458_INTERLAYER_RPS_SIG   
    1610     rpcSlice->setActiveNumILRRefIdx(0);
    1611     if((sps->getLayerId() > 0)  &&  (rpcSlice->getNumILRRefIdx() > 0) )
    1612     {     
    1613       READ_FLAG(uiCode,"inter_layer_pred_enabled_flag");
    1614       rpcSlice->setInterLayerPredEnabledFlag(uiCode);
    1615       if( rpcSlice->getInterLayerPredEnabledFlag())
    1616       {
    1617         if(rpcSlice->getNumILRRefIdx() > 1)
    1618         {
    1619           if( !rpcSlice->getVPS()->getMaxOneActiveRefLayerFlag())
    1620           {
    1621             READ_UVLC(uiCode,"num_inter_layer_ref_pics_minus1");   
    1622             rpcSlice->setActiveNumILRRefIdx(uiCode + 1);         
    1623           }
    1624           else
    1625           {
    1626             rpcSlice->setActiveNumILRRefIdx(1);         
    1627             rpcSlice->setInterLayerPredLayerIdc(0,0);         
    1628           }
    1629           for(Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
    1630           {
    1631             READ_UVLC(uiCode,"inter_layer_pred_layer_idc[i]");         
    1632             rpcSlice->setInterLayerPredLayerIdc(uiCode,i);         
    1633           }
     1609#if REF_IDX_FRAMEWORK
     1610#if JCTVC_M0458_INTERLAYER_RPS_SIG   
     1611  rpcSlice->setActiveNumILRRefIdx(0);
     1612  if((sps->getLayerId() > 0)  &&  (rpcSlice->getNumILRRefIdx() > 0) )
     1613  {     
     1614    READ_FLAG(uiCode,"inter_layer_pred_enabled_flag");
     1615    rpcSlice->setInterLayerPredEnabledFlag(uiCode);
     1616    if( rpcSlice->getInterLayerPredEnabledFlag())
     1617    {
     1618      if(rpcSlice->getNumILRRefIdx() > 1)
     1619      {
     1620        if( !rpcSlice->getVPS()->getMaxOneActiveRefLayerFlag())
     1621        {
     1622          READ_UVLC(uiCode,"num_inter_layer_ref_pics_minus1");   
     1623          rpcSlice->setActiveNumILRRefIdx(uiCode + 1);         
    16341624        }
    16351625        else
    16361626        {
    16371627          rpcSlice->setActiveNumILRRefIdx(1);         
    1638           rpcSlice->setInterLayerPredLayerIdc(0,0);     
    1639         }
    1640       }
    1641     }     
     1628          rpcSlice->setInterLayerPredLayerIdc(0,0);         
     1629        }
     1630        for(Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
     1631        {
     1632          READ_UVLC(uiCode,"inter_layer_pred_layer_idc[i]");         
     1633          rpcSlice->setInterLayerPredLayerIdc(uiCode,i);         
     1634        }
     1635      }
     1636      else
     1637      {
     1638        rpcSlice->setActiveNumILRRefIdx(1);         
     1639        rpcSlice->setInterLayerPredLayerIdc(0,0);     
     1640      }
     1641    }
     1642  }
     1643#else
     1644  if( rpcSlice->getLayerId() > 0 )
     1645  {
     1646    rpcSlice->setNumILRRefIdx( rpcSlice->getVPS()->getNumDirectRefLayers( rpcSlice->getLayerId() ) );
     1647  }
     1648#endif
    16421649#endif
    16431650
Note: See TracChangeset for help on using the changeset viewer.