Changeset 1085 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
26 Mar 2015, 04:33:14 (11 years ago)
Author:
seregin
Message:

fix for getMaxTidIlRefPicsPlus1 and remove O0225_MAX_TID_FOR_REF_LAYERS

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

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1079 r1085  
    16101610            {
    16111611#if Q0060_MAX_TID_REF_EQUAL_TO_ZERO
    1612               if((pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getVPS()->getLayerIdxInVps(i),pcSlice->getLayerId()) >  pcSlice->getTLayer() || pcSlice->getTLayer()==0) &&
     1612              if((pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getVPS()->getLayerIdxInVps(i), pcSlice->getLayerIdx()) >  pcSlice->getTLayer() || pcSlice->getTLayer()==0) &&
    16131613                (pcSlice->getVPS()->getMaxTSLayersMinus1(pcSlice->getVPS()->getLayerIdxInVps(i)) >=  pcSlice->getTLayer()) )
    16141614#else
    1615               if(pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getVPS()->getLayerIdxInVps(i),pcSlice->getLayerId()) >  pcSlice->getTLayer() &&
     1615              if(pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getVPS()->getLayerIdxInVps(i), pcSlice->getLayerIdx()) >  pcSlice->getTLayer() &&
    16161616                (pcSlice->getVPS()->getMaxTSLayersMinus1(pcSlice->getVPS()->getLayerIdxInVps(i)) >=  pcSlice->getTLayer()) )
    16171617#endif
     
    16381638            {
    16391639              READ_CODE( numBits,uiCode,"inter_layer_pred_layer_idc[i]" );
    1640               pcSlice->setInterLayerPredLayerIdc(uiCode,i);
     1640              pcSlice->setInterLayerPredLayerIdc(uiCode, i);
    16411641            }
    16421642          }
     
    16451645        {
    16461646#if O0225_TID_BASED_IL_RPS_DERIV && TSLAYERS_IL_RPS
     1647          Int refLayerId = pcSlice->getVPS()->getRefLayerId(pcSlice->getLayerId(), 0);
     1648          Int refLayerIdx = pcSlice->getVPS()->getLayerIdxInVps(refLayerId);
    16471649#if Q0060_MAX_TID_REF_EQUAL_TO_ZERO
    1648           if((pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(0,pcSlice->getLayerId()) >  pcSlice->getTLayer() || pcSlice->getTLayer()==0) &&
    1649             (pcSlice->getVPS()->getMaxTSLayersMinus1(0) >=  pcSlice->getTLayer()) )
    1650 #else
    1651           if( (pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(0,pcSlice->getLayerId()) >  pcSlice->getTLayer()) &&
    1652             (pcSlice->getVPS()->getMaxTSLayersMinus1(0) >=  pcSlice->getTLayer()) )
     1650          if((pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(refLayerIdx, pcSlice->getLayerIdx()) >  pcSlice->getTLayer() || pcSlice->getTLayer()==0) &&
     1651            (pcSlice->getVPS()->getMaxTSLayersMinus1(refLayerIdx) >=  pcSlice->getTLayer()) )
     1652#else
     1653          if( (pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(refLayerIdx,pcSlice->getLayerIdx()) >  pcSlice->getTLayer()) &&
     1654            (pcSlice->getVPS()->getMaxTSLayersMinus1(refLayerIdx) >=  pcSlice->getTLayer()) )
    16531655#endif
    16541656          {
    16551657#endif
    16561658            pcSlice->setActiveNumILRRefIdx(1);
    1657             pcSlice->setInterLayerPredLayerIdc(0,0);
     1659            pcSlice->setInterLayerPredLayerIdc(0, 0);
    16581660#if O0225_TID_BASED_IL_RPS_DERIV && TSLAYERS_IL_RPS
    16591661          }
     
    16731675      {
    16741676#if Q0060_MAX_TID_REF_EQUAL_TO_ZERO
    1675         if((pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getVPS()->getLayerIdxInVps(i),pcSlice->getLayerId()) >  pcSlice->getTLayer() || pcSlice->getTLayer()==0) &&
     1677        if((pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getVPS()->getLayerIdxInVps(i), pcSlice->getLayerIdx()) >  pcSlice->getTLayer() || pcSlice->getTLayer()==0) &&
    16761678          (pcSlice->getVPS()->getMaxTSLayersMinus1(pcSlice->getVPS()->getLayerIdxInVps(i)) >=  pcSlice->getTLayer()) )
    16771679#else
    1678         if(pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getVPS()->getLayerIdxInVps(i),pcSlice->getLayerId()) >  pcSlice->getTLayer() &&
     1680        if(pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getVPS()->getLayerIdxInVps(i), pcSlice->getLayerIdx()) >  pcSlice->getTLayer() &&
    16791681          (pcSlice->getVPS()->getMaxTSLayersMinus1(pcSlice->getVPS()->getLayerIdxInVps(i)) >=  pcSlice->getTLayer()) )
    16801682#endif
     
    16861688      for( i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ )
    16871689      {
    1688         pcSlice->setInterLayerPredLayerIdc(refLayerPicIdc[i],i);
    1689       }     
     1690        pcSlice->setInterLayerPredLayerIdc(refLayerPicIdc[i], i);
     1691      }
    16901692#else
    16911693      pcSlice->setActiveNumILRRefIdx(pcSlice->getNumILRRefIdx());
     
    29993001    for(i = 0; i < vps->getMaxLayers() - 1; i++)
    30003002    {
    3001 #if O0225_MAX_TID_FOR_REF_LAYERS
    30023003      for( j = i+1; j < vps->getMaxLayers(); j++)
    30033004      {
     
    30073008        }
    30083009      }
    3009 #else
    3010       READ_CODE( 3, uiCode, "max_tid_il_ref_pics_plus1[i]" ); vps->setMaxTidIlRefPicsPlus1(i, uiCode);
    3011       assert( uiCode <= vps->getMaxTLayers());
    3012 #endif
    30133010    }
    30143011  }
     
    30173014    for(i = 0; i < vps->getMaxLayers() - 1; i++)
    30183015    {
    3019 #if O0225_MAX_TID_FOR_REF_LAYERS
    30203016      for( j = i+1; j < vps->getMaxLayers(); j++)
    30213017      {
    30223018        vps->setMaxTidIlRefPicsPlus1(i, j, 7);
    30233019      }
    3024 #else
    3025       vps->setMaxTidIlRefPicsPlus1(i, 7);
    3026 #endif
    30273020    }
    30283021  }
     
    36913684  for( i = 0; i < vps->getMaxLayers() - 1; i++ )
    36923685  {
    3693 #if O0225_MAX_TID_FOR_REF_LAYERS
    36943686    for( j = i + 1; j < vps->getMaxLayers(); j++ )
    36953687    {
    36963688      vps->setMaxTidIlRefPicsPlus1(i, j, 7);
    36973689    }
    3698 #else
    3699     vps->setMaxTidIlRefPicsPlus1(i, 7);
    3700 #endif
    37013690  }
    37023691
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r1084 r1085  
    28482848
    28492849  Int remainingInterLayerReferencesFlag = 0;
    2850 #if O0225_MAX_TID_FOR_REF_LAYERS
    28512850  for ( Int j = latestDecIdx + 1; j < numTargetDecLayers; j++ )
    28522851  {
    28532852    Int jLidx = pcSlice->getVPS()->getLayerIdxInVps(targetDecLayerIdList[j]);
    2854     if ( currTid <= pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(latestDecLayerId,jLidx) - 1 )
    2855     {
    2856 #else
    2857   if ( currTid <= pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(latestDecLayerId) - 1 )
    2858   {
    2859     for ( Int j = latestDecIdx + 1; j < numTargetDecLayers; j++ )
    2860     {
    2861 #endif
     2853    if ( currTid <= pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getVPS()->getLayerIdxInVps(latestDecLayerId),jLidx) - 1 )
     2854    {
    28622855      for ( Int k = 0; k < m_ppcTDecTop[targetDecLayerIdList[j]]->getNumDirectRefLayers(); k++ )
    28632856      {
Note: See TracChangeset for help on using the changeset viewer.