Changeset 577 in SHVCSoftware for branches/SHM-5.0-dev/source


Ignore:
Timestamp:
29 Jan 2014, 01:55:16 (11 years ago)
Author:
qualcomm
Message:

JCTVC-P0295: modify default_one_target_output_layer_idc to default_target_output_layer_idc and also its semantics

Macro: P0295_DEFAULT_OUT_LAYER_IDC

Contact -- fhendry@…

Location:
branches/SHM-5.0-dev/source
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-5.0-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r575 r577  
    11451145  vps->setNumOutputLayerSets(vps->getNumLayerSets());
    11461146  vps->setNumProfileTierLevel(vps->getNumLayerSets());
     1147#if P0295_DEFAULT_OUT_LAYER_IDC
     1148  vps->setDefaultTargetOutputLayerIdc(1);
     1149#else
    11471150#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
    11481151  vps->setDefaultOneTargetOutputLayerIdc(1);
    11491152#else
    11501153  vps->setDefaultOneTargetOutputLayerFlag(true);
     1154#endif
    11511155#endif
    11521156  for(i = 1; i < vps->getNumLayerSets(); i++)
  • branches/SHM-5.0-dev/source/Lib/TLibCommon/TComSlice.cpp

    r576 r577  
    19671967#endif
    19681968, m_numAddOutputLayerSets     (0)
     1969#if P0295_DEFAULT_OUT_LAYER_IDC
     1970, m_defaultTargetOutputLayerIdc     (0)
     1971#else
    19691972#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
    19701973, m_defaultOneTargetOutputLayerIdc     (0)
    19711974#else
    19721975, m_defaultOneTargetOutputLayerFlag    (false)
     1976#endif
    19731977#endif
    19741978#if VPS_VUI_BITRATE_PICRATE
  • branches/SHM-5.0-dev/source/Lib/TLibCommon/TComSlice.h

    r576 r577  
    544544#endif
    545545  Int        m_numAddOutputLayerSets;
     546#if P0295_DEFAULT_OUT_LAYER_IDC
     547  UInt       m_defaultTargetOutputLayerIdc;
     548#else
    546549#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
    547550  UInt       m_defaultOneTargetOutputLayerIdc;
    548551#else
    549552  Bool       m_defaultOneTargetOutputLayerFlag;
     553#endif
    550554#endif
    551555  Int        m_profileLevelTierIdx[64];     
     
    834838  Void   setNumAddOutputLayerSets(Int x)                         { m_numAddOutputLayerSets = x   ; }
    835839
     840#if P0295_DEFAULT_OUT_LAYER_IDC
     841  UInt   getDefaultTargetOutputLayerIdc()                 { return m_defaultTargetOutputLayerIdc;}
     842  Void   setDefaultTargetOutputLayerIdc(UInt x)           { m_defaultTargetOutputLayerIdc = x    ;}
     843#else
    836844#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
    837845  UInt   getDefaultOneTargetOutputLayerIdc()                 { return m_defaultOneTargetOutputLayerIdc;}
     
    840848  Bool   getDefaultOneTargetOutputLayerFlag()                 { return m_defaultOneTargetOutputLayerFlag;}
    841849  Void   setDefaultOneTargetOutputLayerFlag(Bool x)           { m_defaultOneTargetOutputLayerFlag= x    ;}
     850#endif
    842851#endif
    843852  Int    getProfileLevelTierIdx(Int i)                        { return m_profileLevelTierIdx[i]; }
  • branches/SHM-5.0-dev/source/Lib/TLibCommon/TypeDef.h

    r576 r577  
    6464#endif
    6565
     66#define P0295_DEFAULT_OUT_LAYER_IDC      1      ///< JCTVC-P0295: modifify default_one_target_output_layer_idc to default_target_output_layer_idc
    6667#define O0109_DEFAULT_ONE_OUT_LAYER_IDC  1      ///< JCTVC-O0109: default_one_target_output_layer_flag to default_one_target_output_layer_idc
    6768#define O0109_MOVE_VPS_VUI_FLAG          1      ///< JCTVC-O0109: move vps_vui_present_flag before vps_vui_offset
  • branches/SHM-5.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r576 r577  
    12061206  Int numOutputLayerSets = vps->getNumLayerSets() + vps->getNumAddOutputLayerSets();
    12071207#endif
     1208
     1209#if P0295_DEFAULT_OUT_LAYER_IDC
     1210  if( numOutputLayerSets > 1 )
     1211  {
     1212    READ_CODE( 2, uiCode, "default_target_output_layer_idc" );   vps->setDefaultTargetOutputLayerIdc( uiCode );
     1213  }
     1214  vps->setNumOutputLayerSets( numOutputLayerSets );
     1215
     1216  for(i = 1; i < numOutputLayerSets; i++)
     1217  {
     1218    if( i > (vps->getNumLayerSets() - 1) )
     1219    {
     1220      Int numBits = 1;
     1221      while ((1 << numBits) < (vps->getNumLayerSets() - 1))
     1222      {
     1223        numBits++;
     1224      }
     1225      READ_CODE( numBits, uiCode, "output_layer_set_idx_minus1");   vps->setOutputLayerSetIdx( i, uiCode + 1);
     1226    }
     1227    else
     1228    {
     1229      vps->setOutputLayerSetIdx( i, i );
     1230    }
     1231    if ( i > (vps->getNumLayerSets() - 1) || vps->getDefaultTargetOutputLayerIdc() >= 2 )
     1232    {
     1233      Int lsIdx = vps->getOutputLayerSetIdx(i);
     1234      for(j = 0; j < vps->getNumLayersInIdList(lsIdx) - 1; j++)
     1235      {
     1236        READ_FLAG( uiCode, "output_layer_flag[i][j]"); vps->setOutputLayerFlag(i, j, uiCode);
     1237      }
     1238    }
     1239    else
     1240    {
     1241      // i <= (vps->getNumLayerSets() - 1)
     1242      // Assign OutputLayerFlag depending on default_one_target_output_layer_flag
     1243      Int lsIdx = i;
     1244      if( vps->getDefaultTargetOutputLayerIdc() == 1 )
     1245      {
     1246        for(j = 0; j < vps->getNumLayersInIdList(lsIdx); j++)
     1247        {
     1248          vps->setOutputLayerFlag(i, j, (j == (vps->getNumLayersInIdList(lsIdx)-1)) && (vps->getDimensionId(j,1) == 0) );
     1249        }
     1250      }
     1251      else if ( vps->getDefaultTargetOutputLayerIdc() == 0 )
     1252      {
     1253        for(j = 0; j < vps->getNumLayersInIdList(lsIdx); j++)
     1254        {
     1255          vps->setOutputLayerFlag(i, j, 1);
     1256        }
     1257      }
     1258    }
     1259    Int numBits = 1;
     1260    while ((1 << numBits) < (vps->getNumProfileTierLevel()))
     1261    {
     1262      numBits++;
     1263    }
     1264    READ_CODE( numBits, uiCode, "profile_level_tier_idx[i]" );     vps->setProfileLevelTierIdx(i, uiCode);
     1265  }
     1266#else
    12081267  if( numOutputLayerSets > 1 )
    12091268  {
     
    12871346    READ_CODE( numBits, uiCode, "profile_level_tier_idx[i]" );     vps->setProfileLevelTierIdx(i, uiCode);
    12881347  }
     1348#endif
    12891349
    12901350#if O0153_ALT_OUTPUT_LAYER_FLAG
  • branches/SHM-5.0-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r576 r577  
    965965  if( numOutputLayerSets > 1 )
    966966  {
     967#if P0295_DEFAULT_OUT_LAYER_IDC
     968    WRITE_CODE( vps->getDefaultTargetOutputLayerIdc(), 2, "default_target_output_layer_idc" );   
     969#else
    967970#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
    968971    WRITE_CODE( vps->getDefaultOneTargetOutputLayerIdc(), 2, "default_one_target_output_layer_idc" );   
     
    970973    WRITE_FLAG( vps->getDefaultOneTargetOutputLayerFlag(), "default_one_target_output_layer_flag" );   
    971974#endif
     975#endif
    972976  }
    973977
     
    981985        numBits++;
    982986      }
    983       WRITE_CODE( vps->getOutputLayerSetIdx(i) - 1, numBits, "output_layer_set_idx_minus1"); 
     987      WRITE_CODE( vps->getOutputLayerSetIdx(i) - 1, numBits, "output_layer_set_idx_minus1");
     988#if P0295_DEFAULT_OUT_LAYER_IDC
     989    }
     990    if ( i > (vps->getNumLayerSets() - 1) || vps->getDefaultTargetOutputLayerIdc() >= 2 ) //Instead of == 2, >= 2 is used to follow the agreement that value 3 should be interpreted as 2
     991    {
     992#endif
    984993      Int lsIdx = vps->getOutputLayerSetIdx(i);
    985994      for(j = 0; j < vps->getNumLayersInIdList(lsIdx) - 1; j++)
Note: See TracChangeset for help on using the changeset viewer.