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


Ignore:
Timestamp:
7 Jul 2014, 17:27:51 (10 years ago)
Author:
tech
Message:
  • Merged 11.1-dev0@975. (Clean ups)
  • Added coding results.
  • Changed version number.
File:
1 edited

Legend:

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

    r964 r976  
    374374
    375375#if H_MV
    376 #if H_MV_HLS_8_SPS_NODOC_48
    377376    READ_FLAG( uiCode, "pps_range_extensions_flag" ); pcPPS->setPpsRangeExtensionsFlag( uiCode == 1 );
    378377    READ_FLAG( uiCode, "pps_multilayer_extension_flag" ); pcPPS->setPpsMultilayerExtensionFlag( uiCode == 1 );
     
    390389    if ( pcPPS->getPpsMultilayerExtensionFlag() )
    391390    {
    392         READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 );
    393 #if H_MV_HLS_8_PPS_NODOC_NN
    394         READ_FLAG( uiCode, "pps_extension_reserved_zero_flag" );
    395 #endif
     391      READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 );
     392      READ_FLAG( uiCode, "pps_extension_reserved_zero_flag" );
    396393    }
    397394#if !H_3D
     
    406403    {
    407404#endif
    408 #else
    409     for ( Int i = 0; i < PPS_EX_T_MAX_NUM; i++ )
    410     {
    411       READ_FLAG( uiCode, "pps_extension_type_flag" ); pcPPS->setPpsExtensionTypeFlag( i, uiCode == 1 );
    412 #if H_3D
    413       assert( !pcPPS->getPpsExtensionTypeFlag( i ) || i == PPS_EX_T_MV || i == PPS_EX_T_3D || i == PPS_EX_T_ESC );
    414 #else
    415       assert( !pcPPS->getPpsExtensionTypeFlag( i ) || i == PPS_EX_T_MV || i == PPS_EX_T_ESC );
    416 #endif
    417     }
    418    
    419 
    420     if( pcPPS->getPpsExtensionTypeFlag( PPS_EX_T_MV ) )
    421     {
    422       READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 );
    423     }
    424 
    425 #if H_3D
    426     if( pcPPS->getPpsExtensionTypeFlag( PPS_EX_T_3D ) ) // This probably needs to be aligned with Rext and SHVC
    427     {
    428       parsePPSExtension( pcPPS, pcVPS );
    429     }
    430 #endif
    431 
    432     if( pcPPS->getPpsExtensionTypeFlag( PPS_EX_T_ESC ) )
    433     {
    434 #endif
     405
    435406#endif
    436407
     
    481452            READ_FLAG(uiCode, "inter_view_dlt_pred_enable_flag[ i ]");
    482453
    483 #if  MTK_DLT_CODING_FIX_H0091
    484454            if( uiCode )
    485455            {
    486456                assert( pcDLT->getUseDLTFlag( 1 ));
    487457            }
    488 #endif
    489 
    490458            pcDLT->setInterViewDltPredEnableFlag( i, (uiCode == 1) ? true : false );
    491459
     
    795763  {
    796764#endif
    797   READ_CODE( 3,  uiCode, "sps_max_sub_layers_minus1" );          pcSPS->setMaxTLayers   ( uiCode+1 );
    798   assert(uiCode <= 6);
    799  
    800   READ_FLAG( uiCode, "sps_temporal_id_nesting_flag" );               pcSPS->setTemporalIdNestingFlag ( uiCode > 0 ? true : false );
    801   if ( pcSPS->getMaxTLayers() == 1 )
    802   {
    803     // sps_temporal_id_nesting_flag must be 1 when sps_max_sub_layers_minus1 is 0
    804     assert( uiCode == 1 );
    805   }
    806  
    807   parsePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1);
     765    READ_CODE( 3,  uiCode, "sps_max_sub_layers_minus1" );          pcSPS->setMaxTLayers   ( uiCode+1 );
     766    assert(uiCode <= 6);
     767
     768    READ_FLAG( uiCode, "sps_temporal_id_nesting_flag" );               pcSPS->setTemporalIdNestingFlag ( uiCode > 0 ? true : false );
     769    if ( pcSPS->getMaxTLayers() == 1 )
     770    {
     771      // sps_temporal_id_nesting_flag must be 1 when sps_max_sub_layers_minus1 is 0
     772      assert( uiCode == 1 );
     773    }
     774
     775    parsePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1);
    808776#if H_MV
    809777  }
     
    823791  {
    824792#endif
    825   READ_UVLC(     uiCode, "chroma_format_idc" );                  pcSPS->setChromaFormatIdc( uiCode );
    826   assert(uiCode <= 3);
    827   // in the first version we only support chroma_format_idc equal to 1 (4:2:0), so separate_colour_plane_flag cannot appear in the bitstream
    828   assert (uiCode == 1);
    829   if( uiCode == 3 )
    830   {
    831     READ_FLAG(     uiCode, "separate_colour_plane_flag");        assert(uiCode == 0);
    832   }
    833 
    834   READ_UVLC (    uiCode, "pic_width_in_luma_samples" );          pcSPS->setPicWidthInLumaSamples ( uiCode    );
    835   READ_UVLC (    uiCode, "pic_height_in_luma_samples" );         pcSPS->setPicHeightInLumaSamples( uiCode    );
     793    READ_UVLC(     uiCode, "chroma_format_idc" );                  pcSPS->setChromaFormatIdc( uiCode );
     794    assert(uiCode <= 3);
     795    // in the first version we only support chroma_format_idc equal to 1 (4:2:0), so separate_colour_plane_flag cannot appear in the bitstream
     796    assert (uiCode == 1);
     797    if( uiCode == 3 )
     798    {
     799      READ_FLAG(     uiCode, "separate_colour_plane_flag");        assert(uiCode == 0);
     800    }
     801
     802    READ_UVLC (    uiCode, "pic_width_in_luma_samples" );          pcSPS->setPicWidthInLumaSamples ( uiCode    );
     803    READ_UVLC (    uiCode, "pic_height_in_luma_samples" );         pcSPS->setPicHeightInLumaSamples( uiCode    );
    836804#if H_MV
    837805  }
     
    860828  {
    861829#endif
    862   READ_UVLC(     uiCode, "bit_depth_luma_minus8" );
    863   assert(uiCode <= 6);
    864   pcSPS->setBitDepthY( uiCode + 8 );
    865   pcSPS->setQpBDOffsetY( (Int) (6*uiCode) );
    866 
    867   READ_UVLC( uiCode,    "bit_depth_chroma_minus8" );
    868   assert(uiCode <= 6);
    869   pcSPS->setBitDepthC( uiCode + 8 );
    870   pcSPS->setQpBDOffsetC( (Int) (6*uiCode) );
     830    READ_UVLC(     uiCode, "bit_depth_luma_minus8" );
     831    assert(uiCode <= 6);
     832    pcSPS->setBitDepthY( uiCode + 8 );
     833    pcSPS->setQpBDOffsetY( (Int) (6*uiCode) );
     834
     835    READ_UVLC( uiCode,    "bit_depth_chroma_minus8" );
     836    assert(uiCode <= 6);
     837    pcSPS->setBitDepthC( uiCode + 8 );
     838    pcSPS->setQpBDOffsetC( (Int) (6*uiCode) );
    871839#if H_MV
    872840  }
     
    880848  { 
    881849#endif
    882   UInt subLayerOrderingInfoPresentFlag;
    883   READ_FLAG(subLayerOrderingInfoPresentFlag, "sps_sub_layer_ordering_info_present_flag");
    884  
    885   for(UInt i=0; i <= pcSPS->getMaxTLayers()-1; i++)
    886   {
    887     READ_UVLC ( uiCode, "sps_max_dec_pic_buffering_minus1[i]");
    888     pcSPS->setMaxDecPicBuffering( uiCode + 1, i);
    889     READ_UVLC ( uiCode, "sps_num_reorder_pics[i]" );
    890     pcSPS->setNumReorderPics(uiCode, i);
    891     READ_UVLC ( uiCode, "sps_max_latency_increase_plus1[i]");
    892     pcSPS->setMaxLatencyIncrease( uiCode, i );
    893 
    894     if (!subLayerOrderingInfoPresentFlag)
    895     {
    896       for (i++; i <= pcSPS->getMaxTLayers()-1; i++)
    897       {
    898         pcSPS->setMaxDecPicBuffering(pcSPS->getMaxDecPicBuffering(0), i);
    899         pcSPS->setNumReorderPics(pcSPS->getNumReorderPics(0), i);
    900         pcSPS->setMaxLatencyIncrease(pcSPS->getMaxLatencyIncrease(0), i);
    901       }
    902       break;
    903     }
    904   }
     850    UInt subLayerOrderingInfoPresentFlag;
     851    READ_FLAG(subLayerOrderingInfoPresentFlag, "sps_sub_layer_ordering_info_present_flag");
     852
     853    for(UInt i=0; i <= pcSPS->getMaxTLayers()-1; i++)
     854    {
     855      READ_UVLC ( uiCode, "sps_max_dec_pic_buffering_minus1[i]");
     856      pcSPS->setMaxDecPicBuffering( uiCode + 1, i);
     857      READ_UVLC ( uiCode, "sps_num_reorder_pics[i]" );
     858      pcSPS->setNumReorderPics(uiCode, i);
     859      READ_UVLC ( uiCode, "sps_max_latency_increase_plus1[i]");
     860      pcSPS->setMaxLatencyIncrease( uiCode, i );
     861
     862      if (!subLayerOrderingInfoPresentFlag)
     863      {
     864        for (i++; i <= pcSPS->getMaxTLayers()-1; i++)
     865        {
     866          pcSPS->setMaxDecPicBuffering(pcSPS->getMaxDecPicBuffering(0), i);
     867          pcSPS->setNumReorderPics(pcSPS->getNumReorderPics(0), i);
     868          pcSPS->setMaxLatencyIncrease(pcSPS->getMaxLatencyIncrease(0), i);
     869        }
     870        break;
     871      }
     872    }
    905873#if H_MV
    906874  }
     
    912880  READ_UVLC( uiCode, "log2_diff_max_min_coding_block_size" );
    913881  pcSPS->setLog2DiffMaxMinCodingBlockSize(uiCode);
    914  
     882
    915883  if (pcSPS->getPTL()->getGeneralPTL()->getLevelIdc() >= Level::LEVEL5)
    916884  {
    917885    assert(log2MinCUSize + pcSPS->getLog2DiffMaxMinCodingBlockSize() >= 5);
    918886  }
    919  
     887
    920888  Int maxCUDepthDelta = uiCode;
    921889  pcSPS->setMaxCUWidth  ( 1<<(log2MinCUSize + maxCUDepthDelta) );
     
    948916    {   
    949917#endif
    950     READ_FLAG( uiCode, "sps_scaling_list_data_present_flag" );                 pcSPS->setScalingListPresentFlag ( uiCode );
    951     if(pcSPS->getScalingListPresentFlag ())
    952     {
    953       parseScalingList( pcSPS->getScalingList() );
    954     }
     918      READ_FLAG( uiCode, "sps_scaling_list_data_present_flag" );                 pcSPS->setScalingListPresentFlag ( uiCode );
     919      if(pcSPS->getScalingListPresentFlag ())
     920      {
     921        parseScalingList( pcSPS->getScalingList() );
     922      }
    955923#if H_MV
    956924    }
     
    1017985  {
    1018986#if H_MV
    1019 #if H_MV_HLS_8_SPS_NODOC_48
    1020987    READ_FLAG( uiCode, "sps_range_extensions_flag" ); pcSPS->setSpsRangeExtensionsFlag( uiCode == 1 );
    1021988    READ_FLAG( uiCode, "sps_multilayer_extension_flag" ); pcSPS->setSpsMultilayerExtensionFlag( uiCode == 1 );
     
    10501017  {
    10511018#endif
    1052 #else
    1053     for (Int i = 0; i < PS_EX_T_MAX_NUM; i++)
    1054     {
    1055       READ_FLAG( uiCode, "sps_extension_type_flag" ); pcSPS->setSpsExtensionTypeFlag( i, uiCode );
    1056 #if H_3D
    1057       assert( !pcSPS->getSpsExtensionTypeFlag( i ) || i == PS_EX_T_MV || i == PS_EX_T_3D || i == PS_EX_T_ESC );
    1058 #else
    1059       assert( !pcSPS->getSpsExtensionTypeFlag( i ) || i == PS_EX_T_MV || i == PS_EX_T_ESC );
    1060 #endif
    1061     } 
    1062 
    1063     if( pcSPS->getSpsExtensionTypeFlag( PS_EX_T_MV ))
    1064     {
    1065       parseSPSExtension( pcSPS );
    1066     }
    1067 
    1068 #if H_3D
    1069     if( pcSPS->getSpsExtensionTypeFlag( PS_EX_T_3D ))
    1070     {
    1071       parseSPSExtension2( pcSPS, viewIndex, depthFlag  );
    1072     }
    1073 #endif
    1074 
    1075     if ( pcSPS->getSpsExtensionTypeFlag( PS_EX_T_ESC ))
    1076     {   
    1077 #endif
    1078 #endif
    1079         while ( xMoreRbspData() )
    1080         {
    1081           READ_FLAG( uiCode, "sps_extension_data_flag");
    1082         }
    1083 #if H_MV && !H_MV_HLS_8_SPS_NODOC_48
    1084     }
    1085 #endif
     1019
     1020#endif
     1021    while ( xMoreRbspData() )
     1022    {
     1023      READ_FLAG( uiCode, "sps_extension_data_flag");
     1024    }
    10861025  }
    10871026}
     
    11321071 
    11331072  READ_CODE( 4,  uiCode,  "vps_video_parameter_set_id" );         pcVPS->setVPSId( uiCode );
    1134 #if H_MV_HLS_8_SYN_Q0041_03
     1073#if H_MV
    11351074  READ_FLAG( uiCode, "vps_base_layer_internal_flag" );            pcVPS->setVpsBaseLayerInternalFlag( uiCode == 1 );
    11361075  READ_FLAG( uiCode, "vps_reserved_one_bit" );                    assert( uiCode == 1 );
     
    12211160    }
    12221161  }
    1223 #if H_MV_HLS_8_RPS_Q0100_36
     1162#if H_MV
    12241163  READ_FLAG( uiCode,  "vps_extension_flag" );                      pcVPS->setVpsExtensionFlag( uiCode == 1 ? true : false );
    12251164  if ( pcVPS->getVpsExtensionFlag() )
     
    12621201{
    12631202  UInt uiCode;
    1264 #if !H_MV_HLS_8_SYN_Q0041_03
    1265   READ_FLAG( uiCode, "avc_base_layer_flag" );                     pcVPS->setAvcBaseLayerFlag( uiCode == 1 ? true : false );
    1266 #endif
    12671203
    12681204  READ_FLAG( uiCode, "splitting_flag" );                          pcVPS->setSplittingFlag( uiCode == 1 ? true : false );
     
    13841320  }
    13851321
    1386 #if H_MV_HLS_8_SYN_39_19
    13871322  if ( pcVPS->getNumIndependentLayers() > 1 )
    13881323  {
     
    14041339  pcVPS->initTargetLayerIdLists( );
    14051340
    1406 #else
    1407   READ_UVLC( uiCode, "num_add_layer_sets"      ); pcVPS->setNumAddLayerSets( uiCode );
    1408   pcVPS->initTargetLayerIdLists( );
    1409   if( pcVPS->getNumOutputLayerSets() > 1)
    1410   {
    1411     READ_CODE( 2, uiCode, "default_output_layer_idc" ); pcVPS->setDefaultOutputLayerIdc( std::min( uiCode, (UInt) 2 ) );   
    1412   } 
    1413 #endif
    14141341
    14151342  pcVPS->setOutputLayerFlag(0, 0, pcVPS->inferOutputLayerFlag( 0, 0 ));
     
    14201347  for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ )
    14211348  {
    1422 #if H_MV_HLS_8_SYN_39_19
    14231349    if( i >= pcVPS->getNumLayerSets( ) )   
    1424 #else
    1425     if( i > pcVPS->getVpsNumLayerSetsMinus1( ) )   
    1426 #endif
    14271350    {       
    14281351      READ_UVLC( uiCode,      "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode );
     
    14551378  }
    14561379
    1457 #if !H_MV_HLS_8_PMS_Q0195_20
    1458   READ_FLAG( uiCode, "rep_format_idx_present_flag" ); pcVPS->setRepFormatIdxPresentFlag( uiCode == 1 );
    1459   if ( pcVPS->getRepFormatIdxPresentFlag() )
    1460   {
    1461     READ_UVLC( uiCode, "vps_num_rep_formats_minus1" ); pcVPS->setVpsNumRepFormatsMinus1( uiCode );
    1462   }
    1463 #else
    14641380  READ_UVLC( uiCode, "vps_num_rep_formats_minus1" ); pcVPS->setVpsNumRepFormatsMinus1( uiCode );
    1465 #endif
    14661381
    14671382  for (Int i = 0; i <= pcVPS->getVpsNumRepFormatsMinus1(); i++ )
     
    14741389  }
    14751390
    1476 #if H_MV_HLS_8_PMS_Q0195_20
    14771391  if ( pcVPS->getVpsNumRepFormatsMinus1() > 0 )
    14781392  {
    14791393    READ_FLAG( uiCode, "rep_format_idx_present_flag" ); pcVPS->setRepFormatIdxPresentFlag( uiCode == 1 );
    14801394  }
    1481 #endif
    14821395  if( pcVPS->getRepFormatIdxPresentFlag() )
    14831396  {
    1484 #if H_MV_HLS_8_SYN_Q0041_03
    14851397    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 1 : 0; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1486 #else
    1487     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1488 #endif
    1489     {
    1490 #if !H_MV_HLS_8_PMS_Q0195_20
    1491       if( pcVPS->getVpsNumRepFormatsMinus1() > 0 )
    1492       {
    1493 #endif
     1398    {
    14941399        READ_CODE( pcVPS->getVpsRepFormatIdxLen(), uiCode, "vps_rep_format_idx[i]" ); pcVPS->setVpsRepFormatIdx( i, uiCode );
    1495 #if !H_MV_HLS_8_PMS_Q0195_20
    1496       }
    1497 #endif
    1498     }
    1499   }
    1500 #if H_MV_HLS_8_PMS_Q0195_20
     1400    }
     1401  }
    15011402  else
    15021403  {
    1503 #if H_MV_HLS_8_SYN_Q0041_03
    15041404    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 1 : 0; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1505 #else
    1506     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1507 #endif
    15081405    {
    15091406      pcVPS->setVpsRepFormatIdx( i, pcVPS->inferVpsRepFormatIdx( i ) );
    15101407    }
    15111408  }
    1512 #endif
    15131409
    15141410  READ_FLAG( uiCode, "max_one_active_ref_layer_flag" ); pcVPS->setMaxOneActiveRefLayerFlag ( uiCode == 1 );
     
    15351431  }
    15361432
    1537 #if H_MV_HLS_8_SYN_Q0041_03
    15381433  for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ?  1 : 2; i <= pcVPS->getMaxLayersMinus1(); i++ )
    15391434  {
    15401435    for( Int j = pcVPS->getVpsBaseLayerInternalFlag() ?  0 : 1; j < i; j++ )
    1541 #else
    1542   for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )
    1543   {
    1544     for( Int j = 0; j < i; j++ )
    1545 #endif
    15461436    {
    15471437      if (pcVPS->getDirectDependencyFlag( i, j) )
     
    16291519  if( pcVPSVUI->getBitRatePresentVpsFlag( )  ||  pcVPSVUI->getPicRatePresentVpsFlag( ) )
    16301520  {
    1631 #if H_MV_HLS_8_SYN_Q0041_03
    16321521    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i  <=  pcVPS->getVpsNumLayerSetsMinus1(); i++ )
    1633 #else
    1634     for( Int i = 0; i  <=  pcVPS->getVpsNumLayerSetsMinus1(); i++ )
    1635 #endif
    1636     {
    1637 #if H_MV_HLS_8_MIS_Q0102_30
     1522    {
    16381523      for( Int j = 0; j  <=  pcVPS->getMaxSubLayersInLayerSetMinus1( i ); j++ )
    1639 #else       
    1640       for( Int j = 0; j  <=  pcVPS->getMaxTLayers(); j++ )
    1641 #endif
    16421524      {
    16431525        if( pcVPSVUI->getBitRatePresentVpsFlag( ) )
     
    16991581  if( !pcVPSVUI->getTilesNotInUseFlag() )
    17001582  {     
    1701 #if H_MV_HLS_8_SYN_Q0041_03
    17021583    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i  <=  pcVPS->getMaxLayersMinus1(); i++ )
    1703 #else
    1704     for( Int i = 0; i  <=  pcVPS->getMaxLayersMinus1(); i++ )
    1705 #endif
    17061584    {
    17071585      READ_FLAG( uiCode, "tiles_in_use_flag[i]" ); pcVPSVUI->setTilesInUseFlag( i, uiCode == 1 );
     
    17111589      }
    17121590    } 
    1713 #if H_MV_HLS_8_SYN_Q0041_03
    17141591    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 1 : 2; i  <=  pcVPS->getMaxLayersMinus1(); i++ ) 
    1715 #else
    1716     for( Int i = 1; i  <=  pcVPS->getMaxLayersMinus1(); i++ )     
    1717 #endif
    17181592    {
    17191593      for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ) ; j++ )
     
    17461620      for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ); j++ )
    17471621      {
    1748 #if H_MV_HLS_8_SYN_Q0041_03
    17491622        if( pcVPS->getVpsBaseLayerInternalFlag() || pcVPS->getRefLayerId( pcVPS->getLayerIdInNuh( i ), j ) > 0 )
    17501623        {       
    1751 #endif
    17521624          READ_UVLC( uiCode, "min_spatial_segment_offset_plus1" ); pcVPSVUI->setMinSpatialSegmentOffsetPlus1( i, j, uiCode );
    17531625          if( pcVPSVUI->getMinSpatialSegmentOffsetPlus1( i, j ) > 0 )
     
    17591631            }
    17601632          }
    1761 #if H_MV_HLS_8_SYN_Q0041_03
    1762         }
    1763 #endif
     1633        }
    17641634      }
    17651635    }
     
    18081678    for( Int i = 0; i < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); i++ ) 
    18091679    {
    1810 #if H_MV_HLS_8_HRD_Q0101_04
    18111680      for( Int j = 0; j < pcVPS->getNumLayersInIdList( h ); j++ ) 
    18121681      {
    18131682        READ_FLAG( uiCode, "layer_in_bsp_flag" ); vpsVuiBspHrdP->setLayerInBspFlag( h, i, j, uiCode == 1 );
    1814 #else
    1815       for( Int j = 0; j <= pcVPS->getMaxLayersMinus1(); j++ ) 
    1816       {
    1817         if( pcVPS->getLayerIdIncludedFlag( h ,j ) )
    1818         {
    1819           READ_FLAG( uiCode, "layer_in_bsp_flag" ); vpsVuiBspHrdP->setLayerInBspFlag( h, i, j, uiCode == 1 );
    1820         }
    1821         else
    1822         {
    1823           vpsVuiBspHrdP->setLayerInBspFlag( h, i, j, false ); // This inference seems to be missing in spec
    1824         }
    1825 #endif
    18261683      }
    18271684    }
     
    18311688    { 
    18321689      READ_UVLC( uiCode, "num_bsp_sched_combinations_minus1" ); vpsVuiBspHrdP->setNumBspSchedCombinationsMinus1( h, uiCode );
    1833 #if H_MV_HLS_8_HRD_Q0182_05
    18341690      for( Int i = 0; i <= vpsVuiBspHrdP->getNumBspSchedCombinationsMinus1( h ); i++ )
    1835 #else
    1836       for( Int i = 0; i < vpsVuiBspHrdP->getNumBspSchedCombinationsMinus1( h ); i++ )
    1837 #endif
    18381691      {
    18391692        for( Int j = 0; j < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); j++ )
    18401693        { 
    1841 #if H_MV_HLS_8_HRD_Q0101_04
    18421694          READ_CODE( vpsVuiBspHrdP->getBspCombHrdIdxLen(), uiCode, "bsp_comb_hrd_idx" ); vpsVuiBspHrdP->setBspCombHrdIdx( h, i, j, uiCode );
    1843 #else
    1844           READ_UVLC( uiCode, "bsp_comb_hrd_idx" ); vpsVuiBspHrdP->setBspCombHrdIdx( h, i, j, uiCode );
    1845 #endif
    18461695          READ_UVLC( uiCode, "bsp_comb_sched_idx" ); vpsVuiBspHrdP->setBspCombSchedIdx( h, i, j, uiCode );
    1847 #if H_MV_HLS_8_HRD_Q0101_04
    18481696          vpsVuiBspHrdP->checkBspCombHrdAndShedIdx( pcVPS, h, i, j );
    1849 #endif
    18501697        } 
    18511698      }
     
    18721719  for( Int i = 1; i < vps->getNumOutputLayerSets(); i++ )
    18731720  { 
    1874 #if H_MV_HLS_8_MIS_Q0102_30
    18751721    Int currLsIdx = vps->olsIdxToLsIdx( i );
    1876 #endif
    18771722    READ_FLAG( uiCode, "sub_layer_flag_info_present_flag" ); dpbSize->setSubLayerFlagInfoPresentFlag( i, uiCode == 1 );
    1878 #if H_MV_HLS_8_MIS_Q0102_30
    18791723    for( Int j = 0; j  <=  vps->getMaxSubLayersInLayerSetMinus1( currLsIdx ); j++ )
    1880 #else
    1881     for( Int j = 0; j  <=  vps->getMaxSubLayersInLayerSetMinus1( i ); j++ )
    1882 #endif
    18831724    { 
    18841725      if( j > 0  &&  dpbSize->getSubLayerDpbInfoPresentFlag( i, j )  ) 
     
    18881729      if( dpbSize->getSubLayerDpbInfoPresentFlag( i, j ) )
    18891730      { 
    1890 #if H_MV_HLS_8_MIS_Q0102_30
    18911731        for( Int k = 0; k < vps->getNumLayersInIdList( currLsIdx ); k++ )   
    1892 #else
    1893         for( Int k = 0; k < vps->getNumSubDpbs( vps->olsIdxToLsIdx( i )); k++ )   
    1894 #endif
    18951732        {
    18961733          READ_UVLC( uiCode, "max_vps_dec_pic_buffering_minus1" ); dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, uiCode );
     
    19031740        if ( j > 0 )
    19041741        {
    1905 #if H_MV_HLS_8_DBP_NODOC_42
    19061742          for( Int k = 0; k < vps->getNumLayersInIdList( vps->olsIdxToLsIdx( i ) ); k++ )   
    1907 #else
    1908           for( Int k = 0; k < vps->getNumSubDpbs( vps->olsIdxToLsIdx( i ) ); k++ )   
    1909 #endif
    19101743          {
    19111744            dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, dpbSize->getMaxVpsDecPicBufferingMinus1( i,k, j - 1 ) );
     
    19181751  } 
    19191752}
    1920 #endif
    19211753
    19221754#if H_3D
     
    19391771#if H_3D_IV_MERGE
    19401772        READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    1941 #if QC_IV_PRED_CONSTRAINT_H0137
    19421773        if( !pcVPS->getNumDirectRefLayers(i) )
    19431774        {
    19441775          assert( !uiCode );         
    19451776        }
    1946 #endif
    19471777#if H_3D_SPIVMP
    19481778        READ_UVLC (uiCode, "log2_sub_PU_size_minus3[i]");     pcVPS->setSubPULog2Size(i, uiCode+3);
     
    19511781#if H_3D_ARP
    19521782        READ_FLAG( uiCode, "iv_res_pred_flag[i]"  );       pcVPS->setUseAdvRP  ( i, uiCode ); pcVPS->setARPStepNum( i, uiCode ? H_3D_ARP_WFNR : 1 );
    1953 #if QC_IV_PRED_CONSTRAINT_H0137
    19541783        if( !pcVPS->getNumDirectRefLayers(i) )
    19551784        {
    19561785          assert( !uiCode );         
    19571786        }
    1958 #endif
    19591787#endif
    19601788#if H_3D_NBDV_REF
     
    19631791#if H_3D_VSP
    19641792        READ_FLAG( uiCode, "view_synthesis_pred_flag[i]"); pcVPS->setViewSynthesisPredFlag( i, uiCode == 1 ? true : false );
    1965 #if QC_IV_PRED_CONSTRAINT_H0137
    19661793        if( !pcVPS->getNumDirectRefLayers(i) )
    19671794        {
    19681795          assert( !uiCode );         
    19691796        }
    1970 #endif
    19711797#endif
    19721798#if H_3D_DBBP
     
    19801806        {
    19811807          READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    1982 #if QC_IV_PRED_CONSTRAINT_H0137
    19831808          if( !pcVPS->getNumDirectRefLayers(i) )
    19841809          {
    19851810            assert( !uiCode );         
    19861811          }
    1987 #endif
    19881812        }
    19891813#endif
     
    20371861}
    20381862#endif
    2039 
    2040 #if H_MV_HLS_8_HRD_Q0102_08
     1863#endif
     1864#if H_MV
    20411865Void TDecCavlc::parseSliceHeader (TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, Int targetOlsIdx)
    20421866#else
     
    20811905  sps->inferRepFormat  ( vps , rpcSlice->getLayerId() );
    20821906  sps->inferScalingList( parameterSetManager->getActiveSPS( sps->getSpsScalingListRefLayerId() ) );   
    2083 #if H_MV_HLS_8_HRD_Q0102_08
    20841907  sps->inferSpsMaxDecPicBufferingMinus1( vps, targetOlsIdx, rpcSlice->getLayerId(), false );
    2085 #endif
    2086 #if H_MV_HLS_8_RPS_Q0100_36
    20871908  vps->inferDbpSizeLayerSetZero( sps, false );
    2088 #endif
    20891909
    20901910  if ( sps->getVuiParametersPresentFlag() )
     
    21411961  }
    21421962 
    2143 #if H0044_POC_LSB_NOT_PRESENT
     1963#if H_MV
    21441964    UInt slicePicOrderCntLsb = 0;
    21451965#endif
     
    21952015
    21962016#if H_MV
    2197 #if !H0044_POC_LSB_NOT_PRESENT
    2198     UInt slicePicOrderCntLsb = 0;
    2199 #endif
    22002017    Int iPOClsb = slicePicOrderCntLsb;  // Needed later
    22012018    if ( (rpcSlice->getLayerId() > 0 && !vps->getPocLsbNotPresentFlag( rpcSlice->getLayerIdInVps())) || !rpcSlice->getIdrPicFlag() )
     
    22032020      READ_CODE(sps->getBitsForPOC(), slicePicOrderCntLsb, "slice_pic_order_cnt_lsb");       
    22042021    }   
    2205 #if H_MV_HLS_8_POC_Q0142_32
    22062022    rpcSlice->setSlicePicOrderCntLsb( slicePicOrderCntLsb );
    2207 #endif
    22082023
    22092024    Bool picOrderCntMSBZeroFlag = false;     
     
    23012116      {       
    23022117        parseShortTermRefPicSet(sps,rps, sps->getRPSList()->getNumberOfReferencePictureSets());
    2303 #if H_MV_HLS_8_RPS_Q0100_36
     2118#if H_MV
    23042119        if ( !rps->getInterRPSPrediction( ) )
    23052120        { // check sum of num_positive_pics and num_negative_pics
     
    24142229        rps->setNumberOfPictures(offset);       
    24152230      } 
    2416 #if H_MV_HLS_8_RPS_Q0100_36
     2231#if H_MV
    24172232      if ( !rps->getInterRPSPrediction( ) )
    24182233      { // check sum of NumPositivePics, NumNegativePics, num_long_term_sps and num_long_term_pics
     
    28042619      rpcSlice->setPocResetIdc( 0 );
    28052620    }
    2806 #if H_MV_HLS_8_POC_Q0142_32
    28072621    rpcSlice->checkPocResetIdc();
    2808 #endif
    2809 
    2810 #if H0044_POC_LSB_NOT_PRESENT
     2622
    28112623    if ( rpcSlice->getVPS()->getPocLsbNotPresentFlag(rpcSlice->getLayerId()) && slicePicOrderCntLsb > 0 )
    28122624    {
    28132625      assert( rpcSlice->getPocResetIdc() != 2 );
    28142626    }
    2815 #endif
     2627
    28162628    if( rpcSlice->getPocResetIdc() !=  0 )
    28172629    {
     
    28282640      READ_FLAG( uiCode, "full_poc_reset_flag" ); rpcSlice->setFullPocResetFlag( uiCode == 1 );
    28292641      READ_CODE( rpcSlice->getPocLsbValLen() , uiCode, "poc_lsb_val" ); rpcSlice->setPocLsbVal( uiCode );
    2830 #if !H_MV_HLS_8_POC_Q0142_32
    2831 #if H0044_POC_LSB_NOT_PRESENT
    2832       if ( rpcSlice->getVPS()->getPocLsbNotPresentFlag(rpcSlice->getLayerId()) && rpcSlice->getFullPocResetFlag() )
    2833       {
    2834         assert( rpcSlice->getPocLsbVal() == 0 );
    2835       }
    2836 #endif
    2837 #endif
    28382642    }         
    2839 #if H_MV_HLS_8_POC_Q0142_32
    28402643    rpcSlice->checkPocLsbVal();
    2841 #endif
    28422644
    28432645    // Derive the value of PocMs8bValRequiredFlag
     
    28522654    else
    28532655    {
    2854 #if H_MV_HLS_8_POC_Q0146_15
    28552656      rpcSlice->setPocMsbValPresentFlag( rpcSlice->inferPocMsbValPresentFlag( ) );
    2856 #else
    2857       if( rpcSlice->getPocMsbValRequiredFlag() )
    2858       {
    2859         rpcSlice->setPocMsbValPresentFlag( true );
    2860       }
    2861       else
    2862       {
    2863         rpcSlice->setPocMsbValPresentFlag( false );
    2864       }
    2865 #endif
    28662657    }
    28672658
Note: See TracChangeset for help on using the changeset viewer.