Changeset 588 in SHVCSoftware for trunk/source/Lib/TLibCommon


Ignore:
Timestamp:
1 Feb 2014, 23:50:54 (11 years ago)
Author:
seregin
Message:

merge with SHM-5.0-dev

Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/source

  • trunk/source/Lib/TLibCommon/CommonDef.h

    r540 r588  
    5757#if SVC_EXTENSION
    5858#include <vector>
    59 #define NV_VERSION        "4.1"                 ///< Current software version
     59#define NV_VERSION        "5.0 (HM-12.1)"                 ///< Current software version
    6060#else
    6161#define NV_VERSION        "12.1"                ///< Current software version
     
    284284{
    285285  Int m_targetLayerId;
    286   Int m_outputLayerSetIdx;
     286  Int m_targetOutputLayerSetIdx;
    287287  std::vector<Int> *m_targetDecLayerIdSet;
    288288  Bool m_valueCheckedFlag;
     
    290290  CommonDecoderParams():
    291291    m_targetLayerId(0)
    292     , m_outputLayerSetIdx(-1)
     292    , m_targetOutputLayerSetIdx(-1)
    293293    , m_targetDecLayerIdSet(NULL)
    294294    , m_valueCheckedFlag(false)
     
    298298  Int  getTargetLayerId()            { return m_targetLayerId;}
    299299 
    300   Void setOutputLayerSetIdx(const Int x) { m_outputLayerSetIdx = x;   }
    301   Int  getOutputLayerSetIdx()            { return m_outputLayerSetIdx;}
     300  Void setTargetOutputLayerSetIdx(const Int x) { m_targetOutputLayerSetIdx = x;   }
     301  Int  getTargetOutputLayerSetIdx()            { return m_targetOutputLayerSetIdx;}
    302302
    303303  Void               setTargetDecLayerIdSet(std::vector<Int> *x) { m_targetDecLayerIdSet = x;   }
  • trunk/source/Lib/TLibCommon/SEI.cpp

    r313 r588  
    4141//Table D-7 Meaning of camera iso sensitivity indicator and exposure index rating indicator
    4242Int  Table_exp_indicator[32] = {0, 10, 12, 16, 20, 25, 32, 40, 50, 64, 80, 100, 125, 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 8000, -1};
     43
     44#if SUB_BITSTREAM_PROPERTY_SEI
     45SEISubBitstreamProperty::SEISubBitstreamProperty()
     46{
     47  m_activeVpsId             = -1;
     48  m_numAdditionalSubStreams = 0;
     49  ::memset(m_subBitstreamMode       , 0, sizeof(m_subBitstreamMode));
     50  ::memset(m_outputLayerSetIdxToVps , 0, sizeof(m_outputLayerSetIdxToVps));
     51  ::memset(m_highestSublayerId      , 0, sizeof(m_highestSublayerId));
     52  ::memset(m_avgBitRate             , 0, sizeof(m_avgBitRate));
     53  ::memset(m_maxBitRate             , 0, sizeof(m_maxBitRate));
     54}
     55#endif
    4356
    4457SEIMessages getSeisByType(SEIMessages &seiList, SEI::PayloadType seiType)
  • trunk/source/Lib/TLibCommon/SEI.h

    r442 r588  
    7272    SCALABLE_NESTING                     = 133,
    7373    REGION_REFRESH_INFO                  = 134,
    74 #if M0043_LAYERS_PRESENT_SEI
    75     LAYERS_PRESENT                       = 137,
     74#if LAYERS_NOT_PRESENT_SEI
     75    LAYERS_NOT_PRESENT                   = 137,
    7676#endif
    7777#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
    7878    INTER_LAYER_CONSTRAINED_TILE_SETS    = 138
     79#endif
     80#if SUB_BITSTREAM_PROPERTY_SEI
     81   ,SUB_BITSTREAM_PROPERTY               = 139    // Final PayloadType to be defined after finalization
    7982#endif
    8083  };
     
    319322};
    320323
    321 #if M0043_LAYERS_PRESENT_SEI
    322 class SEILayersPresent : public SEI
    323 {
    324 public:
    325   PayloadType payloadType() const { return LAYERS_PRESENT; }
    326 
    327   SEILayersPresent() {}
    328   virtual ~SEILayersPresent() {}
     324#if LAYERS_NOT_PRESENT_SEI
     325class SEILayersNotPresent : public SEI
     326{
     327public:
     328  PayloadType payloadType() const { return LAYERS_NOT_PRESENT; }
     329
     330  SEILayersNotPresent() {}
     331  virtual ~SEILayersNotPresent() {}
    329332
    330333  UInt m_activeVpsId;
    331334  UInt m_vpsMaxLayers;
    332   Bool m_layerPresentFlag[MAX_LAYERS];
     335  Bool m_layerNotPresentFlag[MAX_LAYERS];
    333336};
    334337#endif
     
    407410#endif
    408411
     412#if SUB_BITSTREAM_PROPERTY_SEI
     413class SEISubBitstreamProperty : public SEI
     414{
     415public:
     416  PayloadType payloadType() const { return SUB_BITSTREAM_PROPERTY; }
     417
     418  SEISubBitstreamProperty();
     419  virtual ~SEISubBitstreamProperty() {}
     420
     421  Int  m_activeVpsId;
     422  Int  m_numAdditionalSubStreams;
     423  Int  m_subBitstreamMode       [MAX_SUB_STREAMS];
     424  Int  m_outputLayerSetIdxToVps [MAX_SUB_STREAMS];
     425  Int  m_highestSublayerId      [MAX_SUB_STREAMS];
     426  Int  m_avgBitRate             [MAX_SUB_STREAMS];
     427  Int  m_maxBitRate             [MAX_SUB_STREAMS];
     428};
     429#endif
    409430
    410431typedef std::list<SEI*> SEIMessages;
  • trunk/source/Lib/TLibCommon/TComDataCU.cpp

    r540 r588  
    34383438
    34393439  // use coldir.
    3440 #if M0457_COL_PICTURE_SIGNALING && !REMOVE_COL_PICTURE_SIGNALING
    3441   TComPic *pColPic;
    3442   if (m_layerId > 0 && getSlice()->getAltColIndicationFlag())
    3443   {
    3444     pColPic = getSlice()->getMotionPredIlp();
    3445   }
    3446   else
    3447   {
    3448     pColPic = getSlice()->getRefPic( RefPicList(getSlice()->isInterB() ? 1-getSlice()->getColFromL0Flag() : 0), getSlice()->getColRefIdx());
    3449   }
    3450 #else
    34513440  TComPic *pColPic = getSlice()->getRefPic( RefPicList(getSlice()->isInterB() ? 1-getSlice()->getColFromL0Flag() : 0), getSlice()->getColRefIdx());
    3452 #endif
    34533441  TComDataCU *pColCU = pColPic->getCU( uiCUAddr );
    34543442  if(pColCU->getPic()==0||pColCU->getPartitionSize(uiPartUnitIdx)==SIZE_NONE)
  • trunk/source/Lib/TLibCommon/TComRom.cpp

    r540 r588  
    530530Int g_mvScalingFactor  [MAX_LAYERS][2] = {{0,0}, {0,0}};
    531531Int g_posScalingFactor [MAX_LAYERS][2] = {{0,0}, {0,0}};
     532
     533std::string NaluToStr( NalUnitType nalu )
     534{
     535  switch( nalu )
     536  {
     537  case NAL_UNIT_CODED_SLICE_TRAIL_N:
     538  case NAL_UNIT_CODED_SLICE_TRAIL_R:
     539    return "TRAIL";
     540 
     541  case NAL_UNIT_CODED_SLICE_TSA_N:
     542  case NAL_UNIT_CODED_SLICE_TSA_R:
     543    return "  TSA";
     544 
     545  case NAL_UNIT_CODED_SLICE_STSA_N:
     546  case NAL_UNIT_CODED_SLICE_STSA_R:
     547    return " STSA";
     548
     549  case NAL_UNIT_CODED_SLICE_RADL_N:
     550  case NAL_UNIT_CODED_SLICE_RADL_R:
     551    return " RADL";
     552 
     553  case NAL_UNIT_CODED_SLICE_RASL_N:
     554  case NAL_UNIT_CODED_SLICE_RASL_R:
     555    return " RASL";
     556
     557  case NAL_UNIT_CODED_SLICE_BLA_W_LP:
     558  case NAL_UNIT_CODED_SLICE_BLA_W_RADL:
     559  case NAL_UNIT_CODED_SLICE_BLA_N_LP:
     560    return "  BLA";
     561
     562  case NAL_UNIT_CODED_SLICE_IDR_W_RADL:
     563  case NAL_UNIT_CODED_SLICE_IDR_N_LP:
     564    return "  IDR";
     565 
     566  case NAL_UNIT_CODED_SLICE_CRA:
     567    return "  CRA";
     568
     569  default:
     570    return "     ";
     571  };
     572}
    532573#endif
    533574
  • trunk/source/Lib/TLibCommon/TComRom.h

    r540 r588  
    288288#if SVC_EXTENSION
    289289extern Int g_mvScalingFactor  [MAX_LAYERS][2];
    290 extern Int g_posScalingFactor [MAX_LAYERS][2];
     290extern Int g_posScalingFactor [MAX_LAYERS][2];
     291std::string NaluToStr( NalUnitType nalu );
    291292#endif
    292293
  • trunk/source/Lib/TLibCommon/TComSlice.cpp

    r547 r588  
    117117#if SVC_EXTENSION
    118118  memset( m_pcBaseColPic, 0, sizeof( m_pcBaseColPic ) );
    119 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    120119  m_activeNumILRRefIdx        = 0;
    121120  m_interLayerPredEnabledFlag = 0;
    122121  ::memset( m_interLayerPredLayerIdc, 0, sizeof(m_interLayerPredLayerIdc) );
    123 #else
    124   m_numILRRefIdx = 0;
    125 #endif
    126 #if M0457_COL_PICTURE_SIGNALING && !REMOVE_COL_PICTURE_SIGNALING
    127   m_altColIndicationFlag = false;
    128   m_colRefLayerIdx       = 0;
    129 #endif
    130 #if M0457_IL_SAMPLE_PRED_ONLY_FLAG
    131   m_numSamplePredRefLayers       = 0;
    132   m_interLayerSamplePredOnlyFlag = false;
    133 #endif
    134122#endif //SVC_EXTENSION
    135123
     
    175163#if SVC_EXTENSION
    176164  m_layerId = layerId;
    177 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    178165  m_activeNumILRRefIdx        = 0;
    179166  m_interLayerPredEnabledFlag = 0;
    180 #else
    181   m_numILRRefIdx              = 0;
    182 #endif
    183 #if M0457_IL_SAMPLE_PRED_ONLY_FLAG
    184   m_numSamplePredRefLayers       = 0;
    185   m_interLayerSamplePredOnlyFlag = false;
    186 #endif
    187167#endif
    188168  m_aiNumRefIdx[0]      = 0;
     
    410390      pcRefPic->getPicYuvRec()->extendPicBorder();
    411391      RefPicSetStCurr0[NumPocStCurr0] = pcRefPic;
    412 #if M0457_IL_SAMPLE_PRED_ONLY_FLAG
    413       if( !m_interLayerSamplePredOnlyFlag || pcRefPic->getLayerId() < getLayerId())
    414 #endif
    415392      NumPocStCurr0++;
    416393      pcRefPic->setCheckLTMSBPresent(false); 
     
    426403      pcRefPic->getPicYuvRec()->extendPicBorder();
    427404      RefPicSetStCurr1[NumPocStCurr1] = pcRefPic;
    428 #if M0457_IL_SAMPLE_PRED_ONLY_FLAG
    429       if( !m_interLayerSamplePredOnlyFlag || pcRefPic->getLayerId() < getLayerId())
    430 #endif
    431405      NumPocStCurr1++;
    432406      pcRefPic->setCheckLTMSBPresent(false); 
     
    442416      pcRefPic->getPicYuvRec()->extendPicBorder();
    443417      RefPicSetLtCurr[NumPocLtCurr] = pcRefPic;
    444 #if M0457_IL_SAMPLE_PRED_ONLY_FLAG
    445       if( !m_interLayerSamplePredOnlyFlag || pcRefPic->getLayerId() < getLayerId())
    446 #endif
    447418      NumPocLtCurr++;
    448419    }
     
    470441    {
    471442#if REF_IDX_MFM
    472 #if M0457_COL_PICTURE_SIGNALING
    473443      if(!(m_eNalUnitType >= NAL_UNIT_CODED_SLICE_BLA_W_LP && m_eNalUnitType <= NAL_UNIT_CODED_SLICE_CRA) && getMFMEnabledFlag())
    474 #else
    475       if(!(m_eNalUnitType >= NAL_UNIT_CODED_SLICE_BLA_W_LP && m_eNalUnitType <= NAL_UNIT_CODED_SLICE_CRA) && m_pcSPS->getMFMEnabledFlag())
    476 #endif
    477444      {
    478445        ilpPic[refLayerIdc]->copyUpsampledMvField( refLayerIdc, m_pcBaseColPic[refLayerIdc] );
     
    508475      {
    509476        numInterLayerRPSPics++;
    510       }
    511     }
    512 #if JCTVC_M0458_INTERLAYER_RPS_SIG
     477#if DISCARDABLE_PIC_RPS
     478        assert( ilpPic[i]->getSlice(0)->getDiscardableFlag() == 0 );    // Inter-layer RPS shall not contain picture with discardable_flag = 1.
     479#endif
     480      }
     481    }
    513482    if (numInterLayerRPSPics < m_activeNumILRRefIdx)
    514483    {
     
    589558#endif
    590559    }
    591 #endif
    592 #else
    593     if (numInterLayerRPSPics < m_numILRRefIdx)
    594     {
    595       m_numILRRefIdx = numInterLayerRPSPics;
    596     }
    597 #endif
    598   }
    599 #if JCTVC_M0458_INTERLAYER_RPS_SIG
     560#endif
     561  }
    600562  Int numPocTotalCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr + m_activeNumILRRefIdx;
    601 #else
    602   Int numPocTotalCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr + m_numILRRefIdx;
    603 #endif
    604563#else //SVC_EXTENSION
    605564  Int numPocTotalCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr;
     
    609568  {
    610569    // The variable NumPocTotalCurr is derived as specified in subclause 7.4.7.2. It is a requirement of bitstream conformance that the following applies to the value of NumPocTotalCurr:
    611 #if ILP_RAP    // inter-layer prediction is allowed for BLA, CRA pictures of nuh_layer_id>0
     570#if SVC_EXTENSION    // inter-layer prediction is allowed for BLA, CRA pictures of nuh_layer_id>0
    612571    // – If the current picture is a BLA or CRA picture with nuh_layer_id equal to 0, the value of NumPocTotalCurr shall be equal to 0.
    613572    // – Otherwise, when the current picture contains a P or B slice, the value of NumPocTotalCurr shall not be equal to 0.
     
    623582
    624583    if (m_eSliceType == I_SLICE)
    625   {
     584    {
    626585      ::memset( m_apcRefPicList, 0, sizeof (m_apcRefPicList));
    627586      ::memset( m_aiNumRefIdx,   0, sizeof ( m_aiNumRefIdx ));
    628      
     587
    629588      return;
    630589    }
    631    
     590
    632591    assert(numPocTotalCurr > 0);
    633    
     592
    634593    m_aiNumRefIdx[0] = getNumRefIdx(REF_PIC_LIST_0);
    635594    m_aiNumRefIdx[1] = getNumRefIdx(REF_PIC_LIST_1);
    636595  }
    637596
    638 #if M0457_IL_SAMPLE_PRED_ONLY_FLAG
    639     if( m_interLayerSamplePredOnlyFlag && getLayerId() )
    640     {
    641       m_aiNumRefIdx[0] = m_aiNumRefIdx[0] > m_activeNumILRRefIdx ? m_activeNumILRRefIdx : m_aiNumRefIdx[0];
    642       m_aiNumRefIdx[1] = m_aiNumRefIdx[1] > m_activeNumILRRefIdx ? m_activeNumILRRefIdx : m_aiNumRefIdx[1];
    643     }
    644 #endif
    645  
    646597    Int cIdx = 0;
    647598    for ( i=0; i<NumPocStCurr0; i++, cIdx++)
     
    653604    if( m_layerId > 0 )
    654605    {     
    655 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    656606      for( i = 0; i < m_activeNumILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++)     
    657 #else
    658       for( i = 0; i < m_numILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++)
    659 #endif
    660607      {
    661608        Int refLayerIdc = m_interLayerPredLayerIdc[i];
     
    685632    if( m_layerId > 0 )
    686633    {
    687 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    688634      for( i = 0; i < m_activeNumILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++)     
    689 #else
    690       for( i = 0; i < m_numILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++)
    691 #endif
    692635      {
    693636        Int refLayerIdc = m_interLayerPredLayerIdc[i];
     
    726669    if( m_layerId > 0 )
    727670    {
    728 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    729671      for( i = 0; i < m_activeNumILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++)
    730 #else
    731       for( i = 0; i < m_numILRRefIdx && cIdx < numPocTotalCurr; cIdx ++, i ++)
    732 #endif
    733672      {
    734673        Int refLayerIdc = m_interLayerPredLayerIdc[i];
     
    832771    else
    833772    {
    834 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    835773      for(Int i = m_activeNumILRRefIdx; i > 0; i-- )
    836 #else
    837       for(Int i = m_numILRRefIdx; i > 0; i-- )
    838 #endif
    839774      {
    840775#if RPL_INIT_N0316_N0082
     
    881816    else
    882817    {
    883 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    884818      for(Int i = m_activeNumILRRefIdx; i > 0; i-- )
    885 #else
    886       for(Int i = m_numILRRefIdx; i > 0; i-- )
    887 #endif
    888819      {
    889820        refPicListModification->setRefPicSetIdxL1(m_aiNumRefIdx[REF_PIC_LIST_1] - i, numberOfRpsCurrTempList - i);
     
    927858  {
    928859#if SVC_EXTENSION
    929 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    930860    return m_activeNumILRRefIdx;
    931 #else
    932     return getNumILRRefIdx();
    933 #endif
    934861#else
    935862    return 0;
     
    946873  if( m_layerId > 0 )
    947874  {
    948 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    949875    numRpsCurrTempList += m_activeNumILRRefIdx;
    950 #else
    951     numRpsCurrTempList += getNumILRRefIdx();
    952 #endif
    953876}
    954877#endif
     
    11791102  m_pcVPS                = pSrc->m_pcVPS;
    11801103  m_layerId              = pSrc->m_layerId;
    1181 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    11821104  m_activeNumILRRefIdx         = pSrc->m_activeNumILRRefIdx;
    11831105  m_interLayerPredEnabledFlag  = pSrc->m_interLayerPredEnabledFlag;
    11841106  memcpy( m_interLayerPredLayerIdc, pSrc->m_interLayerPredLayerIdc, sizeof( m_interLayerPredLayerIdc ) );
    1185 #endif
    11861107#endif
    11871108  m_pcSPS                = pSrc->m_pcSPS;
     
    15081429
    15091430    }
     1431#if DISCARDABLE_PIC_RPS
     1432    if( isReference ) // Current picture is in the temporal RPS
     1433    {
     1434      assert( rpcPic->getSlice(0)->getDiscardableFlag() == 0 ); // Temporal RPS shall not contain picture with discardable_flag equal to 1
     1435    }
     1436#endif
    15101437    // mark the picture as "unused for reference" if it is not in
    15111438    // the Reference Picture Set
     
    20101937, m_bitDepthVpsChroma           (0)
    20111938{}
     1939#if RESOLUTION_BASED_DPB
     1940Void RepFormat::init()
     1941{
     1942  m_chromaFormatVpsIdc          = CHROMA_420;
     1943  m_separateColourPlaneVpsFlag  = false;
     1944  m_picWidthVpsInLumaSamples    = 0;
     1945  m_picHeightVpsInLumaSamples   = 0;
     1946  m_bitDepthVpsLuma             = 0;
     1947  m_bitDepthVpsChroma           = 0;
     1948}
     1949#endif
    20121950#endif
    20131951
     
    20361974#endif
    20371975, m_numProfileTierLevel       (0)
     1976#if !VPS_EXTN_UEV_CODING
    20381977, m_moreOutputLayerSetsThanDefaultFlag (false)
     1978#endif
    20391979, m_numAddOutputLayerSets     (0)
     1980#if P0295_DEFAULT_OUT_LAYER_IDC
     1981, m_defaultTargetOutputLayerIdc     (0)
     1982#else
    20401983#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
    20411984, m_defaultOneTargetOutputLayerIdc     (0)
    20421985#else
    20431986, m_defaultOneTargetOutputLayerFlag    (false)
     1987#endif
    20441988#endif
    20451989#if VPS_VUI_BITRATE_PICRATE
     
    20582002#endif
    20592003#endif
     2004#if !P0307_REMOVE_VPS_VUI_OFFSET
    20602005#if VPS_VUI_OFFSET
    20612006, m_vpsVuiOffset (0)
     2007#endif
     2008#endif
     2009#if P0307_VPS_NON_VUI_EXTENSION
     2010, m_vpsNonVuiExtLength (0)
    20622011#endif
    20632012{
     
    20822031#if VPS_EXTN_PROFILE_INFO
    20832032  ::memset(m_profilePresentFlag, 0, sizeof(m_profilePresentFlag));
     2033#if !P0048_REMOVE_PROFILE_REF
    20842034  ::memset(m_profileLayerSetRef, 0, sizeof(m_profileLayerSetRef));
     2035#endif
    20852036#endif
    20862037#if VPS_EXTN_OP_LAYER_SETS
     
    20942045  ::memset(m_numDirectRefLayers,   0, sizeof(m_numDirectRefLayers  ));
    20952046  ::memset(m_refLayerId,           0, sizeof(m_refLayerId          ));
    2096 #if M0457_PREDICTION_INDICATIONS
    20972047  m_directDepTypeLen = 2;
    20982048  ::memset(m_directDependencyType, 0, sizeof(m_directDependencyType));
    2099 #endif
    21002049#endif
    21012050#if DERIVE_LAYER_ID_LIST_VARIABLES
     
    21042053#endif
    21052054  ::memset(m_profileLevelTierIdx,  0, sizeof(m_profileLevelTierIdx));
    2106 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    21072055  m_maxOneActiveRefLayerFlag = true;
    2108 #endif
    21092056#if O0062_POC_LSB_NOT_PRESENT_FLAG
    21102057  ::memset(m_pocLsbNotPresentFlag, 0, sizeof(m_pocLsbNotPresentFlag));
     
    21162063  m_crossLayerIrapAlignFlag = true;
    21172064#endif
    2118 #if JCTVC_M0203_INTERLAYER_PRED_IDC
    21192065#if N0120_MAX_TID_REF_PRESENT_FLAG
    21202066  m_maxTidRefPresentFlag = true;
     
    21232069  {
    21242070#if O0225_MAX_TID_FOR_REF_LAYERS
    2125   for( Int j = 0; j < MAX_VPS_LAYER_ID_PLUS1; j++)
    2126   {
    2127     m_maxTidIlRefPicsPlus1[i][j] = m_uiMaxTLayers + 1;
    2128   }
     2071    for( Int j = 0; j < MAX_VPS_LAYER_ID_PLUS1; j++)
     2072    {
     2073      m_maxTidIlRefPicsPlus1[i][j] = m_uiMaxTLayers + 1;
     2074    }
    21292075#else
    21302076    m_maxTidIlRefPicsPlus1[i] = m_uiMaxTLayers + 1;
    21312077#endif
    21322078  }
    2133 #endif
    21342079#if VPS_VUI_TILES_NOT_IN_USE__FLAG
    2135    m_tilesNotInUseFlag = true;
    2136    ::memset(m_tilesInUseFlag,  0, sizeof(m_tilesInUseFlag));
    2137    ::memset(m_loopFilterNotAcrossTilesFlag,  0, sizeof(m_loopFilterNotAcrossTilesFlag));
     2080  m_tilesNotInUseFlag = true;
     2081  ::memset(m_tilesInUseFlag,  0, sizeof(m_tilesInUseFlag));
     2082  ::memset(m_loopFilterNotAcrossTilesFlag,  0, sizeof(m_loopFilterNotAcrossTilesFlag));
    21382083#endif
    21392084#if TILE_BOUNDARY_ALIGNED_FLAG
    2140    ::memset(m_tileBoundariesAlignedFlag,  0, sizeof(m_tileBoundariesAlignedFlag));
     2085  ::memset(m_tileBoundariesAlignedFlag,  0, sizeof(m_tileBoundariesAlignedFlag));
    21412086#endif
    21422087#if VPS_VUI_WPP_NOT_IN_USE__FLAG
    2143    m_wppNotInUseFlag = true;
    2144    ::memset(m_wppInUseFlag,  0, sizeof(m_wppInUseFlag));
     2088  m_wppNotInUseFlag = true;
     2089  ::memset(m_wppInUseFlag,  0, sizeof(m_wppInUseFlag));
    21452090#endif
    21462091#if N0160_VUI_EXT_ILP_REF
    2147    m_numIlpRestrictedRefLayers = false;
    2148    ::memset(m_minSpatialSegmentOffsetPlus1,  0, sizeof(m_minSpatialSegmentOffsetPlus1));
    2149    ::memset(m_ctuBasedOffsetEnabledFlag,     0, sizeof(m_ctuBasedOffsetEnabledFlag));
    2150    ::memset(m_minHorizontalCtuOffsetPlus1,   0, sizeof(m_minHorizontalCtuOffsetPlus1));
     2092  m_ilpRestrictedRefLayersFlag = false;
     2093  ::memset(m_minSpatialSegmentOffsetPlus1,  0, sizeof(m_minSpatialSegmentOffsetPlus1));
     2094  ::memset(m_ctuBasedOffsetEnabledFlag,     0, sizeof(m_ctuBasedOffsetEnabledFlag));
     2095  ::memset(m_minHorizontalCtuOffsetPlus1,   0, sizeof(m_minHorizontalCtuOffsetPlus1));
    21512096#endif
    21522097#if VPS_VUI_VIDEO_SIGNAL
    2153     m_vidSigPresentVpsFlag=true;
    2154     m_vpsVidSigInfo=1;
    2155     ::memset( m_vpsVidSigIdx, 0, sizeof(m_vpsVidSigIdx) );
    2156     m_vpsVidSigIdx[0]=0;
    2157     for (Int i=0; i < 16; i++)
    2158     {
    2159       m_vpsVidFormat[i] = 5;
    2160       m_vpsFullRangeFlag[i] = false;
    2161       m_vpsColorPrimaries[i] = 2;
    2162       m_vpsTransChar[i] = 2;
    2163       m_vpsMatCoeff[i] = 2;
    2164     }
     2098  m_vidSigPresentVpsFlag=true;
     2099  m_vpsVidSigInfo=1;
     2100  ::memset( m_vpsVidSigIdx, 0, sizeof(m_vpsVidSigIdx) );
     2101  m_vpsVidSigIdx[0]=0;
     2102  for (Int i=0; i < 16; i++)
     2103  {
     2104    m_vpsVidFormat[i] = 5;
     2105    m_vpsFullRangeFlag[i] = false;
     2106    m_vpsColorPrimaries[i] = 2;
     2107    m_vpsTransChar[i] = 2;
     2108    m_vpsMatCoeff[i] = 2;
     2109  }
    21652110#endif
    21662111#if VPS_VUI_BITRATE_PICRATE 
     
    21922137  ::memset( m_subLayerDpbInfoPresentFlag,   0, sizeof(m_subLayerDpbInfoPresentFlag )  );
    21932138  ::memset( m_maxVpsDecPicBufferingMinus1,  0, sizeof(m_maxVpsDecPicBufferingMinus1 ) );
     2139#if RESOLUTION_BASED_DPB
     2140  ::memset( m_maxVpsLayerDecPicBuffMinus1,  0, sizeof(m_maxVpsLayerDecPicBuffMinus1 ) );
     2141#endif
    21942142  ::memset( m_maxVpsNumReorderPics,         0, sizeof(m_maxVpsNumReorderPics )        );
    21952143  ::memset( m_maxVpsLatencyIncreasePlus1,   0, sizeof(m_maxVpsLatencyIncreasePlus1 )  );
     
    22482196}
    22492197#endif
     2198#if !RESOLUTION_BASED_DPB
    22502199#if VPS_DPB_SIZE_TABLE
    22512200Void TComVPS::deriveNumberOfSubDpbs()
    22522201{
    22532202  // Derive number of sub-DPBs
     2203#if CHANGE_NUMSUBDPB_IDX
     2204  // For layer set 0
     2205  setNumSubDpbs(0, 1);
     2206  // For other layer sets
     2207  for( Int i = 1; i < getNumLayerSets(); i++)
     2208  {
     2209    setNumSubDpbs( i, getNumLayersInIdList( i ) );
     2210  }
     2211#else
    22542212  // For output layer set 0
    22552213  setNumSubDpbs(0, 1);
     
    22592217    setNumSubDpbs( i, getNumLayersInIdList( getOutputLayerSetIdx(i)) );
    22602218  }
    2261 }
     2219#endif
     2220}
     2221#endif
    22622222#endif
    22632223#if VPS_VUI_TILES_NOT_IN_USE__FLAG
     
    23582318
    23592319  return scalIdx;
     2320}
     2321#endif
     2322#if VPS_DPB_SIZE_TABLE
     2323Void TComVPS::determineSubDpbInfoFlags()
     2324{
     2325  for(Int i = 1; i < getNumOutputLayerSets(); i++)
     2326  {
     2327    Int layerSetIdxForOutputLayerSet = getOutputLayerSetIdx( i );
     2328    // For each output layer set, set the DPB size for each layer and the reorder/latency value the maximum for all layers
     2329    Bool checkFlagOuter = false;      // Used to calculate sub_layer_flag_info_present_flag
     2330    Bool checkFlagInner[MAX_TLAYER];  // Used to calculate sub_layer_dpb_info_present_flag
     2331
     2332    for(Int j = 0; j < getMaxTLayers(); j++)
     2333    {
     2334      // --------------------------------------------------------
     2335      // To determine value of m_subLayerDpbInfoPresentFlag
     2336      // --------------------------------------------------------
     2337      if( j == 0 )  // checkFlagInner[0] is always 1
     2338      {
     2339        checkFlagInner[j] = true;     // Always signal sub-layer DPB information for the first sub-layer
     2340      }
     2341      else
     2342      {
     2343        checkFlagInner[j] = false;    // Initialize to be false. If the values of the current sub-layers matches with the earlier sub-layer,
     2344                                      // then will be continue to be false - i.e. the j-th sub-layer DPB info is not signaled
     2345        checkFlagInner[j] |= ( getMaxVpsNumReorderPics(i, j) != getMaxVpsNumReorderPics(i, j - 1) );
     2346#if CHANGE_NUMSUBDPB_IDX
     2347        for(Int subDpbIdx = 0; subDpbIdx < getNumSubDpbs(layerSetIdxForOutputLayerSet) && !checkFlagInner[j]; subDpbIdx++)  // If checkFlagInner[j] is true, break and signal the values
     2348#else
     2349        for(Int k = 0; k < getNumSubDpbs(i) && !checkFlagInner[j]; k++)  // If checkFlagInner[j] is true, break and signal the values
     2350#endif
     2351        {
     2352          checkFlagInner[j] |= ( getMaxVpsDecPicBufferingMinus1(i, subDpbIdx, j - 1) != getMaxVpsDecPicBufferingMinus1(i, subDpbIdx, j) );
     2353        }
     2354#if RESOLUTION_BASED_DPB
     2355        for(Int layerIdx = 0; layerIdx < this->getNumLayersInIdList(layerSetIdxForOutputLayerSet) && !checkFlagInner[j]; layerIdx++)  // If checkFlagInner[j] is true, break and signal the values
     2356        {
     2357          checkFlagInner[j] |= ( getMaxVpsLayerDecPicBuffMinus1(i, layerIdx, j - 1) != getMaxVpsLayerDecPicBuffMinus1(i, layerIdx, j) );
     2358        }
     2359#endif
     2360      }
     2361      // If checkFlagInner[j] = true, then some value needs to be signalled for the j-th sub-layer
     2362      setSubLayerDpbInfoPresentFlag( i, j, checkFlagInner[j] );
     2363    }
     2364
     2365    // --------------------------------------------------------
     2366    // To determine value of m_subLayerFlagInfoPresentFlag
     2367    // --------------------------------------------------------
     2368
     2369    for(Int j = 1; j < getMaxTLayers(); j++) // Check if DPB info of any of non-zero sub-layers is signaled. If so set flag to one
     2370    {
     2371      if( getSubLayerDpbInfoPresentFlag(i, j) )
     2372      {
     2373        checkFlagOuter = true;
     2374        break;
     2375      }
     2376    }
     2377    setSubLayerFlagInfoPresentFlag( i, checkFlagOuter );
     2378  }
     2379}
     2380#endif
     2381#if RESOLUTION_BASED_DPB
     2382Void TComVPS::assignSubDpbIndices()
     2383{
     2384  RepFormat layerRepFormat  [MAX_LAYERS];
     2385  RepFormat subDpbRepFormat [MAX_LAYERS];
     2386
     2387  for(Int lsIdx = 0; lsIdx < this->getNumLayerSets(); lsIdx++)
     2388  {
     2389    for(Int j = 0; j < MAX_LAYERS; j++)
     2390    {
     2391      layerRepFormat [j].init();
     2392      subDpbRepFormat[j].init();
     2393    }
     2394
     2395    // Assign resolution, bit-depth, colour format for each layer in the layer set
     2396    for(Int i = 0; i < this->getNumLayersInIdList( lsIdx ); i++)
     2397    {
     2398      Int layerIdxInVps = this->getLayerIdInVps( this->getLayerSetLayerIdList(lsIdx, i) );
     2399      Int repFormatIdx  = this->getVpsRepFormatIdx( layerIdxInVps );
     2400      RepFormat* repFormat = this->getVpsRepFormat( repFormatIdx );
     2401
     2402      // Assign the rep_format() to the layer
     2403      layerRepFormat[i] = *repFormat;
     2404    }
     2405
     2406    // ----------------------------------------
     2407    // Sub-DPB assignment
     2408    // ----------------------------------------
     2409    // For the base layer
     2410    m_subDpbAssigned[lsIdx][0] = 0;
     2411    subDpbRepFormat[0] = layerRepFormat[0];
     2412
     2413    // Sub-DPB counter
     2414    Int subDpbCtr = 1;
     2415
     2416    for(Int i = 1; i < this->getNumLayersInIdList( lsIdx ); i++)
     2417    {
     2418      Bool newSubDpbFlag = true;
     2419      for(Int j = 0; (j < subDpbCtr) && (newSubDpbFlag); j++)
     2420      {
     2421        if( RepFormat::checkSameSubDpb( layerRepFormat[i], subDpbRepFormat[j] ) )
     2422        {
     2423          // Belong to i-th sub-DPB
     2424          m_subDpbAssigned[lsIdx][i] = j;
     2425          newSubDpbFlag = false;
     2426        }
     2427      }
     2428      if( newSubDpbFlag )
     2429      {
     2430        // New sub-DPB
     2431        subDpbRepFormat[subDpbCtr] = layerRepFormat[i];
     2432        m_subDpbAssigned[lsIdx][i] = subDpbCtr;
     2433        subDpbCtr++;                                    // Increment # subDpbs
     2434      }
     2435    }
     2436    m_numSubDpbs[lsIdx] = subDpbCtr;
     2437  }
     2438}
     2439Int  TComVPS::findLayerIdxInLayerSet ( Int lsIdx, Int nuhLayerId )
     2440{
     2441  for(Int i = 0; i < this->getNumLayersInIdList(lsIdx); i++)
     2442  {
     2443    if( this->getLayerSetLayerIdList( lsIdx, i) == nuhLayerId )
     2444    {
     2445      return i;
     2446    }
     2447  }
     2448  return -1;  // Layer not found
     2449}
     2450// RepFormat Assignment operator
     2451RepFormat& RepFormat::operator= (const RepFormat &other)
     2452{
     2453  if( this != &other)
     2454  {
     2455    m_chromaAndBitDepthVpsPresentFlag = other.m_chromaAndBitDepthVpsPresentFlag;
     2456    m_chromaFormatVpsIdc              = other.m_chromaFormatVpsIdc;
     2457    m_separateColourPlaneVpsFlag      = other.m_separateColourPlaneVpsFlag;
     2458    m_picWidthVpsInLumaSamples        = other.m_picWidthVpsInLumaSamples;
     2459    m_picHeightVpsInLumaSamples       = other.m_picHeightVpsInLumaSamples;
     2460    m_bitDepthVpsLuma                 = other.m_bitDepthVpsLuma;
     2461    m_bitDepthVpsChroma               = other.m_bitDepthVpsChroma;
     2462  }
     2463  return *this;
     2464}
     2465
     2466// Check whether x and y share the same resolution, chroma format and bit-depth.
     2467Bool RepFormat::checkSameSubDpb(const RepFormat &x, const RepFormat &y)
     2468{
     2469  return (    (x.m_chromaFormatVpsIdc              == y.m_chromaFormatVpsIdc)
     2470          &&  (x.m_picWidthVpsInLumaSamples        == y.m_picWidthVpsInLumaSamples)
     2471          &&  (x.m_picHeightVpsInLumaSamples       == y.m_picHeightVpsInLumaSamples)
     2472          &&  (x.m_bitDepthVpsLuma                 == y.m_bitDepthVpsLuma)
     2473          &&  (x.m_bitDepthVpsChroma               == y.m_bitDepthVpsChroma)
     2474          );
    23602475}
    23612476#endif
     
    24042519, m_vuiParameters             ()
    24052520#if SVC_EXTENSION
    2406 #if M0463_VUI_EXT_ILP_REF
    2407 , m_interViewMvVertConstraintFlag (false)
    2408 , m_numIlpRestrictedRefLayers ( 0 )
    2409 #endif
    24102521, m_layerId                   ( 0 )
    24112522, m_numScaledRefLayerOffsets  ( 0 )
     
    24312542  ::memset(m_ltRefPicPocLsbSps, 0, sizeof(m_ltRefPicPocLsbSps));
    24322543  ::memset(m_usedByCurrPicLtSPSFlag, 0, sizeof(m_usedByCurrPicLtSPSFlag));
    2433 #if M0463_VUI_EXT_ILP_REF
    2434   for (Int i = 0; i < MAX_LAYERS; i++ )
    2435   {
    2436     m_minSpatialSegmentOffsetPlus1[ i ] = 0;
    2437     m_ctuBasedOffsetEnabledFlag   [ i ] = false;
    2438     m_minHorizontalCtuOffsetPlus1 [ i ] = 0;
    2439   }
    2440 #endif
    24412544}
    24422545
  • trunk/source/Lib/TLibCommon/TComSlice.h

    r547 r588  
    422422public:
    423423  RepFormat();
    424 
     424#if RESOLUTION_BASED_DPB
     425  Void init();
     426  RepFormat& operator= (const RepFormat &);
     427  static Bool checkSameSubDpb(const RepFormat &x, const RepFormat &y);
     428#endif
    425429#if REPN_FORMAT_CONTROL_FLAG
    426430  Bool getChromaAndBitDepthVpsPresentFlag() { return m_chromaAndBitDepthVpsPresentFlag; }
     
    483487  Int         m_numLayerInIdList[MAX_VPS_LAYER_SETS_PLUS1];
    484488#endif
     489#if !P0125_REVERT_VPS_EXTN_OFFSET_TO_RESERVED
    485490#if VPS_EXTN_OFFSET
    486491  UInt        m_extensionOffset;
     492#endif
    487493#endif
    488494#if VPS_RENAME
     
    514520  // Profile-tier-level signalling related
    515521  Bool       m_profilePresentFlag[MAX_VPS_LAYER_SETS_PLUS1];    // The value with index 0 will not be used.
     522#if !P0048_REMOVE_PROFILE_REF
    516523  UInt       m_profileLayerSetRef[MAX_VPS_LAYER_SETS_PLUS1];    // The value with index 0 will not be used.
     524#endif
    517525  std::vector<TComPTL>    m_pcPTLForExtn; 
    518526#endif
     
    528536  UInt       m_numDirectRefLayers[MAX_VPS_LAYER_ID_PLUS1];
    529537  UInt       m_refLayerId[MAX_VPS_LAYER_ID_PLUS1][MAX_VPS_LAYER_ID_PLUS1];
    530 #if M0457_PREDICTION_INDICATIONS
    531538  UInt       m_directDepTypeLen;
    532539#if O0096_DEFAULT_DEPENDENCY_TYPE
     
    536543  UInt       m_directDependencyType[MAX_VPS_LAYER_ID_PLUS1][MAX_VPS_LAYER_ID_PLUS1];
    537544#endif
    538 #endif
    539545  UInt       m_numProfileTierLevel;
     546#if !VPS_EXTN_UEV_CODING
    540547  Bool       m_moreOutputLayerSetsThanDefaultFlag;
     548#endif
    541549  Int        m_numAddOutputLayerSets;
     550#if P0295_DEFAULT_OUT_LAYER_IDC
     551  UInt       m_defaultTargetOutputLayerIdc;
     552#else
    542553#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
    543554  UInt       m_defaultOneTargetOutputLayerIdc;
     
    545556  Bool       m_defaultOneTargetOutputLayerFlag;
    546557#endif
     558#endif
    547559  Int        m_profileLevelTierIdx[64];     
    548 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    549560  Bool       m_maxOneActiveRefLayerFlag;
    550 #endif
    551561#if O0062_POC_LSB_NOT_PRESENT_FLAG
    552562  Bool       m_pocLsbNotPresentFlag[MAX_VPS_LAYER_ID_PLUS1];
     
    558568  Bool       m_crossLayerIrapAlignFlag;
    559569#endif
    560 #if JCTVC_M0203_INTERLAYER_PRED_IDC
    561570#if O0225_MAX_TID_FOR_REF_LAYERS
    562571  UInt       m_maxTidIlRefPicsPlus1[MAX_VPS_LAYER_ID_PLUS1 - 1][MAX_VPS_LAYER_ID_PLUS1];
    563572#else
    564573  UInt       m_maxTidIlRefPicsPlus1[MAX_VPS_LAYER_ID_PLUS1 - 1];
    565 #endif
    566574#endif
    567575#if N0120_MAX_TID_REF_PRESENT_FLAG
     
    591599#endif
    592600#if N0160_VUI_EXT_ILP_REF   
    593   Bool        m_numIlpRestrictedRefLayers;
     601  Bool        m_ilpRestrictedRefLayersFlag;
    594602  Int         m_minSpatialSegmentOffsetPlus1[MAX_VPS_LAYER_ID_PLUS1][MAX_VPS_LAYER_ID_PLUS1];
    595603  Bool        m_ctuBasedOffsetEnabledFlag   [MAX_VPS_LAYER_ID_PLUS1][MAX_VPS_LAYER_ID_PLUS1];
     
    597605#endif
    598606#if VPS_VUI_VIDEO_SIGNAL
    599     Bool        m_vidSigPresentVpsFlag;
    600     Int         m_vpsVidSigInfo;
    601     Int         m_vpsVidSigIdx[MAX_VPS_LAYER_ID_PLUS1];
    602     Int         m_vpsVidFormat[16];
    603     Bool        m_vpsFullRangeFlag[16];
    604     Int         m_vpsColorPrimaries[16];
    605     Int         m_vpsTransChar[16];
    606     Int         m_vpsMatCoeff[16];
     607  Bool        m_vidSigPresentVpsFlag;
     608  Int         m_vpsVidSigInfo;
     609  Int         m_vpsVidSigIdx[MAX_VPS_LAYER_ID_PLUS1];
     610  Int         m_vpsVidFormat[16];
     611  Bool        m_vpsFullRangeFlag[16];
     612  Int         m_vpsColorPrimaries[16];
     613  Int         m_vpsTransChar[16];
     614  Int         m_vpsMatCoeff[16];
    607615#endif
    608616#if VPS_VUI_BITRATE_PICRATE
     
    646654  Bool    m_subLayerDpbInfoPresentFlag  [MAX_VPS_OP_LAYER_SETS_PLUS1][MAX_LAYERS];
    647655  Int     m_maxVpsDecPicBufferingMinus1 [MAX_VPS_OP_LAYER_SETS_PLUS1][MAX_LAYERS][MAX_TLAYER];
     656#if RESOLUTION_BASED_DPB
     657  Int     m_maxVpsLayerDecPicBuffMinus1 [MAX_VPS_OP_LAYER_SETS_PLUS1][MAX_LAYERS][MAX_TLAYER]; 
     658#endif
    648659  Int     m_maxVpsNumReorderPics        [MAX_VPS_OP_LAYER_SETS_PLUS1][MAX_LAYERS];
    649660  Int     m_maxVpsLatencyIncreasePlus1  [MAX_VPS_OP_LAYER_SETS_PLUS1][MAX_LAYERS];
     661#if CHANGE_NUMSUBDPB_IDX
     662  Int     m_numSubDpbs                  [MAX_VPS_LAYER_SETS_PLUS1];
     663#else
    650664  Int     m_numSubDpbs                  [MAX_VPS_OP_LAYER_SETS_PLUS1];
     665#endif
    651666#endif
    652667
     
    655670#endif
    656671
    657 #endif //SVC_EXTENSION
     672#if !P0307_REMOVE_VPS_VUI_OFFSET
    658673#if VPS_VUI_OFFSET
    659674  Int     m_vpsVuiOffset;
    660675#endif
     676#endif
     677#if P0307_VPS_NON_VUI_EXTENSION
     678  Int     m_vpsNonVuiExtLength;
     679#endif
     680#if RESOLUTION_BASED_DPB
     681  Int     m_subDpbAssigned            [MAX_VPS_LAYER_SETS_PLUS1][MAX_LAYERS];
     682#endif
     683#endif //SVC_EXTENSION
    661684public:
    662685  TComVPS();
     
    777800  Void   setProfilePresentFlag(Int id, Bool x)                  { m_profilePresentFlag[id] = x;    }
    778801
     802#if !P0048_REMOVE_PROFILE_REF
    779803  UInt   getProfileLayerSetRef(Int id)                          { return m_profileLayerSetRef[id]; }
    780804  Void   setProfileLayerSetRef(Int id, Bool x)                  { m_profileLayerSetRef[id] = x;    }
     805#endif
    781806
    782807  std::vector<TComPTL>* getPTLForExtnPtr()                      { return &m_pcPTLForExtn;          }
     
    805830  Void   setRefLayerId(Int layerId, Int refLayerIdx, UInt refLayerId)           { m_refLayerId[layerId][refLayerIdx] = refLayerId;        }
    806831
    807 #if M0457_PREDICTION_INDICATIONS
    808832  UInt   getDirectDepTypeLen()                                                  { return m_directDepTypeLen;                              }
    809833  Void   setDirectDepTypeLen(UInt x)                                            { m_directDepTypeLen = x;                                 }
     
    817841  Void   setDirectDependencyType(Int currLayerId, Int refLayerId, UInt x)       { m_directDependencyType[currLayerId][refLayerId] = x;    }
    818842#endif
    819 #endif
    820843  UInt   getNumProfileTierLevel()                                { return m_numProfileTierLevel; }
    821844  Void   setNumProfileTierLevel(Int x)                           { m_numProfileTierLevel = x;    }
    822845
     846#if !VPS_EXTN_UEV_CODING
    823847  Bool   getMoreOutputLayerSetsThanDefaultFlag()                 { return m_moreOutputLayerSetsThanDefaultFlag;}
    824848  Void   setMoreOutputLayerSetsThanDefaultFlag(Bool x)           { m_moreOutputLayerSetsThanDefaultFlag = x   ;}
     849#endif
    825850
    826851  Int    getNumAddOutputLayerSets()                              { return m_numAddOutputLayerSets; }
    827852  Void   setNumAddOutputLayerSets(Int x)                         { m_numAddOutputLayerSets = x   ; }
    828853
     854#if P0295_DEFAULT_OUT_LAYER_IDC
     855  UInt   getDefaultTargetOutputLayerIdc()                 { return m_defaultTargetOutputLayerIdc;}
     856  Void   setDefaultTargetOutputLayerIdc(UInt x)           { m_defaultTargetOutputLayerIdc = x    ;}
     857#else
    829858#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
    830859  UInt   getDefaultOneTargetOutputLayerIdc()                 { return m_defaultOneTargetOutputLayerIdc;}
     
    834863  Void   setDefaultOneTargetOutputLayerFlag(Bool x)           { m_defaultOneTargetOutputLayerFlag= x    ;}
    835864#endif
     865#endif
    836866  Int    getProfileLevelTierIdx(Int i)                        { return m_profileLevelTierIdx[i]; }
    837867  Void   setProfileLevelTierIdx(Int i, Int x)                 { m_profileLevelTierIdx[i] = x   ; }
    838 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    839868  Bool   getMaxOneActiveRefLayerFlag()                                          { return m_maxOneActiveRefLayerFlag;                      }
    840869  Void   setMaxOneActiveRefLayerFlag(Bool x)                                    { m_maxOneActiveRefLayerFlag = x;                         }
    841 #endif
    842870#if O0062_POC_LSB_NOT_PRESENT_FLAG
    843871  UInt   getPocLsbNotPresentFlag(Int i)                                         { return m_pocLsbNotPresentFlag[i]; }
     
    852880  Void   setCrossLayerIrapAlignFlag(Bool x)                                     { m_crossLayerIrapAlignFlag = x;                         }
    853881#endif
    854 #if JCTVC_M0203_INTERLAYER_PRED_IDC
    855882#if O0225_MAX_TID_FOR_REF_LAYERS
    856883  UInt   getMaxTidIlRefPicsPlus1(Int layerId, Int refLayerId)                     { return m_maxTidIlRefPicsPlus1[layerId][refLayerId];           }
     
    859886  UInt   getMaxTidIlRefPicsPlus1(Int layerId)                     { return m_maxTidIlRefPicsPlus1[layerId];                   }
    860887  Void   setMaxTidIlRefPicsPlus1(Int layerId, UInt maxSublayer)   { m_maxTidIlRefPicsPlus1[layerId] = maxSublayer;            }
    861 #endif
    862888#endif
    863889#if N0120_MAX_TID_REF_PRESENT_FLAG
     
    898924#endif
    899925#if N0160_VUI_EXT_ILP_REF 
    900   Bool  getNumIlpRestrictedRefLayers   ( )                                         { return m_numIlpRestrictedRefLayers        ;}
    901   Void  setNumIlpRestrictedRefLayers   ( Int val )                                 { m_numIlpRestrictedRefLayers         = val;}
     926  Bool  getIlpRestrictedRefLayersFlag   ( )                                        { return m_ilpRestrictedRefLayersFlag        ;}
     927  Void  setIlpRestrictedRefLayersFlag   ( Int val )                                { m_ilpRestrictedRefLayersFlag         = val;}
    902928 
    903929  Int  getMinSpatialSegmentOffsetPlus1( Int currLayerId, Int refLayerId )          { return m_minSpatialSegmentOffsetPlus1[currLayerId][refLayerId];}
     
    9831009  Int     scalTypeToScalIdx( ScalabilityType scalType );
    9841010#endif
     1011#if !P0125_REVERT_VPS_EXTN_OFFSET_TO_RESERVED
    9851012#if VPS_EXTN_OFFSET
    9861013  Int     getExtensionOffset()                 { return m_extensionOffset;   }
    9871014  Void    setExtensionOffset( UInt offset )    { m_extensionOffset = offset; }
    9881015#endif
     1016#endif
    9891017#if O0215_PHASE_ALIGNMENT
    9901018  Bool   getPhaseAlignFlag()                             { return m_phaseAlignFlag; }
     
    10021030  Void    setMaxVpsDecPicBufferingMinus1(Int i, Int k, Int j, Int x) { m_maxVpsDecPicBufferingMinus1[i][k][j] = x;    }
    10031031
     1032#if RESOLUTION_BASED_DPB
     1033  Int     getMaxVpsLayerDecPicBuffMinus1(Int i, Int k, Int j)        { assert(i != 0); return m_maxVpsLayerDecPicBuffMinus1[i][k][j]; }
     1034  Void    setMaxVpsLayerDecPicBuffMinus1(Int i, Int k, Int j, Int x) { m_maxVpsLayerDecPicBuffMinus1[i][k][j] = x;    }
     1035#endif
     1036
    10041037  Int     getMaxVpsNumReorderPics(Int i, Int j)         { assert(i != 0); return m_maxVpsNumReorderPics[i][j]; }
    10051038  Void    setMaxVpsNumReorderPics(Int i, Int j, Int x) { m_maxVpsNumReorderPics[i][j] = x;    }
     
    10101043  Int     getNumSubDpbs(Int i)                          { return m_numSubDpbs[i]; }
    10111044  Void    setNumSubDpbs(Int i, Int x)                   { m_numSubDpbs[i] = x;    }
     1045  Void    determineSubDpbInfoFlags();
    10121046#endif
    10131047
     
    10171051#endif
    10181052
     1053#if !P0307_REMOVE_VPS_VUI_OFFSET
    10191054#if VPS_VUI_OFFSET
    10201055  Int     getVpsVuiOffset()         { return m_vpsVuiOffset; }
    10211056  Void    setVpsVuiOffset(Int x)    { m_vpsVuiOffset = x; }
     1057#endif
     1058#endif
     1059#if P0307_VPS_NON_VUI_EXTENSION
     1060  Int     getVpsNonVuiExtLength()         { return m_vpsNonVuiExtLength; }
     1061  Void    setVpsNonVuiExtLength(Int x)    { m_vpsNonVuiExtLength = x; }
     1062#endif
     1063#if RESOLUTION_BASED_DPB
     1064  Void assignSubDpbIndices();
     1065  Int  getSubDpbAssigned  (Int lsIdx, Int layerIdx) { return m_subDpbAssigned[lsIdx][layerIdx]; }
     1066  Int  findLayerIdxInLayerSet ( Int lsIdx, Int nuhLayerId );
    10221067#endif
    10231068#endif //SVC_EXTENSION
     
    13121357
    13131358#if SVC_EXTENSION
    1314 #if M0463_VUI_EXT_ILP_REF
    1315   Bool        m_interViewMvVertConstraintFlag;
    1316   Int         m_numIlpRestrictedRefLayers        ;
    1317   Int         m_minSpatialSegmentOffsetPlus1[MAX_LAYERS];
    1318   Bool        m_ctuBasedOffsetEnabledFlag   [MAX_LAYERS];
    1319   Int         m_minHorizontalCtuOffsetPlus1 [MAX_LAYERS];
    1320 #endif
    1321 
    13221359  UInt m_layerId;
    1323 
    1324 #if REF_IDX_MFM
    1325 #if !M0457_COL_PICTURE_SIGNALING
    1326   Bool m_bMFMEnabledFlag;
    1327 #endif
    1328 #endif
    13291360  UInt        m_numScaledRefLayerOffsets;
    13301361#if O0098_SCALED_REF_LAYER_ID
     
    14851516
    14861517#if SVC_EXTENSION
    1487 #if M0463_VUI_EXT_ILP_REF
    1488   Void setInterViewMvVertConstraintFlag(Bool val) { m_interViewMvVertConstraintFlag = val; }
    1489   Bool getInterViewMvVertConstraintFlag()         { return m_interViewMvVertConstraintFlag;}
    1490 
    1491   ////  sps_extension_vui_parameters( )
    1492   Void setNumIlpRestrictedRefLayers   ( Int val )        { m_numIlpRestrictedRefLayers         = val;}
    1493   Int  getNumIlpRestrictedRefLayers   ( )                { return m_numIlpRestrictedRefLayers        ;}
    1494 
    1495   Void setMinSpatialSegmentOffsetPlus1( Int i, Int val ) { m_minSpatialSegmentOffsetPlus1[ i ] = val;}
    1496   Int  getMinSpatialSegmentOffsetPlus1( Int i )          { return m_minSpatialSegmentOffsetPlus1[ i ];}
    1497 
    1498   Void setCtuBasedOffsetEnabledFlag   ( Int i, Bool flag ) { m_ctuBasedOffsetEnabledFlag   [ i ] = flag;}
    1499   Bool getCtuBasedOffsetEnabledFlag   ( Int i )            { return m_ctuBasedOffsetEnabledFlag   [ i ];}
    1500 
    1501   Void setMinHorizontalCtuOffsetPlus1 ( Int i, Int val )   { m_minHorizontalCtuOffsetPlus1 [ i ] = val;}
    1502   Int  getMinHorizontalCtuOffsetPlus1 ( Int i )            { return m_minHorizontalCtuOffsetPlus1 [ i ];}
    1503 #endif
    15041518  Void     setLayerId(UInt layerId) { m_layerId = layerId; }
    15051519  UInt     getLayerId() { return m_layerId; }
    1506 #if REF_IDX_MFM
    1507 #if !M0457_COL_PICTURE_SIGNALING
    1508   Void     setMFMEnabledFlag(Bool flag) {m_bMFMEnabledFlag = flag;}
    1509   Bool     getMFMEnabledFlag()          {return m_bMFMEnabledFlag;}
    1510 #endif
    1511 #endif
    15121520  UInt     getNumScaledRefLayerOffsets()  { return m_numScaledRefLayerOffsets; }
    15131521  Void     setNumScaledRefLayerOffsets(Int x)  { m_numScaledRefLayerOffsets = x; }
     
    18891897  TComPic*    m_pcBaseColPic[MAX_LAYERS];
    18901898  TComPicYuv* m_pcFullPelBaseRec[MAX_LAYERS];
    1891 #if M0457_COL_PICTURE_SIGNALING
    18921899  Int         m_numMotionPredRefLayers;
    18931900#if REF_IDX_MFM
     
    18971904  TComPic*    m_pcIlpPic;
    18981905#endif
    1899 #endif
    1900 
    1901 #if JCTVC_M0458_INTERLAYER_RPS_SIG
     1906
    19021907  Bool        m_interLayerPredEnabledFlag;
    19031908  Int         m_activeNumILRRefIdx;        //< Active inter-layer reference pictures
    19041909  Int         m_interLayerPredLayerIdc  [MAX_VPS_LAYER_ID_PLUS1];
    1905 #else
    1906 #if SVC_EXTENSION
    1907   Int         m_numILRRefIdx;       //< for inter-layer reference picture ser
    1908 #endif
    1909 #endif
    1910 #if M0457_IL_SAMPLE_PRED_ONLY_FLAG
    1911   Int         m_numSamplePredRefLayers;
    1912   Bool        m_interLayerSamplePredOnlyFlag;
    1913 #endif
    19141910#if POC_RESET_FLAG
    19151911  Bool        m_bPocResetFlag;
     
    21742170#endif
    21752171
    2176 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    21772172  Int       getActiveNumILRRefIdx     ( )               { return  m_activeNumILRRefIdx; }
    21782173  Void      setActiveNumILRRefIdx     ( Int i )         { m_activeNumILRRefIdx = i;     } 
     
    21832178  Void      setInterLayerPredEnabledFlag     ( Bool   val )    { m_interLayerPredEnabledFlag = val; }
    21842179  Bool      getInterLayerPredEnabledFlag     ()                { return m_interLayerPredEnabledFlag;}
    2185 #else
    2186   Void      setNumILRRefIdx     ( Int i )               { m_numILRRefIdx = i;     }
    2187 #endif
    2188 
    2189 #if M0457_IL_SAMPLE_PRED_ONLY_FLAG
    2190   Int       getNumSamplePredRefLayers      ( )          { return  m_numSamplePredRefLayers;       }
    2191   Void      setNumSamplePredRefLayers      ( Int i )    { m_numSamplePredRefLayers = i;           }
    2192   Bool      getInterLayerSamplePredOnlyFlag( )          { return  m_interLayerSamplePredOnlyFlag; }
    2193   Void      setInterLayerSamplePredOnlyFlag( Bool val ) { m_interLayerSamplePredOnlyFlag = val;   }
    2194 #endif
    2195 
    2196 #if M0457_COL_PICTURE_SIGNALING
     2180
    21972181  Void      setNumMotionPredRefLayers(int i)            { m_numMotionPredRefLayers = i; }
    21982182  Int       getNumMotionPredRefLayers()                 { return m_numMotionPredRefLayers; }
     
    22002184  Void      setMFMEnabledFlag(Bool flag)                { m_bMFMEnabledFlag = flag; }
    22012185  Bool      getMFMEnabledFlag()                         { return m_bMFMEnabledFlag; }
    2202 #if !REMOVE_COL_PICTURE_SIGNALING
    2203   Void      setColRefLayerIdx(Int i)                    { m_colRefLayerIdx = i;     }
    2204   Int       getColRefLayerIdx()                         { return m_colRefLayerIdx;  }
    2205   Void      setAltColIndicationFlag(Bool i)             { m_altColIndicationFlag = i; }
    2206   Bool      getAltColIndicationFlag()                   { return m_altColIndicationFlag; }
    2207   Void      setMotionPredIlp(TComPic *ilpPic)           { m_pcIlpPic = ilpPic; }
    2208   TComPic*  getMotionPredIlp()                          { return m_pcIlpPic; }
    2209 #endif
    2210 #endif
    22112186#endif
    22122187
    22132188  TComPic* getRefPic(TComList<TComPic*>& rcListPic, Int poc) { return xGetRefPic( rcListPic, poc ); }
    22142189
    2215 #if RESTR_CHK
    2216   Bool     isRADL() {  return (m_eNalUnitType == NAL_UNIT_CODED_SLICE_RADL_N || m_eNalUnitType == NAL_UNIT_CODED_SLICE_RADL_R); }
    2217   Bool     isRASL()   {   return (m_eNalUnitType == NAL_UNIT_CODED_SLICE_RASL_N || m_eNalUnitType == NAL_UNIT_CODED_SLICE_RASL_R); }
    2218 #endif
     2190  Bool     isRADL()   { return (m_eNalUnitType == NAL_UNIT_CODED_SLICE_RADL_N || m_eNalUnitType == NAL_UNIT_CODED_SLICE_RADL_R); }
     2191  Bool     isRASL()   { return (m_eNalUnitType == NAL_UNIT_CODED_SLICE_RASL_N || m_eNalUnitType == NAL_UNIT_CODED_SLICE_RASL_R); }
    22192192
    22202193#if POC_RESET_FLAG
  • trunk/source/Lib/TLibCommon/TypeDef.h

    r547 r588  
    4343#define SYNTAX_BYTES                     10      ///< number of bytes taken by syntaxes per 4x4 block [RefIdxL0(1byte), RefIdxL1(1byte), MVxL0(2bytes), MVyL0(2bytes), MVxL1(2bytes), MVyL1(2bytes)]
    4444
     45#if SVC_EXTENSION
     46#define MAX_LAYERS                       8      ///< max number of layers the codec is supposed to handle
     47
    4548#define VPS_VUI_OFFSET                   1      ///< N0085: Signal VPS VUI offset in the VPS extension
    46 
    4749#define RANDOM_ACCESS_SEI_FIX            1
    48 #if SVC_EXTENSION
    49 #define MAX_LAYERS                       2      ///< max number of layers the codec is supposed to handle
    50 
    5150#define O0137_MAX_LAYERID                1      ///< JCTVC-O0137, JCTVC-O0200, JCTVC-O0223: restrict nuh_layer_id and vps_max_layers_minus1
    5251
     52#define P0130_EOB                        1      ///< JCTVC-P0130, set layer Id of EOB NALU to be fixed to 0
     53#define P0307_REMOVE_VPS_VUI_OFFSET      1      ///< JCTVC-P0307, remove implementation related to VPS VUI offset signalling
     54#define P0307_VPS_NON_VUI_EXTENSION      1      ///< JCTVC-P0307, implementation related to NON VUI VPS Extension signalling
     55
     56#define DISCARDABLE_PIC_RPS              1      ///< JCTVC-P0130: Inter-layer RPS and temporal RPS should not contain picture with discardable_flag equal to 1
     57#define VPS_EXTN_UEV_CODING              1      ///< JCTVC-P0306: Code some syntax elements as ue(v), and remove some syntax elements that duplicate behaviour
     58#define CHANGE_NUMSUBDPB_IDX             1      ///< Change index of NumSubDpb from output layer set to layer set, to be more aligned with the Spec
     59#define RESOLUTION_BASED_DPB             1      ///< JCTVC-P0192: Assign layers to sub-DPBs based on the rep_format() signaled in the VPS
     60#define SUB_BITSTREAM_PROPERTY_SEI       1      ///< JCTVC-P0204: Sub-bitstream property SEI message
    5361#define O0109_O0199_FLAGS_TO_VUI         1      ///< JCTVC-O0109, O0199: move single_layer_for_non_irap_flag and higher_layer_flag to vps_vui
    5462#define O0109_VIEW_ID_LEN                1      ///< JCTVC-O0109: view_id_len_minus1 to view_id_len, and add constraint (1<<view_id_len) is greater than or equal to NumViews
     63
     64#define P0048_REMOVE_PROFILE_REF         1      ///< JCTVC-P0048: remove profile_ref_minus1
     65#if !P0048_REMOVE_PROFILE_REF
    5566#define O0109_PROF_REF_MINUS1            1      ///< JCTVC-O0109: constraint that profile_ref_minus1[i] shall be less than or equal to i
     67#endif
     68
     69#define P0295_DEFAULT_OUT_LAYER_IDC      1      ///< JCTVC-P0295: modifify default_one_target_output_layer_idc to default_target_output_layer_idc
    5670#define O0109_DEFAULT_ONE_OUT_LAYER_IDC  1      ///< JCTVC-O0109: default_one_target_output_layer_flag to default_one_target_output_layer_idc
    5771#define O0109_MOVE_VPS_VUI_FLAG          1      ///< JCTVC-O0109: move vps_vui_present_flag before vps_vui_offset
     
    6377#define O0194_JOINT_US_BITSHIFT          1      ///< JCTVC-O0194: Joint Upsampling and bit-shift
    6478#endif
    65 #define O0194_WEIGHTED_PREDICTION_CGS    0      ///< JCTVC-O0194: Weighted prediciton for color gamut scalability
     79#define O0194_WEIGHTED_PREDICTION_CGS    1      ///< JCTVC-O0194: Weighted prediciton for color gamut scalability
    6680#define MFM_ENCCONSTRAINT                1      ///< JCTVC-O0216: Encoder constraint for motion field mapping
    6781#define VPS_NUH_LAYER_ID                 1      ///< JCTVC-N0085: Assert that the nuh_layer_id of VPS NAL unit should be 0
     
    7690
    7791#define SCALINGLIST_INFERRING            1      ///< JCTVC-N0371: inter-layer scaling list
    78 #define M0463_VUI_EXT_ILP_REF            0      ///< JCTVC-M0463: VUI extension inter-layer dependency offset signalling
    7992#define SPS_EXTENSION                    1      ///< Define sps_extension() syntax structure
    8093#if SPS_EXTENSION
    8194#define O0142_CONDITIONAL_SPS_EXTENSION  1      ///< JCTVC-O0142: Conditional SPS extension
    8295#endif
    83 #define VERT_MV_CONSTRAINT               1      ///< Vertical MV component constraint flag
    8496#define SCALABILITY_MASK_E0104           1      ///< JCT3V-E0104: scalability mask for depth
    8597#define LAYER_CTB                        0      ///< enable layer-specific CTB structure
     
    103115#define VPS_EXTN_PROFILE_INFO            1      ///< Include profile information for layer sets in VPS extension
    104116#define VPS_EXTN_DIRECT_REF_LAYERS       1      ///< Include indication of direct dependency of layers in VPS extension
    105 #define M0457_PREDICTION_INDICATIONS     1
    106117#define M0040_ADAPTIVE_RESOLUTION_CHANGE 1
    107118#define VPS_VUI                          1      ///< Include function structure for VPS VUI
     
    117128#endif
    118129#define VPS_VUI_VIDEO_SIGNAL             1      ///< JCTVC-O0118 video signal information
     130#if VPS_VUI_VIDEO_SIGNAL
     131#define VPS_VUI_VIDEO_SIGNAL_MOVE        1      ///< JCTVC-P0076 Move video signal information syntax structure earlier in the VPS VUI
     132#endif
    119133#endif //VPS_VUI
    120134
    121135#endif
    122136
     137#define P0125_REVERT_VPS_EXTN_OFFSET_TO_RESERVED        1   ///< JCTVC-P0125 -- Keep it as a reserved FFFF value --- The following two macros (VPS_EXTN_OFFSET & VPS_EXTN_OFFSET_CALC) will have no effect when this macro is set to 1.
    123138#define VPS_EXTN_OFFSET                  1      ///< implementation of vps_extension_offset syntax element
    124139#define VPS_EXTN_OFFSET_CALC             1      ///< Calculation of VPS extension offset
     
    133148
    134149#define JCTVC_M0259_LAMBDAREFINEMENT     1      ///< JCTVC-M0259: lambda refinement (encoder only optimization)
    135 #define RESTR_CHK                        1      ///< JCTVC-M0208 proposal 1
    136 #define ILP_RAP                          1      ///< JCTVC-M0208 proposal 3
    137150
    138151#define AVC_BASE                         1      ///< YUV BL reading for AVC base SVC
     
    144157#define ENCODER_FAST_MODE                1      ///< JCTVC-L0174: enable encoder fast mode. TestMethod 1 is enabled by setting to 1 and TestMethod 2 is enable by setting to 2. By default it is set to 1.
    145158#define REF_IDX_MFM                      1      ///< JCTVC-L0336: motion vector mapping of inter-layer reference picture
    146 #define JCTVC_M0458_INTERLAYER_RPS_SIG   1      ///< implementation of JCTVC-L0178
    147 #if JCTVC_M0458_INTERLAYER_RPS_SIG
    148159#define MAX_ONE_RESAMPLING_DIRECT_LAYERS 1      ///< Allow maximum of one resampling process for direct reference layers
    149160#define MOTION_RESAMPLING_CONSTRAINT     1      ///< JCTVC-N0108: Allow maximum of one motion resampling process for direct reference layers, and use motion inter-layer prediction from the same layer as texture inter-layer prediction.
    150 #endif
    151 #define JCTVC_M0203_INTERLAYER_PRED_IDC  1      ///< JCTVC-M0203: implementation of Inter-layer Prediction Indication
    152 #if JCTVC_M0203_INTERLAYER_PRED_IDC
    153161#define EARLY_REF_PIC_MARKING            1      ///< Decoded picture marking of sub-layer non-reference pictures
    154162#define N0120_MAX_TID_REF_PRESENT_FLAG   1      ///< JCTVC-N0120: max_tid_ref_pics_plus1_present_flag
     
    156164#define O0225_MAX_TID_FOR_REF_LAYERS     1
    157165#define O0225_TID_BASED_IL_RPS_DERIV     1
    158 
    159166#define VPS_TSLAYERS                     1      ///< JCTVC-O0120 signal max temporal sub-layers for each layer
    160167#define TSLAYERS_IL_RPS                  1      ///< JCTVC-O0120 IL RPS based on max temporal sub-layers
    161 #endif
     168#define P0079_DERIVE_NUMACTIVE_REF_PICS  1      ///< JCTVC-P0079 Modification of derivation of variable NumActiveRefLayerPics
    162169#if REF_IDX_MFM
    163 #define REMOVE_COL_PICTURE_SIGNALING     1      ///< JCTVC-N0107: remove alternative collocated picture signalling
    164 #define M0457_COL_PICTURE_SIGNALING      1
    165170#define N0139_POSITION_ROUNDING_OFFSET   1      ///< JCTVC-N0139: offset for collocated block in motion mapping
    166 #endif
    167 
    168 #if !VPS_EXTN_DIRECT_REF_LAYERS || !M0457_PREDICTION_INDICATIONS || !JCTVC_M0458_INTERLAYER_RPS_SIG
    169 #define M0457_IL_SAMPLE_PRED_ONLY_FLAG   0      ///< shall be 0, JCTVC-N0107
    170 #else
    171 #define M0457_IL_SAMPLE_PRED_ONLY_FLAG   0      ///< shall be 0, JCTVC-N0107
    172171#endif
    173172
     
    190189
    191190#define VIEW_ID_RELATED_SIGNALING        1      ///< Introduce syntax elements view_id and view_id_val
    192 #define M0043_LAYERS_PRESENT_SEI         0      ///< JCTVC-M0043: add layers present SEI. Macro shall be equal to 0 according to the JCTVC-N0174 discussion. The code is to be removed.
     191#define LAYERS_NOT_PRESENT_SEI           1      ///< JCTVC-M0043: add layers not present SEI.
    193192#define N0383_IL_CONSTRAINED_TILE_SETS_SEI  1
    194193#define N0065_LAYER_POC_ALIGNMENT        1
     
    252251#define MAX_VPS_OP_SETS_PLUS1                     1024
    253252#define MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1  1
     253#endif
     254
     255#if SUB_BITSTREAM_PROPERTY_SEI
     256#define MAX_SUB_STREAMS                           1024
    254257#endif
    255258
Note: See TracChangeset for help on using the changeset viewer.