Changeset 435 in SHVCSoftware for branches/SHM-3.1-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
14 Oct 2013, 16:04:33 (12 years ago)
Author:
nokia
Message:

add inter-layer constrained tiles sets SEI from JCTVC-N0383

Location:
branches/SHM-3.1-dev/source/Lib/TLibDecoder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-3.1-dev/source/Lib/TLibDecoder/SEIread.cpp

    r431 r435  
    101101    fprintf( g_hTrace, "=========== SOP Description SEI message ===========\n");
    102102    break;
     103#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     104  case SEI::INTER_LAYER_CONSTRAINED_TILE_SETS:
     105    fprintf( g_hTrace, "=========== Inter Layer Constrained Tile Sets SEI message ===========\n");
     106    break;
     107#endif
    103108  case SEI::SCALABLE_NESTING:
    104109    fprintf( g_hTrace, "=========== Scalable Nesting SEI message ===========\n");
     
    266271      xParseSEISOPDescription((SEISOPDescription&) *sei, payloadSize);
    267272      break;
     273#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     274    case SEI::INTER_LAYER_CONSTRAINED_TILE_SETS:
     275      sei = new SEIInterLayerConstrainedTileSets;
     276      xParseSEIInterLayerConstrainedTileSets((SEIInterLayerConstrainedTileSets&) *sei, payloadSize);
     277      break;
     278#endif
    268279    case SEI::SCALABLE_NESTING:
    269280      sei = new SEIScalableNesting;
     
    775786}
    776787
     788#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     789Void SEIReader::xParseSEIInterLayerConstrainedTileSets (SEIInterLayerConstrainedTileSets &sei, UInt payloadSize)
     790{
     791  UInt uiCode;
     792
     793  READ_FLAG( uiCode, "il_all_tiles_exact_sample_value_match_flag"   ); sei.m_ilAllTilesExactSampleValueMatchFlag = uiCode;
     794  READ_FLAG( uiCode, "il_one_tile_per_tile_set_flag"                ); sei.m_ilOneTilePerTileSetFlag = uiCode;
     795  if( !sei.m_ilOneTilePerTileSetFlag )
     796  {
     797    READ_UVLC( uiCode, "il_num_sets_in_message_minus1"                ); sei.m_ilNumSetsInMessageMinus1 = uiCode;
     798    if( sei.m_ilNumSetsInMessageMinus1 )
     799    {
     800      READ_FLAG( uiCode, "skipped_tile_set_present_flag"                ); sei.m_skippedTileSetPresentFlag = uiCode;
     801    }
     802    else
     803    {
     804      sei.m_skippedTileSetPresentFlag = false;
     805    }
     806    UInt numSignificantSets = sei.m_ilNumSetsInMessageMinus1 + (sei.m_skippedTileSetPresentFlag ? 1 : 0) + 1;
     807    for( UInt i = 0; i <= numSignificantSets; i++ )
     808    {
     809      READ_UVLC( uiCode, "ilcts_id"                                     ); sei.m_ilctsId[i] = uiCode;
     810      READ_UVLC( uiCode, "il_num_tile_rects_in_set_minus1"              ) ;sei.m_ilNumTileRectsInSetMinus1[i] = uiCode;
     811      for( UInt j = 0; j <= sei.m_ilNumTileRectsInSetMinus1[i]; j++ )
     812      {
     813        READ_UVLC( uiCode, "il_top_left_tile_index"                       ); sei.m_ilTopLeftTileIndex[i][j] = uiCode;
     814        READ_UVLC( uiCode, "il_bottom_right_tile_index"                   ); sei.m_ilBottomRightTileIndex[i][j] = uiCode;
     815      }
     816      READ_CODE( 2, uiCode, "ilc_idc"                                   ); sei.m_ilcIdc[i] = uiCode;
     817      if( sei.m_ilAllTilesExactSampleValueMatchFlag )
     818      {
     819        READ_FLAG( uiCode, "il_exact_sample_value_match_flag"             ); sei.m_ilExactSampleValueMatchFlag[i] = uiCode;
     820      }
     821    }
     822  }
     823  else
     824  {
     825    READ_CODE( 2, uiCode, "all_tiles_ilc_idc"                         ); sei.m_allTilesIlcIdc = uiCode;
     826  }
     827
     828  xParseByteAlign();
     829}
     830#endif
     831
    777832#if M0043_LAYERS_PRESENT_SEI
    778833Void SEIReader::xParseSEIScalableNesting(SEIScalableNesting& sei, const NalUnitType nalUnitType, UInt payloadSize, TComVPS *vps, TComSPS *sps)
  • branches/SHM-3.1-dev/source/Lib/TLibDecoder/SEIread.h

    r313 r435  
    8080  Void xParseSEIToneMappingInfo       (SEIToneMappingInfo& sei, UInt payloadSize);
    8181  Void xParseSEISOPDescription        (SEISOPDescription &sei, UInt payloadSize);
     82#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     83  Void xParseSEIInterLayerConstrainedTileSets (SEIInterLayerConstrainedTileSets &sei, UInt payloadSize);
     84#endif
    8285#if M0043_LAYERS_PRESENT_SEI
    8386  Void xParseSEILayersPresent         (SEILayersPresent &sei, UInt payloadSize, TComVPS *vps);
Note: See TracChangeset for help on using the changeset viewer.