Changeset 610 in SHVCSoftware


Ignore:
Timestamp:
7 Feb 2014, 23:30:56 (11 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@…>

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

Legend:

Unmodified
Added
Removed
  • branches/SHM-5.1-dev/source/App/TAppEncoder/TAppEncCfg.cpp

    r595 r610  
    714714  ("LambdaModifier5,-LM5", m_adLambdaModifier[ 5 ], ( Double )1.0, "Lambda modifier for temporal layer 5")
    715715  ("LambdaModifier6,-LM6", m_adLambdaModifier[ 6 ], ( Double )1.0, "Lambda modifier for temporal layer 6")
    716   ("LambdaModifier7,-LM7", m_adLambdaModifier[ 7 ], ( Double )1.0, "Lambda modifier for temporal layer 7")
    717716#endif
    718717
  • branches/SHM-5.1-dev/source/Lib/TLibCommon/CommonDef.h

    r600 r610  
    178178
    179179// Explicit temporal layer QP offset
    180 #define MAX_TLAYER                  8           ///< max number of temporal layer
     180#define MAX_TLAYER                  7           ///< max number of temporal layer
    181181#define HB_LAMBDA_FOR_LDC           1           ///< use of B-style lambda for non-key pictures in low-delay mode
    182182
  • branches/SHM-5.1-dev/source/Lib/TLibCommon/TComSlice.h

    r607 r610  
    231231{
    232232  ProfileTierLevel m_generalPTL;
    233   ProfileTierLevel m_subLayerPTL[6];      // max. value of max_sub_layers_minus1 is 6
    234   Bool m_subLayerProfilePresentFlag[6];
    235   Bool m_subLayerLevelPresentFlag[6];
     233  ProfileTierLevel m_subLayerPTL    [MAX_TLAYER-1];      // max. value of max_sub_layers_minus1 is MAX_TLAYER-1 ( = 6 )
     234  Bool m_subLayerProfilePresentFlag [MAX_TLAYER-1];
     235  Bool m_subLayerLevelPresentFlag   [MAX_TLAYER-1];
    236236
    237237public:
  • 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.