Changeset 646 in SHVCSoftware


Ignore:
Timestamp:
26 Mar 2014, 00:41:26 (11 years ago)
Author:
seregin
Message:

fix derivation of OutputLayerFlag[i][j] for default_target_output_layer_idc equal to 1

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

Legend:

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

    r635 r646  
    11511151    vps->setProfileLevelTierIdx(i, i);
    11521152    vps->setOutputLayerSetIdx(i, i);
    1153   }
    1154 
    1155   for(Int lsIdx = 1; lsIdx < vps->getNumLayerSets(); lsIdx++)
    1156   {
    1157     // Include the highest layer as output layer
    1158     for(UInt layer=0; layer <= vps->getMaxLayerId() ; layer++)
    1159     {
    1160       if(vps->getLayerIdIncludedFlag(lsIdx, layer))
    1161       {
    1162         vps->setOutputLayerFlag(lsIdx, layer, layer == (vps->getMaxLayerId()));
    1163       }
    1164     }
    1165   }
     1153  } 
    11661154#endif
    11671155 #if VPS_DPB_SIZE_TABLE
     
    11751163  vps->deriveNumberOfSubDpbs();
    11761164#endif
     1165
     1166  // derive OutputLayerFlag[i][j]
     1167  if( vps->getDefaultTargetOutputLayerIdc() == 1 )
     1168  {
     1169    // default_target_output_layer_idc equal to 1 specifies that only the layer with the highest value of nuh_layer_id such that nuh_layer_id equal to nuhLayerIdA and
     1170    // AuxId[ nuhLayerIdA ] equal to 0 in each of the output layer sets with index in the range of 1 to vps_num_layer_sets_minus1, inclusive, is an output layer of its output layer set.
     1171
     1172    // Include the highest layer as output layer for each layer set
     1173    for(Int lsIdx = 1; lsIdx < vps->getNumLayerSets(); lsIdx++)
     1174    {
     1175      for( UInt layer = 0; layer < vps->getNumLayersInIdList(lsIdx); layer++ )
     1176      {
     1177        if( vps->getLayerIdIncludedFlag(lsIdx, layer) )     
     1178        {       
     1179          vps->setOutputLayerFlag( lsIdx, layer, layer == vps->getNumLayersInIdList(lsIdx) - 1 );
     1180        }
     1181      }
     1182    }
     1183  }
     1184  else
     1185  {
     1186    // cases when default_target_output_layer_idc is not equal to 1
     1187    assert(!"default_target_output_layer_idc not equal to 1 is not yet supported");
     1188  }
     1189
    11771190  // Initialize dpb_size_table() for all ouput layer sets in the VPS extension
    11781191  for(i = 1; i < vps->getNumOutputLayerSets(); i++)
  • branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r639 r646  
    12801280      Int lsIdx = vps->getOutputLayerSetIdx(i);
    12811281#if NUM_OL_FLAGS
    1282       for(j = 0; j < vps->getNumLayersInIdList(lsIdx) ; j++)
     1282      for(j = 0; j < vps->getNumLayersInIdList(lsIdx); j++)
    12831283#else
    12841284      for(j = 0; j < vps->getNumLayersInIdList(lsIdx) - 1; j++)
Note: See TracChangeset for help on using the changeset viewer.