Ignore:
Timestamp:
13 Feb 2014, 22:58:51 (10 years ago)
Author:
tech
Message:

Integrated following MV-HEVC HLS 7 items:

H_MV_HLS7_GEN Stub for further integrations (not tested)
H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
Output layer sets, various

(VPS/P0300/alt output layer flag) #27 Change alt output layer flag to be signalled within the loop of output layer sets, from JCTVC-P0300-v2. Decision: Adopt.
(VPS/P0156/Num of output_layer_flag) #10 Proposal 3: The output_layer_flag[ i ][ j ] is signalled for j equal to 0 to NumLayersInIdList[ lsIdx ] inclusive. It was remarked that we might be able to just assume that the top layer is always output; however, this was not entirely clear , so the safe thing to do may be to also send the flag for this layer.
(VPS/P0295/Default output layer sets) #5 Discussion from (P0110). Decision: Three-state approach (text in P0295, decoder shall allow 3 to be present and shall treat 3 the same as the value 2).

H_MV_HLS_7_HRD_P0156_7 (HRD/P0156/MaxSubLayersInLayerSetMinus1) #7 Proposal 1: signal, in the VPS extension, the DPB parameters for an output layer set for sub-DPBs only up to the maximum temporal sub-layers in the corresponding layer set
H_MV_HLS_7_VPS_P0048_14
(VPS/P0048/profile_ref_minus1 rem) #14 Remove profile_ref_minus1 from the VPS extension, from JCTVC-P0048
H_MV_HLS_7_VPS_P0076_15 (VPS/P0076/video signal info move) #15 Move video signal information syntax structure earlier in the VPS VUI.
H_MV_HLS_7_SPS_P0155_16_32
(SPS/P0155/sps_sub_layer_ordering_info) #16, #32 Not signal the sps_max_num_reorder_pics[], sps_max_latency_increase_plus1[], and sps_max_dec_pic_buffering_minus1[] syntax elements in the SPS when nuh_layer_id > 0.
H_MV_HLS_7_GEN_P0166_PPS_EXTENSION (GEN/P0166/pps_extension) #17 Add PPS extension type flags for conditional presence of syntax extensions per extension type, aligned with the SPS extension type flags, from JCTVC-P0166. Further align the SPS extension type flags syntax between RExt and MV-HEVC/SHVC
H_MV_HLS_7_FIX_SET_DPB_SIZE
Fix derivation dpb size parameters
H_MV_HLS_7_RESERVED_FLAGS Added flags

(SPS/P0312/SHVC reserved flag) The flag will be used for the syntax vert_phase_position_enable_flag in SHVC draft
(VPS/O0215/SHVC reserved flag): this flag will be used for the syntax cross_layer_phase_alignment_flag in SHVC draft.
(VPS VUI/O0199,P0312/SHVC reserved flags) the 3 reserved bits will be used for the syntaxes single_layer_for_non_irap_flag, higher_layer_irap_skip_flag and vert_phase_position_not_in_use_flag in SHVC draft.

