Changeset 328 in SHVCSoftware


Ignore:
Timestamp:
7 Aug 2013, 23:17:58 (11 years ago)
Author:
seregin
Message:

ILP slice signaling implementation with macros ILP_SSH_SIG, SPL_FLG_CHK, and ILP_NUM_REF_CHK (JCTVC-N0195), patch was provided by Sachin Deshpande <sdeshpande@…>

Location:
branches/SHM-3.0-dev/source
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-3.0-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r313 r328  
    884884  }
    885885#endif
     886#if ILP_SSH_SIG
     887    vps->setIlpSshSignalingEnabledFlag(true);
     888#endif
    886889#if VPS_EXTN_PROFILE_INFO
    887890  vps->getPTLForExtnPtr()->resize(vps->getNumLayerSets());
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TComSlice.h

    r324 r328  
    456456  UInt       m_layerIdInVps[MAX_VPS_LAYER_ID_PLUS1];            // Maps layer_id_in_nuh with the layer ID in the VPS
    457457#endif
     458#if ILP_SSH_SIG
     459  Bool       m_ilpSshSignalingEnabledFlag;
     460#endif
    458461#if VPS_EXTN_PROFILE_INFO
    459462  // Profile-tier-level signalling related
     
    588591  UInt   getLayerIdInVps(Int id)                                { return m_layerIdInVps[id];       }
    589592  Void   setLayerIdInVps(Int id, UInt x)                        { m_layerIdInVps[id] = x;          }
     593#endif
     594#if ILP_SSH_SIG
     595    Bool   getIlpSshSignalingEnabledFlag()                      { return m_ilpSshSignalingEnabledFlag;}
     596    Void   setIlpSshSignalingEnabledFlag(Bool x)                { m_ilpSshSignalingEnabledFlag = x;}
    590597#endif
    591598#if VPS_EXTN_PROFILE_INFO
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TypeDef.h

    r327 r328  
    5151#define SCALED_REF_LAYER_OFFSET_FLAG     0      ///< M0309: Signal scaled reference layer offsets in SPS
    5252#define SCALED_REF_LAYER_OFFSETS         1      ///< M0309: Signal scaled reference layer offsets in SPS
     53
     54#define ILP_SSH_SIG                      1      ///< JCTVC-N0195 proposal 2
     55#define SPL_FLG_CHK                      1      ///< JCTVC-N0195 proposal 5
     56#define ILP_NUM_REF_CHK                  1      ///< JCTVC-N0195 proposal 1
    5357
    5458#define VPS_RENAME                       1      ///< Rename variables max_layer_id and num_layer_sets_minus1 in VPS
  • branches/SHM-3.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r325 r328  
    957957  }
    958958#endif
     959#if ILP_SSH_SIG
     960    READ_FLAG( uiCode, "all_ref_layers_active_flag" ); vps->setIlpSshSignalingEnabledFlag(uiCode ? true : false);
     961#endif
    959962#if VPS_EXTN_PROFILE_INFO
    960963  // Profile-tier-level signalling
     
    13821385#if JCTVC_M0458_INTERLAYER_RPS_SIG
    13831386    rpcSlice->setActiveNumILRRefIdx(0);
     1387#if ILP_SSH_SIG
     1388    if((sps->getLayerId() > 0) && rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() && (rpcSlice->getNumILRRefIdx() > 0) )
     1389#else
    13841390    if((sps->getLayerId() > 0)  &&  (rpcSlice->getNumILRRefIdx() > 0) )
     1391#endif
    13851392    {
    13861393      READ_FLAG(uiCode,"inter_layer_pred_enabled_flag");
     
    14041411            rpcSlice->setActiveNumILRRefIdx(1);
    14051412          }
     1413#if ILP_NUM_REF_CHK
     1414          if( rpcSlice->getActiveNumILRRefIdx() == rpcSlice->getNumILRRefIdx() )
     1415          {
     1416            for( Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
     1417            {
     1418              rpcSlice->setInterLayerPredLayerIdc(i,i);
     1419            }
     1420          }
     1421          else
     1422          {
     1423#endif
    14061424          for(Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
    14071425          {
     
    14091427            rpcSlice->setInterLayerPredLayerIdc(uiCode,i);
    14101428          }
     1429#if ILP_NUM_REF_CHK
     1430          }
     1431#endif
    14111432        }
    14121433        else
     
    14171438      }
    14181439    }
     1440#if ILP_SSH_SIG
     1441    else if( rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() == false )
     1442    {
     1443      rpcSlice->setInterLayerPredEnabledFlag(true);
     1444      rpcSlice->setActiveNumILRRefIdx(rpcSlice->getNumILRRefIdx());
     1445      for( Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
     1446      {
     1447        rpcSlice->setInterLayerPredLayerIdc(i,i);
     1448      }
     1449    }
     1450#endif
    14191451#if M0457_IL_SAMPLE_PRED_ONLY_FLAG
    14201452    rpcSlice->setInterLayerSamplePredOnlyFlag( false );
  • branches/SHM-3.0-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r324 r328  
    708708  }
    709709
     710#if SPL_FLG_CHK
     711  if(vps->getSplittingFlag())
     712  {
     713    UInt splDimSum=0;
     714    for(j = 0; j < vps->getNumScalabilityTypes(); j++)
     715    {
     716      splDimSum+=(vps->getDimensionIdLen(j));
     717    }
     718    assert(splDimSum<=6);
     719  }
     720#endif
     721
    710722  WRITE_FLAG( vps->getNuhLayerIdPresentFlag(),         "vps_nuh_layer_id_present_flag" );
    711723  for(i = 1; i < vps->getMaxLayers(); i++)
     
    741753    WRITE_CODE(vps->getMaxSublayerForIlpPlus1(i), 3, "max_sublayer_for_ilp_plus1[i]" );
    742754  }
     755#endif
     756#if ILP_SSH_SIG
     757    WRITE_FLAG( vps->getIlpSshSignalingEnabledFlag(), "all_ref_layers_active_flag" );
    743758#endif
    744759#if VPS_EXTN_PROFILE_INFO
     
    10521067    }
    10531068
    1054 #if JCTVC_M0458_INTERLAYER_RPS_SIG   
    1055     if((pcSlice->getSPS()->getLayerId() > 0)  &&  (pcSlice->getNumILRRefIdx() > 0) )
     1069#if JCTVC_M0458_INTERLAYER_RPS_SIG
     1070#if ILP_SSH_SIG
     1071    if((pcSlice->getSPS()->getLayerId() > 0) && pcSlice->getVPS()->getIlpSshSignalingEnabledFlag() && (pcSlice->getNumILRRefIdx() > 0) )
     1072#else
     1073    if((pcSlice->getSPS()->getLayerId() > 0)  &&  (pcSlice->getNumILRRefIdx() > 0) )
     1074#endif
    10561075    {
    10571076      WRITE_FLAG(pcSlice->getInterLayerPredEnabledFlag(),"inter_layer_pred_enabled_flag");
     
    10691088            WRITE_CODE(pcSlice->getActiveNumILRRefIdx() - 1, numBits,"num_inter_layer_ref_pics_minus1");
    10701089          }       
     1090#if ILP_NUM_REF_CHK
     1091          if( pcSlice->getNumILRRefIdx() != pcSlice->getActiveNumILRRefIdx() )
     1092          {
     1093#endif
    10711094          for(Int i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ )
    10721095          {
    10731096            WRITE_CODE(pcSlice->getInterLayerPredLayerIdc(i),numBits,"inter_layer_pred_layer_idc[i]");   
    10741097          }
     1098#if ILP_NUM_REF_CHK
     1099          }
     1100#endif
    10751101        }
    10761102      }
Note: See TracChangeset for help on using the changeset viewer.