Changeset 492 in 3DVCSoftware for branches/HTM-DEV-0.3-dev0/source/Lib


Ignore:
Timestamp:
24 Jun 2013, 16:01:58 (12 years ago)
Author:
tech
Message:

Added encoder parameters related to output layers.

Location:
branches/HTM-DEV-0.3-dev0/source/Lib
Files:
3 edited

Legend:

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

    r491 r492  
    494494  UInt*       m_hrdOpSetIdx;
    495495  Bool*       m_cprmsPresentFlag;
    496   UInt        m_numOpSets;
    497 #if H_MV
     496 
     497#if H_MV
     498  UInt        m_vpsNumLayerSetsMinus1;
    498499  Bool        m_layerIdIncludedFlag[MAX_VPS_OP_SETS_PLUS1][MAX_VPS_NUH_LAYER_ID_PLUS1];
    499500#else
     501  UInt        m_numOpSets;
    500502  Bool        m_layerIdIncludedFlag[MAX_VPS_OP_SETS_PLUS1][MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1];
    501503#endif
     
    607609  UInt    getVpsMaxLayerId()                                    { return m_maxLayerId; }
    608610  Void    setVpsMaxLayerId(UInt v)                              { m_maxLayerId = v;    }
     611
     612  UInt    getVpsNumLayerSetsMinus1()                            { return m_vpsNumLayerSetsMinus1; }
     613  Void    setVpsNumLayerSetsMinus1(UInt v)                      { m_vpsNumLayerSetsMinus1 = v;    }
    609614#else
    610615  UInt    getMaxNuhReservedZeroLayerId()                        { return m_maxNuhReservedZeroLayerId; }
    611616  Void    setMaxNuhReservedZeroLayerId(UInt v)                  { m_maxNuhReservedZeroLayerId = v;    }
    612 #endif
    613617
    614618  UInt    getMaxOpSets()                                        { return m_numOpSets; }
    615619  Void    setMaxOpSets(UInt v)                                  { m_numOpSets = v;    }
     620#endif
     621
    616622  Bool    getLayerIdIncludedFlag(UInt opsIdx, UInt id)          { return m_layerIdIncludedFlag[opsIdx][id]; }
    617623  Void    setLayerIdIncludedFlag(Bool v, UInt opsIdx, UInt id)  { m_layerIdIncludedFlag[opsIdx][id] = v;    }
     
    729735  {
    730736    assert( lsIdx >= 0 );
    731     assert( lsIdx < getMaxOpSets() );
     737    assert( lsIdx <= getVpsNumLayerSetsMinus1() );
    732738    Int numLayersInIdList = 0;
    733739    for (Int layerId = 0; layerId < getVpsMaxLayerId(); layerId++ )
  • branches/HTM-DEV-0.3-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r490 r492  
    840840  assert( pcVPS->getVpsMaxLayerId() < MAX_VPS_NUH_LAYER_ID_PLUS1 );
    841841  READ_CODE( 6, uiCode, "vps_max_nuh_layer_id" );   pcVPS->setVpsMaxLayerId( uiCode );
     842
     843  READ_UVLC(    uiCode, "vps_max_num_layer_sets_minus1" );               pcVPS->setVpsNumLayerSetsMinus1( uiCode );
     844  for( UInt opsIdx = 1; opsIdx <= pcVPS->getVpsNumLayerSetsMinus1(); opsIdx ++ )
     845  {
     846    for( UInt i = 0; i <= pcVPS->getVpsMaxLayerId(); i ++ )
    842847#else
    843848  assert( pcVPS->getMaxNuhReservedZeroLayerId() < MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1 );
    844849  READ_CODE( 6, uiCode, "vps_max_nuh_reserved_zero_layer_id" );   pcVPS->setMaxNuhReservedZeroLayerId( uiCode );
    845 #endif
     850
    846851  READ_UVLC(    uiCode, "vps_max_op_sets_minus1" );               pcVPS->setMaxOpSets( uiCode + 1 );
    847852  for( UInt opsIdx = 1; opsIdx <= ( pcVPS->getMaxOpSets() - 1 ); opsIdx ++ )
    848853  {
    849854    // Operation point set
    850 #if H_MV
    851     for( UInt i = 0; i <= pcVPS->getVpsMaxLayerId(); i ++ )
    852 #else
    853855    for( UInt i = 0; i <= pcVPS->getMaxNuhReservedZeroLayerId(); i ++ )
    854856#endif
     
    948950    READ_CODE( 6,  uiCode, "vps_num_profile_tier_level_minus1" );  pcVPS->setVpsNumProfileTierLevelMinus1( uiCode );
    949951
    950     for( Int i = 1; i <= pcVPS->getMaxOpSets() - 1; i++ )
     952    for( Int i = 1; i <= pcVPS->getVpsNumberLayerSetsMinus1(); i++ )
    951953    {
    952954      READ_FLAG(  uiCode, "vps_profile_present_flag[i]" );    pcVPS->setVpsProfilePresentFlag( i, uiCode == 1 );
  • branches/HTM-DEV-0.3-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp

    r490 r492  
    649649#if H_MV
    650650  assert( pcVPS->getVpsMaxLayerId() < MAX_VPS_NUH_LAYER_ID_PLUS1 );
    651   WRITE_CODE( pcVPS->getVpsMaxLayerId(), 6,                 "vps_max_layer_id" );
     651  WRITE_CODE( pcVPS->getVpsMaxLayerId(), 6,                 "vps_max_layer_id" ); 
     652 
     653  WRITE_UVLC( pcVPS->getVpsNumLayerSetsMinus1(),  "vps_max_num_layer_sets_minus1" );
     654  for( UInt opsIdx = 1; opsIdx <= pcVPS->getVpsNumLayerSetsMinus1(); opsIdx ++ )
     655  {
     656    // Operation point set
     657    for( UInt i = 0; i <= pcVPS->getVpsMaxLayerId(); i ++ )
    652658#else
    653659  assert( pcVPS->getMaxNuhReservedZeroLayerId() < MAX_VPS_NUH_RESERVED_ZERO_LAYER_ID_PLUS1 );
    654660  WRITE_CODE( pcVPS->getMaxNuhReservedZeroLayerId(), 6,     "vps_max_nuh_reserved_zero_layer_id" );
    655 #endif
     661
    656662  pcVPS->setMaxOpSets(1);
    657663  WRITE_UVLC( pcVPS->getMaxOpSets() - 1,                    "vps_max_op_sets_minus1" );
     
    659665  {
    660666    // Operation point set
    661 #if H_MV
    662     for( UInt i = 0; i <= pcVPS->getVpsMaxLayerId(); i ++ )
    663 #else
    664667    for( UInt i = 0; i <= pcVPS->getMaxNuhReservedZeroLayerId(); i ++ )
    665668#endif
Note: See TracChangeset for help on using the changeset viewer.