Changeset 738 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComSlice.h


Ignore:
Timestamp:
10 Dec 2013, 13:50:12 (10 years ago)
Author:
tech
Message:

Merged HTM-9.0-dev0@731. (MV-HEVC 6 HLS)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TComSlice.h

    r724 r738  
    6262// ====================================================================================================================
    6363
     64#if H_MV_6_HRD_O0164_15
     65class TComVPS;
     66#endif
    6467/// Reference Picture Set class
    6568class TComReferencePictureSet
     
    403406
    404407#if H_MV
     408
     409#if H_MV_6_PS_O0118_33
     410class TComVideoSignalInfo
     411{
     412private:
     413  Int  m_videoVpsFormat;
     414  Bool m_videoFullRangeVpsFlag;
     415  Int  m_colourPrimariesVps;
     416  Int  m_transferCharacteristicsVps;
     417  Int  m_matrixCoeffsVps;
     418public:
     419  Void setVideoVpsFormat( Int  val ) { m_videoVpsFormat = val; }
     420  Int  getVideoVpsFormat(  ) { return m_videoVpsFormat; }
     421
     422  Void setVideoFullRangeVpsFlag( Bool flag ) { m_videoFullRangeVpsFlag = flag; }
     423  Bool getVideoFullRangeVpsFlag(  ) { return m_videoFullRangeVpsFlag; }
     424
     425  Void setColourPrimariesVps( Int  val ) { m_colourPrimariesVps = val; }
     426  Int  getColourPrimariesVps(  ) { return m_colourPrimariesVps; }
     427
     428  Void setTransferCharacteristicsVps( Int  val ) { m_transferCharacteristicsVps = val; }
     429  Int  getTransferCharacteristicsVps(  ) { return m_transferCharacteristicsVps; }
     430
     431  Void setMatrixCoeffsVps( Int  val ) { m_matrixCoeffsVps = val; }
     432  Int  getMatrixCoeffsVps(  ) { return m_matrixCoeffsVps; }
     433};
     434#endif
     435#if H_MV_6_HRD_O0164_15
     436class TComVpsVuiBspHrdParameters
     437{
     438private:
     439  Int  m_vpsNumBspHrdParametersMinus1;
     440  Bool m_bspCprmsPresentFlag[MAX_NUM_BSP_HRD_PARAMETERS];
     441  Int  m_numBitstreamPartitions[MAX_VPS_OP_SETS_PLUS1];
     442  Bool m_layerInBspFlag[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_LAYERS];
     443  Int  m_numBspSchedCombinations[MAX_VPS_OP_SETS_PLUS1];
     444  Int  m_bspCombHrdIdx[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_BSP_SCHED_COMBINATION];
     445  Int  m_bspCombSchedIdx[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_BSP_SCHED_COMBINATION];
     446  TComHRD* m_hrdParameters[MAX_NUM_BSP_HRD_PARAMETERS];
     447public:
     448
     449  Void setVpsNumBspHrdParametersMinus1( Int  val ) { m_vpsNumBspHrdParametersMinus1 = val; }
     450  Int  getVpsNumBspHrdParametersMinus1(  ) { return m_vpsNumBspHrdParametersMinus1; }
     451
     452  Void setBspCprmsPresentFlag( Int i, Bool flag ) { m_bspCprmsPresentFlag[i] = flag; }
     453  Bool getBspCprmsPresentFlag( Int i ) { return m_bspCprmsPresentFlag[i]; }
     454
     455  Void setNumBitstreamPartitions( Int h, Int  val ) { m_numBitstreamPartitions[h] = val; }
     456  Int  getNumBitstreamPartitions( Int h ) { return m_numBitstreamPartitions[h]; }
     457
     458  Void setLayerInBspFlag( Int h, Int i, Int j, Bool flag ) { m_layerInBspFlag[h][i][j] = flag; }
     459  Bool getLayerInBspFlag( Int h, Int i, Int j ) { return m_layerInBspFlag[h][i][j]; }
     460  Void checkLayerInBspFlag ( TComVPS* vps, Int h ); 
     461
     462  Void setNumBspSchedCombinations( Int h, Int  val ) { m_numBspSchedCombinations[h] = val; }
     463  Int  getNumBspSchedCombinations( Int h ) { return m_numBspSchedCombinations[h]; }
     464
     465  Void setBspCombHrdIdx( Int h, Int i, Int j, Int  val ) { m_bspCombHrdIdx[h][i][j] = val; }
     466  Int  getBspCombHrdIdx( Int h, Int i, Int j ) { return m_bspCombHrdIdx[h][i][j]; }
     467
     468  Void setBspCombSchedIdx( Int h, Int i, Int j, Int  val ) { m_bspCombSchedIdx[h][i][j] = val; }
     469  Int  getBspCombSchedIdx( Int h, Int i, Int j ) { return m_bspCombSchedIdx[h][i][j]; }
     470
     471  Void setHrdParametermeters( Int k, TComHRD* val  ) {  m_hrdParameters[k] = val; };
     472  TComHRD* getHrdParametermeters( Int k ) {  return m_hrdParameters[k]; };
     473};
     474
     475#endif
    405476class TComVPSVUI
    406477{
    407478private:
     479#if H_MV_6_PS_O0223_29
     480  Bool m_crossLayerPicTypeAlignedFlag;
     481  Bool m_crossLayerIrapAlignedFlag;
     482#endif
    408483  Bool m_bitRatePresentVpsFlag;
    409484  Bool m_picRatePresentVpsFlag;
     
    414489  Int  m_constantPicRateIdc          [MAX_VPS_OP_SETS_PLUS1][MAX_TLAYER];
    415490  Int  m_avgPicRate                  [MAX_VPS_OP_SETS_PLUS1][MAX_TLAYER];
     491#if H_MV_6_O0226_37
     492  Bool m_tilesNotInUseFlag;
     493  Bool m_tilesInUseFlag              [MAX_NUM_LAYERS];
     494  Bool m_loopFilterNotAcrossTilesFlag[MAX_NUM_LAYERS];
     495#endif 
    416496  Bool m_tileBoundariesAlignedFlag   [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
     497#if H_MV_6_O0226_37
     498  Bool m_wppNotInUseFlag;
     499  Bool m_wppInUseFlag                [MAX_NUM_LAYERS];
     500#endif
    417501  Bool m_ilpRestrictedRefLayersFlag;
    418502  Int  m_minSpatialSegmentOffsetPlus1[MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    419503  Bool m_ctuBasedOffsetEnabledFlag   [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    420504  Int  m_minHorizontalCtuOffsetPlus1 [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
     505#if H_MV_6_PS_O0118_33
     506  Bool m_videoSignalInfoIdxPresentFlag;
     507  Int  m_vpsNumVideoSignalInfoMinus1;
     508  TComVideoSignalInfo* m_videoSignalInfo[MAX_NUM_VIDEO_SIGNAL_INFO];   
     509  Int  m_vpsVideoSignalInfoIdx       [MAX_NUM_VIDEO_SIGNAL_INFO];
     510#endif
     511#if H_MV_6_HRD_O0164_15
     512  Bool m_vpsVuiBspHrdPresentFlag;
     513  TComVpsVuiBspHrdParameters* m_vpsVuiBspHrdParameters;
     514#endif
    421515
    422516public:
    423   TComVPSVUI();;
     517  TComVPSVUI();
     518  ~TComVPSVUI();
     519#if H_MV_6_PS_O0223_29
     520  Void setCrossLayerPicTypeAlignedFlag( Bool flag ) { m_crossLayerPicTypeAlignedFlag = flag; }
     521  Bool getCrossLayerPicTypeAlignedFlag(  ) { return m_crossLayerPicTypeAlignedFlag; }
     522
     523  Void setCrossLayerIrapAlignedFlag( Bool flag ) { m_crossLayerIrapAlignedFlag = flag; }
     524  Bool getCrossLayerIrapAlignedFlag(  ) { return m_crossLayerIrapAlignedFlag; }
     525#endif
    424526
    425527  Void setBitRatePresentVpsFlag( Bool flag ) { m_bitRatePresentVpsFlag = flag; }
     
    447549  Int  getAvgPicRate( Int i, Int j ) { return m_avgPicRate[i][j]; }
    448550
     551#if H_MV_6_O0226_37
     552  Void setTilesNotInUseFlag( Bool flag ) { m_tilesNotInUseFlag = flag; }
     553  Bool getTilesNotInUseFlag(  ) { return m_tilesNotInUseFlag; }
     554
     555  Void setTilesInUseFlag( Int i, Bool flag ) { m_tilesInUseFlag[i] = flag; }
     556  Bool getTilesInUseFlag( Int i ) { return m_tilesInUseFlag[i]; }
     557
     558  Void setLoopFilterNotAcrossTilesFlag( Int i, Int  val ) { m_loopFilterNotAcrossTilesFlag[i] = val; }
     559  Bool getLoopFilterNotAcrossTilesFlag( Int i ) { return m_loopFilterNotAcrossTilesFlag[i]; }
     560#endif
     561
    449562  Void setTileBoundariesAlignedFlag( Int i, Int j, Bool flag ) { m_tileBoundariesAlignedFlag[i][j] = flag; }
    450563  Bool getTileBoundariesAlignedFlag( Int i, Int j ) { return m_tileBoundariesAlignedFlag[i][j]; }
    451564
     565#if H_MV_6_O0226_37
     566  Void setWppNotInUseFlag( Bool flag ) { m_wppNotInUseFlag = flag; }
     567  Bool getWppNotInUseFlag(  ) { return m_wppNotInUseFlag; }
     568
     569  Void setWppInUseFlag( Int i, Bool flag ) { m_wppInUseFlag[i] = flag; }
     570  Bool getWppInUseFlag( Int i ) { return m_wppInUseFlag[i]; }
     571#endif
     572
    452573  Void setIlpRestrictedRefLayersFlag( Bool flag ) { m_ilpRestrictedRefLayersFlag = flag; }
    453574  Bool getIlpRestrictedRefLayersFlag(  ) { return m_ilpRestrictedRefLayersFlag; }
     
    462583  Int  getMinHorizontalCtuOffsetPlus1( Int i, Int j ) { return m_minHorizontalCtuOffsetPlus1[i][j]; }
    463584
     585#if H_MV_6_PS_O0118_33
     586  Void setVideoSignalInfoIdxPresentFlag( Bool flag ) { m_videoSignalInfoIdxPresentFlag = flag; }
     587  Bool getVideoSignalInfoIdxPresentFlag(  ) { return m_videoSignalInfoIdxPresentFlag; }
     588
     589  Void    setVideoSignalInfo( Int i, TComVideoSignalInfo* val )                        { m_videoSignalInfo[i] = val;  } 
     590  TComVideoSignalInfo* getVideoSignalInfo( Int i )                                     { return m_videoSignalInfo[i]; }
     591
     592  Void setVpsNumVideoSignalInfoMinus1( Int  val ) { m_vpsNumVideoSignalInfoMinus1 = val; }
     593  Int  getVpsNumVideoSignalInfoMinus1(  ) { return m_vpsNumVideoSignalInfoMinus1; }
     594
     595  Void setVpsVideoSignalInfoIdx( Int i, Int  val ) { m_vpsVideoSignalInfoIdx[i] = val; }
     596  Int  getVpsVideoSignalInfoIdx( Int i ) { return m_vpsVideoSignalInfoIdx[i]; }
     597#endif
     598
     599#if H_MV_6_HRD_O0164_15
     600  Void setVpsVuiBspHrdPresentFlag( Bool flag ) { m_vpsVuiBspHrdPresentFlag = flag; }
     601  Bool getVpsVuiBspHrdPresentFlag(  ) { return m_vpsVuiBspHrdPresentFlag; }
     602
     603  Void setVpsVuiBspHrdParameters( TComVpsVuiBspHrdParameters* val) {  m_vpsVuiBspHrdParameters = val; }
     604  TComVpsVuiBspHrdParameters* getVpsVuiBspHrdParameters(  ) { return m_vpsVuiBspHrdParameters; }
     605#endif
    464606};
    465607
     
    467609{
    468610private:
     611#if H_MV_6_PS_REP_FORM_18_19_20
     612  Bool m_chromaAndBitDepthVpsPresentFlag;
     613#endif
    469614  Int  m_chromaFormatVpsIdc;
    470615  Bool m_separateColourPlaneVpsFlag;
     
    477622  TComRepFormat() { }; 
    478623
     624#if H_MV_6_PS_REP_FORM_18_19_20
     625  Void setChromaAndBitDepthVpsPresentFlag( Bool flag ) { m_chromaAndBitDepthVpsPresentFlag = flag; }
     626  Bool getChromaAndBitDepthVpsPresentFlag(  ) { return m_chromaAndBitDepthVpsPresentFlag; }
     627  Void checkChromaAndBitDepthVpsPresentFlag( Int i ) { assert( i != 0 || m_chromaAndBitDepthVpsPresentFlag ); } // The value of chroma_and_bit_depth_vps_present_flag of the first rep_format( ) syntax structure in the VPS shall be equal to 1. 
     628  Void inferChromaAndBitDepth( TComRepFormat* prevRepFormat, Bool encoderFlag );
     629#endif
     630
    479631  Void setChromaFormatVpsIdc( Int  val ) { m_chromaFormatVpsIdc = val; }
    480632  Int  getChromaFormatVpsIdc(  ) { return m_chromaFormatVpsIdc; }
     
    494646  Void setBitDepthVpsChromaMinus8( Int  val ) { m_bitDepthVpsChromaMinus8 = val; }
    495647  Int  getBitDepthVpsChromaMinus8(  ) { return m_bitDepthVpsChromaMinus8; }
     648};
     649#endif
     650
     651#if H_MV_6_HRD_O0217_13
     652class TComDpbSize
     653{
     654private:
     655  Bool  m_subLayerFlagInfoPresentFlag[MAX_VPS_OUTPUTLAYER_SETS];
     656  Bool  m_subLayerDpbInfoPresentFlag [MAX_VPS_OUTPUTLAYER_SETS][MAX_TLAYER];
     657  Int   m_maxVpsDecPicBufferingMinus1[MAX_VPS_OUTPUTLAYER_SETS][MAX_NUM_LAYER_IDS][MAX_TLAYER];;
     658  Int   m_maxVpsNumReorderPics       [MAX_VPS_OUTPUTLAYER_SETS][MAX_TLAYER];
     659  Int   m_maxVpsLatencyIncreasePlus1 [MAX_VPS_OUTPUTLAYER_SETS][MAX_TLAYER];
     660
     661public:
     662  TComDpbSize( )
     663  {
     664    for (Int i = 0; i < MAX_VPS_OUTPUTLAYER_SETS; i++ )
     665    {     
     666      m_subLayerFlagInfoPresentFlag[i]  = false;
     667
     668      for (Int j = 0; j < MAX_TLAYER; j++  )
     669      {       
     670        m_subLayerDpbInfoPresentFlag [i][j] = ( j == 0) ;
     671        m_maxVpsNumReorderPics       [i][j] = 0;
     672        m_maxVpsLatencyIncreasePlus1 [i][j] = 0;
     673
     674        for (Int k = 0; k < MAX_NUM_LAYER_IDS; k++ )
     675        {
     676          m_maxVpsDecPicBufferingMinus1[i][k][j] = 0;
     677        }
     678      }
     679    } 
     680  } 
     681
     682  Void setSubLayerFlagInfoPresentFlag( Int i, Bool flag ) { m_subLayerFlagInfoPresentFlag[i] = flag; }
     683  Bool getSubLayerFlagInfoPresentFlag( Int i ) { return m_subLayerFlagInfoPresentFlag[i]; }
     684
     685  Void setSubLayerDpbInfoPresentFlag( Int i, Int j, Bool flag ) { m_subLayerDpbInfoPresentFlag[i][j] = flag; }
     686  Bool getSubLayerDpbInfoPresentFlag( Int i, Int j ) { return m_subLayerDpbInfoPresentFlag[i][j]; }
     687
     688  Void setMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j, Int  val ) { m_maxVpsDecPicBufferingMinus1[i][k][j] = val; }
     689  Int  getMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j ) { return m_maxVpsDecPicBufferingMinus1[i][k][j]; }
     690
     691  Void setMaxVpsNumReorderPics( Int i, Int j, Int  val ) { m_maxVpsNumReorderPics[i][j] = val; }
     692  Int  getMaxVpsNumReorderPics( Int i, Int j ) { return m_maxVpsNumReorderPics[i][j]; }
     693
     694  Void setMaxVpsLatencyIncreasePlus1( Int i, Int j, Int  val ) { m_maxVpsLatencyIncreasePlus1[i][j] = val; }
     695  Int  getMaxVpsLatencyIncreasePlus1( Int i, Int j ) { return m_maxVpsLatencyIncreasePlus1[i][j]; }
    496696};
    497697#endif
     
    547747  Int         m_layerIdInNuh             [MAX_NUM_LAYER_IDS];
    548748  Int         m_dimensionId              [MAX_NUM_LAYER_IDS][MAX_NUM_SCALABILITY_TYPES]; 
     749
     750#if H_MV_6_PS_O0109_22
     751  Int         m_viewIdLen;
     752#else
    549753  Int         m_viewIdLenMinus1;
     754#endif
    550755  Int         m_viewIdVal                [MAX_NUM_LAYERS];
    551756  Bool        m_directDependencyFlag     [MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS];
     757#if H_MV_6_ILDSD_O0120_26
     758  Bool        m_vpsSubLayersMaxMinus1PresentFlag;
     759  Int         m_subLayersVpsMaxMinus1    [MAX_NUM_LAYERS];
     760#endif
    552761  Bool        m_maxTidRefPresentFlag;
     762#if H_MV_6_ILDDS_O0225_30
     763  Int         m_maxTidIlRefPicsPlus1     [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
     764#else
    553765  Int         m_maxTidIlRefPicPlus1      [MAX_NUM_LAYERS];
     766#endif
    554767  Bool        m_allRefLayersActiveFlag;
    555768  Int         m_vpsNumberLayerSetsMinus1;
     
    559772  Bool        m_moreOutputLayerSetsThanDefaultFlag;
    560773  Int         m_numAddOutputLayerSetsMinus1;   
     774#if H_MV_6_PS_0109_25
     775  Int         m_defaultOneTargetOutputLayerIdc;
     776#else
    561777  Bool        m_defaultOneTargetOutputLayerFlag;
     778#endif
    562779  Int         m_outputLayerSetIdxMinus1  [MAX_VPS_OUTPUTLAYER_SETS]; 
    563780  Bool        m_outputLayerFlag          [MAX_VPS_OUTPUTLAYER_SETS][MAX_VPS_NUH_LAYER_ID_PLUS1];
    564781  Int         m_profileLevelTierIdx      [MAX_VPS_OUTPUTLAYER_SETS ];
     782#if H_MV_6_GEN_0153_28
     783  Bool        m_altOutputLayerFlag;
     784#endif
    565785  Bool        m_repFormatIdxPresentFlag;
    566786  Int         m_vpsNumRepFormatsMinus1;
     
    568788  TComRepFormat* m_repFormat             [MAX_NUM_LAYERS];
    569789  Bool        m_maxOneActiveRefLayerFlag;       
     790#if H_MV_6_MISC_O0062_31
     791  Bool        m_pocLsbNotPresentFlag     [MAX_NUM_LAYERS];
     792#endif
     793
     794#if H_MV_6_HRD_O0217_13
     795  TComDpbSize* m_dpbSize;
     796#endif
     797#if !H_MV_6_PS_O0223_29       
    570798  Bool        m_crossLayerIrapAlignedFlag;
     799#endif
    571800  Int         m_directDepTypeLenMinus2;         
     801#if H_MV_6_PS_O0096_21
     802  Bool        m_defaultDirectDependencyFlag;
     803  Int         m_defaultDirectDependencyType;
     804#endif
    572805  Bool        m_vpsVuiPresentFlag;
    573806  TComVPSVUI* m_vpsVUI;
     
    588821  Int         m_motionPredRefLayerId     [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    589822  Int         m_viewIndex                [MAX_NUM_LAYERS   ];
     823 
     824#if H_MV_6_HRD_O0217_13
     825  std::vector< std::vector< Int> >       m_targetDecLayerIdLists;   //[TargetOptLayerSetIdx][i]
     826  std::vector< std::vector< Int> >       m_targetOptLayerIdLists;
     827  std::vector< std::vector< Int> >       m_layerSetLayerIdList;
     828#endif
     829
     830
    590831  Int         xGetDimBitOffset( Int j );
    591832 
     
    649890  UInt    getMaxTLayers  ()                   { return m_uiMaxTLayers;   }
    650891  Void    setMaxTLayers  (UInt t)             { m_uiMaxTLayers = t; }
    651  
     892#if H_MV_6_HRD_O0164_15
     893  UInt    getMaxSubLayersMinus1()             { return m_uiMaxTLayers - 1;  }  // For consistency with draft spec
     894#endif
    652895#if H_MV   
    653896  UInt    getMaxLayersMinus1()                { return m_uiMaxLayersMinus1;  };
     
    724967  Int     getDimensionId( Int layerIdInVps, Int scalIdx )                  { return m_dimensionId[layerIdInVps][scalIdx]; }
    725968
     969#if H_MV_6_PS_O0109_22
     970  Void    setViewIdLen( Int  val )                                         { m_viewIdLen = val; }
     971  Int     getViewIdLen(  )                                                 { return m_viewIdLen; }
     972#else
    726973  Void    setViewIdLenMinus1( Int  val )                                   { m_viewIdLenMinus1 = val; }
    727974  Int     getViewIdLenMinus1(  )                                           { return m_viewIdLenMinus1; }
     975#endif
    728976
    729977  Void    setViewIdVal( Int viewOrderIndex, Int  val )                     { m_viewIdVal[viewOrderIndex] = val; }
     
    731979  Void    setDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Bool val ) { m_directDependencyFlag[depLayeridInVps][refLayeridInVps] = val;  }
    732980  Bool    getDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps )           { return m_directDependencyFlag[depLayeridInVps][refLayeridInVps]; }
    733 
     981#if H_MV_6_ILDSD_O0120_26
     982  Void    setVpsSubLayersMaxMinus1PresentFlag( Bool flag )                 { m_vpsSubLayersMaxMinus1PresentFlag = flag; }
     983  Bool    getVpsSubLayersMaxMinus1PresentFlag(  )                          { return m_vpsSubLayersMaxMinus1PresentFlag; }
     984  Void    setSubLayersVpsMaxMinus1( Int i, Int  val )                      { m_subLayersVpsMaxMinus1[i] = val; }
     985  Int     getSubLayersVpsMaxMinus1( Int i )                                { return m_subLayersVpsMaxMinus1[i]; }
     986  Void    checkSubLayersVpsMaxMinus1( Int i )                              { assert( m_subLayersVpsMaxMinus1[i] >= 0 && m_subLayersVpsMaxMinus1[i] <= m_uiMaxTLayers - 1 ); }
     987#endif
    734988  Void    setMaxTidRefPresentFlag( Bool flag )                             { m_maxTidRefPresentFlag = flag; }
    735989  Bool    getMaxTidRefPresentFlag(  )                                      { return m_maxTidRefPresentFlag; }
     990#if H_MV_6_ILDDS_O0225_30
     991  Void    setMaxTidIlRefPicsPlus1( Int i, Int j, Int  val )                { m_maxTidIlRefPicsPlus1[i][j] = val; }
     992  Int     getMaxTidIlRefPicsPlus1( Int i, Int j )                          { return m_maxTidIlRefPicsPlus1[i][j]; }
     993#else
    736994  Void    setMaxTidIlRefPicPlus1( Int layerIdInVps, Int val )              { m_maxTidIlRefPicPlus1[ layerIdInVps ] = val;  }
    737995  Int     getMaxTidIlRefPicPlus1( Int layerIdInVps )                       { return m_maxTidIlRefPicPlus1[ layerIdInVps ]; }
     996#endif
    738997  Void    setAllRefLayersActiveFlag( Bool flag )                           { m_allRefLayersActiveFlag = flag; }
    739998  Bool    getAllRefLayersActiveFlag(  )                                    { return m_allRefLayersActiveFlag; }
     
    7491008  Void    setProfileRefMinus1( Int profileTierLevelIdx, Int val )          { m_profileRefMinus1[ profileTierLevelIdx ] = val;  }
    7501009  Int     getProfileRefMinus1( Int profileTierLevelIdx )                   { return m_profileRefMinus1[ profileTierLevelIdx ]; }
    751 
     1010#if H_MV_6_PS_O0109_23
     1011  Void    checkProfileRefMinus1( Int i )                                   { assert( getProfileRefMinus1( i ) + 1 <= i ); };  //  The value of profile_ref_minus1[ i ] + 1 shall be less than or equal to i.
     1012#endif
    7521013  Void    setMoreOutputLayerSetsThanDefaultFlag( Bool flag )               { m_moreOutputLayerSetsThanDefaultFlag = flag; }
    7531014  Bool    getMoreOutputLayerSetsThanDefaultFlag()                          { return m_moreOutputLayerSetsThanDefaultFlag; }
     
    7561017  Int     getNumAddOutputLayerSetsMinus1( )                                { return m_numAddOutputLayerSetsMinus1; }
    7571018 
     1019#if H_MV_6_PS_0109_25 
     1020  Void    setDefaultOneTargetOutputLayerIdc( Int  val )                    { m_defaultOneTargetOutputLayerIdc = val; }
     1021  Int     getDefaultOneTargetOutputLayerIdc(  )                            { return m_defaultOneTargetOutputLayerIdc; }
     1022  Void    checkDefaultOneTargetOutputLayerIdc( )                           { assert( m_defaultOneTargetOutputLayerIdc >= 0 && m_defaultOneTargetOutputLayerIdc <= 1 ); }
     1023#else
    7581024  Void    setDefaultOneTargetOutputLayerFlag( Bool flag )                  { m_defaultOneTargetOutputLayerFlag = flag; }
    7591025  Bool    getDefaultOneTargetOutputLayerFlag( )                            { return m_defaultOneTargetOutputLayerFlag; }
     1026#endif
    7601027 
    7611028  Void    setOutputLayerSetIdxMinus1( Int outLayerSetIdx, Int val )        { m_outputLayerSetIdxMinus1[ outLayerSetIdx ]  = val; }
     
    7641031  Void    setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag )       { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; }
    7651032  Bool    getOutputLayerFlag( Int outLayerSetIdx, Int i )                  { return m_outputLayerFlag[ outLayerSetIdx ][ i ]; }
     1033#if H_MV_6_HRD_O0217_13
     1034  Bool    inferOutputLayerFlag( Int layerSetIdx, Int i )                   { return ( getDefaultOneTargetOutputLayerIdc( ) == 0 || ( ( getDefaultOneTargetOutputLayerIdc( ) == 1 ) && ( i == m_layerSetLayerIdList[layerSetIdx].size() - 1  ) ));  }
     1035#endif
    7661036
    7671037  Void    setProfileLevelTierIdx( Int outLayerSetIdx, Int val )            { m_profileLevelTierIdx[ outLayerSetIdx  = val ]; }
    7681038  Int     getProfileLevelTierIdx( Int outLayerSetIdx )                     { return m_profileLevelTierIdx[ outLayerSetIdx ]; }
     1039#if H_MV_6_GEN_0153_28
     1040  Void    setAltOutputLayerFlag( Bool flag )                               { m_altOutputLayerFlag = flag; }
     1041  Bool    getAltOutputLayerFlag(  )                                        { return m_altOutputLayerFlag; }
     1042#endif
    7691043
    7701044  Void    setRepFormatIdxPresentFlag( Bool flag )                          { m_repFormatIdxPresentFlag = flag; }
     
    7811055  Void    setMaxOneActiveRefLayerFlag( Bool flag)                          { m_maxOneActiveRefLayerFlag = flag; }
    7821056  Bool    getMaxOneActiveRefLayerFlag( )                                   { return m_maxOneActiveRefLayerFlag; }
     1057
     1058#if H_MV_6_HRD_O0217_13
     1059  Void    setDpbSize( TComDpbSize* val )                                   { assert( m_dpbSize != 0 ); m_dpbSize = val; }
     1060  TComDpbSize* getDpbSize( )                                               { return m_dpbSize;}
     1061#endif
     1062
     1063#if H_MV_6_MISC_O0062_31
     1064  Void    setPocLsbNotPresentFlag( Int i, Bool flag )                      { m_pocLsbNotPresentFlag[i] = flag; }
     1065  Bool    getPocLsbNotPresentFlag( Int i )                                 { return m_pocLsbNotPresentFlag[i]; }
     1066#endif
     1067#if !H_MV_6_PS_O0223_29 
    7831068  Void    setCrossLayerIrapAlignedFlag( Bool flag )                        { m_crossLayerIrapAlignedFlag = flag; }
    7841069  Bool    getCrossLayerIrapAlignedFlag(  )                                 { return m_crossLayerIrapAlignedFlag; }
     1070#endif
    7851071  Void    setDirectDepTypeLenMinus2( Int val)                              { m_directDepTypeLenMinus2 = val; }
    7861072  Int     getDirectDepTypeLenMinus2( )                                     { return m_directDepTypeLenMinus2; }
    7871073
     1074#if H_MV_6_PS_O0096_21
     1075  Void    setDefaultDirectDependencyFlag( Bool flag )                      { m_defaultDirectDependencyFlag = flag; }
     1076  Bool    getDefaultDirectDependencyFlag(  )                               { return m_defaultDirectDependencyFlag; }
     1077
     1078  Void    setDefaultDirectDependencyType( Int  val )                       { m_defaultDirectDependencyType = val; }
     1079  Int     getDefaultDirectDependencyType(  )                               { return m_defaultDirectDependencyType; }
     1080#endif
    7881081  Void    setDirectDependencyType( Int depLayeridInVps, Int refLayeridInVps, Int val) { m_directDependencyType[ depLayeridInVps ][ refLayeridInVps ] = val; }
    7891082  Int     getDirectDependencyType( Int depLayeridInVps, Int refLayeridInVps)   { return m_directDependencyType[ depLayeridInVps ][ refLayeridInVps ]; }
     
    7971090
    7981091  Int     getScalabilityId ( Int layerIdInVps, ScalabilityType scalType );
     1092#if H_MV_6_FIX_GET_VIEW_ID
     1093  Int     getViewId        ( Int layerIdInNuh )                            { return m_viewIdVal[ getViewIndex( layerIdInNuh )]; }
     1094#else
    7991095  Int     getViewId        ( Int layerIdInNuh )                            { return m_viewIdVal[ getViewIndex( getLayerIdInVps( layerIdInNuh) )]; }
     1096#endif
    8001097  Void    setRefLayers();
    8011098
     
    8101107Int     getProfileLevelTierIdxLen()                                      { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); };       
    8111108
    812   Int     getNumLayersInIdList              ( Int lsIdx );;
     1109  Int     getNumLayersInIdList ( Int lsIdx );
     1110
     1111#if H_MV_6_HRD_O0217_13
     1112  Int     getNumOutputLayerSets() ;   
     1113  Int     getNumSubDpbs( Int i )                                           { return getNumLayersInIdList( i ); }; 
     1114  Bool    isOutputLayer( Int outLayerSetIdx, Int layerIdInNuh );   
     1115#if H_MV_6_HRD_O0217_13
     1116  Void    deriveLayerSetLayerIdList();
     1117  Void    deriveTargetLayerIdLists();
     1118  std::vector<Int> getTargetDecLayerIdList( Int targetOptLayerSetIdx )     { return m_targetDecLayerIdLists[targetOptLayerSetIdx]; };
     1119  std::vector<Int> getTargetOptLayerIdList( Int targetOptLayerSetIdx )     { return m_targetDecLayerIdLists[targetOptLayerSetIdx]; };
     1120#endif
     1121#endif
     1122
    8131123
    8141124  // inference
     
    10961406  TimingInfo* getTimingInfo() { return &m_timingInfo; }
    10971407
     1408#if H_MV_6_PS_O0118_33
     1409  Void inferVideoSignalInfo( TComVPS* vps, Int layerIdCurr )
     1410  {
     1411    if ( layerIdCurr == 0 || !vps->getVpsVuiPresentFlag() )
     1412    {
     1413      return;
     1414    }
     1415
     1416    TComVPSVUI* vpsVUI = vps->getVPSVUI();
     1417    assert( vpsVUI != NULL ); 
     1418
     1419    TComVideoSignalInfo* videoSignalInfo = vpsVUI->getVideoSignalInfo( vpsVUI->getVpsVideoSignalInfoIdx( vps->getLayerIdInVps( layerIdCurr ) ) );
     1420    assert( videoSignalInfo != NULL );
     1421
     1422    setVideoFormat            ( videoSignalInfo->getVideoVpsFormat            () );
     1423    setVideoFullRangeFlag     ( videoSignalInfo->getVideoFullRangeVpsFlag     () );
     1424    setColourPrimaries        ( videoSignalInfo->getColourPrimariesVps        () );
     1425    setTransferCharacteristics( videoSignalInfo->getTransferCharacteristicsVps() );
     1426    setMatrixCoefficients     ( videoSignalInfo->getMatrixCoeffsVps           () );     
     1427  }
     1428#endif
    10981429};
    10991430
     
    11811512  TComVPS*    m_pcVPS;
    11821513  // SPS
     1514#if H_MV_6_PSEM_O0142_3
     1515  Bool        m_spsExtensionFlag;
     1516  Bool        m_spsExtensionTypeFlag[PS_EX_T_MAX_NUM];
     1517#endif
    11831518  Bool        m_spsInferScalingListFlag;
    11841519  Int         m_spsScalingListRefLayerId;
    11851520  Bool        m_updateRepFormatFlag;
     1521#if H_MV_6_PS_REP_FORM_18_19_20 
     1522  Int         m_spsRepFormatIdx;
     1523#endif
    11861524  // SPS Extension
    11871525  Bool        m_interViewMvVertConstraintFlag;
     1526#if H_MV_6_SHVC_O0098_36
     1527  Int         m_numScaledRefLayerOffsets;
     1528  Int         m_scaledRefLayerId          [MAX_NUM_SCALED_REF_LAYERS];
     1529  Int         m_scaledRefLayerLeftOffset  [MAX_NUM_LAYERS];
     1530  Int         m_scaledRefLayerTopOffset   [MAX_NUM_LAYERS];
     1531  Int         m_scaledRefLayerRightOffset [MAX_NUM_LAYERS];
     1532  Int         m_scaledRefLayerBottomOffset[MAX_NUM_LAYERS];
     1533#endif
    11881534#endif
    11891535#if H_3D
     
    13221668  TComPTL* getPTL()     { return &m_pcPTL; }
    13231669#if H_MV
     1670#if H_MV_6_PSEM_O0142_3
     1671  Void setSpsExtensionFlag( Bool flag ) { m_spsExtensionFlag = flag; }
     1672  Bool getSpsExtensionFlag( )  { return m_spsExtensionFlag; }
     1673
     1674  Void setSpsExtensionTypeFlag( Int i, Bool flag ) { m_spsExtensionTypeFlag[i] = flag; }
     1675  Bool getSpsExtensionTypeFlag( Int i ) { return m_spsExtensionTypeFlag[i]; }
     1676#endif
    13241677  Void      setVPS          ( TComVPS* pcVPS ) { m_pcVPS = pcVPS; }
    13251678  TComVPS*  getVPS          () { return m_pcVPS; }
     
    13331686  Void setUpdateRepFormatFlag( Bool flag )     { m_updateRepFormatFlag = flag; }
    13341687  Bool getUpdateRepFormatFlag(  )              { return m_updateRepFormatFlag; }
     1688#if H_MV_6_PS_REP_FORM_18_19_20
     1689  Void setSpsRepFormatIdx( Int  val )          { m_spsRepFormatIdx = val; }
     1690  Int  getSpsRepFormatIdx(  )                  { return m_spsRepFormatIdx; }
     1691#endif
    13351692  // SPS Extension
    13361693  Void setInterViewMvVertConstraintFlag(Bool val) { m_interViewMvVertConstraintFlag = val; }
    13371694  Bool getInterViewMvVertConstraintFlag()         { return m_interViewMvVertConstraintFlag;}
     1695
     1696#if H_MV_6_SHVC_O0098_36
     1697  Void setNumScaledRefLayerOffsets( Int  val )    { m_numScaledRefLayerOffsets = val; }
     1698  Int  getNumScaledRefLayerOffsets(  )            { return m_numScaledRefLayerOffsets; }
     1699
     1700  Void setScaledRefLayerId( Int i, Int  val )     { m_scaledRefLayerId[i] = val; }
     1701  Int  getScaledRefLayerId( Int i )               { return m_scaledRefLayerId[i]; }
     1702
     1703  Void setScaledRefLayerLeftOffset( Int j, Int  val ) { m_scaledRefLayerLeftOffset[j] = val; }
     1704  Int  getScaledRefLayerLeftOffset( Int j )           { return m_scaledRefLayerLeftOffset[j]; }
     1705
     1706  Void setScaledRefLayerTopOffset( Int j, Int  val )  { m_scaledRefLayerTopOffset[j] = val; }
     1707  Int  getScaledRefLayerTopOffset( Int j )            { return m_scaledRefLayerTopOffset[j]; }
     1708
     1709  Void setScaledRefLayerRightOffset( Int j, Int  val ) { m_scaledRefLayerRightOffset[j] = val; }
     1710  Int  getScaledRefLayerRightOffset( Int j )           { return m_scaledRefLayerRightOffset[j]; }
     1711
     1712  Void setScaledRefLayerBottomOffset( Int j, Int  val ) { m_scaledRefLayerBottomOffset[j] = val; }
     1713  Int  getScaledRefLayerBottomOffset( Int j )           { return m_scaledRefLayerBottomOffset[j]; }
     1714#endif
    13381715  // Inference
    13391716  Void inferRepFormat( TComVPS* vps, Int layerIdCurr );
     
    17362113// Additional slice header syntax elements
    17372114  Bool       m_pocResetFlag;
     2115#if H_MV_6_RALS_O0149_11
     2116  Bool       m_crossLayerBlaFlag;
     2117#endif
    17382118  Bool       m_discardableFlag;
    17392119  Bool       m_interLayerPredEnabledFlag;
     
    20732453// Additional slice header syntax elements
    20742454
     2455#if H_MV_6_RALS_O0149_11
     2456  Void setCrossLayerBlaFlag( Bool flag ) { m_crossLayerBlaFlag = flag; }
     2457  Bool getCrossLayerBlaFlag(  ) { return m_crossLayerBlaFlag; }
     2458  Void checkCrossLayerBlaFlag ( )
     2459  {
     2460    // cross_layer_bla_flag shall be equal to 0 for pictures with nal_unit_type not equal to IDR_W_RADL or IDR_N_LP or with nuh_layer_id not equal to 0.
     2461    if ( getLayerId() != 0 || getNalUnitType() != NAL_UNIT_CODED_SLICE_IDR_W_RADL || getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP )
     2462    {
     2463      assert( m_crossLayerBlaFlag == 0 );
     2464    }
     2465  }
     2466#endif
     2467
    20752468  Void setPocResetFlag( Bool flag ) { m_pocResetFlag = flag; }
    20762469  Bool getPocResetFlag(  ) { return m_pocResetFlag; }
     
    20912484  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
    20922485  Int  getInterLayerPredLayerIdcLen    ( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     2486
     2487#if H_MV_6_ILDDS_ILREFPICS_27_34
     2488  Int  getRefLayerPicFlag( Int i );
     2489  Int  getRefLayerPicIdc ( Int j );
     2490  Int  getNumRefLayerPics( );
     2491#endif
    20932492
    20942493  Int  getNumActiveRefLayerPics( );
Note: See TracChangeset for help on using the changeset viewer.