Changeset 945 in SHVCSoftware for branches/SHM-upgrade/source/Lib


Ignore:
Timestamp:
31 Dec 2014, 07:37:45 (10 years ago)
Author:
seregin
Message:

temporal improvement for profile/level signalling

Location:
branches/SHM-upgrade/source/Lib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-upgrade/source/Lib/TLibCommon/TComSlice.h

    r916 r945  
    621621  Bool        m_layerIdIncludedFlag[MAX_VPS_OP_SETS_PLUS1][MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1];
    622622#endif
    623 
     623#if !MULTIPLE_PTL_SUPPORT
    624624  TComPTL     m_pcPTL;
     625#endif
    625626  TimingInfo  m_timingInfo;
    626627
    627628#if SVC_EXTENSION
     629#if MULTIPLE_PTL_SUPPORT
     630  TComPTL     m_pcPTLList[NUM_POSSIBLE_LEVEL];
     631#endif
    628632#if DERIVE_LAYER_ID_LIST_VARIABLES
    629633#if Q0078_ADD_LAYER_SETS
     
    689693  UInt       m_profileLayerSetRef[MAX_VPS_LAYER_SETS_PLUS1];    // The value with index 0 will not be used.
    690694#endif
     695#if !MULTIPLE_PTL_SUPPORT
    691696  std::vector<TComPTL>    m_pcPTLForExtn; 
     697#endif
    692698#endif
    693699#if VPS_EXTN_OP_LAYER_SETS
     
    10041010  Void    setLayerIdIncludedFlag(Bool v, UInt opsIdx, UInt id)  { m_layerIdIncludedFlag[opsIdx][id] = v;    }
    10051011
     1012#if !MULTIPLE_PTL_SUPPORT
    10061013  TComPTL* getPTL() { return &m_pcPTL; }
     1014#endif
     1015
    10071016  TimingInfo* getTimingInfo() { return &m_timingInfo; }
    10081017
    10091018#if SVC_EXTENSION
     1019#if MULTIPLE_PTL_SUPPORT
     1020  TComPTL* getPTL() { return &m_pcPTLList[0]; }
     1021  TComPTL* getPTL(UInt idx) { return &m_pcPTLList[idx]; }
     1022#endif
    10101023#if DERIVE_LAYER_ID_LIST_VARIABLES
    10111024  Int     getLayerSetLayerIdList(Int set, Int layerId)          { return m_layerSetLayerIdList[set][layerId]; }
     
    11051118#endif
    11061119
     1120#if !MULTIPLE_PTL_SUPPORT
    11071121  std::vector<TComPTL>* getPTLForExtnPtr()                      { return &m_pcPTLForExtn;          }
    11081122  TComPTL* getPTLForExtn(Int id)                                { return &m_pcPTLForExtn[id];      }
     1123#endif
    11091124#endif
    11101125#if VPS_EXTN_OP_LAYER_SETS
     
    11721187  Int    getProfileLevelTierIdx(Int const olsIdx, Int const layerIdx)     { return m_profileLevelTierIdx[olsIdx][layerIdx]; }
    11731188  Void   setProfileLevelTierIdx(Int const olsIdx, Int const layerIdx, Int const ptlIdx)     { m_profileLevelTierIdx[olsIdx][layerIdx] = ptlIdx; }
    1174   Int calculateLenOfSyntaxElement( Int const numVal );
     1189#if MULTIPLE_PTL_SUPPORT
     1190  Void   addProfileLevelTierIdx(Int const olsIdx, Int const ptlIdx)     { m_profileLevelTierIdx[olsIdx].push_back(ptlIdx); }
     1191#endif
     1192  Int    calculateLenOfSyntaxElement( Int const numVal );
    11751193#else
    11761194  Int    getProfileLevelTierIdx(Int i)                        { return m_profileLevelTierIdx[i]; }
  • branches/SHM-upgrade/source/Lib/TLibCommon/TypeDef.h

    r928 r945  
    245245#define MAX_NUM_ADD_LAYER_SETS           1023
    246246#endif
     247#define MULTIPLE_PTL_SUPPORT             1      ///< Profile, tier and level signalling
     248#define NUM_POSSIBLE_LEVEL               13
    247249
    248250#define VPS_DPB_SIZE_TABLE               1      ///< JCTVC-O0217: DPB operations: signaling DPB-related parameters
     
    927929    MAINREXT = 4,
    928930    HIGHTHROUGHPUTREXT = 5,
    929 #if SVC_EXTENSION
    930     SCALABLE = 6,
    931     SCALABLE10 = 7,
    932 #endif
    933931  };
    934932}
  • branches/SHM-upgrade/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r938 r945  
    22342234  for (Int i = 0; i < maxNumSubLayersMinus1; i++)
    22352235  {
     2236#if MULTIPLE_PTL_SUPPORT
     2237    READ_FLAG( uiCode, "sub_layer_profile_present_flag[i]" ); rpcPTL->setSubLayerProfilePresentFlag(i, uiCode);
     2238#else
    22362239    if(profilePresentFlag)
    22372240    {
    22382241      READ_FLAG( uiCode, "sub_layer_profile_present_flag[i]" ); rpcPTL->setSubLayerProfilePresentFlag(i, uiCode);
    22392242    }
     2243#endif
    22402244    READ_FLAG( uiCode, "sub_layer_level_present_flag[i]"   ); rpcPTL->setSubLayerLevelPresentFlag  (i, uiCode);
    22412245  }
     
    22522256  for(Int i = 0; i < maxNumSubLayersMinus1; i++)
    22532257  {
     2258#if MULTIPLE_PTL_SUPPORT
     2259    if( rpcPTL->getSubLayerProfilePresentFlag(i) )
     2260#else
    22542261    if( profilePresentFlag && rpcPTL->getSubLayerProfilePresentFlag(i) )
     2262#endif
    22552263    {
    22562264      parseProfileTier(rpcPTL->getSubLayerPTL(i));
     
    27442752  {
    27452753    vps->setProfilePresentFlag(1, false);
     2754#if MULTIPLE_PTL_SUPPORT
     2755    parsePTL( vps->getPTL(1), vps->getProfilePresentFlag(1), vps->getMaxTLayers() - 1 );
     2756#else
    27462757    vps->getPTLForExtnPtr()->empty();
    27472758    vps->getPTLForExtnPtr()->resize(2);
    27482759    vps->getPTLForExtn(1)->copyProfileInfo( vps->getPTL() );
    27492760    parsePTL( vps->getPTLForExtn(1), vps->getProfilePresentFlag(1), vps->getMaxTLayers() - 1 );
     2761#endif
    27502762  }
    27512763#endif
     
    29742986  Int const numBitsForPtlIdx = vps->calculateLenOfSyntaxElement( vps->getNumProfileTierLevel() );
    29752987#endif
     2988#if !MULTIPLE_PTL_SUPPORT
    29762989  vps->getPTLForExtnPtr()->resize(vps->getNumProfileTierLevel());
     2990#endif
    29772991#if LIST_OF_PTL
    29782992  for(Int idx = vps->getBaseLayerInternalFlag() ? 2 : 1; idx <= vps->getNumProfileTierLevel() - 1; idx++)
     
    29863000#if P0048_REMOVE_PROFILE_REF
    29873001      // Copy profile information from previous one
     3002#if MULTIPLE_PTL_SUPPORT
     3003      vps->getPTL(idx)->copyProfileInfo( vps->getPTL( idx - 1 ) );
     3004#else
    29883005      vps->getPTLForExtn(idx)->copyProfileInfo( (idx==1) ? vps->getPTL() : vps->getPTLForExtn( idx - 1 ) );
     3006#endif
    29893007#else
    29903008      READ_CODE( 6, uiCode, "profile_ref_minus1[i]" ); vps->setProfileLayerSetRef(idx, uiCode + 1);
     
    29983016#endif
    29993017    }
     3018#if MULTIPLE_PTL_SUPPORT
     3019    parsePTL( vps->getPTL(idx), vps->getProfilePresentFlag(idx), vps->getMaxTLayers() - 1 );
     3020#else
    30003021    parsePTL( vps->getPTLForExtn(idx), vps->getProfilePresentFlag(idx), vps->getMaxTLayers() - 1 );
     3022#endif
    30013023  }
    30023024#endif
  • branches/SHM-upgrade/source/Lib/TLibEncoder/TEncCavlc.cpp

    r938 r945  
    14551455  for (Int i = 0; i < maxNumSubLayersMinus1; i++)
    14561456  {
     1457#if MULTIPLE_PTL_SUPPORT
     1458    WRITE_FLAG( pcPTL->getSubLayerProfilePresentFlag(i), "sub_layer_profile_present_flag[i]" );
     1459#else
    14571460    if(profilePresentFlag)
    14581461    {
    14591462      WRITE_FLAG( pcPTL->getSubLayerProfilePresentFlag(i), "sub_layer_profile_present_flag[i]" );
    14601463    }
     1464#endif
    14611465
    14621466    WRITE_FLAG( pcPTL->getSubLayerLevelPresentFlag(i),   "sub_layer_level_present_flag[i]" );
     
    14731477  for(Int i = 0; i < maxNumSubLayersMinus1; i++)
    14741478  {
     1479#if MULTIPLE_PTL_SUPPORT
     1480    if( pcPTL->getSubLayerProfilePresentFlag(i) )
     1481#else
    14751482    if( profilePresentFlag && pcPTL->getSubLayerProfilePresentFlag(i) )
     1483#endif
    14761484    {
    14771485      codeProfileTier(pcPTL->getSubLayerPTL(i));  // sub_layer_...
     
    20602068  if( vps->getMaxLayers() > 1 && vps->getBaseLayerInternalFlag() )
    20612069  {
     2070#if MULTIPLE_PTL_SUPPORT
     2071    codePTL( vps->getPTL(1), false, vps->getMaxTLayers() - 1 );
     2072#else
    20622073    codePTL( vps->getPTLForExtn(1), false, vps->getMaxTLayers() - 1 );
     2074#endif
    20632075  }
    20642076#endif
     
    22262238#endif
    22272239#if LIST_OF_PTL
     2240#if MULTIPLE_PTL_SUPPORT
     2241  //Do something here to make sure the loop is correct to consider base layer internal stuff
     2242#else
    22282243  assert( vps->getNumProfileTierLevel() == vps->getPTLForExtnPtr()->size());
     2244#endif
    22292245  for(Int idx = vps->getBaseLayerInternalFlag() ? 2 : 1; idx <= vps->getNumProfileTierLevel() - 1; idx++)
    22302246#else
     
    22322248#endif
    22332249  {
     2250#if MULTIPLE_PTL_SUPPORT
     2251    vps->setProfilePresentFlag(idx, true);
     2252#endif
    22342253    WRITE_FLAG( vps->getProfilePresentFlag(idx),       "vps_profile_present_flag[i]" );
    22352254#if !P0048_REMOVE_PROFILE_REF
     
    22392258    }
    22402259#endif
     2260#if MULTIPLE_PTL_SUPPORT
     2261    codePTL( vps->getPTL(idx), vps->getProfilePresentFlag(idx), vps->getMaxTLayers() - 1 );
     2262#else
    22412263    codePTL( vps->getPTLForExtn(idx), vps->getProfilePresentFlag(idx), vps->getMaxTLayers() - 1 );
     2264#endif
    22422265  }
    22432266#endif
Note: See TracChangeset for help on using the changeset viewer.