Changeset 546 in SHVCSoftware


Ignore:
Timestamp:
15 Jan 2014, 01:06:24 (11 years ago)
Author:
qualcomm
Message:

JCTVC-O0137: Reserve value 63 for vps_max_layers_minus1 (Macro: O0137_MAX_LAYERID)

Reserve the value of 63 for vps_max_layers_minus1, but allow bistreams to contain the value. Decoder ignore NUTs with layer ID equal to 63.

Patch from Karsten Suehring <karsten.suehring@…>

From: Adarsh K. Ramasubramonian <aramasub@…>

Location:
branches/SHM-4.1-dev/source
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-4.1-dev/source/App/TAppDecoder/TAppDecCfg.cpp

    r521 r546  
    144144  m_tgtLayerId = nLayerNum - 1;
    145145  assert( m_tgtLayerId >= 0 );
     146#if O0137_MAX_LAYERID
     147  assert( m_tgtLayerId < MAX_NUM_LAYER_IDS );
     148#endif
    146149#if OUTPUT_LAYER_SET_INDEX 
    147150  this->getCommonDecoderParams()->setOutputLayerSetIdx( olsIdx       );
  • branches/SHM-4.1-dev/source/Lib/TLibCommon/TypeDef.h

    r545 r546  
    4949#define MAX_LAYERS                       2      ///< max number of layers the codec is supposed to handle
    5050
     51#define O0137_MAX_LAYERID                1      ///< JCTVC-O0137, JCTVC-O0200, JCTVC-O0223: restrict nuh_layer_id and vps_max_layers_minus1
     52
    5153#define O0109_O0199_FLAGS_TO_VUI         1      ///< JCTVC-O0109, O0199: move single_layer_for_non_irap_flag and higher_layer_flag to vps_vui
    5254#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
     
    253255
    254256#define MAX_CPB_CNT                     32  ///< Upper bound of (cpb_cnt_minus1 + 1)
     257#if O0137_MAX_LAYERID
     258#define MAX_NUM_LAYER_IDS                63
     259#else
    255260#define MAX_NUM_LAYER_IDS                64
    256 
     261#endif
    257262#define COEF_REMAIN_BIN_REDUCTION        3 ///< indicates the level at which the VLC
    258263                                           ///< transitions from Golomb-Rice to TU+EG(k)
  • branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r545 r546  
    866866  READ_CODE( 2,  uiCode,  "vps_reserved_three_2bits" );           assert(uiCode == 3);
    867867#if VPS_RENAME
    868   READ_CODE( 6,  uiCode,  "vps_max_layers_minus1" );              pcVPS->setMaxLayers( uiCode + 1);
     868#if O0137_MAX_LAYERID
     869  READ_CODE( 6,  uiCode,  "vps_max_layers_minus1" );              pcVPS->setMaxLayers( min( 62u, uiCode) + 1 );
     870#else
     871  READ_CODE( 6,  uiCode,  "vps_max_layers_minus1" );              pcVPS->setMaxLayers( uiCode + 1 );
     872#endif
    869873#else
    870874  READ_CODE( 6,  uiCode,  "vps_reserved_zero_6bits" );            assert(uiCode == 0);
  • branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r539 r546  
    17341734  m_cEntropyDecoder.setBitstream      (nalu.m_Bitstream);
    17351735
     1736#if O0137_MAX_LAYERID
     1737  // ignore any NAL units with nuh_layer_id == 63
     1738  if (nalu.m_layerId == 63 )
     1739  { 
     1740    return false;
     1741  }
     1742#endif
    17361743  switch (nalu.m_nalUnitType)
    17371744  {
Note: See TracChangeset for help on using the changeset viewer.