Changeset 610 in SHVCSoftware for branches/SHM-5.1-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
7 Feb 2014, 23:30:56 (12 years ago)
Author:
qualcomm
Message:

Set MAX_TLAYER to 7 and infer values of DPB size syntax elements.

The value of MAX_TLAYER should be 7 and not 8, because there are at most 7 temporal layers (Related HM ticket 1239). The values of syntax elements of the DPB size table are inferred when they are not signaled.

From: Adarsh K. Ramasubramonian <aramasub@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r605 r610  
    850850  READ_CODE( 6,  uiCode,  "vps_reserved_zero_6bits" );            assert(uiCode == 0);
    851851#endif
    852   READ_CODE( 3,  uiCode,  "vps_max_sub_layers_minus1" );          pcVPS->setMaxTLayers( uiCode + 1 );
     852  READ_CODE( 3,  uiCode,  "vps_max_sub_layers_minus1" );          pcVPS->setMaxTLayers( uiCode + 1 ); assert(uiCode <= 6);
    853853  READ_FLAG(     uiCode,  "vps_temporal_id_nesting_flag" );       pcVPS->setTemporalNestingFlag( uiCode ? true:false );
    854854  assert (pcVPS->getMaxTLayers()>1||pcVPS->getTemporalNestingFlag());
     
    16731673#endif
    16741674        READ_UVLC( uiCode, "max_vps_latency_increase_plus1[i][j]" );        vps->setMaxVpsLatencyIncreasePlus1( i, j, uiCode);
     1675      }
     1676    }
     1677    for(Int j = vps->getMaxTLayers(); j < MAX_TLAYER; j++)
     1678    {
     1679      vps->setSubLayerDpbInfoPresentFlag( i, j, false );
     1680    }
     1681  }
     1682
     1683  // Infer values when not signalled
     1684  for(Int i = 1; i < vps->getNumOutputLayerSets(); i++)
     1685  {
     1686    Int layerSetIdxForOutputLayerSet = vps->getOutputLayerSetIdx( i );
     1687    for(Int j = 0; j < MAX_TLAYER; j++)
     1688    {
     1689      if( !vps->getSubLayerDpbInfoPresentFlag(i, j) )  // If sub-layer DPB information is NOT present
     1690      {
     1691        for(Int k = 0; k < vps->getNumSubDpbs(layerSetIdxForOutputLayerSet); k++)
     1692        {
     1693          vps->setMaxVpsDecPicBufferingMinus1( i, k, j, vps->getMaxVpsDecPicBufferingMinus1( i, k, j - 1 ) );
     1694        }
     1695        vps->setMaxVpsNumReorderPics( i, j, vps->getMaxVpsNumReorderPics( i, j - 1) );
     1696        for(Int k = 0; k < vps->getNumLayersInIdList( layerSetIdxForOutputLayerSet ); k++)
     1697        {
     1698          vps->setMaxVpsLayerDecPicBuffMinus1( i, k, j, vps->getMaxVpsLayerDecPicBuffMinus1( i, k, j - 1));
     1699        }
     1700        vps->setMaxVpsLatencyIncreasePlus1( i, j, vps->getMaxVpsLatencyIncreasePlus1( i, j - 1 ) );
    16751701      }
    16761702    }
Note: See TracChangeset for help on using the changeset viewer.