Changeset 509 in SHVCSoftware


Ignore:
Timestamp:
4 Dec 2013, 07:44:21 (11 years ago)
Author:
qualcomm
Message:

Integration of O0225 Max TID based ILRPS derivation

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

Legend:

Unmodified
Added
Removed
  • branches/SHM-4.1-dev/source/Lib/TLibCommon/TypeDef.h

    r507 r509  
    130130#define N0120_MAX_TID_REF_CFG            1      ///< set max_tid_il_ref_pics_plus1 and max_tid_ref_present_flag in the config. file (configuration setting)
    131131#define O0225_MAX_TID_FOR_REF_LAYERS     1
     132#define O0225_TID_BASED_IL_RPS_DERIV     1
    132133#endif
    133134#if REF_IDX_MFM
  • branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r508 r509  
    19071907        else
    19081908        {
     1909#if O0225_TID_BASED_IL_RPS_DERIV
     1910          if(rpcSlice->getVPS()->getMaxTidIlRefPicsPlus1(0,rpcSlice->getLayerId()) >  rpcSlice->getTLayer())
     1911        {
     1912#endif
    19091913          rpcSlice->setActiveNumILRRefIdx(1);
    19101914          rpcSlice->setInterLayerPredLayerIdc(0,0);
     1915#if O0225_TID_BASED_IL_RPS_DERIV
     1916        }
     1917#endif
    19111918        }
    19121919      }
     
    19141921#if ILP_SSH_SIG
    19151922#if ILP_SSH_SIG_FIX
    1916     else if( rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() == true )
     1923    else if( rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() == true &&  (rpcSlice->getLayerId() > 0 ))
    19171924#else
    19181925    else if( rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() == false )
     
    19201927    {
    19211928      rpcSlice->setInterLayerPredEnabledFlag(true);
     1929
     1930#if O0225_TID_BASED_IL_RPS_DERIV     
     1931      Int   numRefLayerPics = 0;
     1932      Int   i = 0;
     1933      Int   refLayerPicIdc  [MAX_VPS_LAYER_ID_PLUS1];
     1934      for(i = 0, numRefLayerPics = 0;  i < rpcSlice->getNumILRRefIdx(); i++ )
     1935      {
     1936        if(rpcSlice->getVPS()->getMaxTidIlRefPicsPlus1(rpcSlice->getVPS()->getLayerIdInVps(i),rpcSlice->getLayerId()) >  rpcSlice->getTLayer())
     1937        {         
     1938          refLayerPicIdc[ numRefLayerPics++ ] = i;
     1939        }
     1940      }
     1941      rpcSlice->setActiveNumILRRefIdx(numRefLayerPics);
     1942      for( i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
     1943      {
     1944        rpcSlice->setInterLayerPredLayerIdc(refLayerPicIdc[i],i);
     1945      }     
     1946#else
    19221947      rpcSlice->setActiveNumILRRefIdx(rpcSlice->getNumILRRefIdx());
    19231948      for( Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
     
    19251950        rpcSlice->setInterLayerPredLayerIdc(i,i);
    19261951      }
     1952#endif
    19271953    }
    19281954#endif
  • branches/SHM-4.1-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r507 r509  
    836836        pcSlice->setInterLayerPredLayerIdc( interLayerPredLayerIdcTmp[i], i );
    837837      }
     838
     839#if !O0225_TID_BASED_IL_RPS_DERIV
    838840      pcSlice->setActiveNumILRRefIdx( activeNumILRRefIdxTmp );
     841#endif
    839842      if ( pcSlice->getActiveNumILRRefIdx() == 0 )
    840843      {
Note: See TracChangeset for help on using the changeset viewer.