Changeset 77 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp


Ignore:
Timestamp:
14 Jun 2012, 16:38:29 (13 years ago)
Author:
tech
Message:

Merged with branch/HTM-3.0Samsung REV74 including:

  • restricted residual prediction m24766
  • Inter-view residual prediction m24938
  • VPS concept m24714,m24878, m24945,m24896, m2491
  • reference list modification, restriction on IDR m24876, m24874
  • depth based motion parameter prediction m24829

Fixed bugs:

  • interview prediction
  • VSO

Added:

  • xcode project
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r56 r77  
    13391339}
    13401340
     1341#if VIDYO_VPS_INTEGRATION
     1342Void TDecCavlc::parseVPS(TComVPS* pcVPS)
     1343{
     1344  UInt  uiCode;
     1345  Int   iCode;
     1346 
     1347  READ_CODE( 3, uiCode, "max_temporal_layers_minus1" );   pcVPS->setMaxTLayers( uiCode + 1 );
     1348  READ_CODE( 5, uiCode, "max_layers_minus1" );            pcVPS->setMaxLayers( uiCode + 1 );
     1349  READ_FLAG( uiCode,  "temporal_id_nesting_flag" );       pcVPS->setTemporalNestingFlag( uiCode ? true:false );
     1350  READ_UVLC( uiCode,  "video_parameter_set_id" );         pcVPS->setVPSId( uiCode );
     1351  for(UInt i = 0; i <= pcVPS->getMaxTLayers()-1; i++)
     1352  {
     1353    READ_UVLC( uiCode,  "max_dec_pic_buffering[i]" );     pcVPS->setMaxDecPicBuffering( uiCode, i );
     1354    READ_UVLC( uiCode,  "num_reorder_pics[i]" );          pcVPS->setNumReorderPics( uiCode, i );
     1355    READ_UVLC( uiCode,  "max_latency_increase[i]" );      pcVPS->setMaxLatencyIncrease( uiCode, i );
     1356  }
     1357 
     1358  READ_CODE( 1, uiCode, "bit_equal_to_one" );             assert( uiCode );
     1359 
     1360  if( pcVPS->getMaxLayers() - 1 > 0 )
     1361  {
     1362    READ_UVLC( uiCode,  "extension_type" );               pcVPS->setExtensionType( uiCode );
     1363   
     1364    pcVPS->setViewOrderIdx( 0, 0 );
     1365    pcVPS->setViewId( 0, 0 );
     1366    pcVPS->setDepthFlag( 0, 0 );
     1367    for(UInt i = 1; i <= pcVPS->getMaxLayers()-1; i++)
     1368    {
     1369      READ_FLAG( uiCode, "dependent_flag[i]" );           pcVPS->setDependentFlag( uiCode ? true:false, i);
     1370      if( pcVPS->getDependentFlag(i) )
     1371      {
     1372        READ_UVLC( uiCode,  "delta_reference_layer_id_minus1[i]" ); pcVPS->setDependentLayer( i - uiCode + 1, i );
     1373        if( pcVPS->getExtensionType() == VPS_EXTENSION_TYPE_MULTI_VIEW )
     1374        {
     1375          READ_UVLC( uiCode,  "view_id[i]" );             pcVPS->setViewId( uiCode, i );
     1376          READ_FLAG( uiCode,  "depth_flag[i]" );          pcVPS->setDepthFlag( uiCode ? true:false, i );
     1377          READ_SVLC( iCode,  "view_order_idx[i]" );       pcVPS->setViewOrderIdx( iCode, i );
     1378        }
     1379       
     1380      }
     1381    }
     1382  }
     1383 
     1384  READ_FLAG( uiCode,  "vps_extension_flag" );          assert(!uiCode);
     1385  //future extensions go here..
     1386 
     1387  return;
     1388}
     1389
     1390#endif
     1391
    13411392#if HHI_MPI
    13421393Void TDecCavlc::parseSPS(TComSPS* pcSPS, Bool bIsDepth)
     
    13561407  READ_CODE( 8,  uiCode, "level_idc" );                          pcSPS->setLevelIdc( uiCode );
    13571408  READ_UVLC(     uiCode, "seq_parameter_set_id" );               pcSPS->setSPSId( uiCode );
     1409#if VIDYO_VPS_INTEGRATION
     1410  READ_UVLC(     uiCode, "video_parameter_set_id" );             pcSPS->setVPSId( uiCode );
     1411#endif
    13581412  READ_UVLC(     uiCode, "chroma_format_idc" );                  pcSPS->setChromaFormatIdc( uiCode );
    13591413  READ_CODE( 3,  uiCode, "max_temporal_layers_minus1" );         pcSPS->setMaxTLayers( uiCode+1 );
     
    18371891      rpcSlice->setPOC( iPOCmsb+iPOClsb );
    18381892
     1893#if HHI_FIX
     1894      if( rpcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDV && rpcSlice->getPOC() == 0 )
     1895#else
    18391896      if( rpcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDV )
     1897#endif
    18401898      {
    18411899        TComReferencePictureSet* rps = rpcSlice->getLocalRPS();
Note: See TracChangeset for help on using the changeset viewer.