H_MV_FIX_VPS_LAYER_ID_NOT_EQUAL_ZERO Discard VPS with nuh_layer_Id > 0
H_MV_HLS_7_MISC_P0130_EOS
(MISC/P0130/EOS NAL layer id) #19 Require that end of bitstream NAL unit shall have nuh_layer_id equal to 0, from JCTVC-P0130. Decoders shall allow an end of bitstream NAL unit with nuh_layer_id > 0 to be present, and shall ignore the NAL unit.
H_MV_HLS_7_MISC_P0182_13 (MISC/P0182/BL PS Compatibility flag) #13 Define the flag (in VPS VUI) with the proposed semantics, without specifying an associated extraction process. Editors to select the position in the VPS VUI.
H_MV_HLS_7_MISC_P0068_21
(MISC/P0068/all irap idr flag) #21 Add flag in VUI to indicate that all IRAP pictures are IDRs and that all layer pictures in an AU are IDR aligned, from JCTVC-P0068 proposal 1.
H_MV_HLS_7_FIX_INFER_CROSS_LAYER_IRAP_ALIGNED_FLAG Fix inference of cross_layer_irap_aligned_flag
H_MV_HLS_7_MISC_P0079_18
(MISC/P0079/NumActiveRefLayerPics) #18 Modification of derivation of variable NumActiveRefLayerPics.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-10.0-dev0/source/Lib/TLibCommon/TComSlice.h

    r852 r854  
    473473  Bool m_crossLayerPicTypeAlignedFlag;
    474474  Bool m_crossLayerIrapAlignedFlag;
     475#if H_MV_HLS_7_MISC_P0068_21
     476  Bool m_allLayersIdrAlignedFlag;
     477#endif
    475478  Bool m_bitRatePresentVpsFlag;
    476479  Bool m_picRatePresentVpsFlag;
     
    481484  Int  m_constantPicRateIdc          [MAX_VPS_OP_SETS_PLUS1][MAX_TLAYER];
    482485  Int  m_avgPicRate                  [MAX_VPS_OP_SETS_PLUS1][MAX_TLAYER];
     486#if H_MV_HLS_7_VPS_P0076_15
     487  Bool m_videoSignalInfoIdxPresentFlag;
     488  Int  m_vpsNumVideoSignalInfoMinus1;
     489  TComVideoSignalInfo* m_videoSignalInfo[MAX_NUM_VIDEO_SIGNAL_INFO];   
     490  Int  m_vpsVideoSignalInfoIdx       [MAX_NUM_VIDEO_SIGNAL_INFO];
     491#endif
    483492  Bool m_tilesNotInUseFlag;
    484493  Bool m_tilesInUseFlag              [MAX_NUM_LAYERS];
     
    491500  Bool m_ctuBasedOffsetEnabledFlag   [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    492501  Int  m_minHorizontalCtuOffsetPlus1 [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
     502#if !H_MV_HLS_7_VPS_P0076_15
    493503  Bool m_videoSignalInfoIdxPresentFlag;
    494504  Int  m_vpsNumVideoSignalInfoMinus1;
    495505  TComVideoSignalInfo* m_videoSignalInfo[MAX_NUM_VIDEO_SIGNAL_INFO];   
    496506  Int  m_vpsVideoSignalInfoIdx       [MAX_NUM_VIDEO_SIGNAL_INFO];
     507#endif
    497508  Bool m_vpsVuiBspHrdPresentFlag;
    498509  TComVpsVuiBspHrdParameters* m_vpsVuiBspHrdParameters;
     510#if H_MV_HLS_7_MISC_P0182_13
     511  Bool m_baseLayerParameterSetCompatibilityFlag[MAX_NUM_LAYERS];
     512#endif
    499513
    500514public:
     
    507521  Bool getCrossLayerIrapAlignedFlag(  ) { return m_crossLayerIrapAlignedFlag; }
    508522
     523#if H_MV_HLS_7_MISC_P0068_21
     524  Void setAllLayersIdrAlignedFlag( Bool flag ) { m_allLayersIdrAlignedFlag = flag; }
     525  Bool getAllLayersIdrAlignedFlag(  ) { return m_allLayersIdrAlignedFlag; }
     526#endif
     527
    509528  Void setBitRatePresentVpsFlag( Bool flag ) { m_bitRatePresentVpsFlag = flag; }
    510529  Bool getBitRatePresentVpsFlag(  ) { return m_bitRatePresentVpsFlag; }
     
    531550  Int  getAvgPicRate( Int i, Int j ) { return m_avgPicRate[i][j]; }
    532551
     552#if H_MV_HLS_7_VPS_P0076_15
     553  Void setVideoSignalInfoIdxPresentFlag( Bool flag ) { m_videoSignalInfoIdxPresentFlag = flag; }
     554  Bool getVideoSignalInfoIdxPresentFlag(  ) { return m_videoSignalInfoIdxPresentFlag; }
     555
     556  Void    setVideoSignalInfo( Int i, TComVideoSignalInfo* val )                        { m_videoSignalInfo[i] = val;  } 
     557  TComVideoSignalInfo* getVideoSignalInfo( Int i )                                     { return m_videoSignalInfo[i]; }
     558
     559  Void setVpsNumVideoSignalInfoMinus1( Int  val ) { m_vpsNumVideoSignalInfoMinus1 = val; }
     560  Int  getVpsNumVideoSignalInfoMinus1(  ) { return m_vpsNumVideoSignalInfoMinus1; }
     561
     562  Void setVpsVideoSignalInfoIdx( Int i, Int  val ) { m_vpsVideoSignalInfoIdx[i] = val; }
     563  Int  getVpsVideoSignalInfoIdx( Int i ) { return m_vpsVideoSignalInfoIdx[i]; }
     564#endif
     565
    533566  Void setTilesNotInUseFlag( Bool flag ) { m_tilesNotInUseFlag = flag; }
    534567  Bool getTilesNotInUseFlag(  ) { return m_tilesNotInUseFlag; }
     
    560593  Void setMinHorizontalCtuOffsetPlus1( Int i, Int j, Int  val ) { m_minHorizontalCtuOffsetPlus1[i][j] = val; }
    561594  Int  getMinHorizontalCtuOffsetPlus1( Int i, Int j ) { return m_minHorizontalCtuOffsetPlus1[i][j]; }
    562 
     595#if !H_MV_HLS_7_VPS_P0076_15
    563596  Void setVideoSignalInfoIdxPresentFlag( Bool flag ) { m_videoSignalInfoIdxPresentFlag = flag; }
    564597  Bool getVideoSignalInfoIdxPresentFlag(  ) { return m_videoSignalInfoIdxPresentFlag; }
     
    572605  Void setVpsVideoSignalInfoIdx( Int i, Int  val ) { m_vpsVideoSignalInfoIdx[i] = val; }
    573606  Int  getVpsVideoSignalInfoIdx( Int i ) { return m_vpsVideoSignalInfoIdx[i]; }
    574 
     607#endif
    575608  Void setVpsVuiBspHrdPresentFlag( Bool flag ) { m_vpsVuiBspHrdPresentFlag = flag; }
    576609  Bool getVpsVuiBspHrdPresentFlag(  ) { return m_vpsVuiBspHrdPresentFlag; }
     
    578611  Void setVpsVuiBspHrdParameters( TComVpsVuiBspHrdParameters* val) {  m_vpsVuiBspHrdParameters = val; }
    579612  TComVpsVuiBspHrdParameters* getVpsVuiBspHrdParameters(  ) { return m_vpsVuiBspHrdParameters; }
     613
     614#if H_MV_HLS_7_MISC_P0182_13
     615  Void setBaseLayerParameterSetCompatibilityFlag( Int i, Bool flag ) { m_baseLayerParameterSetCompatibilityFlag[i] = flag; }
     616  Bool getBaseLayerParameterSetCompatibilityFlag( Int i ) { return m_baseLayerParameterSetCompatibilityFlag[i]; }
     617#endif
     618
     619#if H_MV_HLS_7_FIX_INFER_CROSS_LAYER_IRAP_ALIGNED_FLAG
     620  Void inferVpsVui( Bool encoderFlag )
     621  {
     622    // inference of syntax elements that differ from default inference (as done in constructor), when VPS VUI is not present
     623    if (!encoderFlag )
     624    {
     625      setCrossLayerIrapAlignedFlag( false );
     626    }
     627    else
     628    {
     629      assert( !getCrossLayerIrapAlignedFlag() );
     630    }
     631
     632  }
     633#endif
    580634};
    581635
     
    626680  Int   m_maxVpsDecPicBufferingMinus1[MAX_VPS_OUTPUTLAYER_SETS][MAX_NUM_LAYER_IDS][MAX_TLAYER];;
    627681  Int   m_maxVpsNumReorderPics       [MAX_VPS_OUTPUTLAYER_SETS][MAX_TLAYER];
     682#if H_MV_HLS7_GEN
     683  Int  m_maxVpsLayerDecPicBuffMinus1[TO_BE_SPECIFIED][TO_BE_SPECIFIED][TO_BE_SPECIFIED];
     684#endif
    628685  Int   m_maxVpsLatencyIncreasePlus1 [MAX_VPS_OUTPUTLAYER_SETS][MAX_TLAYER];
    629686
     
    660717  Void setMaxVpsNumReorderPics( Int i, Int j, Int  val ) { m_maxVpsNumReorderPics[i][j] = val; }
    661718  Int  getMaxVpsNumReorderPics( Int i, Int j ) { return m_maxVpsNumReorderPics[i][j]; }
    662 
     719#if H_MV_HLS7_GEN
     720  Void setMaxVpsLayerDecPicBuffMinus1( Int i, Int k, Int j, Int  val ) { m_maxVpsLayerDecPicBuffMinus1[i][k][j] = val; }
     721  Int  getMaxVpsLayerDecPicBuffMinus1( Int i, Int k, Int j ) { return m_maxVpsLayerDecPicBuffMinus1[i][k][j]; }
     722#endif
    663723  Void setMaxVpsLatencyIncreasePlus1( Int i, Int j, Int  val ) { m_maxVpsLatencyIncreasePlus1[i][j] = val; }
    664724  Int  getMaxVpsLatencyIncreasePlus1( Int i, Int j ) { return m_maxVpsLatencyIncreasePlus1[i][j]; }
     
    708768  /// VPS EXTENSION SYNTAX ELEMENTS
    709769  Bool        m_avcBaseLayerFlag;
     770#if !H_MV_HLS7_GEN
    710771  Int         m_vpsVuiOffset;
     772#endif
    711773  Bool        m_splittingFlag;
    712774  Bool        m_scalabilityMaskFlag          [MAX_NUM_SCALABILITY_TYPES];
     
    724786  Int         m_maxTidIlRefPicsPlus1     [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    725787  Bool        m_allRefLayersActiveFlag;
     788#if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    726789  Int         m_vpsNumberLayerSetsMinus1;
     790#endif
    727791  Int         m_vpsNumProfileTierLevelMinus1;   
    728792  Bool        m_vpsProfilePresentFlag    [MAX_VPS_OP_SETS_PLUS1];
     793
     794#if !H_MV_HLS_7_VPS_P0048_14
    729795  Int         m_profileRefMinus1         [MAX_VPS_PROFILE_TIER_LEVEL];
     796#endif
     797#if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
     798  Int         m_numAddOutputLayerSets;   
     799  Int         m_defaultTargetOutputLayerIdc;
     800#else 
    730801  Bool        m_moreOutputLayerSetsThanDefaultFlag;
    731802  Int         m_numAddOutputLayerSetsMinus1;   
    732803  Int         m_defaultOneTargetOutputLayerIdc;
     804#endif
     805
    733806  Int         m_outputLayerSetIdxMinus1  [MAX_VPS_OUTPUTLAYER_SETS]; 
    734807  Bool        m_outputLayerFlag          [MAX_VPS_OUTPUTLAYER_SETS][MAX_VPS_NUH_LAYER_ID_PLUS1];
    735808  Int         m_profileLevelTierIdx      [MAX_VPS_OUTPUTLAYER_SETS ];
     809#if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
     810  Bool        m_altOutputLayerFlag       [MAX_VPS_OUTPUTLAYER_SETS];
     811#else
    736812  Bool        m_altOutputLayerFlag;
     813#endif
    737814  Bool        m_repFormatIdxPresentFlag;
    738815  Int         m_vpsNumRepFormatsMinus1;
     
    740817  TComRepFormat* m_repFormat             [MAX_NUM_LAYERS];
    741818  Bool        m_maxOneActiveRefLayerFlag;       
     819#if H_MV_HLS7_GEN
     820  Bool        m_vpsPocLsbAlignedFlag;
     821#endif
    742822  Bool        m_pocLsbNotPresentFlag     [MAX_NUM_LAYERS];
    743823
     
    746826  Bool        m_defaultDirectDependencyFlag;
    747827  Int         m_defaultDirectDependencyType;
     828 
     829#if H_MV_HLS7_GEN
     830  Int         m_directDependencyType     [MAX_NUM_LAYERS] [MAX_NUM_LAYERS];
     831  Int         m_vpsNonVuiExtensionLength;
     832#endif
    748833  Bool        m_vpsVuiPresentFlag;
    749834  TComVPSVUI* m_vpsVUI;
     835#if !H_MV_HLS7_GEN
    750836  Int         m_directDependencyType     [MAX_NUM_LAYERS] [MAX_NUM_LAYERS];
     837#endif
    751838
    752839  // VPS EXTENSION SEMANTICS VARIABLES
     
    886973  Bool    getAvcBaseLayerFlag()                                            { return m_avcBaseLayerFlag; }
    887974
     975#if !H_MV_HLS7_GEN
    888976  Void    setVpsVuiOffset( Int  val )                                      { m_vpsVuiOffset = val; }
    889977  Int     getVpsVuiOffset(  )                                              { return m_vpsVuiOffset; }
     978#endif
    890979
    891980  Void    setSplittingFlag( Bool val )                                     { m_splittingFlag = val;  }
     
    9291018  Void    setAllRefLayersActiveFlag( Bool flag )                           { m_allRefLayersActiveFlag = flag; }
    9301019  Bool    getAllRefLayersActiveFlag(  )                                    { return m_allRefLayersActiveFlag; }
     1020 
     1021#if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    9311022  Void    setVpsNumberLayerSetsMinus1( Int val )                           { m_vpsNumberLayerSetsMinus1 = val;  }
    9321023  Int     getVpsNumberLayerSetsMinus1( )                                   { return m_vpsNumberLayerSetsMinus1; }
     1024#endif
    9331025 
    9341026  Void    setVpsNumProfileTierLevelMinus1( Int val )                       { m_vpsNumProfileTierLevelMinus1 = val;  }
     
    9381030  Bool    getVpsProfilePresentFlag( Int idx )                              { return m_vpsProfilePresentFlag[idx]; }
    9391031
     1032#if !H_MV_HLS_7_VPS_P0048_14
    9401033  Void    setProfileRefMinus1( Int profileTierLevelIdx, Int val )          { m_profileRefMinus1[ profileTierLevelIdx ] = val;  }
    9411034  Int     getProfileRefMinus1( Int profileTierLevelIdx )                   { return m_profileRefMinus1[ profileTierLevelIdx ]; }
    9421035  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.
     1036#endif
     1037
     1038#if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    9431039  Void    setMoreOutputLayerSetsThanDefaultFlag( Bool flag )               { m_moreOutputLayerSetsThanDefaultFlag = flag; }
    9441040  Bool    getMoreOutputLayerSetsThanDefaultFlag()                          { return m_moreOutputLayerSetsThanDefaultFlag; }
    945  
     1041#endif
     1042 
     1043#if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
     1044  Void    setNumAddOutputLayerSets( Int val )                              { m_numAddOutputLayerSets = val; }
     1045  Int     getNumAddOutputLayerSets( )                                      { return m_numAddOutputLayerSets; }
     1046#else
    9461047  Void    setNumAddOutputLayerSetsMinus1( Int val )                        { m_numAddOutputLayerSetsMinus1 = val; }
    9471048  Int     getNumAddOutputLayerSetsMinus1( )                                { return m_numAddOutputLayerSetsMinus1; }
    948  
     1049#endif
     1050 
     1051#if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
     1052  Void    setDefaultTargetOutputLayerIdc( Int  val )                       { m_defaultTargetOutputLayerIdc = val; }
     1053  Int     getDefaultTargetOutputLayerIdc(  )                               { return m_defaultTargetOutputLayerIdc; }   
     1054#else
    9491055  Void    setDefaultOneTargetOutputLayerIdc( Int  val )                    { m_defaultOneTargetOutputLayerIdc = val; }
    9501056  Int     getDefaultOneTargetOutputLayerIdc(  )                            { return m_defaultOneTargetOutputLayerIdc; }
    9511057  Void    checkDefaultOneTargetOutputLayerIdc( )                           { assert( m_defaultOneTargetOutputLayerIdc >= 0 && m_defaultOneTargetOutputLayerIdc <= 1 ); }
     1058#endif
    9521059 
    9531060  Void    setOutputLayerSetIdxMinus1( Int outLayerSetIdx, Int val )        { m_outputLayerSetIdxMinus1[ outLayerSetIdx ]  = val; }
     
    9561063  Void    setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag )       { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; }
    9571064  Bool    getOutputLayerFlag( Int outLayerSetIdx, Int i )                  { return m_outputLayerFlag[ outLayerSetIdx ][ i ]; }
     1065#if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
     1066  Bool    inferOutputLayerFlag( Int i, Int j )                             
     1067  {
     1068    Bool outputLayerFlag;
     1069    switch ( getDefaultTargetOutputLayerIdc( ) )
     1070    {
     1071    case 0:
     1072      outputLayerFlag = true;
     1073      break;
     1074    case 1:
     1075      outputLayerFlag = ( j == m_layerSetLayerIdList[ getLayerSetIdxForOutputLayerSet( i ) ].size() - 1 ); 
     1076      break;
     1077    case 2:
     1078      if ( i == 0 && j == 0)
     1079      {     
     1080        outputLayerFlag = true;  // This is a software only fix for a bug in the spec. In spec outputLayerFlag neither present nor inferred.
     1081      }
     1082      else
     1083      {
     1084        assert( 0 );
     1085      }
     1086      break;
     1087    default:     
     1088      assert( 0 );
     1089      break;
     1090    }
     1091    return outputLayerFlag;
     1092  }
     1093#else
    9581094  Bool    inferOutputLayerFlag( Int layerSetIdx, Int i )                   { return ( getDefaultOneTargetOutputLayerIdc( ) == 0 || ( ( getDefaultOneTargetOutputLayerIdc( ) == 1 ) && ( i == m_layerSetLayerIdList[layerSetIdx].size() - 1  ) ));  }
     1095#endif
    9591096
    9601097  Void    setProfileLevelTierIdx( Int outLayerSetIdx, Int val )            { m_profileLevelTierIdx[ outLayerSetIdx ] = val; }
    9611098  Int     getProfileLevelTierIdx( Int outLayerSetIdx )                     { return m_profileLevelTierIdx[ outLayerSetIdx ]; }
     1099 
     1100#if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
     1101  Void    setAltOutputLayerFlag( Int i, Bool flag )                        { m_altOutputLayerFlag[i] = flag; }
     1102  Bool    getAltOutputLayerFlag( Int i )                                   { return m_altOutputLayerFlag[i]; }
     1103#else
    9621104  Void    setAltOutputLayerFlag( Bool flag )                               { m_altOutputLayerFlag = flag; }
    9631105  Bool    getAltOutputLayerFlag(  )                                        { return m_altOutputLayerFlag; }
     1106#endif
    9641107
    9651108  Void    setRepFormatIdxPresentFlag( Bool flag )                          { m_repFormatIdxPresentFlag = flag; }
     
    9771120  Bool    getMaxOneActiveRefLayerFlag( )                                   { return m_maxOneActiveRefLayerFlag; }
    9781121
     1122#if H_MV_HLS7_GEN
     1123  Void    setVpsPocLsbAlignedFlag( Bool flag )                             { m_vpsPocLsbAlignedFlag = flag; }
     1124  Bool    getVpsPocLsbAlignedFlag(  )                                      { return m_vpsPocLsbAlignedFlag; }
     1125#endif
     1126
    9791127  Void    setDpbSize( TComDpbSize* val )                                   { assert( m_dpbSize != 0 ); m_dpbSize = val; }
    9801128  TComDpbSize* getDpbSize( )                                               { return m_dpbSize;}
     
    9921140  Void    setDirectDependencyType( Int depLayeridInVps, Int refLayeridInVps, Int val) { m_directDependencyType[ depLayeridInVps ][ refLayeridInVps ] = val; }
    9931141  Int     getDirectDependencyType( Int depLayeridInVps, Int refLayeridInVps)   { return m_directDependencyType[ depLayeridInVps ][ refLayeridInVps ]; }
     1142
     1143#if H_MV_HLS7_GEN
     1144  Void    setVpsNonVuiExtensionLength( Int  val )                          { m_vpsNonVuiExtensionLength = val; }
     1145  Int     getVpsNonVuiExtensionLength(  )                                  { return m_vpsNonVuiExtensionLength; }
     1146#endif
     1147
    9941148  Void    setVpsVuiPresentFlag( Bool flag )                                { m_vpsVuiPresentFlag = flag; }
    9951149  Bool    getVpsVuiPresentFlag(  )                                         { return m_vpsVuiPresentFlag; }
     
    10211175  Bool    isOutputLayer( Int outLayerSetIdx, Int layerIdInNuh );   
    10221176  Void    deriveLayerSetLayerIdList();
     1177
     1178#if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
     1179  Int     getLayerSetIdxForOutputLayerSet( Int i )                         { return ( i <= getVpsNumLayerSetsMinus1() ) ? i  : getOutputLayerSetIdxMinus1( i ) + 1 ; };
     1180
     1181  Void    initTargetLayerIdLists  ( );
     1182  Void    deriveTargetLayerIdList ( Int i );
     1183
     1184  std::vector<Int> getTargetDecLayerIdList( Int targetDecLayerSetIdx )     { return m_targetDecLayerIdLists[targetDecLayerSetIdx]; };
     1185  std::vector<Int> getTargetOptLayerIdList( Int targetOptLayerSetIdx )     { return m_targetOptLayerIdLists[targetOptLayerSetIdx]; };
     1186
     1187  Int     getNumOutputLayersInOutputLayerSet( Int i )                      { return (Int) getTargetOptLayerIdList( i ).size(); };
     1188  Int     getOlsHighestOutputLayerId( Int i )                              { return getTargetOptLayerIdList( i ).back(); }; 
     1189#else
    10231190  Void    deriveTargetLayerIdLists();
    10241191  std::vector<Int> getTargetDecLayerIdList( Int targetOptLayerSetIdx )     { return m_targetDecLayerIdLists[targetOptLayerSetIdx]; };
    10251192  std::vector<Int> getTargetOptLayerIdList( Int targetOptLayerSetIdx )     { return m_targetDecLayerIdLists[targetOptLayerSetIdx]; };
    1026 
     1193#endif
     1194
     1195#if H_MV_HLS_7_HRD_P0156_7
     1196  Int     getMaxSubLayersInLayerSetMinus1( Int i )
     1197  {
     1198    Int maxSLMinus1 = 0;
     1199    Int optLsIdx    = getLayerSetIdxForOutputLayerSet( i );
     1200    for( Int k = 0; k < getNumLayersInIdList( optLsIdx ); k++ )
     1201    {
     1202      Int lId = m_layerSetLayerIdList[optLsIdx][k];
     1203      maxSLMinus1 = std::max( maxSLMinus1, getSubLayersVpsMaxMinus1( getLayerIdInVps( lId ) ));
     1204    }
     1205    return maxSLMinus1;
     1206  }
     1207#endif
    10271208
    10281209  // inference
     
    10491230  UInt getCamParPrecision    ()  { return m_uiCamParPrecision; }
    10501231  Bool getCamParPresent      ( Int viewIndex )  { return m_bCamParPresent[viewIndex]; }
     1232#if FIX_CAM_PARS_COLLECTOR
     1233  Void setCamParPresent      ( Int viewIndex, Bool val )  { m_bCamParPresent[viewIndex] = val; }
     1234#endif
    10511235  Bool hasCamParInSliceHeader( Int viewIndex )  { return m_bCamParInSliceHeader[viewIndex]; }
    10521236  Void setHasCamParInSliceHeader( Int viewIndex, Bool b )  { m_bCamParInSliceHeader[viewIndex] = b; }
     
    17531937  Bool m_ppsInferScalingListFlag;
    17541938  Int  m_ppsScalingListRefLayerId;
     1939
     1940#if H_MV_HLS_7_GEN_P0166_PPS_EXTENSION
     1941  Bool m_ppsExtensionTypeFlag[PS_EX_T_MAX_NUM];
     1942#endif
     1943#if H_MV_HLS7_GEN
     1944  Bool m_pocResetInfoPresentFlag;
     1945#endif
    17551946#endif
    17561947
     
    18942085  Void setPpsScalingListRefLayerId( Int  val ) { m_ppsScalingListRefLayerId = val; }
    18952086  Int  getPpsScalingListRefLayerId(  ) { return m_ppsScalingListRefLayerId; }
     2087
     2088#if H_MV_HLS_7_GEN_P0166_PPS_EXTENSION
     2089  Void setPpsExtensionTypeFlag( Int i, Bool flag ) { m_ppsExtensionTypeFlag[i] = flag; }
     2090  Bool getPpsExtensionTypeFlag( Int i ) { return m_ppsExtensionTypeFlag[i]; }
     2091#endif
     2092
     2093#if H_MV_HLS7_GEN
     2094  Void setPocResetInfoPresentFlag( Bool flag ) { m_pocResetInfoPresentFlag = flag; }
     2095  Bool getPocResetInfoPresentFlag(  ) { return m_pocResetInfoPresentFlag; }
     2096#endif
     2097
    18962098#endif
    18972099};
     
    20302232
    20312233// Additional slice header syntax elements
     2234#if !H_MV_HLS7_GEN
    20322235  Bool       m_pocResetFlag;
     2236#endif
    20332237  Bool       m_crossLayerBlaFlag;
    20342238  Bool       m_discardableFlag;
     
    20362240  Int        m_numInterLayerRefPicsMinus1;
    20372241  Int        m_interLayerPredLayerIdc       [MAX_NUM_LAYERS];
     2242
     2243#if H_MV_HLS7_GEN
     2244  Int        m_sliceSegmentHeaderExtensionLength;
     2245  Int        m_pocResetIdc;
     2246  Int        m_pocResetPeriodId;
     2247  Bool       m_fullPocResetFlag;
     2248  Int        m_pocLsbVal;
     2249  Bool       m_pocMsbValPresentFlag;
     2250  Int        m_pocMsbVal;
     2251#endif
     2252
     2253#if H_3D
    20382254  Int        m_aaiCodedScale [2][MAX_NUM_LAYERS];
    20392255  Int        m_aaiCodedOffset[2][MAX_NUM_LAYERS];
     2256#endif
    20402257#if H_3D_TMVP
    20412258  Int        m_aiAlterRefIdx   [2];
     
    23632580  }
    23642581
     2582#if !H_MV_HLS7_GEN
    23652583  Void setPocResetFlag( Bool flag ) { m_pocResetFlag = flag; }
    23662584  Bool getPocResetFlag(  ) { return m_pocResetFlag; }
     2585#endif
    23672586
    23682587  Void setDiscardableFlag( Bool flag ) { m_discardableFlag = flag; }
     
    23772596  Void setInterLayerPredLayerIdc( Int i, Int  val ) { m_interLayerPredLayerIdc[i] = val; }
    23782597  Int  getInterLayerPredLayerIdc( Int i ) { return m_interLayerPredLayerIdc[i]; }
     2598
     2599#if H_MV_HLS7_GEN
     2600  Void setSliceSegmentHeaderExtensionLength( Int  val ) { m_sliceSegmentHeaderExtensionLength = val; }
     2601  Int  getSliceSegmentHeaderExtensionLength(  ) { return m_sliceSegmentHeaderExtensionLength; }
     2602
     2603  Void setPocResetIdc( Int  val ) { m_pocResetIdc = val; }
     2604  Int  getPocResetIdc(  ) { return m_pocResetIdc; }
     2605
     2606  Void setPocResetPeriodId( Int  val ) { m_pocResetPeriodId = val; }
     2607  Int  getPocResetPeriodId(  ) { return m_pocResetPeriodId; }
     2608
     2609  Void setFullPocResetFlag( Bool flag ) { m_fullPocResetFlag = flag; }
     2610  Bool getFullPocResetFlag(  ) { return m_fullPocResetFlag; }
     2611
     2612  Void setPocLsbVal( Int  val ) { m_pocLsbVal = val; }
     2613  Int  getPocLsbVal(  ) { return m_pocLsbVal; }
     2614
     2615  Void setPocMsbValPresentFlag( Bool flag ) { m_pocMsbValPresentFlag = flag; }
     2616  Bool getPocMsbValPresentFlag(  ) { return m_pocMsbValPresentFlag; }
     2617
     2618  Void setPocMsbVal( Int  val ) { m_pocMsbVal = val; }
     2619  Int  getPocMsbVal(  ) { return m_pocMsbVal; }
     2620
     2621#endif
    23792622
    23802623  // Additional variables derived in slice header semantics
     
    23952638  Void     setRefPicSetInterLayer       ( std::vector<TComPic*>* refPicSetInterLayer0, std::vector<TComPic*>* refPicSetInterLayer1);
    23962639  TComPic* getPicFromRefPicSetInterLayer( Int setIdc, Int layerId );
    2397 #endif
    2398 
     2640
     2641#if H_MV_HLS7_GEN
     2642  Bool     getPocMsbValRequiredFlag( )        { return   };
     2643  UInt     getPocLsbValLen()                  { return getSPS->getBitsForPOC(); }; //log2_max_pic_order_cnt_lsb_minus4 + 4 
     2644#endif
     2645#endif
    23992646#if MTK_DDD_G0063
    24002647  Void InitializeDDDPara( UInt uiCamParsCodedPrecision, Int  iCodedScale,Int  iCodedOffset, Int iBaseViewIdx );
Note: See TracChangeset for help on using the changeset viewer.